26 июля 2018
Классификации изображений – сложная и ресурсоемкая задача, для решения которой часто используются нейронные сети. Чтобы решить ее в реальном времени, требуется высокопроизводительная вычислительная система либо система на кристалле Xilinx.
Компания Xilinx представила демонстрационный проект распознавания 46 различных дорожных знаков с видеопотока в реальном времени. Задача решается совместным функционированием программируемой логики и процессорной системы чипа Xilinx Zynq UltraScale+. Достигается многократное увеличение производительности по сравнению с чисто программным решением. Распознаются и классифицируются реальные дорожные знаки, используемые в Германии. Пример может функционировать на двух демонстрационных платах – ZCU102 (доступна для заказа через Макро Групп) и Ultra96board (к сожалению, для заказа в России недоступна). Задача классификации осуществляется с использованием бинарной нейронной сети (BNN), реализованной в программируемой логике СнК Zynq UltraScale+. Источником изображения является либо база данных с дорожными знаками, либо веб-камера USB. Результат работы BNN отображается на мониторе. Приложение управляется с помощью графического интерфейса, позволяющего изменять источники изображения, запускать и останавливать процесс классификации. Графический интерфейс реализован с использованием GUI Ubuntu Desktop, работающего поверх Petalinux на процессорной системе.
Пример интерфейса приведен ниже:

С левой стороны показаны текущее классифицированное изображение и производительность сети BNN. Справа показаны последние три классифицированных изображения с пятью наиболее вероятными результатами классификации.
Максимальный размер изображения – 1080 точки, обрабатываемых с помощью четырехуровневой двоичной нейронной сети.
При обработке изображение делится на 202 фрагмента. При чисто программном способе обработки достигается производительность 2,2 фрагмента в секунду, в то время как при реализации нейронной сети в программируемой логике производительность составляет 19000 фрагментов в секунду, что означает ускорение в 9600 раз и возможность обработки в реальном времени.