You are on page 1of 98

Estudio de t

ecnicas de caracterizaci

on de la figura
humana, para su posible aplicaci

on a problemas de
reconocimiento de g

enero
Universitat Jaume I
Autor:
Alejandro Mateo Ingelmo
Supervisado por:
Ra

ul Montoliu Col

as
Castell on, 25 de mayo de 2009
Resumen
Este proyecto consiste en el estudio y desarrollo de tecnicas de reconocimiento
de patrones para discernir el genero de una persona. Partiendo de una fotografa en
la cual la persona est a centrada en la imagen, el algoritmo debe inferir el genero de
dicha persona mediante tecnicas de reconocimiento de patrones.
Los objetivos principales que motivan este proyecto son: El estudio de tecnicas
de extraccion de caractersticas para el reconocimiento de genero y la elaboraci on de
ideas para futuras investigaciones en este ambito. El estudio de tecnicas de extraccion
de caractersticas consiste en utilizar algoritmos utilizados en problemas similares
y adaptarlos y modicarlos a este problema. En base a la informaci on obtenida
del proyecto, se pueden idear vas de desarrollo que sirvan para orientar a trabajos
posteriores.
Para la consecuci on de dichos objetivos se siguio una metodologa cclica de
desarrollo, que consiste en un proceso repetitivo de dise no, implementaci on, test y
evaluacion de resultados. Una vez implementada una versi on del algoritmo, se reali-
zan los test y se eval uan los resultados obtenidos. De esos resultados se extraen las
conclusiones que permiten enfocar una mejora del algoritmo o una implementacion
de una tecnica nueva, repitiendo el ciclo tantas veces como sea requerido.
En concreto, en este proyecto se han implementado tres versiones: la primera,
que usa histogramas de las orientaciones del gradiente para obtener las caractersti-
cas de la imagen; la segunda, que aplica un enfoque local al estudio de la imagen
y por ultimo; la tercera, que emplea el algoritmo Local Binary Patterns para ob-
tener las caractersticas de la imagen. Los resultados obtenidos muestran que con
las versiones implementadas no se obtiene una solucion efectiva al problema, pero si
permiten alcanzar el objetivo marcado, que no es otro que vericar el uso de ambos
algoritmos. Con el n de evitar conclusiones erroneas, se someti o a las implemen-
taciones diferentes pruebas para vericar su correcto funcionamiento, descartando
errores de implementacion.
Descriptores
Reconocimiento de patrones,Vision por computador, HOG, Knn, Biometra
iii
iv

Indice general
1. Introducci on 1
1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1. Vis on por computador . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2. Reconocimiento de patrones . . . . . . . . . . . . . . . . . . . 5
1.2.3. Biometra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.4. Histograma de gradientes orientados . . . . . . . . . . . . . . 7
1.2.5. Algoritmo KNN . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6. Editado de Wilson . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.7. Local Binary Patterns . . . . . . . . . . . . . . . . . . . . . . 9
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Consideraciones previas sobre el problema . . . . . . . . . . . . . . . 9
1.5. Vista previa del trabajo realizado . . . . . . . . . . . . . . . . . . . . 10
1.6. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7. Organizaci on del documento . . . . . . . . . . . . . . . . . . . . . . . 14
2. Planicaci on 17
2.1. A priori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1. Analisis y planicacion . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2. Proceso de desarrollo . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3. Revision nal del proyecto . . . . . . . . . . . . . . . . . . . . 19
2.2. A posteriori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3. Matlab / PRTools 25
3.1. Introducci on a Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2. Conceptos en el procesamiento de imagenes . . . . . . . . . . . . . . 26
3.3. Rutinas de lectura y escritura de im agenes . . . . . . . . . . . . . . . 27
3.4. Funciones dedicadas a la conversi on de im agenes . . . . . . . . . . . . 29
3.5. Funciones para la extracci on de bordes . . . . . . . . . . . . . . . . . 29
3.6. Librera PRTools para el reconocimiento de patrones . . . . . . . . . 30
v
vi

INDICE GENERAL
4. Descripcion del proyecto 35
4.1. Analisis y planicacion . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1. Determinar el ambito del proyecto . . . . . . . . . . . . . . . . 37
4.1.2. Denir herramientas a utilizar . . . . . . . . . . . . . . . . . . 37
4.1.3. Denicion de objetivos . . . . . . . . . . . . . . . . . . . . . . 37
4.1.4. Estudio de investigaciones previas y tecnologas de desarrollo . 38
4.1.5. Estudio y planicaci on temporal de tareas . . . . . . . . . . . 38
4.1.6. B usqueda e instalacion del SW requerido . . . . . . . . . . . . 39
4.2. Desarrollo versi on inicial . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.2. Implementaci on . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . 53
4.3. Desarrollo mejora 1, editado de Wilson . . . . . . . . . . . . . . . . . 59
4.3.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2. Implementaci on . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . 61
4.4. Desarrollo mejora 2, enfoque local . . . . . . . . . . . . . . . . . . . . 63
4.4.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.2. Implementaci on . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.4.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . 69
4.5. Desarrollo mejora 3, Local binary patterns . . . . . . . . . . . . . . . 75
4.5.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.5.2. Implementaci on . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.5.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . 78
4.6. Revisi on del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.1. Proceso de comprobaci on . . . . . . . . . . . . . . . . . . . . . 81
4.6.2. Evaluaci on global de los resultados . . . . . . . . . . . . . . . 82
4.6.3. Futuras vas de investigaci on . . . . . . . . . . . . . . . . . . . 83
5. Conclusiones 85
Bibliografa 87

Indice de guras
1.1. Sistema de control biometrico por reconocimiento de rostro. . . . . . . 2
1.2. Identicacion del protagonista mediante el iris, en Minority Report. . 3
1.3. Esquema de relaciones entre vision por computadora y otras areas
anes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Autenticacion biometrica en la entrada de unas instalaciones de ocio. 6
1.5. Ejemplo del algoritmo Knn. . . . . . . . . . . . . . . . . . . . . . . . 7
1.6. Ejemplo conjuntos sin editado de Wilson. . . . . . . . . . . . . . . . . 8
1.7. Extraccion de caractersticas de una imagen . . . . . . . . . . . . . . 10
1.8. Ejemplo de imagenes ambiguas. . . . . . . . . . . . . . . . . . . . . . 11
1.9. Algunas imagenes utilizadas en el proyecto. . . . . . . . . . . . . . . . 11
1.10. Metodologa seguida en el proyecto. . . . . . . . . . . . . . . . . . . . 12
1.11. Diferencias siologicas entre hombres y mujeres. . . . . . . . . . . . . 13
1.12. Esquema del proceso entrenamiento. . . . . . . . . . . . . . . . . . . . 13
1.13. Esquema del proceso clasicacion. . . . . . . . . . . . . . . . . . . . . 14
1.14. Ventanas de extraccion. . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1. Diagrama de Gantt a priori. . . . . . . . . . . . . . . . . . . . . . . . 21
2.2. Diagrama de Gantt a posteriori de las primeras 34 tareas. . . . . . . 22
2.3. Diagrama de Gantt a posteriori de las 29 tareas restantes tareas. . . . 23
3.1. Representacion de una imagen a escala de grises en Matlab . . . . . . 27
3.2. Representacion de una imagen a color RGB en Matlab . . . . . . . . 33
3.3. Resultado de la aplicacion del algoritmo canny . . . . . . . . . . . . . 34
3.4. Graca de los distintos clasicadores. . . . . . . . . . . . . . . . . . . 34
4.1. Tareas principales del proyecto. . . . . . . . . . . . . . . . . . . . . . 38
4.2. Muestra de imagenes de la BBDD . . . . . . . . . . . . . . . . . . . . 41
4.3. Esquema de modulos del proyecto . . . . . . . . . . . . . . . . . . . . 42
4.4. Conversion de una imagen a valores comprendidos entre 0 y 1. . . . . 44
4.5. Preproceso de una imagen. . . . . . . . . . . . . . . . . . . . . . . . . 45
4.6. Ejemplo de obtencion del vector de caractersticas. . . . . . . . . . . . 46
vii
viii

INDICE DE FIGURAS
4.7. Calculo del valor de la imagen integral. . . . . . . . . . . . . . . . . . 47
4.8. Normalizacion de una imagen. . . . . . . . . . . . . . . . . . . . . . . 48
4.9. Variaciones del gradiente. . . . . . . . . . . . . . . . . . . . . . . . . 49
4.10. Calculo del gradiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.11. Aplicacion de un vector de pesos a los pixels de una determinada la
en al imagen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.12. Proceso detallado del proyecto. . . . . . . . . . . . . . . . . . . . . . . 51
4.13. Resultados de la version inicial sin pos-proceso del vector. . . . . . . . 55
4.14. Resultados de la version inicial con normalizacion del vector. . . . . . 56
4.15. Resultados de la version inicial con normalizacion y umbralizacion
del vector. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.16. Resultado del editado de Wilson. . . . . . . . . . . . . . . . . . . . . . 59
4.17. Seleccion del editado de Wilson. . . . . . . . . . . . . . . . . . . . . . 60
4.18. Resultados con el conjunto de entrenamiento editado. . . . . . . . . . 62
4.19. Transformacion de la estructura de vectores. . . . . . . . . . . . . . . 64
4.20. Procesado de los vectores en versiones anteriores. . . . . . . . . . . . 65
4.21. Procesado de los vectores actualmente. . . . . . . . . . . . . . . . . . 66
4.22. Resultados de la version local para valores de sigma entre 0.5 y 4.5 . 69
4.23. Resultados de la version local para valores de sigma entre 5.5 y 9.5 . 70
4.24. Resultados de la version local para valores de tamVentanaX entre 12
y 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.25. Resultados de la version local para valores de tamVentanaX entre 20
y 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.26. Resultados de la version local para valores de desplazamiento entre 2
y 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.27. Resultados de la version local para valores de desplazamiento entre 10
y 16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.28. Procesado de pixeles con local binary patterns. . . . . . . . . . . . . . 75
4.29. Esquema de modulos para la version LBP. . . . . . . . . . . . . . . . 76
4.30. Resultados de la version LBP para valores de sigma entre 0.5 y 4.5 y
de tamVentanaX entre 4 y 32 . . . . . . . . . . . . . . . . . . . . . . 79
4.31. Resultados de la version LBP para valores de desplazamiento entre 4
y 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
4.32. Gradiente medio de las imagenes en la BBDD. . . . . . . . . . . . . . 81
Captulo 1
Introducci on
Contenido
1.1. Motivacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2. Conceptos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1. Vison por computador . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2. Reconocimiento de patrones . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.3. Biometra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.4. Histograma de gradientes orientados . . . . . . . . . . . . . . . . . . 7
1.2.5. Algoritmo KNN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.6. Editado de Wilson . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.7. Local Binary Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.4. Consideraciones previas sobre el problema . . . . . . . . . . . . . 9
1.5. Vista previa del trabajo realizado . . . . . . . . . . . . . . . . . . 10
1.6. Antecedentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7. Organizacion del documento . . . . . . . . . . . . . . . . . . . . . . 14
1
2 CAP

ITULO 1. INTRODUCCI

ON
Este proyecto consiste principalmente en el estudio de tecnicas de extracci on de
caractersticas para reconocer el genero de una persona centrada en una imagen.
Dichas tecnicas ser an las utilizadas en problemas similares, con sus pertinentes mo-
dicaciones. A continuacion se realizar a una aproximaci on para conocer a grosso
modolos conceptos claves de este proyecto.
1.1. Motivacion
Las tecnologas biometricas han adquirido gran importancia en los ultimos a nos,
especialmente a raz de los acontecimientos del 11-S de 2001. La preocupaci on por
la seguridad es un tema que ha ido creciendo desde entonces y son cada vez m as
los equipos de seguridad que utilizan la biometra para paliar la falta de seguridad
existente en ciertos entornos.
Uno de los prop ositos mas destacables de la biometra es la identicaci on au-
tom atica de personas por medio del rostro (ver Figura 1.1), iris, voz, huellas dacti-
lares, etc. Los sistemas biometricos tambien tienen un gran peso en cuestiones de
seguridad como se ejemplica seguidamente. Imaginemos por un momento que una
organizaci on terrorista desea atentar contra un edicio gubernamental. Si dicho edi-
cio tuviese un sistema de deteccion de rostros integrado con una base de datos de
terroristas, se podra llegar a prever el atentado antes de producirse. Otro ejemplo,
un preso se escapa de la carcel, con un sistema biometrico en puntos clave de un
ciudad, podra facilitar el arresto de dicho individuo.
Figura 1.1: Sistema de control biometrico por reconocimiento de rostro.
Estos casos han sido llevados al cine de forma muy futurista, como es el caso de
la pelcula Minority Report. Una escena de esta pelcula muestra como un fugitivo
es identicado por camaras de seguridad mediante el iris (ver Figura 1.2). Aunque
1.2. CONCEPTOS 3
parezca un caso impensable, todo apunta a que en un medio plazo no se estar a tan
lejos de ese nivel tecnol ogico.
Figura 1.2: Identicacion del protagonista mediante el iris, en Minority Report.
Dentro de los distintos metodos biometricos, el campo de la identicacion del
genero es muy novedoso. Los argumentos para desarrollar este ambito son variados.
A los directivos de unos grandes almacenes les puede interesar conocer el porcentaje
de hombres y mujeres que entran en sus tiendas para hacer posteriores estudios
de mercado. Tambien se podra integrar este sistema con pantallas din amicas de
anuncios, que pusiesen un anuncio en funci on del genero de la persona que pasa por
la pantalla. Lo que terminara por repercutir directamente en la ecacia del anuncio.
Otra aplicaci on para el uso de tecnicas de identicaci on de genero sera acotar
las b usquedas en Bases de Datos para identicar a las personas. Hay que tener en
cuenta que un sistema de identicaci on autom atico de personas integran Bases de
datos de un tama no muy considerable. Resulta especialmente util reducir el tiempo
de b usqueda pr acticamente a la mitad si conseguimos identicar a priori el genero
del individuo a identicar.
1.2. Conceptos
A continuaci on se explicaran algunos conceptos relacionados con el proyecto que
ayudar an a la comprensi on del resto del documento.
1.2.1. Vison por computador
La Vision articial, tambien conocida como Visi on por Computador (del ingles
Computer Vision) o Vision tecnica, es un subcampo de la inteligencia articial. El
prop osito de la visi on articial es programar un computador para que entienda una
escena o las caractersticas de una imagen.
4 CAP

ITULO 1. INTRODUCCI

ON
Los objetivos tpicos de la vision articial incluyen:
La deteccion, segmentaci on, localizacion y reconocimiento de ciertos objetos
en imagenes (por ejemplo, caras humanas).
La evaluaci on de los resultados (ej.: segmentacion, registro).
Registro de diferentes imagenes de una misma escena u objeto, i.e., hacer
concordar un mismo objeto en diversas im agenes.
Seguimiento de un objeto en una secuencia de imagenes.
Mapeo de una escena para generar un modelo tridimensional de la escena; tal
modelo podra ser usado por un robot para navegar por la escena.
Estimaci on de las posturas tridimensionales de humanos.
B usqueda de im agenes digitales por su contenido.
En la Figura 1.3 se sit ua la visi on por computador respecto a sus areas anes.
Figura 1.3: Esquema de relaciones entre vision por computadora y otras areas anes.
Estos objetivos se consiguen por medio de reconocimiento de patrones, aprendi-
zaje estadstico, geometra de proyecci on, procesado de im agenes, teora de gracos
y otros campos. La vision articial cognitiva esta muy relacionada con la psicologa
cognitiva y la computacion biol ogica.
1.2. CONCEPTOS 5
1.2.2. Reconocimiento de patrones
El reconocimiento de patrones, tambien llamado lectura de patrones, identi-
caci on de guras y reconocimiento de formas es el reconocimiento de patrones en
se nales. No solo es un campo de la inform atica sino un proceso fundamental que se
encuentra en casi todas las acciones humanas.
El punto esencial del reconocimiento de patrones es la clasicaci on. Se requiere
clasicar una se nal dependiendo de sus caractersticas. Se nales, caractersticas y
clases pueden ser de cualquiera forma, por ejemplo se puede clasicar im agenes
digitales de letras en las clases ((A)) a ((Z)) dependiente de sus pixels o se puede
clasicar ruidos de cantos de los p ajaros en clases de ordenes aviares dependiente de
las frecuencias.
El objetivo es clasicar patrones con base en un conocimiento a priori o informa-
ci on estadstica extrada de los patrones. Los patrones a clasicar suelen ser grupos
de medidas u observaciones, deniendo puntos en un espacio multidimensional apro-
piado.
Un sistema de reconocimiento de patrones completo consiste en un sensor que
recoge las observaciones a clasicar, un sistema de extracci on de caractersticas que
transforma la informaci on observada en valores numericos o simbolicos, y un sistema
de clasicacion o descripcion que, basado en las caractersticas extradas, clasica la
medici on.
La clasicaci on utiliza habitualmente uno de las siguientes procedimientos: clasi-
caci on estadstica (o teora de la decisi on), clasicaci on sint actica (o estructural). El
reconocimiento estadstico de patrones est a basado en las caractersticas estadsticas
de los patrones, asumiendo que han sido generados por un sistema probabilstico. El
reconocimiento estructural de patrones esta basado en las relaciones estructurales
de las caractersticas.
Para la clasicacion se puede usar un conjunto de aprendizaje, del cual ya se
conoce la clasicaci on de la informacion a priori y se usa para entrenar al sistema,
siendo la estrategia resultante conocida como aprendizaje supervisado. El aprendiza-
je puede ser tambien no supervisado, el sistema no tiene un conjunto para aprender
a clasicar la informaci on a priori, sino que se basa en calculos estadsticos para
clasicar los patrones.
Unos ejemplos de aplicaciones de reconocimiento de patrones seran: la clasica-
ci on de documentos (por ejemplo: spam/no spam), el reconocimiento de escritura,
reconocimiento de caras humanas y muchas m as. Los dos ultimos ejemplos son repre-
sentativos del analisis de im agenes, un subconjunto del reconocimiento de patrones
que toma im agenes digitales como entradas del sistema.
El reconocimiento de patrones es m as complejo cuando se usan plantillas para
generara variantes. Por ejemplo, en castellano, las frases a menudo siguen el patr on
sujeto-predicado, pero se requiere cierto conocimiento de la lengua para detectar
6 CAP

ITULO 1. INTRODUCCI

ON
el patr on. El reconocimiento de patrones se estudia en muchos campos, incluyendo
psicologa, etologa, informatica y procesamiento digital de se nales.
1.2.3. Biometra
La biometra es el estudio de metodos automaticos para el reconocimiento unico
de humanos basados en uno o m as rasgos conductuales o fsicos intrnsecos. El
termino se deriva de las palabras griegas biosde vida y metronde medida.
La biometra inform atica es la aplicaci on de tecnicas matem aticas y estadsticas
sobre los rasgos fsicos o de conducta de un individuo, para vericar identidades o
para identicar individuos.
En las tecnologas de la informaci on (TI), la autenticaci on biometrica se reere a
las tecnologas para medir y analizar las caractersticas fsicas y del comportamiento
humanas con proposito de autenticaci on.
Figura 1.4: Autenticacion biometrica en la entrada de unas instalaciones de ocio.
Las huellas dactilares, las retinas, el iris, los patrones faciales, las venas de la
mano o la geometra de la palma de la mano, representan ejemplos de caractersti-
cas fsicas (estaticas), mientras que entre los ejemplos de caractersticas del com-
portamiento se incluye la rma, el paso y el tecleo (dinamicas). La voz se considera
una mezcla de caractersticas fsicas y del comportamiento, pero todos los rasgos
biometricos comparten aspectos fsicos y del comportamiento.
Un ejemplo del uso de la biometra se muestra en la Figura 1.4, donde una mujer
es identicada mediante sus huellas dactilares en unas instalaciones de ocio.
1.2. CONCEPTOS 7
1.2.4. Histograma de gradientes orientados
El algoritmo Histograma de gradientes orientados [7] se usa en ambitos como la
visi on por computador y el procesamiento de im agenes con el prop osito de detectar
objetos en una imagen. La esencia de dicho algoritmo es que la forma de un objeto
en una imagen puede ser descrito por medio de la distribucion de los gradientes.
El objetivo principal de esta tecnica es la extracci on de caractersticas de una
imagen. Las caractersticas son extradas teniendo en cuenta los bordes. El proceso de
obtener informaci on de los bordes presentes en una imagen, se consigue calculando
los gradientes y las orientaciones de los pixels. Este proceso ser a explicado m as
extensamente en captulos posteriores.
1.2.5. Algoritmo KNN
El algoritmo KNN (K nearest neighbors)[1] es un metodo de clasicacion super-
visada que sirve para estimar la probabilidad de que un elemento x pertenezca a
la clase C(j) a partir de la informacion proporcionada por el conjunto de prototi-
pos, donde k determina el n umero de vecinos que son contemplados para realizar la
clasicaci on.
En el reconocimiento de patrones, el algoritmo KNN es usado como metodo de
clasicaci on de objetos basado en un entrenamiento mediante ejemplos cercanos en
el espacio de los elementos.
Figura 1.5: Ejemplo del algoritmo Knn.
En la Figura 1.5 se muestra un ejemplo sencillo del funcionamiento de este algo-
ritmo. Supongamos que el elemento que se desea clasicar es el crculo verde. Para
8 CAP

ITULO 1. INTRODUCCI

ON
k = 3 este es clasicado con la clase triangulo, ya que de los 3 vecinos m as cercanos
al crculo verde hay s olo un cuadrado y 2 tri angulos. Si k = 5 este es clasicado
con la clase cuadrado, ya que entre los 5 vecinos m as cercanos hay 2 tri angulos y 3
cuadrados. Las relaciones de vecindad para K = 3 y K = 5 se han destacado en la
Figura mediante dos circunferencias concentricas.
1.2.6. Editado de Wilson
Una vez se tenga el clasicador entrenado, con el algoritmo Knn por ejemplo. Ca-
be la posibilidad de que el conjunto de elementos que se han utilizado para entrenar
al clasicador no sea el m as conveniente. Es posible que algunos de esos elementos
sean algo ambiguos y no sean apropiados para ense nar al clasicador a diferenciar
entre un conjunto u otro.
Un ejemplo es la Figura 1.6(a), en ella se puede ver como los conjuntos marcados
en verde est an fuera de lugar respecto a su clase. Si el clasicador los tiene en cuenta
obtendr a peores resultados ya que se trata de un caso extremo. Otro ejemplo con
m as conjuntos es el 1.6(b), se pueden apreciar nueve conjuntos bien denidos y una
serie de elementos que nos e ajustan a los elementos de su clase y est an dispersos
sin clase denida. Estos son los elementos que el editado de Wilson eliminara.
Figura 1.6: Ejemplo conjuntos sin editado de Wilson.
Por lo tanto se puede resumir que el editado de Wilson [11] elimina del conjunto
de entrenamiento todos los elementos que no representen delignamente a su clase.
1.3. OBJETIVOS 9
1.2.7. Local Binary Patterns
La tecnica Local Binary Patterns [8] se ha empleado en multitud de ocasiones
con exito en problemas de reconocimiento de rostros. Es otro algoritmo para extraer
caractersticas de una imagen. Lo que diferencia una tecnica de extracci on de otra
es el metodo que se sigue para extraer las caractersticas. En este caso, se compara
cada pixel con sus vecinos para conseguir detectar un cambio sustancial entre ellos,
es decir, un borde. A lo largo de este documento se profundizar a m as en este metodo.
1.3. Objetivos
El objetivo principal al que se quiere llegar con este proyecto es estudiar el uso de
metodos de extracci on de caractersticas para la caracterizaci on del genero de huma-
nos presentes en im agenes. En particular, los algoritmos Histograma de gradientes
orientados [7] y Local Binary Patterns [8]. Para cada uno de estos algoritmos, se
desarrollaran sus respectivas implementaciones y se evaluar an sus resultados. Con
dichos resultados se valorar a la conveniencia de dise nar mejoras para los algoritmos,
o en caso contrario de implementar una tecnica nueva. Con todos estos resultados
se podra realizar una valoracion sobre si los algoritmos estudiados son aptos para el
reconocimiento de genero.
Otro objetivo que se plantea para este proyecto es la elaboraci on de ideas y pautas
que sirvan como gua para futuras investigaciones. Gracias a los datos extrados en
este proyecto se estar a en disposicion de redactar conclusiones que ayudar an al
desarrollo de trabajos encaminados hacia este problema.
1.4. Consideraciones previas sobre el problema
La medida del exito de este trabajo depende de lo dedignas que sean las carac-
tersticas extradas de las imagenes. Es decir, si en el caso de estudio se desea obtener
informaci on sobre el perl de una persona, este metodo tendra mayor exito si esa
informaci on representa dicho perl y adem as evita contener informaci on superua.
En la Figura 1.9(a) se muestra una imagen de la que obtenemos un patr on de ca-
ractersticas el cual representa inequvocamente el perl de una persona y ademas,
incluye poca informacion irrelevante para el prop osito del proyecto. Por el contrario,
en la Figura 1.9(b) se puede observar como la informaci on que se obtiene no muestra
el perl de una forma tan obvia y presenta mucha mas informaci on superua.
Para que se entienda mejor este concepto se puede hacer una analoga sobre
el: Dos profesores de instituto quieren hacer una estimaci on de los alumnos que
aprobar an sus asignaturas al nal de curso. El profesor A ha ido anotando (entrena-
miento) por cada alumno de cursos anteriores, su estatura, color de pelo, las horas
10 CAP

ITULO 1. INTRODUCCI

ON
Figura 1.7: Extraccion de caractersticas de una imagen
que dedic o al estudio y su calicaci on (extracci on de caractersticas). El profesor B
sigui o el mismo procedimiento (entrenamiento) pero apunt o solo las horas de estu-
dio y su calicaci on (extraccion de caractersticas). Al nal de curso el profesor B
consigui o un ndice de aciertos en la estimacion de alumnos aprobados m as alto que
el profesor A. Por que ha sucedido esto? La respuesta es muy simple, la estatura
y el color de pelo no tienen relaci on alguna con la calicaci on del alumno. Por lo
que el profesor A est a teniendo en cuenta informaci on superua y eso empeora su
estimaci on.
Cabe la posibilidad de que ninguno de los algoritmos tratados sea el id oneo para
el estudio de la discriminaci on del genero. El problema que se intenta abordar no es
sencillo, hay muchas probabilidades de que los algoritmos junto a sus variantes no
obtengan un buen resultado. Hay que reexionar sobre el hecho de que incluso en
algunas ocasiones, los propios humanos no son capaces de diferenciar el genero de
una persona. No se puede ser ut opico y pensar que se puede elaborar un proceso que
mejore incluso la percepci on humana. A esto hay que a nadir que las im agenes que
conformar an el experimento pueden ser personas de espaldas, personas agachadas,
con ropa gruesa, entre multitudes etc. como se aprecia en la Figura 1.8.
1.5. Vista previa del trabajo realizado
Como ya se ha explicado en apartados anteriores, el objetivo es la evaluaci on
de algoritmos de reconocimientos de patrones para su uso en el reconocimiento del
genero humano. Concretamente se han estudiado dos algoritmos, Histograma de
gradientes orientados [7] y Local Binary Patterns [8] en sus diferentes variantes.
1.5. VISTA PREVIA DEL TRABAJO REALIZADO 11
Figura 1.8: Ejemplo de imagenes ambiguas.
Figura 1.9: Algunas imagenes utilizadas en el proyecto.
La metodologa seguida en el desarrollo del proyecto ha sido un proceso cclico,
representado en la Figura 1.10. En primer lugar, se realiza la tarea de dise no, ya sea
de un algoritmo nuevo o de una variaci on de uno ya implementado. Seguidamente, se
implementa lo que se dise no en la fase anterior. A continuacion, se realizan pruebas
para determinar la efectividad y se interpretan los resultados. Finalmente, teniendo
en cuenta los resultados obtenidos, se plantean junto al tutor nuevas vas de mejora
encaminadas a aumentar el porcentaje de aciertos del programa.
El proceso de reconocimiento se puede separar en dos fases muy diferenciadas.
Por una lado la extracci on de caractersticas de una imagen y por otro lado, la
clasicaci on de una imagen en funci on de sus caractersticas. A continuaci on se
pasar a a explicar mas detalladamente estas tareas.
La extracci on de caractersticas consiste en obtener ciertos valores de una imagen
que puedan describir a la misma. En este caso en concreto, lo que se quiere lograr es
que el perl de la persona que aparece en una imagen quede denido por esos valores.
Estadsticamente los hombres y las mujeres se pueden diferenciar por ciertas zonas
del cuerpo. Por ejemplo, las mujeres suelen tener m as caderas que los hombres, los
hombres, hombros m as anchos que las mujeres etc. (ver Figura1.11).
Gracias a estas diferencias, las caractersticas de la imagen de una mujer tendran
que ser diferentes a las de un hombre y a su vez similares a las caractersticas de otra
mujer y viceversa. Este es el punto clave para el exito del proyecto. Si se consigue
12 CAP

ITULO 1. INTRODUCCI

ON
Figura 1.10: Metodologa seguida en el proyecto.
un algoritmo que extraiga las caractersticas signicativas que ayuden a diferenciar
el genero de las personas, se habr a conseguido dar soluci on al problema. Para este
n es para lo que se utilizan el algoritmos de extracci on de caractersticas.
Una vez que se tienen las caractersticas de una foto surge el problema de como
diferenciar una serie de n umeros de otros para determinar el genero. Aqu es donde
entra en juego el algoritmo Knn mencionado con anterioridad. Este clasicador
necesita de una informacion previa para lograr clasicar un conjunto de datos, el
algoritmo necesita aprender que patron siguen las im agenes de genero masculino y
que patron siguen las de genero femenino. Una vez el clasicador ha sido entrenado
es capaz de inferir si una foto es de mujer o de hombre.
En el Diagrama 1.12 se puede ver el proceso que seguira el clasicador para su
entrenamiento.
Para que posteriormente el clasicador sea capaz de discriminar las imagenes
seg un el genero (ver Figura 1.13).
Como resultado de la metodologa seguida, se han desarrollado los siguientes
algoritmos sujetos a diferentes modicaciones:
1. Implementaci on de la versi on inicial del algoritmo Histograma de gradientes
orientados y de algunas modicaciones del mismo.
1.5. VISTA PREVIA DEL TRABAJO REALIZADO 13
Figura 1.11: Diferencias siologicas entre hombres y mujeres.
Figura 1.12: Esquema del proceso entrenamiento.
2. Aplicar el editado de Wilson al conjunto de im agenes de entrenamiento.
3. Variante de Histograma de gradientes orientados con un enfoque local respecto
a las ventanas de extracci on.
4. Implementaci on del algoritmo Local binary patters [8] para la extracci on de
caractersticas.
M as adelante se explicar a con mas detalles en que consisten estas mejoras y los
resultados obtenidos de ellas.
Los resultados obtenidos han sido satisfactorios desde el punto de vista de los ob-
jetivos marcados. A un as, no ha conseguido ninguna versi on del programa realmente
efectiva. En un principio, se consigui o mejorar el ndice de resultados gradualmente
implementando las mejoras descritas recientemente. Pero cuando se probo la mejora
con el enfoque local, la tasa de aciertos descendi o considerablemente, idem para la
tecnica Local binary patters.
14 CAP

ITULO 1. INTRODUCCI

ON
Figura 1.13: Esquema del proceso clasicacion.
Con estos resultados y para poder obtener unas conclusiones validas, se elabora-
ron una serie de pruebas con el n de descartar errores de programaci on. Y as poder
concluir con veracidad, que los metodos usados no son aptos para el reconocimiento
del genero humano.
1.6. Antecedentes
Este proyecto se ha fundamentado en un proyecto previo, Deteccion de humanos
en imagenes [10]. El cual ha consistido en el desarrollo de metodos para la detecci on
autom atica de humanos en im agenes. A priori es un problema similar, pero con
sucientes diferencias como para que la utilizaci on de algoritmos contemplados en
ese proyecto, no sean ecaces en este.
A su vez, el proyecto Deteccion de humanos en imagenes se fundamenta en el
algoritmo Histograma de gradientes orientados. En el trabajo nombrado se contem-
plaron varias versiones respecto al algoritmo original. En una de ellas se mejoro el
tiempo de ejecucion de la fase de extracci on de caractersticas (la mas costosa). En
la tercera se modic o completamente la fase de extracci on cambiando la losofa
original. En esta ultima modicacion no se utiliza el histograma de gradientes orien-
tados, se emplea otra medida cualitativa, el n umero bordes que aparecen en cada
una de las las de la imagen.
El proyecto Deteccion de humanos en imagenes ha tenido una gran inuencia
para el desarrollo del que nos ocupa. Como base para este trabajo se emple o la
segunda version del trabajo previo pero con algunas modicaciones. En la segunda
versi on de dicho proyecto se utilizan ventanas de extracci on con un ancho menor que
el ancho de la imagen (ver Figura 1.14(a)), mientras que en este proyecto se utilizan
ventanas con el mismo ancho que el de la imagen a procesar (ver Figura 1.14(b)).
1.7. Organizaci on del documento
Este documento se ha dividido en diversas secciones:
Introducci on: Tiene como objetivo hacer una presentaci on del proyecto al
1.7. ORGANIZACI

ON DEL DOCUMENTO 15
Figura 1.14: Ventanas de extraccion.
lector. Se introducen conceptos que en aras a la claridad no se desarrollan en
su totalidad y que se incidir an en ellos en captulos posteriores.
Planicaci on: En este captulo se pretende mostrar la planicaci on seguida en
el proyecto. Por un lado la planicaci on inicial y por otro lado, la planicaci on
real que se ha seguido.
Matlab/PRTools: Una vista previa a las funcionalidades utilizadas en Matlab
para este proyecto y a la librera PRTools.
Descripcion del proyecto: Aqu se explica con detalle todo el proceso de
desarrollo que ha seguido este trabajo.
Conclusiones: Por ultimo, en este captulo se explican las conclusiones a las
que se han llegado desde distintos puntos de vista.
16 CAP

ITULO 1. INTRODUCCI

ON
Captulo 2
Planicaci on
Contenido
2.1. A priori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1. Analisis y planicacion . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2. Proceso de desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3. Revision nal del proyecto . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2. A posteriori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
17
18 CAP

ITULO 2. PLANIFICACI

ON
2.1. A priori
Una vez determinado el proyecto a realizar con el tutor del proyecto, se procedi o a
hacer una planicaci on previa del proyecto a desarrollar. Se realiz o una planicaci on
temporal de cada tarea a desarrollar y del coste temporal que conllevara. De dicho
an alisis se extrajo el diagrama de Gantt representado en la Figura 2.1.
Seg un la planicaci on estimada, el proyecto comenzar a el 16 de Octubre del 2008
y nalizara el 9 de Febrero del 2009. A la hora de planicar las tareas temporalmente
se han tenido en cuenta los diferentes imprevistos que surgen en todo proyecto,
dando la suciente holgura a tareas crticas. El proyecto contara con un total de 300
horas invertidas durante 80 das laborables, manteniendo la siguiente distribuci on
mensual:
Octubre: 4 horas/da
Noviembre: 3 horas/da
Diciembre: 3.5 horas/da
Enero: 4.5 horas/da
Febrero: 3 horas/da
El proyecto se ha dividido en las siguientes tareas:
1. Proceso de analisis y planicacion.
a) Determinar el ambito del proyecto.
b) Establecer las herramientas a utilizar.
c) Denicion de objetivos.
d) Estudio de investigaciones previas.
e) Estudio de tareas a realizar.
f ) Planicacion temporal de tareas.
g) B usqueda e instalacion del SW requerido.
h) Investigaci on de las tecnologas de desarrollo.
2. Proceso de desarrollo
a) Desarrollo cclico.
3. Revision nal del proyecto
a) Reunion con el profesor.
2.1. A PRIORI 19
b) Proceso de comprobacion
c) Evaluaci on global de resultados.
d) Denicion de futuras mejoras.
e) Conclusiones.
f ) Realizacion de la memoria del proyecto.
g) Preparacion de la presentacion.
h) Realizacion de la presentacion del proyecto.
2.1.1. Analisis y planicacion
En este apartado es donde se dene junto al profesor que alcance tendr a el
proyecto, las herramientas a utilizar y que objetivos se quieren llegar a conseguir.
Una importante subtarea de este proceso es la fase de investigacion previa. En ella
se fundamentar an gran parte de las tareas de dise no e implementacion.
2.1.2. Proceso de desarrollo
Esta es la fase m as importante del proyecto. Es donde se implementar a el proyec-
to propiamente dicho. Como ya se ha descrito anteriormente, el proceso de desarrollo
seguir a una metodologa cclica. A priori no se puede conocer el n umero de tareas que
constituyen esta fase. Las tareas comprendidas para las nuevas implementaciones o
modicaciones ser an: dise no, implementaci on, evaluaci on de resultados y propuestas
de mejora.
2.1.3. Revision nal del proyecto
La ultima tarea principal y no por ello la menos importante es la revision nal
del proyecto. En primer lugar, se realizar a una serie de comprobaciones con el n
de validar las implementaciones realizadas. Seguidamente, una de las subtareas de
este proceso es la evaluacion global de resultados. En la que se hace un an alisis
cuidadoso sobre los resultados obtenidos en la fase anterior de desarrollo. Una vez
reexionado sobre los resultados obtenidos se ha planicado una tarea que consiste en
buscar nuevas vas de desarrollo para trabajos futuros. La subtarea conclusiones tiene
como objetivo hacer una valoraci on global del proyecto. Finalmente, como subtareas
ineludibles, se planicaron los procesos de realizacion de memoria, preparacion de
la presentaci on y realizaci on de la presentaci on.
20 CAP

ITULO 2. PLANIFICACI

ON
2.2. A posteriori
Una vez establecida la planicaci on inicial se elaboro el proyecto. En dicho pro-
ceso surgieron inconvenientes que no se contemplaron en la planicaci on a priori.
Uno de los principales contratiempos fue la dicultad en el proceso de implementa-
ci on, en la pr actica se tuvo que dedicar mas tiempo a esas tareas de lo estimado.
Se paso de 6 das de media a 8 das por implementacion. Otra dicultad encontrada
fue el desarrollo de la memoria, se calculo que se tardara en escribirla 13 das, a
posteriori fueron 18 das.
Teniendo en cuenta todos estos inconvenientes, el proyecto comenz o el 16 de
Octubre del 2008 y nalizo el 23 de Febrero del 2009. Con un total de 93 das
laborables y 340 horas invertidas con la siguiente distribuci on mensual.
Octubre: 4 horas/da
Noviembre: 3 horas/da
Diciembre: 3.5 horas/da
Enero: 4.5 horas/da
Febrero: 3 horas/da
En las Figuras 2.2 y 2.3 aparece el diagrama de Gantt real del desarrollo del
proyecto.
2.2. A POSTERIORI 21
Figura 2.1: Diagrama de Gantt a priori.
22 CAP

ITULO 2. PLANIFICACI

ON
Figura 2.2: Diagrama de Gantt a posteriori de las primeras 34 tareas.
2.2. A POSTERIORI 23
Figura 2.3: Diagrama de Gantt a posteriori de las 29 tareas restantes tareas.
24 CAP

ITULO 2. PLANIFICACI

ON
Captulo 3
Matlab / PRTools
Contenido
3.1. Introduccion a Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.2. Conceptos en el procesamiento de imagenes . . . . . . . . . . . . 26
3.3. Rutinas de lectura y escritura de imagenes . . . . . . . . . . . . . 27
3.4. Funciones dedicadas a la conversion de imagenes . . . . . . . . . 29
3.5. Funciones para la extraccion de bordes . . . . . . . . . . . . . . . 29
3.6. Librera PRTools para el reconocimiento de patrones . . . . . . . 30
25
26 CAP

ITULO 3. MATLAB / PRTOOLS


Este captulo introduce algunos de los conceptos basicos del lenguaje de progra-
maci on Matlab. El captulo pretende convertirse en un peque no manual que facilite
al lector la comprensi on de las tecnicas aplicadas, destacando exclusivamente aque-
llas funcionalidades directamente relacionadas con el proyecto.
3.1. Introducci on a Matlab
El lenguaje C++, por sus caractersticas compartidas de alto y bajo nivel parece
ser el mas apropiado para la implementacion de algoritmos de visi on computacional,
pero implementar algoritmos de vision articial en C++ supondra una gran inver-
si on de tiempo en la fase de implementaci on y en la correcci on de errores previo a
la fase de pruebas.
La inversi on inicial de tiempo puede reducirse si la implementacion de prueba es
realizada en Matlab, utilizando su librera toolbox para el procesamiento de image-
nes, con la seguridad de utilizar algoritmos cientcamente comprobados y s olidos.
La librera toolbox para el procesamiento de im agenes contiene un gran n ume-
ro de funciones para trabajar con imagenes binarias, trasformaciones cromaticas,
geometricas y morfologicas que, junto con las funciones ya integradas en Matlab,
permite realizar todo tipo de an alisis y trasformaciones con im agenes.
Adem as se dispone de otro toolbox para el reconocimiento de patrones en Matlab
(PRtools) que suministra alrededor de 200 rutinas para el reconocimiento de patro-
nes y otras tareas estadsticas. Incluye procedimientos para la generacion de datos,
la formacion de clasicadores, la combinaci on de clasicadores, las caractersticas de
selecci on, lineales y no lineales, extraccion de caractersticas, la densidad de estima-
ci on, an alisis de agrupamiento, la evaluaci on y la visualizaci on. PRtools se inicio en el
grupo de investigaci on de reconocimiento de patrones de la Universidad Tecnol ogica
de Delft en 1993.
En esta secci on se comentaran brevemente algunas de las funciones m as utilizadas
en el procesamiento de im agenes y que han sido de gran utilidad para el desarrollo
de este proyecto.
3.2. Conceptos en el procesamiento de imagenes
Una imagen a escala de grises en Matlab es representada por medio de una
matriz bidimensional de m x n elementos, donde n representa el n umero de pxeles
de ancho y m el n umero de pxeles de alto. El elemento v11 corresponde al elemento
de la esquina superior izquierda (ver Figura 3.1). Cada elemento de la matriz de la
imagen tiene un valor de 0 (negro) a 255 (blanco).
Esta posibilidad de almacenamiento supone que trabajar con im agenes en Matlab
3.3. RUTINAS DE LECTURA Y ESCRITURA DE IM

AGENES 27
Figura 3.1: Representacion de una imagen a escala de grises en Matlab
sea similar a trabajar con cualquier otro tipo de dato matricial, por lo que es posible
seleccionar un determinado pxel de la imagen mediante el formato tpico de acceso
a un elemento de una matriz: I(123,56)
Por otro lado, una imagen en color RGB es representada por una matriz tridi-
mensional m x n x p, donde m y n tienen el mismo signicado que para el caso de
las im agenes a escala de grises mientras que p representa el plano, que para RGB
puede ser 1 para el rojo, 2 para el verde y 3 para el azul. La ilustraci on 3.2 muestra
algunos detalles sobre estos conceptos.
3.3. Rutinas de lectura y escritura de imagenes
La lectura de im agenes contenidas en un archivo desde el entorno Matlab se
realiza mediante la funci on imread, cuya sintaxis es:
imread(nombre del archivo)
donde nombre del archivo es una cadena de caracteres conteniendo el nombre
completo de la imagen con su respectiva extensi on.
28 CAP

ITULO 3. MATLAB / PRTOOLS


Si se desea almacenar la imagen perteneciente al archivo data.jpg en una varia-
ble para su procesamiento en Matlab, se debera escribir la siguiente sentencia
en lnea de comandos:
image=imread(data.jpg);
La variable image contendr a la representaci on matricial de la gura leda por
la funcion imread(). Para el posterior procesamiento de las imagenes, Matlab
necesita de dicha representacion matricial.
Para obtener el tama no de la imagen se utiliza la funcion size(variable):
[m, n]=size(image);
Donde m y n contendr an los valores de las dimensiones de la imagen.
Para almacenar el contenido de una imagen en un archivo se utiliza la funcion:
Imwrite(image,nombre del archivo);
Donde image representa la variable que contiene a la imagen y nombre del
archivo el nombre del archivo con su respectiva extension. Suponiendo que
la variable image2 contiene la imagen que nos interesa grabar en el archivo
dato2.jpg tendramos que escribir:
imwrite(image2, data2.jpg);
Despues de realizar un procesamiento con la imagen, es interesante visualizar
el resultado obtenido. Para ello se usa la funcion:
imshow(variable);
Permite desplegar la imagen en una ventana en el entorno de trabajo de
Matlab.
3.4. FUNCIONES DEDICADAS A LA CONVERSI

ON DE IM

AGENES 29
3.4. Funciones dedicadas a la conversion de image-
nes
Para cambiar una imagen de formato RGB a escala de grises se utiliza la
funci on rgb2gray(). El formato de dicha funcion es:
imagegray =rgb2gray(imageRGB);
Del mismo modo, para pasar la imagen de escala de grises a blanco y negro,
podramos utilizar la siguiente sentencia:
imNueva = double(imNueva)/256.0;
Matlab permite tambien redimensionar imagenes mediante la funcion:
B = imresize(A, [mrows ncols]);
imresize() devuelve una imagen B con el n umero de las y de columnas espe-
cicadas por [mrows ncols] a partir de la imagen original A. Si no se especica
el n umero de las o el n umero de columnas, imresize calcula automaticamente
el parametro omitido preservando siempre las proporciones de la imagen.
3.5. Funciones para la extraccion de bordes
En visi on por computador es especialmente util la extraccion de bordes de los
objetos. La funcion edge de Matlab permite facilmente su extraccion a partir de
una representacion en escala de grises. Dicha funcion, permite encontrar los bordes
mediante dos algoritmos diferentes: canny y sobel. El formato de la funci on es el
siguiente:
image = edge(imageGray, algoritmo);
donde en la variable image se almacena la matriz resultado que representa los bordes
extrados, imageGray es la variable que contiene la imagen en escala de grises de
la cual se pretenden extraer los bordes y nalmente, algoritmo especica el tipo
de algoritmo que se desee utilizar en el proceso de extracci on. En nuestro caso de
estudio se ha utilizado siempre el algoritmo canny. En la siguiente ilustraci on, se
muestra la imagen original seguida de la imagen resultado.
30 CAP

ITULO 3. MATLAB / PRTOOLS


3.6. Librera PRTools para el reconocimiento de
patrones
Disponibilidad, licencias y derechos de autor
La librera PRTools se puede descargar desde el sitio Web http://prtools.org/
y su uso est a protegido por una licencia. Esta licencia es gratuita para nes
no comerciales, academicos y de investigacion.
Motivaci on
En el reconocimiento de patrones estadsticos se estudian tecnicas para la
generalizaci on de datos y de reglas de decisi on que se utilizaran para el reco-
nocimiento de patrones en conjuntos de datos experimentales.
Esta area de investigaci on tiene un fuerte car acter computacional, exigiendo
un uso exible de programas numericos para el analisis de datos, as como para
la evaluaci on de los procedimientos. Es por ello que se necesita una platafor-
ma de programaci on que permita una r apida y exible aplicacion. La librera
PRTools, debido a su caracter general en comparaci on con otros entornos de
estadstica mas especializados, ofrece una f acil integraci on con el preprocesa-
miento de datos de cualquier naturaleza. Este car acter general que ofrece la
librera queda por completo compensado por el gran conjunto de toolboxes
disponibles en Matlab.
Sin embargo, PRTools tambien tiene algunas limitaciones. Debido a la fuerte
demanda de memoria de Matlab, surgen grandes problemas y dicultades con
el aprendizaje de conjuntos que dispongan de decenas de miles de objetos ya
que no pueden ser manipulados por computadores de prestaciones moderadas
(en el cuarto captulo, se comentar an las principales dicultades que surgieron
en la fase experimental, en torno a este problema propio de Matlab).
Conceptos esenciales
PRTools hace uso de la posibilidad ofrecida por Matlab para denir el concepto
de clases y objetos. Estos conceptos de programacion no deben confundirse con
las clases y objetos, tal como se denen en el reconocimiento de patrones. En
PRtools se trabaja con los conceptos de dataset y mapping.
Un gran n umero de operadores (como * o [ ]) y comandos de Matlab han sido
sobrecargados y por lo tanto tienen un signicado especial cuando se aplican
a un dataset y / o a un mapping.
La estructura central de datos de PRTools son los datasets. Se componen prin-
cipalmente de un conjunto de objetos representados por una matriz de vectores
3.6. LIBRER

IA PRTOOLS PARA EL RECONOCIMIENTO DE PATRONES 31


de caractersticas. Se adjunta a esta matriz un conjunto de etiquetas para ca-
da objeto y un conjunto de nombres de funci on, tambien llamada funci on de
las etiquetas. Las etiquetas pueden ser n umeros o cadenas de caracteres. Por
otra parte, se almacena un conjunto de probabilidades por cada clase. En la
mayora de los archivos de ayuda PRTools, un dataset se denota por A.
Las estructuras de datos de las clasesde tipo mapping almacenan datos de
transformaciones (mapping), clasicadores, funciones de extracci on de re-
sultados, deniciones de datos de escala, las proyecciones no lineales, etc. Por
lo general son denotados por W.
Implementaci on
La forma m as facil de aplicar un mapping W a un dataset A es mediante
la operaci on W*A. El smbolo de multiplicaci on de matrices * est a sobre-
cargado para este n. Es similar a la tubera (|) en Unix. Esta operacion
puede escribirse tambien como map . Al igual que en cualquier otra operaci on
en Matlab, las concatenaciones de las operaciones son posibles (por ejemplo,
A*W1*W2*W3) y se ejecutan de izquierda a derecha.
Ejemplo basico
Como ejemplo, vamos a ver como entrenar a un clasicador y posteriormen-
te, testear sus resultados. El primer paso consistira en la conversion de los
datos obtenidos en las fases de extracci on de caractersticas (FV Train Set y
FV Test Set) en datasets para que Matlab pueda computarlos:
Train = dataset(FV Train Set(:,1:756), FV Train Set(:,757));
Test = dataset(FV Test Set(:,1:756), FV Test Set(:,757));
La expresion FV Train Set(:,1:756) corta para todas las las, las columnas de
la 1 a la 756, es decir, los vectores caractersticos de todas las imagenes, y la
expresi on FV Train Set(:,757) corta para todas las las, la ultima columna, es
decir, la que contiene las etiquetas que identican la clase a la que pertenece
cada imagen.
Como se puede observar, disponemos de un conjunto de datos llamado Train
que se encarga de entrenar a los clasicadores en la fase de entrenamiento o
training y un conjunto de datos denominado Test cuya mision consiste en
testear los clasicadores entrenados previamente.
Para este ejemplo, supondremos que FV Train Set y FV Test Set contienen
vectores de 756 caractersticas para cada objeto y que adem as estan etique-
32 CAP

ITULO 3. MATLAB / PRTOOLS


tadas en la componente 757 con un entero [0 o 1] dependiendo si el objeto
corresponde a una imagen humana (1) o no humana (0).
La siguiente etapa se basa en el entrenamiento de los clasicadores. PRtools
proporciona muchos tipos de clasicadores. En este captulo se ver an unica-
mente algunos de ellos. Cada una de las siguientes funciones encargadas de
crear clasicadores: ldc, qdc, svc, knnc, parzenc y bpxnc se diferencian en el
algoritmo utilizado para el c alculo de discriminantes.
W1 = ldc(Train);
W2 = qdc(Train);
W3 = svc(Train);
W4 = knnc(Train,1);
W5 = parzenc(Train);
W6 = bpxnc(Train,3);
La funci on de clasicacion lcd() utiliza un algoritmo lineal, qdc() se basa en
c omputos cuadr aticos, svc() utiliza una m aquina de soporte vectorial como
clasicador, basado en polinomios de 2
o
orden, knnc() est a implementado de
acuerdo con el algoritmo del n vecino m as cercano, parzenc() se basa en la
estimaci on de Parzen que aplica una serie de ventanas o funciones base (una
por cada muestra xi ), suavizadas (Gaussianas) y centradas en dicha muestra.
Por ultimo, bpxnc() utiliza una red neuronal con n unidades ocultas.
La siguiente instruccion nos permite computar y mostrar por pantalla los erro-
res de clasicacion obtenidos por las funciones discriminadoras en la fase de
test:
disp([testc(Test*W1), testc(Test*W2), testc(Test*W3), testc(Test*W4),
testc(Test*W5), testc(Test*W6) ]);
Como se puede observar, PRtools ha sobrecargado el operador * para per-
mitir el computo necesario entre los datos que se desean testear y la funci on
discriminadora entrenada en la fase anterior.
Por ultimo, se podran mostrar gr acamente los resultados obtenidos, para
visualizar las decisiones que las funciones discriminadoras y clasicadores han
tomado sobre los datos iniciales. La funci on scatterd(A) muestra la frontera
de decision.
scatterd(A);
plotc(W1, W2, W3, W4, W5, W6);
Obteniendo un resultado similar a la gura 3.4:
3.6. LIBRER

IA PRTOOLS PARA EL RECONOCIMIENTO DE PATRONES 33


Figura 3.2: Representacion de una imagen a color RGB en Matlab
34 CAP

ITULO 3. MATLAB / PRTOOLS


Figura 3.3: Resultado de la aplicacion del algoritmo canny
Figura 3.4: Graca de los distintos clasicadores.
Captulo 4
Descripcion del proyecto
Contenido
4.1. Analisis y planicacion . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.1. Determinar el ambito del proyecto . . . . . . . . . . . . . . . . . . . 37
4.1.2. Denir herramientas a utilizar . . . . . . . . . . . . . . . . . . . . . 37
4.1.3. Denicion de objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.1.4. Estudio de investigaciones previas y tecnologas de desarrollo . . . . 38
4.1.5. Estudio y planicacion temporal de tareas . . . . . . . . . . . . . . . 38
4.1.6. B usqueda e instalacion del SW requerido . . . . . . . . . . . . . . . 39
4.2. Desarrollo version inicial . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.2.2. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.2.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . . . . . 53
4.3. Desarrollo mejora 1, editado de Wilson . . . . . . . . . . . . . . . 59
4.3.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.3.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . . . . . 61
4.4. Desarrollo mejora 2, enfoque local . . . . . . . . . . . . . . . . . . 63
4.4.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.2. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.4.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . . . . . 69
4.5. Desarrollo mejora 3, Local binary patterns . . . . . . . . . . . . . 75
4.5.1. Dise no . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
35
36 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
4.5.2. Implementacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.5.3. Ejecucion de los test y resultados . . . . . . . . . . . . . . . . . . . . 78
4.6. Revision del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.1. Proceso de comprobacion . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6.2. Evaluacion global de los resultados . . . . . . . . . . . . . . . . . . . 82
4.6.3. Futuras vas de investigacion . . . . . . . . . . . . . . . . . . . . . . 83
4.1. ANALISIS Y PLANIFICACI

ON 37
En el presente captulo se va a describir el proyecto explicando detalladamente
cada una de las tareas por las que est a compuesto. Estas tareas corresponden a las
actividades que se muestran en el diagrama de Gantt (ver Figuras 2.2 y 2.3)
4.1. Analisis y planicaci on
4.1.1. Determinar el ambito del proyecto
Una vez establecido el tema del proyecto hay que orientarlo hacia una direcci on
en concreto. En este proyecto se estudiar a el uso de tecnicas de extraccion de ca-
ractersticas para diferenciar el genero de los humanos en im agenes. Estas im agenes
pueden ser tomadas desde cualquier angulo y estando la persona en cualquier po-
sici on. El unico requisito que se contempla es que la persona este centrada en la
imagen y que efectivamente, haya una persona.
4.1.2. Denir herramientas a utilizar
Para la implementaci on del trabajo se decidi o emplear el entorno Matlab. El uso
de Matlab se justica en que es una herramienta muy potente para el procesamien-
to de matrices y Matlab interpreta las im agenes como matrices. Adem as, existen
libreras para clasicacion de datos como es la PRTools [12] que ayudan a inferir a
que grupo pertenece la imagen, si pertenece a hombres o a mujeres.
Para la planicaci on se determin o que la herramienta m as completa es Microsoft
Project. Y para desarrollar la memoria se emplear a el lenguaje L
A
T
E
X con el editor
WinEdt.
4.1.3. Denici on de objetivos
El objetivo principal al que se quiere llegar con este proyecto es estudiar el
uso de metodos de extracci on de caractersticas para la caracterizacion del genero
de humanos presentes en im agenes. En particular, los algoritmos Histograma de
gradientes orientados y Local Binary Patterns [8]. Lo que se pretende es poder
discernir el genero de un humano presente en una imagen.
Como objetivo tambien se contempla la elaboraci on de ideas para desarrollar nue-
vas vas de investigaci on en futuros trabajos. Dada la naturaleza de este problema,
es posible que no se llegue a desarrollar un algoritmo lo sucientemente efectivo. Es
por ello que, gracias al trabajo desarrollado en este proyecto, se ayude a encaminar
proyectos en este campo.
38 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
4.1.4. Estudio de investigaciones previas y tecnologas de
desarrollo
Con el n de obtener informaci on respecto al reconocimiento de genero en per-
sonas se ha realizado una investigaci on para hallar una base solida que fundamente
este trabajo. En primer lugar se busc o informaci on referida a temas relacionados con
la visi on por computador, reconocimiento de patrones, biometra, etc. Por otro, se ha
encontrado informaci on referente al uso de tecnicas de extraccion de caractersticas
([7], [8], [10]). Finalmente se obtuvo mucha informacion respecto al uso del Matlab
[9]) y respecto a la librera PRTools ([12])
4.1.5. Estudio y planicaci on temporal de tareas
Para el correcto desarrollo del proyecto, se ha elaborado un listado de tareas
a realizar as como su coste temporal. En la gura 4.1 se pueden ver las tareas a
realizar y el tiempo que llevara su realizacion.
Figura 4.1: Tareas principales del proyecto.
4.1. ANALISIS Y PLANIFICACI

ON 39
4.1.6. B usqueda e instalacion del SW requerido
El software necesario para la elaboracion del proyecto es: Matlab 2006, librera
PRTools, Microsoft Project y un compiladore/editor de L
A
T
E
X bajo windows XP.
La instalaci on de Matlab y de Microsoft Project no tiene mas dicultad que
seguir el asistente de instalaci on. Una vez instalado el entorno Matlab, hay que
incluir la librera PRTools en el codigo. Para ello se guarda en la carpeta de trabajo
del proyecto la carpeta que contiene la librera y se a nade esta lnea al principio de
cada script: addpath(./prtools/);
Para poder escribir la memoria en L
A
T
E
X tenemos que instalar un compilador en
Windows XP de dicho lenguaje. Tambien sera altamente recomendable la instala-
ci on de un editor de texto especial para L
A
T
E
X. La instalacion consta de los siguientes
pasos, siendo importante el orden:
1. Instalar Acrobat Reader
2. Instalar la ultima versi on de AFPL de Ghostscript y Ghostview.
3. Instalar el compilador Miktex.
4. Instalar el editor WinEdt.
40 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
4.2. Desarrollo versi on inicial
4.2.1. Dise no
Como ya se ha descrito en la secci on 1.5, el dise no inicial consta de tres partes
muy diferenciadas, la extracci on de caractersticas de una imagen, el proceso de
aprendizaje del clasicador y el proceso de inferencia sobre el clasicador entrenado.
Para conseguir entrenar al clasicador es necesario crear una BBDD de im agenes lo
sucientemente numerosa para conseguir una muestra estadstica v alida. A modo de
aproximaci on sencilla a la estructura de esta implementacion, se realizara un breve
resumen del proceso.
En primer lugar, la fase de entrenamiento se obtendran las im agenes de la BBDD
y se extraeran sus caractersticas para obtener un valor numerico que dena a la
imagen. Esas caractersticas se pasaran al clasicador junto a la certeza de que ese
valor numerico representa a un hombre o una mujer. Con esto se consigue que el
clasicador sea capaz de inferir en el futuro si un vector de caractersticas representa
a un hombre o a una mujer.
Una vez est a entrenado el clasicador, el programa pasa a otra fase llamada
inferencia. En esta fase es donde a partir de una imagen en la cual no se sabe el
genero de la persona, el programa es capaz de diferenciar una imagen de hombre o
de mujer. Para esto, se obtienen las caractersticas de la foto a estudiar y se pregunta
al clasicador cual es el genero de la persona presente en la foto. Como el clasicador
ya sabe en terminos estadsticos que forma tienen los vectores de mujer y de hombre,
debera ser capaz de determinar el genero.
Como se ha podido observar, el proceso de extracci on de caractersticas est a in-
cluido en la fase de aprendizaje y en la fase de inferencia. Hay que recalcar que
este es el proceso mas crtico del proyecto, de el depende en gran medida el exito o
fracaso del proyecto. Mas adelante se realizar a una explicaci on mas detallada, pero a
grosso modo, es el proceso por el cual se llega a representar las caractersticas de una
imagen mediante n umeros, que un ordenador sea capaz de entender e interpretar.
Elaboracion de la BBDD de imagenes
Para la correcta validacion de los diferentes algoritmos de extraccion de carac-
tersticas se tienen que emplear un amplio n umero de im agenes. La fuente principal
de im agenes ha sido la proporcionada por la Base de Datos de INRIA, que se puede
encontrar en http://lear.inrialpes.fr/data. Un ejemplo de las fotos empleadas
se muestran en la gura 4.2.
Al necesitar una cantidad considerable de im agenes resulta interesante tener una
BBDD para administrarlas correctamente. En nuestro caso de estudio bastar a con
un chero de texto que contenga la ruta de dichas imagenes seguido de un 0 si la
4.2. DESARROLLO VERSI

ON INICIAL 41
Figura 4.2: Muestra de imagenes de la BBDD
imagen pertenece a un hombre o un 1 indicando que es una mujer Listado 4.11.
1 ..\..\Imagenes\TRAIN\Hombre\H1306.ppm 0
2 ..\..\Imagenes\TRAIN\Hombre\H1307.ppm 0
3 ..\..\Imagenes\TRAIN\Hombre\H1308.ppm 0
4 ..\..\Imagenes\TRAIN\Hombre\H1309.ppm 0
5 ..\..\Imagenes\TRAIN\Hombre\H1310.ppm 0
6 ..\..\Imagenes\TRAIN\Hombre\H1311.ppm 0
7 ..\..\Imagenes\TRAIN\Hombre\H1312.ppm 0
8 ..\..\Imagenes\TRAIN\Mujer\M0002.ppm 1
9 ..\..\Imagenes\TRAIN\Mujer\M0003.ppm 1
10 ..\..\Imagenes\TRAIN\Mujer\M0004.ppm 1
11 ..\..\Imagenes\TRAIN\Mujer\M0009.ppm 1
12 ..\..\Imagenes\TRAIN\Mujer\M0010.ppm 1
13 ..\..\Imagenes\TRAIN\Mujer\M0011.ppm 1
Listado 4.1: Fragmento de la BBDD de imagenes
Partiendo de un conjunto de 3000 im agenes se han dividido en 2 grupos. Un
conjunto de entrenamiento que se usar a para el aprendizaje del clasicador y otro
conjunto de test que servir a para que estimar el grado de acierto del algoritmo. Las
proporciones de estos estas particiones respecto al conjunto global son de 75 % y
25 % respectivamente. Siendo el n umero de mujeres y hombres equitativo en cada
partici on. Este proceso se conoce como etiquetado manual.
Teniendo todo esto en cuenta, se procedi o elaborar una seleccion de las im agenes
y a cumplimentar los cheros train.txt y test.txt. Ambos cheros tendr an el formato
del Listado 4.11 y serviran para las posteriores fases de desarrollo.
42 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Esquema de modulos
Antes de comenzar con la implementaci on propiamente dicha, se realiz o un dise no
en el que se denan los modulos por los que tena que estar compuesto el proyecto.
Estos esquemas tienen una gran importancia. Por un lado, una buena esquemati-
zaci on ayuda al correcto desarrollo del proyecto, aportando claridad y abstrayendo
conceptos detallados de otras fases del mismo. Por otro, facilita la incorporaci on de
las distintas mejoras que se hagan en el futuro.
Por motivos funcionales, el dise no teorico planteado en las Figuras 1.12 y 1.13 de
la secci on 1.5 ha variado ligeramente. Desde un unico script en Matlab se entrena al
clasicador con las im agenes de entrenamiento (train.txt) y se comprueba la ecacia
del programa con las imagenes de test (test.txt). Los modulos implicados en este
proceso son los representados en la Figura 4.3.
Figura 4.3: Esquema de modulos del proyecto
ScriptPR: Este es el script principal del programa. Su funci on primordial es
la de dirigir el proceso primario de la aplicacion. En el se ejecutar an las fases
de extracci on de caractersticas de las im agenes, la fase de entrenamiento y la
fase de inferencia. Como resultado, este modulo mostrara la tasa de aciertos
del programa.
4.2. DESARROLLO VERSI

ON INICIAL 43
CreateFVFile: Este modulo tiene como nalidad el procesamiento de im age-
nes para obtener sus respectivos vectores de caractersticas. Recibe como parame-
tro un chero similar al del listado 4.11 y una serie de parametros de congu-
raci on. Y devuelve un chero que contiene el vector de caractersticas de cada
una de las im agenes.
Preprocess: Este m odulo tiene como nalidad la de convertir una imagen en
color, a una en escala de grises con valores normalizados entre 0 y 1.
WeightVector: Tiene como n la creacion de un vector N cuyos valores re-
presentan una campana de Gauss. Con esto se consigue tener un vector de
pesos dando m as importancia a la zona central.
ExtractFeature: Aqu es donde se extrae las caractersticas de una imagen.
Las caractersticas no son mas que una serie de n umeros que denen a una
determinada imagen. Este m odulo merece una explicacion m as extensa que se
presentar a seguidamente.
NormalizeIntensity: Dada una porci on de imagen, este m odulo se encarga
de normalizarla para que sea mas ecaz el proceso de an alisis.
IIMean: Obtiene la media de cada una los pixels respecto a sus sus vecinos
en una porci on de imagen.
IIStd: Obtiene la desviaci on de cada una los pixels respecto a sus sus vecinos
en una porci on de imagen.
EstimateGradOriMag: Este m odulo es el encargado de, a partir de un ima-
gen, obtener la matriz de magnitudes y la matriz de orientaciones de la misma.
HOG: Calcula el histograma de orientaciones de una imagen. Este es justa-
mente el valor que representa a una imagen segun el algoritmo histograma de
gradientes orientados.
PostProcessVector: Procesa el vector de caractersticas asociado a una ima-
gen. Basicamente se encarga de acotar los picos del vector y normalizar sus
valores.
Proceso de extraccion de caractersticas
Este es el proceso mas importante del proyecto, de el depende en gran medida
el cumplimiento de los objetivos marcados. Esto se debe a que estamos extrayen-
do caractersticas de una imagen para que la representen. Pero esas caractersticas
tienen que ser las que se precisen para el prop osito de este trabajo. No sirve, por
44 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
ejemplo, que las caractersticas extradas representen el color de piel de una persona.
Lo que se exige es que las caractersticas representen la silueta de una persona, para
poder discriminar de forma precisa el genero. A continuaci on, se explicaran los pasos
que tiene que seguir el algoritmo para obtener un vector numerico a partir de una
imagen.
1. En primer lugar la imagen tiene que pasar por un preproceso para aumentar
la eciencia y ecacia de las fases posteriores. En esta fase lo que se precisa
conseguir es transformar una imagen en color, a otra en escalas de grises.
Estando los valores de cada pixel comprendidos entre 0 y 1. Representado en
Matlab, la transformaci on que sufriran los pixels de la imagen se muestra en
la Figura 4.4. En la gura 4.5 se da un ejemplo de cual sera el aspecto que
tendra una fotografa despues del preproceso.
Figura 4.4: Conversion de una imagen a valores comprendidos entre 0 y 1.
2. Seg un el algoritmo histograma de gradientes orientados, el siguiente paso es
dividir la imagen en fragmentos que a partir de este momento llamaremos
ventanas. Para cada ventana se tendra que calcular su vector de caractersticas.
El vector de caractersticas nal, ser a una concatenaci on de los vectores de las
ventanas que componen una imagen (ver gura 4.6).
3. Para cada una de las ventanas obtenidas se normalizara su intensidad con
el n de que su media sea 0 y su varianza 1. Para acelerar el proceso de
normalizaci on se ha optado por usar la imagen integral. La imagen integral
en el punto (c, r) (c por column, r por row) contiene la suma del valor de los
pixels arriba y a la izquierda de dicho punto, inclusive, es decir:
ii(c, r) =

c,r

r
img(c

, r

) (4.1)
Donde img(c,r) es la imagen origen e ii(c,r) es la imagen integral resultado.
Usando la imagen integral se puede calcular cualquier suma de los valores de
4.2. DESARROLLO VERSI

ON INICIAL 45
Figura 4.5: Preproceso de una imagen.
una zona de la imagen con unicamente cuatro b usquedas en la matriz que
contiene los valores de la imagen integral, tal como se muestra en la gura 4.7
Para normalizar cada ventana de extracci on, en primer lugar se calculara la
imagen integral y la imagen integral al cuadrado, para posteriormente norma-
lizar cada ventana de extracci on mediante la siguiente ecuaci on:
im(c, r) =
img(c, r)

(4.2)
Para calcular la media y la varianza de cada ventana de extraccion se usara tan-
to la imagen integral ii como la imagen integral al cuadrado ii2 tal como indican
las siguientes formulas:
S
1
= ii(c
f
, r
f
) + ii(c
0
1, r
0
1) ii(c
f
, r
0
1) ii(c
0
1, r
f
) (4.3)
S
2
= ii
2
(c
f
, r
f
) + ii
2
(c
0
, r
0
) ii
2
(c
f
, r
0
1) ii
2
(c
0
1, r
f
) (4.4)
=
S
1
N
(4.5)
=

S
2
N

2
(4.6)
En la gura 4.8 se puede ver un ejemplo visual de este proceso.
46 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.6: Ejemplo de obtencion del vector de caractersticas.
4. Una vez normalizada la imagen, el siguiente paso es calcular la magnitud y la
orientaci on del gradiente de cada pixel. El gradiente denota una direccion en el
espacio seg un el cual se aprecia una variaci on de una determinada propiedad.
En nuestro caso, se quiere localizar las variaciones o contraste de color e inten-
sidad en la imagen. En la gura 4.9 se aprecian las variaciones en la direcci on
del gradiente en funci on del contraste entre los colores blanco y negro.
El c alculo del gradiente se consigue ltrando la imagen mediante las siguientes
dos m ascaras unidimensionales: la horizontal [-1, 0, 1] y la vertical [-1, 0, 1]. En
la gura 4.10 se muestra un ejemplo del c alculo del gradiente. En la izquierda
se encuentra la imagen original, en medio, se muestran las direcciones que toma
cada gradiente, y en la derecha se representa la imagen original de acuerdo con
la norma del gradiente.
5. En la posterior fase del metodo de extracci on de caractersticas es necesario
dividir el gradiente en dos componentes, la magnitud y la orientaci on. El resul-
tado esperado sera entonces dos matrices, una que represente las magnitudes
del gradiente en cada pixel de la imagen original y otra matriz que contenga
las orientaciones del gradiente en cada pixel.
Partiendo de la matriz de orientaciones y de la matriz de magnitudes asociadas
a la ventana de extraccion se tiene que crear un histograma de orientaciones.
Este histograma se construye con un vector de talla N, siendo N el n umero de
orientaciones contempladas en nuestro caso. Para cada uno de los pixel de la
4.2. DESARROLLO VERSI

ON INICIAL 47
Figura 4.7: Calculo del valor de la imagen integral.
ventana de extracci on, se obtiene la magnitud y se acumula en la posicion del
vector que viene determinada por la orientaci on del pixel. Antes de acumular la
magnitud del pixel se le aplica un peso. El peso que se aplica a un posici on x de
la imagen viene determinado por una funci on gaussiana. El valor acumulado
en cada posicion del vector de caractersticas es la magnitud del gradiente
multiplicado por el peso asociado al ndice x de la imagen (ver Figura 4.11).
De este modo se consigue dar m as relevancia a la parte central de la imagen,
que es donde se encuentra la persona.
Suponiendo que se consideran 9 orientaciones y que se han utilizado 10 ven-
tanas de extracci on a la imagen, el vector de caractersticas nal tendra una
dimension de 9x10 = 90.
6. Por ultimo, se aplica un pos-proceso al vector de caractersticas. Primero se
normalizan sus valores para posteriormente umbralizar los picos y volver a
normalizar el vector resultante.
Partiendo de esta explicaci on, se pueden extraer las siguientes variables que
condicionan el comportamiento de este proceso:
Alto de la ventana de extracci on.
Solapamiento entre ventanas.
Sigma para el vector de pesos.
N umero de orientaciones contempladas.
Umbral para el pos-proceso del vector de caractersticas.
Estos parametros son los que habr a que variar para conseguir un resultado
optimo en la aplicaci on. Como se ha dicho en m ultiples ocasiones, cuanto
48 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.8: Normalizacion de una imagen.
m as representativo sea el vector de caractersticas respecto al genero de las
personas, mejores resultados se obtendran.
Proceso de aprendizaje e inferencia del clasicador
En esta fase, el primer paso consiste en a nadir al clasicador los vectores de
caractersticas obtenidos de las imagenes de entrenamiento, junto con informaci on
que identica a cada vector con la clase a la que pertenece, para que el clasicador
reconozca que tipo de caractersticas son comunes en las im agenes de hombres y
cuales a las de mujeres.
Una vez entrenado el clasicador, para cada vector caracterstico extrado de las
im agenes de test, se realiza una b usqueda de los K vectores de entrenamiento mas
cercanos. En este proceso, se obtiene tanto la lista de los K vecinos mas cercanos,
como las distancias a los mismos. Finalmente, a la imagen que se est a evaluando se
le asigna la clase a la que pertenecen la mayora de los K vectores caractersticos
m as cercanos.
Vista general del proceso
A modo de vista general sobre los procesos que intervienen en el proyecto, se ha
elaborado el esquema de la gura 4.12. En el se detallan cada uno de los procesos
que se llevan a cabo y en que fase est an comprendidos.
4.2. DESARROLLO VERSI

ON INICIAL 49
Figura 4.9: Variaciones del gradiente.
4.2.2. Implementaci on
Despues de haber hecho un exhaustivo estudio en el dise no se encamina la tarea
de implementaci on del proyecto. En esta secci on se describe la implementaci on de la
aplicaci on en su versi on inicial. De cada uno de los m odulos presentes en la gura 4.3
se proceder a a describir su funcionamiento mediante pseudoc odigo y una explicaci on
detallada del algoritmo.
ScriptPR.m
Su funci on primordial es la de dirigir el proceso primario de la aplicaci on. En el
se ejecutar an las fases de extracci on de caractersticas de las im agenes, la fase de
entrenamiento y la fase de inferencia. Como resultado, este modulo mostrara la tasa
de aciertos del programa.
1 RG_CreateFVFile (input_test, output_test, tamVentanaX, desplazamiento,
2 sigma, nbins, locbin, TH)
3 lenFV := RG_CreateFVFile(input_train, output_train, tamVentanaX,
4 desplazamiento, sigma, nbins, locbin, TH)
5
6 FV_Train_Set := Lee fichero output_train
7 Train := Crea conjunto de datos de FV_Train_Set
8
9 FV_Test_Set := Lee fichero output_test
10 Test := Crea conjunto de datos de FV_Test_Set
11
12 W1 := Crea el clasificador Knn a partir de Train
13
14 labels_test := Etiquetas de Test
50 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.10: Calculo del gradiente.
Figura 4.11: Aplicacion de un vector de pesos a los pixels de una determinada la
en al imagen.
15 labels_res := Resultados de W1 con el conjunto Test
16 fallos := Comparar resultados de la inferencia
17 Escribe ((n_imagenes_test-fallos)/n_imagenes_test)*100
Listado 4.2: ScriptPR
En primer lugar se crean los cheros que contienen los vectores de caractersti-
cas para cada imagen llamando a la funci on RG CreateFVFile. Una vez obtenidos
dichos cheros, se crean dos estructuras de datos, una para test y otra para train.
A continuacion, se entrena al clasicador llamado W1 por medio de la funci on knnc
pas andole como par ametro el conjunto de train (lnea 12 del Listado 4.2). Finalmente
se procede a evaluar el conjunto de test y se obtienen los resultados.
4.2. DESARROLLO VERSI

ON INICIAL 51
Figura 4.12: Proceso detallado del proyecto.
CreateFVFile.m
Este modulo tiene como nalidad el procesamiento de im agenes para obtener sus
respectivos vectores de caractersticas. Recibe como parametro un chero similar al
del listado 4.11 y una serie de parametros de conguraci on. Devuelve un chero que
contiene el vector de caractersticas de cada una de las im agenes.
1 Procedimiento RG_CreateFVFile(input, output, tamVentanaX, desplazamiento,
2 sigma, nbins, locbin, TH)
3 imList := Extrae imagenes del fichero input
4 etLis := Extrae etiquetas del fichero input
5
6 im := Carga la imagen imList(1)
7 im := RG_Preprocess(im)
8 NR, NC := Obtener tama~no de im
9 VectorGaus := RG_WeightVector(NC, sigma)
10 FV := RG_ExtractFeatures(im, tamVentanaX, desplazamiento,
11 VectorGaus, nbins, locbin, TH)
12 Escribir en el fichero output FV concatenado con etList(1)
13
14 Para i:=2 Hasta longitud de imList Hacer
15 im := carga la imagen imList(i)
16 im := RG_Preprocess(im)
17 FV := RG_ExtractFeatures(im, tamVentanaX, desplazamiento,
18 VectorGaus, nbins, locbin, TH)
19 Escribir en el fichero output FV concatenado con etList(i)
20 fin Para
52 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
21 lenFV := longitud de FV
22 Devolver lenFV
23 fin Procedimiento
Listado 4.3: CreateFVFile
En primer lugar se crea un vector de pesos con de talla NC llamando a la fun-
ci on RG WeightVector. Seguidamente se recorre el chero de im agenes pasado como
par ametro. A cada una de las im agenes se le pasa por un preproceso ya explicado
con anterioridad.
Posteriormente se llama a la funci on RG ExtractFeatures pas andole como par ame-
tros la imagen preprocesada y las variables de conguraci on del algoritmo. RG ExtractFeatures
devuelve el vector de caractersticas correspondiente a la imagen contenida en la va-
riable im. Este vector se escribe en el chero de salida junto a una etiqueta para
indicar si el vector corresponde a un hombre o a una mujer.
ExtractFeatures.m
Se podra considerar el modulo mas importante del proyecto. Tiene como na-
lidad la extracci on del vector de caractersticas a partir de una imagen y de unos
par ametros. Recibe como parametros de entrada:
Una imagen.
El tama no en el eje x de la ventana de extraccion a utilizar.
El desplazamiento que tendr a la ventana de extracci on sobre la imagen.
El vector de pesos.
El n umero de orientaciones
El umbral para normalizar el vector posteriormente.
1 Procedimiento RG_ExtractFeatures(im, tamVentanaX, desplazamiento,
2 VectorGaus, nbins, locbin, TH)
3 ii, ii2 := RG_IICreate(im)
4 NR, NC := tama~no de im
5
6 Para i := 1 Hasta desplazamiento incremento NR Hacer
7 Si i+tamVentanaX-1 <= NR Entonces
8 imVentanaNorm := RG_NormalizeIntensity (im, ii, ii2, i, 1,
9 tamVentanaX, NC)
10 [ori, mag] := RG_EstimateGradOriMag(imVentanaNorm)
11 h := RG_HOG(ori, mag, VectorGaus, nbins, locbin)
4.2. DESARROLLO VERSI

ON INICIAL 53
12 FV := FV Concatenado con h
13 Fin Si
14 Fin Para
15 Devolver RG_PostProcessVector(FV, TH);
16 Fin Procedimiento
Listado 4.4: ExtractFeatures
En primer lugar, se crean dos matrices utilizando la funcion RG IICreate con el
prop osito de crear la imagen integral y la imagen integral al cuadrado para norma-
lizar la intensidad de la imagen. A continuaci on se recorre la imagen empleando la
ventana de extraccion, cuyas dimensiones estan denidas con el par ametro tamVen-
tanaX. En cada iteraci on del bucle se a nade un desplazamiento a la ventana en el
eje x. Conceptualmente la imagen se recorre como se muestra en la gura 4.6, cada
ventana corresponde a una iteraci on del bucle.
Para cada una de las ventanas se normaliza su intensidad llamando a la funci on
RG NormalizeIntensity. Una vez obtenida la ventana normalizada se calculan las
matrices de orientaciones y de magnitudes. Sendas matrices se pasan como par ame-
tro de entrada a la funcion RG HOG. Dicha funci on devuelve un vector de talla
nbins (n umero de orientaciones). Cada elemento de ese vector representa la suma
de las magnitudes de los pixels que tenan esa orientaci on. Seguidamente se van
concatenando los vectores obtenidos para cada ventana y se obtiene el vector de ca-
ractersticas de talla n
o
de ventanas x n
o
de orientaciones que representa a la imagen.
Por ultimo se pasa el vector de caractersticas por la funci on RG PostProcessVector.
Esta funcion consigue normalizar el vector y eliminar picos que puedan distorsionar
los resultados. Para jar el umbral de los picos se dena la variable TH.
4.2.3. Ejecucion de los test y resultados
Ejecucion de los test
Un hecho obvio en estas alturas del documento, es el n umero signicativo de
variables de este proyecto y que inuyen directamente en el exito del mismo. Como
no se conoce a priori que valores de las variables son adecuados, se ha tenido que
implementar un script de test para poder optimizar estos par ametros de una manera
c omoda.
Las variables a optimizar son:
Sigma
tamVentanaX
Desplazamiento
54 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
nbins
Inicialmente estas variables tienen valores arbitrarios. En primer lugar se calcula el
porcentaje de aciertos para la variable sigma asign andole diferentes valores. Seguida-
mente se efect ua el mismo proceso para la variable tamVentanaX, pero con el valor
de sigma optimo. A continuaci on, con sigma y tamVentanaX optimizados, se realiza
el mismo procedimiento para la variable desplazamiento. Finalmente se calcula el
valor del parametro nbins con sigma, tamVentanaX y desplazamiento jados.
A priori no se puede saber si el pos-proceso del vector de caractersticas es
realmente efectivo. Por ello se debera comprobar empricamente. Se deber an realizar
tres ejecuciones del script de test. Uno sin el pos-proceso del vector de caractersticas,
otro normalizando el vector y por ultimo, un test incluyendo la normalizacion y
eliminando los picos presentes
Analisis de los resultados
A continuacion, se mostrar an los resultados obtenidos para cada uno de los ex-
perimentos realizados. El primero consiste en emplear la versi on sin pos-proceso del
vector de caractersticas. El segundo experimento contar a con con un pos-proceso
del vector, pero s olo se implementar a la fase de normalizaci on. Y por ultimo, el
tercer experimento emplear a la versi on del algoritmo que incluye normalizacion y
eliminaci on de picos en el vector de caractersticas.
1. En la gr aca 4.13 se muestran los resultados obtenidos por el script de test
sin pos-proceso del vector de caractersticas. En la graca correspondiente a la
variable sigma se puede observar que el valor que obtiene mejores resultados es
el 7, coloreado en verde. En la gr aca de la variable tamVentanaX se muestra
una mejora signicativa para el valor 24, consiguiendo un 57 % de acierto.
Con los valores de las variables sigma y tamVentanaX jados se puede apreciar
en la gr aca de la variable desplazamiento como se ana a un m as el porcentaje
de aciertos. De entre todos los valores considerados en el test el que tiene mejor
resultado es el desplazamiento 4 con un 57 % de aciertos. Finalmente, de la
ultima gr aca se puede concluir que utilizar 9 orientaciones obtiene mejores
resultados que el resto.
De estos resultados se puede concluir la mejor conguracion de las variables
de el problema que nos ocupa es y que obtiene un 57 % de aciertos es:
Sigma = 7
tamVentanaX = 24
Desplazamiento = 4
4.2. DESARROLLO VERSI

ON INICIAL 55
Figura 4.13: Resultados de la version inicial sin pos-proceso del vector.
N umero de orientaciones = 9
2. La graca 4.14 representa los resultados obtenidos por el script de test con
la normalizaci on del vector. Si se observan detenidamente, se puede apreciar
una clara mejora respecto a la version sin normalizaci on obteniendo un 59 %
de aciertos con la siguiente conguracion de variables:
Sigma = 3
tamVentanaX = 8
Desplazamiento = 4
N umero de orientaciones = 9
3. Por ultimo, en la graca 4.14 se muestran los resultados del programa con
normalizaci on y eliminaci on y picos. Se puede apreciar una ligera mejora res-
pecto a la version que solo implementa la normalizacion del vector. Con esta
56 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.14: Resultados de la version inicial con normalizacion del vector.
implementaci on se consigue una tasa de aciertos del 60 % con la siguiente
conguraci on:
Sigma = 3.5
tamVentanaX = 22
Desplazamiento = 2
N umero de orientaciones = 10
Propuesta de mejora
En vista de los resultados obtenidos se pueden plantear diferentes vias de mejora.
Una de ellas es reexionar sobre si el conjunto de im agenes de entrenamiento es el
4.2. DESARROLLO VERSI

ON INICIAL 57
Figura 4.15: Resultados de la version inicial con normalizacion y umbralizacion del
vector.
optimo para representar una muestra estadstica. En este sentido se han planteado
varios propuestas de mejora.
Una de ellas sera la eliminacion de las imagenes ambiguas del conjunto de test
y entrenamiento. Por im agenes ambiguas se entiende fotos de ni nos, personas de
espaldas, fotos con m as de una persona... En resumen, cualquier foto en la que una
persona tuviese serias dudas para dictaminar su genero.
Otra mejora en este sentido sera aplicar al conjunto de entrenamiento el editado
de Wilson. Actualmente el conjunto de imagenes ha sido seleccionado manualmen-
te (etiquetado manual), con el editado de Wilson sera el propio algoritmo el que
decidir a que im agenes forman parte del conjunto de entrenamiento.
Como ya se introdujo en la secci on 1.2.6 este algoritmo elimina los elementos
que no son anes a una determinada clase para eliminar interferencias y que la clase
sea lo m as homogenea posible. En el caso que nos ocupa, la clase sera en conjunto
58 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
de im agenes de hombres por un lado y otra clase para las imagenes de mujeres y se
eliminaran de ellas las im agenes que no se ajustan al grupo.
4.3. DESARROLLO MEJORA 1, EDITADO DE WILSON 59
4.3. Desarrollo mejora 1, editado de Wilson
4.3.1. Dise no
El editado se Wilson se fundamenta en eliminar los elementos pertenecientes a
un conjunto que no sigan un patr on claro respecto al conjunto. Eliminar los ele-
mentos extremos de un conjunto supone que quede determinado m as claramente
si un elemento pertenece o no a un conjunto. En la gura 4.16 se puede observar
este proceso. Inicialmente se tienen una serie de elementos cada uno pertenecien-
te a un conjunto. Algunos de esos elementos (marcados en rojo) est an dispersos y
es complicado determinar su pertenencia a un determinado conjunto. El algoritmo
de editado de Wilson se encarga de eliminar esos elementos y as tener conjuntos
completamente determinados y minimizando las ambig uedades. Con la aplicacion
de este algoritmo sobre el conjunto de im agenes de entrenamiento del proyecto se
esperan tener mejores resultados.
Figura 4.16: Resultado del editado de Wilson.
A la hora de implementarlo la aproximaci on m as obvia sera la que sigue. Por
cada imagen del conjunto de entrenamiento, se extrae dicha imagen, se elimina esa
imagen del conjunto y se compara con el nuevo conjunto creado. Si el proceso de
inferencia es acertado querra decir que esa imagen es aceptada por el algoritmo de
Wilson, por lo que ese elemento debe estar presente en el conjunto de imagenes
de entrenamiento editadas. En la imagen 4.17 se puede apreciar gracamente este
proceso.
Adem as de aplicar el editado de Wilson al conjunto de entrenamiento. Tambien
se considera conveniente una revisi on en este conjunto de fotos ambiguas. Por lo
60 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.17: Seleccion del editado de Wilson.
que se tendr an que eliminar todas las im agenes que contengan ni nos, personas de
espalda e im agenes con multitud de personas.
4.3.2. Implementaci on
La implementaci on de esta mejora no implica ninguna modicacion en los m odu-
los de la versi on inicial del proyecto. Lo unico que diere es que el conjunto de
im agenes de entrenamiento ser a diferente. Para modicar este conjunto se ha im-
plementado un script para procesarlo seg un el algoritmo de Wilson. Siguiendo las
indicaciones hechas en la fase de dise no, el proceso en pseudo codigo seria el siguiente:
1 imList := Lista de paths de las imagenes de entrenamiento
2 etList := Lista de etiquedas de las imagenes de entrenamiento
3 FVList := Lista de vectores de caracteristicas de las imagenes de
4 entrenamiento
5 ConjEditado := Vacio
6
7 Para i:=1 Hasta longitud de imList Hacer
8 imPath := imListAux(i)
9 imFV := FVListAux(i)
10 etiqueta := etListAux(i)
11 imList, etList, FVList := estraer elemento i del los conjuntos
12
13 W1 := Entrenar al clasificador con FVList y etList
14 fallos := resultado inferencia de W1 con la imagen i
15
16 Si fallos = 0 Entonces
4.3. DESARROLLO MEJORA 1, EDITADO DE WILSON 61
17 Incluir imagen i en ConjEditado
18 Fin Si
19 Fin Para
Listado 4.5: ScriptEditado
4.3.3. Ejecucion de los test y resultados
Ejecucion de los test
Como la implementacion de esta mejora no implica ning un cambio respecto al
c odigo del proyecto, se emplear a el mismo script usando en la seccion 4.2.3. Se
tendr a que obtener los nuevos valores de los parametros que optimizan el resultado.
Analisis de los resultados
En la gr aca 4.18 se muestran los resultados obtenidos por el script de test
usando el conjunto de entrenamiento editado. En la gr aca correspondiente a la
variable sigma se puede observar que el valor que obtiene mejores resultados es 3.5,
coloreado en verde. En la gr aca de la variable tamVentanaX se muestra una mejora
signicativa para el valor 22, consiguiendo un 61 % de acierto.
Con los valores de las variables sigma y tamVentanaX jados se puede apreciar
en la graca de la variable desplazamiento como se ana a un m as el porcentaje
de aciertos. De entre todos los valores considerados en el test el que tiene mejor
resultado es el desplazamiento 2 con un 63 % de aciertos. Finalmente, de la ultima
gr aca se puede concluir que utilizar 9 orientaciones obtiene mejores resultados que
el resto.
De estos resultados se puede concluir la mejor conguraci on de las variables de
el problema que nos ocupa es y que obtiene un 63 % de aciertos es:
Sigma = 3.5
tamVentanaX = 22
Desplazamiento = 2
N umero de orientaciones = 9
En vista de los resultados obtenidos se puede armar que el editado de Wilson
ha proporcionado una mejora signicativa al resultado nal. Se ha incrementado el
porcentaje de aciertos en un 3 %. Lo que conrman las hipotesis iniciales respecto
al algoritmo de editado de Wilson.
62 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.18: Resultados con el conjunto de entrenamiento editado.
Propuesta de mejora
Haciendo una reexi on sobre las debilidades de este algoritmo, se planteaba
la siguiente pregunta: Que partes del cuerpo determinan mejor el genero de una
persona?. En base a esta cuesti on, surgi o la idea de optar por un enfoque diferente
al algoritmo. Actualmente se procesan las im agenes dando la misma importancia a
todas las zonas de la imagen. Es probable que si el algoritmo se centrase solo en
las zonas m as signicativas de la imagen en lo que a genero se reere, se obtengan
mejores resultados.
Para llevar esta idea a cabo, la primera tarea consiste en determinar cuales
son esas zonas que producen una mayor tasa de aciertos. Una vez conocidas, solo
se tendran en cuenta esas zonas. Por lo que el algoritmo, en vez de centrarse en
toda la imagen (enfoque global) solo tendra en cuenta las zonas m as signicativas
(enfoque local).
4.4. DESARROLLO MEJORA 2, ENFOQUE LOCAL 63
4.4. Desarrollo mejora 2, enfoque local
4.4.1. Dise no
Hasta ahora, el algoritmo recorra la imagen por medio de ventanas de extracci on
y concatenaba los vectores de caractersticas de cada ventana. El vector resultan-
te era el que se empleaba para entrenar al clasicador. Es decir, se entrenaba al
clasicador con la imagen al completo (global).
Para dar un enfoque local al proceso se deberan procesar las ventanas por se-
parado. Una aproximacion a este problema sera usar i clasicadores, uno por cada
ventana de extracci on. Cada clasicador corresponde a una zona de la imagen. El
proceso de inferencia de una imagen seria una serie de consultas sobre cada una
de sus ventanas. Es decir, el clasicador i hara la inferencia con la ventana i de la
imagen.
Con este proceso se obtendran i resultados, uno por cada ventana de extraccion.
De esos resultados, se seleccionaran las ventanas con mayor ndice de aciertos. Pos-
teriormente se usara el algoritmo descrito en la seccion 4.3, pero teniendo s olo en
cuenta las ventanas con mas ndices de aciertos, no todas las ventanas de la imagen.
En resumen, esta mejora implica dos fases. La primera fase consiste en obtener
las ventanas con mayor ndice de aciertos. Y la segunda fase consiste en ejecutar el
algoritmo global descrito en las secciones anteriores, pero teniendo en cuenta solo
las ventanas obtenidas en la primera fase y desechando el resto. Seguidamente se
explicar a m as detalladamente estas fases:
Fase de Obtencion de ventanas optimas
Existen varias opciones alcanzar los objetivos de esta fase. Una es modicar
el algoritmo de extraccion de caractersticas visto en la seccion 4.3 y la otra, mas
sencilla, es modicar el script principal del programa. Dados los pocos cambios que
habra que realizar en el c odigo, se decidi o aplicar la segunda opci on.
En versiones anteriores, la estructura de datos que se usaba para entrenar al
clasicador era la siguiente:
1 415616517865165161651.....16516516 0
2 177932657816983322486.....52245583 1
3 412553698578596523369.....55855558 1
4 ...
5 ...
6 478958742665899556698.....55558854 0
Listado 4.6: Fragmento de la BBDD de imagenes
64 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Cada la i de la estructura corresponda al vector de caractersticas seguido de
la etiqueta que indicaba si dicho vector representa a un hombre (0) o a una mujer(1)
de la imagen i. El vector i se forma concatenando los vectores correspondientes
a cada una de las ventanas de una imagen i. Para facilitar el proceso en tareas
posteriores, es necesario modicar dicha estructura. Lo que se precisa es obtener
una lista de vectores de caractersticas de cada una de las ventanas de todas las
im agenes, es decir, no concatenar los vectores. Si una imagen tiene N ventanas y
tenemos M imagenes, el n umero total de las sera de NxM. Con esta estructura se
consigue tener localizadas las ventanas correspondientes a la posicion i de todas las
im agenes. Es decir, la posici on de la ventana 2 en cada una de las im agenes sera:
2, N+2, (N*2)+2, (N*3)+2... (N*(M-1))+2. En la Figura 4.19 se puede ver m as
claramente.
Figura 4.19: Transformacion de la estructura de vectores.
Con la estructura modicada, el siguiente paso consiste en entrenar las venta-
nas de las imagenes por separado. Para ello se requieren N clasicadores, uno por
cada posicion de una ventana en cada imagen. De este modo, el clasicador i proce-
sar a solo las im agenes que esten en la posici on i. En versiones anteriores, el proceso
de inferencia se realizaba como muestra la Figura 4.20, pero con esta modicacion,
el proceso quedara como se muestra en la Figura 4.21.
Como resultado de aplicar este algoritmo, obtendramos un vector de porcen-
tajes de talla N, siendo N el n umero de ventanas presentes en una imagen. Cada
porcentaje representa lo signicativa que esa ventana respecto al genero. Y esta es
4.4. DESARROLLO MEJORA 2, ENFOQUE LOCAL 65
Figura 4.20: Procesado de los vectores en versiones anteriores.
la informacion que necesita la siguiente fase.
Fase de ejecucion del algoritmo s olo con ventanas optimas
En versiones anteriores, la formacion de un vector de una determinada imagen
se realizaba uniendo todos los vectores de sus ventanas. Ahora se deben formar los
vectores de igual modo, pero teniendo solo en cuenta las ventanas seleccionadas en
la fase anterior. As se consigue eliminar el ruido que pueden provocar ventanas
irrelevantes en en resultado nal. Los vectores tendr an un talla de L*K, siendo L el
n umero de orientaciones usadas y K el n umero de ventanas optimas contempladas.
4.4.2. Implementaci on
Esta mejora solo afecta al script principal del programa. Como ya se ha explicado,
esta mejora implica dos fases bien diferenciadas.
Fase de Obtencion de ventanas optimas
El siguiente listado muestra como se implemento la fase de obtenci on de ventanas
optimas. En primer lugar, y como en las versiones anteriores, se tienen que crear
los cheros de vectores de caractersticas output train y output test mediante la
llamada a la funci on RG CreateFVFile. Uno vez obtenidos estos cheros, se tienen
que transformar con el metodo descrito en la fase de dise no. Con la modicaci on
hecha, se ejecuta el proceso de inferencia. Se crea un vector de resultados de talla
n umero de ventanas, cada posici on i representa el resultado dado por el clasicador i.
El ultimo paso es hacer una iteracion sobre el n umero de ventanas. Por cada posici on
i del conjunto de ventanas, se recorren las ventanas con la posicion i de todas las
im agenes y se entrena al clasicador i, para posteriormente guardar el resultado en
la posici on i del vector Resultados.
Como resultado se muestra por pantalla el vector resultados y se observa cuales
son las ventanas con mayor ndice de aciertos. Esas ventanas ser an las que se utilicen
66 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.21: Procesado de los vectores actualmente.
en la fase posterior.
1 RG_CreateFVFile (input_test, output_test, tamVentanaX, desplazamiento,
2 sigma, nbins, locbin, TH)
3 lenFV := RG_CreateFVFile(input_train, output_train, tamVentanaX,
4 desplazamiento, sigma, nbins, locbin, TH)
5
6 #Modificar las estructuras de datos de train
7 n_ventanas := lenFV/nbins
8 FV_Train_Set := Lee fichero output_train
9 n_fotos_train := Longitud de FV_Train_Set
10 FV_Train_Set2 := Nueva matriz de talla
11 (n_fotos_train*n_ventanas) X n_bins+1
12 Para i := 1 Hasta n_fotos_train Hacer
13 z := (i * n_ventanas) - n_ventanas + 1
14 Para j := nbins Incremento nbins Hasta lenFV Hacer
15 FV_Train_Set2(z, 1:nbins) := FV_Train_Set(i, j-(nbins-1):j)
16 FV_Train_Set2(z, nbins+1) := FV_Train_Set(i, lenFV+1);
17 Fin Para
18 Fin Para
19
20 #Modificar las estructuras de datos de test
21 FV_Test_Set := Lee fichero output_test
4.4. DESARROLLO MEJORA 2, ENFOQUE LOCAL 67
22 n_fotos_test := Longitud de FV_Test_Set
23 FV_Test_Set2 := Nueva matriz de talla
24 (n_fotos_test*n_ventanas) X n_bins+1
25 Para i := 1 Hasta n_fotos_test Hacer
26 z := (i * n_ventanas) - n_ventanas + 1
27 Para j := nbins Incremento nbins Hasta lenFV Hacer
28 FV_Test_Set2(z, 1:nbins) := FV_Test_Set(i, j-(nbins-1):j)
29 FV_Test_Set2(z, nbins+1) := FV_Test_Set(i, lenFV+1);
30 Fin Para
31 Fin Para
32
33 #Realizar las inferencias
34 Resultados := Nuevo vector de talla n_ventanas
35 Para i := 1 Hasta n_ventanas Hacer
36 Train := []
37 Test := []
38 Para j := i Incr n_ventanas Hasta (n_fotos_train-1*n_ventanas)+i Hacer
39 Train := Train + Ventana en la posicion i de la imagen j-i
40 Fin Para
41 Para j := i Incr n_ventanas Hasta (n_fotos_test-1*n_ventanas)+i Hacer
42 Test := Test + Ventana en la posicion i de la imagen j-i
43 Fin Para
44 W1 := Crea el clasificador Knn a partir de Train
45 labels_test := Etiquetas de Test
46 labels_res := Resultados de W1 con el conjunto Test
47 fallos := Comparar resultados de la inferencia
48 Resultados := Resultados + ((n_fotos_test-fallos)/n_fotos_test)*100
49 Fin Para
50
51 Escribe Resultados
Listado 4.7: ScriptPRVersionLocal
Fase de ejecucion del algoritmo s olo con ventanas optimas
La implementaci on de esta fase no implica modicaciones importantes. Una vez
se tengan las ventanas optimas seleccionadas y las estructuras de vectores de carac-
tersticas modicadas, el siguiente paso es concatenar los vectores de esas ventanas
para cada imagen, por lo que el vector formado por las ventanas optimas ser a el
que represente a dicha imagen. Con los vectores concatenados, s olo queda realizar el
proceso de inferencia del mismo modo que se realizaba en las versiones anteriores.
Todo este proceso est a descrito en el siguiente Listado.
68 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
1 RG_CreateFVFile (input_test, output_test, tamVentanaX, desplazamiento,
2 sigma, nbins, locbin, TH)
3 lenFV := RG_CreateFVFile(input_train, output_train, tamVentanaX,
4 desplazamiento, sigma, nbins, locbin, TH)
5
6 #Modificar las estructuras de datos de train
7 n_ventanas := lenFV/nbins
8 FV_Train_Set := Lee fichero output_train
9 n_fotos_train := Longitud de FV_Train_Set
10 FV_Train_Set2 := Nueva matriz de talla
11 (n_fotos_train*n_ventanas) X n_bins+1
12 Para i := 1 Hasta n_fotos_train Hacer
13 z := (i * n_ventanas) - n_ventanas + 1
14 Para j := nbins Incremento nbins Hasta lenFV Hacer
15 FV_Train_Set2(z, 1:nbins) := FV_Train_Set(i, j-(nbins-1):j)
16 FV_Train_Set2(z, nbins+1) := FV_Train_Set(i, lenFV+1);
17 Fin Para
18 Fin Para
19
20 #Modificar las estructuras de datos de test
21 FV_Test_Set := Lee fichero output_test
22 n_fotos_test := Longitud de FV_Test_Set
23 FV_Test_Set2 := Nueva matriz de talla
24 (n_fotos_test*n_ventanas) X n_bins+1
25 Para i := 1 Hasta n_fotos_test Hacer
26 z := (i * n_ventanas) - n_ventanas + 1
27 Para j := nbins Incremento nbins Hasta lenFV Hacer
28 FV_Test_Set2(z, 1:nbins) := FV_Test_Set(i, j-(nbins-1):j)
29 FV_Test_Set2(z, nbins+1) := FV_Test_Set(i, lenFV+1);
30 Fin Para
31 Fin Para
32
33 Train := []
34 Test := []
35 Para i := 1 Hasta n_fotos_train Hacer
36 Train := Extraer ventanas optimas de imagen i en
37 FV_Train_Set2
38 Fin Para
39
40 Para i := 1 Hasta n_fotos_test Hacer
41 Train := Extraer ventanas optimas de imagen i en
42 FV_Test_Set2
43 Fin Para
4.4. DESARROLLO MEJORA 2, ENFOQUE LOCAL 69
44
45 W1 := Crea el clasificador Knn a partir de Train
46 labels_test := Etiquetas de Test
47 labels_res := Resultados de W1 con el conjunto Test
48 fallos := Comparar resultados de la inferencia
49 Escribe ((n_imagenes_test-fallos)/n_imagenes_test)*100
Listado 4.8: ScriptPRVersionLocalOptimas
4.4.3. Ejecucion de los test y resultados
Ejecucion de los test
Como en versiones anteriores, se utilizar a el algoritmo ya implementado para
averiguar los parametros optimos. Se ejecutar a esta version con diferentes paramen-
tros y entre todos ellos, se valorara cual es la mejor conguraci on y cuales son las
ventanas optimas.
Seguidamente, con las ventanas seleccionadas, se ejecutar a el algoritmo pero en
vez de concatenar todas las ventanas, solo se concatenaran las ventanas optimas.
Analisis de los resultados
En las gracas 4.22 y 4.23 se pueden observar los resultados obtenidos en cada
una de las ventanas variando la variable sigma.
Figura 4.22: Resultados de la version local para valores de sigma entre 0.5 y 4.5
Con la siguiente conguraci on inicial:
70 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.23: Resultados de la version local para valores de sigma entre 5.5 y 9.5
tamVentanaX = 22
Desplazamiento = 4
N umero de orientaciones = 9
En vista de las gr acas, los resultados son muy similares. Pero el valor 1.5 de
sigma es el mas constante y el que obtiene picos m as altos que el resto. Cabe destacar,
que dichos picos corresponden a las ventanas situadas en las cabezas y caderas de
las personas, lo cual es muy signicativo.
En las gracas 4.24 y 4.25 se representan los resultados obtenidos variando la
variable tamVentanaX y manteniendo los otros par ametros con la siguiente congu-
raci on:
sigma = 1.5
Desplazamiento = 4
N umero de orientaciones = 9
Analizando los resultados obtenidos se puede observar que las ventanas obtienen
un promedio de aciertos mas altos con el valor 26, con aciertos de hasta un 57 %.
Finalmente, en las gr acas 4.26 y 4.27 se representan los resultados obtenidos
variando la variable desplazamiento. Siendo la conguraci on del resto de parametros:
sigma = 1.5
tamVentanaX = 26
4.4. DESARROLLO MEJORA 2, ENFOQUE LOCAL 71
Figura 4.24: Resultados de la version local para valores de tamVentanaX entre 12 y
18
N umero de orientaciones = 9
Los mejores resultados han sido dados por el valor de desplazamiento 4, con las
ventanas 13 y 20 con un 57 % y un 58 % respectivamente. Lo cual hace pensar que
son las ventanas optimas y las que tendr an que ser concatenadas. El resultado del
algoritmo teniendo en cuenta solo las ventanas optimas es de un 57 %.
En vista de los resultados obtenidos se puede armar que esta modicaci on no ha
sido acertada para los intereses del proyecto. Se esperaba que si s olo se analizaban
las ventanas signicativas se eliminasen las distorsiones que podan provocar zonas
de las im agenes superuas, pero no ha sido as.
Propuesta de mejora
En vista de los pobres resultados obtenidos con la versi on local del algoritmo
Histograma de gradientes orientados. Se planteo la posibilidad de estudiar otro tipo
de algoritmo para la extracci on de caractersticas, Local binary patters. Dicho algo-
ritmo obtuvo unos resultados muy aceptables en el reconocimiento de rostros, lo que
hace pensar que la adaptacion a nuestro caso de estudio pueda ser exitosa.
72 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.25: Resultados de la version local para valores de tamVentanaX entre 20 y
26
4.4. DESARROLLO MEJORA 2, ENFOQUE LOCAL 73
Figura 4.26: Resultados de la version local para valores de desplazamiento entre 2 y
8
74 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.27: Resultados de la version local para valores de desplazamiento entre 10
y 16
4.5. DESARROLLO MEJORA 3, LOCAL BINARY PATTERNS 75
4.5. Desarrollo mejora 3, Local binary patterns
4.5.1. Dise no
Como el algoritmo anteriormente usado, Local binary patterns tiene como proposi-
to la extracci on de bordes de una imagen. La idea a seguir para implantar este al-
goritmo es la siguiente. Partiendo de una imagen, se recorren sus ventanas de igual
modo que se hizo con el algoritmo de histograma de gradientes orientado. Para cada
pixel de la ventana, se recorren sus ocho vecinos empezando por la esquina superior
izquierda y rodando en el sentido de las agujas del reloj. A su vez se va formando
un n umero en funci on de si el vecino es mayor o igual que el pixel estudiado (el del
centro), si es as a nadimos un 1, en caso contrario un 0. Al obtenerse un n umero de
ocho cifras con unos y ceros, se interpreta como un n umero binario y se realiza la
conversi on a decimal. En la Figura 4.28 se explica gr acamente este proceso.
Figura 4.28: Procesado de pixeles con local binary patterns.
Para cada ventana se tendr an NxM n umeros de 0 al 255, siendo N y M el n umero
de las y columnas respectivamente. El vector de caractersticas para una ventana
sera un histograma de talla 256. Cada posici on i de ese histograma representa el
n umero de ocurrencias que ha tenido el n umero i en la ventana. En un paso opcional,
se podra aplicar un vector de pesos al histograma. Finalmente, el vector nal de
una imagen es la concatenaci on de los vectores de sus respectivas ventanas.
Cabe destacar que con este algoritmo los par ametros de conguraci on del mismo
cambian. El n umero de orientaciones ya no es necesario, y sigma s olo interviene si
se usan vectores de pesos en el vector de caractersticas.
La organizaci on de los m odulos representada en la Figura 4.3 cambia ligeramente
con esta modicaci on. En la Figura 4.29 se puede apreciar la nueva estructura del
c odigo, el negro representa los m odulos modicados y el rojo los m odulos a nadidos.
4.5.2. Implementaci on
Seguidamente se explicar an los modulos implicados en est a modicacion, que
est an representados en la Figura 4.29.
76 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
Figura 4.29: Esquema de modulos para la version LBP.
ExtractFeatures
La implementaci on de este modulo no implica grandes cambios respecto a la
versi on inicial. Solo diere en la fase en la que obtiene el vector de caractersticas,
llamando a la funci on RG ExtraerHistograma.
1 Procedimiento RG_ExtractFeatures(im, tamVentanaX, desplazamiento,
2 VectorGaus, nbins, locbin, TH)
3 ii, ii2 := RG_IICreate(im)
4 NR, NC := tama~no de im
5
6 Para i := 1 Hasta desplazamiento incremento NR Hacer
7 Si i+tamVentanaX-1 <= NR Entonces
8 imNorm := RG_NormalizeIntensity (im, ii, ii2, i, 1,
9 tamVentanaX, NC)
10 h := RG_ExtraerHistograma(imNorm, VectorGaus)
11 FV := FV Concatenado con h
4.5. DESARROLLO MEJORA 3, LOCAL BINARY PATTERNS 77
12 Fin Si
13 Fin Para
14 Devolver RG_PostProcessVector(FV, TH);
15 Fin Procedimiento
Listado 4.9: ExtractFeatures
ExtraerHistograma
Este m odulo es el encargado de, a partir de una porcion de imagen (ventana)
y un vector de pesos, calcular el histograma correspondiente. Para ello se inicializa
un vector de talla 256. Seguidamente se recorren los pixels la ventana y se llama a
la funcion RG LocalBinaryPattern para cada pixel, con el n de obtener el n umero
que caracteriza a dicho pixel. Posteriormente, se incrementa en uno el valor de la
posicion del vector v dada por el n umero que genera dicho pixel.
1 Procedimiento RG_ExtraerHistograma(im, VectorGaus)
2 NR, NC := tama~no de im
3 v := Vector de talla 256
4 Para i := 1 Hasta NR+1 Hacer
5 Para j := 1 Hasta NC+1 Hacer
6 num := RG_LocalBinaryPattern(im, i, j)
7 v[num] := v[num] + 1
8 Fin Para
9 Fin Para
10 Devolver v;
11 Fin Procedimiento
Listado 4.10: ExtraerHistograma
LocalBinaryPattern
Por ultimo, este modulo tiene como nalidad el c alculo del valor correspondiente
a un determinado pixel. Para realizar esta tarea en primer lugar se crea un vector
de talla ocho. Seguidamente se recorren los vecinos del pixel dado empezando por la
esquina superior izquierda y siguiendo el sentido de las agujas del reloj. Si el vecino
es mayor o igual que el pixel que se est a estudiando, se escribe un 1 en el vector, en
caso contrario un 0. Finalmente se interpreta al vector como un n umero binario y
se hace la conversi on a decimal, para terminar retornandolo.
1 Procedimiento RG_LocalBinaryPattern(im, i, j)
2 v := Vector de talla 8
3 vecinos := Vecinos de (i,j)
78 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
4 Para z:= vecinos[1] Hasta 8
5 Si vecinos[i] >= im[i, j] Entonces
6 v[z] := 1;
7 SiNo
8 v[z] := 0;
9 Fin Si
10 Fin Para
11 num := Converir v en decimal
12 Devolver num
13 Fin Procedimiento
Listado 4.11: LocalBinaryPattern
4.5.3. Ejecucion de los test y resultados
Ejecucion de los test
Como en versiones anteriores, el test de esta modicacion consistir a en aplicar
el script para el test de variables optimas. Dicho script tiene algunas modicaciones
respecto a versiones anteriores, ya que la variable n umero de orientaciones no afecta
en esta version del algoritmo.
Analisis de los resultados
En la primera graca de la Figura 4.30 se muestran los resultados de la ejecucion
de script de test variando el par ametro sigma. Se puede observar que el valor de
sigma, 3.5, es el que obtiene mejores resultados con un 55 %. Siendo la conguracion
del resto de par ametros como sigue:
tamVentanaX = 8
Desplazamiento = 4
sigma = 3.5
Teniendo jado el valor optimo de sigma, se procede a continuacion a evaluar el
par ametro tamVentanaX. En la gr aca 2 de la Figura 4.30 se muestran los resulta-
dos obtenidos variando este par ametro. El valor optimo para dicha variable es 12,
obteniendo un porcentaje de aciertos del 55 %. Lo cual indica que no se ha logrado
mejorar la tasa de aciertos variando este parametro. La conguracion del resto de
par ametros ha sido:
tamVentanaX = 12
4.5. DESARROLLO MEJORA 3, LOCAL BINARY PATTERNS 79
Figura 4.30: Resultados de la version LBP para valores de sigma entre 0.5 y 4.5 y
de tamVentanaX entre 4 y 32
Desplazamiento = 4
sigma = 3.5
Figura 4.31: Resultados de la version LBP para valores de desplazamiento entre 4 y
12
Finalmente, queda por evaluar el par ametro desplazamiento. Con los par ametros
sigma y tamVentanaX jados en 3.5 y 12 respectivamente, se procede a evaluar a la
variable desplazamiento. Los resultados obtenidos se muestran en la gr aca 4.31. En
vista de los resultados se puede observar que el parametro planteado inicialmente
80 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
para desplazamiento era el id oneo, con un valor de 4. La tasa de aciertos es de un
55 % con los siguientes par ametros:
tamVentanaX = 12
Desplazamiento = 4
sigma = 3.5
En vista de los resultados obtenidos por esta modicaci on, se puede armar que
la implementaci on del algoritmo Local Binary Patterns no obtiene buenos resultados
para el reconocimiento del genero, desechando as la hip otesis inicial.
4.6. REVISI

ON DEL PROYECTO 81
4.6. Revisi on del proyecto
4.6.1. Proceso de comprobacion
El proyecto ha estado en un constante control en cada una de las fases del mismo.
Se han realizado pruebas y revisiones constantes con el n de eliminar posibles errores
en las implementaciones y dar veracidad a los resultados obtenidos. Una de estas
pruebas ha consistido en calcular una imagen con el gradiente medio de todas las
fotos de hombres y otra para las mujeres. En la Figura 4.32 se representa la media
de las imagenes de la BBDD para hombres y para mujeres. A pesar de que las
diferencias entre una y la otra sean mnimas, son lo sucientemente representativas
para nuestro caso de estudio. En zonas como las caderas, hombros y cabeza, se
observan claramente las diferencias. Con esta prueba se consigue validar el conjunto
de im agenes utilizadas en el proyecto y ademas, refuerza la teora de que existen
zonas mas representativas que otras en lo que al genero se reere.
Figura 4.32: Gradiente medio de las imagenes en la BBDD.
Tambien se estudiaron diferentes tipos de clasicadores incluidos en la librera
PRTools para descartar una mala selecci on del clasicador inicial. En un principio
se utiliz o el clasicador Knn (k-nearest neighbor classier), pero existen otros como:
bpxnc (Train neural network classier by back-propagation)
lmnc (Train neural network by Levenberg-Marquardt rule)
rbnc (Train radial basis neural network classier)
82 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
rnnc (Random neural network classier)
svc (Support vector classier)
Todos ellos obtuvieron un resultado similar o peor que el clasicador Knn, por
lo que se conrm o la correcta aplicacion de dicho clasicador para este proyecto.
Para nalizar, se sometio a las implementaciones a una prueba para validar
su correcto funcionamiento, es decir, se evaluo si esos algoritmos son capaces de
clasicar correctamente dos grupos de fotos con caractersticas contrapuestas. Se
elaboraron dos conjuntos de im agenes, el primero compuesto por im agenes de pai-
sajes en horizontal, y en el segundo con las mismas imagenes pero en vertical. Las
im agenes de paisajes tienes como caracterstica com un, que todas tienen un borde
muy marcado que es el horizonte, por lo que las im agenes de un grupo tendr an el
borde del horizonte en sentido horizontal y el otro grupo con orientaci on vertical,
lo que generar a vectores de caractersticas completamente diferentes. Al ejecutar los
algoritmos se espera que la tasa de aciertos sea muy elevada en todas las imple-
mentaciones, ya que se est an clasicando imagenes con gradientes completamente
distintos. El resultado obtenido para la versi on inicial fue del 90 %, la versi on con
enfoque local obtuvo un 90 % tambien y nalmente, la versi on con Local Binary
Patterns obtuvo un 85 %. Estos resultados conrman las implementaciones de los
algoritmos funcionan correctamente.
4.6.2. Evaluaci on global de los resultados
El objetivo principal de este proyecto era el estudio de tecnicas para el reco-
nocimiento de genero por medio del perl humano. Se estudiaron dos tecnicas en
particular, Histograma de gradientes orientados y Local Binary Patterns. El primero
obtuvo buenos resultados en el reconocimiento de presencia humana y el segundo, en
el campo del reconocimiento del rostro en personas. Por la similitud con el proposito
de este proyecto, se propuso como hip otesis inicial que estas tecnicas podran dar
buenos resultados.
Durante el estudio de la tecnica Histograma de gradientes orientados, se propu-
sieron distintas mejoras en funcion de los resultados obtenidos. Despues de haber
implementado la version inicial, se obtuvo una tasa de aciertos del 57 %. Seguida-
mente se implementaron modicaciones respecto a la versi on inicial. Como aplicar
una normalizaci on de los vectores de caractersticas, con lo que se aumento la tasa
de aciertos al 59 %. Aplicar un ltro en los vectores de caractersticas que eliminase
los picos, consiguiendo una efectividad del 60 %. Tambien se opt o por modicar el
conjunto de im agenes de entrenamiento usando la tecnica de editado de Wilson, con
lo que se aumentaron los acierto hasta llegar al 63 %. Finalmente, se planteo una
ultima mejora sobre este algoritmo, aplicar un enfoque local al procesado de una
4.6. REVISI

ON DEL PROYECTO 83
imagen, dando m as importancia a las zonas de la imagen m as representativas del
genero humano. A pesar de que se esperaban unos resultados positivos implemen-
tando esta mejora, nalmente la tasa de aciertos descendi o al 57 %.
En vista de los resultados obtenidos se decidi o afrontar el problema con el uso
de otras tecnicas. Inicialmente se esperaban unos resultados positivos teniendo en
cuenta las similitudes de este proyecto con proyectos anteriores que usaron esta
tecnica. Despues de reexionar sobre los resultados y las debilidades del algoritmo,
se plantear an propuestas de mejora para futuros trabajos en este ambito.
La siguiente tecnica a utilizar fue Local Binary Patterns. Este algoritmo obtuvo
buenos resultados en el reconocimiento facial, lo que hizo pensar que podra ser
una buena alternativa para afrontar el problema que nos ocupa. Pero los resultados
reejados denotan que las hip otesis iniciales son erroneas. Solo se consiguio un 55 %
de efectividad, lo cual hizo desestimar posibles mejoras para esta tecnica.
Dado que el objetivo principal era el estudio de tecnicas de reconocimiento de pa-
trones aplicadas al reconocimiento de genero, se puede armar que se han cumplido.
Un hecho obvio, es que el resultado nal del proyecto hubiese sido m as satisfactorio
si se hubiese dado con una solucion efectiva al problema. Pero dada la dicultad del
problema que se trata, podra ser una meta demasiado ut opica y con toda certeza,
fuera del alcance de un proyecto n de carrera.
4.6.3. Futuras vas de investigacion
Reexionando sobre las debilidades de los algoritmos desarrollados, se llego a un
conclusi on clara, el funcionamiento general es correcto, pero no se estan extrayendo
las caractersticas apropiadas para llegar a reconocer el genero de una persona. Se
considera que la raz on de que no se obtengan unos resultados aceptables es que en la
fase de extracci on de caractersticas se est an procesando atributos poco signicativos
en cuanto a genero.
En este sentido, se podra plantear otro enfoque a la hora de aplicar pesos a una
zona de la imagen. Durante todo el proyecto se ha aplicado un vector de pesos que
atribuye mas importancia a la zona central de la imagen. Pero teniendo en cuenta
que las personas est an centradas en la imagen, se estara dando m as importancia
al cuello que a los hombros en si en el caso de estos. Pero a su vez, la cabeza de
las personas esta justo en el centro de la imagen, por lo que es conveniente usar un
vector de pesos que de mas importancia al centro de la imagen.

Estos datos sugieren
la idea de aplicar una matriz de pesos a toda la imagen, dando mayor peso a las
zonas donde tendran que presentarse, caderas, cabezas y hombros, y dando un peso
menor al resto de las zonas de la imagen.
Otra va de investigaci on consistira en el estudio de como los humanos dife-
rencian el genero. Existen otros factores que hacen que una persona haga una in-
ferencia sobre esta cuestion, como puede ser el tipo de ropa, el estilo de pelo, etc.
84 CAP

ITULO 4. DESCRIPCI

ON DEL PROYECTO
En denitiva, factores sociales que se atribuyen a hombres y a mujeres, y que son
excluyentes entre si estadsticamente. Si se consiguiese informatizar esos criterios, es
muy probable que la ecacia del programa aumente. Una forma para comprender la
percepcion humana, consistira en desarrollar una aplicacion que mostrase im agenes
a una persona y que esta tuviese que dictaminar si se trata de una mujer o de un
hombre. Dichas im agenes podran ser recortadas, mostrando as zonas especcas
de una persona, vestuario, estilo de peinado etc. De dicho experimento se podran
sacar conclusiones utiles para la detecci on del genero.
Captulo 5
Conclusiones
Gracias a este proyecto he podido experimentar las dicultades que conlleva el
problema de reconocimiento de genero. Al tratarse de un ambito novedoso, he teni-
do que adaptar tecnicas utilizadas en problemas similares y realizar modicaciones
para explorar distintos enfoques de c omo abordar el problema. El proyecto ha cum-
plido con creces su nalidad, que no es otra que validar metodos para dar solucion al
reconocimiento de genero. Independientemente de lo ecaces que hayan dichos meto-
dos, de lo que no cabe duda es que este proyecto servira como gua fundamental a
proyectos encaminados en este ambito.
Por lo general, las personas no son conscientes de la complejidad de los procesos
que entra na la visi on humana. Cuando distinguimos unas letras de otras, reconoce-
mos a personas cercanas a nosotros o reconocemos el genero de una persona con una
simple mirada, nuestro cerebro tiene que realizar un trabajo que implica procesos
muy complejos. En esencia, los proyectos de reconocimiento de genero intentan imi-
tar estos procesos. Si una persona sigue un determinado criterio para distinguir el
genero, un sistema de reconocimiento de patrones debera imitar estos criterios. Este
concepto no es trivial y precisamente es la dicultad del problema que nos ocupa. La
cuesti on principal es Como instruimos a un ordenador para que siga el raciocinio
humano?. Si reexionamos sobre esta idea nos damos cuenta de que el problema
que se intenta abordar tiene un alto nivel de dicultad. Con estos trabajos no se
pretende obtener resultados mejores que la percepci on humana, pero si aproximarse
a ellos.
Durante toda la carrera se han ido adquiriendo conocimientos que han servido
para poder afrontar un proyecto de estas caractersticas. Fundamentos en lenguajes
de programaci on asimilados en el trascurso de la carrera, han servido para que la
adaptaci on a un lenguaje nuevo, como es Matlab, haya sido relativamente sencilla.
Poco a poco, en las distintas asignaturas donde se impartan lenguajes de progra-
maci on estructurados, se ha ido moldeando la forma de organizar ideas, estructurar
c odigo etc, que sin duda ha conseguido facilitar en gran medida la organizacion de la
85
86 CAP

ITULO 5. CONCLUSIONES
implementaci on del proyecto. Conocimientos sobre la metodologa en el desarrollo de
proyectos Software, han sido de gran utilidad, tanto para el desarrollo del proyecto
como para la planicaci on del mismo.
En este proyecto cobra especial relevancia el papel de un ingeniero informatico.
Un ingeniero no emprende un proyecto desde cero, se apoya sobre trabajos realizados
previamente. Por lo tanto, la tarea de un ingeniero consiste mas bien en recopilar,
reutilizar, adaptar y reinventar trabajos realizados con anterioridad. Y as ha sucedi-
do en este trabajo, en la mayora de los casos, se han tenido que investigar trabajos
previos, adaptarlos a las necesidades y en algunos casos, reinventarlos.
Para realizar este proyecto se han tenido que adquirir multitud de conceptos nue-
vos. Reconocimientos de patrones, biometra, algoritmos de clasicacion, tecnicas de
editado de clases e incluso la utilizacion de L
A
T
E
X para la redacci on de esta memoria.
Conceptos que se consideran muy utiles para el desarrollo de una carrera profesional
y que adem as, abren una nueva va profesional completamente desconocida hasta
ahora.
Es importante destacar la continua evaluaci on a la que ha sido sometido el pro-
yecto. Un error de cualquier tipo puede suponer que los resultados y su posterior
an alisis comprometan fases posteriores del proyecto. Dada la metodologa utilizada
en la elaboraci on proyecto, ha sido vital hacer un exhaustivo control sobre el trabajo
realizado y as evitar errores que lleven a conclusiones err oneas.
Los resultados del proyecto han sido satisfactorios respecto a los objetivos marca-
dos inicialmente. Pero no se ha llegado a dar una soluci on efectiva al reconocimiento
de genero. El problema planteado es innovador y eso conlleva muchos fracasos antes
de conseguir un solucion denitiva. Es por ello que, aunque no se tenga una soluci on
al problema, se ha dado un gran paso. El trabajo realizado y los resultados obtenidos
indudablemente facilitar an el camino a nuevos proyectos.
A nivel particular, este proyecto me ha ayudado a tomar contacto con un proyecto
real. A menudo, durante la carrera, se afrontan problemas relativamente sencillos en
cuanto a extensi on y complejidad. Gracias a este trabajo, he podido experimentar lo
que supone afrontar un proyecto serio, con sus dicultades, el volumen de trabajo que
demanda y tambien con sus satisfacciones. No me cabe duda de que esta experiencia
supone para mi un salto cualitativo profesionalmente, que servir a para el desarrollo
de mi carrera como ingeniero informatico.
Todo en esta vida es mejorable, siempre se puede dar mas de uno mismo y realizar
un trabajo de m as calidad. Pero realmente me siento muy orgulloso del trabajo
realizado y de haber superado con exito los desafos que se han planteado a la largo
del proyecto. Solo me queda la inquietud de no haber desarrollado una soluci on
satisfactoria al problema planteado. Pero un proyecto tiene que tener un principio y
un n, tiene que tener unos lmites denidos para que no se alargue indenidamente
en el tiempo. Es por ello que se plantean nuevas ideas con la esperanza de que en
alg un trabajo futuro se pueda obtener una soluci on.
87
Citare una frase de Pablo Picasso que resume muy bien el desarrollo del proyecto:
La inspiracion existe, pero tiene que encontrarte trabajando.
88 CAP

ITULO 5. CONCLUSIONES
Bibliografa
[1] http://es.wikipedia.org/wiki/Knn.
[2] http://es.wikipedia.org/wiki/Computer_Vision.
[3] http://es.wikipedia.org/wiki/Reconocimiento_de_patrones.
[4] http://es.wikipedia.org/wiki/Biometra.
[5] http://en.wikipedia.org/wiki/Histogram_of_oriented_gradients.
[6] http://prtools.org/.
[7] Navneet Dalal and Bill Trigss. Histograms of oriented gradients for human
detection. In Proceedings of IEEE Conference Computer Vision and Pattern
Recognition, 2005.
[8] Abdenour Hadid and Matti Pietikanen. Face description with local binary
patterns: Application to face recognition. any, 2006.
[9] Javier Garca Jalon. Aprenda matlab 6.5 como si estuviera en primero. any,
2004.
[10] Patricia Caballero Lemos. Detecci on de humanos en imagenes. any, 2008.
[11] Sujing Wang Nidal Zeidat and Christoph F. Eick. Dataset editing techniques:
A comparative study. Department of Computer Science, University of Houston,
any.
[12] P. Juszczak R.P.W. Duin. A matlab toolbox for pattern recognition. any, 2007.
89
90 BIBLIOGRAF

IA

You might also like