opencv - Haar Cascades vs. LBP Cascades en detección de rostros
face-detection haar-wavelet (5)
Además, en las etapas de entrenamiento, LBP es más rápido que Haar. Con una muestra de 2000 pos y una muestra de 300 neg, el entrenamiento con el tipo de Haar, tardó entre 5 y 6 días en completarse, pero con LBP solo le tomó algunas horas.
He estado experimentando con la detección de rostros en OpenCV (Open Source Computer Vision Library), y descubrí que se podrían usar cascadas de Haar para detectar rostros, ya que hay varios de ellos provistos con OpenCV. Sin embargo, he notado que también hay varias cascadas de LBP. Después de investigar un poco, descubrí que LBP significa Patrones binarios locales, y también se puede usar para la detección de rostros, de acuerdo con la documentación de detección de rostros OpenCV .
Lo que me gustaría saber es, ¿qué funciona mejor? ¿Cuál se comporta más rápido y cuál es más preciso? Parece que LBP funciona más rápido, pero tampoco estoy 100% seguro de eso. Gracias.
LBP es más rápido (algunas veces más rápido) pero menos preciso. (10-20% menos que Haar).
Si desea detectar caras en un sistema integrado, creo que LBP es la opción, ya que hace todos los cálculos en enteros. Haar usa flotadores, que es un asesino para incrustado / móvil.
Mi opinión personal es que debe consultar LBP para todas las tareas relacionadas con la detección simplemente porque la capacitación LBP puede demorar minutos, mientras que la capacitación HAAR puede tomar días para el mismo conjunto de datos y parámetros de capacitación.
La pregunta que ha hecho tendrá un rendimiento diferente según el tipo de cosa que se detecte, las configuraciones de entrenamiento y los parámetros utilizados durante la detección, así como los criterios para probar las cascadas.
La precisión de las cascadas HAAR y LBP depende de los conjuntos de datos (muestras positivas y negativas) utilizados para entrenarlos y los parámetros utilizados durante el entrenamiento.
según Lienhart et al, 2002 , en el caso de la detección de rostros:
- sus
-numStages
,-maxDepth
y-maxWeakCount
deben ser lo suficientemente altos para lograr el deseado-minHitRate
y-maxFalseAlarmRate
. - el entrenamiento basado en árboles es más preciso que el basado en tocones,
- el adaboost suave es preferible al adaboost discreto y real,
- el tamaño mínimo de la muestra de capacitación importa, pero todavía no se ha hecho un estudio sistemático al respecto.
Además, los indicadores utilizados en detectMultiScale () producen un cambio drástico en velocidad y precisión en una configuración de hardware determinada.
para probar la cascada, debe establecer un conjunto de datos y un método como la validación cruzada k-fold.
Puede ser útil para usted:
Hay una Biblioteca Simd , que tiene una implementation de clasificadores en cascada HAAR y LBP. Puede usar cascadas estándar HAAR y LBP de OpenCV. Esta implementación tiene optimizaciones SIMD con el uso de SSE4.1, AVX2, AVX-512 y NEON (ARM), por lo que funciona en 2-3 veces más rápido que la implementación original de OpenCV.
Una cascada de LBP puede ser entrenada para desempeñarse de manera similar (o mejor) que la cascada de Haar, pero la cascada Haar es aproximadamente 3 veces más lenta y, dependiendo de sus datos, aproximadamente un 1-2% mejor para detectar con precisión la ubicación de una cara. Este aumento en la precisión es bastante significativo dado que la detección de rostros puede operar en el rango de precisión del 95% +.
A continuación se muestran algunos resultados al usar el conjunto de datos MUCT .
Se detecta una detección correcta cuando hay al menos un 50% de superposición entre las coordenadas de verdad de tierra y las detectadas de OpenCV.
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