Detección de la cara: ¿Qué es y cómo funciona esto Tech
![Detección de la cara: ¿Qué es y cómo funciona esto Tech — RecFaces](https://recfaces.com/wp-content/uploads/2021/10/deteccion-de-la-cara-830x502.jpg)
A menudo se confunde con el reconocimiento facial, pero la detección de rostros es, de hecho, una tecnología independiente que tiene un rango de aplicación más amplio con aún más casos de uso potencial en el futuro.
Con la llegada de algoritmos basados en la IA, como el aprendizaje automático, la detección de rostros permite la identificación automática de rostros entre otros objetos en imágenes y vídeos. En este artículo se tratarán los detalles de los diferentes métodos, las ventajas y desventajas, y los retos de la detección de rostros.
Tabla de contenido
- ¿Qué es la detección de rostros?
- ¿Cómo funciona la detección de rostros?
- Métodos de detección de rostros
- Técnicas de detección de rostros
- ¿Cuáles son los desafíos en la detección de rostros?
- ¿Cómo funciona la detección de rostros con el aprendizaje profundo?
- ¿Por qué es importante la detección de rostros hoy en día?
- Detección de rostros frente a reconocimiento de rostros: ¿cuál es la diferencia?
- Ventajas y desventajas de los sistemas de detección facial
- Cómo se utilizan los algoritmos de detección de rostros
- Resumen
- FAQ
¿Qué es la detección de rostros?
La detección de rostros es un conjunto de algoritmos que identifican y extraen rostros humanos de imágenes digitales o de vídeo. La tecnología está basada en la IA y se aplica generalmente como primer paso en el análisis, el seguimiento y el reconocimiento de rostros. En este último caso, la detección se realiza sobre el escáner biométrico para obtener una imagen que se mapea y se compara con las muestras existentes.
¿Cómo funciona la detección de rostros?
Detectar un rostro significa ser capaz de distinguirlo de otros objetos de la imagen: otras partes del cuerpo, edificios, señales, etc., así como determinar sus elementos y contornos. Normalmente, todos los algoritmos empiezan por localizar los ojos, uno de los rasgos más destacados. A continuación, el programa busca en los alrededores las cejas, el iris, la nariz y la boca. Si se encuentran todas las entidades, el sistema llega a la conclusión preliminar de que se ha detectado un rostro. A continuación, se realizan comprobaciones adicionales para confirmar esta suposición.
Como ocurre con muchos otros algoritmos basados en la IA, el sistema necesita ser entrenado con cantidades suficientes de datos: miles o incluso millones de imágenes relevantes. Con el aprendizaje automático, se detectan patrones similares entre toda la base de datos. Un subconjunto de este enfoque, el aprendizaje profundo, tiene la capacidad de encontrar y amplificar patrones minúsculos, e incluso hacer suposiciones y ofrecer predicciones por sí mismo con la ayuda de la IA.
Algunas de las tecnologías más utilizadas son OpenCV, Matlab, Tensorflow y redes neuronales. En los cuatro párrafos siguientes se hablará un poco más de ellas.
OpenCV
OpenCV es una biblioteca de código abierto construida en C/C++ con algoritmos prefabricados para la visión por ordenador, el procesamiento de imágenes y la detección de rostros. El más popular se llama cascadas de Haar y fue introducido por primera vez por Viola y Jones en su publicación seminal de 2001.
Una ventana de tamaño fijo se desliza por la imagen a múltiples escalas. En cada parada, un clasificador determina si la región actual contiene un rostro o no ejecutando una serie de pruebas. Por ejemplo, calculando la suma de píxeles en ciertas áreas rectangulares de la región, el programa puede distinguir entre ojos, mejillas y nariz, ya que las zonas de los ojos tienden a ser más oscuras.
Matlab
Al igual que el método anterior, Matlab dispone de una tecnología lista para la detección de rostros llamada detector de objetos en cascada. También se basa en el algoritmo de Viola-Jones. Combinado con el algoritmo Kanade-Lucas-Tomasi (KLT), puede aplicarse a los vídeos para seguir los movimientos de la cara detectada, ya que utilizarlo solo en cada fotograma es costoso desde el punto de vista informático.
Tensorflow
Tensorflow es una biblioteca de código abierto para el aprendizaje automático desarrollada por Google. Dentro de este marco, puede crear y entrenar tu propio modelo de detección de objetos o afinar uno de los predeterminados del llamado Zoo de Modelos. Un algoritmo de aprendizaje profundo divide la imagen en un conjunto de cajas delimitadoras. Las características visuales se extraen de cada caja y se clasifican siguiendo el conjunto de reglas dado.
Neural Networks
Las redes neuronales imitan el funcionamiento de nuestro cerebro, utilizando miles de nodos de procesamiento para reconocer, clasificar y predecir cosas. Este es el enfoque que se utiliza habitualmente como fase de reconocimiento facial en las cámaras de los smartphones. A continuación se describe detalladamente el algoritmo más popular, la red convolucional en cascada multitarea.
Métodos de detección de rostros
Todos los métodos pueden dividirse a grandes rasgos en cuatro categorías diferentes basadas en los algoritmos subyacentes. Varían en cuanto a la precisión de la detección y la complejidad del enfoque.
Métodos basados en el conocimiento
Estos métodos utilizan un conjunto de reglas basadas en una evaluación humana del aspecto de las caras. Utilizando una referencia numérica, «explicamos» al algoritmo que una cara debe tener ojos, nariz y boca, y cómo deben estar colocados. A pesar de la aparente simplicidad del enfoque, construir un conjunto que tenga una proporción adecuada de la tasa de falsos negativos y falsos positivos es todo un reto.
Métodos basados en caracteres invariantes
Este tipo de métodos se ocupan de los momentos de la imagen: la media ponderada de las intensidades de los píxeles. La ubicación de los píxeles no influye en esta variable, lo que es estupendo para la detección de rostros con la ubicación desconocida del objeto deseado. Además, una clase especial de momentos de la imagen, llamados momentos Hu, son invariantes a las transformaciones. La transición, la escala y la rotación de la imagen no cambian el valor del momento resultante.
Métodos basados en plantillas
Los métodos basados en plantillas se basan en un conjunto de imágenes previamente almacenadas como muestras del aspecto de un rostro y de los rasgos especiales que contiene. El algoritmo mide la correlación entre las fotos de entrada y las plantillas existentes. Si se encuentra una coincidencia suficiente, se localiza y detecta un rostro.
Métodos basados en apariencia
Con un método basado en la apariencia, también se enseña al algoritmo a identificar un rostro basándose en un conjunto preexistente de imágenes, pero tiene más independencia y toma una decisión basada en datos sobre la coincidencia de patrones por sí mismo. Esto se consigue mediante diversas técnicas de aprendizaje automático y análisis estadístico.
Técnicas de detección de rostros
Algunas de las técnicas específicas utilizadas en la detección de rostros son:
- Determinación del color de la piel. Se ha demostrado que el algoritmo funciona mejor en imágenes de color que en imágenes en escala de grises.
- Identificación y eliminación del fondo. Encontrar los contornos del supuesto rostro facilita el análisis de sus rasgos.
- En algunos vídeos, detectar una cara en movimiento sobre un fondo estático puede ser a veces más fácil que analizar la alimentación fotograma a fotograma, aunque este método tiene una mayor tasa de falsos positivos.
¿Cuáles son los desafíos en la detección de rostros?
En una revisión de las técnicas de detección de rostros realizada por Ashu Kumar, Amandeep Kaur y Munish Kumar se exponen los retos que los métodos de detección de rostros aún deben superar. Se trata de características o condiciones en las que la tecnología aún tiene dificultades para rendir bien:
- Orientación de la cara y distancia a la cámara — un ángulo inesperado o una cara situada demasiado lejos, siendo así demasiado pequeña.
- Color de la piel y bronceado — los cambios en el color de la piel pueden hacer que el algoritmo no funcione.
- Demasiados objetos y/o caras en la imagen — aunque la mayoría de los métodos peinan la imagen parte por parte, las caras superpuestas o los objetos del fondo son difíciles de distinguir.
- Oclusión de la cara — partes de la cara quedan ocultas por gafas, pelo, pañuelos, manos u otros objetos.
- Cambios de iluminación en la imagen — rostros ocultos por una baja iluminación o partes del rostro que son significativamente más oscuras o claras que otras.
- Expresiones faciales extrañas — las expresiones exageradas o inesperadas son difíciles de comprender.
¿Cómo funciona la detección de rostros con el aprendizaje profundo?
El aprendizaje profundo es un término general para cualquier algoritmo que se base en redes neuronales para procesar grandes cantidades de datos e identificar patrones o hacer predicciones basadas en sus hallazgos. Un enfoque infame diseñado específicamente para la detección de rostros se llama redes convolucionales en cascada multitarea.
El algoritmo MTCNN pasa por tres etapas: clasificación de la cara, regresión de la caja delimitadora (para combinar las regiones superpuestas) y localización de los puntos de referencia faciales: ojo izquierdo, ojo derecho, nariz, comisura izquierda de la boca y comisura derecha de la boca.
¿Por qué es importante la detección de rostros hoy en día?
La detección de rostros es una fase clave para el análisis posterior, el seguimiento, el reconocimiento facial y la verificación de la identidad, tecnologías que encuentran aplicaciones en la seguridad privada y pública, la sanidad, la aplicación de la ley, la banca e incluso en algo tan sencillo como desbloquear un smartphone cada día o etiquetar fotos en Facebook. Algunos casos de uso menos conocidos incluyen la estimación de la postura de la cabeza de los conductores de automóviles para detectar la somnolencia del conductor.
Detección de rostros frente a reconocimiento de rostros: ¿cuál es la diferencia?
El proceso de reconocimiento se basa en la comparación de los llamados puntos nodales de nuestros rostros, los rasgos distintivos que combinados hacen que cada uno de nosotros sea único. Para que funcione, el sistema necesita obtener una imagen de entrada de una muestra de cara, y así es como se relacionan las dos tecnologías.
Ventajas y desventajas de los sistemas de detección facial
Los algoritmos de detección de rostros evolucionan constantemente para rendir con mayor precisión. Todavía, los métodos actuales siguen presentando algunas desventajas que pueden obstaculizar sus aplicaciones.
Ventajas de la detección de rostros
- Una ayuda para la seguridad. La intervención de las cámaras de vigilancia en lugares públicos o instalaciones privadas con el algoritmo conduce a una mayor concienciación de los visitantes.
- Facilidad de uso. La mayoría de los algoritmos están disponibles en Internet como parte de las interfaces de programación y son fáciles de acceder o integrar a través de la API.
- El primer componente de automatización. Los días de la detección manual sujeta a la de errores humanos han quedado atrás.
Desventajas de la detección de rostros
- Sigue siendo vulnerable. Todos los retos se detallan más arriba, por repetir algunos: la oclusión, los cambios de iluminación y los fondos complejos disminuyen la precisión.
- Es objeto de una disputa actual sobre la privacidad. En Bélgica, el reconocimiento facial, que implica la detección de caras, está incluso prohibido por la legislación nacional.
- Elevados requisitos de equipamiento y almacenamiento. Crear y mantener un algoritmo de detección de rostros conlleva un coste de computación.
Resumen de la tabla de pros y contras
Ventajas | Desventajas |
---|---|
— Mayor seguridad — Facilidad de uso — Conduce a la automatización | — Vulnerabilidad — Plantea problemas de privacidad — Requiere almacenamiento y equipamiento |
Cómo se utilizan los algoritmos de detección de rostros
La demanda de detectar rostros por parte de diversas industrias es el principal motor de su desarrollo.
Captura de movimiento facial
Los filtros de Instagram, Tiktok o Snapchat pueden alterar la apariencia de una persona en tiempo real. Estas máscaras y efectos especiales se basan en los contornos y rasgos extraídos del rostro.
Reconocimiento facial
La detección facial es integral para el siguiente reconocimiento, utilizado para proteger operaciones financieras, vigilar y localizar a delincuentes, salvaguardar datos vulnerables o registros médicos, o autenticar la identidad.
Fotografía
Un algoritmo de detección de rostros integrado en los teléfonos inteligentes o las cámaras mantiene automáticamente el enfoque en los rostros durante las tomas de retratos. La tecnología también se aplica a las publicaciones en las redes sociales para etiquetar automáticamente a los usuarios.
Márketing
Utilizado en una transmisión de vídeo, el método puede extraer los rostros de los clientes en una tienda para distinguir entre los nuevos y los que repiten, para obtener información que permita adaptar la estrategia de marketing.
Inferencia emocional
Los métodos aún están aprendiendo a distinguir entre las diferentes expresiones faciales y emociones. Cuando estén completamente desarrollados, podrán mejorar la verificación de la identidad e incluso tener una aplicación en el marketing.
Lectura de labios
El seguimiento del movimiento de los labios puede utilizarse para transcribir el habla si el sonido está distorsionado o no es aplicable para el reconocimiento del habla por alguna razón.
Resumen
La detección de rostros representa algoritmos complejos que pueden diferir en los parámetros de entrada y los principios de procesamiento de imágenes. El método ya ha encontrado muchas aplicaciones prácticas, desde la vida cotidiana hasta los sistemas de seguridad avanzados, a pesar de los desafíos que sigue enfrentando. El aprendizaje automático, el aprendizaje profundo y las redes neuronales son algunas de las tecnologías basadas en la IA que se utilizan en la detección de rostros. Su futuro desarrollo probablemente conducirá a una mayor precisión de la detección y a una menor tasa de falsos positivos.
FAQ
¿Cómo funciona la detección de rostros?
El algoritmo subyacente sigue unas directrices internas para definir un rostro y recorre toda la imagen parte por parte para tratar de encontrar zonas que coincidan con ese criterio. Las caras se distinguen de los edificios, los animales y otros objetos inanimados en una imagen o un vídeo.
¿Cómo se detectan los rostros?
Los rostros pueden detectarse mediante cuatro grupos diferentes de métodos: basados en el conocimiento (cuando un humano predefine las reglas de detección), en la apariencia (cuando se enseña al algoritmo a definirlas), en la plantilla (una base de datos de muestras de rostros para su comparación) y en los caracteres invariantes (representaciones matemáticas de la sensibilidad de la imagen a las transformaciones).
¿Qué significa seguimiento facial?
El seguimiento de rostros es la detección de rostros aplicada a un flujo de vídeo continuo o, en otras palabras, el proceso de seguimiento de los movimientos del rostro con el tiempo.
¿Quién usa la detección de rostros?
Muchas industrias han encontrado la utilidad de esta tecnología: seguridad, banca, aplicación de la ley, marketing, etc. La mayoría de la gente se encuentra con la detección de rostros en los teléfonos móviles o en las redes sociales.
¿Cuál es la diferencia entre la detección de rostros y el reconocimiento de rostros?
Las aplicaciones de la detección de rostros incluyen el reconocimiento, pero no se limitan a él.