98
INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA UNIDAD CULHUACAN TESINA QUE PARA OBTENER EL TÍTULO DE INGENIERO EN COMUNICACIONES Y ELECTRONICA POR LA OPCIÓN DE TITULACIÓN SEMINARIO EN PROCESAMIENTO DIGITAL DE SEÑALES DEBERÁ DESARROLLAR: RAÚL TINOCO DE LA LUZ “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento de imágenes. II Procesamiento de imágenes en Matlab. III Redes Neuronales. IV Implementación del software de reconocimiento. VIGENCIA: DES/ESIME-CUL/ 19493/16/2009 México, D.F. Junio de 2009 M. en C. Orlando Beltrán Navarro M. en C. Héctor Becerril Mendoza NOMBRE Y FIRMA NOMBRE Y FIRMA SUBDIRECTOR ACADÉMICO COORDINADOR DEL SEMINARIO Ing. Ignacio Monroy Ostria NOMBRE Y FIRMA JEFE DEL DEPTO. ACADÉMICO

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD CULHUACAN

TESINA QUE PARA OBTENER EL TÍTULO DE INGENIERO EN COMUNICACIONES Y ELECTRONICA POR LA OPCIÓN DE TITULACIÓN SEMINARIO EN PROCESAMIENTO DIGITAL DE SEÑALES DEBERÁ DESARROLLAR: RAÚL TINOCO DE LA LUZ

“SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES

NEURONALES”

I Fundamentos para el procesamiento de imágenes. II Procesamiento de imágenes en Matlab. III Redes Neuronales. IV Implementación del software de reconocimiento.

VIGENCIA: DES/ESIME-CUL/ 19493/16/2009

México, D.F. Junio de 2009

M. en C. Orlando Beltrán Navarro M. en C. Héctor Becerril Mendoza

NOMBRE Y FIRMA NOMBRE Y FIRMA SUBDIRECTOR ACADÉMICO COORDINADOR DEL SEMINARIO

Ing. Ignacio Monroy Ostria NOMBRE Y FIRMA JEFE DEL DEPTO.

ACADÉMICO

Page 2: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

SEMINARIO DE TITULACIÓN

“PROCESAMIENTO DIGITAL DE SEÑALES”

SISTEMA DE RECONOCIMIENTO FACIAL POR

MEDIO DE EIGENFACES Y REDES NEURONALES

T E S I N A

QUE PARA OBTENER EL GRADO DE:

INGENIERO EN

COMUNICACIONES Y ELECTRÓNICA

PRESENTA:

ING. TINOCO DE LA LUZ RAÚL

ASESORES:

M. en C. ORLANDO BELTRÁN NAVARRO

M. en C. BRAULIO SANCHEZ ZAMORA

MÉXICO, D. F. JUNIO DE 2009.

INSTITUTO POLITÉCNICO NACIONALESCUELA SUPERIOR DE INGENIERÍA MECÁNICA Y ELÉCTRICA

UNIDAD CULHUACANINGENIERÍA EN COMUNICACIONES Y ELECTRÓNICA

Page 3: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

AGRADECIMIENTOS

2

AGRADECIMIENTOS A las personas que me brindaron su apoyo para poder realizar este logro que representa un escalón importante en esta etapa de mi vida. A mis compañeros que me dedicaron un momento de su tiempo cuando lo necesite y me apoyaron siempre que se los pedí, en especial a Mariana. A mis amigos que nunca me fallaron y siempre me brindaron su ayuda, además de que siempre me alentaron a seguir adelante y a luchar por mis ideales, en especial a Bardo, Cesar, Benjamín y Gabriel. Al OJOS por haberme apoyado de forma económica para pagar mi seminario de titulación. Con cariño A mi madre Imelda De la Luz Guzmán, a mis hermanos Ana Maria, José Daniel, Eduardo y Daniela Tinoco De la Luz que desde que recuerdo, siempre me han demostrado su confianza y su apoyo en las diferentes etapas de mi vida y desarrollo académico. A mi hijo Fernando Raúl, para que siga mi ejemplo y lo supere convirtiéndose así en una persona de bien y de provecho. A mi novia quien ahora es mi esposa por haberme apoyado incondicionalmente.

Page 4: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

INDICE

3

INTRODUCCIÓN……………………………………………………………………… 6 JUSTIFICACIÓN……………………………………………………………………… 7 STATE OF THE ART…………………………………………………………………. 8 ANTECEDENTES……………………………………………………………………… 9 DESCRIPCIÓN DEL TRABAJO…………………………………………………….. 10 OBJETIVO……………………………………………………………………………… 11 CAPITULO I Fundamentos para el procesamiento de imágenes…………………… 12 1. Fundamentos de procesamiento de imágenes digitales ................................................... 12

1.1 Definiciones ............................................................................................................... 12 1.2 Relaciones entre píxeles............................................................................................. 14

1.2.1 Conectividad ....................................................................................................... 15 1.2.2 Distancia ............................................................................................................. 15

1.3 Ruido en imágenes ..................................................................................................... 16 1.4 Procesamiento espacial .............................................................................................. 17

1.4.1 Operaciones aritméticas, lógicas y transformaciones geométricas. .................. 17 1.4.2 Operaciones lógicas .......................................................................................... 20 1.4.3 Transformaciones geométricas ......................................................................... 21

1.4.3.1 Interpolación .............................................................................................. 21 1.4.3.2 Amplificación/Reducción de imágenes ..................................................... 22 1.4.3.3 Traslación................................................................................................... 23 1.4.3.4 Convolución bidimensional ....................................................................... 24 1.4.3.5 Correlación................................................................................................. 26

1.5 Procesamiento en el dominio de la frecuencia.........................................................27 1.5.1 Series de Fourier ............................................................................................... 27 1.5.2 Transformada de Fourier................................................................................... 28

1.5.2.1 Aplicaciones de la transformada de Fourier ..............................................30 1.5.3 Transformada discreta coseno........................................................................... 32

1.6 Procesamiento de imágenes básico .......................................................................... 33 1.6.1 Binarización de una imagen .............................................................................. 33 1.6.2 Manipulación del contraste ............................................................................... 34 1.6.3 Modificación del contraste................................................................................ 36 1.6.4 Modificación del histograma ............................................................................ 37 1.6.5 Filtrado de una imagen...................................................................................... 37

1.6.5.1 Filtros lineales espaciales........................................................................... 37 1.6.5.2 Filtro pasa bajas espacial ........................................................................... 38 1.6.5.3 Filtrado por la mediana .............................................................................. 39 1.6.5.4 Realce de bordes ........................................................................................ 39 1.6.5.5 Detección de contornos.............................................................................. 40

1.6.5.5.1 Técnicas basadas en el gradiente ........................................................ 41 1.6.5.5.2 Técnicas basadas en el laplaciano……………………………………..43

CAPITULO II Procesamiento de imágenes en matlab……………………………. 45 2.1 Conceptos básicos de imágenes………………………………………………….. 45

Page 5: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

INDICE

4

2.1.1 Color……………………………………………………………….…… 45 2.1.2 Números enteros y ordenamiento de bytes…………………………..… 46 2.1.3 Canal alfa o transparencia…………………………………………….... 47

2.2 Lectura de imágenes en matlab………………………………………….…….…. 48 2.2.1 Recomendaciones para manejo de imágenes…………………………… 48

2.3 Clases de almacenamiento usadas en el toolbox……………………………….… 48 2.4 Conversiones entre tipos de imágenes………………………...…………………. 48

2.4.1 Despliegue de imágenes indexadas …………………..………………… 50 2.4.2 Despliegue de imágenes de intensidad……………………..……….….. 50 2.4.3 Despliegue de imágenes binarias……………………..……...…….…… 50 2.4.4 Despliegue de imágenes RGB……………………………...…….……. 50 2.4.5 Tipos de imágenes en Matlab…………………………….……...…….. 50

2.4.5.1 Imágenes indexadas…………………………………..…..….. 50 2.4.5.2 Imágenes de intensidad……………………………..…….….. 51 2.4.5.3 Imágenes binarias…………………………..…….….……….. 52 2.4.5.4 Imágenes RBG……………………………………………….. 53

2.4.6 Selección de una sección de imágenes en Matlab…………................... 54 2.5 Reconocimiento de rostros……………………………………………………….. 54

2.5.1 Preprocesamiento de la imagen.……………………………………….. 55 2.5.2 Extracción de características…………………………………………… 55 2.5.3 Entrenamiento.…………………………………………………………. 55 2.5.4 Reconocimiento…………………………………………………........... 56

CAPITULO III Redes Neuronales…………………………………………………… 57 3.1 Fundamento de la red perceptron multita (retropropagación)…………………… 57

3.1.1 red multicapa…………………………………………………………… 57 3.2 Retroprogramación………………………………………………………………. 59 3.3 Procedimiento de funcionamiento………………………………………………… 63 3.4 El método de aprendizaje consta de dos etapas…………………………………… 64 3.5 Capacidad de generalización……………………………………………………… 65 3.6 Desventajas del método re retroprogramación de una red neuronal………………. 65 CAPITULO IV Implementación del software de reconocimiento……………….. 66 4.1 Implementación del software de reconocimiento…………………………………. 66 4.2 Preprocesamiento de la imagen…………………………………………………… 66

4.2.1 Estructura de la red.........................…………………………………….. 80 4.2.2 Algoritmo de retropropagación…………………………………………. 82

4.3 Entrenamiento de la red.………………………………………………………….. 82 4.4 Creación de la base de datos……………………………………………………… 90 4.5 Reconocimiento…………………………………………………………………… 92 CONCLUSIONES…………………………………………………………………… 94 BIBLIOGRAFÍA……………………………………………………………………. 96

Page 6: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

TITULO

5

SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES

NEURONALES

Page 7: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

INTRODUCCIÓN

6

INTRODUCCIÓN En la actualidad los sistemas de reconocimiento facial están muy evolucionados, sin embargo el performance de cada uno de ellos en aplicaciones reales, esta influenciado por el contexto, es decir el lugar donde se emplee, una solución no puede ser general para todo. Muchas de las áreas de computación están atacando este problema de identificar personas de manera automatizada y esto es una realidad en muchos de los aeropuertos internacionales, sin embargo el costo del mismo es alto; limitando así el acceso al mismo por otras entidades interesadas, el enfoque de este trabajo es plantear una alternativa más. La detección y reconocimiento de rostros humanos en fotografías y secuencias de video es un problema cada vez con más auge en el campo de la visión por computadora, algunas de sus aplicaciones prácticas son las siguientes: Vigilancia. Buscar a un individuo perseguido por la justicia. Localizarle en ámbitos

públicos, aduanas, aeropuertos. Vigilancia doméstica, quien entra puede ser conocido o desconocido: detección de intrusos.

Videoconferencia. Tiene que ver con localizar la imagen del individuo en una

secuencia de webcam para poder hacer un seguimiento. También saber si está o no está, y quien es.

Interfaces hombre-máquina. Seguridad de login en una computadora.

Detección de expresiones faciales (se considera un subcampo del reconocimiento de

caras en general): interfaces inteligentes, detectores de cansancio para conductores, aplicaciones médicas.

Control de acceso. Tarjetas de identificación, detección de fraudes (usurpar identidad),

etc. Ejemplo: detectar carné falso. Desde hace aproximadamente una década atrás, el reconocimiento de rostros ha llegado a ser un área popular de la investigación desde el punto de vista de la computación y una de las aplicaciones más exitosas de análisis y entendimiento de imágenes. Debido a la naturaleza del problema, no solo investigadores del área de ciencias de la computación están interesados en el tema, sino que también los neurólogos y psicólogos.

Page 8: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

JUSTIFICACIÓN

7

JUSTIFICACIÓN En la actualidad el manejo de los sistemas de reconocimiento facial se encuentra en muchos lugares algunos de ellos son los aeropuertos, las aduanas, los bancos etc. La finalidad de adentrarnos en este tema es dar una nueva alternativa, ya que los sistemas existentes actualmente son de un costo elevado y de ello también depende su flexibilidad. Por tal motivo se pretende diseñar un sistema flexible a un menor costo y que además nos permita poder adaptarlo para aplicaciones como acceso a una escuela, una casa, un auto, una caja de seguridad, etc. Para llevar a cabo nuestro objetivo, es necesario que el sistema sea lo más confiable posible. Lo que significa que el margen de error debe ser mínimo, ya que de no ser así podría ocasionar problemas en una situación real. Por tal motivo el procesamiento debe ser computacionalmente lo mas eficiente posible, ya que de ello va a depender la veracidad de los resultados y a la hora de hacer una prueba del sistema de reconocimiento, nos entregara un resultado satisfactorio. Los elementos implicados en esta investigación estarán conformados por una computadora, una cámara Web para poder capturar la imagen y el uso de MATLAB que se ra el lenguaje en donde se programara la lógica del sistema. Se pretende que el sistema que se está desarrollando, tenga un costo bajo, lo cual permitirá que tenga mayor accesibilidad por parte de usuarios y empresas. También se quiere llegar a un punto en el que se obtenga un producto final que sea de fácil operatividad por parte del usuario, visualmente atractivo y que tenga la capacidad de ser instalado en sistemas operativos Windows, ya que estos son los más utilizados por la mayoría de usuarios de computadora.

Page 9: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

ANTECEDENTES

8

ANTECEDENTES El reconocimiento facial automatizado es relativamente un concepto nuevo. Desarrollado en los años 60, el primer sistema semiautomático para reconocimiento facial requería del administrador para localizar rasgos (como ojos, orejas, nariz y boca) en las fotografías antes de que este calculara distancias a puntos de referencia en común, los cuales eran comparados luego con datos de referencia. En los años 70 Goldstein, Harmon, & Lesk, usaron 21 marcadores subjetivos específicos tales como el color del cabello y grosor de labios para automatizar el reconocimiento facial. El problema con estas soluciones previas era que se computaban manualmente. En 1988 Kirby & Sirobich aplicaron análisis de componentes principales, una técnica estándar del álgebra lineal, al problema del reconocimiento facial. Esto fue considerado algo así como un hito al mostrar que eran requeridos menos de 100 valores para cifrar acertadamente la imagen de una cara convenientemente alineada y normalizada. En 1991 Turk & Pentland utilizando las técnicas Eigenfaces, el error residual podía ser utilizado para detectar caras en las imágenes, un descubrimiento que permitió sistemas automatizados de reconocimiento facial en tiempo real fidedignos. Si bien la aproximación era un tanto forzada por factores ambientales, creó sin embargo un interés significativo en posteriores desarrollos de éstos sistemas. La tecnología inicialmente capturó la atención del público a partir de la reacción de los medios a una prueba de implementación en el Super Bowl de la NFL en enero de 2001, la cual capturó imágenes de vigilancia y las comparó con una base de datos de fotoarchivos digitales. Esta demostración inició un muy requerido análisis sobre cómo usar la tecnología para satisfacer necesidades nacionales, mientras se tomaban en consideración las preocupaciones sociales y de privacidad del público. Hoy la tecnología de reconocimiento facial está siendo utilizada para combatir el fraude de pasaportes, soporte al orden público, identificación de niños extraviados y minimizar el fraude en las identificaciones.

Page 10: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

STATE OF THE ART

9

STATE OF THE ART Existen cuatro métodos principales que se emplean para la identificación y verificación de usuarios los cuales son: Eigenfaces. Tecnología desarrollada por el Instituto Tecnológico de Massachusets que utiliza una escala de grises bidimensional para representar una imagen facial. Análisis de características. Técnica que absorbe más fácilmente cualquier tipo de cambio de aspecto que el individuo presente en su rostro. Red neuronal. Realiza un análisis de característica tanto de la cara que inspecciona como de las almacenadas y comprueba si existe una concordancia entre ellas. Procesamiento Automático de Caras (AFP). Usa distancias geométricas y proporciones características de elementos significativos de la cara: ojos, nariz y extremos de la boca. No es tan robusto como el eigenfaces pero puede ser más efectivo en situaciones no adversas. En este proyecto se hace uso de uno de los diferentes métodos que se pueden utilizar para el reconocimiento facial, este método en conjunción con una Red Neuronal de Retroprogramación nos permitirá llevar a cabo el sistema de reconocimiento facial. El método utilizado se conoce como Eigenfaces que consiste en el reconocimiento de caras se basa en el análisis de ciertas características faciales para reconocer a un individuo dentro de una base de datos previamente confeccionada. Existen varios métodos de reconocimiento basados en la caracterización de ciertos rasgos que no cambian en una cara:

La sección alta de las cavidades oculares. La zona o sea alrededor de las mejillas. Laterales de la boca

El proceso consta de las fases normales de una aplicación de visión: Realizar una captura de imagen, extraer características matemáticas de la misma, realizar una comparación con patrones de referencia:

Dicha comparación y entrenamiento de nuestro sistema se lleva acabo por la red de neuronal de retroprogramación, conocida comúnmente como red perceptrón multicapa, este tipo de redes se engloban dentro de las redes con aprendizaje supervisado, es decir, utilizan para su entrenamiento patrones formados por un vector de entrada y un vector de salida. El entrenamiento de estas redes, se basa en la presentación sucesiva y de forma reiterada, de pares de vectores en las capas de entrada y salida (vectores entrada y salida deseada). La red crea un modelo a base de ajustar sus pesos en función de los vectores de entrenamiento, de forma que a medida que se pasan estos patrones, para cada vector de entrada la red producirá un valor de salida más similar al vector de salida esperado.

Page 11: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

DESCRIPCION DEL TRABAJO

10

DESCRIPCIÓN DEL TRABAJO. En este proyecto se realiza una recopilación de conocimientos en características de procesamiento digital de imágenes, redes neuronales y manejo del software MATLAB, todo esto en conjunción con el fin de diseñar un sistema de reconocimiento facial. El desarrollo de este sistema de reconocimiento consiste en una serie de pasos que determinan la forma exacta en la que se ira tomando curso para llevar a cano nuestro objetivo. Los pasos a seguir son de forma general los siguientes: Procesamiento de la imagen: Consiste en la adquisición y digitalización de la cara de un individuo y la normalización de dicha imagen haciendo uso de las diversas características con las que cuenta el procesamiento digital de imágenes, para poder así procesarla. Extracción de características: Consiste en la conversión de la imagen tomada a un vector característico para poder hacer así la extracción de los vectores que van a caracterizar a cada una de las imágenes tomadas. Entrenamiento: Consiste en la implementación de de una red neuronal de retroprogramación que nos permitirá entrenar el sistema para que pueda llevar a cabo la tarea de reconocimiento, haciendo uso de una base de datos donde quedaran registrados los diversos vectores que corresponden a cada uno de los individuos implicados en el sistema. El método de aprendizaje de la red de retroprogramación consta de dos etapas: En la primera, los patrones de entrada se presentan a la capa de entrada de la red. Esta información se propaga de capa en capa. Las neuronas de las capas intermedias, calculan la suma de los productos de los valores de las neuronas de entrada y los valores de los pesos asociados a las conexiones, utilizando esta suma para computar el valor de la función de activación, hasta obtener un resultado en la capa de salida. En la segunda etapa, el resultado que proporciona la red en la capa de salida es comparado con el resultado esperado para cada uno de los vectores de entrenamiento, calculando el error que se utiliza para modificar los pesos de las capas intermedias. Por esta razón a este tipo de redes se les denomina de retropropagación. Reconocimiento: Dentro de este paso se llevan a cabo los dos primeros pasos, agregando uno nuevo el cual consiste en la comparación de los vectores extraídos de la imagen que se quiere validar con respecto a los vectores característicos que se encuentran guardados dentro de la base de datos previamente creada.

Page 12: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

OBJETIVOS

11

OBJETIVO Objetivo General: Desarrollar e implementar un sistema de reconocimiento facial que nos permita la identificación de personas, basado en un análisis de características faciales, esto a partir de una técnica llamada eigenfaces, la cual se centra en las características de ojos, nariz y boca y con ayuda de una red de retroprogramación que nos permitirá crear una Base de Datos para la validación de un individuo.. Objetivos Específicos: Desarrollo de un sistema de reconocimiento facial de gran confiabilidad. Implementación y estudio de técnicas de procesamiento digital de imágenes que

permitan minimizar tasa de error del sistema. Comprobar el funcionamiento del sistema de reconocimiento facial mediante métodos

descritos en la literatura científica. Implementar un sistema de cero complejidades para que el usuario pueda operarlo de

forma sencilla. Desarrollo de un sistema de reconocimiento de rostros de bajo costo para ser instalado

en cualquier sistema operativo Windows.

Page 13: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

12

FUNDAMENTOS PARA EL PROCESAMIENTO DE IMÁGENES 1.1 Definiciones

Visión por computadora.- Consiste en la adquisición, procesamiento, clasificación y reconocimiento de imágenes digitales.

Píxel.- Elemento básico de una imagen (picture element).

Imagen.- Arreglo bidimensional de píxeles con diferente intensidad luminosa (escala de gris).

Figura 1. Imagen de 16 píxeles

Si la intensidad luminosa de cada píxel se representa por n bits, entonces existirán 2n escalas de gris diferentes. Matemáticamente, una imagen se representa por r = f (x, y), donde r es la intensidad luminosa del píxel cuyas coordenadas son (x,y). Matemáticamente, un sistema para procesar imágenes se representa como g(x, y) = T[f (x, y)]. Color.- El color se forma mediante la combinación de los tres colores básicos rojo, azul y verde (en inglés RGB). A continuación se presentan algunas definiciones básicas para comprender los espacios de color: Brillo.- Indica si un área está más o menos iluminada. Tono.- Indica si un área parece similar al rojo, amarillo, verde o azul o a una proporción de ellos. Luminosidad.- Brillo de una zona respecto a otra zona blanca en la imagen. Croma.- Indica la coloración de un área respecto al brillo de un blanco de referencia. Para obtener una imagen a color deben transformarse primero los parámetros cromáticos en eléctricos y representar los colores, lo cual puede realizarse de diferentes maneras, dando lugar a diferentes espacios de colores o mapas de color.

Page 14: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

13

Espacio RGB.- se basa en la combinación de tres señales de luminancia cromática distinta: rojo, verde, azul (Red, Green, Blue). La forma más sencilla de obtener un color específico es determinar la cantidad de color rojo, verde y azul que se requiere combinar para obtener el color deseado, ver la figura 2; para lo cual se realiza la suma aritmética de las componentes: X = R + G + B, gráficamente representada por un cubo.

Figura 2. Espacio de colores RGB.

En la recta que une el origen con el valor máximo se encuentran ubicados los grises (escala de gris) debido a que sus tres componentes son iguales. Cuando una cámara adquiere una imagen a color, para cada píxel en color se tienen en realidad 3 componentes, una para cada uno de los colores básicos (rojo, verde y azul); la ganancia máxima para cada componente corresponde a la longitud de onda de los tres colores básicos. Color: Un color puede definirse como la combinación de tres colores básicos: rojo, verde y azul, y expresarse mediante una tripleta de valores de 0 a 1 (R, G, B), donde R, G y B representan las intensidades de cada uno de los tres colores básicos rojo, verde y azul, respectivamente. En la tabla I se presentan ejemplos de colores definidos mediante estas tripletas.

Tabla I. Colores RGB Color R G B Blanco 1 1 1 Rojo 1 0 0 Amarillo 1 1 0 Verde 0 1 0 Turquesa 0 1 1 Gris 0.5 0.5 0.5 Rojo Oscuro 0.5 0 0 Azul 0 0 1 Aguamarina 0.5 1 0.83 Negro 0 0 0

Page 15: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

14

Mapa de color El mapa de color es una matriz de n x 3, donde cada renglón es una tripleta de colores. El primer renglón corresponde al valor mínimo del eje de color y el último renglón al máximo. Al definir diferentes distribuciones de intensidad de los tres colores básicos, se crean diferentes mapas de color. Algunos de los mapas de color predeterminados en MATLAB son:

hsv, cool, hot, jet, gray, flag Histograma de una imagen. El histograma de una imagen es una representación del número de píxeles de cierto nivel de gris en función de los niveles de gris. 1.2 Relaciones entre píxeles Un píxel p con coordenadas (x,y) tiene cuatro vecinos horizontales y verticales, cuyas coordenadas son: (x+1,y), (x-1,y), (x,y-1), (x,y+1). A este conjunto de píxeles se llama vecindad 4 o 4 vecinos de p y se denota por N4(p), ver la figura 3. Nótese que para cada uno de estos píxeles hay una distancia de 1 de p y que en los bordes de la imagen algunos de estos píxeles quedarán fuera de la imagen.

(x-1,y)

(x,y-1)

(x,y)

(x,y+1)

(x+1,y)

Figura 3. Vecindad N4(p). Existen también 4 vecinos diagonales de p con coordenadas: (x+1,y+1), (x+1,y-1), (x-1,y-1), (x-1,y-1) y se les denota por ND(p), ver la figura 4. N4(p) y ND(p) juntos forman la vecindad 8 denotada por N8(p).

(x-1,y-1)

(x-1,y+1)

(x,y)

(x+1,y-1)

(x+1,y+1)

Figura 4. Vecindad ND(p).

Page 16: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

15

1.2.1 Conectividad La conectividad es un concepto importante utilizado para establecer los límites de objetos en regiones dentro de una imagen. Para determinar si dos píxeles están conectados se determina si son adyacentes en algún sentido (ND(p), N4(p) por ejemplo) y si sus niveles de gris satisfacen un criterio de similaridad (por ejemplo si son iguales). Por ejemplo, en una imagen binaria con valores de 1 y 0, dos píxeles pueden ser vecinos N4(p), pero se dice que están conectados solo cuando tienen el mismo valor. 1.2.2 Distancia La distancia o transformada de distancia proporciona una medición de la separación existente entre dos puntos dentro de una imagen. Dados tres píxeles, p, q y z, con coordenadas (x,y), (s,t) y (u,v), respectivamente, se puede definir una función de distancia D si se cumple: Las funciones de distancia comúnmente usadas son: distancia euclidiana, distancia Manhattan o de cuadra y distancia tablero de ajedrez.

Distancia euclidiana entre p y q: . En la figura 6 se muestra la distancia euclidiana para una imagen de 5 por 5.

Figura 5. Distancia euclidiana para una imagen de 5 por 5.

Distancia Manhattan: se toman solamente en cuenta los vecinos de orden 4, es decir:

En la figura 6 se muestra la distancia Manhattan de una imagen de 5 por 5.

Page 17: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

16

Figura 6. Distancia Manhattan para una imagen de 5 por 5.

Distancia tablero de ajedrez: es similar a la distancia Manhattan, en donde se observa que los 4-vecinos están a una distancia unitaria del píxel central; si se desea que los 8-vecinos estén a la misma distancia se toma:

En la figura 7 se muestra la distancia tablero de ajedrez.

Figura 7. Distancia tablero de ajedrez.

1.3 Ruido en imágenes Todas las imágenes tienen cierta cantidad de ruido, la cual se puede deber a la cámara o al medio de transmisión de la señal. Generalmente el ruido se manifiesta como píxeles aislados que toman un nivel de gris diferente al de sus vecinos. Los algoritmos de filtrado que se verán más adelante permiten eliminar o disminuir este ruido. El ruido puede clasificarse en los siguientes tipos: Gaussiano: produce pequeñas variaciones en la imagen; generalmente se debe a diferentes ganancias en la cámara, ruido en los digitalizadores, perturbaciones en la transmisión, etc. Se considera que el valor final del píxel sería el ideal más una cantidad correspondiente al error que puede describirse como una variable aleatoria gaussiana. Impulsional (sal y pimienta): el valor que toma el píxel no tiene relación con el valor ideal, sino con el valor del ruido que toma valores muy altos o bajos (puntos blancos y/o negros) causados por una saturación del sensor o por un valor mínimo captado, si se ha perdido la señal en ese punto. Se encuentran también al trabajar con objetos a altas temperaturas, ya que las cámaras tienen una ganancia en el infrarrojo que no es detectable por el ojo humano; por ello las partes más calientes de un objeto pueden llegar a saturar un píxel.

Page 18: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

17

Multiplicativo: La imagen obtenida es el resultado de la multiplicación de dos señales. En la

figura 8 se muestran los diferentes ruidos afectando a una imagen.

1.4 Procesamiento espacial El procesamiento espacial esta formado por aquellas técnicas que operan directamente sobre los valores de los píxeles de la imagen. Las transformaciones son de la siguiente forma:

Sx, yFIx, ydonde I(x,y) es la imagen original, S(x,y) la imagen resultante y F la transformación. 1.4.1 Operaciones aritméticas, lógicas y transformaciones geométricas. Las operaciones aritméticas más usadas en procesamiento de imágenes son; suma, resta, multiplicación y división. Para que se pueda llevar a cabo una operación aritmética, ambas imágenes deben ser del mismo tamaño. En la figura 9 se muestra la suma de dos imágenes, la cual se realiza de la forma C(x, y) A(x, y) B(x, y) mediante el comando imadd en Matlab

Figura 8. Diferentes tipos de ruido afectando a una imagen.

Page 19: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

18

Figura 9. Suma de dos imágenes

También es posible aumentar el brillo a una imagen sumándole un valor constante a cada píxel. En la figura 10 se muestra el efecto de sumar un escalar (50) a una imagen, el cual se realiza de la forma B(x, y) A(x, y) a.

Figura 10. Aumento del brillo de la imagen usando la suma de un escalar a cada píxel de

la imagen, imagen original (izquierda) e imagen modificada (derecha). La resta de imágenes consiste en restar de una imagen el valor correspondiente de otra imagen. Esta operación es un paso intermedio en algunos procesamientos más complejos, como la detección de movimiento, etc. La resta, al igual que la suma de imágenes requiere que ambas imágenes sean de igual tamaño. En la figura 11 se muestra el efecto de restar una imagen de otra, de la forma C(x, y) A(x, y) B(x, y) mediante el comando imsubtract en Matlab

Figura 11. Resta de dos imágenes, imagen original (izquierda), imagen a restar (centro) y

resultado (derecha).

+ =

- =

Page 20: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

19

En la figura 12 se muestra la resta de un escalar (50) a cada píxel de la imagen original, el cual se lleva a cabo de la forma B(x, y) A(x, y) a..

Figura 12. Resta de un escalar (50) a cada píxel de la imagen original (izquierda)

En el campo de las imágenes, la multiplicación se puede llevar a cabo, entre dos imágenes del mismo tamaño, multiplicando elemento a elemento cada uno de los píxeles de la imagen, de la forma C(x, y) A(x, y) B(x, y) , en Matlab esto se realiza con el comando immultiply. En la figura 13 se muestra la multiplicación de dos imágenes.

Figura 13 Multiplicación de una imagen por si misma, imagen original (izquierda), imagen resultante (derecha).

Cuando se multiplica cada uno de los píxeles de una imagen por un escalar, se le conoce como escalamiento, el cual se realiza de la siguiente forma B(x, y) a A(x, y) . Cuando el escalar o constante es menor a 1, se oscurece la imagen y si es mayor a uno aumenta el brillo de la imagen. En la figura 14 se muestra el resultado de multiplicar la imagen original por el escalar 1.2

Figura 14. Multiplicación de una imagen por un escalar, imagen original (izquierda), imagen resultante (derecha).

Page 21: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

20

La división de imágenes consiste en una división de elemento a elemento, como las demás operaciones vistas anteriormente. La división entre imágenes puede utilizarse para detectar cambios en dos imágenes, sin embargo, en lugar de dar el cambio absoluto de cada píxel, la división da el cambio fraccional o razón de cambio entre los valores de dos píxeles correspondientes. A la división de imágenes también se le conoce como racionalización. En la figura 15 se presenta la división entre imágenes, la cual se realiza de la forma C(x, y) A(x, y) B(x, y) ..

Figura 15. División de imágenes, se muestra la división de la imagen original (izquierda) entre el fondo (centro) dando como resultado la figura de la derecha.

1.4.2 Operaciones lógicas Las principales operaciones lógicas utilizadas en el procesamiento de imágenes son: AND, OR, NOT, las cuales se aplican solo a imágenes binarizadas. En la figura 16 se muestran las operaciones lógicas aplicadas a imágenes binarias.

Figura 16. Operaciones lógicas aplicadas a imágenes binarias.

Page 22: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

21

1.4.3 Transformaciones geométricas Las transformaciones geométricas modifican las relaciones espaciales entre píxeles; a continuación se presentan algunas. 1.4.3.1 Interpolación La interpolación es el proceso en el cual se estiman los valores de una imagen en una sección específica, cuando por ejemplo, se cambia el tamaño de una imagen y en la nueva imagen existen más píxeles que en la imagen original. Dentro de Matlab los comandos imresize e imrotate utilizan interpolación bidimensional como paso intermedio en sus procesos. De forma general, la interpolación de una imagen se presenta como:

fx,ygi, jhx i, y jdonde: g(x,y) es la imagen original, f(x,y) representa la imagen procesada y h(x,y) es la interpolación (máscara). En el toolbox de Image Processing se encuentran implementados los siguientes métodos de interpolación: interpolación por el vecino más próximo, interpolación bilineal e interpolación bicúbica. Dichos métodos se explicarán más delante de forma breve. Los tres métodos de interpolación funcionan de forma similar, en cada caso para determinar el valor para un píxel interpolado, se encuentra el punto en la imagen original que corresponde a la imagen interpolada. Se asigna el valor del píxel interpolado calculando el promedio ponderado de el conjunto de píxeles hallados en la vecindad de dicho punto. Los tres métodos difieren en el conjunto de píxeles que consideran:

Vecino más próximo: al píxel interpolado se le asigna el valor del píxel que corresponde

Interpolación bilineal: el valor del píxel interpolado es el promedio ponderado de los píxeles en la vecindad 2x2 más cercana.

Interpolación bicúbica: el valor del píxel interpolado es el promedio ponderado de los píxeles presentes en la vecindad 4x4 más cercana.

Nótese que el número de píxeles considerado aumenta la complejidad del cálculo, es por eso que la interpolación bilineal es más lenta que el método del vecino más próximo y el método bicúbico es más lento que el método bilineal. Nótese también que si se considera un mayor número de píxeles, se tendrán mejores resultados. Para la mayoría de las funciones el método utilizado por omisión es el de vecino más próximo. Este método produce resultados aceptables para todos los tipos de imágenes y es el único método apropiado para imágenes indexadas. Sin embargo, para imágenes de intensidad y RBG generalmente se especifica la interpolación bilineal o bicúbica porque estos métodos proporcionan mejores resultados. Para imágenes RGB, la interpolación se ejecuta en los planos de color rojo, verde y azul de forma individual.

Page 23: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

22

1.4.3.2 Amplificación/Reducción de imágenes Para el cambio de tamaño de una imagen (amplificación/reducción) se utiliza el comando imresize. Este comando permite especificar: el tamaño de la imagen de salida (procesada), el método de interpolación utilizado y el filtro a usar para evitar el efecto alias. El efecto alias se presenta al reducir el tamaño de una imagen. Esto es debido a que se presenta una pérdida de información cuando se reduce el tamaño de una imagen. En las figuras 17 y 18 se presenta un ejemplo de amplificación de imágenes usando los métodos de interpolación descritos anteriormente. La interpolación mediante Fourier se expone más adelante.

Figura 17. Imagen original

Figura 18. Amplificación de la figura 17 usando diferentes métodos de interpolación.

Page 24: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

23

1.4.3.3 Traslación Si se requiere trasladar el origen de una imagen se aplican las ecuaciones:

Que en coordenadas homogéneas es:

Rotación respecto al origen:

Rotación respecto a un punto cualquiera:

En la figura 19 se muestra la rotación de la figura 17 usando diferentes métodos de interpolación.

Figura 19. Rotación de la imagen de la figura 17 usando diferentes métodos de interpolación.

Page 25: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

24

1.4.3.4 Convolución bidimensional La convolución bidimensional discreta es la base de algunos procesamientos comunes, como el filtrado de imágenes. En la convolución, el valor de un píxel de salida se calcula mediante la suma ponderada de los píxeles vecinos. Dentro del campo del procesamiento de imágenes, la convolución se realiza entre la imagen y una matriz (los coeficientes del filtro) llamada máscara para filtrar una imagen. En Matlab la convolución bidimensional (aplicada a imágenes) se encuentra en el comando conv2. La convolución de f(x,y) y h(x,y) está dada por:

g x, y hx, y f x, y f i, j hx i, y j i j

Lo más común es usar convoluciones de 3 x 3 elementos; entonces la ecuación anterior se convierte en:

2 2

g x, y hx, y f x, y f i, j hx i, y j i 0 j 0

que, por ejemplo, para obtener g(2,2) se tiene: 2 2

g 2,2 f i, j h2 i,2 j i 0 j 0

f 0,0h2,2 f 0,1h2,1 f 0,2h2,0 … f 1,0h1,2 f 1,1h1,1 f 1,2h1,0 ….. … f 2,0h0,2 f 2,1h0,1 f 2,2h0,0

Considérese que la imagen es la mostrada en la figura 20:

Figura 20. Imagen

Y la máscara se muestra en la figura 21:

Figura 21. Máscara de convolución.

Page 26: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

25

En la figura 22 se muestra como calcular el píxel de salida (procesada) mediante los siguientes pasos:

1. Rotar la máscara de convolución 180 grados a partir del elemento del centro. La máscara rotada queda entonces como:

Figura 22. Máscara rotada para la convolución.

2. Sobreponer el elemento central de la máscara de tal forma que quede sobre el

elemento de interés, en este caso el elemento (2,4) de A, tal como se muestra en la figura 23.

Figura 23. Convolución para obtener el valor de A(2,4)

3. Multiplicar cada peso (valor) de la máscara rotada por el píxel de A que se

encuentra “bajo” la máscara. 4. Sumar los productos individuales obtenidos en el paso 3.

Por ejemplo, para el píxel (2,4), el píxel de salida (procesado) es:

1 · 2 + 8 · 9 + 15 · 4 + 7 · 7 + 14 · 5 + 16 · 3 + 13 · 6 + 20 · 1 +22 · 8 = 575 Cuando se trabaja en los extremos de la imagen, se acostumbra insertar ceros (zero padding) en los extremos, tal como se muestra en la figura 24.

Page 27: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

26

Figura 24. Inserción de ceros (zero padding) en los extremos.

1.4.3.5 Correlación

La correlación es una operación parecida a la convolución, en la cual el valor de un píxel de salida se calcula como la suma ponderada de los píxeles vecinos. La diferencia está en que la matriz de pesos o máscara, en este caso llamada núcleo o kernel de correlación no se rota durante el cálculo. La correlación está dada por:

g x, y hx, y f x, y f i, j hx i, y j La correlación se utiliza para encontrar el parecido entre píxeles de una imagen. Si los píxeles son iguales o parecidos, se dice que están altamente correlacionados entre si. La correlación permite hallar patrones. La diferencia entre la correlación y la convolución estriba en que la máscara de correlación no se rota como en la convolución. En la figura 25 se muestra como se calcula la correlación para el píxel (2,4) de la imagen A usando como máscara de correlación a h.

Page 28: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

27

Figura 25. Correlación de A con h.

El algoritmo de la correlación opera de la siguiente forma:

1. Sobreponer el elemento central de la máscara de tal forma que quede sobre el elemento de interés, en este caso el elemento (2,4) de A, tal como se muestra en la figura 22.

2. Multiplicar cada peso (valor) de la máscara rotada por el píxel de A que se encuentra “bajo” la máscara.

3. Sumar los productos individuales obtenidos en el paso 2. Por ejemplo, para el píxel (2,4), el píxel de salida (procesado) es:

1 · 8 + 8 · 1 + 15 · 6 + 7 · 3 + 14 · 5 + 16 · 7 + 13 · 4 + 20 · 9 +22 · 2 = 585 1.5 Procesamiento en el dominio de la frecuencia En el campo de las imágenes, el dominio de la frecuencia es aquel en el que una imagen se representa como la suma de señales periódicas con diferentes frecuencias. Por ejemplo, la transformada de Fourier de una imagen es la representación de dicha imagen como una suma de exponenciales complejos de diferentes magnitudes, frecuencias y fases. Este tipo de transformaciones frecuenciales se llevan a cabo para una amplia gama de procesamientos, entre los cuales se encuentran: la convolución, el mejoramiento de imágenes, la detección de características, compresión, etc.

1.5.1 Series de Fourier Dada una función periódica en el dominio del tiempo f(t), es lógico pensar que esta

función se puede expresar mediante la suma de otras funciones periódicas. Lo anterior se expresa mediante las series de Fourier, las cuales dan las fórmulas matemáticas que expresan esta relación con las funciones periódicas seno y coseno. Así, cualquier función f(t) con periodo To se puede expresar como:

f (t ) a0 ak cos(k 0 t) bk sen(k 0 t ) k 1

Page 29: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

28

Donde:

La serie de Fourier de la señal cuadrada se puede representar como: En la figura 26 se presenta la señal cuadrada

Figura 26. Formación de la señal cuadrada mediante la serie de Fourier. (a) cinco señales senoidales (términos); (b) suma de dos términos; (c) suma de tres términos; (d) suma de

cuatro términos; (e) suma de cinco términos; (f) suma de veinte términos. 1.5.2 Transformada de Fourier

La transformada de Fourier es una extensión de las series de Fourier a señales no periódicas. El par transformado analítico de Fourier está dado por:

Page 30: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

29

Donde X ( ) 2X ( f ). Para el caso unidimensional discreto, el par transformado de Fourier está dado por:

Para el caso bidimensional discreto, se tiene que:

Los valores X(k,l) son los coeficientes de la transformada de Fourier de la imagen x(m,n). A los coeficientes referentes a la frecuencia cero, X(0,0) usualmente se les conoce como la componente de corriente directa. La transformada de Fourier se encuentra implementada en Matlab en el comando fft (para el caso unidimensional), fft2 (para el caso bidimensional) y fftn (para el caso N-dimensional). Las transformadas inversas se encuentran en los comandos ifft (para el caso unidimensional), ifft2 para el caso bidimensional e ifftn (para el caso N-dimensional). La fase obtenida mediante la transformada de Fourier contiene información esencial sobre la estructura de la imagen. La amplitud por si sola implica solo que existe una estructura periódica dentro de la imagen, pero no especifica donde se encuentra. Es decir, si no se conoce la fase de la transformada de Fourier, se puede determinar que objetos hay en la imagen, pero no su posición. Por lo tanto, resulta obvio que si se obtiene un espectro de potencia, se tendría muy poca información sobre la imagen debido a que la fase se ha perdido. Si se asocia un nivel de gris con la amplitud de un proceso físico, por ejemplo una oscilación armónica, entonces el espectro de potencia proporciona la distribución de la energía en el dominio de la frecuencia.

Page 31: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

30

1.5.2.1 Aplicaciones de la transformada de Fourier En esta sección se presentan algunos procesamientos de imágenes relacionados con la transformada de Fourier. Respuesta a la frecuencia de filtros lineales La transformada de Fourier de la respuesta al impulso de un filtro lineal proporciona la respuesta a la frecuencia del filtro. Esto puede obtenerse mediante el comando freqz2, el cual calcula y despliega la respuesta a la frecuencia de un filtro. Convolución rápida Una propiedad clave de la transformada de Fourier es que la multiplicación de dos transformadas de Fourier de dos funciones corresponde a la convolución de las funciones espaciales asociadas. Esta propiedad, junto con la transformada rápida de Fourier forman la base para el algoritmo de la convolución. Supóngase que A es una matriz de M por N y B es una matriz de P por Q; la convolución de A y B se obtiene de la siguiente forma:

1. Se agregan ceros a A y a B para que su longitud sea de al menos (M+P+1) por (N+Q-1). Generalmente se les agrega ceros a A y B para que su tamaño sea una potencia de 2 debido a que el algoritmo de la fft2 es más rápido para potencias de dos.

2. Se calcula la transformada de Fourier bidimensional mediante fft2 3. Se multiplican las dos transformadas 4. Se obtiene la transformada inversa de Fourier bidimensional de la multiplicación

mediante el comando ifft2. Localización de características en imágenes La transformada de Fourier se utiliza también para realizar correlaciones. La correlación se utiliza para localizar algunas características en una imagen. Por ejemplo si se desea encontrar la letra “a” en una imagen que contenga texto, se establece un patrón (sección de la imagen con la característica de búsqueda deseada) con la letra “a” . Posteriormente se obtiene la correlación de la imagen patrón y la imagen original rotando 180º la imagen patrón y se utiliza la técnica de convolución basada en la transformada de Fourier, descrita anteriormente (Nota: la convolución es equivalente a la correlación si se rota el kernel de convolución 180º. Para buscar coincidencias en la imagen se utiliza la transformada de Fourier y la transformada inversa de Fourier. Amplificación de imágenes Para realizar la ampliación de una imagen se utiliza una interpolación en el dominio del tiempo (espacial) mediante la transformada discreta de Fourier, siempre y cuando los lados de la imagen tengan un número de píxeles que sea potencia de dos. A continuación se presenta el procedimiento para cuadruplicar el tamaño de una imagen (duplicar cada lado).

Page 32: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

31

1. Transformar la imagen A al dominio de la frecuencia (imagen o matriz B). 2. Dividir la imagen transformada (imagen o matriz B) en cuatro partes iguales, tal

como se muestra en la figura 27.

Figura 27. División en cuatro partes iguales de la imagen transformada (B)

3. Insertar N ceros a cada renglón de la matriz B, ver la figura 28 (b); enseguida insertar N ceros a cada columna, tal como se muestra en la figura 28(c) para formar una matriz aumentada, B’.

4. El siguiente paso es antitransformar la matriz aumentada B’ para obtener una

matriz A’ aumentada, de dimensiones 2N x 2N. 5. Dividir cada elemento de la matriz X’ entre 64. La relación es 4(2n-1), donde n es el

número de veces que se amplifica la imagen, en este caso n = 2. El procedimiento anterior amplifica la imagen original por un factor de 2 (el área original se cuadruplica). Si se requiere un factor de amplificación diferente de dos, por ejemplo un factor , deberán agregarse a B ( -1) ceros.

Figura 28. Inserción de ceros para obtener la matriz B aumentada (B’).

Page 33: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

32

1.5.3 Transformada discreta coseno

La transformada discreta coseno (TDC) representa una imagen como la suma de senoidales de diferentes amplitudes y frecuencias. La transformada discreta coseno tiene una propiedad tal que para una imagen típica, la mayoría de la información visualmente significativa de una imagen se concentra en solo unos cuantos coeficientes de la DCT. Por esta razón, la TDC es comúnmente usada en aplicaciones de compresión de imágenes. Por ejemplo, la TDC es el corazón del algoritmo estándar de compresión de imágenes conocido como JPEG (Joint Photographic Experts Group). La transformada discreta coseno de una matriz A de M por N, tal como se define a continuación: Los valores Bpq son los coeficientes de la transformada discreta coseno de A. La TDC es invertible, y su inversa está dada por: La ecuación de la TDC inversa se puede interpretar como una matriz A de M por N que puede escribirse como la suma de MN funciones de la forma:

Page 34: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

33

A estas funciones se les llama funciones básicas de la TDC, estos coeficientes Bpq se conocen como pesos aplicados a cada función base. La razón por la cual las imágenes pueden ser comprimidas y recuperadas exitosamente con pequeños errores es la gran cantidad de redundancia en las imágenes típicas. El propósito de esta transformada es obtener un conjunto de coeficientes que representen la imagen con valores que no estén correlacionados (es decir, cada valor en el arreglo o imagen proporciona nueva información no dada por ningún otro valor en el arreglo). Algunos valores en el arreglo transformado dan poca o ninguna información acerca de la imagen original y pueden ser descartados. En la figura 29 se presenta un ejemplo de compresión usando la transformada discreta coseno (comando dct2) usado para transformar la imagen mostrada. La imagen transformada muestra de forma logarítmica la distribución de los niveles de gris en la imagen transformada. La imagen cuantizada muestra los niveles de gris transformados representativos de forma logarítmica, los tonos negros pueden desecharse (en este caso se desecharon valores inferiores a 10), con lo que se comprime la imagen y por último se muestra la imagen reconstruida. 1. 6 Procesamiento de imágenes básico En esta sección se presentan y describen algunos procesamientos más comunes. 1.6.1 Binarización de una imagen La binarización de una imagen consiste en comparar los niveles de gris presentes en la imagen con un valor (umbral) predeterminado. Si el nivel de gris de la imagen es menor que el umbral predeterminado, se le asigna al píxel de la imagen binarizada el valor 0 (negro), y si es mayor, se le asigna un 1 (blanco). De esta forma se obtiene una imagen en blanco y negro. Generalmente se utiliza un umbral de 128 si se trabaja con 255 niveles de gris, pero en algunas aplicaciones se requiere de otro umbral. En la figura 30 se muestra un ejemplo de imagen binarizada.

Figura 29. Compresión de imágenes usando la TDC.

Page 35: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

34

Fig. 30. Binarización de una imagen

1.6.2 Manipulación del contraste El histograma que se muestra en la figura 31 toma valores limitados, por lo que el contraste en la imagen es muy bajo y apenas se aprecian los detalles. Se desea encontrar una función que produzca una nueva imagen que si cubra todo el conjunto de valores posibles de la imagen (niveles de gris). Si a y b son los valores mínimos y máximos, respectivamente, puede definirse la función T(c) que asigna los nuevos valores de gris a partir de los antiguos: donde: a y b son los límites inferior y superior, c es el valor de gris de la imagen original y A es el valor máximo que se desea que tengan los píxeles de la imagen.

Figura 31. Expansión del histograma de la imagen.

Page 36: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

35

En la figura 32 se muestra el resultado de aplicar a la imagen la modificación del contraste, procesamiento también conocido como ecualización de la imagen. El contraste (separación entre los niveles de gris) ha mejorado y ahora se aprecian mejor los detalles de la imagen. En el nuevo histograma puede observarse como la separación entre los diferentes niveles de gris es mayor. En este caso la separación es igual para todos los niveles de gris debido a que la transformación es lineal. Nótese que aunque la imagen se ve mejor, la información es la misma en ambas imágenes, lo único que se ha hecho es asignar nuevos niveles de gris, pero los píxeles que tenían un nivel de gris determinado en la imagen original diferente a los niveles de gris inferior y superior, son los mismos en la imagen nueva. Para un caso más general la función buscada tendrá la forma (ver la figura 33)

Donde y, x son los niveles de gris de las imágenes resultante y original , , son ganancias de cada tramo a, b y L son los intervalos de ganancia

Figura 32. Modificación de contraste

Page 37: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

36

Figura 33. Caso general

1.6.3 Modificación del contraste La modificación del contraste consiste en aplicar una función a cada uno de los píxeles de la imagen, de la forma: p ma donde: m es el valor de gris de la imagen original p es el nuevo valor de gris en la imagen resultante a es la potencia a la que se eleva

Page 38: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

37

El valor 255 se utiliza para normalizar los valores entre 0 y 255 si se trabaja con imágenes con niveles de gris de 8 bits, de lo contrario se debe remplazar este valor por el valor máximo representable con el número de bits utilizados. Con la función cuadrada y cúbica se oscurece la imagen resultante. Con las funciones raíz cuadrada, raíz cúbica y logarítmica sucede lo inverso. 1.6.4 Modificación del histograma Los métodos anteriores modifican cada nivel de gris y dependen únicamente de su valor y por lo tanto, son locales. Si se desea adquirir una información global de la imagen, la forma más fácil de hacerlo es analizar y modificar el histograma. Esto se hace con la idea de que éste se ajuste a una forma predeterminada; la forma más usual se conoce como ecualización del histograma, en la que se pretende que éste sea horizontal, es decir, que para todos los valores de gris se tenga el mismo número de píxeles.La ecualización del histograma se realiza trabajando sobre el histograma acumulado, el cual está dado por:

i

H (i) h(k ) k 0

Si el histograma fuera totalmente plano, el histograma para cada nivel de gris sería:

G(i' ) (i 1) NM 256

donde N y M son las dimensiones de la imagen y 256 corresponde al número de niveles dado por el número de bits con los que se representan (en este caso 8 bits). Como se desea que G(i’) = H(i), se tiene que;

Debido a que los niveles de gris son únicamente valores enteros, se realiza un cambio en los niveles de gris de acuerdo a:

1.6.5 Filtrado de una imagen El filtrado es una técnica para modificar o mejorar a una imagen. Por ejemplo, un filtro puede resaltar o atenuar algunas características. El filtrado es una operación de vecindario, en la cual el valor de un píxel dado en la imagen procesada se calcula mediante algún algoritmo que toma en cuenta los valores de los píxeles de la vecindad de la imagen original. 1.6.5.1 Filtros lineales espaciales El ruido en una imagen es una característica que se desea eliminar, y al ser este variaciones sobre los niveles de gris, le corresponden las frecuencias altas. Si se supone que el ruido es una señal que se suma a la señal (imagen) original, el nivel de gris de un píxel puede definirse como la suma del nivel de gris ideal y el ruido:

Page 39: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

38

f(x, y) = fi(x, y) + r(x, y) Aunque el ruido esta siempre presente, el que afecte más o menos a un píxel determinado es aleatorio. Si se trata de un ruido Gaussiano, este esta definido por una distribución normal de media cero y variancia típica de . 1.6.5.2 Filtro pasa bajas espacial Una forma de eliminar el ruido consiste en hacer pasar la imagen por un filtro pasa bajas que disminuya la ganancia de las componentes de alta frecuencia. El filtro más sencillo e intuitivo es aquel que tiene coeficientes unitarios en todos los elementos, tal como se muestra a continuación.

1

1

1

1

1

1

1

1

1

Si al resultado se le multiplica por un noveno, se obtiene la media de todos los píxeles, por lo que el ruido disminuye. Sin embargo, este filtro presupone que la influencia de todos los píxeles es igual. Otra consideración es que cuanto más alejado esté el píxel del central, su valor será menor y se obtiene la siguiente máscara:

1

1

1

1

2

1

1

1

1

Si se desea dar mayor peso al píxel central que a sus vecinos, y a los vecinos tipo 4 que a los de tipo 8, se tiene

1

2

1

2

4

2

1

2

1

Page 40: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

39

En general, se tiene:

1

b

1

b

b2 b

1

b

1

debiendo ser la ganancia de todas ellas la unidad para no variar la imagen. El filtrado de imágenes en Matlab está implementado en el comando filter2. 1.6.5.3 Filtrado por la mediana El filtrado por la mediana permite eliminar el ruido tipo sal y pimienta, es decir, elimina puntos blancos y negros presentes en la imagen. En una secuencia de números x1, x2, ...xN, la mediana es aquel valor que cumple que (N-1)/2 elementos tienen un valor menor o igual a ella y que (N-1)/2 tiene un valor mayor o menor que la mediana. La mediana se obtiene ordenando las intensidades de los píxeles de menor a mayor, y el píxel que se encuentra en (N-1)/2 es la mediana , tal como se muestra en la figura 34. A continuación se muestra como el filtrado por la mediana puede eliminar un valor.

Figura 34.Vecindad de a y obtención de la mediana.

En Matlab este filtro se encuentra implementado en el comando medfilt2.

1.6.5.4 Realce de bordes El realce de bordes en una imagen tiene un efecto opuesto a la eliminación de ruido; consiste en enfatizar o resaltar aquellos píxeles que tienen un valor de gris diferente al de sus vecinos. Cabe resaltar que si la imagen contiene ruido, su efecto se multiplicará, por

Page 41: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

40

lo que ser recomienda primero eliminar el ruido. En la figura 35 se muestra un ejemplo de realce de contornos.

Figura 35. Realce de una imagen En el realce de imágenes consiste en aumentar la ganancia de las altas frecuencia, es decir: Imagen resultante = (Ganancia)(Imagen Original) – Bajas frecuencias

De forma general, la máscara usada para realzar los bordes es:

donde:

A = 9 · Ganancia –1 y todo ello multiplicado por un noveno.

1.6.5.5 Detección de contornos La detección de contornos es un paso intermedio en el reconocimiento de patrones en imágenes digitales. En una imagen, los contornos corresponden a los limites de los objetos presentes en la imagen. Para hallar los contornos se buscan los lugares en la imagen en los que la intensidad del píxel cambia rápidamente, generalmente usando alguno de los siguientes criterios:

-1

-1

-1

-1

A

-1

-1

-1

-1

Page 42: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

41

Lugares donde la primera derivada (gradiente) de la intensidad es de magnitud mayor que la de un umbral predefinido

Lugares donde la segunda derivada (laplaciano) de la intensidad tiene un cruce por cero.

En el primer caso se buscarán grandes picos y en el segundo cambios de signo, tal como se muestra en la figura 36. 1.6.5.5.1 Técnicas basadas en el gradiente Estas técnicas se basan en una aproximación al concepto de la derivada para espacios discretos. Esta generalización se basa en el cálculo de diferencias entre píxeles vecinos; estas diferencias, según la relación de píxeles considerados, puede dar lugar a derivadas unidimensionales o bidimensionales, así como aplicarse en una dirección determinada de la imagen o en todas direcciones. Otras aproximaciones diferenciales de gran utilidad son la de Roberts y la de Sobel. El operador gradiente G aplicado a una imagen f(x,y) esta definido como:

Figura 36. Detección de contornos mediante la primera y segunda derivada.

Page 43: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

42

El vector gradiente representa el cambio máximo de intensidad para el punto (x,y); su magnitud y dirección están dados por: siendo la dirección del gradiente perpendicular al borde. Para reducir el costo computacional, generalmente se aplica: Debido a que las imágenes digitales no son señales continuas, se tiene: que se puede representar mediante las máscaras:

Page 44: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

43

-1

0

0

1

-1

0

1

-1

0

1

-1

0

1

-1

-1

-1

0

0

0

1

1

1

-1

-2

-1

0

0

0

1

2

1

-1

0

1

2

0

2

-1

0

1

-1

2

-1

0

0

0

1

2

1

0

-1

0

-1

0

-1

0

-1

0

Estas máscaras generalmente no se utilizan debido a que son muy poco sensibles al ruido al tomar en cuenta solamente la información de dos píxeles. Entre los filtros (operadores) más usados, que además permiten obtener un gradiente suavizado, se encuentran: Roberts, Prewitt, Sobel e Isotrópico. En la figura 37 se muestran las máscaras referentes a estos operadores.

0

-1

1

0

Operador de Roberts

Operador de Prewitt

-1

0

1

-2

0

2

-1

0

1

Operador de Sobel Operador Isotrópico

Figura 37. Máscaras para los operadores: Roberts, Prewitt, Sobel e Isotrópico. 1.6.5.5.2 Técnicas basadas en el laplaciano El laplaciano es la segunda derivada de una función y representa la derivada de esta respecto a todas las direcciones, y esta dado por: Generalmente para el laplaciano se utilizan las máscaras mostradas en la figura 38. Nótese que el píxel central toma el valor negativo de la suma de todos los que lo rodean, de tal forma que la suma aritmética de todos los píxeles sea cero.

-1

-1

-1

-1

8

-1

-1

-1

-1

Figura 38. Máscaras utilizadas para el operador laplaciano.

Page 45: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO I Fundamentos para el Procesamiento de Imágenes

44

En la figura 39 se presentan algunos ejemplos de detección de contornos.

Figura 39. Ejemplos de detección de contornos.

Page 46: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

45

PROCESAMIENTO DE IMÁGENES EN MATLAB 2.1 CONCEPTOS BÁSICOS DE IMÁGENES La estructura básica de datos en Matlab es el arreglo, el cual se puede definir como un conjunto ordenado de datos reales o complejos. En el caso de las imágenes, estas pueden ser representadas por matrices formadas por conjuntos ordenados de valores reales que representan la intensidad de color o de niveles de gris. Matlab almacena la mayoría de las imágenes como arreglos bidimensionales (matrices) en los cuales cada elemento de la matriz corresponde a la intensidad de un píxel de la imagen. Por ejemplo, una imagen de 200 renglones por 300 columnas se almacena en Matlab como una matriz de 200x300. Algunas imágenes, como las imágenes a color (RGB), que requieren de un arreglo tridimensional, donde en el primer plano en el espacio tridimensional representa la intensidad de rojo de los píxeles, el segundo plano representa la intensidad de verde de los píxeles y el tercer plano representa la intensidad de azul de los píxeles. Esta convención hace que el trabajar con imágenes en Matlab sea similar al trabajar con matrices con datos de cualquier tipo. Por ejemplo, se puede seleccionar un solo píxel de una imagen-matriz de la forma I(2,15), con lo cual Matlab regresa el valor del píxel localizado en el renglón 2, columna 15 de la imagen-matriz I. Existen dos formas de representar imágenes digitalmente, formato vectorial y formato raster. El formato vectorial representa la imagen por sus formas internas, tratando de representar figuras geométricas que se acomoden a la imagen a representar. El formato raster en cambio representa la imagen a través de un conjunto rectangular (matriz o arreglo) de puntos coloreados llamados píxeles. Este formato es el más usado y de éste se hablará en lo que sigue. 2.1.1 Color Cada píxel tiene un valor, este valor puede ser un simple valor o un conjunto de valores dependiendo de la cantidad de canales de color. En RGB, por ejemplo, cada píxel tendrá 3 valores de colores, uno para Red, otro para Green y otro para Blue que corresponde a su color. La cantidad de bits (dígitos binarios 0 o 1) usados para representar dicho color se llama profundidad de color o colordepth, mientras más bits de colordepth mayor será el tamaño del archivo conteniendo en la siguiente imagen.

Page 47: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

46

Figura 40. Profundidad de color

El color de un píxel puede ser representado de tres maneras: Color indexado (indexed-color): En este caso, el píxel posee un valor que en realidad

no es un código de color, sino un índice del color real en una paleta de colores, también llamado mapa de colores o colormap. El formato GIF usa esta representación. Una paleta de colores no es más que una tabla indexada con los valores de colores a usar en la imagen. Esta paleta se incluye en la imagen. El colordepth en este caso indica la cantidad máxima de colores en la paleta pero no la calidad de los colores de ésta.

Escala de grises (grayscale): El valor del píxel en este caso es un tono de gris, donde

cero indica negro y el mayor valor (2colordepth) indica blanco. Color verdadero (truecolor): El valor del píxel es representado por un conjunto de tres

valores Rojo, Verde, Azul (RGB). En la figura 41 (a) se representa una imagen de 6 x 5 píxeles, donde por supuesto cada celda es un píxel. En este caso cada píxel tiene un valor triple, es decir su color es representado por tres números enteros que van desde 0 hasta (2colordepth), pudiendo así representar cualquier color con la combinación de los tres canales de colores. En la figura 41 (b) en cambio la imagen es representada por píxeles con valores de color que son un simple entero que va desde 0 hasta (2colordepth). En esta imagen, como el valor es único, sólo se puede representar el degradamiento de un color 0 a otro (2colordepth).

Page 48: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

47

Figura 41: Imagen RGB (a) e imagen de escala de grises (b).

Una imagen con un bit de colordepth puede solo tener dos colores, por ejemplo blanco y negro. El formato GIF representa imágenes con 8 bits de colordepth, por lo que la máxima cantidad de colores posibles presentes en una imagen GIF es 256. Por esta razón, para imágenes de alta calidad no es recomendable usar GIF. Otros formatos de imagen raster que soportan mayor colordepth son JPEG, PNG y TIFF por ejemplo. 2.1.2 Números enteros y ordenamiento de bytes Tal como se mencionó, una imagen digital es un conjunto de valores ordenados como una matriz rectangular. Cada uno de estos valores son números enteros que van desde 0 hasta un cierto valor que depende del colordepth (2colordepth). Estos números enteros (simples, no largos) en un computador son representados con 2 o 4 bytes (cada byte posee 8 bits) y dependiendo de la plataforma computacional en uso (procesador, sistema operativo, etc.) estos bytes son ordenados desde el más significativo (MSB, Most Significant Byte) al menos significativo (LSB, Less Significant Byte) o bien desde el LSB al MSB. Supóngase un entero de 4 bytes: B0, B1, B2 y B3. Un entero con el MSB primero sería “B3 B2 B1 B0”. Un entero con el LSB primero sería “B0 B1 B2 B3”. Es importante notar que formatos como PNG (Portable Network Graphic) usan un ordenamiento predeterminado, lo que permite que las imágenes puedan ser interpretadas en todos los sistemas (independiente de la plataforma hardware y software) de la misma forma. 2.1.3 Canal alfa o transparencia Algunos formatos de imagen soportan un canal de transparencia para cada píxel. Por ejemplo en imágenes RGB, cada píxel tiene un conjunto RGB de valores, y soportando un canal alfa entonces ahora cada píxel tendrá un conjunto valores, A representando el grado de transparencia (u opacidad) del píxel. Esto es útil cuando se desean mezclar imágenes.

Page 49: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

48

2.2 LECTURA DE IMÁGENES EN MATLAB En Matlab se soportan los siguientes formatos de imagen: JPEG, TIFF, GIF, BMP, PNG, PGM, HDF, PCX, XWD, ICO y CUR. La función imread en Matlab se puede usar para leer imágenes. Si la imagen es grayscale entonces imread devuelve una matriz bidimensional. Si la imagen es RGB entonces imread devuelve un arreglo tridimensional. 2.2.1 Recomendaciones para manejo de imágenes Como se vió en la sección anterior, imread, la función de MATLAB para leer imágenes retorna un arreglo de elementos tipo uint8 o uint16. Estos tipos de datos funcionan bien con las funciones de Matlab para procesamiento de imágenes pero no funcionan para otras funciones, por ejemplo funciones matemáticas o estadísticas que se desearan aplicar al arreglo imagen. Por esta razón es recomendable trabajar las imágenes en Matlab como tipo de dato double. Para esto, se debería transformar inmediatamente los valores del arreglo después de retornados por imread de la siguiente forma:

>>I = double(imread(’figura.jpg’)) / 256; Así I queda con los valores en el rango de 0 a 1 en tipo de dato double en lugar de 0 a 255 en tipo de dato uint8. Por supuesto este es el caso para imágenes de 8 bits, por la división por 256. Para imágenes de 16 bits se debería dividir por 216. 2.3 CLASES DE ALMACENAMIENTO USADAS EN EL TOOLBOX Por omisión, Matlab almacena la mayoría de los datos en clase double (doble). Los datos en estos arreglos se almacenan como datos de punto flotante de doble precisión (64 bits). En el caso de las imágenes, esta representación no es la ideal, debido a que en una imagen se tiene un número grande de píxeles. Por ejemplo, si se tiene una imagen de 1000 x 1000 píxeles tiene un millón de píxeles y debido a que cada píxel se representa con al menos un elemento del arreglo, se requerirían aproximadamente 8 MB de memoria para almacenarla. Para reducir el espacio en memoria requerido para almacenar imágenes, Matlab almacena los datos en arreglos de 8 o 16 bits sin signo, clases uint8 y uint16, respectivamente. Estos arreglos requieren cuando mucho la octava o cuarta parte de la memoria requerida por un arreglo tipo double. 2.4 CONVERSIONES ENTRE TIPOS DE IMÁGENES Para ciertas operaciones es necesario convertir una imagen de su tipo original a otro tipo de imagen que facilite su procesamiento.

Page 50: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

49

Por ejemplo, si se desea filtrar una imagen a color almacenada como imagen indexada, primero se debe convertir la imagen a formato RGB. Esto es para que Matlab filtre los valores de intensidad de la imagen de forma apropiada. Si se intenta filtrar una imagen indexada, el filtro simplemente se aplica a los índices que se encuentran en la matriz indexada y los resultados no serán los deseados. En la Tabla II se presentan los tipos de imágenes y en la Tabla III se presentan los comandos usados para la conversión entre tipos de imágenes. En el Apéndice A se presenta más información sobre los tipos de imágenes.

1. El mapa de color asociado es un arreglo de p x 3 de valores en punto flotante en el

rango [0, 1]. Para imágenes de intensidad, el mapa de color típicamente es una escala de gris.

Page 51: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

50

2.4.1 Despliegue de imágenes indexadas Para desplegar una imagen indexada, se utiliza el comando imshow, pero se especifica tanto la matriz-imagen como el mapa de color de la forma: imshow(X,mapa), donde imshow despliega para cada píxel de X el color almacenado en la correspondiente columna del mapa de color. 2.4.2 Despliegue de imágenes de intensidad. Para desplegar las imágenes de intensidad (escala de gris) se utiliza imshow(I), donde imshow despliega la imagen escalando los valores de intensidad para que funcionen como índices de un mapa de color en escala de gris. Si I es tipo double, un píxel con valor 1.0 se despliega como blanco y los demás valores como niveles de gris. 2.4.3 Despliegue de imágenes binarias El despliegue de imágenes binarias se sigue la siguiente sintaxis imshow(I). En Matlab esta clase de imágenes es de tipo logical, debido a que este tipo de imágenes solo contiene 1s (blanco) y 0s (negro). Para invertir los colores al desplegar la imagen, se utiliza la operación NOT en Matlab, es decir, se utiliza imshow(-BN). Para desplegar la imagen en otros dos colores se puede hacer uso de un mapa formado por los dos colores deseados. Por ejemplo, si se desea desplegar una imagen binaria solo en rojo y azul, imshow(I,[1 0 0; 0 0 1]). 2.4.4 Despliegue de imágenes RGB Las imágenes RGB, también conocidas como imágenes de color verdadero (truecolor), representan directamente valores de color, mejor que usando un mapa de color. Para desplegar este tipo de imágenes, la sintaxis básica es imshow(RGB), donde RGB es un arreglo de m x n x 3. Para cada píxel (renglón, columna) de RGB, el comando imshow despliega el color representado por la tripleta (renglón, columna,1:3). 2.4.5 Tipos de imágenes en Matlab El toolbox de Procesamiento de Imágenes maneja cuatro tipos de imágenes básicos: imágenes indexadas, imágenes con intensidad, imágenes binarias e imágenes RGB, los cuales se discutirán a continuación. 2.4.5.1 Imágenes indexadas Una imagen indexada consiste de una matriz de datos X y un mapa de color, mapa. Los datos de la matriz pueden ser de clase uint8, uint16 o double. El mapa de color es una matriz (arreglo) de m x 3 de clase double que contiene valores en punto flotante en el rango de 0 a 1. Cada una de las columnas especifica las componentes de rojo, verde y azul de un solo color. Una imagen indexada utiliza el mapeo directo de los valores de un píxel a los valores del

Page 52: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

51

mapa de color. El color para cada píxel de la imagen se determina usando el correspondiente valor de X como un índice dentro de mapa. El valor de 1 apunta a la primera columna del mapa, el valor 2 apunta a la segunda columna y así sucesivamente. Generalmente se almacena un mapa de color con una imagen indexada y automáticamente se carga al usar el comando imread. Sin embargo, el usuario no está limitado a usar el mapa de color por omisión. En la figura 42 se muestra la estructura de una imagen indexada. Los píxeles en la imagen son enteros, los cuales apuntan (índices) a los valores de color almacenados en el mapa de color.

Figura 42 Estructura de una imagen indexada.

La relación entre los valores de la imagen y el mapa de color depende de la clase de la matriz que almacena la imagen. Si la matriz es de clase double, el valor 1 apunta a la primera columna del mapa de color, el valor 2 apunta a la segunda columna y así sucesivamente. Si la matriz que almacena la imagen es de clase uint8 o uint16, existe un offset, el valor 0 apunta a la primer columna del mapa de color, el valor 1 apunta a la segunda columna, y así sucesivamente. El toolbox de Image Processing permite manejar imágenes de clase uint16, pero antes de procesar estas imágenes, deben convertirse a clase double o uint8. Para convertir a double, utilizar el comando im2double, para reducir la imagen a 256 colores o menos (clase uint8), utilizar el comando imapprox. 2.4.5.2 Imágenes de intensidad Una imagen de intensidad es una matriz de datos, llamada I, cuyos valores representan intensidades dentro de un rango. Matlab almacena las imágenes de intensidad como una sola matriz, donde cada elemento corresponde a la intensidad de un píxel de la imagen. La matriz puede ser de clase double, uint8 o uint16. Debido a que las imágenes de intensidad rara vez se guardan con un mapa de color, pero Matlab usa un mapa de color para desplegarla. Los elementos en una matriz de intensidad representan varios niveles de intensidad o niveles de

Page 53: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

52

gris, donde generalmente el 0 representa el negro y la intensidad ya sea 1, 255 o 65535 representa el blanco. En la figura 43 se muestra una imagen de intensidad.

Figura 43 Imagen de intensidad.

2.4.5.3 Imágenes binarias En una imagen binaria, cada píxel asume un valor discreto; esencialmente dichos valores corresponden a 1 o 0, encendido o apagado. Una imagen binaria se almacena en un arreglo de pixeles 1’s y 0’s. En la figura 44 se muestra una imagen binaria.

Page 54: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

53

Figura 44. Imagen binaria

2.4.5.4 Imágenes RBG A las imágenes RGB generalmente se les conoce como imágenes de color verdadero. En Matlab estas imágenes se almacenan mediante 3 arreglos de dimensión m x n que definen los componentes de colores rojo, verde y azul para cada píxel. En estas imágenes, el color se forma mediante la combinación de las intensidades almacenadas en cada plano de color para cada píxel. En la Tabla IV se presentan algunos comandos de Matlab que pueden utilizarse para determinar el tipo de imagen con que se está trabajando

Los comandos listados en la Tabla III se pueden utilizar de la siguiente forma: bandera = isbw(A)

info = imfinfo(archivo,formato) info = imfinfo(archivo)

Page 55: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

54

2.4.6 Selección de una sección de imágenes en Matlab Para tomar una sección de cualquier imagen se utiliza el comando imcrop. A continuación se presenta la sintaxis de este comando:

I2 =imcrop(I) X2 =imcrop(X,map)

RGB2 =imcrop(RGB) Si se omite el argumento de entrada, el comando opera sobre la imagen actual. Para seleccionar la región a cortar, simplemente presione el botón derecho del ratón y forme un rectángulo sobre la región. Si presiona la tecla Shift, se captura una sección cuadrada. Cuando se suelta el botón del ratón, el comando regresa la sección seleccionada al argumento de salida especificado. Si no se especifica ningún argumento, el comando simplemente despliega la imagen seleccionada en una nueva figura. También es posible seleccionar la sección de interés de forma no interactiva; en este caso se debe especificar el rectángulo de la forma:

I2 =imcrop(I,[xmin ymin ancho alto]) X2 =imcrop(X,map,[xmin ymin ancho alto])

RGB2 =imcrop(RGB,[xmin ymin ancho alto]) 2.5 RECONOCIMIENTO DE ROSTROS Como se mencionó previamente, el reconocimiento de rostros es un área dentro del reconocimiento de patrones que ha sido investigada desde hace varios años. Desde entonces se han propuesto varias técnicas para resolver esta tarea, entre ellas podemos mencionar las siguientes: las técnicas que utilizan igualamiento de plantillas14, características geométricas14, cálculo de eigenfaces15 y los métodos que utilizan redes neuronales15, entre otros. Para la implementación de este tipo de sistemas, independientemente de la técnica o metodología que sea implementada, se utilizan generalmente dos conjuntos de datos. El primer conjunto de datos es el que es utilizado durante la etapa de aprendizaje, el cual es comúnmente llamado conjunto de entrenamiento. Se debe tratar que los patrones que integran este conjunto, sean lo más diferente posible entre sí, y que además, representen al problema, para poder obtener un buen porcentaje de generalización. El segundo conjunto de patrones, es el que se utiliza durante la etapa de reconocimiento y es llamado conjunto de prueba.

Page 56: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

55

En la mayoría de estas técnicas, el reconocimiento de rostros involucra algunas de las siguientes etapas:

• Preprocesamiento de la imagen. • Extracción de características. • Alguna forma de entrenamiento. • Etapa de reconocimiento.

2.5.1 Preprocesamiento de la imagen Dado que las imágenes de los rostros regularmente son tomadas en momentos diferentes, esto trae como consecuencia que las diferentes imágenes de una misma persona tengan variaciones en cuanto a la iluminación, la orientación, y el tamaño del rostro. Por tal motivo, es necesario que la imagen sea preprocesada antes de que pueda ser utilizada. Entre las tareas de preprocesamiento más comunes podemos encontrar las siguientes: extraer la imagen del rostro de una imagen más grande que contenga información irrelevante para el reconocimiento; normalización en cuanto al tamaño, es decir, que todas las imágenes de los rostros tengan un tamaño similar, y la aplicación de algún método de filtrado para mejorar la calidad de la imagen. 2.5.2 Extracción de características La extracción de características es una de las etapas de la cual depende en gran medida el buen desempeño del sistema de reconocimiento de rostros. El objetivo principal de esta etapa es extraer la información más discriminante de un rostro, eliminando la información que resulte irrelevante para el reconocimiento. En esta etapa podemos encontrar desde las técnicas que obtienen las características de manera manual, hasta técnicas más sofisticadas que extraen las características de forma automática. En varias técnicas, las principales características que son extraídas de los rostros son aquellas que describen a cada uno de los componentes básicos del rostro tales como los ojos, la nariz, la boca, la barba, las cejas, y por supuesto, la relación que existe entre ellos, es decir, la distancia entre cada uno de estos componentes. 2.5.3 Entrenamiento El entrenamiento básicamente consiste en utilizar alguna forma de aprendizaje que le permita al sistema "aprender" los rostros que constituyen el conjunto de entrenamiento. El tipo de entrenamiento que sea utilizado para el aprendizaje, dependerá en gran medida, de la metodología que se esté utilizando para el reconocimiento. Por ejemplo, al utilizar una metodología como la de redes neuronales, el entrenamiento consiste en obtener los valores correspondientes a cada una de las conexiones (pesos) que constituyen a la red neuronal. Para este tipo de metodologías existen diferentes algoritmos para realizar el entrenamiento, entre los cuales el algoritmo de retro−propagación es uno de los más populares.

Page 57: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO II Procesamiento de imágenes en Matlab

56

2.5.4 Reconocimiento La última etapa, que comúnmente es realizada en un sistema de reconocimiento de rostros, es la etapa de reconocimiento. Esta etapa básicamente consiste en alimentar al sistema con las imágenes de una persona, diferentes a las utilizadas durante el entrenamiento, esperando obtener como resultado, alguna forma de codificación que nos permita identificar a la persona en proceso.

Page 58: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

57

REDES NEURONALES 3.1 FUNDAMENTO DE LA RED PERCEPTRON MULTITA (RETROPROPAGACIÓN) El Perceptrón Multicapa (MLP, Multilayer Perceptron) al igual que la mayoría de las redes neuronales artificiales, crean modelos a partir de multiplicadores, sumadores, funciones, etc. El perceptrón multicapa (Rumelhart et al 1986) es el exponente más típico de las redes neuronales artificiales con aprendizaje supervisado. El entrenamiento de estas redes, se basa en la presentación sucesiva y de forma reiterada, de pares de vectores en las capas de entrada y salida (vectores entrada y salida deseada). La red crea un modelo a base de ajustar sus pesos en función de los vectores de entrenamiento, de forma que a medida que se pasan estos patrones, para cada vector de entrada la red producirá un valor de salida más similar al vector de salida esperado. Estas redes también se llaman de retropropagación (backpropagation), nombre que viene dado por el tipo de aprendizaje que utilizan. Los perceptrones multicapa con aprendizaje de retropropagación son una variación del modelo ADALINE (Widrow et al., 1960), que utiliza la regla Delta como forma de aprendizaje (Esta regla de aprendizaje, se fundamenta en la utilización del error entre la salida real y esperada de la red para modificar los pesos). Estas redes adaptan la regla Delta de tal forma, que se facilite el entrenamiento de todas las conexiones entre los distintos niveles de la red. 3.1.1 RED MULTICAPA

Page 59: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

58

Page 60: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

59

3.2 RETROPROGRAMACIÓN

Page 61: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

60

Procedimiento para encontrar el vector gradiente de una función error asociada a la salida de la red con respecto a los parámetros de la misma. El nombre backpropagation surge pues del cálculo que se hace en el sentido inverso de la red, propagándose desde los nodos de salida hacia los nodos de entrada Esto permite poder aplicar a posteriori alguno de los muchos métodos de optimización con gradiente para obtener el comportamiento deseado de la red El Backpropagation Standard es el algoritmo de descenso del gradiente donde los pesos de la red son movidos a lo largo de la dirección negativa del gradiente (Es donde se minimiza para obtener T). Existen varias técnicas como lo son:

El algoritmo del gradiente conjugado.

El algoritmo de Newton. En ultima instancia lo que busca este algoritmo del Backpropagation es el entrenamiento de Redes Neuronales Feedforward, con las cuales podemos resolver problemas específicos como: Aproximación de Funciones, clasificación, asociación de vectores, etc.

Page 62: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

61

Page 63: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

62

Page 64: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

63

3.3 PROCEDIMIENTO DE FUNCIONAMIENTO En resumen podemos decir lo siguiente de la retroprogramación:

Page 65: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

64

Las redes perceptrón multicapa (también denominadas redes de retropropagación), se engloban dentro de las redes con aprendizaje supervisado, es decir, utilizan para su entrenamiento patrones formados por un vector de entrada y un vector de salida. Son una variación del modelo ADALINE que utiliza la regla Delta como forma de aprendizaje. 3.4 EL MÉTODO DE APRENDIZAJE CONSTA DE DOS ETAPAS En la primera, los patrones de entrada se presentan a la capa de entrada de la red. Esta información se propaga de capa en capa. Las neuronas de las capas intermedias, calculan la suma de los productos de los valores de las neuronas de entrada y los valores de los pesos asociados a las conexiones, utilizando esta suma para computar el valor de la función de activación, hasta obtener un resultado en la capa de salida. En la segunda etapa, el resultado que proporciona la red en la capa de salida es comparado con el resultado esperado para cada uno de los vectores de entrenamiento, calculando el error que se utiliza para modificar los pesos de las capas intermedias. Por esta razón a este tipo de redes se les denomina de retropropagación. El proceso de aprendizaje del perceptrón puede resumirse: Partiendo de un punto aleatorio W(0) del espacio Rnw donde nw es el numero de parámetros de la red (pesos + umbrales), el aprendizaje desplaza el vector de parámetros W(n-1) en el espacio siguiendo la dirección negativa del gradiente del error en dicho punto, alcanzando así un nuevo punto W(n) que estará más próximo al mínimo del error que el anterior

Page 66: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO III Redes Neuronales

65

El proceso continua hasta encontrar un mínimo de la función de error E, lo que sucede cuando

. 3.5 CAPACIDAD DE GENERALIZACIÓN A la hora de evaluar el perceptron, no sólo es importante saber si la RN ha aprendido con éxito los patrones de entrenamiento, sino que es imprescindible, conocer el comportamiento de la misma ante patrones no usados durante este. De nada sirve que una RN aprenda correctamente los patrones de entrenamiento y no responda de forma adecuada ante patrones nuevos. Es necesario que durante el aprendizaje la RN extraiga las características de las muestras que le permitan responder correctamente a patrones diferentes. Para que se dé la generalización es necesario disponer de dos conjuntos de muestras o patrones; uno para entrenar la red y modificar sus pesos y umbrales (conjunto de entrenamiento) y otro para medir la capacidad de la RN de responder correctamente ante patrones que no han sido usados durante el entrenamiento (conjunto de validación o test). Los anteriores deben obtenerse de separaciones aleatorias dentro de las muestras disponibles 3.6 DESVENTAJAS DEL MÉTODO RE RETROPROGRAMACIÓN DE UNA RED NEURONAL Algunas desventajas al hacer el uso del algoritmo de retroprogramación. A pesar de su éxito, el algoritmo de retropropagación tiene algunas deficiencias que son analizadas a continuación: Mínimos Locales: La superficie que define el error E en función de los parámetros de la red es compleja y ruidosa. Debido a la utilización del método del gradiente se corre el riesgo que el proceso finalice en un mínimo local Una forma de evitar lo anterior es aumentar el numero de neuronas ocultas dado que se supone que la RN posee un escaso poder de representación interna. Otro posible método es utilizar una tasa de aprendizaje que decrezca a medida que se avanza en el proceso de aprendizaje Parálisis: Este fenómeno también se conoce como saturación, y se produce cuando la entrada total a una neurona de la red toma valores muy altos, tanto positivos como negativos, dado que las funciones de activación poseen dos asintotas horizontales, si la entrada alcanza un valor alto. esta se satura y alcanza un valor de activación máximo o mínimo. Este fenómeno se produce fundamentalmente cuando los parámetros toman valore altos, por ello se recomienda partir de valores iniciales aleatorios próximos a cero.

Page 67: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

66

SISTEMA DE RECONOCIMIENTO 4.1 IMPLEMENTACIÓN DEL SOFTWARE DE RECONOCIMIENTO El presente trabajo está implementado con el paquete computacional MATLAB, ya que es una herramienta poderosa, tanto para procesos matemáticos, como, para la implementación de sistemas usando redes neuronales, que es la parte central del problema propuesto en esta tesis. El problema a tratarse es el de Reconocimiento de Patrones, siendo estos, para nuestro propósito de estudio imágenes (Rostros). Se tiene como base hacer una lectura de un grupo de imágenes de un individuo para almacenarlas en una matriz de datos, a la cual se le llamará recopilación de imágenes de prueba, seguido a ésta se hace la normalización de estos datos, para luego ingresar a la fase de entrenamiento y así conseguir una red de datos para prueba, a este primer proceso se lo denomina Etapa de Entrenamiento. Una vez realizada la Etapa de Entrenamiento, se procede a realizar la lectura de las imágenes restantes del individuo y almacenarlas en otra matriz de datos, que también serán normalizados, para luego ingresar a la fase de reconocimiento, obteniendo como resultado la identidad de rostros, este proceso se lo denomina Etapa de Reconocimiento. El sistema implementado está basado en los conceptos descritos en los capítulos anteriores, los cuales son:

• Preprocesamiento de la imagen. • Extracción de características. • Entrenamiento. • Etapa de reconocimiento.

A continuación se dará una explicación detallada de cada uno de los pasos seguidos. 4.2 PREPROCESAMIENTO DE LA IMAGEN Las imágenes tomadas para la etapa de preproceso, como para la de extracción de características, son tomadas tanto de una base de datos propuesta, es decir una existente, como de una base de datos generada por el usuario. Estas imágenes como ya se habló anteriormente, poseen las siguientes características: Un set de 400 fotos, 10 fotos de cada uno de 40 individuos, que aparecen como archivos individuales 1.pgm, 2.pgm, hasta 10.pgm situados en 40 directorios de nombre s1, s2, hasta

Page 68: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

67

s40. Cada archivo *.pgm (portable grey map) está formado por la imagen en 256 niveles de gris como una matriz de 92x112 bytes. La base de datos de rostros fue elaborada en Olivetti Research Lab (ORL)1, Cambridge entre 1992 y 1994 con imágenes tomadas sobre un fondo homogéneo oscuro. La rotación máxima es de 20º y la variación máxima en iluminación de 10%. La diversidad también involucra tomas con y sin anteojos y cambios en el peinado. Los datos generados por el usuario, corresponden al sistema de adquisición de datos, estas imágenes poseen las mismas características que las descritas en la base de datos propuesta. Estas imágenes fueron tomadas con una cámara digital y luego se trataron con el programa ImageConverter, el cual permite darles las especificaciones necesarias, para que el software implementado funcione de manera adecuada. Las imágenes son tomadas con una cámara web conectada a un equipo de computo, haciendo uso del siguiente código. La primera línea de código nos permite captar video desde la WebCam y asignárselo a una variable.

vid=videoinput('winvideo') La segunda línea del código nos va a permitir ver el video en tiempo real, para así poder calibrar la WebCam

preview (vid) La tercera línea de código nos permite extraer la imagen a una variable, para así poder trabajar sobre ella.

img=getsnapshot(vid) La cuarta línea nos permite ver la imagen adquirida.

imshow (img) vid2=videoinput('winvideo') %Objeto que controla nuestra camara preview (vid2) %muestra video para ajustar la camra img=getsnapshot(vid2) %adquisicion de la imagen imshow (img) %imagen adquirida

Page 69: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

68

Una vez adquirida la imagen se tiene que procesar para normalizarla y de este modo tener un estándar de nuestras imágenes. Las imágenes son interpretadas como una matriz, donde cada uno de los elementos de ésta representa un valor numérico entre 0 y 255, estos valores son equivalentes a los píxeles de la imagen y su valor representa el nivel de gris correspondiente de cada uno de estos. Para esto se utiliza el siguiente código: tx=92 ty=112 infile='dos.jpg' outfile='cara1' imagen=imread(infile); %lectura de la imagen de entrada figure(1) imshow(imagen) %visualizacion de la imagen [cx,cy]=ginput(1) %captura del centro de la imagen (NARIZ) clear nueva nueva=imagen((cy-ty):(cy+ty),(cx-tx):(cx+tx),:); %nueva imagen salida1=sprintf('%s.jpg',outfile) %nombre nueva imagen salida2=sprintf('%s.pgm',outfile) imwrite(nueva,salida1) %guarda nueva imagen en color en formato jpg imwrite(nueva,salida2)%guarda nueva imagen en niveles de gris en formato pgm figure(2) %visualiza la nueva imagen en los dos formatos imshow(salida1) figure(3) imshow(salida2) Las variables “tx” y “ty” representan el tamaño de nuestra imagen la cual será de 92 por 112. Las variables “infile” y “outfile” representan los nombre tanto de entrada como el de salida respectivamente de nuestra imagen a procesar. La siguiente parte de codigo es la que se encarga de recortar nuestra imagen para que quede de un tamaño estandar tomando como referencia o centro de nuestra imagen la nariz. imagen=imread(infile); %lectura de la imagen de entrada figure(1) imshow(imagen) %visualizacion de la imagen [cx,cy]=ginput(1) %captura del centro de la imagen (NARIZ) Una vez que se a recortado nuestra imagen y ya se ha normalizado en cuestión de tamaño se procede a normalizar para darle el formato adecuado que es el que se utilizara en el transcurso del desarrollo para poder trabajar con nuestra imagen.

Page 70: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

69

El código entrega dos resultados uno que es en formato “JPG” a color y otro en formato “PGM” a escala de grises, lo anterior se realiza con la parte de código restante que es la siguiente: clear nueva nueva=imagen((cy-ty):(cy+ty),(cx-tx):(cx+tx),:); %nueva imagen salida1=sprintf('%s.jpg',outfile) %nombre nueva imagen salida2=sprintf('%s.pgm',outfile) imwrite(nueva,salida1) %guarda nueva imagen en color en formato jpg imwrite(nueva,salida2)%guarda nueva imagen en niveles de gris en formato pgm figure(2) %visualiza la nueva imagen en los dos formatos imshow(salida1) figure(3) imshow(salida2) Hasta este punto se ha obtenido la imagen normalizada con la que se va a trabajar, pero esta solo es una imagen de un individuo, por lo que se tendrá que realizar esto tantas veces como se considere para el mismo individuo, obviamente cambiado su aspecto, para que así se puedan tener mas patrones de la misma persona. Así sucesivamente se irá realizando esto con las personas que se desee que el sistema reconozca. Es decir hacer una pequeña base de datos de rostros de distintas personas y clasificarlas de modo que para cada persona haya distintas facetas de la misma. Cada una de las imágenes se encuentra en un directorio específico, se tiene que leer estos datos en Matlab para poder ser procesados, dicho trabajo se lo realiza mediante el siguiente código: Nu=10; %numero de individuos en el sistema de reconocimiento. Nv=5; %numero de eigenvectores del subespacio. %imagenes utilizadas para generar el subespacio PCA. x1=imread('orl-faces/s1/1.pgm'); x2=imread('orl-faces/s2/1.pgm'); x3=imread('orl-faces/s3/1.pgm'); x4=imread('orl-faces/s4/1.pgm'); x5=imread('orl-faces/s5/1.pgm'); x6=imread('orl-faces/s6/1.pgm'); x7=imread('orl-faces/s7/1.pgm'); x8=imread('orl-faces/s8/1.pgm'); x9=imread('orl-faces/s9/1.pgm'); x10=imread('orl-faces/s10/1.pgm');

Page 71: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

70

Nu representa el número de individuos que tiene nuestro sistema. Nv representa el número de eigenvectores del subespacio.

Los vectores propios, autovectores o eigenvectores de un operador lineal son los vectores no nulos que, cuando son transformados por el operador, dan lugar a un múltiplo escalar de sí mismos, con lo que no cambian su dirección. Este escalar λ recibe el nombre valor propio, autovalor, valor característico o eigenvalor. A menudo, una transformación queda completamente determinada por sus vectores propios y valores propios. Un espacio propio, autoespacio o eigenespacio es el conjunto de vectores propios con un valor propio común.

La palabra alemana eigen, que se traduce en español como propio se usó por primera vez en este contexto por David Hilbert en 1904 (aunque Helmholtz la usó previamente con un significado parecido). Eigen se ha traducido también como inherente, característico o el prefijo auto-, donde se aprecia el énfasis en la importancia de los valores propios para definir la naturaleza única de una determinada transformación lineal. Las denominaciones vector y valor característicos también se utilizan habitualmente.

En procesado de imagen, las imágenes procesadas de caras pueden verse como vectores cuyas componentes son la luminancia de cada píxel. La dimensión de este espacio vectorial es el número de píxeles. Los vectores propios de la matriz de covarianza asociada a un conjunto amplio de imágenes normalizadas de rostros se llaman caras propias. Son muy útiles para expresar una imagen de un rostro como la combinación lineal de otras. Las caras propias proporcionan un medio de aplicar compresión de datos a los rostros, para propósitos de biometría.

Posteriormente se evalúan cada una de las matrices obtenidas de cada uno de los individuos contenidas en las variables x1, x2, x3,………x n, con el siguiente ciclo FOR el cual funciona de la siguiente manera: for i=1:Nu comando=sprintf('x%d=x%d(:);',i,i); eval(comando); end Nuestra matriz original x1 tiene un tamaño de 112 x 92, después de haberla evaluado con las líneas de comando que continuación se ponen. comando=sprintf('x%d=x%d(:);',i,i); eval(comando); Nuestra matriz ha adquirido un tamaño de 10304 x 1 permitiéndonos así situar todos nuestros valores de la matriz X1 generada por la imagen de un individuo dentro de una sola columna, sobre ella misma Después se construye una matriz que contendrá los valores obtenidos y evaluados de las matrices de cada uno de los individuos.

Page 72: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

71

Xx=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10]; %cada columna es una cara

Además se declara de tipo doble, para que así pueda soportar la cantidad de datos que se le están introduciendo a través de las variables evaluadas x1, x2, x3,………..xn

Xx=double(Xx); Para el reconocimiento de imágenes hay distintos métodos, el que se uso aquí es el método de PCA “Análisis de los Principales Componentes”, que consiste en reducir la dimensión de un conjunto o espacio de modo que la nueva base describa mejor los “modelos” típicos del conjunto. En términos matemáticos, se desea encontrar los principales componentes de la distribución de rostros, o los eigenvectores de la matriz de covarianza del conjunto de imágenes, tratando una imagen como un punto (o vector) en un espacio de muy alta dimensión. Los eigenvectores son ordenados, cada uno contando para una diferente cantidad de la variación entre imágenes de los rostros. Estos eigenvectores pueden ser pensados como un conjunto de características que juntos caracterizan la variación entre las imágenes. Cada imagen contribuye más o menos a cada eigenvector, de modo que se puede desplegar el eigenvector como un grupo de caras fantasmales a las cuales se les llaman eigenrostros. Cada rostro individual puede ser representado exactamente en términos de una combinación lineal de los eigenrostros. Cada rostro puede ser también aproximado usando únicamente las “mejores” eigenrostros, aquellos que tienen los más grandes eigenvalores y por lo tanto cuenta con la mayor varianza dentro del conjunto de imágenes. Los mejores M eigenrostros expande un subespacio de M-dimensiones de todas las posibles imágenes. En nuestra siguiente línea de código se muestra como es que se hace el uso del método PCA, a través de una función. [V,D,Media] = pc_evectors(Xx,Nv); La función pc_evectors es la que realiza toda la operación del calculo de los eigenvectores tomando como datos de entrada el numero de individuos inmersos en el sistema de reconocimiento y la matriz construida con los datos leídos de cada una de las imágenes de los individuos, entregando como resultados la Media y la Varianza. Haciendo uso de los datos entregados por la función de Análisis de los Principales Componentes “PCA”. Se quita la media a cada uno de los datos obtenidos en nuestra matriz Xm que es la matriz contenedora de todas nuestras caras.

Page 73: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

72

for i =1:Nu Xm(:,i) = Xx(:,i) - Media; %Quito la media los datos para proyectar end; p=V'*Xm; %proyeccion de las caras generadoras en el subespacio PCA El código que se muestra a continuación es el que realiza la proyección en el subespacio PCA de las caras de los individuos for num_cara=1:Nu for i=1:5 file_test=sprintf('orl-faces/s%d/%d.pgm',num_cara,i); comando=sprintf('t%d=imread(file_test);',i); eval(comando); comando=sprintf('t%d=t%d(:);',i,i); eval(comando); end T=[t1 t2 t3 t4 t5]; %cada columna es una cara T=double(T); for i = 1:5 Tm(:,i) = T(:,i) - Media; %Quito la media los datos para proyectar end; proy=V'*Tm; comando=sprintf('p%d=proy;',num_cara); eval(comando); end En la variable p1, p2, p3 …..pn, se almacenan las proyecciones de cada uno de los individuos, como se muestra a continuación en las graficas:

Page 74: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

73

Figura 45. Grafica de p1

Figura 46. Grafica de p2

Page 75: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

74

Figura 47. Grafica de p3

Figura 48. Grafica de p4

Page 76: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

75

Figura 49. Grafica de p5

Figura 50. Grafica de p6

Page 77: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

76

Figura 51. Grafica de p7

Figura 52. Grafica de p8

Page 78: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

77

Figura 53. Grafica de p9

Figura 54. Grafica de p10

Page 79: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

78

En las graficas anteriores podemos verificar los características de cada individuo o le mejor conocemos como eigenvectores, que es el vector que caracteriza a cada uno de los individuos. Podemos observar que para cada uno de los individuos existen diversos vectores característicos, los que son los que delimitan las características de cada persona. También podemos observar que hay puntos en donde convergen varios de los vectores de cada individuo estos puntos de convergencia son los que delimitan el reconocimiento de cada uno de los rostros.

Figura 55. Grafica 3D de los vectores característicos de los individuos.

Page 80: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

79

Figura 56. Grafica 2D de los vectores característicos de los individuos Se asignan cada una de las componentes características que tiene cada individuo para formar la matriz que se introducirá en la red de entrenamiento, para ello se emplea el siguiente código. p11=(p1(:,1)); p22=(p1(:,2)); p33=(p1(:,3)); p44=(p1(:,4)); p55=(p1(:,5)); p12=(p2(:,1)); p23=(p2(:,2)); p34=(p2(:,3)); p45=(p2(:,4)); p56=(p2(:,5)); p13=(p3(:,1)); p24=(p3(:,2)); p35=(p3(:,3)); p46=(p3(:,4));

Page 81: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

80

p57=(p3(:,5)); p14=(p4(:,1)); p25=(p4(:,2)); p36=(p4(:,3)); p47=(p4(:,4)); p58=(p4(:,5)); p15=(p5(:,1)); p26=(p5(:,2)); p37=(p5(:,3)); p48=(p5(:,4)); p59=(p5(:,5)); Se dan de alta las variables que van a delimitar la red de entrenamiento así como la matriz de entrada de la red y la salida deseada. N=6; %neuronas de entrada (incluido el BIAS) L=10; %neuronas de la capa oculta (incluido el BIAS) M=5; %neuronas de salida 5 NT=25; %patrones de entrenamiento NI=20000; % # maximo de iteraciones (epochs) epsilon=0.005; % error cuadratico medio requerido Ws=(2*rand(N,L-1))-1; Vs=(2*rand(L,M))-1; Matriz de entrenamiento generada con los vectores característicos correspondientes a cada uno de los individuos que forman parte de la red de entrenamiento. %matriz de entrenamiento PE=[p11,p12,p13,p14,p15 p22,p23,p24,p25,p26 p33,p34,p35,p36,p37 p44,p45,p46,p47,p48 p55,p56,p57,p58,p59]; 4.2.1 Estructura de la red La red implementada está basada en el concepto de retropropagación, esto se decidió, tomando en cuenta que son redes con características especiales, la principal de ellas es que responde al concepto de aprendizaje supervisado, esto significa, que para cada patrón de entrada, se indica a la red la salida que se requiere de ella, lo que facilita llegar a los resultados esperados.

Page 82: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

81

Después de la estimación de los coeficientes calculados por el programa antes mencionado, se realiza el reconocimiento de patrones, por medio de una red neuronal “back propagation” cuyos pesos fueron obtenidos por medio de un proceso de entrenamiento usando patrones característicos de cada individuo o lo que ya conocemos como sus eigenvectores, los cuales se determinaron. Para determinar, cual es el vector que se sustituirá, se realizará una evaluación de los mismos usando la red neuronal “back propagación”. La red neuronal utilizada es la que se muestra en la Figura 29. Aquí se entrenaron los vectores característicos o eigenvectores de cada individuo. Se asignaron los coeficientes para la capa de entrada, que para el “individuo 1” se le asigno la salida 1 de la red con el código 1 –1 –1 –1 –1 y para el “individuo 2” se le asigno la salida2 de la red con el código –1 1 –1 –1 –1 y así hasta llegar al “ultimo individuo” que se le asigno la salida 5 con el código –1 –1 –1 –1 1.

Figura 57. Diagrama de la red Neuronal

1 –1 –1 –1 –1

–1 1 –1 –1 –1

–1 –1 1 –1 –1

–1 –1 –1 1 –1

–1 –1 –1 –1 1

individuo 1

individuo 2

individuo 3

individuo 4

individuo n

p12

p13

pn

p11

Capa de entrada

Capa oculta

Capa de salida

Pesos de conexión Wi-j

Pesos de conexión Vi-j

i

j i

j

ûi ui fs ŷi yi fs

Page 83: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

82

4.2.2 Algoritmo de retropropagación Suma del error cuadrático medio entre la salida real y la salida deseada J.

P

ppJ

PJ

1

1

donde: P Es el numero de patrones de entrenamiento Jp Es el error cuadrático del p-eximo patrón de entrenamiento

M

qppqp xdqxyJ

1

2))()((21

yq(xp) q esima salida de la red, cuando se aplica el p-eximo patrón de entrenamiento. dq(xp) q exima salida deseada, cuando se aplica p-eximo patrón de datos M numero de nodos de la capa de salida fs es función de activación y función sigmoidal es;

xexfs

1

1)(

Wi j y Vi j son los pesos de adaptación

uiyyekVkV jjjijij )1()()1(

))1(()1([)1(1

jm

M

mmmmijjijij VyyeXuuWkW

4.3 ENTRENAMIENTO DE LA RED La siguiente parte de programa realiza las iteraciones que permitirán que el programa se entrene, así como también nos creara la salida deseada para nuestra red de retroprogramación.

Page 84: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

83

for k=1:NI Err=0; for i=1:NT; if k<=100 miu=0.3; end if k>100&k<=4000 miu=0.02; end if k>4000 miu=0.2; end X=[1.0,PE(i,:)]; %bias y patrones de entrenamiento %calculo de salida de la red U_hat=X*Ws; U=[1.0,f_nl(1,U_hat)]; %agrega Bias Y_hat=U*Vs; Y=f_nl(1,Y_hat); E=D(i,:)-Y; %adaptacion delta1=E.*f_prime(1,Y_hat); Vs=Vs+miu*U'*delta1; S=Vs*delta1'; delta2=S(2:L)'.*f_prime(1,U_hat); Ws=Ws+miu*X'*delta2; Err=Err+E*E'; end % i Err=Err/(NT*M); vec_err(1,k)=Err; fprintf(1,'Err=%4.9f ==> %d\n',Err,k); if Err<epsilon break; end end Al ejecutar el programa nos muestra como resultado lo siguiente:

Page 85: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

84

Hace el cálculo de los eigenvectores de cada uno de los individuos. La red hace un total de 20000 iteraciones para llevar a cabo el entrenamiento. >> Computing average vector and vector differences from avg... Calculating L=A'A Calculating eigenvectors of L... Sorting evectors/values... Computing eigenvectors of the real covariance matrix.. Err=0.057040115 ==> 19950 Err=0.066123418 ==> 19951 Err=0.057045514 ==> 19952 Err=0.066144272 ==> 19953 Err=0.057040114 ==> 19954 Err=0.066123413 ==> 19955 Err=0.057045512 ==> 19956 Err=0.066144262 ==> 19957 Err=0.057040114 ==> 19958 Err=0.066123409 ==> 19959 Err=0.057045510 ==> 19960 Err=0.066144252 ==> 19961 Err=0.057040114 ==> 19962 Err=0.066123405 ==> 19963 Err=0.057045508 ==> 19964 Err=0.066144243 ==> 19965 Err=0.057040113 ==> 19966 Err=0.066123401 ==> 19967 Err=0.057045507 ==> 19968 Err=0.066144233 ==> 19969 Err=0.057040113 ==> 19970 Err=0.066123397 ==> 19971 Err=0.057045505 ==> 19972 Err=0.066144224 ==> 19973 Err=0.057040112 ==> 19974 Err=0.066123392 ==> 19975 Err=0.057045503 ==> 19976 Err=0.066144214 ==> 19977 Err=0.057040112 ==> 19978 Err=0.066123388 ==> 19979 Err=0.057045501 ==> 19980 Err=0.066144205 ==> 19981 Err=0.057040112 ==> 19982 Err=0.066123384 ==> 19983 Err=0.057045500 ==> 19984 Err=0.066144195 ==> 19985 Err=0.057040111 ==> 19986

Page 86: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

85

Err=0.066123380 ==> 19987 Err=0.057045498 ==> 19988 Err=0.066144186 ==> 19989 Err=0.057040111 ==> 19990 Err=0.066123376 ==> 19991 Err=0.057045496 ==> 19992 Err=0.066144176 ==> 19993 Err=0.057040110 ==> 19994 Err=0.066123371 ==> 19995 Err=0.057045494 ==> 19996 Err=0.066144167 ==> 19997 Err=0.057040110 ==> 19998 Err=0.066123367 ==> 19999 Err=0.057045493 ==> 20000 La salida de la red es la siguiente: Esta salida debe de ser igual a la deseada, esto indicara que nuestra red neuronal quedo entrenada adecuadamente y esta lista para llevar a cabo una prueba de reconocimiento. Salida de la Red: 1 -1 -1 -1 -1 Salida de la Red: -1 1 -1 -1 -1 Salida de la Red: -1 -1 1 -1 -1 Salida de la Red: -1 -1 -1 1 -1 Salida de la Red: -1 -1 -1 -1 1 Salida de la Red: 1 -1 -1 -1 -1 Salida de la Red: -1 1 -1 -1 -1 Salida de la Red: -1 -1 1 -1 -1 Salida de la Red: -1 -1 -1 1 -1 Salida de la Red: -1 -1 -1 -1 1 Salida de la Red: 1 -1 -1 -1 -1 Salida de la Red: -1 1 -1 -1 -1 Salida de la Red: -1 -1 1 -1 -1 Salida de la Red: -1 -1 -1 1 -1

Page 87: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

86

Salida de la Red: -1 -1 -1 -1 1 Salida de la Red: 1 -1 -1 -1 -1 Salida de la Red: -1 1 -1 -1 -1 Salida de la Red: -1 -1 1 -1 -1 Salida de la Red: -1 -1 -1 1 -1 Salida de la Red: -1 -1 -1 -1 1 Salida de la Red: 1 -1 -1 -1 -1 Salida de la Red: -1 1 -1 -1 -1 Salida de la Red: -1 1 -1 -1 -1 Salida de la Red: -1 -1 -1 1 -1 Salida de la Red: -1 -1 -1 -1 1 A continuación se muestran algunas graficas que definen el entrenamiento de la red neuronal.

Figura 58. Gráfica del Vector de Error

Page 88: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

87

Figura 59. Gráfica de Ws

Figura 60. Gráfica de Vs

60

Page 89: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

88

Figura 61. Gráfica del Bias

Figura 62. Gráfica de adaptación

Page 90: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

89

Figura 63. Gráfica de la Red de Salida.

Figura 64. Gráfica de la deseada de la Red de entrenamiento.

Page 91: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

90

for i=1:NT X=[1.0,PE(i,:)]; U_hat=X*Ws; U=[1.0,f_nl(1,U_hat)]; Y_hat=U*Vs; Y=hardlims(f_nl(1,Y_hat)); fprintf(1,'Salida de la Red: %d %d %d %d %d\n\n',Y(1),Y(2),Y(3),Y(4),Y(5)); end fidfun=fopen('Wij.dat','w'); fprintf(fidfun,'%6.4f %6.4f %6.4f %6.4f %6.4f %6.4f\n',Ws'); fclose(fidfun); fidfun=fopen('Vij.dat','w'); fprintf(fidfun,'%6.4f %6.4f %6.4f %6.4f %6.4f\n',Vs'); fclose(fidfun); 4.4 CREACIÓN DE LA BASE DE DATOS. En esta ultima parte del código podemos observar como se lleva a cabo la creación de la base de datos que contendrá los parámetros que identifican a cada uno de los individuos que se encuentran inmersos en el sistema de reconocimiento facial. Los datos se almacenan en los archivos .dat que tienen el nombre de Wij y Vij. Estos archivos contienen los pesos correspondientes que son el resultado del procesamiento de cada una de las imágenes que pertenecen a cada persona que se encuentra dentro de la base de datos propuesta. Estos resultados nos servirán para llevar a cabo la comparación, reconocimiento y validación de un usuario. A continuación se presenta la parte de código que lleva a cabo la evaluación, en esta parte veremos como se lleva se realiza el reconocimiento de del rostro de un usuario. Nu=10; %numero de individuos en el sistema de reconocimiento Nv=6; %numero de eigenvectores del subespacio %imagenes utilizadas para generar el subespacio PCA x1=imread('orl-faces/s1/1.pgm'); x2=imread('orl-faces/s2/1.pgm'); x3=imread('orl-faces/s3/1.pgm'); x4=imread('orl-faces/s4/1.pgm'); x5=imread('orl-faces/s5/1.pgm'); x6=imread('orl-faces/s6/1.pgm'); x7=imread('orl-faces/s7/1.pgm');

Page 92: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

91

x8=imread('orl-faces/s8/1.pgm'); x9=imread('orl-faces/s9/1.pgm'); x10=imread('orl-faces/s10/1.pgm'); for i=1:Nu comando=sprintf('x%d=x%d(:);',i,i); eval(comando); end %matriz de datos X Xx=[x1 x2 x3 x4 x5 x6 x7 x8 x9 x10]; %cada columna es una cara Xx=double(Xx); %%%%%%%%%%%%%%%%%% PCA %%%%%%%%%%%%%%%%%%%%%%% [V,D,Media] = pc_evectors(Xx,Nv); for i =1:Nu Xm(:,i) = Xx(:,i) - Media; %Quito la media los datos para proyectar end; p=V'*Xm; Este código que se esta mostrando es exactamente igual a la primera parte de código que se encuentra en el archivo de matlab Charact.m. Y su función es proporcionarnos los valores de las variables de la Media, la Varianza, los eigenvectores, etc, para así poder proyectar el rostro que se quiere reconocer en el subespacio PCA. El código que se muestra a continuación en conjunto con el anterior nos permite conocer los vectores característicos del usuario del cual se desea hacer su reconocimiento facial. for i=1:5 file_test=sprintf('orl-faces/s%d/%d.pgm',1,i); comando=sprintf('t%d=imread(file_test);',i); eval(comando); comando=sprintf('t%d=t%d(:);',i,i); eval(comando); end T=[t1 t2 t3 t4 t5]; %cada columna es una cara T=double(T);

Page 93: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

92

for i = 1:5 Tm(:,i) = T(:,i) - Media; %Quito la media los datos para proyectar end; proy=V'*Tm; comando=sprintf('p%d=proy;',num_cara); eval(comando); 4.5 RECONOCIMIENTO El siguiente código es de suma importancia ya que es el código que nos va a permitir llevar a cabo el reconocimiento y comparación con la base de datos que se genero en los archivos Wij y Vij. N=6;%neuronas de entrada (incluido el BIAS) L=10;%neuronas de la capa oculta (incluido el BIAS) M=5;%neuronas de salida NT=1;%patrones de entrenamiento NI=100000;%# maximo de iteraciones (epochs) epsilon=0.005;%error cuadratico medio requerido PE=[p1]; %%%%%%% evaluación de la red entrenada %%%%% fidfun=fopen('Wij.dat','r'); %fprintf(fidfun,'%6.4f %6.4f %6.4f %6.4f %6.4f %6.4f\n',W'); Ws=fscanf(fidfun,'%f',[L-1,inf]); Ws=Ws'; fclose(fidfun); fidfun=fopen('Vij.dat','r'); Vs=fscanf(fidfun,'%f',[M,inf]); Vs=Vs'; fclose(fidfun); % cont_a=0; for i=1:NT X=[1.0,PE(i,:)]; U_hat=X*Ws; U=[1.0,f_nl(1,U_hat)]; Y_hat=U*Vs Y=hardlims(f_nl(1,Y_hat)); fprintf(1,'Salida de la Red: %d %d %d %d %d\n\n',Y(1),Y(2),Y(3),Y(4),Y(5)); end

Page 94: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CAPITULO IV Sistema de reconocimiento

93

if (Y(1)==1 & Y(2)==-1 & Y(3)==-1 & Y(4)==-1 & Y(5)==-1) fprintf('Uno'); end if (Y(1)==-1 & Y(2)==1 & Y(3)==-1 & Y(4)==-1 & Y(5)==-1) fprintf('Dos'); end if (Y(1)==-1 & Y(2)==-1 & Y(3)==1 & Y(4)==-1 & Y(5)==-1) fprintf('Tres'); end if (Y(1)==-1 & Y(2)==-1 & Y(3)==-1 & Y(4)==1 & Y(5)==-1) fprintf('Cuatro'); end if (Y(1)==-1 & Y(2)==-1 & Y(3)==-1 & Y(4)==-1 & Y(5)==1) fprintf('Cinco'); end sy=sum(Y); if sy ~= -3 fprintf('error'); end Este es finalmente el resultado obtenido del código anterior: Aquí podemos verificar que nuestro sistema en realidad lleva a cabo el reconocimiento facial de una persona que previamente se introdujo dentro de nuestra base de datos. >> Computing average vector and vector differences from avg... Calculating L=A'A Calculating eigenvectors of L... Sorting evectors/values... Computing eigenvectors of the real covariance matrix.. Y_hat = -8.3948 -10.1443 -5.0851 -0.4513 5.0316 Salida de la Red: -1 -1 -1 -1 1 Manuel Podemos mencionar que sistema tiene una eficiencia del 85 % ya que algunas facetas de los individuos que previamente estaban en la base de datos no fueron reconocidas, pero en su gran mayoría todos los usuarios se pudieron reconocer. Por lo que podemos mencionar que es fiable este proyecto y así concluir que es rentable y flexible.

Page 95: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CONCLUSIONES

94

CONCLUSIONES En este proyecto se ha desarrollado un sistema de reconocimiento de rostros, el cual utiliza la metodología de Redes Neuronales Artificiales. Además, se propone e implementa un método para la extracción de características de imágenes de rostros. Este método tiene la ventaja de ser fácil de implementar y de no necesitar de cálculos complejos. Además, al utilizar una red neuronal artificial, el sistema es tolerante a variaciones en las expresiones faciales y a detalles faciales tales como el uso de aretes, lentes, entre otros. Los resultados obtenidos por el sistema indican que al combinar la Red Neuronal Artificial, con el método de extracción de características propuesto, se obtiene una eficiencia bastante aceptable. El método de extracción de características de imágenes de rostros es tolerante a variaciones en cuanto a las expresiones faciales, y a rotaciones que no sean muy significativas. Las variaciones en cuanto a la iluminación no deben ser muy significativas, puesto que los vectores de características, con los que es entrenada la red neuronal, están en términos de los niveles de gris de la imagen original. Por esta razón, si la iluminación de las imágenes de los rostros varía significativamente, entre el conjunto de entrenamiento y el conjunto de prueba, el sistema no tendrá un porcentaje de generalización aceptable. Los principios de diseño utilizados para especificar la red de retropropagación dieron excelentes resultados en reconocimiento de rostros, tanto en tiempo de proceso como en fidelidad de identificación. El sobreaprendizaje, asimilable a privilegiar la memorización de los valores de los datos, no se produjo; la evidencia está dada por el procedimiento de prueba que involucra imágenes distintas a las del entrenamiento. La normalización de los datos prueba ser un método muy eficiente de compactación, sin el cual la identificación no funciona. Este resultado muestra que es imprescindible preprocesar los datos, a la vez que el tipo de preproceso no necesita ser muy complicado. En efecto, la extracción de características relevantes es efectuada por la red de retropropagación, en forma satisfactoria, sin necesidad de tener que incorporar hipótesis acerca de la jerarquización de las mismas. Se reencuentra así una hipótesis de trabajo referente a un mecanismo plausible de percepción, conducente al reconocimiento de rostros, en una escala de tiempo que sugiere un proceso muy eficiente de compresión de datos. En efecto, considerando el ancho de banda del ‘hardware’ biológico involucrado, el flujo neto de señales debe ser bastante reducido. Adicionalmente, el algoritmo de compresión nos es transparente; debe ser relativamente simple, probablemente subordinado al proceso de identificación de modo de modular la captura y compresión de acuerdo al avance de la identificación, en forma similar a la retropropagación del error.

Page 96: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

CONCLUSIONES

95

El programa implementado es muy funcional, ya que con cambios no significativos, se podría hacer trabajos con una gran variedad de imágenes tanto en tamaño, como en formato, dando así un amplio rango de posibilidades para el reconocimiento de imágenes. Para el programa son indiferentes los datos de ingreso, siempre y cuando respeten las condiciones preestablecidas para el proceso. El grado de confusión de la red, para trabajo grupal, es mayor que cuando se realiza el proceso de forma individual, esto se debe a que, mientras mas individuos haya en la red, tiene que manipular una mayor cantidad de entradas y salidas, por lo que la red comienza a tener inconvenientes, pero este nivel de confusión se da en ciertos elementos mas no en todos, es decir, se comienza a perder información para ciertas imágenes, siendo esta pérdida en una imagen por individuo y máximo en dos imágenes, esto se da en el proceso de identificación, más no en el proceso de entrenamiento. Se realiza la etapa de adquisición de datos y la interfase con el usuario para nuestro sistema, dando como resultado una expansión de posibilidades para procesamiento de imágenes en el sistema propuesto. Se lograron resultados de reconocimiento de un alto nivel, tanto para la base de datos propuesta, como para la creada, con lo que se concluye la eficiencia del software implementado.

Page 97: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

BIBLIOGRAFIA

96

BIBLIOGRAFÍA S.Watanabe.- Pattern Recognition: Human and Mechanical.- Wiley, New York 1985 Hrycej T., Modular Learning in Neural Networks: A Modularized Approach to Neural

Network Classification. John Wiley & Soncs, Inc. 1992. D.E.Rumelhart and J.L. McClelland, “Parallel Distributed Processing: Exploration in

the Microstructure of Cognition”, MIT Press, Cambridge, Mass. 1986. P.J. Werbos, “Beyond Regression: New Tools for Prediction and Analysis in the

Behavioural Sciences”, PhD thesis, Dept. of Applied Mathematics, Harvard University, Cambridge, Mass., 1974.

Haykin S, “Neural Networks - A comprehensive foundation”, IEEE Press – Macmillan

College Publishing Company, Inc. 1994. S.K.Pal and P.K.Srrimani. “Neurocomputing: motivation, models and hybridization”,

Computer Magazine, IEEE Computer Society, Vol. 29, No. 3, March 1996, pág. 24. P.J.Werbos. "Links between ANN and statistical pattern recognition".- En "Artificial

Neural Networks and Pattern Recognition", Sethi, Jain.- Elsevier 1991 Kohonen T. "Self Organization and Associative Memory", 4th Edition. Springer 1994 Pao, Y.H.- Adaptive Pattern Recognition and Neural Networks. Addison- Wesley

1989. Hinton, Sejnowsky, "Parallel Distributed Processing", MIT Press 1986 Sethi, I.K.- Entropy Nets: from decision trees to neural networks.- Proc IEEE, Oct

1990. Raudys, Kain.- Small sample side problems in designing ANN.- IEEE Trans Pattern

Analysis, Marzo 91 Mao, Jain. "Regularization techniques in ANN", WCNN, 1993 Brunelli R., Poggio T., "Face Recognition: Features versus Templates", IEEE Trans.

Patt. Anal. And Mach. Intell., vol. 15, No. 10, pp. 1042−1052, 1993. Jun Zhang, Young Yan, and Martin Lades. "Face Recognition: Eigenface, Elastic

Matching, and Neural Nets." Proceedings of the IEEE. vol. 85. No. 9, pp.1422−1435, 1997.

Page 98: INSTITUTO POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE ... 243.pdf · “SISTEMA DE RECONOCIMIENTO FACIAL POR MEDIO DE EIGENFACES Y REDES NEURONALES” I Fundamentos para el procesamiento

BIBLIOGRAFIA

97

Brunelli R., Poggio T., "Face Recognition: Features versus Templates", IEEE Trans. Patt. Anal. And Mach. Intell., vol. 15, No. 10, pp. 1042−1052, 1993.

Yacoub M., Bennani M., "Discriminative Feature Extraction and Selection applied to

Face Recognition", JCNN, 1999. Oliver de Vel, Stefan Aeberhard, "Line−Based Face Recognition under Varying Pose",

IEEE Trans. Patt. Anal. And Mach. Intell., vol. 21, No. 10, pp. 1081−1088, 1999. http://www.cam-orl.co.uk/facedatabase.html Villegas Medina, Gerardo; Curso Básico de MatLab; Instituto Politécnico Nacional

Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Profesional Azcapotzalco.

Salvador Ramírez; MatLab; http://www.profc.udec.cl/~sram; 5 de marzo de 2002. Barragán, Marco; “CIBERNETICA Y CONTROL”; Segunda Edición; Escuela

Politécnica Nacional; Quito – Ecuador; 2004.