Dominar la tecnología de reconocimiento facial: una guía avanzada

Los CEO de startups llevan vidas ocupadas. Por ejemplo, encontrar a nuestro CEO en los tres pisos del espacio de oficinas puede ser más arduo que 'encontrar a Waldo'. Pero como desarrolladores, nuestras mentes siempre siguen el enfoque problema-solución.
Nos gustaría saber si podemos usar el módulo de reconocimiento facial con el que nos mojamos los pies todos los días para identificar a las personas objetivo a través de las transmisiones de cámaras IP.
La tecnología de reconocimiento facial ha revolucionado el mundo recientemente, y su adopción ha aumentado rápidamente en varios campos, incluidos la seguridad, el comercio minorista, B2B y el entretenimiento.
El avance en el aprendizaje profundo ha permitido el uso generalizado de la tecnología de reconocimiento facial. Administrar a sus empleados es una experiencia perfecta con las herramientas de reconocimiento facial. Puede ahorrar tiempo que de otro modo se dedicaría al seguimiento de asistencia, gestión de nómina, etc.
Esta guía avanzada lo ayudará a comprender varios modelos y bibliotecas de aprendizaje profundo utilizados para el reconocimiento facial y cómo habilitar el reconocimiento facial a nivel práctico.
Empecemos.

¿Cómo funciona el reconocimiento facial?
Un sistema de reconocimiento facial funciona identificando o verificando el rostro de una persona en una imagen. Implica varios pasos, que se pueden organizar en una canalización, como se muestra en la imagen de ejemplo.

- Detección de rostros: la detección de rostros se refiere al proceso de identificación automática de rostros humanos dentro de imágenes digitales o cuadros de video.
- Extracción de características: extracción de las características esenciales de una imagen de la cara.
- Clasificación de rostros: es el proceso de categorizar un rostro detectado en una o más categorías predefinidas en función de las características extraídas.
Hay varios procesos de extracción y clasificación de características. Primero, discutiremos MTCNN (Red neuronal convolucional en cascada multitarea), que se utiliza para la detección de rostros.
MTCNN
El Red neuronal convolucional en cascada multitarea (MTCNN) es una herramienta de última generación para la detección de rostros en imágenes y videos. Utiliza un detector de red neuronal de 3 etapas para localizar e identificar rostros con precisión. Puede obtener más información sobre MTCNN en el documento de investigación vinculado.

¿Cómo funciona MTCNN?
Para detectar caras de varios tamaños, primero se cambia el tamaño de la imagen varias veces. Luego, la red P escanea la imagen y realiza la detección inicial. Si bien tiene un umbral bajo para la detección, lo que genera muchos falsos positivos incluso después de usar la supresión no máxima (NMS), este diseño es intencional. Las regiones identificadas por la red P, que pueden contener muchos falsos positivos, se ingresan en la segunda red, la red R.
Como sugiere su nombre, la red R refina las detecciones mediante el uso de NMS para obtener cuadros delimitadores relativamente precisos. La red O en MTCNN refina los cuadros delimitadores para la detección de rostros y también tiene la característica opcional de detectar puntos de referencia faciales como ojos, nariz y comisuras de la boca a bajo costo. Estos puntos de referencia faciales pueden ser útiles para la alineación de la cara.
facenet
FaceNet de Google es un programa informático que puede identificar y verificar rostros a gran escala. Se basa en una red neuronal convolucional profunda, un tipo de inteligencia artificial entrenada para reconocer patrones en los datos.
FaceNet utiliza un método de entrenamiento único llamado función de pérdida de triplete para ayudar a distinguir entre diferentes rostros. Esto significa que cuando al programa se le muestran dos imágenes de la misma persona, intentará hacer que los “vectores” (representaciones matemáticas de las imágenes) para esas dos imágenes sean lo más similares posible.
Por otro lado, cuando se muestran dos imágenes de diferentes personas, intentará que los vectores de esas imágenes sean lo más diferentes posible. FaceNet es la base de varios sistemas de reconocimiento facial de código abierto, como FaceNet con TensorFlow, Keras FaceNet, DeepFace y OpenFace.
¿Cómo funciona FaceNet?
FaceNet es un modelo de aprendizaje automático que toma una imagen de la cara de una persona como entrada y genera un vector de 128 números. Este vector, llamado incrustación, representa las características más significativas de la cara y contiene toda la información esencial de la imagen. Al usar FaceNet, el objetivo es que las incrustaciones de rostros similares también sean similares.
Uno de los aspectos significativos de FaceNet es su función de pérdida. utiliza el función de pérdida de triplete. Necesitamos tres imágenes para calcular la pérdida del triplete: ancla, positiva y negativa.

Queremos que las distancias entre la incrustación de nuestra imagen ancla y las incrustaciones de nuestras imágenes positivas sean menores que las distancias entre la incrustación de nuestra imagen ancla y nuestras imágenes negativas.
La función de pérdida de triplete se puede definir formalmente de la siguiente manera:

- f(x) toma x como entrada y devuelve un vector w de 128 dimensiones.
- El subíndice a indica una imagen ancla, p indica una imagen positiva y n indica una imagen negativa.
FaceNet aprende de la siguiente manera
- Selecciona aleatoriamente una imagen ancla.
- Selecciona una imagen del mismo individuo que la imagen ancla de forma aleatoria.
- Selecciona aleatoriamente una imagen de una persona diferente de la imagen ancla (ejemplo negativo).
- Modifique los parámetros de la red FaceNet de modo que el ejemplo positivo se coloque más cerca del ancla que el negativo.
softmax
Para clasificar una cara nueva, calculamos la distancia entre su incrustación y las incrustaciones de caras conocidas. Luego, usamos un clasificador llamado Softmax para determinar a qué cara conocida pertenece la cara nueva.
Softmax fue una elección natural para nosotros, ya que todo el sistema se basa en redes neuronales, pero también podría usar otros clasificadores como SVM o Random Forest. Siempre que las incrustaciones de caras sean de alta calidad, cualquier clasificador debería funcionar bien en este paso.
Biblioteca de caras profundas
DeepFace es un sistema de reconocimiento facial de aprendizaje profundo desarrollado por el equipo de investigación de IA de Facebook en 2014. Es un enfoque basado en redes neuronales que utiliza un modelo 3D para alinear las características faciales y una red neuronal profunda para codificar imágenes faciales en una característica de alta dimensión. vector. El modelo Deep Face admite varios modelos de reconocimiento facial, como OpenFace, Google FaceNet, VGG-Face, Facebook DeepFace, ArcFace, DeepID, Dlib y SFace.
Las cuatro funciones, verificar, encontrar, y analizarjunto con la corrientehacer todas las funcionalidades del módulo de reconocimiento facial.
Verificar función
La función determina si los pares de rostros pertenecen a la misma persona oa personas diferentes. Espera rutas de imagen exactas como entradas. Y la función devolverá un diccionario, y debe verificar el valor de la clave verificada. Devolverá verdadero si las caras coinciden; de lo contrario, devolverá False.

Buscar función
La función de búsqueda de DeepFace busca la identidad de las imágenes de entrada en la ruta de la base de datos, similar a la proporcionada como imagen de entrada.

Función de análisis
DeepFace proporciona un sólido análisis de atributos faciales, como edad, género, expresiones faciales (miedo, ira, felicidad y tristeza) y raza, incluidos asiáticos, blancos, del Medio Oriente, indios, latinos y negros.

Función de corriente
La función de transmisión ofrece transmisión en vivo usando nuestra cámara web. Aplica tanto el reconocimiento facial como el análisis de atributos faciales.

Comparación de modelos de reconocimiento facial en tiempo real
Hemos probado el modelo FaceNet en TensorFlow, PyTorch y la biblioteca Deep Face. A continuación se muestran los resultados y conclusiones que extrajimos después de probar rigurosamente los modelos anteriores explicados. Usamos los siguientes criterios para probar mis modelos.
- Diferentes ángulos de la cara.
- Diferentes condiciones de iluminación
- cabeza en movimiento
- Velocidad de fotogramas alcanzada
- Detección entre un grupo de personas.
Modelos | Diferentes ángulos de la cara | Condiciones de iluminación dif. | cabeza en movimiento | Detección entre grupo | FPS logrados |
Tensorflow de Facenet | Algunos FP están ahí | Depende del conjunto de datos proporcionado | viene FP | Vienen falsos positivos | 6-8FPS |
Pytorch Facenet | Obteniendo con mínimo FP | Depende del conjunto de datos proporcionado | Nº mínimo de FP. | Obtención de resultados de hasta un 80 % de precisión | 7-9 FPS |
caraprofunda | viene FP | No conseguir | Enfrentando problemas de FP | No detectar entre un grupo | 2-3FPS |
Conclusión
La tecnología de reconocimiento facial tiene el potencial de revolucionar una amplia gama de industrias y aplicaciones. Ya sea que se use con fines de seguridad, para mejorar la experiencia del cliente en entornos minoristas, para administrar a sus empleados o para el entretenimiento, esta tecnología puede hacer que nuestras vidas sean más fáciles y convenientes.
Si bien siempre habrá preocupaciones sobre cuestiones como la privacidad y la precisión, los beneficios de la tecnología de reconocimiento facial superan con creces las posibles desventajas, y deberíamos adoptarla como una herramienta poderosa para el mejoramiento de la humanidad.
Si desea aprovechar las posibilidades del reconocimiento facial, póngase en contacto con nuestros expertos hoy para una consulta gratuita.
Deja una respuesta
Lo siento, debes estar conectado para publicar un comentario.
Te podría interesar...