En este post explicaremos cómo funcionan los motores de biometría facial y, luego, realizaremos experimentos para visualizar cómo funciona el motor de biometría facial de Veridas.
¿Qué es un motor de biometría facial? q
Un motor biométrico es un algoritmo que transforma la foto de la cara de una persona en una huella biométrica.
Una huella biométrica es un conjunto de coordenadas que se construyen a partir de las características únicas del rostro de una persona. Antiguamente, las huellas las diseñaban a mano los ingenieros a partir de la distancia entre puntos característicos de la cara (distancia entre la nariz y la boca, entre los ojos, etc.). La siguiente imagen muestra los puntos característicos que se usaban antiguamente para la biometría facial.
Hoy en día, las redes neuronales artificiales son capaces de aprender por sí mismas a partir de millones de ejemplos y tienen una precisión mucho mayor. En este artículo hablaremos únicamente de la biometría obtenida a partir de redes neuronales por ser el estado del arte actual. Una huella biométrica se puede representar como un vector numérico o también como un código QR biométrico.
¿Qué es una huella biométrica?
La huella biométrica sería análoga a las coordenadas que utilizamos para describir la posición de una ciudad en un mapa. Cuando entrenamos una red neuronal con millones de imágenes de personas, la red neuronal aprende a transformar las imágenes en posiciones en un mapa de tal manera que imágenes de la misma persona están muy cerca entre sí, mientras que imágenes de personas distintas se encuentran más lejos. La diferencia entre los mapas a los que estamos acostumbrados y el que aprenden las redes neuronales es que los primeros tienen 2 dimensiones, mientras que los segundos pueden tener un número arbitrario de dimensiones, por ejemplo, 512.
En la siguiente imagen podemos ver una representación visual de esta idea. En este ejemplo las imágenes que estuvieran a una distancia inferior de 100 km pertenecen a la misma persona. Por el contrario, las imágenes a más de 100 km son de personas distintas. Cuanto más cercanas estén las imágenes entre sí, más confianza tenemos de que pertenezcan a la misma persona.
Es importante resaltar que para poder comparar la similaridad entre dos imágenes es suficiente con tener las huellas biométricas. No es necesario almacenar las imágenes. En este artículo estamos utilizando las imágenes a modo de recurso visual pero realmente la visualización más correcta sería la siguiente (en la que únicamente tenemos las huellas biométricas).
Una huella biométrica puede representarse como un vector numérico o un código QR.
Las huellas biométricas son irreversibles: no se puede obtener la imagen de la persona a partir de la huella biométrica. Además, cada motor biométrico genera huellas biométricas distintas e incompatibles entre sí. No tiene sentido comparar huellas biométricas de motores biométricos distintos porque cada motor aprende un mapa único y distinto.
Estos dos hechos hacen que si nos roban una huella biométrica no sea un problema. El ladrón no podría recuperar la cara de la persona a partir de la huella biométrica. Se crearía una huella biométrica nueva con un motor biométrico distinto y la huella biométrica anterior no serviría para nada, ya que cada modelo biométrico genera un mapa completamente diferente.
La siguiente imagen ilustra el mapa que habría aprendido un motor biométrico diferente. A partir de la “receta” de entrenamiento de un motor biométrico, se pueden entrenar infinitos motores biométricos distintos con el mismo nivel de precisión. El primer modelo situaba las huellas biométricas en la península Ibérica, mientras que el segundo las sitúa en los alrededores del mar Adriático.
Visualizando las huellas biométricas
Labeled Faces in the Wild (LFW)
LFW es una base de datos pública para la evaluación de motores de biometría facial. Contiene 13233 imágenes de 5749 personas distintas, y 1680 personas tienen dos o más imágenes.
Utilizaremos esta base de datos para visualizar cómo funciona el motor de biometría facial de Veridas.
Reducción de dimensiones
Como hemos comentado anteriormente, las huellas biométricas son vectores numéricos con muchas dimensiones. Para que las personas podamos visualizar las huellas biométricas necesitamos reducir el número de dimensiones a 3 (el espacio) o a 2 dimensiones (el plano).
Existen algoritmos que permiten reducir las dimensiones de un vector numérico. Uno de los más populares es TSNE, que se basa en reducir la dimensión de los vectores manteniendo la distancia que hay entre ellos. Por ejemplo, en nuestro caso, partimos de una huella biométrica con 512 dimensiones y el algoritmo de TSNE se encargará de reducirla a tan solo 3 tratando de mantener las distancias que hay entre las distintas huellas biométricas.
Tensorflow Projector es una herramienta de Google que nos va a permitir aplicar la reducción de dimensionalidad con TSNE y visualizar lo que ha aprendido el motor de biometría durante el entrenamiento.
La siguiente visualización muestra cómo el algoritmo TSNE encuentra una representación de las huellas biométricas en el espacio de 3 dimensiones. Es un proceso iterativo que empieza con una representación aleatoria y la va mejorando progresivamente.
Experimento 1: Identidades con más de 5 fotos
Para el primer experimento nos vamos a quedar con las personas que tienen más de 5 fotos en la base de datos de LFW y, para cada una de esas personas, elegiremos aleatoriamente 5 fotos.
La siguiente visualización muestra cómo cada persona ocupa un lugar del espacio único. Las 5 fotos de cada persona están tan juntas que casi parece que sólo hay una foto. Esto nos está mostrando que el motor biométrico funciona muy bien tanto a la hora de verificar una persona contra sí misma como a la de evitar que otra persona se haga pasar por nosotros.
Si hacemos un poco de zoom se puede apreciar (con un poco de esfuerzo porque las imágenes están muy juntas) que cada persona tiene 5 fotos.
Por último, podemos explorar imágenes concretas y ver cuáles son las imágenes con la huella biométrica más cercana. Como puede verse en la siguiente visualización, en todos los casos las 4 imágenes más cercanas corresponden a la misma persona y la siguiente es ya de una persona distinta, pero siempre a una distancia mucho mayor (la distancia entre las imágenes es el número que se encuentra junto al nombre de la persona en la parte derecha de la imagen).
En resumen, el motor de biometría se comporta idealmente: agrupa todas las caras de la misma persona en el mismo punto de una manera muy compacta y en ningún momento dos personas diferentes comparten la misma ubicación.
Experimento 2: Una sola imagen por persona
En este segundo experimento cada persona sólo tendrá una imagen. Esto va a hacer que la distancia entre las huellas biométricas sea mucho mayor que en el experimento anterior, donde había varias imágenes de cada persona. Por lo tanto, el algoritmo TSNE tendrá que generar una representación que busque parecido entre personas distintas.
La siguiente visualización muestra cómo todas las imágenes se agrupan en una única esfera. Este comportamiento es el ideal porque implica que el modelo no tiene sesgos relevantes de género o de raza. Si los tuviera, en lugar de una única esfera estaríamos viendo varias: p.e. una esfera para los hombres y otra para las mujeres.
Finalmente, si buscamos las imágenes más cercanas podemos ver cómo en muchas ocasiones se trata de personas de distinta raza o género, lo cual corrobora la ausencia de sesgos significativos del modelo biométrico. También es relevante ver cómo la distancia numérica que hay entre las imágenes es mucho más grande que en el primer experimento, lo cual es lógico por ser personas diferentes.
Conclusiones
En los experimentos realizados hemos podido observar que:
- La biometría facial no es una caja negra: existen técnicas que nos permiten visualizar y comprender cómo funciona.
- El modelo biométrico de Veridas funciona a la perfección, como queda demostrado en el ejemplo con la base de datos de LFW: agrupa todas las caras de la misma persona en una región muy pequeña y hay mucha distancia entre personas distintas.
- El modelo biométrico de Veridas no muestra sesgos significativos en relación a la raza o el género.