La detección de rostros ha sido un problema resuelto desde principios de la década de 2000, pero hoy en día enfrenta algunos desafíos que incluyen encontrar rostros pequeños y detección en tiempo real en la CPU sin código oscuro y no portátil.
La técnica más utilizada es una combinación de histograma de gradientes orientados (HOG para abreviar) y Support Vector Machine (SVM) que logran relaciones de detección mediocres a relativamente buenas (no en tiempo real, al menos en la CPU) dada una imagen de buena calidad. Así es como funciona el algoritmo:
- Dada una imagen de entrada, calcule la representación piramidal de esa imagen, que es una pirámide de versión derribada a escala múltiple (tal vez gaussiana) de la imagen original. Para cada entrada en la pirámide, se utiliza un enfoque de ventana deslizante. El concepto de ventana deslizante es bastante simple. Al recorrer en bucle una imagen con un tamaño de paso constante, se extraen pequeños parches de imagen, típicamente de un tamaño de 64 x 128 píxeles a diferentes escalas. Para cada parche, el algoritmo toma una decisión si contiene una cara o no. El HOG se calcula para la ventana actual y se pasa al clasificador SVM (lineal o no) para que se tome la decisión (es decir, cara o no). Cuando se realiza con la pirámide, generalmente se realiza una operación de supresión no máxima (NMS para abreviar) para descartar rectángulos apilados. Puede leer más sobre la combinación HOG / SVM aquí.
- En Symisc pronto lanzaremos un marco de detección de objetos integrados de propósito general (incluida la detección de rostros) que logra un rendimiento en tiempo real en la CPU utilizando una combinación de redes neuronales y forestales aleatorias: https://github.com/symisc.
- Puede leer más sobre la combinación HOG / SVM aquí.
PixLab, donde actualmente trabajo, viene con muchos comandos que te permiten realizar operaciones en caras. Estos incluyen:
- ¿Cuántos datos necesitamos para pensar siquiera en aplicar el aprendizaje profundo?
- ¿Cómo podemos hacer una buena predicción usando el aprendizaje profundo MXNet R?
- ¿Cuáles son algunas aplicaciones de aprendizaje automático para el comportamiento del usuario?
- ¿Cuáles son los problemas de investigación 'hardcore' en visión artificial, aprendizaje automático y arquitectura informática?
- Cómo calcular la ganancia de información para cada atributo si estoy diseñando un árbol clasificador de decisiones con nodos binarios en cada derrame
- facedetect: se utiliza para la detección de rostros.
- marcas faciales: se utilizan para extraer rasgos faciales como los ojos , los huesos y las coordenadas de la boca .
- facecompare: para comparación cara a cara. En otras palabras, se usa para el reconocimiento.
- facelookup: ¡encuentra la cara de una persona en una multitud de personas!
Espero que esto ayude.