Обнаружение Лиц На Видео С Помощью Movidius Neural Compute Stick

Устройство выпущено не так давно.

Нейронный вычислительный модуль Movidius (NCS) , который представляет собой аппаратный ускоритель нейронных сетей с интерфейсом USB. Меня заинтересовала возможность использования устройства в сфере робототехники, поэтому я приобрел его и решил запустить какую-нибудь нейросеть.

Однако большинство существующих примеров NCS решают проблему классификации изображений, и мне захотелось попробовать что-то другое, а именно распознавание лиц.

В этой публикации я хотел бы поделиться опытом, полученным в ходе такого эксперимента.

Весь код можно найти на GitHub .



Обнаружение лиц на видео с помощью Movidius Neural Compute Stick



Подробнее о НКС

Neural Compute Stick — устройство, предназначенное для ускорения нейронных сетей (в основном сверточных) на этапе вывода.

Идея в том, что NCS можно прикрепить к роботу или дрону и запускать нейронные сети там, где для этого недостаточно вычислительных ресурсов.

Например, NCS можно подключить к Raspberry Pi. Фреймворк для этого устройства, он же NCSDK , включает API для Python и C++, а также несколько полезных утилит, которые позволяют скомпилировать нейронную сеть в формат, понятный NCS, измерить время, необходимое для вычислений на каждом уровне, и проверить производительность сети.

Исходными данными могут служить предварительно обученные нейронные сети в формате Caffe или TensorFlow.

Выбор модели

Отлично, мы хотим решить проблему распознавания лиц.

Для задач обнаружения существуют две довольно популярные архитектуры нейронных сетей: Fast-RCNN/Faster-RCNN и YOLO. На данном этапе мне не хотелось обучать собственную модель, поэтому я решил поискать готовую.

Сложность в том, что NCSDK не поддерживает все возможности, доступные в Caffe и TensorFlow, поэтому произвольная архитектура может просто не скомпилироваться.

Например, поддерживаются не все типы слоев, а архитектура должна иметь ровно один входной слой (полный список ограничений и поддерживаемых слоев для Caffe можно посмотреть здесь).

Здесь ).

Первая обнаруженная мной модель распознавания лиц (Faster-RCNN) не удовлетворяла обоим требованиям.

Потом я наткнулся на обученного модель архитектура ЙОЛО .

Единственная проблема заключалась в том, что нейросеть была в формате Darknet, хотя сама архитектура показалась подходящей для NCS, поэтому возникла идея конвертировать нейросеть в формат Caffe.

Преобразование модели

Для конвертации модели я решил использовать это проект , позволяющий переключаться между форматами Darknet, Pytorch и Caffe. Я запускаю конвертер в Docker-контейнере — это трюк, который появился из-за того, что конвертеру не понравилась версия Caffe, установленная NCSDK, и я не хотел трогать конфигурацию системы:
   

sudo docker run -v `pwd`:/workspace/data \

Теги: #нейронный вычислительный модуль #распознавание лиц #нейронные сети #C++ #нейронные сети #C++ #обработка изображений #машинное обучение
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.