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.
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.
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
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.
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.
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.
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