Pull to refresh

Comments 12

А на «софте» сколько fps получается? Или нет возможности эту сетку запустить на обычном процессоре?
Если честно, я не проверял. Возможность вполне есть, надо только собрать демо из репозитории, откуда я модель взял. Попробую проверить, мне и самому интересно стало.
Проверил. Без GPU и CUDNN получается 0.9 fps на core i3 (это в формате Darknet). То есть, ускорение вполне приличное для такого небольшого устройства. Как я и написал в статье, эта архитектура нейросети предполагает использование видеокарты даже на этапе применения.
Спасибо. Будет теперь в голове хоть какая-то зацепка на тему относительной производительности этого устройства.

Странно — очень маленькие цифры у вас получились.
Мы запускали детектор лиц на базе OpenCV на hi3516 (ARM v7, 600MHZ), hard float point. Получили примерно 2-5 fps.


Думаю, на RPi, можно достичь похожих или даже лучших цифр без внешнего железа.

Если я правильно вас понял, то детектор на базе OpenCV — это каскадный Haar или LBP. Я пробовал запускать их на RPi, и получил похожую производительность (порядка 5-7 вроде). Проблема в том, что большей скорости можно добиться только за счет сильного падения качества. У меня есть подозрения, что с помощью нейросетки можно добиться порядка 15 fps или больше, если выбрать более «легковесную» архитектуру, но это еще проверить нужно. С нейросеткой, которую я запускал, есть одна проблема — она явно рассчитана на использование видеокарты. Сейчас есть много архитектур, которые позволяют значительно повысить скорость за счет небольшого падения качества (те же Mobile Net, например).

Насчет маловато ли 4.5 fps — подумайте о том, что лица в видео не меняются с каждым кадром. На мой взгляд вполне достаточно по 4 кадрам из 25 находить лица.

Если важна производительность (fps), то настоятельно рекомендую отказаться от использования нейронных сетей а взять готовую библиотеку OpenCV. У них в документации готовый пример с использованием каскадов Хаара. Поверьте сьевшему на этом собаку будет на порядок быстрее.

Вообще идея использовать нейронные сети для распознавания простых образов на видео это как колоть орехи электронным микроскопом. В теории — все радужно, кроме специфических требований к ресурсам. На практике — бесконечный процесс переобучения (смена формата видео, разрешения, типа сенсора камеры, даже, освещенности приводят к тому что систему надо полностью переобучать или серьезно переделывать). Хорошо для разовых проектов но очень непрактично в реальной жизни.
В этом есть смысл, если 5-7 fps достаточно (примерно столько выдает Haar на RPi), а я хотел бы выжать больше, и у меня есть подозрения, что это сделать вполне можно (я проверю).

По поводу колки орехов электронным микроскопом: нейросети неплохо решают множество задач, в том числе и обнаружение лиц, так что не вижу причин отказываться от них. Чувствительность к входным данным — это уже свойства модели, и тот же самый каскадный детектор может плохо переваривать перепады в освещении и окклюзии. Если вдруг модель настолько чувствительна к входным данным, то это скорее плохо обученная модель.

В любом случае, я не предлагаю всем использовать нейросети для обнаружения лиц для всех типов задач. Это скорее экспериментирование с NCS — попытка запустить нейросеть в формате, который официально не поддерживается.
Будет интересно если у вас получиться быстрее. В системах что я строил fps был повыше (60 — 120) и разрешение камеры не уменьшалось до таких маленьких размеров. Если взять стандартное на сегодня FullHD и сжать до 448х448 очень много информации потеряется.
Кстати, как вы обучаете сеть? Размечать кадр за кадром довольно муторное занятие.
Я не обучал сеть. В статье я указал, что использовал готовую модель. Но вообще для этого есть открытые базы размеченных изображений, на них обычно и производится обучение. К каскадным детекторам это тоже относится, кстати.
Из моего опыта, обучение на сторонней базе давало сильно худшие результаты как раз из-за несовпадающих параметров картинок и используемого видео. Каскад же и сгенерить легче, и использование готового дает хорошие результаты. Чтож, «будем посмотреть».
Sign up to leave a comment.

Articles