Reconocimiento automático de rostroswgomez/toptamps/presentacion2_2016.pdfidentifican a cada...
Transcript of Reconocimiento automático de rostroswgomez/toptamps/presentacion2_2016.pdfidentifican a cada...
Ciudad Victoria, Tamaulipas, 15 de junio de 2016
Reconocimiento automático de rostros
Ponente: Dr. Wilfrido Gómez FloresInvestigador CINVESTAV Tamaulipas
1
Introducción
2
Cinvestav Tamaulipas
Reconocimiento de rostros• El reconocimiento de rostros es una tarea muy fácil para los humanos,
a pesar de que todos compartimos las mismas características básicas: dos ojos por encima de una nariz y una boca.
• ¿Cómo logramos esto? Las células nerviosas en la corteza visual responden a características locales específicas como bordes, líneas, ángulos o movimiento, las cuales se combinan en patrones útiles.
3
campo visual
ojo derecho
ojo izquierdo nervio ópticoretina quiasma óptico
tracto óptico
tracto geniculoestriado
núcleo geniculado lateral
mapa retinotópico
colículo superior
corteza de asociación visual
corteza estriada
Cinvestav Tamaulipas
4
Reconocimiento de rostros
• El reconocimiento automático de rostros (RAR) trata de las técnicas computacionales para la identificación de individuos a partir de características faciales y comúnmente realiza los siguientes procesos:
Extracción de características Representación Clasificación NOMBRE
• Disciplinas científicas involucradas en el desarrollo de técnicas de RAR: neurociencias, sicología, reconocimiento de patrones, visión por computadora, aprendizaje automático.
Cinvestav Tamaulipas
5
Reconocimiento de rostros
• Las aplicaciones del RAR generalmente están orientadas a la seguridad, por ejemplo, vigilancia, control de acceso, retratos policiales, etc.
Cinvestav Tamaulipas
6
Dificultades en el RAR• Las técnicas de RAR deben ser robustas a variaciones que sufre la
imagen como:
‣ Iluminación:
‣ Expresión:
‣ Pose:
‣ Oclusión:
Cinvestav Tamaulipas
7
Métodos comunes de RAR
• Comparar características faciales contra características de referencia para intentar encontrar una correspondencia positiva:
‣ Métodos geométricos: a partir de puntos marcadores se miden distancias, ángulos, etc., para describir la geometría del rostro de una persona.
‣ Métodos holísticos: toman como dato de entrada toda la región del rostro para el reconocimiento.
Método geométrico
Dimensionalidad
Método holístico
Cinvestav Tamaulipas
8
Métodos comunes de RAR
• Un método holístico considera una imagen de un rostro como un punto en un espacio de alta dimensionalidad y éste se proyecta a un espacio de menor dimensionalidad donde es más fácil la clasificación.
• Dos métodos holísticos ampliamente utilizados:
‣ Eigenfaces: se basa en el método de análisis de componentes principales (PCA) para reducir la dimensionalidad proyectando los datos sobre una dirección que maximice la distribución total.
‣ Fisherfaces: se basa en el método de análisis lineal discriminante de Fisher (LDA) para maximizar la relación inter/intra clase, donde una clase corresponde a una persona.
Métodos
9
Cinvestav Tamaulipas
10
Método PCA• El análisis de componente principales (PCA) aplica una transformación
lineal al conjunto de datos de entrada para extraer un conjunto reducido de variables que preserve la estructura original de los datos.
• PCA identifica la rotación que revela la estructura subyacente del conjunto de datos, es decir, encuentra el “mejor punto de vista” donde la mayor dispersión entre los puntos está en las primeras dimensiones de los datos rotados.
Diferentes puntos de vistadel conjunto original de datos en 3D
Proyección de los datos con el mejor punto de vista en 2D
Cinvestav Tamaulipas
11
Método PCA
• El método PCA involucra los siguientes pasos:
1. Sustraer la media (μ) de cada variable original (centralización).
2. Estimar la matriz de covarianza de los datos centralizados.
3. Computar los autovalores y autovectores de la matriz de covarianza.
4. Ordenar autovalores y autovectores en orden descendente.
5. Seleccionar los primeros m autovectores, conocidos como componentes principales, los cuales representan la matriz de transformación WPCA.
6. Proyectar el conjunto original x con M variables en un nuevo conjunto x' con m variables (donde m<M) mediante la transformación x'=xWPCA.
Cinvestav Tamaulipas
12
Método PCA
x1x2
x3
y1
y2
Proyección ortogonal
Primera componenteSegunda
componente
Cinvestav Tamaulipas
13
• El análisis lineal discriminante (LDA) determina la combinación lineal de variables que mejor separe las clases al maximizar la relación entre las dispersiones inter e intra-clase:
‣ Dispersión intra-clase: los puntos de una misma clase debe estar lo más juntos posible.
‣ Dispersión inter-clase: los puntos de diferentes clases deben estar lo más distante posible.
• Si se tienen c clases (i.e., c objetos diferentes), LDA proyecta los datos originales x con d variables a un subespacio con c−1 variables donde se preserva la información discriminatoria entre las clases.
Método LDA
Cinvestav Tamaulipas
14
Método LDA
• El método LDA involucra los siguientes pasos:
1. Computar las matrices de dispersión inter e intra-clase.
2. Resolver el problema generalizado de valores propios usando las matrices de dispersión inter e intra-clase.
3. Ordenar autovalores y autovectores en orden descendente.
4. Seleccionar los primeros c−1 autovectores, los cuales representan la matriz de transformación WLDA.
5. Proyectar el conjunto original x con d variables en un nuevo conjunto x' con c−1 variables mediante la transformación x'=xWLDA.
Cinvestav Tamaulipas
15
Método LDA
x2
x1
W
x2
x1W
Dos vectores WLDA que generan una mala separación (izquierda) y una separación óptima (derecha) entre dos clases proyectadas.
Clase 1
Clase 2
Proyección ortogonal
Cinvestav Tamaulipas
16
PCA versus LDA• PCA: mejorar la representación de los datos de entrada en un espacio
de baja dimensionalidad.
• LDA: mejorar la información discriminante entre clases en un espacio de baja dimensionalidad.
x2
x1
Representación
(PCA)Clas
ificaci
ón
(LDA)
RAR con Fisherfaces
17
Cinvestav Tamaulipas
18
Fisherfaces
• El reconocimiento automático de rostros usando la técnica de Fisherfaces está basado en los métodos PCA y LDA.
• Existen dos procesos principales en el RAR:
‣ Entrenamiento: se contruye el modelo de referencia de cada persona conocida a partir de una base de datos con imágenes de rostros.
‣ Reconocimiento: se genera un modelo de prueba de una imagen de un rostro la cual se compara contra los modelos de referencias de las personas conocidas para intentar encontrar una coincidencia.
Cinvestav Tamaulipas
19
Datos de entrada
• Una imagen de tamaño M×N píxeles es convertida a un vector con MN elementos, lo cual representa un punto en un espacio de MN dimensiones.
• Esta conversión es la primera etapa en los procesos de entrenamiento y reconocimiento.
M
N
MN
Cinvestav Tamaulipas
20
Datos de entrenamiento• Los datos de entrenamiento se refieren al conjunto de vectores
generados a partir de imágenes de rostros de personas conocidas.
• Es una matriz de tamaño n×MN, donde n es el número de imágenes de entrenamiento y MN el número de píxeles en las imágenes.
• Cada vector de entrenamiento se asocia a una etiqueta numérica que identifica a la persona. Por tanto, habrá tantas etiquetas como personas distintas en el conjunto de imágenes.
Persona 2Persona 1
Persona c12
c
Datos de entrenamiento n×MN Etiquetas
Cinvestav Tamaulipas
21
Datos de entrenamiento
• Para hacer un modelo de referencia más preciso de cada persona, es recomendable considerar variaciones en el rostro como poses, expresiones o accesorios (e.g., lentes).
Cinvestav Tamaulipas
22
Entrenamiento
Generar datos de
entrenamiento
Reducir dimensionalidad
con PCA
Información discriminante
con LDA
Matriz de proyecciones final:W=WPCAWLDA
Generar modelos de referencia:P=(X−μ)W
X ∈RMN
WPCA ∈Rn−c WLDA ∈Rc−1 µ ∈RMN
Conjunto de n imágenes y c
personas
W ∈Rc−1
P ∈Rc−1
µ ∈RMN
ENTRADA
SALIDA
Cinvestav Tamaulipas
23
EntrenamientoIm
ágen
es d
e en
tren
amie
nto
Modelos de referencia (proyecciones Fisherfaces)
Cinvestav Tamaulipas
24
EntrenamientoIm
ágen
es d
e en
tren
amie
nto
Modelos de referencia (proyecciones Fisherfaces)
Cinvestav Tamaulipas
25
Reconocimiento• En la etapa de reconocimiento, una imagen de un rostro de tamaño M×N
es convertida a un vector xt, el cual se proyecta al espacio de Fisherfaces como:
q =(xt − µ)W
• El modelo de prueba q se compara contra todos los modelos de referencia P={p1,…,pn} para identificar al sujeto con mayor similaridad.
• La similaridad se mide en términos de la distancia Euclidiana y la decisión se hace con base en los k modelos más parecidos.
• A este enfoque de clasificación se le conoce como regla de los k vecinos más cercanos (KNN, k-nearest neighbor).
• Una persona es reconocida si la media de la distancia Euclidiana a los k vecinos más cercanos es menor a un umbral predeterminado, en caso contrario se clasifica como desconocida.
Cinvestav Tamaulipas
26
• El algoritmo KNN mide la distancia Euclidiana entre un modelo de prueba y sus k modelos de referencia más cércanos y lo clasifica hacia el modelo de referencia que tenga mayor presencia.
Reconocimiento
q
Persona 1Persona 2
Persona 3
Un modelo de prueba q se compara con sus k=5 vecinos más cercanos y se reconoce como “Persona 1”, ya que es el modelo de referencia mayoritario en su vecindario.
Cinvestav Tamaulipas
27
Reconocimiento
Convertir a espacio de MN
variables
Imagen de prueba
Proyectar a Fisherfaces
Reconocer con KNN
Nombre de la persona
Datos de entrenamiento
W ,µ
P q
ENT
RA
DA
SALIDA
Cinvestav Tamaulipas
28
Reconocimiento
Modelo de referencia 1
Modelo de prueba
Modelo de referencia 2
Práctica
29
Cinvestav Tamaulipas
30
MATLAB
• Para el desarrollo de la práctica se utilizará MATLAB versión 2016a.
• MATLAB (matrix laboratory) es un lenguaje numérico de alto nivel basado en la manipulación de matrices, por lo que es muy útil en el análisis de imágenes.
• Un programa se contruye mediante la llamada a funciones que realizan tareas particulares y su sintaxis es:
[out1,out2,…,outN]=myfun(in1,in2,…,inM);
donde “myfun” es el nombre de la función que tiene M argumentos de entrada “in” y N argumentos de salida “out”.
• El símbolo de punto y coma “;” evita que los argumentos de salida se impriman en pantalla y no genera ningún error sino se coloca.
Cinvestav Tamaulipas
31
Banco de imágenes
• Se utilizará el banco de imágenes “The ORL Database of faces” disponible en:
http://www.cl.cam.ac.uk/research/dtg/attarchive/facedatabase.html
• Contiene imágenes de 40 personas diferentes y de cada una hay 10 fotografías del rostro.
• El tamaño de las imágenes es 92×112 píxeles.
• El banco de imágenes se ha divido en tres conjuntos:
‣ Entrenamiento (315 fotos): 35 individuos y 9 fotos de cada uno.
‣ Reconocimiento (35 fotos): una foto por cada individuo existente en el conjunto de entrenamiento.
‣ Desconocido (5 fotos): cinco individuos que no están contenidos el conjunto de entrenamiento.
Cinvestav Tamaulipas
32
Sistema de RAR• El sistema de reconocimiento de rostros involucra ejecutar primero el
entrenamiento (con una vez es suficiente) y después el reconocimiento de una persona.
Cinvestav Tamaulipas
33
Funciones
• El sistema de reconocimiento de rostros utiliza siete funciones diferentes:
‣ interface, es el programa principal del sistema de RAR.
‣ [X,y,SubjectNames]=train_data(pathTr) , g enera l o s datos de entrenamiento:
- Entrada: pathTr contiene la ruta del directorio del conjunto de entrenamiento.
- Salidas: X es la matriz de entrenamiento; y son las etiquetas que identifican a cada persona; SubjectNames, es la lista de nombres de las personas en el conjunto de entrenamiento.
‣ V=image2vector(I), convierte una imagen a vector:
- Entrada: I es la imagen del rostro de una persona.
- Salida: V es el vector de los píxeles de la imagen.
Cinvestav Tamaulipas
34
Funciones
‣ [Wpca,mu_]=pca(X,y), aplica el método PCA
- Entradas: X es la matriz de entrenamiento; y son las etiquetas que identifican a cada persona.
- Salidas: Wpca es la matriz de proyecciones para la reducción de dimensionalidad; mu_ es el vector de medias de las variables de la matriz de entrenamiento.
‣ XM=subtract_mean(X,mu_), resta la media de una matriz o vector (centralización):
- Entrada: X es la matriz de entrenamiento o un vector de imagen, mu_ es el vector de medias.
- Salida: XM es la matriz de entrenamiento o un vector de imagen centralizado.
Cinvestav Tamaulipas
35
Funciones
‣ Wlda=lda(X,y), aplica el método LDA
- Entradas: X es la matriz con dimensionalidad reducida con PCA; y son las etiquetas que identifican a cada persona.
- Salida: Wlda es la matriz de proyecciones LDA.
‣ c=knn(P,Q,y), clasificador de los k vecinos más cercanos:
- Entradas: P son los modelos de referencia; Q es el modelo de prueba; y son las etiquetas que identifican a cada persona.
- Salida: c etiqueta de la persona reconocida. Si c=0 la persona es desconocida.
Cinvestav Tamaulipas
36
Entrenamiento
• En la función interface se programará la acción del botón “Entrenar sistema”, llamando en el orden correcto las funciones necesarias para el entrenamiento.
• Esto se hace dentro de la función push_ent_Callback.
• Los pasos a seguir son:
1. Generar los datos de entrenamiento.
2. Aplicar PCA a los datos de entrenamiento.
3. Reducir la dimensionalidad de los datos de entrenamiento.
4. Aplicar LDA a los datos con dimensionalidad reducida.
5. Computar la matriz de proyecciones Fisherfaces.
6. Generar los modelos de referencia.
Cinvestav Tamaulipas
37
Reconocimiento
• En la función interface se programará la acción del botón “Reconocer sujeto”, llamando en el orden correcto las funciones necesarias para el reconocimiento.
• Esto se hace dentro de la función push_rec_Callback.
• Los pasos a seguir son:
1. Convertir la imagen de prueba a vector.
2. Proyectar el vector al espacio de Fisherfaces (modelo de prueba).
3. Aplicar KNN para reconocer al modelo de prueba.
Cinvestav Tamaulipas
38
Soluciones
Cinvestav Tamaulipas
39
Soluciones