Медленное обнаружение лица на OpenCV? - PullRequest
6 голосов
/ 21 сентября 2010

Я скомпилировал и установил OpenCV (последняя версия из SVN) на Mac Os X (возможно, это источник проблемы).

Пример работает, но алгоритм распознавания лиц кажется мне медленным. Время обнаружения лица составляет около 400 мс (я только что использовал приведенный пример). FPS тогда довольно низкий.

На YouTube и всем остальном я вижу супергладкое видео с распознаванием лиц в реальном времени (даже на iPhone), поэтому я чувствую себя сбитым с толку. Я помню, что это было еще быстрее на моем старом ПК с Windows.

Является ли 400 мс правильным временем обнаружения?

Примечание: мой Macbook не старый (2009), и на нем все работает нормально. Я использую веб-камеру iSight (встроенную веб-камеру). У меня только одно лицо (мое лицо) на веб-камере. И примерно в то же время, если нет лица.

Ответы [ 6 ]

5 голосов
/ 02 февраля 2011

Какой размер входного изображения.Я предполагаю 640x480.Обычно люди, которые публикуют видео на YouTube, изменяют размер изображения до 160x120.В полном разрешении 640x480 очень сложно получить более 2-3 кадров в секунду.Попробуйте отправить изображение размером 160х120.Вы должны получить по крайней мере 10 кадров в секунду.

3 голосов
/ 20 октября 2016

Недавно я нашел библиотеку Simd , которая имеет реализацию каскадных классификаторов HAAR и LBP.Он может использовать стандартные каскады HAAR и LBP от OpenCV.Эта реализация имеет SIMD-оптимизацию с использованием SSE4.1, AVX2 и NEON (ARM), поэтому она работает в 2-3 раза быстрее, чем оригинальная реализация OpenCV.

3 голосов
/ 02 ноября 2012

Добавление к предыдущим ответам:

Вы также можете ускорить процесс, установив Макс и, самое главное, минимальный размер для detectMultiScale.

[Кроме того, как и в предыдущих ответах, требуется значительное уменьшение масштаба, поскольку детектор Хаара использует очень простые функции (для отношений до 6 пикселей; в больших масштабах вы добавляете прямоугольные области, как если бы это было один пиксель). На стандартном mac / mbp2011 я мог получить около 60 кадров в секунду, что более чем достаточно.]

Для еще большего ускорения можно также исключить неизменяемые области, используя, например, templateMatching.

0 голосов
/ 08 января 2019

Кто-нибудь знает, почему обнаружение лица в OpenCV 3.4.5 происходит так медленно?Я думаю, что это было намного быстрее в версии 3.4.3. Я не делал никаких сравнительных тестов, но это выглядело намного быстрее.

0 голосов
/ 26 мая 2016

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

Кроме того, OpenCv поддерживает использование Canny для отбрасывания областей, в которых шансы найти Лицо отсутствуют.

0 голосов
/ 18 марта 2011

У меня была та же проблема, на четырехъядерном компьютере с 4 ГБ ОЗУ было 500 мс на обнаружение, однако я заметил, что есть опция Scale ....

. / Facedetect --scale = 4

Я получаю частоты обнаружения <20 мс </p>

Надеюсь, это поможет,

Keukpa

...