Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PROGRAMA DE MAESTRIA EN
MATEMATICA APLICADA
NEURONALES
TESIS
CIENCIAS
PIURA PER
MARZO 2008
UNIVERSIDAD NACIONAL DE PIURA
PROGRAMA DE MAESTRIA EN
MATEMATICA APLICADA
TESIS
_____________________________________
ING. JUAN MANUEL JACINTO SANDOVAL
EJECUTOR
_______________________________
DR. CSAR HARO DAZ
ASESOR
UNIVERSIDAD NACIONAL DE PIURA
PROGRAMA DE MAESTRIA EN
MATEMATICA APLICADA
PRESIDENTE
MSc.
SECRETARIO
MSc.
VOCAL
DEDICATORIA
la parte acadmica.
Un agradecimiento tambin a mis padres, que sin ellos no hubiese sido posible
imgenes. Para ello, se han desarrollado tcnicas que permiten abordar los
cuenta la enorme restriccin que supone trabajar en tiempo real con una
de las imgenes.
costos, no utilizando una cmara digital profesional que es muy cara. Tambin
as no varen muchos los valores de los pxeles. Para representar cada rostro por
los patrones que obtenemos de cada rostro, son la entrada a la red neuronal
INDICE DE CONTENIDO
INDICE DE TABLAS
I. INTRODUCCIN .........................................................................................................1
2.3 BIOMETRA.....................................................................................................................6
2.3.16.1 VERIFICACIN.......................................................................................................... 22
2.4.1 IMAGEN..................................................................................................................24
2.4.14 SEGMENTACIN..................................................................................................38
BIBLIOGRAFA ..........................................................................................................129
Tabla Pgina
Ilustracin Pgina
Figura 5. (a) Distribucin de pxeles; (b) 8-vecinos del pxel central; (c)
m-vecinos del mismo pxel. Las lneas a trazos son caminos entre ese
pxel y sus vecinos. ................................................................................. 32
Figura 63. Concatenacin de las proyecciones del rostro de la figura 62........... 103
Figura 64. Red neuronal artificial con un patrn de entrada ...................... 106
es una buena alternativa para lograr este objetivo, porque utiliza rasgos nicos
mltiples las aplicaciones que ofrece desde un punto de vista industrial. Gran
parte de este desarrollo se ha visto favorecido en los ltimos tiempos por la toma
1
Dentro de la biometra esttica se encuentra el trabajo de investigacin
de tesis que presento y se basa en las caractersticas estticas del rostro de las
personas.
metodologa propia.
2
II. MARCO TERICO CONCEPTUAL
CCD Array
conformar una seal de video como puede verse en la figura 1. Cabe sealar
que en las cmaras CCD se discretiza la imagen en pxeles, sin embargo el valor
digital.
3
Las cmaras CCD son consideradas como dispositivos que poseen una
luz y una muy buena resolucin llegando tpicamente a los 400.000 pxeles. El
10000 en un 1 seg.
integracin VLSI por sus siglas en ingls (Very Large Scale Integration), que es
del sensor. Tcnicamente es factible pero sera muy caro integrar toda la
de corriente es alto.
Los sensores del CCD son los sensores ms populares para las cmaras
otra parte, realizan ms tareas. Pueden ser programados para convertir las
4
procesado de imagen. Esto permite que la cmara sea mucho ms pequea,
funciona con menos energa y crea menos ruido termal. Son tambin mucho ms
resistencias e interferencia. Por esta razn, los sensores del CCD dominan el
mercado mientras que el sensor CMOS sigue siendo una buena opcin para las
cmaras fotogrficas menos costosas. Sin embargo, los avances recientes han
empujado la tecnologa del CMOS para producir menos ruido mientras que
5
USB. Lo que hay que tener en cuenta es que dicha cmara no tiene nada de
(puede ser una imagen esttica cada medio segundo) y la enva a otro punto
En los videos que tengan como objetivo ser colgados en Internet o ser
2.3 BIOMETRA
El concepto biometra proviene de las palabras bio (vida) y metra
(medida), por lo tanto con ello se infiere que todo equipo biomtrico mide e
secuencia numrica.
6
En general, la bondad de los sistemas de reconocimiento biomtrico
muestras.
comercial.
Figura 3. Anlisis de la bondad de diversos tipos de sistemas biomtricos. Para cada tipo
de biomtrica se ponderan 4 factores en una escala relativa. El centro del diagrama
significa un valor malo para ese factor. El anlisis es de la compaa Zephyr Biometrics,
International Biometric Group
1
X. Lu. Image analysis for face recognition, 2004. Disponible pblicamente en la URL:
http://www.cse.msu.edu/lvxiaogu/publications/publications.htm.
7
Ninguna de las alternativas existentes se aproxima en todos sus
sir Alec Jeffreys utiliz por primera vez el ADN para identificar al autor de unos
asesinatos en Inglaterra.
8
creciendo y en paralelo han aumentado los presupuestos de financiacin para la
biomtricas.
identificacin y la verificacin.
han ido seleccionando a lo largo de los aos aquellas que permiten una mayor
rganos y sistemas.
con capacidad de ser medidas y por tanto susceptibles de ser utilizadas por la
Biometra podemos considerar dos grandes grupos. Por una parte las que se
Por otra parte estn las que se centran en caractersticas de tipo funcional.
10
Sin embargo el responsable que permite la identificacin selectiva con las
corteza cerebral, que es la sede donde se originan los impulsos nerviosos que
sostiene sobre la premisa de que cada individuo exhibe un patrn distintivo y una
realizados hay mejores resultados usando los tiempos de presin de la tecla que
los tiempos de latencia, pero los mejores resultados se obtienen del uso
11
acelerado desde juegos de datos limitados hasta grandes bases de datos del
que es difcil obtener con una simple medida biomtrica. El uso de mltiples
riesgos. Esto incluye una mejora en el nivel de calidad donde todas las medidas
multialgortmico.
mltiples sensores para medir la misma instancia biomtrica (ej. Para la huella
biomtrico.
mapear no solamente la cara, sino tambin los patrones del sistema sanguneo
12
sin la piel. Es una tecnologa no invasiva, que no requiere de contacto fsico, es
puede ser lograda a dos o ms pies de distancia y sin que el usuario tenga que
emisor de luz (LED) y foto detectores de silicio que fueron desarrollados para
mismo ADN. Slo cuatro cidos nucleicos (Adenina, Citosina, Timina y Guanina)
composicin qumica del olor del cuerpo. La principal tarea del reconocimiento
de olor es crear un modelo tan similar como sea posible al modelo humano. Las
13
narices electrnicas/artificiales (ENoses) han sido desarrolladas como un
huella de los labios, movimiento de los labios y forma de los labios. La huella de
los labios es conocida en la ciencia forense por ser diferentes para cada
puede ser usada como una caracterstica o rasgo individual para lograr la
autenticacin.
14
geomtricas de la cara. Existen dos divisiones de este segundo tipo de
cara.
sistema de reconocimiento).
- Sistema con posibilidad de camuflaje (las personas no detectan que son objeto
de un proceso de reconocimiento).
personas con otra que tenga que tratar cientos de miles. A medida que aumenta
15
el tamao del problema, se deben abordar cuestiones operativas de naturaleza
cerrado, y verificacin.
conjunto de crestas o partes donde la piel se eleva sobre las partes ms bajas o
68% de total las minucias presentes en una huella, mientras que las segundas
responden al 32% restante. Debemos notar que las huellas dactilares nacen
16
una misma familia. Asimismo, puntualizaremos que las personas de raza asitica
presentan crestas muy pequeas y finas, hecho que dificulta en gran medida, la
- Sistema no invasivo.
- La gente que trabaja con sus manos (albailes, carpinteros, etc.) pueden
17
Asimismo, la gente que maneja productos qumicos corrosivos puede llegar a
est conformado por una estructura visible en forma de anillo de color, protegido
filamentos, fibras musculares, surcos radiales, etc. Es necesario notar que el iris
centro).
superficie del ojo (no se realiza, por tanto, ningn tipo de reconocimiento a nivel
pasos de forma rigurosa, por considerar stos, de vital importancia dentro del
los contornos exterior e interior del mismo (frontera con la esclertica y la pupila
18
gradiente de intensidad a lo largo de una circunferencia (aprovechando la
(izquierdo) y R (derecho).
una imagen cuadrada (las columnas indican fracciones de radio, mientras que
- Sistema no invasivo.
reconocimiento evaluado.
19
- La deteccin del fraude (por presentacin, por ejemplo, de una foto del iris a
- Elevado coste.
un sistema biomtrico debera prestar igual atencin a todos los aspectos, desde
automtico de personas.
sistema.
20
Las cuestiones legales, puesto que estamos tratando con temas
2.3.15.1.1 Muestra
Resultado de la captura por el sensor correspondiente de un determinado rasgo
2.3.15.1.2 Patrn
Medida de referencia almacenada del usuario, obtenida a partir de las muestras
esos vectores (p. e., los pesos de una Red Neuronal o las probabilidades
2.3.15.1.3 Inscripcin
Proceso en que se aade un nuevo usuario al sistema biomtrico. Entre las
2.3.15.1.4 Operacin
Intento por parte de un usuario de validar o identificar su identidad, puede usar
establecida en el sistema.
2.3.15.2.1 Online
21
Cuando la inscripcin o la clasificacin se realiza en el momento en que es
2.3.15.2.2 Offline
Tanto la inscripcin como las pruebas se realizan con muestras previamente
de las pruebas que se realicen sobre el sistema con un coste pequeo pues se
2.3.16.1 VERIFICACIN
Donde se trata de autenticar la identidad reclamada por el usuario. En este caso
2.3.16.2 IDENTIFICACIN
En este caso se comparan las muestras de entrada al sistema con todos los
comprobar:
22
Que un usuario que reclama de manera implcita (sin dar identidad) o
(identificacin negativa).
desempleo.
no pertenece.
23
2.4 CONCEPTOS BSICOS DE PROCESAMIENTO DE IMGENES
2.4.1 IMAGEN
Una imagen puede ser definida matemticamente como una funcin
bidimensional,
f(x,y), (2.1)
decimos que la imagen es una imagen digital. Una imagen digital se compone de
un nmero finito de elementos, cada uno con un lugar y valor especficos. Estos
24
electromagntico (EM), las mquinas pueden percibir casi el espectro completo,
que los humanos no asociamos con imgenes; como es el caso del ultrasonido,
subjetivos.
ruido, mejora del contraste, y filtros de enfoque. Se caracterizan por que sus
25
2.4.6 PROCESAMIENTO DE NIVEL MEDIO
caracterizan por que sus entradas son generalmente imgenes, pero sus salidas
objetos individuales).
26
f (0,0) f (0,1) f (0, M 1)
f (1,0) f (1,1) f (1, M 1)
F ( x, y )
f ( N 1,0) f ( N 1,1) f ( N 1, M 1)
Figura 4. Representacin matricial de una imagen
en una cuadricula del plano xy, siendo las coordenadas del centro de cada
(tambin indicado por Z2), que es el conjunto de todos los pares ordenados de
elementos (a, b), siendo a y b nmeros enteros pertenecientes a Z. Por tanto f(x,
y) representa una imagen digital si (x, y) son enteros Z x Z y f es una funcin que
asigna un nivel de gris(es decir, un nmero real del conjunto de los nmeros
reales R) a cada par de coordenadas (x, y) distinto. Esta asignacin funcional es,
27
procesamiento digital de imgenes es una prctica comn que estas cantidades
N = 2n , M = 2k (2.2)
G = 2m (2.3)
minsculas, como p y q.
28
Este conjunto de pxeles, denominado los 4-vecinos de p, se representa
por N4(p). Cada pxel est a una unidad de distancia de (x, y), y alguno de los
imagen.
misma.
2.4.9.2 CONECTIVIDAD
establecer los lmites de los objetos y los componentes de reas en una imagen.
una imagen binaria con valores 0 y 1, dos pxeles pueden 4-vecinos pero no
conectividad entre pxeles con valor 1. En una imagen con escala de grises, para
29
ejemplo, 32 a 64, se tiene V = {32, 33, ..., 63, 64}. Se consideran tres tipos de
conectividad:
V.)
distribucin de pxeles mostrada en la fig. 5(a). Para V = {1}, los caminos entre 8-
vecinos del pxel central se muestran con lneas discontinuas en la fig. 5(b).
30
Dos subconjuntos de la imagen, S1 y S2, son adyacentes si algn pxel de S1 es
Donde (x0, y0) = (x, y) y (xn, yn) = (s, t), (xi, yi) es adyacente a (xi-1, yi-1), 1 <= i <=
dir que p est conectado con q dentro de S si existe un camino desde p hasta q
Por tanto, cualquier par de pxeles de una misma componente conexa estn
automatizado de la imagen.
31
0 1 1 0 1---1 0 1---1
0 1 0 0 1 0 0 1 0
0 0 1 0 0 1 0 0 1
forma que resulte ms adecuada que la original para una aplicacin especfica.
para cada problema hay una tcnica. As por ejemplo, un mtodo que sea muy
para mejorar las imgenes de Marte trasmitidas por una sonda espacial.
32
que operan directamente sobre los pxeles. Las funciones de procedimiento de la
es un operador que acta sobre f , definido en algn entorno de (x, y). Adems T
puede operar sobre un conjunto de imgenes de entrada, como por ejemplo para
implementacin.
g depende slo del valor de f en el punto (x, y), y T se convierte en una funcin
forma:
s = T(r) (2.8)
de gris de f(x, y) y g(x, y) en cada punto (x, y). Por ejemplo, si T(r) tiene la forma
lmite, T(r) produce una imagen de dos niveles (binaria). Algunas tcnicas de
una imagen depende slo del nivel de gris en ese punto, las tcnicas de esta
pequea distribucin bidimensional (de, por ejemplo, 3 x 3), en la que los valores
detectar los bordes de una escena o para modificar el aspecto, otra funcin de
34
los filtros es para la eliminacin de ruido de la imagen. Al hablar de un filtro nos
Los filtros lineales se basan en los conceptos que afirman que la funcin
lineal son transformadas de Fourier inversas una de otra. Los otros filtros
frecuencias (es decir, el filtro deja pasar las frecuencias bajas). Las
35
emplean para la restauracin de imgenes y son de escaso inters para la
mejora de la imagen.
paso bajo, paso alto y paso banda con simetra circular, en el dominio de la
inferior son coordenadas espaciales. Los perfiles de la fila inferior pueden ser
empleados como indicacin para especificar los filtros espaciales lineales. Sin
punto determinado por z1, z2, ..., z9, la respuesta de una mscara lineal es
R = w1 z1 + w2 z2 + ... + w9 z9 (2.9)
w4 w5 w6
w7 w8 w9
nivel de gris del pxel situado en (x, y) se reemplaza por R. Luego se mueve la
que estn colocados en los bordes de la imagen. Tambin es habitual crear una
cada vez los valores de cada pxel, ya que as se evita el empleo de nivel de gris
eficazmente con un filtro no lineal cuya funcin bsica sea la de calcular el valor
medio del nivel de gris en el entorno en que se coloca el filtro. Otros ejemplos
37
.... , 9}), que se emplea para buscar los puntos ms brillantes de una imagen, y
algo borrosa y tambin para reducir el ruido. Es til que la imagen aparezca algo
imagen son tiles para aumentar el contraste de imgenes con histogramas muy
concentrados.
2.4.14 SEGMENTACIN
Segmentar una imagen es desglosarla en sus componentes,
dependiente de la aplicacin.
38
constituye una herramienta de extraccin de componentes de imagen tiles en la
grande, y luego erosin es hacerlo mas chico. La erosin saca los outlayers del
objeto.
de dichos objetos.
lineales sobre las imgenes, es decir, aquellas operaciones en las que cada
valor de salida es una combinacin lineal de todos los pxeles de la entrada. Las
otras caractersticas.
PVR : dominioY(R) R
Definida por:
_____
PVR(y) = i(x, y), (x, y) R (2.10)
PHR : dominioX(R) R
Definida por:
_____
PHR(x) = i(x, y), (x, y) R (2.11)
40
En las figuras 8 y 9 se muestran algunos ejemplos de proyecciones verticales y
El primer hecho notable, aunque, por otra parte, bastante evidente es que
obviando las imgenes con varios canales. No resulta difcil extender el concepto
41
de seal al caso multicanal y, consecuentemente, las proyecciones de imgenes
con ms de un canal. Sin embargo, la mejora que pueda suponer esta extensin
muestran las proyecciones de los tres canales de una imagen en color. Se puede
apreciar que, aunque las tres seales resultantes toman valores dispares, todas
42
realizar ciertas computaciones, como el reconocimiento de objetos, en menos de
0.2 segundos, supone una rapidez de clculo muy superior al ordenador actual
l.
2.- Las seales se transmite entre las neuronas a travs de conexin sinpticas.
3.- Cada enlace de conexin entre dos unidades de proceso tiene asociado un
peso (llamado peso sinptico) que tiene un efecto multiplicador sobre la seal
transmitida.
Dinmica de la Computacin que nos expresa el valor que toman las unidades
43
su naturaleza adaptativa, donde el aprendizaje con ejemplos sustituye a la
Los pesos de las conexiones (pesos sinpticos) entre las unidades de proceso
su capacidad computacional.
1. No linealidad.
entradas y salidas.
3.- Adaptabilidad: Acomodan (adaptan) sus pesos sinpticos a los cambios del
entorno.
5.- Tolerancia a fallos: Por una parte, si una neurona o un enlace de la red
afectada. Una persona nace con unos 100 billones de neuronas y a partir de los
44
Por otra parte, una red es capaz de reconocer seales de entrada diferentes a
45
Se realiza la suma ponderada de las seales que produce un nivel de
actividad,
o negativo respectivamente.
2.6.3 APRENDIZAJE
La habilidad de aprender es una prueba fundamental de inteligencia. Una
aprendizaje) y el competitivo.
46
2.6.3.1 APRENDIZAJE SUPERVISADO
ajustar los parmetros de la red, de tal forma que se abstraiga una relacin entre
generalizar. Esto significa que una red entrenada podra clasificar datos como los
partes:
neuronal.
47
La Figura 11 muestra una evolucin tpica del error de un set de entrenamiento
detenido en el mnimo del error del set de validacin. En este punto la red
entrenamiento no supervisado.
48
Se utiliza en RNA auto-organizables, las cuales agrupan valores similares
de salida deseados. La red modifica sus pesos de tal forma que los valores de
red compiten entre si para volverse activas (dispararse). Mientras que en una red
visualizarse en la figura:
caso de una sola neurona contiene solo un elemento, w sigue representando los
pesos y la nueva entrada b es una ganancia que refuerza la salida del sumador
neurona tenga que resolver; aunque las RNA se inspiren en modelos biolgicos
salida, as que se encontrarn modelos artificiales que nada tienen que ver con
este argumento es mayor que uno. Esta funcin crea neuronas que clasifican las
(2.12)
50
Figura 13. Funciones de transferencia unipolar
(2.13)
51
2.6.4.2 FUNCIN DE TRANSFERENCIA LINEAL (PURELIN)
La salida de una funcin de transferencia lineal es igual a su entrada,
(2.14)
que emplean esta funcin de transferencia son utilizadas en la red tipo Adaline.
expresin
(2.15)
52
Figura 16. Funciones de transferencia sigmoidal
53
Figura 17. Funciones de transferencia
2.6.5 PERCEPTRN
el caso de un perceptrn con dos entradas deber poder trazarse una nica
lnea que separe las dos clases que permite identificar el perceptrn.
54
2.6.6 RED BACKPROPAGATION
Red Neuronal Artificial en el cul, la red aprende la relacin que existe entre los
supervisado.
despus se entrena la red con los patrones obtenidos hasta que el porcentaje de
55
La capa de salida tiene la funcin de colectar y almacenar las respuestas
identifiquen en el problema.
ocultas, llamadas as por no poseer ninguna comunicacin directa con los datos
no-linealidad a la red.
la primera capa a travs de las capas superiores de la red, hasta generar una
salida, hacia todas las neuronas de la capa oculta que contribuyen directamente
a la salida. Sin embargo las neuronas de la capa oculta solo reciben una fraccin
relativa que haya aportado cada neurona a la salida original. Este proceso se
repite, capa por capa, hasta que todas las neuronas de la red hayan recibido una
neurona, para hacer que la red converja hacia un estado que permita clasificar
56
modo que las distintas neuronas aprenden a reconocer distintas caractersticas
del espacio total de entrada. Despus del entrenamiento, cuando se les presente
un patrn arbitrario de entrada que contenga ruido o que est incompleto, las
para reconocer, para la cual han sido entrenadas. Varias investigaciones han
tiende a desarrollar relaciones internas entre neuronas con el fin de organizar los
no haya visto antes, y la red clasificar estas entradas segn las caractersticas
figura:
57
Figura 19. Estructura de una Red Multicapa
Puede notarse que esta red de tres capas equivale a tener tres redes tipo
pesos de la segunda y as similarmente para todas las capas que incluya una
58
Figura 20. Red Neuronal con 3 Capas
siguiente forma:
este proceso se debe inicialmente tener definida la topologa de la red, esto es:
que conforma la red. Es importante recalcar que no existe una tcnica para
determinada por la experiencia del diseador, el cual debe cumplir con las
salida, la cual se compara con los patrones objetivo o salidas deseadas para
proceso de aprendizaje.
red con una capa de entrada, una capa oculta y una capa de salida y luego se
60
Figura 21. Representacin de una RNA.
(2.17)
entrada esta dada por la ecuacin (2.18), ntese que la entrada neta es el valor
(2.18)
oculta.
componentes.
Cada una de las neuronas de la capa oculta tiene como salida ao j, dada por la
ecuacin (2.19):
(2.19)
Las salidas ao j de las neuronas de la capa oculta (de m componentes) son las
62
(2.20)
ws kj: Peso que une la neurona j de la capa oculta con la neurona k de la capa de
(2.21)
(2.22)
(2.23)
descrito en (2.25):
(2.25)
El error que genera una red neuronal en funcin de sus pesos, genera un
direccin negativa del gradiente para obtener el mayor decremento del error y de
(2.26)
64
El gradiente negativo de ep2 se denotara como y se calcula como la
En la capa de salida el gradiente negativo del error con respecto a los pesos es:
(2.27)
funcin explcita de los pesos de la red, de la ecuacin (2.20) puede verse que la
puede verse que nsk esta explcitamente en funcin de Wskj, considerando esto se
(2.28)
65
(2.29)
salida.
entrada neta.
(2.21) se obtiene:
(2.30)
utilizadas en este tipo de red deben ser continuas para que su derivada exista en
todo el intervalo, ya que el trmino fs(ns k ) es requerido para el clculo del error.
las siguientes:
logsig:
(2.31)
66
tansig:
(2.32)
purelin:
(2.33)
De la ecuacin (2.30), los trminos del error para las neuronas de la capa de
(2.34)
aprendizaje desde las capas ms internas hasta llegar a la entrada; con base en
(2.35)
67
Para calcular el ltimo trmino de la ecuacin (2.35) se debe aplicar la
(2.36)
(2.37)
(2.38)
68
(2.39)
Los trminos del error para cada neurona de la capa oculta esta dado por la
oculta:
(2.40)
Luego de encontrar el valor del gradiente del error se procede a actualizar los
pesos de todas las capas empezando por la de salida, para la capa de salida la
(2.41)
(2.42)
(2.43) y (2.44):
(2.43)
69
(2.44)
Esta deduccin fue realizada para una red de tres capas, si se requiere
realizar el anlisis para una red con dos o ms capas ocultas, las expresiones
superficie de error con incrementos pequeos de los pesos; esto se debe a que
que se est del punto mnimo, con incrementos grandes, se corre el riesgo de
pasar por encima del punto mnimo, con incrementos pequeos, aunque se tarde
nmero pequeo (0.05 a 0.25), para asegurar que la red encuentre una solucin.
Un valor pequeo de significa que la red tendr que hacer un gran nmero de
iteraciones, si se toma un valor muy grande, los cambios en los pesos sern muy
saltar el valor mnimo del error y estar oscilando alrededor de l, pero sin poder
70
error de la red durante la fase de entrenamiento, para garantizar as una rpida
que hagan que la red oscile alejndose demasiado del valor mnimo. Algo
alguno de los mnimos locales que pueden existir en la superficie del error del
encuentre sea global, una vez la red se asiente en un mnimo sea local o global
cesa el aprendizaje, aunque el error siga siendo alto. En todo caso, si la solucin
mnimo.
utilizar una tcnica llamada momento. Este trmino adicional tiende a mantener
71
los cambios de peso en la misma direccin. Las ecuaciones de cambio de pesos
(2.45)
(2.46)
pasado por un mnimo y los pasos deben ser menores para poder alcanzarlo.
72
3) Se calcula las salidas actuales de la red con las ecuaciones (2.18), (2.19),
(2.20) y (2.21).
4) Se calculan los trminos error para todas las neuronas, empezando con las de
la capa de salida y siguiendo con las de la capa oculta, mediante las ecuaciones
(2.24) y (2.25).
6) El proceso se repite a partir del punto 2) hasta que el trmino error expresado
patrones aprendidos.
73
III. METODOLOGA EMPLEADA
con una cmara webcam, para reunir una gran base de datos de imgenes que
PROCESO Y
SISTEMA DIGITAL DE
ACONDICIONAMIENTO: CAPTURA DE PROCESAMIENTO:
IMAGEN DE IMAGEN: COMPUTADORA
PERSONA WEBCAM PERSONAL
PRESENTACIN DE
RESULTADOS:
PERSONA
IDENTIFICADA
74
3.1 PROCESO Y ACONDICIONAMIENTO: IMAGEN DE PERSONA
En procesamiento digital de imgenes, para un mismo proceso pueden
noche, ni tampoco es lo mismo procesar en este caso un rostro con fondo blanco
que con fondo donde hallan diferentes objetos. Esto hace que los algoritmos
procesamiento.
del da. Las luces sern los 6 leds de la misma webcam. Cada led produce luz
El sistema est hecho para segmentar el rostro de una sola persona, hay
75
3.2 CAPTURA DE IMAGEN: WEBCAM
La cmara se escogi por su mejores caractersticas que se mencionan
dentro de las webcam y por que tiene incorporado los 6 leds de iluminacin
30 imgenes/segundo
USB
24 bits color
Micrfono integrado
Marca: Deluxe
76
3.3 SISTEMA DIGITAL DE PROCESAMIENTO: COMPUTADORA
PERSONAL
El sistema digital que se emplea para todo el procesamiento es una
PC Pentium IV
Disco duro de 10 GB
Puerto USB
Lectora de CD
77
IMAGEN
CAPTURADA
UBICACIN Y
SEGMENTACIN
DEL ROSTRO DE
UNA PERSONA
MEJORAMIENTO
DE IMAGEN
DEL ROSTRO
EXTRACCIN DE
CARACTERSTICA
O PATRON DEL
ROSTRO
RECONOCIMIENTO ENTRENAMIENTO
DEL PATRON DE PATRONES
PERSONA
IDENTIFICADA
Visual Basic 6.0. Una herramienta de ayuda para analizar las imgenes es el
78
software Matlab versin 7. La razn de emplear visual Basic 6.0, es que su
Otro objeto necesario para el desarrollo del trabajo son las APIs
Las APIs nos sirven como complemento de Visual Basic, ya que este
lenguaje de programacin no nos ofrece las mismas posibilidades que las APIs,
una de ellas es que podemos crear nuestros propios objetos cuando los
para todo el programa, ya que todas las dems funciones que utilicemos para la
buffer de video, as despus podamos extraer esa informacin del buffer para el
79
anlisis de la imagen. Las imgenes capturadas con la webcam tienen un
imgenes de fondo que para nuestro objetivo no nos interesa. La siguiente etapa
son, el rojo (R), verde (G) y azul (B), cada una de ellas es una matriz de 240 x
320. Como no vamos a segmentar por el color de la piel, no nos interesa trabajar
con las 3 componentes, as que slo utilizaremos una de ellas, la que representa
Inapropiada iluminacin
Expresin facial
Maquillaje y peinado
decir, aquellas operaciones en las que cada valor de salida es una combinacin
lineal de todos los pxeles de la entrada. La tcnica que utilizaremos para ubicar
m( x, y)
y
PV ( y) (3.1)
n
Donde:
For jj = j To j + alto_OJOS
k=k+1
For ii = i To i + ancho_OJOS
Next ii
Next jj
Figura 27. Proyeccin que se busca para localizar la cabeza de una persona
82
Figura 28. Regin de la imagen de la proyeccin figura 27.
una cabeza de una persona y es nuestro indicador que tomamos para localizar
el rostro.
Se ha escogido 220 pxeles de alto para no tomar los bordes superior e inferior
aproximadamente.
83
Figura 29. Proyeccin de la posicin del rostro y elementos faciales
Figura 30. Ventanas sucesivas marcadas por la presencia de la cabeza de una persona
84
En la figura N 31 observamos las proyecciones de las ventanas
sucesivas de la imagen anterior. Se puede ver que las grficas son muy
siguiente:
If (Pv(k) Pv(k 20)) > 35 And (Pv(k) Pv(k + 20)) > 35 Then
max1Boo = True
k11 = k
End If
85
Next k
segundo pico mayor que pertenece a los ojos. Obtener ste pico significa
obtener verticalmente donde estn los ojos. Hasta aqu ya tenemos las
los ojos necesitamos hallar el punto medio entre ellos. Para eso obtenemos la
proyeccin horizontal de los 60 pxeles debajo del primer punto mximo, o sea,
32.
punto, podemos decir que hemos hallado las coordenadas de los ojos en el eje
86
Figura 33. Regin obtenida de los ojos
la regin de la cara que es de 101 pxeles de alto, por 88 pxeles de ancho. Esta
87
Ahora, de toda la imagen como se muestra en la figura n 34, nos
interesa trabajar solamente con la regin del rostro, para eso, segmentamos y
Hasta aqu la parte de localizacin del rostro que implica trabajar con
siguientes.
MatLab.hacer [x,y]=meshgrid(1:88,1:101)
MatLab.EnviarMatriz z, arM
MatLab.hacer surf(x,y,z)
88
En la figura n 36, podemos observar la matriz del rostro segmentado, en
caja, forrada de color negro en la parte interna, para que no incida y se refleje la
89
luz ambiental cuando es de da, por lo tanto, independizamos el sistema del da
aislando el proceso.
90
Se puede apreciar que la incidencia de la luz es uniforme, por los costados del
91
Se puede observar que por la presencia de la caja, los algoritmos siguen
funcionando.
92
Figura 44. Ubicacin del rostro
93
Figura 47. Vista de perfil del rostro en matlab
difuminacin de la luz.
94
3.7 RESULTADO DE LAS IMGENES TOMADAS DE DA
95
Figura 50. Regin o ventana ganadora
96
Figura 52. Ubicacin del rostro
97
Figura 55. Vista de perfil del rostro en matlab
resultados en la siguiente etapa, ya que hay que extraer las caractersticas del
rostro y se espera que sean los mismos para un mismo rostro y diferentes para
distintas personas.
98
For j = 1 To Fil Filas
Next
Next
obtenemos la media del histograma. Como referencia trabajamos con una media
For j = 1 To Fil
For i = 1 To col
Next
Next
For j = 1 To Fil
For i = 1 To col
Next
Next
99
Figura 56. Histograma con media 144 de la imagen segmentada obtenida en la noche
Figura 57. Histograma corregido con media 129 de la imagen segmentada obtenida en la
noche
Figura 59. Histograma corregido con media 129 de la imagen segmentada obtenida de
da
100
3.9 EXTRACCIN DE CARACTERSTICAS O PATRN DEL ROSTRO
Para la etapa siguiente que es el entrenamiento de la red neuronal se
rostro. Se podran pasar los valores de los pxeles del rostro segmentado, pero
una buena alternativa, porque los pxeles varan sus valores durante la
imagen, trabajamos con stas para extraer una representacin del rostro, como
Para que las seales resultantes tomen los valores entre 0 y 1 en algn
S (i ) min( s )
normalmin max S (i ) (3.2)
max(s ) min( s )
Donde:
situacin relativa de los elementos faciales, como las distancias entre cejas, ojos
y boca, la forma y tamao de la nariz y los ojos, el grosor de las cejas, las
101
conservan implcitamente buena parte de esta informacin, reducindola a un
transformada del coseno (DCT) sobre las proyecciones. De esta forma, se pierde
entre pxeles, que permite aplicar los procesos de alineamiento. Sea por este o
por otros motivos, el mtodo no obtiene una buena clasificacin en los resultados
de la evaluacin.
2
J. Wilder. Face recognition using transform coding of gray scale projection
projections and the neural tree network. In R. J. Mammone, editor, Artificial
Neural Networks with Applications in Speech and Vision, pages 520536.
Chapman Hall.
102
con la varianza intra-clase debida al paso del tiempo, o los cambios grandes de
iluminacin o pose?
que va a ser el patrn que alimenta a la red neuronal y con tan solo 365
103
A continuacin se presenta el algoritmo que extrae sta informacin.
c=0
For jj = 1 To 3
k=0
For i = 1 To col
k=k+1
Next j
c=c+1
Ptot(c) = Ph(k)
Next i
Next jj
k=0
For j = 1 To Fil
k=k+1
For i = 1 To col
Next i
c=c+1
104
Ptot(c) = Pv(k)
Next j
promedio de cada fila o columna de la imagen. Pero, para que alimente a la red
neuronal, tenemos que normalizar a valores entre +1 y -1. Por cada persona
red es de 0.001. El nmero de ciclos con que aprende la red depende del
105
Esta etapa corresponde a la fase de Entrenamiento de la red, es decir
106
3.11 RECONOCIMIENTO DEL PATRN
Esta etapa es la fase de funcionamiento de la red neuronal, donde se le
presentan los patrones nuevos de entrada, es decir, nuevos rostros y junto con
votos que cada uno de los rostros ha recibido. Seguramente algunos rostros
habrn recibido ms votos que otros, por la respuesta de la red neurona artificial
107
Figura 65. Rostros de la base de datos
108
IV. FUNCIONAMIENTO DEL SISTEMA
El funcionamiento del sistema es muy sencillo. Basta con acercarse a la
el sub men Grabar Rostro, para registrar a las personas. En el men Red
registrar a las personas para que el sistema aprenda a reconocer los patrones.
En el men Acerca De, una descripcin del Autor y versin del sistema.
109
Cuando seleccionamos el sub men Grabar Rostros, obtenemos la
momentos.
N 68, que nos permite capturar y grabar los 7 rostros de cada persona. Las
arriba o abajo. Una vez que tenemos las 7 capturas, presionamos Grabar. Como
las personas que se estn registrando. Cada vez que se ingresa el ltimo
registro de una persona hay que ejecutar la Red Neuronal, para su posterior
reconocimiento.
aprendizaje.
111
Figura 69. Ventana de la red neuronal artificial
Error mnimo para que la Red aprenda mejor los patrones de entrenamiento. A
112
Figura 70. Ventana de parmetros
113
V. RESULTADOS OBTENIDOS
en las imgenes de prueba de las figuras n 71, que pertenecen a una base de
datos3 de Internet y figuras n 72, que pertenecen a una base de datos propia.
3
http://www.cam-orl.co.uk/facedatabase.html
115
Se utiliz un total de 46 imgenes4, de las cuales en 44 (ms del 95.65%)
(cerca del 4.34%) fall la localizacin de los rostros o existi una localizacin
incorrecta.
4
Base de Datos formada por imgenes de Internet, familiares y alumnos de la Universidad
Nacional de Piura Facultad de Ciencias.
116
5.2 RESULTADOS DEL RECONOCIMIENTO DE PERSONAS
Para la verificacin de resultados hemos preparado una batera de
cada uno. Las imgenes son en color y tienen una dimensin de 240 filas por
320 columnas. Para el procesamiento se utiliza el canal rojo con 256 niveles de
notacin5:
Seg.)
5
Reconocimiento Tridimensional de Caras: http://www.frav.es/ecabello/capitulo5.pdf
117
Figura 73. Persona reconocida por el sistema
almacenado.
118
Tabla 1. Valores de las neuronas de salida
representa las personas registradas, pero como cada persona tiene 7 tomas,
fila 14 tiene los valores ms altos, pero se contabilizan siempre y cuando sean
mayores que el umbral 0.5. El mayor valor es 1. Para ste ejemplo tenemos que
primera toma con el patrn modelo del 14 avo registro perteneciente a Juan
Vemos que las seales no son iguales, pero si muy parecidas, esta
120
neuronal artificial. Si el valor es el ms alto, o sea 1, las grficas deberan ser
Figura 75. Comparacin patrn de entrada con patrn modelo de la misma persona
Figura 76. Comparacin patrn de entrada con patrn modelo de diferente persona
121
Figura 77. Persona reconocida por el sistema
observar que de las 10 capturas, son 8 los valores mayores a 0.5 (8 votos) y
122
Tabla 2. Valores de las neuronas de salida
123
Figura 78. Grfica 3d de activacin de las neuronas
Figura 79. Comparacin patrn de entrada con patrn modelo de la misma persona
124
Figura 80. Comparacin patrn de entrada con patrn modelo de diferente persona
previamente 15 de ellas, dejando los otros 10 sin registrar para ver si el sistema
125
CONCLUSIONES Y RECOMENDACIONES
de datos.
partes para poder describir cada una de ellas (regin de los ojos, regin de la
que sea nica para cada rostro. De esto depende en gran medida el xito de la
fidelidad de identificacin.
controladas, ya que son muy sensibles a cambios de punto de vista, posicin del
sujeto o de las cmaras, iluminacin, ya que afecta los valores de los pxeles,
reconocimiento de caras es que han sido probados con bases de datos que
127
debera ser capaz de examinar un sistema que estuviera en recintos con gran
posicin, escala y rotacin del rostro. Hay diferentes mtodos que podran
Otra recomendacin, sera abordar este sistema para dar una solucin
128
BIBLIOGRAFA
Libros
[2] MARTN DEL BRO Bonifacio, SANZ MOLINA Alfredo. Redes Neuronales
[4] ISASI VIUELA Pedro, GALVN LEN Ins M.. Redes Neuronales
129
[12] JACINTO SANDOVAL, Juan Manuel. Visual Basic para Ingenieros. 2005.
Artificial Neural Networks with Applications in Speech and Vision, pages 520
Pginas Web
http://es.wikipedia.org/wiki/Procesamiento_digital_de_im%C3%A1gene
http://www.fisica.edu.uy/oalm/procimag.html
http://omega.ilce.edu.mx:3000/sites/ciencia/volumen2/ciencia3/084/htm/sec_9
.htm
http://www.monografias.com/trabajos/redesneuro/redesneuro.shtm
http://www.electronica.com.mx/neural/
http://ece.uprm.edu/~hcaituiro/personal/writings/bwc/332.htm
http://www.homini.com/tecnologas.htm
[24] X. Lu. Image analysis for face recognition, 2004. Disponible pblicamente
en la URL: http://www.cse.msu.edu/lvxiaogu/publications/publications.htm.
131
VI. ANEXOS
Declaracin de Variables
Option Explicit
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As
Any) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As
Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As
132
Cdigo para Captura de Video
Picture1.Picture = Clipboard.GetData
Clipboard.Clear
For j = 1 To Alto_Imagen
For i = 1 To Ancho_Imagen
DoEvents
Next
Next
Leer_Rostros
Interrumpir = False
oldrms = 0
Generalizada"
Momentum"
Conjugado"
'Unidades de proceso
133
lblCaracter.Caption = "APRENDIENDO!"
lblCicloMax = NumCiclos
cmdEntrenar.Enabled = False
cmdStop.Enabled = True
picGrafico.Cls
'****************************************************
Aleatorizar
'EMPIEZA EL ENTRENAMIENTO
ReDim Entrada(n_in)
ReDim Oculta(n_hide)
ReDim Salida(n_out)
ReDim Gamma(n_out)
ReDim delta(n_out)
ReDim rmsparcial(0)
ReDim rmsparcial(n_casos)
MousePointer = 11
picGrafico.ScaleMode = 3
picGrafico.ScaleHeight = 100
picGrafico.ScaleWidth = NumCiclos
'*****************************************************
134
For ciclo = 1 To NumCiclos '(goodpats < n_casos)
rmsparcial(caso) = 0
feedforward
BackPropagation
'DoEvents
Next caso
oldrms = rms
'********
lblCiclo.Caption = ciclo
lblGoodpats.Caption = goodpats
Almacenar
cmdEntrenar.Enabled = True
135
cmdStop.Enabled = False
Exit Sub
End If
DoEvents
Next ciclo
Almacenar
cmdEntrenar.Enabled = True
cmdStop.Enabled = False
End Sub
RowCount = n_hide
ColCount = n_in + 1
For j = 1 To RowCount
For i = 1 To ColCount
Matriz(j, i) = wOculta(j, i)
Next i
Next j
GuardarCoef CoefOcult
ReDim Matriz(0)
RowCount = n_out
ColCount = n_hide + 1
136
For j = 1 To RowCount
For i = 1 To ColCount
Matriz(j, i) = wSalida(j, i)
Next i
Next j
GuardarCoef CoefSalida
lblCaracter.Caption = "LISTO!"
MousePointer = Default
End Sub
Interrumpir = True
cmdEntrenar.Enabled = True
cmdStop.Enabled = False
End Sub
Single, Y As Single)
MousePointer = Default
End Sub
Leer_Rostros
End Sub
137
Private Sub Form_Activate()
Next i
Next j
For i = 0 To 35 Step 35
Next i
Next j
For i = 1 To 15
Next i
For j = 1 To 5
Next j
For k = 1 To 2
Next k
hscRostros.Max = frmDatosPersonales.adoPersonas.Recordset.RecordCount *
hscRostros.Min = 1
End Sub
138
Private Sub Form_Load()
BackProp = True
BackPropMom = False
BackGrad = False
LCSalida = 0.15
LCOculta = 0.15
momentum = 0.3
NumCiclos = 10000
rmsmax = 0.05
lblCicloMax = NumCiclos
cmdStop.Enabled = False
cmdEntrenar.Enabled = True
End Sub
As Single)
End Sub
caso = hscRostros.Value
picRostros.Refresh
For j = 1 To filasImagen
For i = 1 To columnasImagen
139
Im(j, i) = Abs(GetPixel(picRostros.hdc, i, j) Mod 256)
Next i
Next j
Mejorar_Iluminacion
'-----------------------------------------------------------------
c=0
For jj = 1 To 3
k=0
For i = 1 To columnasImagen
k=k+1
Next j
Next i
Maxi = 0
Mini = 500
For k = 1 To columnasImagen
Next k
140
For k = 1 To columnasImagen
c=c+1
PTot(c) = pH(k)
Next k
Next jj
k=0
For j = 1 To filasImagen
k=k+1
For i = 1 To columnasImagen
Next i
Next j
Maxi = 0
Mini = 500
For k = 1 To filasImagen
Next k
For k = 1 To filasImagen
c=c+1
141
PTot(c) = pV(k)
Next k
frmNeurona.Picture7.Cls
For k = 2 To n_in
Next k
frmNeurona.Picture7.Refresh
End Sub
hscRostros_Change
End Sub
frmParametros.Show vbModal
End Sub
Unload Me
Unload frmParametros
End Sub
142
Private Sub picGrafico_MouseMove(Button As Integer, Shift As Integer, x As
Single, Y As Single)
MousePointer = Default
'picGrafico.CurrentX = X
'picGrafico.CurrentY = Y
End Sub
n_casos = frmDatosPersonales.adoPersonas.Recordset.RecordCount * 7
n_out = n_casos
c=0
For jj = 1 To 3
k=0
For i = 1 To columnasImagen
k=k+1
143
pH(k) = pH(k) + Im(j, i)
Next j
Next i
Maxi = 0
Mini = 500
For k = 1 To columnasImagen
Next k
For k = 1 To columnasImagen
c=c+1
PTot(c) = pH(k)
Next k
Next jj
k=0
For j = 1 To filasImagen
k=k+1
For i = 1 To columnasImagen
Next i
144
Next j
Maxi = 0
Mini = 500
For k = 1 To filasImagen
Next k
For k = 1 To filasImagen
c=c+1
PTot(c) = pV(k)
Next k
frmNeurona.Picture7.Cls
For k = 2 To n_in
Next k
frmNeurona.Picture7.Refresh
For i = 1 To n_in
patrones(caso, i) = PTot(i)
Next i
Next caso
End Sub
145