Подтвердить что ты не робот

Каскады Хаара против LBP-каскадов в распознавании лиц

Я экспериментировал с обнаружением лица в OpenCV (Open Source Computer Vision Library) и обнаружил, что можно использовать каскады Haar для обнаружения лиц, поскольку некоторые из них снабжены OpenCV. Однако я заметил, что есть также несколько каскадов LBP. Проведя некоторое исследование, я обнаружил, что LBP обозначает локальные двоичные рисунки, а также может использоваться для распознавания лиц в соответствии с OpenCV Face Detection Documentation.

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

4b9b3361

Ответ 1

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

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

Ответ 2

Каскад 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

Ответ 3

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

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

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

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

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

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

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

Ответ 4

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

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

Ответ 5

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