Каскады Хаара против каскадов LBP в распознавании лиц - PullRequest
51 голосов
/ 09 января 2012

Я экспериментировал с обнаружением лиц в OpenCV (Open Source Computer Vision Library) и обнаружил, что можно использовать каскады Хаара для обнаружения лиц, поскольку некоторые из них поставляются с OpenCV.Тем не менее, я заметил, что есть также несколько каскадов LBP.Проведя некоторое исследование, я обнаружил, что LBP расшифровывается как Local Binary Patterns, и его также можно использовать для обнаружения лица, согласно OpenCV Document Detection Face .

Что я хотел бы знать, что работает лучше?Какой из них работает быстрее, а какой точнее?Кажется, что LBP работает быстрее, но я в этом не уверен на 100%.Спасибо.

Ответы [ 5 ]

60 голосов
/ 09 января 2012

LBP быстрее (в несколько раз быстрее), но менее точен.(На 10-20% меньше, чем у Хаара).

Если вы хотите обнаруживать лица во встроенной системе, я думаю, что LBP - это выбор, потому что он выполняет все вычисления в целых числах.Haar использует float, который является убийцей для встраиваемых / мобильных устройств.

23 голосов
/ 23 мая 2014

Каскад LBP может быть обучен для работы аналогично (или лучше), чем каскад Хаара, но из коробки каскад Хаара примерно в 3 раза медленнее, и, в зависимости от ваших данных, примерно на 1-2% лучше при точном обнаружении расположение лица. Это увеличение точности является довольно значительным, учитывая, что распознавание лиц может работать в диапазоне 95% +.

Ниже приведены некоторые результаты при использовании набора данных MUCT .

Правильное обнаружение отмечается, когда имеется не менее 50% перекрытия между координатами "правда-земля" и обнаруженными OpenCV.

Cascade:haarcascade_frontalface_alt2.xml
Datafile:muct.csv
|---------------------------------------------------|
|   Hits  |  Misses  | False Detects  | Multi-hit   |
|  3635   |   55     |   63           |    5        |
|---------------------------------------------------|
Time:4m2.060s

против

Cascade:lbpcascade_frontalface.xml
Datafile:muct.csv
|---------------------------------------------------|
|   Hits  |  Misses  | False Detects  | Multi-hit   |
| 3569    |  106     |   77           |    3        |
|---------------------------------------------------|
Time:1m12.511s
13 голосов
/ 23 ноября 2013

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

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

Точность каскадов HAAR и LBP зависит от наборов данных (положительных и отрицательных выборок), используемых для их обучения, и параметров, используемых во время обучения.

в соответствии с Lienhart et al., 2002 , в случае обнаружения лица:

  • ваши -numStages, -maxDepth и -maxWeakCount параметры должныбыть достаточно высоким, чтобы достичь желаемых -minHitRate и -maxFalseAlarmRate.
  • древовидное обучение более точно, чем на основе пня,
  • нежное adaboost предпочтительнее дискретного и реального adaboost,
  • минимальный размер обучающей выборки имеет значение, но систематическое исследование оэто еще предстоит сделать.

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

для тестирования каскада вы должны установить набор данных и такой метод, как k-fold перекрестная проверка .

10 голосов
/ 05 мая 2016

Может быть, это будет полезно для вас:

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

7 голосов
/ 02 июня 2013

Кроме того, на стадиях обучения LBP быстрее, чем Хаар. Для образца 2000 поз и образца 300 нег, тренировка по типу Хаара, для завершения потребовалось около 5-6 дней, но для LBP потребовалось всего несколько часов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...