В последнее время во многих областях нашли применение сверточные нейронные сети – от задач распознавания образов до задач удаления шума и повышения разрешения изображений. Однако запуск сверточных нейронных сетей на ПЛИС имеет ряд трудностей – это отсутствие готовых библиотек, высокая сложность разработки и отладки алгоритма на встраиваемой платформе. В этой работе предлагается обойти описанные выше проблемы, используя модельно-ориентированное проектирование: вначале создать модель алгоритма нейронной сети в среде MATLAB/Simulink, а после из модели по средствам автоматической генерации кода получить HDL-описание алгоритма нейронной сети для ПЛИС. В качестве примера рассматривается задача распознавания рукописных цифр.
Статья впервые была представлена на DSPA-2019 21-й Международной Конференции «Цифровая обработка сигналов и её применение».
Авторы: инж. Воробьев А.Н, инж., к.т.н. Шидловский Д.Ю., инж., к.т.н. Багров А. А., Центр инженерных технологий и моделирования «Экспонента»
Инженер ЦИТМ «Экспонента» Воробьев Александр представил на конференции доклад на тему «Аппаратная реализация сверточной нейросети на ПЛИС c использованием модельно-ориентированного проектирования», раскрывающий возможности среды MATLAB по проектированию сверточных нейронных сетей и по их последующей аппаратной реализации на ПЛИС. В этом проекте наши инженеры ставили перед собой задачу пройти процесс от разработки архитектуры сети до ее аппаратной реализации наиболее оптимально, с минимальными временными затратами. Как правило, нейронные сети запускают на GPU и этот процесс уже отлажен. Запуск сверточных нейронных сетей на ПЛИС имеет ряд трудностей – это отсутствие готовых библиотек, ограниченные аппаратные ресурсы, высокая сложность разработки и отладки алгоритма непосредственно на ПЛИС. В этом докладе наши инженеры показывают, как можно обойти описанные выше проблемы, используя модельно-ориентированное проектирование и среду разработки MATLAB/Simulink.
В последнее время во многих областях нашли применение сверточные нейронные сети – от задач удаления шума и повышения разрешения изображений до задач построения современных систем содействия водителю (Advanced Driver-Assistance Systems – ADAS) способных распознавать окружающие его объекты: автомобили, дорожные знаки, пешеходов, линии разметки. Однако к этим системам предъявляется ряд дополнительных требований – обработка видео в режиме реального времени и возможность запуска алгоритма на встраиваемых платформах.
Однако запуск сверточных нейронных сетей на ПЛИС и на других встраиваемых системах имеет ряд трудностей – это отсутствие готовых библиотек, ограниченные вычислительные ресурсы аппаратной платформы, высокая сложность разработки и отладки алгоритма на встраиваемой платформе. В этой работе предлагается обойти описанные выше проблемы используя модельно-ориентированное проектирование и среду разработки MATLAB/Simulink.
Структурно процесс разработки с использованием модельно-ориентированного проектирования можно разделить на три основных этапа: создание модели алгоритма и уточнение его параметров, подготовка алгоритма к аппаратной реализации и автоматическая генерация кода.
На первом шаге создается структура нейронной сети в MATLAB, сеть обучается на тестовых данных и при необходимости ее структура уточняется. На следующем шаге реализуется потоковая модель алгоритма нейронной сети в среде Simulink для работы с потоковым видео, пригодная для аппаратной реализации на ПЛИС. И на третьем шаге, используя автоматическую генерацию кода из Simulink-моделей, получаем HDL-код с описанием алгоритма нейронной сети, пригодного для синтеза и запуска его на ПЛИС.
В этой работе в качестве примера по аппаратной реализации сверточной нейронной сети выбрана сеть для распознавания рукописных цифр (рисунок 2). Впоследствии созданную нейронную сеть можно обучить на другом наборе данных – дорожных знаках, автомобильных номерах – и использовать в системах содействия водителю или в системах фотовидеофиксации для распознавания автомобильных номеров.
Скачать доклад и презентацию к нему можно по ссылке ниже.
Связанное видео "Реализация нейронной сети на ПЛИС".