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.

El rostro de una persona escaneado por una tecnología de reconocimiento facial
Índice de contenidos
  1. ¿Cómo funciona el reconocimiento facial?
  2. facenet
  3. ¿Cómo funciona FaceNet?
    1. softmax
    2. Biblioteca de caras profundas
    3. Verificar función
    4. Buscar función
    5. Función de análisis
    6. Función de corriente
  4. Comparación de modelos de reconocimiento facial en tiempo real
  5. Conclusión

¿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.

tubería de tecnología de reconocimiento facial
  • 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.

Un modelo de aprendizaje profundo utilizado para el reconocimiento facial

¿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.

Un modelo de aprendizaje profundo utilizado para el reconocimiento facial

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:

ecuación para un modelo de aprendizaje profundo que utiliza la función de pérdida de triplete para el reconocimiento facial
  • 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

  1. Selecciona aleatoriamente una imagen ancla.
  2. Selecciona una imagen del mismo individuo que la imagen ancla de forma aleatoria.
  3. Selecciona aleatoriamente una imagen de una persona diferente de la imagen ancla (ejemplo negativo).
  4. 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.

verificar la función de tecnología de reconocimiento facial

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.

encontrar función tecnología de reconocimiento facial

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.

Analizar la función en la tecnología de reconocimiento facial

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.

función de transmisión en la tecnología de reconocimiento facial

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.
ModelosDiferentes ángulos de la caraCondiciones de iluminación dif.cabeza en movimientoDetección entre grupoFPS logrados
Tensorflow de FacenetAlgunos FP están ahíDepende del conjunto de datos proporcionadoviene FP Vienen falsos positivos6-8FPS
Pytorch FacenetObteniendo con mínimo FPDepende del conjunto de datos proporcionadoNº mínimo de FP.Obtención de resultados de hasta un 80 % de precisión7-9 FPS
caraprofunda viene FPNo conseguirEnfrentando problemas de FPNo detectar entre un grupo2-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.

Te podría interesar...

Deja una respuesta

Subir