Reconocimiento de Rostro(Algoritmo PCA)

February 28, 2018 | Author: Alan Contreras Morales | Category: Orthogonality, Eigenvalues And Eigenvectors, Biometrics, Image, Authentication
Share Embed Donate


Short Description

Descripción: construccion de un software para reconocimineto facial con matlab...

Description

INSTITUTO TECNOLOGICO SUPERIOR DE XALAPA ING. EN SISTEMAS COMPUTACIONALES

MATERIA: GRAFICACIÓN PROFESOR: VILLARREAL MEZA ILUICATL TONATIUH TRABAJO: RECONOCIMEINTO DE ROSTRO POR ALGORITMO PCA (EIGENFACES) GRUPO: 4° R INTEGRANTES: CONTRERAS MORALES JESÚS ALAN (107o0431) VELASCO LANDA JOSE LUIS (107o0631)

1

CONTENIDO

INTRODUCCIÓN................................................................................................ 3 OBJETIVO GENERAL.......................................................................................... 4 OBJETIVOS ESPECÍFICOS.................................................................................. 4 ESTADO DEL ARTE............................................................................................ 5 ANEXOS............................................................................................................ 9 GLOSARIO...................................................................................................... 15 BIBLIOGRAFIA................................................................................................. 16

2

INTRODUCCIÓN En este proyecto se presenta un sistema biométrico de reconocimiento facial, mediante el algoritmo PCA, que detectará rostros en fotografías y las comparará con otra imagen, este proyecto se ha creado en la herramienta matlab versión R2013a, también se contara con una base de datos de imágenes y una imagen de prueba. Detectar y reconocer rostros humanos en fotografías es un problema cada vez más en auge en el campo de la visión por computadora, y son muchas las aplicaciones prácticas que se tienen en la actualidad, como la vigilancia, videoconferencia, control de acceso, etc. Se utilizara el algoritmo PCA (Análisis de Componentes Principales) para extraer las características que representan a las imágenes. A continuación, estas características sirven para entrenar y simular unas redes neuronales. Con las salidas de las redes neuronales se seleccionan las imágenes de la base de datos que más se parecen a la cara de la imagen de prueba.

3

OBJETIVO GENERAL El objetivo de este proyecto es realizar un sistema de reconocimiento de caras humanas, con la implementación del algoritmo PCA, en concreto, un sistema bidimensional basado en imágenes estáticas a color.

OBJETIVOS ESPECÍFICOS .- La implementación del algoritmo PCA para el reconocimiento de caras. .- Convertir la imagen de prueba y a comparar a escala de grises. .- Redimensionar las imágenes, para un mejor manejo. .- Descomponer la imagen en un vector para su detección más fácil. .- Construir una base de datos para la comparación de la imagen de prueba. .- Hacer el cálculo de rostro promedio, para compararlo con cada imagen.

4

ESTADO DEL ARTE Hay dos familias de técnicas de reconocimiento facial: técnicas basadas en la apariencia y técnicas basadas en modelos. En cada una de estas familias, se encuentran varios métodos para caracterizar la imagen.

Los sistemas basados en la apariencia se utilizan directamente sobre las imágenes sin hacer uso de modelos 3D. Estos tipos de sistemas representan un objeto en función de diferentes vistas del mismo. En estos sistemas cada imagen se representa como un punto en un subespacio vectorial, de forma que la comparación entre la imagen de test y las imágenes de referencia se realiza en el subespacio vectorial caras. El objetivo de estos algoritmos es clasificar las diferentes caras en el nuevo subespacio, pero para ello será necesario entrenar

5

previamente el sistema con imágenes de diferentes caras con diferentes vistas. Por otro lado están los sistemas basados en modelos, los cuales intentan construir un modelo lo más descriptivo posible de la cara humana capaz de detectar con precisión las variaciones faciales. Estos sistemas tratan de obtener características biométricas de las imágenes para realizar el reconocimiento (distancia entre ojos, grosor de la nariz...). Habitualmente estas técnicas requieren de imágenes de gran resolución. Cuando se utilizan estos sistemas, el algoritmo sabe con antelación el objeto que ha de representar y lo que intenta hacer es que corresponda la cara real con el modelo. El proceso que se suele seguir cuando se usan estas técnicas está formado por tres pasos: .- Construcción del modelo. .- Ajustar el modelo a la imagen de test. .- Utilizar los parámetros del modelo ajustado para calcular la similitud entre la imagen de test y las imágenes de referencia para realizar el reconocimiento. Algunas de las ventajas e inconvenientes de los sistemas basados en la apariencia frente a los basados en modelos son las siguientes: Ventajas: .- Más rápidos. .- Requieren de un menor tamaño de las imágenes. .- Menor complejidad. .- No requieren de un conocimiento previo de las imágenes. Inconvenientes: .- Más afectados por cambios en la orientación o expresión de la cara. .- Más dificultades frente a cambios en la iluminación.

1.- Diseño y Desarrollo de un Sistema de Reconocimiento de Caras. Universidad Carlos III de Madrid

Objetivo: El objetivo será devolver como resultado las cinco personas de la base de datos que más se parecen a la persona de la imagen de prueba. El problema del reconocimiento de caras se puede dividir en dos fases, la de detección de la cara dentro de la imagen y la de reconocimiento, y es así como se hace en este proyecto. Funcionamiento: La fase de detección está basada principalmente, en la detección de píxeles de piel en la imagen. Posteriormente se realiza una selección de regiones de piel candidatas a ser caras y su validación mediante 6

“mapas” de ojos y boca. Además se implementa un sistema alternativo de detección de la cara, por si con el anterior método no se detecta ninguna. Éste método toma la mayor región de piel encontrada en la imagen y genera una elipse con sus características para devolver como cara la parte de la imagen que coincide con la elipse. En la fase de reconocimiento se tienen las zonas de las imágenes detectadas como caras. Se utiliza PCA para extraer las características que representan a las imágenes. A continuación, estas características sirven para entrenar y simular unas redes neuronales. Con las salidas de las redes neuronales se seleccionan las imágenes de la base de datos que más se parecen a la cara de la imagen de prueba. En la evaluación del sistema implementado se ve la gran influencia del tipo de imágenes utilizadas para el reconocimiento, siendo mucho mejores los resultados cuando las imágenes cumplen unas ciertas características.

2.- Reconocimiento Facial - Acceso y Asistencia. Reconocimiento Facial para aplicaciones de Reloj Checador, Control de Asistencia y Acceso Objetivo del Sistema de Reconocimiento Facial El objetivo de un sistema de reconocimiento facial es dada una imagen de una cara, encontrar una imagen de la misma cara en un conjunto de imágenes conocidas. La gran dificultad añadida es la de conseguir que este proceso se pueda realizar en tiempo real. El sistema identificará las caras presentes en imágenes o videos automáticamente. Puede operar en dos modos: 

Verificación o Autentificación Facial: compara una imagen de la cara con otra imagen con la cara de la que queremos saber la identidad. El sistema confirmará o rechazará la identidad de la cara.



Identificación o Reconocimiento Facial: compara la imagen de una cara desconocida con todas las imágenes de caras conocidas que se encuentran en la base de datos para determinar su identidad.

Reloj Checador de Reconocimiento Facial Los Relojes Checadores de Reconocimiento Facial -Face Recognitionson dispositivos biométricos que transforman la imagen facial en plantillas que resguardan rasgos y métricas del individuo con propósitos de identificación y validación, ofreciendo seguridad al momento de 7

comprobar la identidad del personal. Son utilizados principalmente en Sistemas de Seguridad de Control de Personal, Control de Asistencia y Control de Acceso, para identificar y validar con exactitud al personal. En aplicaciones de Reloj Checador y Control de Asistencia, los Lectores de Reconocimiento Facial suministrados por IBIX presentan una gran conveniencia para llevar un registro veraz del tiempo laborado del personal evitando que un trabajador marque acceso ó asistencia por otro. El Sistema IBIX se encarga de tomar estos datos y procesarlos para obtener en línea las incidencias de dicho personal en base a políticas y restricciones laborales comunes en Recursos Humanos y se generan Reportes de Asistencia, Reportes de Retardos, Reportes de Faltas, Reportes de Tiempo Extra, Reporte de Tarjeta Reloj y Reporte de Prenómina entre otros. Adicionalmente esta información puede ser integrada a su Sistema de Nómina ya que contamos con un gran número de interfases listas para alimentar incidencias a los principales Sistemas de Nómina.

3.- Reconocimiento de rostros para acceso a sesión de computador. Este proyecto busca resolver el problema de autentificación de usuario para acceso a un computador a través de reconocimiento biométrico de rostro. OBJETIVOS: • Objetivo General: Lograr el acceso a un ordenador mediante autentificación biométrica de rostro. • Objetivos específicos: Objetivo 1: Detección de un rostro. Objetivo 2: Detección de características individuales de un rostro. Objetivo 3: Formula para individualizar un rostro. Objetivo 4: Generación de una base de datos para comparar rostros. Objetivo 5: Reconocimiento de un rostro. Objetivo 6: Identificación de tolerancias para la comparación de rostros.

8

ANEXOS PCA (Principal Component Analysis) PCA es un método que transforma un número de variables posiblemente correladas en un pequeño número de variables incorreladas llamadas componentes principales, es decir, es un algoritmo de reducción dimensional que permite encontrar los vectores que mejor representan la distribución de un grupo de imágenes. PCA está basado en la Transformada de Karhunen-Loeve (KLT), que consiste en la representación de un proceso estocástico no periódico a través de una base de vectores obtenidos completamente del proceso en sí mismo, es decir, PCA permite representar una imagen de una cara usando una base que se ha conseguido a partir de muchas observaciones de diferentes caras. El objetivo de este método consiste en representar una imagen en términos de un sistema de coordenadas óptimo reduciendo el número final de componentes que tendrá la imagen. Esta base de transformación depende de las observaciones y se forma a partir de los d autovalores más significativos de la matriz de covarianza, los cuales representan las componentes principales que son más comunes en imágenes de diferentes caras. La reducción dimensional realizada por PCA es equivalente al número de autovectores que se utilicen. Por lo tanto la imagen proyectada por PCA tendrá una dimensión de valor d, como se puede ver en la figura:

9

Estos autovectores representan las componentes principales que son más comunes en imágenes de diferentes caras, otra forma de verlo, es que son los ejes del subespacio donde proyectaremos las imágenes de caras humanas los cuales se corresponden con las direcciones de máxima varianza de los datos.

ALGORITMO

10

CODIGO:

11

%*************cargar imagenes y redimensionar******* *******%

%foto foto = imread('imagenes/foto.jpg','jpg');%ruta de la imagen foto = rgb2gray(foto); %se pasa a escala de grises foto = imresize(alan,[N N] ); % se redimensiona % ***********Calculo de rostro promedio ***************************%

avImg = zeros(N); %figure('Position',[ancho alto ancho alto]) for k=1:M st.data{k} = im2single(st.data{k});%pasa de imagen de intensidad a imagen simple avImg = avImg + (1/M)*st.data{k};%acumula la imgen y el promedio end %************Resta del promedio a imagenen*********%

for k=1:M st.dataAvg{k} = st.data{k} - avImg; %resta de promedio end z = [st.data{1} st.data{2} st.data{3} st.data{4} st.data{5} st.data{6} ]; ZC(:,:,1) = st.dataAvg{1};

12

%************Calculo de autovectores matriz de covarianza************ % A = zeros(N*N,M);%se crea matriz de ceros de N*N*M for k=1:M A(:,k) = st.dataAvg{k}(:); end

C = A'*A; %matriz de covarianza de peuqeña dimension (traspuesta)

%vectores eigen en pequeñas dimensiones [ Veigvec,Deigval ] = eig(C); Vlarge = A*Veigvec; %redimension del eigenface eigenfaces = []; for k=1:M c = Vlarge(:,k); eigenfaces{k} = reshape(c,N,N); end x=diag(Deigval); [xc,xci]=sort(x,'descend');% se reorganizael valor mas largo eigenval en orden de mayor a menor z = [ eigenfaces{xci(1)} eigenfaces{xci(2)} eigenfaces{xci(3)} eigenfaces{xci(4)} eigenfaces{xci(5)} eigenfaces {xci(6)} ];

13

%*************************patrones de reconocimiento**************%

nsel=6; %seleccion de eigenfaces for mi=1:M %numero de imagenes for k=1:nsel %eigenface para numero de coeficiente wi(mi,k) = sum(A(:,mi).* eigenfaces{xci(k)}(:)) ;%se crea una matriz llamada wi end end %***************Reconocimeinto por camara web********************% video1 = videoinput('winvideo',1,'YUY2_320x240');%se carga la camara web info1 = imaqhwinfo('winvideo',1);%se carga la informacion de la camara video1.BayerSensorAlignment = 'grbg'; set(video1, 'SelectedSourceName', 'input1') preview(video1)%se muestra video s = getsnapshot (video1);%se obtiene imagen s = rgb2gray(s);%se pasa a escala de grises imwrite(s,'camara.jpg','jpg');%se guarda la imagen obtenida closepreview(video1)%se cierra la camara web testFaceMic = imresize(s,[N N]);%se redimensiona la imagen testFaceMic = im2single(testFaceMic);

%mosramos la imagen obtenida

14

figure('position',[ancho 10 ancho alto]), imshow(testFaceMic,'Initialmagnification','fit');title('prueba') Aface = testFaceMic(:)-avImg(:);%normalizacion de rostro

for tt=1:nsel wface(tt) = sum(Aface.* eigenfaces{xci(tt)}(:)) ; end %***************************clacula la distancia************************ %con ciclo for que recorre todas las imagenes for mi=1:M fsumcur = 0; for tt=1:nsel fsumcur = fsumcur + (wface(tt) -wi(mi,tt)).^2; end diferencia(mi) = sqrt(fsumcur);%se guarada el valor de las diferencias entre las imagenes end %Se muestra la imagen con menor diferencia osea la imagen que es semejante% [val in] = min(diferencia); figure('Position',[2*ancho 10 ancho alto]);imshow(st.data{in});

15

GLOSARIO PCA: Análisis de componentes principales (en español ACP, en inglés, PCA) es una técnica utilizada para reducir la dimensionalidad de un conjunto de datos. Intuitivamente la técnica sirve para hallar las causas de la variabilidad de un conjunto de datos y ordenarlas por importancia. Colinealidad: En fotogrametría, se entiende por condición de colinealidad aquella que obliga a que se encuentren en la misma recta el centro de proyección, el punto imagen y el punto objeto proyectado. De tal forma que si conseguimos que esta condición se cumpla en las dos perspectivas de ese mismo punto objeto, queda asegurada la intersección de dos rayos homólogos en el punto del terreno prefijado. Correlación: Correspondencia o relación recíproca entre dos o más cosas, ideas, personas, etc. Hiperespectral: consiste en recopilar y procesar información a lo largo de todo el espectro electromagnético. La formación de imágenes espectrales divide el espectro en muchas bandas. Esta técnica de dividir las imágenes en bandas puede extenderse más allá de lo visible. De aquí surge la técnica de formación de imágenes hiperespectrales. Ortogonalidad: En matemáticas, el término ortogonalidad (del griego orthos —recto— y gonía —ángulo—) es una generalización de la noción geométrica de perpendicularidad. En el espacio euclídeo convencional el término ortogonal y el término perpendicular son sinónimos. Sin embargo, en espacios de dimensión finita y en geometrías no euclídeas el concepto de ortogonalidad generaliza al de perpendicularidad. Eigenfaces: son un conjunto de vectores propios utilizados en el problema de la visión por ordenador de reconocimiento de la cara humana. Biometría: Es la ciencia que se dedica a la identificación de individuos a partir de una característica anatómica o un rasgo de su comportamiento. 16

Redes neuronales: Se usan generalmente para la clasificación de imágenes según patrones establecidos.

BIBLIOGRAFIA LIBROS: .-Donald Hearn M Pauline Baker, 2006, Gráficos por computadora con OpenGL (3ª Edición), Pearson España. .- Navas López, Eduardo Adam, 2011, Humilde Introducción a la Graficación Por Computadora, Ewe Editorial Academia MIA Española. .- Eduardo Navas, 2010, Una Humilde Introducción a la Graficación por Computadora y Otras Yerbas, Universidad Centroamericana José Simeón Cañas. .- JULIO BLANCO FERNANDEZ, FELIX SANZ ADÁN, Cad Cam. Gráficos, animación y simulación por computador, Ediciones Paraninfo. .- César Pérez López, MATLAB a través de ejemplos,Garceta. . - Timothy A. Davis Kermit Sigmon,MATLAB® Primer Seventh Edition, CHAPMAN & HALL/CRC . - Hunt Lipsman & Rosenberg, A Guide to MATLAB for Beginners and Experienced Users. . - MATLAB Primer (7th Ed) - Timothy A. Davis & Kermit Sigmon PAGINAS WEB.: http://www.biometria.gov.ar/metodos-biometricos/facial.aspx http://www.diegoguerrero.info/tag/reconocimiento-facial/ http://es.slideshare.net/lonely113/procesamiento-digital-de-imgenes-conmatlab http://dmery.ing.puc.cl/index.php/teaching/imagenes/matlab/ https://sites.google.com/site/bustosmerino/home/como-usar-la-camara-enmatlab www.mathworks.com/help/matlab/ 17

18

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF