Устройство выпущено не так давно.
Нейронный вычислительный модуль Movidius (NCS) , который представляет собой аппаратный ускоритель нейронных сетей с интерфейсом USB. Меня заинтересовала возможность использования устройства в сфере робототехники, поэтому я приобрел его и решил запустить какую-нибудь нейросеть.
Однако большинство существующих примеров NCS решают проблему классификации изображений, и мне захотелось попробовать что-то другое, а именно распознавание лиц.
В этой публикации я хотел бы поделиться опытом, полученным в ходе такого эксперимента.
Весь код можно найти на GitHub .
Подробнее о НКС
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, и я не хотел трогать конфигурацию системы:Теги: #нейронный вычислительный модуль #распознавание лиц #нейронные сети #C++ #нейронные сети #C++ #обработка изображений #машинное обучениеsudo docker run -v `pwd`:/workspace/data \
-
Какой Сервер Мне Выбрать В Swtor?
19 Oct, 24 -
Использование Интернета Компанией
19 Oct, 24 -
Как Я Потерял Работу Программиста В 65 Лет
19 Oct, 24 -
Расскажите Пару Слов Об Интересных Проектах
19 Oct, 24 -
#27, Бобук И Умпутун
19 Oct, 24 -
Подкаст Имени Аосиниайо №3. О Трезвости
19 Oct, 24