Kaskady Haar kontra kaskady LBP w wykrywaniu twarzy

Eksperymentowałem z wykrywaniem twarzy w OpenCV( Open Source Computer Vision Library) i odkryłem, że można użyć kaskad Haar do wykrywania twarzy, ponieważ istnieje kilka z nich wyposażonych w OpenCV. Zauważyłem jednak, że istnieje również kilka kaskad LBP. Po przeprowadzeniu pewnych badań odkryłem, że LBP oznacza Local Binary Patterns i może być również używany do wykrywania twarzy, zgodnie z dokumentacją OpenCV Face Detection Documentation.

Co chciałbym wiem, co działa lepiej? Który z nich działa szybciej, a który jest dokładniejszy? Wygląda na to, że LBP działa szybciej, ale tego też nie jestem w 100% pewien. Dzięki.

Author: saurabheights, 2012-01-09

5 answers

LBP jest szybszy (kilka razy szybszy) , ale mniej dokładny. (10-20% mniej niż Haar).

Jeśli chcesz wykryć twarze w systemie wbudowanym, myślę, że LBP jest wyborem, ponieważ wykonuje wszystkie obliczenia w liczbach całkowitych. Haar używa pływaków, które są zabójcze dla embedded / mobile.

 55
Author: Sam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-13 10:53:35

Kaskada LBP może być przeszkolony do wykonywania podobnie (lub lepiej) niż Kaskada Haar, ale po wyjęciu z pudełka kaskada Haar jest około 3x wolniejsza, a w zależności od danych, o 1-2% lepiej w dokładnym wykryciu lokalizacji twarzy. Ten wzrost dokładności jest dość znaczący, biorąc pod uwagę, że wykrywanie twarzy może działać w zakresie dokładności 95%+.

Poniżej przedstawiamy wyniki korzystania z zbioru danych MUCT.

Prawidłowe wykrywanie jest odnotowywane, gdy jest co najmniej 50% / align = "center" bgcolor = "# e0ffe0 " / premier Wysp Owczych / / align = center /

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

Vs:

Cascade:lbpcascade_frontalface.xml
Datafile:muct.csv
|---------------------------------------------------|
|   Hits  |  Misses  | False Detects  | Multi-hit   |
| 3569    |  106     |   77           |    3        |
|---------------------------------------------------|
Time:1m12.511s
 19
Author: NoUserException,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-06-17 13:30:36

Moja osobista opinia jest taka, że powinieneś zajrzeć do LBP dla wszystkich zadań związanych z wykrywaniem po prostu dlatego, że trening LBP może trwać kilka minut, podczas gdy trening HAAR może trwać kilka dni dla tego samego zestawu danych treningowych i parametrów.

Zadane pytanie będzie miało różną wydajność w zależności od rodzaju wykrywanej rzeczy, ustawień treningu i parametrów używanych podczas wykrywania, a także kryteriów testowania kaskad.

Dokładność zarówno HAAR, jak i LBP kaskady zależą od zbiorów danych (próbek pozytywnych i negatywnych) wykorzystywanych do ich treningu oraz parametrów wykorzystywanych podczas treningu.

Według Lienhart et al, 2002 , W przypadku wykrywania twarzy:

  • Twój -numStages, -maxDepth i -maxWeakCount parametry powinny być wystarczająco wysokie, aby osiągnąć pożądane -minHitRate i -maxFalseAlarmRate.
  • Trening oparty na drzewie jest bardziej dokładny niż trening oparty na pniu.]}
  • delikatny adaboost jest lepszy od dyskretnego i rzeczywistego adaboost,
  • minimalny rozmiar próbki treningowej ma znaczenie, ale systematyczne badanie na ten temat nie zostało jeszcze wykonane.

Również flagi użyte w detectMultiScale() powodują drastyczną zmianę prędkości i dokładności w danej konfiguracji sprzętowej.

Do testowania kaskady należy rozliczyć na zbiorze danych i metodzie takiej jak K-fold cross validation.

 11
Author: samkhan13,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-09 16:23:23

Może Ci się przyda:

Istnieje Biblioteka Simd , która ma implementację klasyfikatorów kaskadowych HAAR i LBP. Może używać standardowych kaset HAAR i LBP z OpenCV. Ta implementacja posiada optymalizacje SIMD przy użyciu SSE4. 1, AVX2, AVX - 512 i NEON( ARM), dzięki czemu działa 2-3 razy szybciej niż oryginalna implementacja OpenCV.

 9
Author: ErmIg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-13 10:14:21

Ponadto, na etapach treningowych, LBP jest szybszy niż Haar. Z próbką 2000 pos i próbką 300 neg, szkolenie z użyciem typu Haar zajęło około 5-6 dni, ale w przypadku LBP zajęło to tylko kilka godzin.

 5
Author: Đôn Nguyễn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-02 00:32:03