RECONOCIMIENTO DE CARAS
INTRODUCCIÓN
| PLANTEO DEL PROBLEMA | PROCEDIMIENTO
DETECCIÓN | RECONOCIMIENTO
ANEXOS
| CONCLUSIONES
INTRODUCCIÓN
Este trabajo consiste en el reconocimiento de una persona comparando las características de la cara de la misma
con la de individuos conocidos, presentes en una base de datos que llamaremos set.
Extraemos la información relevante de una cara
,codificandola lo más eficientemente posible y comparamos dicha codificación con una base de datos de otros modelos codificados de forma similar.
Matematicamente, lo que hacemos es buscar las componentes principales de la distribución de caras, osea los vectores propios de la matriz de covarianza del set de imagenes
de caras.Se puede visualizar cada uno de los vectores propios como una especie de cara fantasma que llamaremos " cara propia".
Cada cara del set puede ser representada como una combinacion lineal de
las "caraspropias".Por lo tanto para determinar si una cara es conocida, lo que hacemos es calcular la distancia de la misma al espacio de caras. Dependiendo de dicha distancia clasificamos la cara como conocida o no perteneciente al set.
PLANTEO DEL PROBLEMA
Dada una imagen , lo primero es detectar si esta corresponde a la iamgen de una cara o no. Si es una cara,
queremos ver si la persona pertenece a nuestra base de datos o es una cara desconocida, siendo importante destacar que el reconocimiento de la persona debe hacerse aún si la imagen de la persona no es exactamente igual a la que poseemos en nuestra base de datos.
PROCEDIMIENTO
- Paso 1. Una vez adquirido el set de imagenes, se representa a cada imagen Ii como un vector Vi.
- Paso 2. Se calcula el vector promedio Vp del set.
- Paso 3. Se halla Fi como la resta de cada Vi-Vp.
- Paso 4. Sea la matriz de covarianza C=AAT, siendo A=[F1F2...FM] y M la cantidad de imagenes del set.
- Paso 5. Se calculan los valores propios de C. Los vectores propios asociados a dichos valores propios representan las llamadas"caras propias".
El espacio de caras es el espacio formado por los mencionados vectores.
- Paso 6. Cada cara perteneciente al set se representa como una combinación lineal de las "caras propias", siendo esta la proyección sobre el espacio de caras.
DETECCIÓN
Si una imagen es una
cara, en particular una cara del set, la distancia de ésta al espacio de caras es pequeña. En otras palabras, la proyección de
ésta sobre el espacio de caras en menor que un determinado umbral Td. Por lo tanto, se toma la nueva imagen, se la proyecta sobre el
espacio de caras, calculando la distancia Euclidea ed. Si ed es menor que el umbral Td, la imagen
es una cara.
RECONOCIMIENTO
Dada la imagen de una cara, pueden presentarse tres situaciones:
- 1- La imagen coincide con una de las imagenes del set.
- 2- La imagen no coincide con ninguna de las imagenes del set, pero representa a una de las personas pertenecientes al set.
- 3- La imagen no coincide ni representa a ninguna persona del set.
Para determinar en cual de las situaciones anteriores nos encontramos, se toma la nueva imagen y se la proyecta sobre el espacio
de caras.Por otra parte se calculan las proyecciones correspondientes a cada una de las caras del set. Luego se compara la proyección
de la nueva cara con cada una de las proyecciones anteriores, utilizando para esto la distancia de Mahalanobis, llamando er a cada
a la menor de dichas distancias.
Si er=0, estamos fretente a la situación 1, si 0 < er < umbral entonces estamos en la situacón 2, de lo contrario si
er > umbral, estamos en el caso 3.
CONCLUSIONES
El programa funciona efecientemente para imagenes que no son caras y para las imagenes contenidas en el set. Para imagenes de caras que no son exactamente las pertenecientes al set, pero representando a las mismas, el programa reconoce en un setenta porciento de los casos. Cuando se le ingresan imagenes de personas que no son conocidas el error disminuye, pero no significativamente.
ANEXOS
Archivos de programa (Rutinas.zip-4.75KB)
Imagenes utilizadas por las rutinas (Imagenes.zip-302KB)
Última actualización: