Reconocimiento automático de rostros - Cinvestav

Anuncio
Reconocimiento
automático de rostros
Ponente: Dr. Wilfrido Gómez Flores
Investigador CINVESTAV Tamaulipas
[email protected]
Ciudad Victoria, Tamaulipas, 15 de junio de 2016
1
Introducción
2
Reconocimiento de rostros
Cinvestav
Tamaulipas
•
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.
campo visual
ojo derecho
ojo izquierdo
retina
colículo superior
núcleo geniculado
lateral
nervio óptico
quiasma óptico
tracto óptico
tracto
geniculoestriado
corteza de
asociación visual
corteza estriada
mapa retinotópico
3
Reconocimiento de rostros
•
Tamaulipas
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
•
Cinvestav
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.
4
Reconocimiento de rostros
•
Cinvestav
Tamaulipas
Las aplicaciones del RAR generalmente están orientadas a la seguridad,
por ejemplo, vigilancia, control de acceso, retratos policiales, etc.
5
Dificultades en el RAR
•
Cinvestav
Tamaulipas
Las técnicas de RAR deben ser robustas a variaciones que sufre la
imagen como:
‣ Iluminación:
‣ Expresión:
‣ Pose:
‣ Oclusión:
6
Métodos comunes de RAR
•
Cinvestav
Tamaulipas
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
Método holístico
Dimensionalidad
7
Métodos comunes de RAR
Cinvestav
Tamaulipas
•
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.
8
Métodos
9
Método PCA
Cinvestav
Tamaulipas
•
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 vista
del conjunto original de datos en 3D
Proyección de los datos con
el mejor punto de vista en 2D
10
Método PCA
•
Cinvestav
Tamaulipas
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.
11
Método PCA
Cinvestav
Tamaulipas
x3
Primera
componente
Segunda
componente
y1
Proyección
ortogonal
x1
x2
y2
12
Método LDA
•
Tamaulipas
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:
‣
‣
•
Cinvestav
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.
13
Método LDA
•
Cinvestav
Tamaulipas
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.
14
Método LDA
x2
Cinvestav
Tamaulipas
x2
Clase 1
Proyección
ortogonal
W
Clase 2
x1
W
x1
Dos vectores WLDA que generan una mala separación (izquierda)
y una separación óptima (derecha) entre dos clases proyectadas.
15
PCA versus LDA
Cinvestav
Tamaulipas
•
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.
Cl
n
ió
tac
en )
es A
pr PC
Re (
as
(L ifica
D ció
A) n
x2
x1
16
RAR con Fisherfaces
17
Fisherfaces
Cinvestav
Tamaulipas
•
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.
18
Datos de entrada
Cinvestav
Tamaulipas
•
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
MN
N
19
Datos de entrenamiento
Cinvestav
Tamaulipas
•
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 1
Persona 2
Persona c
Datos de entrenamiento n×MN
Etiquetas
1
2
c
20
Datos de entrenamiento
•
Cinvestav
Tamaulipas
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).
21
Entrenamiento
Cinvestav
Tamaulipas
ENTRADA
Conjunto de n
imágenes y c
personas
Generar datos
de
entrenamiento
Reducir
dimensionalidad
con PCA
Información
discriminante
con LDA
X ∈R MN
µ ∈RMN
WPCA ∈Rn−c
WLDA ∈Rc−1
Matriz de proyecciones final:
W=WPCAWLDA
SALIDA
Generar modelos de referencia:
P=(X−μ)W
W ∈Rc−1
P ∈Rc−1
µ ∈R MN
22
Entrenamiento
Cinvestav
Tamaulipas
Imágenes de entrenamiento
Modelos de referencia (proyecciones Fisherfaces)
23
Entrenamiento
Cinvestav
Tamaulipas
Imágenes de entrenamiento
Modelos de referencia (proyecciones Fisherfaces)
24
Reconocimiento
•
Cinvestav
Tamaulipas
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 = (x t − µ)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.
25
Reconocimiento
•
Cinvestav
Tamaulipas
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.
Persona 1
Persona 2
q
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.
26
ENTRADA
Reconocimiento
Tamaulipas
Convertir a
espacio de MN
variables
Imagen de
prueba
Datos de
entrenamiento
Cinvestav
W,µ
P
Proyectar a
Fisherfaces
q
Reconocer con
KNN
SALIDA
Nombre de la
persona
27
Reconocimiento
Cinvestav
Tamaulipas
Modelo de
referencia 1
Modelo de
referencia 2
Modelo de
prueba
28
Práctica
29
MATLAB
Cinvestav
Tamaulipas
•
•
Para el desarrollo de la práctica se utilizará MATLAB versión 2016a.
•
Un programa se contruye mediante la llamada a funciones que realizan
tareas particulares y su sintaxis es:
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.
[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.
30
Banco de imágenes
•
Cinvestav
Tamaulipas
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.
31
Sistema de RAR
•
Cinvestav
Tamaulipas
El sistema de reconocimiento de rostros involucra ejecutar primero el
entrenamiento (con una vez es suficiente) y después el reconocimiento
de una persona.
32
Funciones
•
Cinvestav
Tamaulipas
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 e n e r a 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.
33
Funciones
‣
‣
Cinvestav
Tamaulipas
[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.
34
Funciones
‣
‣
Cinvestav
Tamaulipas
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.
35
Entrenamiento
Cinvestav
Tamaulipas
•
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.
36
Reconocimiento
Cinvestav
Tamaulipas
•
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.
37
Descargar