Попробуйте Глубокое Обучение на FPGA только с пятью Дополнительными Линиями Кода MATLAB

Этот пример показов, как использовать Toolbox™ Deep Learning HDL для развертывания предварительно обученного нейронной сети для глубокого обучения на целевой плате и идентифицировать объекты на веб-камере реального времени, соединенной с компьютером разработчика, добавив только пять линий кода MATLAB в Try Deep Learning в 10 Линии примера MATLAB Code.

  1. Чтобы подключиться к веб-камере и получить предварительно обученную нейронную сеть, запустите эти команды.

    camera = webcam; % Connect to the camera
    net = alexnet;   % Load the neural network

    Если вам нужно установить веб-камеру и дополнения Alexnet, появляется сообщение со ссылкой, которая поможет вам скачать бесплатные дополнения с помощью Add-On Explorer. Кроме того, для получения инструкций по установке см. Deep Learning Toolbox Model for AlexNet Network и MATLAB Support Package for USB Webcams.

    После установки Deep Learning Toolbox™ Model для сети AlexNet можно использовать ее для классификации изображений. AlexNet является предварительно обученной сверточной нейронной сетью (CNN), которая была обучена на более чем миллионе изображений и может классифицировать изображения в 1000 категорий объектов (для примера, клавиатуры, мыши и так далее).

  2. Запустите следующие три строки кода, чтобы настроить интерфейс на целевой плате, создать объект рабочего процесса и развернуть сеть на целевой плате.

    hT = dlhdl.Target('Xilinx');
    hW = dlhdl.Workflow('Network',net,'Bitstream','zcu102_single','Target',hT);
    hW.deploy;
  3. Запустите следующий код, чтобы показать и классифицировать живые изображения. Наведите веб-камеру на объект. Нейронная сеть сообщает, какой класс объекта она думает, что веб-камера показывает, классифицируя изображения до тех пор, пока вы не нажмете Ctrl + C. Код изменяет размер изображения для сети с помощью imresize (Image Processing Toolbox).

    while true
        im = snapshot(camera);       % Take a picture
        image(im);                   % Show the picture
        im = imresize(im,[227 227]); % Resize the picture for alexnet
        [prediction, speed] = hW.predict(single(im),'Profile','on');
        [val, idx] = max(prediction);
        label = net.Layers(end).ClassNames{idx}; % classify the image
        title(char(label));          % Show the class label
        drawnow
       end
    

    В этом примере сеть правильно классифицирует кружку кофе. Экспериментируйте с объектами в вашем окружении, чтобы увидеть, насколько точна сеть.

    Для следующих шагов смотрите Глубокое Обучение о Решении FPGA и Рабочих процессах.

См. также

| |

Похожие темы