HOG significa Histogramas de Gradientes Orientados. HOG es un tipo de “descriptor de características”. El objetivo de un descriptor de características es generalizar el objeto de tal forma que el mismo objeto (en este caso un rostro produzca lo más cerca posible del mismo descriptor de características cuando se lo vea bajo diferentes condiciones. Esto hace que la tarea de clasificación sea más fácil.
Los creadores de este enfoque formaron un Support Vector Machine (un tipo de algoritmo de aprendizaje automático para la clasificación), o “SVM”, para reconocer los descriptores HOG de los rostros.
El detector de rostros HOG es bastante simple de entender (en comparación con el reconocimiento de objetos SIFT, por ejemplo). Una de las principales razones para esto es que utiliza una función “global” para describir un rostro en lugar de una colección de características “locales”. En pocas palabras, esto significa que todo rostro está representado por un único vector de características, a diferencia de muchos vectores de características que representan partes más pequeñas de ese rostro.
El detector de rostros HOG usa una ventana de detección deslizante que se mueve alrededor de la imagen. En cada posición de la ventana del detector, se calcula un descriptor HOG para la ventana de detección. Este descriptor se muestra luego al SVM entrenado, que lo clasifica como “rostro” o “no rostro”.
Para reconocer los rostros a diferentes escalas, la imagen se submuestrea en varios tamaños. Se busca cada una de estas imágenes submuestreadas.
DETECCIÓN DE ROSTROS
La detección de rostros se generalizó a principios de la década de 2000, cuando Paul Viola y Michael Jones inventaron una forma de detectar caras lo suficientemente rápido como para funcionar con cámaras baratas. Sin embargo, existen soluciones mucho más confiables ahora. Vamos a utilizar un método inventado en 2005 llamado Histograma de gradientes orientados, o simplemente HOG para abreviar.
Para encontrar rostros en una imagen, empezaremos haciendo que nuestra imagen sea en blanco y negro porque no necesitamos datos de color para encontrar rostros:
Luego veremos cada píxel en nuestra imagen de a uno por vez. Para cada píxel, queremos ver los píxeles que lo rodean directamente:
Nuestro objetivo es determinar cuán oscuro se compara el píxel actual con los píxeles que lo rodean directamente. Luego queremos dibujar una flecha que muestre en qué dirección la imagen se vuelve más oscura:

Si repites ese proceso para cada píxel de la imagen, terminas con cada píxel reemplazado por una flecha. Estas flechas se llaman gradientes y muestran el flujo de claro a oscuro en toda la imagen:
Esto puede parecer algo aleatorio, pero hay una buena razón para reemplazar los píxeles con gradientes. Si analizamos los píxeles directamente, las imágenes realmente oscuras y las realmente claras de la misma persona tendrán valores de píxeles totalmente diferentes. Pero al considerar solo la dirección en que cambia el brillo, tanto las imágenes realmente oscuras como las realmente brillantes terminarán con la misma representación exacta. ¡Eso hace que el problema sea mucho más fácil de resolver!
Pero guardar el gradiente para cada píxel nos da demasiados detalles. . Sería mejor si pudiéramos ver el flujo básico de luminosidad / oscuridad en un nivel más alto para poder ver el patrón básico de la imagen.
Para hacer esto, dividiremos la imagen en pequeños cuadrados de 16×16 píxeles cada uno. En cada cuadro, vamos a contar cuántos puntos de gradientes en cada dirección principal (cuántos apuntan hacia arriba, cuantos apuntan hacia la derecha, etc.). Luego reemplazaremos ese cuadrado en la imagen con las direcciones de flecha más fuertes.
El resultado final es que convertimos la imagen original en una representación muy simple que capta la estructura básica de una cara de una manera simple:

Para encontrar rostros en esta imagen de HOG, todo lo que tenemos que hacer es encontrar la parte de nuestra imagen que se parece más a un patrón de HOG conocido que se extrajo de un gran conjunto de otras caras de entrenamiento:
Usando esta técnica, ahora podemos encontrar caras fácilmente en cualquier imagen:
Leave a Reply