Paso 2: Cascadas de Haar - una introducción
Para bien o para mal, la mayoría de los teléfonos celulares y cámaras digitales hoy en día pueden detectar rostros humanos y, como se ve en el paso anterior, no se necesita demasiado esfuerzo para obtener el código de detección de cara simple en un teléfono con Android (o cualquier otra plataforma), uso de OpenCV.
Esto es todo gracias al algoritmo de Viola-Jones para la detección de la cara, usando clasificadores cascada base de Haar. Hay mucha información sobre esto en Internet, pero una explicación muy bonita puede encontrarse en la Página Web de OpenCV.
Es básicamente una máquina de aprender el algoritmo que utiliza un montón de imágenes de caras y no caras para formar un clasificador que puede utilizarse más adelante para detectar caras en tiempo real.
El algoritmo implementado en OpenCV también puede utilizarse para detectar otras cosas, como tienes los clasificadores derecha. Mi distribución de OpenCV vino con clasificadores para ojos, parte superior del cuerpo, manos, cara frontal y la cara de perfil. Mientras buscaba información acerca de cómo entrenarlos, encontré clasificadores para plátanos, plumas y iPhones.
En realidad, ese último link es para más que iPhones. En su proyecto de Prueba de espejo , Jeff Thompson es realmente formación ordenadores para reconocerse en un "no-utilitario, imperfecto poética/tecnológica acto".
Similar a lo que queremos, pero ya que tenemos un teléfono muy concreto para detectar, decidimos formar nuestro propio clasificador.
El OpenCV tutorial para formación cascada de clasificadores es un muy buen lugar para empezar. Explica las 2 utilidades binario utilizadas en el proceso (opencv_createsamples y opencv_traincascade) y todos los argumentos de línea de comandos y opciones, pero realmente no da un ejemplo de un flujo a seguir, ni explica los posibles usos de la utilidad opencv_createsamples .
Por otro lado, tutorial de Naotoshi Seo es realmente muy completa y explica que los 4 diferentes aplicaciones para la utilidad opencv_createsamples . Thorsten bola escribió un tutorial usando scripts de Naotoshi Seo formar un clasificador para detectar bananas, pero se requiere ejecutar algunos scripts en perl y compilar algunos C++... demasiado trabajo...
Jeff también tiene algunas notas agradables acerca de cómo él preparó sus datos y un script para iteración automáticamente un par de opciones para las 2 utilidades.
Lo que hicimos fue inspirado por todos estos tutoriales, con algunas pequeñas modificaciones y optimizaciones.