Face Recognition: a constantly updated technology

Face Recognition: a constantly updated technology

Face recognition refers to the technology capable of identifying the identity of subjects in images or videos. It is a non-invasive biometric system, where the techniques used have varied enormously over the years.

During the 90's, traditional methods used handcrafted features, such as textures and edge descriptors. Gabor, Local Binary Patterns (LBP), Histogram of Oriented Gradients (HOG), Scale Invariant Feature Transform (SIFT), etc. are some examples of this, which were the basis for more complex representations, through coding and transformation of characteristics such as Principal Component Analysis (PCA), LCA, among others. Aspects such as luminosity, pose or expression can be managed through these parameters.

In the past, there was no technique that could fully and comprehensively master all scenarios. One of the best results achieved is the one presented in the study "Blessing of dimensionality: High-dimensional feature and its efficient compression for face verification", where 95% is achieved in the Labeled Face in the Wild (LFW) database. This indicates that the existing methods were insufficient to extract a representation of the faces that was invariant to the changes of the real world.

How does facial recognition work today?

In recent years, traditional methods have been replaced by others based on deep learning, which in turn have their origin in Convolutional Neural Networks (CNN). The main advantage of methods based on deep learning is that they can “learn”, from large databases, the best characteristics to represent the data, that is, to build the faces.

An example of this is the DeepFace network, which in 2014 achieved a “state of the art” performance in the famous LFW database. With this, he was able to approximate the performance of a human in an unrestricted scenario (DeepFace: 97.35% vs Humans: 97.53%). This, training a 9-layer model on 4 million images of faces. Inspired by this work, the focus of the research shifted towards methods based on deep learning, reaching 99.8% in just three years.

Facial recognition systems are usually made up of the stages shown in the following figure:

  1. Face detection: A query image is entered into the system. A detector finds the position of the face in the query image and returns the coordinates of the position.
  2. Face Alignment: Your goal is to scale and crop the image in the same way for all faces, using a set of reference points.
  3. Representation of the face: The pixels of the image of the face image are transformed into a compact and discriminative representation, that is, into a vector of characteristics. This representation can be achieved using classical methods or models based on deep learning. Ideally, all images of the faces of the same subject should have vectors with similar characteristics.
  4. Face matching: The images of the faces of registered individuals make up a database called a gallery. Each face image in the gallery is represented as a feature vector. Most methods calculate the similarity between the feature vector in the query image and the vectors in the gallery, using the cosine distance or the L2 distance. The one with the smallest distance indicates to which individual the consulted face belongs.




Artificial Intelligence: Why do facial recognition systems fail?

Artificial Intelligence: Why do facial recognition systems fail?

Contrary to password-protected systems, our biometric information is widely available and relatively easy to obtain. Therefore, there are some types of attacks that are easy to implement and that can be successful if there are no measures to avoid them. In particular, facial recognition systems can be compromised using one of the following methods:

  • A photography
  • A video
  • A 3D face model

Various methods have been developed to deal with the problem of spoofing with face images. These can be divided into two approaches: dynamic characteristics and static characteristics.

Dynamic feature approaches seek to detect motion in a video sequence by analyzing the trajectory of specific segments of the face. These reveal valuable information to discriminate between real faces and static copies. Some typical methods are those based on the detection of the lids of the eyes; head and face gestures (nodding, smiling, or looking in different directions) and face and gaze tracking through flow estimation. These techniques are highly effective at detecting attacks that use photos, but are less effective when it comes to videos.

In order to increase the performance in video attacks, specific methods of liveness detection in videos have been developed. For example, exploring the 3D structure of videos, analyzing a large number of 2D images with different head positions; context-based analysis to take advantage of the non-facial information available in the samples, such as characteristics of movements in the scene (movement in the background vs. foreground), and others. Modified versions of Local Binary Patterns or LBP are also being used, mostly to take advantage of the temporal information present in the video or to analyze the dynamic textures in comparison with rigid objects such as photos and masks.

The search for solutions

One way to tackle the problem is to focus on detecting life. For this, it is necessary to consider a spatio-temporal representation that combines the facial aspect and its dynamics. To achieve this, the key lies in using a spatio-temporal representation based on LBP due to the performance shown in the modeling of face movement and recognition of facial expressions, and also in the recognition of dynamic texture.

How is spoofing in facial recognition detected?

The LBP operator for texture analysis is defined as a texture-invariant grayscale measure, derived from a general definition in a local area. This is a powerful texture descriptor, and its properties for real-world applications include its discriminative power, computational simplicity, and tolerance to monotonic grayscale changes.

The LBP operator was initially conceived to deal with spatial information. However, its use has been extended to space-time representations for dynamic texture analysis, giving way to the Volume Local Binary Pattern (VLBP) operator.

VLBP consists of finding the dynamic texture in a video, which is represented as a volume (X, Y, T), where X and Y denote the spatial coordinates and T represents the frame index. On the other hand, the area close to each pixel is defined in a three-dimensional environment. The volume of VLBP can be defined by orthogonal planes, giving way to what is known as LBP-TOP or LBP Three Orthogonal Planes. Here the XY, XT and YT planes are defined. From them, the LBP maps are extracted for each plane, denoted as XY-LBP, XT-LBP and YT-LBP and then they are concatenated to obtain the LBP representation considering a pixel of the volume as the center, as shown in the figure .

LBP in three orthogonal planes. (a) The planes intersect one pixel. (b) LBP histograms of each plane. (c) Concatenation of the histograms.

In the LBP-TOP operator, the radius of the LBP algorithm on the X axis is denoted Rx, on the Y axis it is denoted Ry and on the T axis it is denoted by Rt.

The number of neighboring points in the XY, XT, and YT planes is PXY, PXT, and PYT, respectively. The type of operator in each plane can vary, these can be, uniform patterns (u2) or uniform patterns invariant to rotation (rui2).

Unlike photographs, real faces are non-rigid objects with contractions of the facial muscles that result in temporary deformations. For example, eyelids and lips. Therefore, it is assumed that specific patterns of facial movement should be detected when a living human is observed with a frontal camera. The movement of a photograph in front of a camera causes distinctive movement patterns that do not describe the same pattern as a genuine face.

The figure presents the anti-spoofing methodology, which consists of the following stages:

LBPTOP-based anti-spoofing method block diagram.
  1. Each frame of the original sequence is converted to grayscale and ran through a face detector.
  2. The detected faces are geometrically normalized to 64 × 64 pixels. This, in order to reduce the noise of the face detector, the same bounding box is used for each set of frames used in the calculation with the LBP-TOP operator.
  3. The LBP operator is applied in each plane (XY, XT and YT) and the histograms are calculated and then concatenated.
  4. A binary classifier is used to determine what the actual data is.

Each of the videos, whether of actual attacks or accesses, is transformed into a 3D and grayscale arrangement that represents the spatial distribution X, Y, T. Then, they are divided into sequences of 75 frames to which it is applied a face detection algorithm in the center frame.

This method is useful for preventing simple attacks (such as photographs), but not recommended for more complex attacks. The objective of the method is to identify temporary variations, which can be easily violated with a mask. That is why it is always suggested to combine methods to build a robust biometric system.

For more information and the code of the developed project visit the project on GitHub.




Inteligencia Artificial: ¿Por qué fallan los sistemas de reconocimiento facial?

Inteligencia Artificial: ¿Por qué fallan los sistemas de reconocimiento facial?

Contrario a los sistemas protegidos con contraseña, nuestra información biométrica está ampliamente disponible y es relativamente fácil de obtener. Por lo anterior, existen algunos tipos de ataques fáciles de implementar y que pueden tener éxito si no existen medidas para evitarlos. En particular, los sistemas de reconocimiento facial se pueden vulnerar utilizando uno de los siguientes métodos:

  • Una fotografía
  • Un vídeo
  • Un modelo 3D del rostro

Se han desarrollado varios métodos para enfrentar el problema de la suplantación con imágenes de rostros en sistemas de reconocimiento facial. Estos pueden ser divididos en dos enfoques: características dinámicas y  características estáticas.

Los enfoques de características dinámicas buscan detectar el movimiento en una secuencia de vídeo, analizando la trayectoria de segmentos específicos del rostro. Éstas revelan información valiosa para discriminar entre rostros reales y copias estáticas. Algunos métodos típicos son aquellos basados en la detección de párpados de ojos; gestos de cabeza y rostro (cabeceo, sonreír o mirar en diferentes direcciones); seguimiento del rostro y la mirada a través de la estimación de flujo. Estas técnicas son altamente efectivas para detectar ataques que utilizan fotos, pero pierden efectividad cuando se trata de vídeos.

Con el objetivo de aumentar el desempeño en los ataques con vídeos, se han desarrollado métodos específicos de liveness detection en vídeos. Por ejemplo, explorar la estructura 3D de los vídeos, analizar una gran cantidad de imágenes 2D con diferentes posiciones de la cabeza; usar un análisis basado en contexto para tomar ventaja de la información no-facial disponible en las muestras, como características de movimientos en la escena (como por ejemplo, movimiento en el fondo v/s primer plano). También se están usando versiones modificadas de Local Binary Patterns o LBP, para aprovechar la información temporal presente en el vídeo o analizar las texturas dinámicas en comparación con objetos rígidos como fotos y máscaras.

En búsqueda de soluciones

Una forma de enfrentar el problema es enfocarse en la detección de vida. Para esto, es necesario considerar una representación espacio-temporal que combine el aspecto facial y su dinámica. Para lograrlo, la clave está en la utilización de una representación espacio-temporal basada en LBP debido al desempeño mostrado en el modelamiento de movimiento de rostros y reconocimiento de expresiones faciales, y también en el reconocimiento de textura dinámica.

¿Cómo se detecta la suplantación en sistemas de reconocimiento facial?

El operador LBP para análisis de textura es definido como una medida de escala de grises invariante a la textura, derivado de una definición general en una vecindad local. Este es un descriptor de textura poderoso, y entre sus propiedades para aplicaciones del mundo real se destaca su poder discriminativo, simplicidad computacional y tolerancia ante cambios monotónicos en escala de grises.

El operador LBP inicialmente fue concebido para lidiar con información espacial. Sin embargo, su uso se ha ampliado a representaciones espacio temporal para análisis de textura dinámica, dando paso al operador Volume Local Binary Pattern (VLBP).

VLBP consiste en encontrar la textura dinámica en un vídeo, el cual es representado como un volumen (X, Y, T), donde X y Y denotan las coordenadas espaciales y T representa el índice del frame. Por otro lado, la vecindad de cada píxel está definida en un entorno tridimensional. El volumen de VLBP puede ser definido por planos ortogonales, dando paso a lo que se conoce como LBP-TOP o LBP Three Orthogonal Planes. Aquí se definen los planos XY, XT y YT. A partir de ellos, se extraen los mapas LBP para cada plano, denotados como XY-LBP, XT-LBP y YT-LBP y luego se concatenan para obtener la representación LBP considerando como centro un píxel del volumen , como se muestra en la figura.

En el operador LBP-TOP el radio del algoritmo LBP en el eje X es denotado Rx, en el eje Y es denotado Ry y en el eje T es denotado por Rt.

El número de puntos vecinos en los planos XY ,XT y YT es PXY, PXT y PYT, respectivamente. El tipo de operador en cada plano puede variar, estos pueden ser, patrones uniformes(u2), patrones uniformes invariantes a la rotación (rui2).

A diferencia de las fotografías, los rostros reales son objetos no rígidos con contracciones de los músculos faciales que resultan en deformaciones temporales. Por ejemplo, párpados y labios. Por lo tanto, se asume que los patrones específicos de movimiento facial deberían ser detectados cuando un humano vivo es observado con una cámara frontalmente. El movimiento de una fotografía frente a una cámara causa patrones de movimiento distintivos que no describen el mismo patrón que una cara genuina.

En la figura se presenta la metodología anti-spoofing, la cuál consta de los siguientes etapas:

Diagrama de bloques de método anti-spoofing basado en LBPTOP.
  1. Cada frame de la secuencia original es convertido a escala de grises y pasado a través de un detector de rostros.
  2. Los rostros detectados son geométricamente normalizados a 64 × 64 píxeles. Esto, con el objetivo de reducir el ruido del detector de rostros, la misma bounding box es utilizada para cada set de frames usado en el cálculo con el operador LBP-TOP.
  3. El operador LBP es aplicado en cada plano (XY,XT y YT) y los histogramas son calculados y luego concatenados.
  4. Se utiliza un clasificador binario para determinar cuáles son datos reales.

Cada uno de los vídeos, ya sea de ataques o accesos reales, es transformado a un arreglo 3D y en escala de grises que representa la distribución espacial X, Y, T. Luego, son divididos en secuencias de 75 frames a las que se aplica un algoritmo de detección de rostros en el frame central.

Este método es útil para prevenir ataques simples en sistemas de reconocimiento facial (como es el caso de las fotografías), pero no recomendable para ataques más complejos. El objetivo del método es identificar variaciones temporales, que pueden ser vulneradas fácilmente con una máscara. Es por ello que se sugiere siempre combinar métodos para construir un sistema biométrico robusto.

Para mayor información y el código del proyecto desarrollado visitar el proyecto en GitHub.




Reconocimiento facial: una tecnología en constante actualización

Reconocimiento facial: una tecnología en constante actualización

El reconocimiento facial se refiere a la tecnología capaz de identificar la identidad de sujetos en imágenes o vídeos. Pese a una cantidad no menor de desconfianza debido a sus posibilidades de falla, actualmente es una metodología en constante desarrollo. Se trata de un sistema biométrico no invasivo, en donde las técnicas utilizadas han variado enormemente durante los años.

Durante los 90’s, los métodos tradicionales utilizaban características handcrafted, como descriptores de bordes y texturas. Gabor, Local Binary Patterns (LBP), Histogram of Oriented Gradients (HOG), Scale Invariant Feature Transform (SIFT), etc. son algunos ejemplos de esto, los que eran la base para representaciones más complejas, por medio de codificación y transformación de características como Principal Component Analysis (PCA), LCA, entre otras. Aspectos como la luminosidad, pose o expresión pueden manejarse a través de estos parámetros.

Antiguamente, no existía ninguna técnica que pudiera dominar completa e integralmente todos los escenarios. Uno de los mejores resultados logrados es el presentado en el estudio  “Blessing of dimensionality: High-dimensional feature and its efficient compression for face verification”, donde se alcanza un 95% en la base de datos Labeled Face in the Wild (LFW). Esto indica que los métodos existentes eran insuficientes para extraer una representación de los rostros que fuese invariante a los cambios del mundo real.

¿Cómo funciona el reconocimiento facial en la actualidad?

Desde hace unos años, los métodos tradicionales han sido reemplazados por otros basados en deep learning, los que a su vez tienen su origen en las Redes Neuronales Convolucionales (CNN). La principal ventaja de los métodos basados en aprendizaje profundo, es que pueden “aprender”, a partir de grandes bases de datos, las mejores características para representar los datos, es decir, para construir los rostros. 

Un ejemplo de esto es la red DeepFace, que el año 2014 alcanzó un desempeño “estado del arte” en la famosa base de datos LFW. Con esto, logró aproximarse al desempeño de un humano en un escenario sin restricciones (DeepFace: 97,35% vs Humanos: 97,53%). Esto, entrenando un modelo de 9 capas sobre 4 millones de imágenes de rostros. Inspirado por este trabajo, el foco de las investigaciones se desvió hacia los métodos basados en aprendizaje profundo, logrando alcanzar un 99,8% en tan solo tres años.

Los sistemas de reconocimiento facial usualmente están conformados por las etapas mostradas en la siguiente figura:

  1. Detección de rostros: Se ingresa al sistema una imagen de consulta. Un detector encuentra la posición del rostro en la imagen de consulta y retorna las coordenadas de la posición.
  2. Alineamiento del rostro: Su objetivo es escalar y recortar la imagen del mismo modo para todos los rostros, utilizando un set de puntos de referencia.
  3. Representación del rostro: Los píxeles de la imagen de la imagen del rostro son transformados a una representación compacta y discriminativa, es decir, en un vector de características. Esta representación puede ser lograda utilizando métodos clásicos o modelos basados en aprendizaje profundo. Idealmente, todas las imágenes del rostros de un mismo sujeto deberían tener vectores de características similares.
  4. Pareo de rostros: Las imágenes de los rostros de los individuos registrados conforman una base de datos llamada galería. Cada imagen de rostro en la galería es representada como un vector de características. La mayoría de los métodos calculan la similitud entre el vector de características de la imagen de consulta y los vectores de la galería, utilizando la distancia coseno o la distancia L2. Aquel con menor distancia indica a qué individuo pertenece el rostro consultado.