¿Cuáles son algunos algoritmos de detección de edad y género que usan OpenCV?

OpenCV no es la mejor biblioteca para tal problema. Pero permítanme analizar una posible solución a un problema tan interesante utilizando algoritmos puramente de aprendizaje automático (ML). Microsoft HowOld [1] en realidad usa enfoques ML que se ejecutan en la plataforma de computación en la nube de Azure.

Dicho esto, las mejores bibliotecas para tales problemas basados ​​en clasificación / regresión son las bibliotecas ML como TensorFlow (TF). En TF hay algoritmos interesantes como las redes neuronales convolucionales (convNet) que puede usar para implementar sus algoritmos de detección de edad y género con algunos trucos. Simplemente reúne suficientes datos de entrenamiento y los clasifica en grupos de edad y género y entrena una arquitectura ML implementada en TF.

Pero no es tan trivial como eso, el sistema se puede implementar con dos módulos, la parte de edad se puede abordar mediante regresión y la parte de género mediante clasificación mediante una capa softmax de 2 vías, una salida para hombre y otra para mujer. Las dos subredes, la cabeza de regresión de edad y la cabeza de clasificación de género pueden compartir los mismos mapas de características convolucionales y entrenados de extremo a extremo utilizando datos sin procesar.

OpenCV puede ser útil para acelerar esto en una aplicación real. Se puede usar el detector de rostros de cascada para encontrar rápidamente las regiones faciales y luego enviar esas regiones a los detectores de edad / género descritos anteriormente. Pero el detector de rostros haarcascade no es muy robusto en comparación con las versiones convNet de detección de rostros. Por lo tanto, puede usar el enfoque YOLO (solo se ve una vez) para entrenar un detector facial rápido y robusto combinado con las cabezas de edad / género en un marco unificado que puede entrenar conjuntamente de una manera integral.

A estas alturas probablemente haya perdido interés en OpenCV. Pero incluso si OpenCV está limitado en las áreas de aplicación de ML, en realidad es muy importante para la mayoría de las técnicas de visión por computadora en 3D que requieren cosas como rastrear regiones sobresalientes, ajustar matrices de homografía, hacer detección de objetos a nivel de instancia, estimación de pose de cámara para realidad aumentada (AR), localización y mapeo simultáneos (SLAM) y cosido panorámico automático.

Hay muchas áreas de aplicaciones para OpenCV, pero está menos adaptado al aprendizaje automático (ML), ya que fue diseñado e implementado durante el tiempo en que los algoritmos como las redes neuronales profundas (DNN) todavía estaban en segundo plano.

Espero que esto ayude.

Notas al pie

[1] ¿Qué edad tengo?

More Interesting

Ahora he leído sobre algoritmos y estructuras de datos como Al Klein me dijo. ¿Qué lenguaje de programación debo aprender?

Como resolver esto

¿Hay alguna diferencia entre los algoritmos estocásticos y los probabilísticos?

¿Cuál es el significado de 'orden de crecimiento' en el análisis de algoritmos y cómo podemos encontrar el orden de crecimiento de un algoritmo dado?

¿Cuál ha sido el desarrollo reciente en algoritmos de búsqueda en tiempo real?

¿Cuáles son los algoritmos criptográficos básicos que un programador debe saber?

¿Cuál es una manera sencilla de encontrar big-O, big-Theta y big-Omega para una función determinada?

¿Cuál es el mejor algoritmo de aprendizaje automático sin supervisión para la segmentación de imágenes basada en color?

¿Cuál es el problema conmigo si puedo decir cómo funciona el algoritmo pero no puedo escribir el programa para el mismo? ¿Cómo puedo deshacerme de él? ¿Por favor ayuda?

¿Las personas en la industria realmente usan el algoritmo K-Nearest Neighbour en la práctica?

Cómo contar el número de enteros palindrómicos dentro de un rango [A, B] donde A y B pueden ser de hasta 10 ^ 17

¿Cómo puedo escribir un programa para encontrar el MCM de dos enteros positivos de su factorización prima?

¿Cuál es la aplicación práctica de un gráfico no ponderado?

¿Cuál es el curso / certificación mejor pagado disponible para estructuras de datos y algoritmo?

Cómo obtener una comprensión profunda y exhaustiva de la optimización de algoritmos en C ++