Introducción
Las tecnologías
de detección y reconocimiento facial han estado presentes, aplicadas e
investigadas durante décadas. Se considera una herramienta biométrica, como el
reconocimiento de una huella dactilar o el reconocimiento del iris, que se basa
en detectar patrones y aspectos específicos de la fisiología de un rostro para
reconocer o identificar a la persona. Gracias
a los avances en visión por computador en campos como el Deep Learning, las
mejoras en el hardware de procesamiento de imágenes y la capacidad de obtener
grandes cantidades de datos e información, se ha elevado esta tecnología hasta
límites insospechados consiguiendo mejoras en la eficiencia, la velocidad de
proceso y la precisión. Actualmente el reconocimiento facial se aplica desde
para desbloquear un móvil hasta para detectar criminales que intentan acceder
al aeropuerto para escapar del país. ¿Pero es lícita esta tecnología? ¿Por qué
hay tanta gente a favor y en contra? ¿Cómo funciona y porque muchas entidades y
empresas están introduciéndola como herramienta de verificación? En este
articulo vamos a analizar la tecnología detrás de la detección y el
reconocimiento facial, los casos de uso y lo que depara el futuro.
Historia del reconocimiento facial
Los primeros
sistemas de reconocimiento facial se basaban en el análisis de puntos de
interés, habitualmente llamados landmarks, donde se podía extraer información
como por ejemplo las distancias entre ellos, para convertirlos a una operación
matemática que representaba la firma facial del sujeto. Con el paso del tiempo
otros algoritmos de procesado digital de imágenes permitieron extraer cada vez
más información del rostro y con más precisión. Con los avances en el campo del
Deep Learning, podemos entrenar modelos capaces de extraer y estudiar
características del rostro más avanzadas con resultados de detección más
precisos y fiables que con técnicas procesado digital de imágenes
convencionales.
¿Cómo funciona?
El pipeline de los
sistemas de reconocimiento facial varía un poco dependiendo la tecnología, el
caso de uso y los algoritmos empleados, pero en líneas generales sigue el
siguiente esquema:
Se parte de una
imagen de entrada que es preprocesada con métodos de normalización, corrección
de gama, eliminación de ruido, entre otros. Este paso nos permite entregar al
sistema la imagen con la mayor calidad posible y la menor variación. Algunas de
las técnicas usadas habitualmente son:
- Ecualización del
histograma: Se usa para aumentar el contraste general de la imagen y repartir
los valores de pixeles de una forma más equitativa
- Corrección luminosidad:
Cuanto más nítida, enfocada, bien expuesta y sin ruido tengamos la imagen de
entrada
- Eliminación de ruido: Se
suelen utilizar filtros de procesado digital de imágenes para suavizar la
imagen y eliminar ruido.
A continuación,
se pasa al módulo de detección de caras que localiza la posición de los rostros
en la imagen. En la actualidad se suelen utilizar modelos prentrenados, con
datasets que incluyen una gran cantidad de imágenes de caras, que son capaces
de localizar con precisión y rapidez todas las caras que hay en una imagen,
devolviendo para cada una de ellas una región de recorte que contiene la cara
detectada.
Con este
resultado pasamos a localizar características del propio rostro como la
posición de la boca, la nariz, los ojos o el contorno de la barbilla. Estos
puntos se conocen como landmarks y permiten solventar muchísimas aplicaciones
como detectar cuando una persona sonríe para hacer una foto de forma automática,
reconocimiento de sentimientos, leer los labios, aplicar filtros como los de la
famosa aplicación Snapchat, controlar que un conductor preste atención a la
carretera, aplicación de maquillaje digital entre muchos otros.
El siguiente
modulo es para alinear las caras y facilitar de esta manera la extracción de
características, ya que en una imagen podemos encontrar a las personas que
aparecen en ella mirando hacia cualquier lado. Para ello se suele usar la referencia de los
ojos y la barbilla o la nariz para calcular la transformada que nos deje el
rostro bien alineado.
Por último, se
utilizan habitualmente redes neuronales convolucionales, que permiten mantener
la información espacial y son muy útiles para la extracción de características
del rostro que permiten definir lo que se conoce como la huella facial con la
que podremos verificar o identificar a la persona.
Estas dos tareas
son muy diferentes entre sí, la primera se basa en un entrenamiento único de un
individuo tomando múltiples fotos de su rostro desde diferentes ángulos, de
manera que a la hora de verificarlo se pueden usar técnicas como por ejemplo la
distancia coseno, que cuantifica la distancia vectorial a un clúster de
imágenes del individuo evaluando si este es quien dice ser o por el contrario
es otra persona. Por otro lado, si hablamos de identificación de la persona,
será necesario buscar las coincidencias de esta en una base de datos con fotos
del individuo para poder determinar quién es, esta tarea es más complicada
puesto que podemos encontrar muchas coincidencias de diferentes individuos en
algunos aspectos o características y serán las puntaciones globales las que permitan
obtener un resultado final de coincidencia.
Estado del arte
Gracias a la
explosión y avances que estamos viviendo en el campo de la inteligencia
artificial, podemos encontrar ejemplos de código, frameworks, librerías y
papers que tratan sobre el reconocimiento facial y muchísimas empresas que
ofrecen aplicaciones basadas en esta tecnología. De hecho, en los servicios
cloud que ofrecen grandes empresas como Amazon, Microsoft o Google es muy
habitual encontrar servicios de identificación y reconocimiento facial en su
oferta.
Los modelos de
Deep Learning para la detección y reconocimiento facial, son una combinación de
diferentes arquitecturas que fueron desarrolladas para otros usos pero que son
igualmente válidas para caras. Un
ejemplo es Retinaface. Esta red neuronal combina en primer lugar una extracción
de mapas de características piramidal, del cual se obtienen 4 escalas
diferentes con una profundidad de 256 mapas de características por cada una.
Entonces se usa una arquitectura de cascada múltiple para la localización de la
cara y a partir de ahí se utilizan redes neuronales para clasificar, obtener el
bounding box del rostro, obtener los landmarks con los puntos de interés y por
último 1000 puntos para crear el rostro en 3D.
Casos de uso y polémica
Con los avances vividos en la tecnología podemos encontrar multitud de aplicaciones en la actualidad donde se usa reconocimiento facial. Identificación de sospechosos y prevención de ataques terroristas, búsqueda de gente desaparecida, robos en tiendas, identificación usuario en banca, control de accesos, reconocimiento de la edad y el sexo de clientes en retail para poder ofrecerle la mejor experiencia o productos de su interés, ADAS en vehículos autónomos, clasificación de imágenes por persona o grupos de personas en smartphones, entre muchos otros.
Hay mucha variedad de
opiniones sobre esta tecnología ya que mucha gente considera que el
reconocimiento facial vulnera la privacidad individual. Algunas ciudades
alrededor del mundo trabajan con herramientas de detección de caras y
reconocimiento facial en tiempo real recogiendo imágenes de personas para
generar grandes bases de datos de caras sin su consentimiento.
Por otro lado,
hay muchas evidencias que demuestras que los algoritmos actuales de
reconocimiento facial producen más falsos negativos en personas de color,
apuntando a esta tecnología incluso como una tecnología racista.
El documental “coded bias” de
2020, narra la sorprendente revelación de Joy Buolamwini, una investigadora del
MIT, en la que se demuestra que el reconocimiento facial no funciona
correctamente con las pieles más oscuras, y su consecuente lucha contra las
autoridades estadounidenses para que se cambiasen los algoritmos actuales con
el fin de evitar los prejuicios raciales
Otro punto de
discusión es que está demostrado que actualmente es bastante sencillo engañar a
los sistemas de reconocimiento facial. A pesar de que con los avances actuales
los sistemas son capaces de detectar rostros incluso con mascarilla, es posible
pasar desapercibido por estos sistemas simplemente con algunos desarrollos
anti-detección de caras que utilizan gafas con luces que no permiten extraer la
huella facial del individuo.
Conclusiones
A pesar de la gran evolución en el campo del reconocimiento facial, hay mucho trabajo por delante para decir que esta tecnología es cien por cien fiable y esto es porque la tarea de reconocer a una persona es muy compleja. En campos como el de la seguridad, la banca o el retail, esta tecnología va a marcar una nueva forma de acceder a lugares como aeropuertos, campos de futbol, o incluso supermercados y la manera en cómo se controla o vigila a usuarios. Es cierto que los resultados actuales son prometedores y vamos a encontrar cada vez más esta tecnología en nuestro día a día, ya que, dentro del camino tecnológico hacia la automatización de procesos, la robótica y la digitalización, poder asegurar que alguien es quien dice ser, es un factor muy importante si queremos estar tranquilos frente a dejar que las maquinas ejecuten tareas sin depender de una revisión humana constante.
Escrito por Sergio Redondo Cabanillas, R&D Manager en Grupo Bcnvision.
¿Quieres seguir leyendo blogs sobre visión artificial? haz clic aquí
Conocer soluciones reales de visión
¿Tienes un proyecto y necesitas realizar alguna consulta? Contacta con Bcnvision.