Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial Internet of Things >> Incrustado

Los fundamentos del reconocimiento facial

Desde tiempos inmemoriales, el rostro humano ha servido como el estándar más sencillo para la identificación. Por lo tanto, no es de extrañar que se convierta en la técnica de identificación biométrica más conveniente. A diferencia de otros métodos biométricos como el habla, las huellas dactilares, la geometría de la mano, la huella de la palma, el análisis de una cara no requiere la cooperación activa del objeto en cuestión. El reconocimiento facial se puede realizar a partir de una foto, un video o una captura en vivo.

El reconocimiento facial es un término amplio que se le da al proceso de identificación o verificación de personas en fotografías y videos. El método comprende detección, alineación, extracción de características y reconocimiento.

A pesar de tener varios desafíos prácticos, el reconocimiento facial encuentra un amplio uso en diversas áreas como la atención médica, la aplicación de la ley, la reserva de trenes, la seguridad, la automatización del hogar y las oficinas.

En esta publicación, descubrirás lo siguiente:

¿Qué es el reconocimiento facial?

El reconocimiento facial es una técnica de identificación biométrica en la que el software utiliza algoritmos de aprendizaje profundo para analizar los rasgos faciales de una persona y almacenar los datos. Luego, el software compara varios rostros de fotos, videos o capturas en vivo con los rostros almacenados en las bases de datos y verifica las identidades. Por lo general, el software identifica aproximadamente 80 puntos nodales distintos en la cara de un individuo. Los puntos nodales sirven como puntos finales para definir las variables de la cara de un individuo. Las variables incluyen:forma de los labios, ojos, largo y ancho de la nariz y profundidad de las cuencas de los ojos.

La popularidad del reconocimiento facial en comparación con otras técnicas biométricas se debe al hecho de que, por lo general, tiende a ser más preciso y menos intrusivo.

Clasificación del algoritmo de reconocimiento facial El reconocimiento facial es la técnica de reconocer un rostro que ya ha sido registrado en la base de datos. Un sistema de reconocimiento facial está involucrado en dos tareas: verificación e Identificación .

La verificación está destinada a responder la pregunta:"¿Es él la persona que dice ser?" Cuando un individuo afirma ser una persona específica, el sistema de verificación encuentra su perfil en la base de datos. Compara el rostro de la persona con el del perfil presente en la base de datos para verificar si coinciden. Es un sistema de comparación 1 a 1, ya que el sistema tiene que hacer coincidir la cara del individuo con una cara específica que ya está presente en el perfil vinculado. Por lo tanto, la verificación es más rápida que la identificación y más precisa.

En la identificación de rostros, el sistema intenta comparar el rostro de entrada con todos los rostros presentes en su base de datos. Este es un sistema de coincidencia de 1 a n.

Varias etapas de un sistema de reconocimiento facial

Hablemos de las dos etapas de un sistema de reconocimiento facial: registro y reconocimiento .

En la primera etapa o la etapa de registro, se inscribe un conjunto de caras conocidas. Luego, el extractor de características genera un vector de características único para cada una de las caras registradas. El vector de características se genera en función de las características faciales únicas de cada uno de los rostros. El vector de características extraído, que es único para cada rostro, se convierte en parte de la base de datos registrada y se puede utilizar para referencia futura.

En la etapa de reconocimiento, se proporciona una imagen de entrada al extractor de características para realizar el reconocimiento facial. Aquí también, el extractor de características genera un vector de características único para la imagen de la cara de entrada. Luego, este vector de características se compara con los vectores de características que ya están disponibles en la base de datos. El bloque de "clasificación basada en características" compara la distancia entre las características faciales de la cara de entrada y las caras registradas en la base de datos. Cuando un rostro registrado cumple los criterios de coincidencia, la clasificación basada en características devuelve el ID de rostro coincidente que se encuentra en la base de datos.

Componentes básicos de un sistema de reconocimiento facial

Los componentes principales de un sistema de reconocimiento facial son:detección de rostros, detección de puntos de referencia, detección de vivacidad, módulo de reconocimiento de rostros (reconocimiento de rostros, identificación de rostros / verificación de rostros).

Al principio, una imagen o un cuadro de una secuencia de video se envía al módulo de detección de rostros donde se detectan los rostros de la imagen de entrada. Como salida, envía las coordenadas del cuadro delimitador para las caras detectadas. El problema aquí es que, aunque el detector de rostros localiza los rostros de la imagen y crea el cuadro delimitador para cada rostro, no garantiza la alineación adecuada de los rostros y los cuadros delimitadores de rostros están sujetos a fluctuaciones. Por tanto, se requiere una etapa de preprocesamiento de caras para obtener un vector de caras eficaz. Esta etapa ayuda a mejorar la capacidad de detección de rostros del sistema.

El preprocesamiento facial se realiza en el bloque de detección de puntos de referencia, que identifica la ubicación de los puntos de referencia (también denominados puntos de referencia fiduciales) en el rostro, como ojos, nariz, labios, mentón, mandíbula. Estos puntos de referencia de la cara detectados se compensan luego por los cambios espaciales en la cara. Esto se hace identificando la estructura geométrica de la cara y obteniendo una alineación canónica basada en varias transformaciones, como la rotación de escala de traducción. Esto genera un cuadro delimitador ajustado de la cara con coordenadas canónicas normalizadas.

Antes de enviar la cara alineada al módulo de reconocimiento facial, es esencial verificar la suplantación de la cara para asegurarnos de que la cara se toma de una transmisión en vivo de una imagen o video y no es una suplantación para obtener acceso no autorizado. El detector de vivacidad hace esta comprobación.

Luego, la imagen se envía al siguiente bloque, que es el bloque de reconocimiento facial. Este bloque realiza una serie de tareas de procesamiento antes de que se complete con éxito el reconocimiento facial. El primer paso es el procesamiento de caras, que se requiere para manejar variaciones dentro de la clase en la cara de entrada. Este es un paso esencial porque no queremos que el módulo de reconocimiento de rostros se distraiga con variaciones como diferentes poses, expresiones, cambios de iluminación y oclusiones presentes en la imagen del rostro de entrada. Una vez resueltas las variaciones intraclase en la cara de entrada, el siguiente paso importante del procesamiento es la extracción de características. La función de un extractor de características ya se ha discutido anteriormente.

El paso final de un módulo de reconocimiento facial es el paso de coincidencia de rostros, donde se realiza una comparación entre los vectores de características obtenidos en el último paso y los vectores de rostros registrados en la base de datos. En este paso, se calcula la similitud y se genera una puntuación de similitud que se usa más para la identificación facial o la verificación facial según el requisito.

Un ejemplo de SDK de reconocimiento facial

Usaremos la solución de software SDK de reconocimiento facial con licencia de PathPartner para mostrar cómo implementar un sistema preciso de detección y reconocimiento facial. El SDK, que comprende algoritmos de aprendizaje automático y visión por computadora, le permite realizar seis tareas críticas de reconocimiento facial.

El SDK viene en dos variantes:

  1. Variante de baja complejidad con un tamaño de modelo tan bajo como 10 MB, adecuada para dispositivos finales con poca memoria y potencia de procesamiento.
  2. Variante de alta complejidad con un tamaño de modelo de 90 MB adecuado para dispositivos periféricos de servicio completo.

El algoritmo está optimizado en una variedad de plataformas integradas de Texas Instruments, Qualcomm, Intel, Arm, NXP y puede seguir funcionando en las plataformas de servidor en la nube.

Desarrollo de un sistema de reconocimiento facial basado en CNN

Se prefiere el enfoque basado en CNN sobre el enfoque no basado en CNN para reducir el esfuerzo para combatir los desafíos como la oclusión y las diferentes condiciones de iluminación. El proceso de reconocimiento incluye los siguientes pasos:

Recopilación de datos

Los conjuntos de datos disponibles públicamente no cubren todos los parámetros de evaluación que son críticos para el reconocimiento facial. Por lo tanto, esto requiere una evaluación comparativa detallada de una serie de conjuntos de datos estándar e internos que cubren una amplia gama de variaciones que se pueden utilizar para el análisis facial. Las siguientes variaciones son compatibles con este SDK:pose, iluminación, expresión, oclusión, género, origen, etnia, edad, ojo, apariencia.

Diseño de modelos de aprendizaje profundo

La complejidad del modelo depende de la aplicación del usuario final. Este SDK se implementa en sistemas de monitoreo de conductores (DMS) y sistemas de asistencia inteligente.

Sistema de monitoreo del conductor:para evaluar el estado de alerta y el enfoque del conductor en tiempo real, se necesita la informática de punta. Por tanto, se requiere un sistema robusto y de baja complejidad. Aquí, se utiliza un modelo de aprendizaje automático para la detección de rostros y la regresión de puntos de referencia y un modelo CNN superficial y profundo para estimaciones y clasificaciones.

Capacitación y optimización

Los módulos están entrenados previamente en el conjunto de datos que se preparó inicialmente. La solución se prueba en varios conjuntos de datos de código abierto, como FDDB, LFW y un conjunto de datos desarrollado internamente a medida.

Superar los distintos desafíos

  1. Variación de la iluminación - para superar el problema presentado debido a la variación en las condiciones de iluminación, se adoptan dos enfoques. Una es la conversión de imágenes de tipo RGB a NIR utilizando enfoques basados ​​en gantt. Otro es entrenar el modelo con datos RGB y ajustarlo con imágenes NIR en la entrada.
  2. Variaciones de pose y expresión - si las imágenes de la cara están disponibles desde una vista no frontal, la vista canónica de la imagen de la cara debe derivarse de una o más de las imágenes disponibles. Esto se logra estimando el cambio de pose con respecto a los ángulos de la cabeza en base a los puntos de referencia y luego usando inclinación, estiramiento, espejo y otras operaciones para obtener el rumbo frontal. Esto permite que el sistema de reconocimiento facial emita representaciones invariables de pose y mejora significativamente la precisión del reconocimiento facial. Para combatir los efectos debidos a la variación en la expresión, la alineación facial se realiza en la etapa de preprocesamiento.
  3. Oclusión - Actualmente, el SDK está siendo entrenado para detectar rostros enmascarados. En este caso, el modelo está siendo entrenado para trabajar solo con datos de alrededor de los ojos y la frente; sin embargo, este enfoque brinda los mejores resultados en un entorno no controlado, como la configuración de la oficina, cuando hay un número limitado de personas registradas en el sistema.
  4. Variación de apariencia - Las diferencias en los estilos de cabello, el envejecimiento y el uso de cosméticos pueden causar grandes diferencias en la apariencia de las personas. Por lo tanto, degrada en gran medida la precisión del reconocimiento facial. Para abordar este problema, el SDK utiliza un esquema de representación y coincidencia que es robusto a los cambios en la apariencia.

Conclusión

Hoy en día, el reconocimiento facial se considera la más natural de todas las medidas biométricas. El aprendizaje profundo se ha convertido en el componente central de la mayoría de los algoritmos de reconocimiento facial que se están desarrollando. Los algoritmos de reconocimiento facial están experimentando un progreso exponencial. Según un informe reciente del NIST, se han logrado avances masivos en la precisión del reconocimiento en los últimos cinco años (2013-2018) y superan las mejoras logradas en el período 2010-2013.

A pesar de varios desafíos prácticos, la tecnología de reconocimiento facial se está utilizando ampliamente en diversas industrias como el comercio minorista, la automoción, la banca, la atención médica, el marketing y muchas más. Además de mejorar la precisión para reconocer a una persona, los algoritmos de reconocimiento facial amplían su alcance para detectar las emociones y los comportamientos de los rostros.


Incrustado

  1. El 555 IC
  2. La fórmula cuadrática
  3. Windows IoT:puerta de reconocimiento facial
  4. Los fundamentos de la fabricación de placas de circuito impreso
  5. Los fundamentos de la aplicación de válvulas electrohidráulicas
  6. ¿Interrumpir o morir? Comience con los fundamentos
  7. Los fundamentos de un centro de mecanizado vertical (VMC)
  8. Fundamentos de la hoja de corte:los efectos de la calidad de la hoja en el rendimiento del corte
  9. Los fundamentos del zincado y sus beneficios asociados
  10. Los fundamentos del biselado y desbarbado de engranajes
  11. Fundamentos del rectificado OD