Upload
hoangnhu
View
213
Download
0
Embed Size (px)
Citation preview
Reconocimiento de rostros con Redes Neuronales Convolucionales
Redes Neuronales (66.63)
FIUBAMario Azcueta
Reconocimiento de rostros
DETECTAR un rostro
en una escena
IDENTIFICAR un rostro
en particular (clasificar)
Las CNNs se aplicarán al problema de IDENTIFICACIÓN en este caso
Se busca un sistema veloz, de identificación en tiempo real
Se dispone de:
Banco de imágenes de rostros de personas a las cuales se quiere reconocer
Se dispone de:
Banco de imágenes de rostros de personas a las cuales se quiere reconocer
Varias imágenes por persona (aprox 4)
Se dispone de:
Banco de imágenes de rostros de personas a las cuales se quiere reconocer
Varias imágenes por persona (aprox 4)
Imágenes normalizadas. Pueden variar pose, iluminación, detalles menores
Terminología:
Cada persona representa una clase
Las imágenes son muestras, que pertenecen a una cierta clase
Hay imágenes de entrenamiento y de test
La identificación de un rostro constituye un proceso de clasificación
Terminología:
Muestras de
test
Muestras de
entrenamiento
Clases
Objetivo de las CNNs
Armar un clasificador de rostros que logre generalizar
Se entrena a la red con las muestras de entrenamiento
Debe identificar a la misma persona, aunque se le muestre una imagen nueva
Operación del clasificador
1. Se comprime la imagen (SOM o PCA)
2. Se muestra la imagen comprimida a la CNN
3. La CNN determina a qué clase pertenece
Sistema de compresión
Se utiliza una red de Kohonen (SOM) tridimensional de 5x5x5 nodos
Sistema de compresión
Se utiliza una red de Kohonen (SOM) tridimensional de 5x5x5 nodos
Función de vecindad Gaussiana
Sistema de compresión
Se utiliza una red de Kohonen (SOM) tridimensional de 5x5x5 nodos
Función de vecindad Gaussiana
10e3 epochs de ordenamiento (desvío fijo, tasa de aprendizaje 0.7)
Sistema de compresión
Se utiliza una red de Kohonen (SOM) tridimensional de 5x5x5 nodos
Función de vecindad Gaussiana
10e3 epochs de ordenamiento (desvío fijo, tasa de aprendizaje 0.7)
5e3 epochs de refinamiento (desvío decreciente, tasa de aprendizaje 0.02)
Entrenamiento del SOM
1. Se extraen sucesivas ventanas (frames) de 8x8 píxeles de las imágenes de entrenamiento, con la mitad de solapamiento
2. Cada ventana se muestra como vector al SOM
3. Se elije la neurona ganadora, y se actualizan sus pesos y los de la vecindad:
Compresión con el SOM
Dada una imagen a comprimir:
1. Se extraen las sucesivas ventanas de 8x8
Compresión con el SOM
Dada una imagen a comprimir:
1. Se extraen las sucesivas ventanas de 8x8
2. Se muestra cada ventana como vector de 64 puntos al SOM. Se elije la neurona ganadora
Compresión con el SOM
Dada una imagen a comprimir:
1. Se extraen las sucesivas ventanas de 8x8
2. Se muestra cada ventana como vector de 64 puntos al SOM. Se elije la neurona ganadora
3. El vector de 64 puntos queda así reducido a uno de 3 puntos (red 3D), con las coordenadas de la neurona ganadora
La imagen original se reduce a 3 matrices de 1/16 el tamaño de la imagen original c/u
grayscale, 128x192
grayscale, 3@32x48
Se tiene una compresión de 3:16 (aprox 1:5)
El SOM actúa como algoritmo de clustering, representando a todas las ventanas extraídas sólo por los vectores más representativos
Arquitectura y funcionamiento de CNN
Formada por capas y mapas
Se suceden capas de convolución (impares) y de submuestreo (pares)
Cada círculo es una neurona tipo perceptrón Las neuronas de un mismo mapa compartentodas los mismos pesos Cada neurona tiene como entrada una sección fija de 1 o varios mapas de la capa anterior (campos receptivos). El tamaño de la sección es variable
g(h) = tanh(h)
Perceptrones
En las capas de convolución, los campos receptivos se mueven de a 1 pixel (tienen solapamiento). Es análogo a una convolución
Capas de convolución
Capas de convolución
En las capas de submuestreo, los campos receptivos son de 2x2 y se mueven de a 2 píxeles. Cada perceptrón tiene 4 pesos iguales
Capas de submuestreo
Capas de submuestreo
Tres ideas centrales:
Campos receptivos locales (la distribución espacial de la entrada importa)
Pesos compartidos
Sub-muestreo espacial
Estos dos últimos facilitan la generalización(LeCun) El número de mapas es incrementado a la vez que la resolución espacial reducida
CNN utilizada
Entrenamiento de la CNN
Las imágenes de entrenamiento comprimidas se usan para entrenar la CNN. Para cada imagen:
1. Se la normaliza restando la media y dividiendo por el desvío std. Esto previene la saturación de la red
2. Se presenta la imagen a la red, y se obtiene la salida. Como se a qué persona corresponde el rostro, conozco la salida deseada. Esto es un vector con '1' en la posición que corresponde a la clase y '-1' en el resto
3. Se calcula el error en la salida, y con este se actualizan los pesos de la CNN utilizando backpropagation
Backpropagation
Se entrena usando el algoritmo de backpropagation, adaptado a la arquitectura de la CNN
Primero, un repaso del algoritmo aplicado a perceptrones multicapa...
Imágenes de http://galaxy.agh.edu.pl/~vlsi/AI/backp_t_en/backprop.html
El algoritmo se aplica sin modificaciones a la CNN, neurona a neurona
Una forma eficiente para implementarlo es mediante convoluciones 2D, como se ve a continuación
* Ver Notes on Convolutional Neural Networks, Jack Bouvrie (MIT, 2006)
Capas de convolución
La salida del mapa 'j' de la capa 'l' es:
'i' indexa los mapas de la
capa 'l-1' que toma el mapa
j de la capa l
Capas de convolución
El delta para el mapa 'j' de la capa 'l' se computa como
donde
esto no es mas que propagar la delta hacia atrás, multiplicando por los pesos y la derivada de la función de activación
Capas de convolución
Los gradientes resultan
los pesos son actualizados restándoles el gradiente y multiplicando por la tasa de aprendizaje ( )t
Capas de submuestreo
La salida del mapa 'j' de la capa 'l' es:
'down' suma los elementos
de bloques de 2x2 de un mapa,
sin solapamiento
Capas de submuestreo
El delta para el mapa 'j' de la capa 'l' se computa como
otra vez, esto no es mas que propagar la delta hacia atrás, multiplicando por los pesos y la derivada de la función de activación
Capas de submuestreo
Los gradientes resultan
los pesos son actualizados restándoles el gradiente y multiplicando por la tasa de aprendizaje ( )t
Tasa de aprendizaje
La tasa de aprendizaje es tipo "search then converge"
( )t
Verificación del algoritmo
Para verificar la correcta implementación se aproximan los deltas como
y se compara con los obtenidos mediante backpropagation. La diferencia debe ser mínima (1e-4 %)
Elección de la clase ganadora
Se estima la probabilidad a posteriori de la clase ganadora mediante la transformada softmax
es la posición k del vector de salida, dada la imagen de entrada x
N es el número total de clases
Puede usarse como medida de confianza
( )kA x
Simulaciones y resultados
Se usaron imágenes de la base de datos FERET
4 imágenes de entrenamiento
Simulaciones y resultados
Se usaron imágenes de la base de datos FERET
4 imágenes de entrenamiento
4 imágenes de test
Simulaciones y resultados
Se usaron imágenes de la base de datos FERET
4 imágenes de entrenamiento
4 imágenes de test
Número de clases (personas) variable de 10 a 40
Simulaciones y resultados
Se usaron imágenes de la base de datos FERET
4 imágenes de entrenamiento
4 imágenes de test
Número de clases (personas) variable de 10 a 40
10e3 epochs de entrenamiento, con tasa de aprendizaje search then converge
Simulaciones y resultados
Excepto en los casos donde se aclare, todos los experimentos se realizaron con:
4 imágenes de entrenamiento por clase
4 imágenes de test por clase
20 clases
SOM de 3 dimensiones con 5 nodos/dimensión
Imagen 128x192
1. 3@48x32
2. 20@44x28
3. 20@22x14
4. 25@18x10
5. 25@9x5
6. 5@1x1
Error según número de clases
Error según dimensión SOM
Error según imágenes de entrenamiento
Medición de confianza
Error y tasa de rechazos
Otras aplicaciones de las CNN
Reconocimiento de caracteres alfanuméricos
Reconocimiento de expresiones en rostros
Reconocimiento de habla
Detección de objetos en general
Clasificación de señales de EEG
Tracking en secuencias de video
Referencias:
[1] Hertz, Krogh, Palmer. Introduction to the theory of neural computation. Addison-Wesley, 1991.
[2] LeCun, Bengio. Convolutional Networks for Images, Speech and Time-Series. The Handbook of Brain Theory and Neural Networks. MIT Press, pp. 255-258, 1995.
[3] Lawrence, Giles, Tsoi, Back. Face recognition: A Convolutional Neural Network Approach. IEEE transactions on Neural Networks, Vol. 8, No. 1, January 1997.
[4] Bouvrie. Notes on Convolutional Neural Networks. Center for Biological and Computational learning, MIT 2006.
[5] Browne, Ghidary. Convolutional Neural Networks for Image Processing: An Application in Robot Vision. AI 2003: Advances in Artificial Intelligence, pp. 641-652. 2004.
[6] LeCun, Bottou, Haffner. Gradient-Based Learning Applied to Document Recognition. Proceedings of the IEEE, Vol. 86, No. 11, Nov 1998.
[7] LeCun, Bottou, Orr, Muller. “Efficient BackProp”, in: Neural Networks: Tricks of the trade. Springer, 1998.
[8] Kohonen. Self-Organizing Maps. Springer-Verlag, Berlin, 1995.
[9] Muhlbaier, Topalis, Polikar. Ensemble Confidence Estimates Posterior Probability. Springer-Verlag, Berlin, 2005.
[10] Turk, Pentland. Face recognition using eigenfaces. Proc. IEEE Conference on Computer Vision and Pattern Recognition (1991), pp. 586–591.
[11] Fukushima, Miyake, Ito. Neocognitron: a neural network model for a mechanism of visual pattern recognition. IEEE Transactions on Systems, Man, and Cybernetics, Vol. SMC-13(Nb. 3):pp.826-834, September/October 1983.