+ All Categories
Home > Documents > Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la...

Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la...

Date post: 12-Feb-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
40
Ciudad Victoria, Tamaulipas, 7 de junio de 2017 Reconocimiento automático de rostros Ponente: Dr. Wilfrido Gómez Flores Investigador CINVESTAV Tamaulipas [email protected] 1
Transcript
Page 1: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Ciudad Victoria, Tamaulipas, 7 de junio de 2017

Reconocimiento automático de rostros

Ponente: Dr. Wilfrido Gómez FloresInvestigador CINVESTAV Tamaulipas

[email protected]

1

Page 2: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Introducción

2

Page 3: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

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

Page 4: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

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.

• Una característica es un atributo que describe un rasgo distintivo del rostro de una persona.

• Un sistema de RAR realiza comúnmente los siguiente 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.

Page 5: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

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.

Page 6: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

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:

Page 7: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

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

Page 8: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

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.

• Se denomina dimensionalidad al número de características que describen el rostro.

• Un ejemplo simple. Las naranjas y sandías se pueden diferenciar por tres características: tamaño, forma y color.

• Objetos similares compartirán la misma región del espacio de características.

• Se puede reducir el espacio de características proyectando los puntos a dos dimensiones.

Tamaño

Forma

Color

GrandePequeño

Ovalado

Redondo

Naranja

Verde

Espacio en tres dimensiones

Proyecciones a dos dimensiones

Page 9: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

9

Métodos comunes de RAR

• Existen dos métodos holísticos ampliamente utilizados para el RAR:

‣ 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.

Page 10: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Métodos

10

Page 11: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

11

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

Page 12: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

12

Método PCA

• El método PCA involucra los siguientes pasos:

1. Sustraer la media (μ) de cada característica (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 características en un nuevo conjunto x' con m características (donde m<M) mediante la transformación x'=xWPCA.

Page 13: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

13

Método PCA

x1x2

x3

y1

y2

Proyección ortogonal

Primera componenteSegunda

componente

Page 14: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

14

• 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 características a un subespacio con c−1 características donde se preserva la información discriminatoria entre las clases.

Método LDA

Page 15: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

15

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 características en un nuevo conjunto x' con c−1 variables mediante la transformación x'=xWLDA.

Page 16: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

16

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

Page 17: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

17

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)

Page 18: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

RAR con Fisherfaces

18

Page 19: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

19

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 construye 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.

Page 20: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

20

Datos de entrada

• Una imagen de un rostro 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

Page 21: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

21

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

Page 22: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

22

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).

Page 23: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

23

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

Page 24: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

24

EntrenamientoIm

ágen

es d

e en

tren

amie

nto

Modelos de referencia (proyecciones Fisherfaces)

Page 25: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

25

EntrenamientoIm

ágen

es d

e en

tren

amie

nto

Modelos de referencia (proyecciones Fisherfaces)

Page 26: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

26

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 similitud.

• La similitud se mide con 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 distancia Euclidiana a los k vecinos más cercanos es menor a un umbral predeterminado, en caso contrario se clasifica como desconocida.

Page 27: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

27

• 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.

Page 28: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

28

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

Page 29: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

29

Reconocimiento

Modelo de referencia 1

Modelo de prueba

Modelo de referencia 2

Page 30: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Práctica

30

Page 31: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

31

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 construye 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.

Page 32: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

32

Banco de imágenes

• Se utilizará el banco de imágenes “The ORL Database of faces” disponible en:

http://www.tamps.cinvestav.mx/~wgomez/toptamps2017.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.

Page 33: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

33

Sistema de RAR

• El sistema de reconocimiento de rostros involucra ejecutar primero el entrenamiento y después el reconocimiento de una persona.

Page 34: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

34

Funciones

• El sistema de reconocimiento de rostros se ejecuta mediante el comando interface.

• Para que el sistema funcione, se deben completar los programas train_faces y recogn_faces invocando algunas subrutinas en el orden correcto.

• Para la función train_faces se invocarán las siguientes subrutinas:

‣ [X,y,SubjectNames]=extract_data(pathTr), genera los 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 y SubjectName es la lista de nombres de las personas en el conjunto de entrenamiento.

Page 35: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

35

Funciones

‣ [W,m]=reduce_dim(X,y), reduce la dimensionalidad del espacio de características mediante las técnicas de PCA y LDA:

- Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.

- Salida: W es la matriz de proyecciones PCA-LDA y m es el vector de promedios de cada característica de la matriz de entrenamiento.

‣ P=face_models(X,m,W), genera los modelos de referencia:

- Entradas: X es la matriz de entrenamiento, m es el vector de promedios de cada característica y W es la matriz de proyecciones PCA-LDA.

- Salida: P son los modelos de referencia de las personas en el conjunto de entrenamiento.

Page 36: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

36

Funciones• Para la función recogn_faces se invocarán las siguientes subrutinas:

‣ X=image2vector(I), convierte una imagen a vector:

- Entrada: I es la imagen del rostro de una persona.

- Salida: X es el vector de los píxeles de la imagen.

‣ Q=face_models(X,m,W), genera el modelo de prueba:

- Entradas: X es el vector de la imagen de prueba, m es el vector de promedios de cada característica y W es la matriz de proyecciones PCA-LDA.

- Salida: Q es el modelo de prueba.

‣ 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.

Page 37: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

37

Entrenamiento

• Se programarán los pasos del entrenamiento del sistema RAR en la f u n c i ó n [P,W,m,y,SubjectNames]=train_faces(pathTr) mediante el siguiente proceso:

1. Generar los datos de entrenamiento: extract_data.

2. Reducir la dimensionalidad de los datos: reduce_dim.

3. Generar los modelos de referencia: face_models.

Page 38: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

38

Reconocimiento

• Se programarán los pasos del reconocimiento del sistema RAR en la función c=recogn_faces(I,y,m,W,P) mediante el siguiente proceso:

1. Convertir la imagen de prueba a vector: image2vector.

2. Generar el modelo de prueba: face_models.

3. Aplicar KNN para reconocer el modelo de prueba: knn.

Page 39: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

39

Soluciones

Page 40: Reconocimiento automático de rostroswgomez/toptamps/presentacion_2017.pdf · -Entradas: X es la matriz de entrenamiento e y son las etiquetas que identifican a cada persona.-Salida:

Cinvestav Tamaulipas

40

Soluciones


Recommended