Está en la página 1de 108

Departamento de Lenguajes y Sistemas Informaticos Universitat Jaume I

Deteccin de partes de la cara para su o aplicacin en problemas de o reconocimiento de personas

II31 - Sistemas Informaticos Informatica, curso 2008-2009 Ingeniera


Presentado por: ` Jordi Daros Vea Dirigido por: Raul Montoliu Colas n Mollineda Cardenas Ramo

Castelln, a 17 de septiembre de 2009 o

iii Resumen El Grupo de Visin de la Universitat Jaume I de Castelln, est trabao o a jando en problemas de reconocimiento de personas a partir de la cara y para algunos de los algoritmos que se estn utilizando es importante poder deteca tar partes de la cara (ojos, nariz, boca). Hasta ahora la localizacin se ha realizado de forma aproximada siguieno do reglas basdas en las proporciones humanas. A pesar de que, en general, estas reglas se cumplen, ser deseable poder disponer de un sistema ms a a exacto. Por otro lado, para una imagen de una cara que deseamos utilizar, puede darse el caso de que est no sea vlida por ditintas causas, como podr ser a a a estar borrosa, tener los ojos cerrados, etc. Este proyecto ha consistido en implementar un conjunto de tcnicas que cone tribuyan en esta l nea de investigacin. En concreto, este proyecto resuelve o el problema de la deteccin y eliminacin de las imgenes borrosas y el de o o a la deteccin ojos, nariz y boca a partir de cualquier imagen en que aparezca o una cara. Palabras clave Videovigilancia, Reconocimiento facial, Clasicadores, Biometr a

iv

Indice general
1. Introduccin o 1.1. Conceptos bsicos . . . . . . . . . . . . . . . . . . . . . . . . . a 1.1.1. Qu es la vigilancia? . . . . . . . . . . . . . . . . . . . e 1.1.2. Qu es un Circuito Cerrado de Televisin? . . . . . . e o 1.1.3. Qu es la v e deo-vigilancia? . . . . . . . . . . . . . . . 1.1.4. Qu es un sistema de reconocimiento de caras? . . . . e 1.1.5. Qu es la biometr . . . . . . . . . . . . . . . . . . . e a? 1.1.6. Qu es la autenticacin biomtrica? . . . . . . . . . . e o e 1.1.7. Qu es OpenCV? . . . . . . . . . . . . . . . . . . . . e 1.1.8. Cmo interpretar los resultados de la deteccin usano o do clasicadores? . . . . . . . . . . . . . . . . . . . . . 1.2. Motivacin del proyecto . . . . . . . . . . . . . . . . . . . . . o 1.3. El Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.4. Objetivos del proyecto . . . . . . . . . . . . . . . . . . . . . 1.4.1. Objetivos a largo plazo . . . . . . . . . . . . . . . . . 1.4.2. Objetivos de este proyecto . . . . . . . . . . . . . . . . 1.5. Descripcin general del entorno . . . . . . . . . . . . . . . . . o 1.6. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . 1.7. Planicacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 1.8. Tareas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.8.1. Familiarizarse con OpenCV . . . . . . . . . . . . . . . 1.8.2. Deteccin de caras . . . . . . . . . . . . . . . . . . . . o 1.8.3. Deteccin de borrosas . . . . . . . . . . . . . . . . . . o 1.8.4. Escoger el mejor conjunto de imgenes de prueba y a entrenamiento . . . . . . . . . . . . . . . . . . . . . . . 1.8.5. Deteccin de ojos . . . . . . . . . . . . . . . . . . . . . o 1.8.6. Deteccin de narices . . . . . . . . . . . . . . . . . . . o 1.8.7. Marcado de coordenadas en una imagen . . . . . . . . 1.8.8. Prueba automtica del rendimiento de los clasicadores a 1.8.9. Obtener a partir de una imagen, varias subimgenes . . a v 1 1 2 3 4 4 5 5 5 6 7 8 8 8 9 10 10 11 11 11 12 13 13 14 14 15 16 16

vi

INDICE GENERAL 1.8.10. Deteccin de bocas . . . . . . . . . . . . . . o 1.8.11. Redactar el tutorial para crear clasicadores 1.8.12. Memoria del proyecto y presentacin . . . . o 1.9. Organizacin del documento . . . . . . . . . . . . . o . . . . . . . . . . . . . . . . . . . . . . . . 17 17 17 18 21 21 24 24 26 30 31 32 36 38 41 55 58 59 60 60 61 62 62 65 65 66 67 67 68 68 69 70 70 72 72 73 73 73

2. Desarrollo y experimentacin o 2.1. Descripcin global del proyecto . . . . . . . . . . . . . . . o 2.2. Familiarizarse con OpenCV . . . . . . . . . . . . . . . . . 2.3. Deteccin de caras . . . . . . . . . . . . . . . . . . . . . . o 2.4. Deteccin de borrosas . . . . . . . . . . . . . . . . . . . . . o 2.5. Escoger las imgenes de prueba y entrenamiento . . . . . . a 2.5.1. Para el clasicador de caras . . . . . . . . . . . . . 2.5.2. Para los clasicadores de componentes de la cara . 2.6. Deteccin de ojos . . . . . . . . . . . . . . . . . . . . . . . o 2.7. Deteccin de narices . . . . . . . . . . . . . . . . . . . . . o 2.7.1. Clasicadores realizados . . . . . . . . . . . . . . . 2.7.2. Pruebas realizadas con otros conjuntos de imgenes a 2.7.3. Seleccin de un clasicador . . . . . . . . . . . . . . o 2.8. Marcado de coordenadas en una imagen . . . . . . . . . . 2.9. Prueba del rendimiento de los clasicadores . . . . . . . . 2.10. Obtener a partir de una imagen, varias subimgenes . . . . a 2.11. Deteccin de bocas . . . . . . . . . . . . . . . . . . . . . . o 2.12. Redactar el tutorial para crear clasicadores . . . . . . . . 2.13. Memoria del proyecto y presentacin . . . . . . . . . . . . o

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

3. Conclusiones 3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . o 3.2. Conclusin global del proyecto . . . . . . . . . . . . . . . . . . o 3.3. Conclusin de cada una de las tareas . . . . . . . . . . . . . . o 3.3.1. Familiarizarse con OpenCV . . . . . . . . . . . . . . . 3.3.2. Deteccin de caras . . . . . . . . . . . . . . . . . . . . o 3.3.3. Deteccin de borrosas . . . . . . . . . . . . . . . . . . o 3.3.4. Escoger el mejor conjunto de imgenes de prueba y a entrenamiento . . . . . . . . . . . . . . . . . . . . . . . 3.3.5. Deteccin de ojos . . . . . . . . . . . . . . . . . . . . . o 3.3.6. Deteccin de narices . . . . . . . . . . . . . . . . . . . o 3.3.7. Marcado de coordenadas en una imagen . . . . . . . . 3.3.8. Prueba automtica del rendimiento de los clasicadores a 3.3.9. Obtener a partir de una imagen, varias subimgenes . . a 3.3.10. Deteccin de bocas . . . . . . . . . . . . . . . . . . . . o 3.3.11. Redactar el tutorial para crear clasicadores . . . . . .

INDICE GENERAL

vii

3.3.12. Memoria del proyecto y presentacin . . . . . . . . . . 74 o 3.4. Conclusiones personales . . . . . . . . . . . . . . . . . . . . . 74 4. Posibles mejoras y ampliaciones 4.1. Mejorar el rendimiento de la aplicacin . . . . . . . . . . o 4.1.1. Bsqueda de un clasicador de narices mejor . . . u 4.1.2. Creacin de un clasicador mejor . . . . . . . . . o 4.2. Posibles ampliaciones del proyecto . . . . . . . . . . . . . 4.2.1. Mejora en la deteccin de los componentes . . . . o 4.2.2. Reconocimiento de personas . . . . . . . . . . . . 4.2.3. Videovigilancia . . . . . . . . . . . . . . . . . . . 4.3. Otros proyectos relacionados . . . . . . . . . . . . . . . . 4.3.1. Control de la fauna . . . . . . . . . . . . . . . . . 4.3.2. Sistema de reconocimiento del lenguaje de gestos 79 79 80 80 80 81 81 83 83 83 83 85 85 86 87 94

. . . . . . . . . .

. . . . . . . . . .

. . . . . . . . . .

A. Tutorial para crear clasicadores A.1. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . o A.2. Funcionamiento del algoritmo de deteccin de caras . . . . . . o A.3. Creacin del clasicador de narices . . . . . . . . . . . . . . . o Bibliograf a

viii

INDICE GENERAL

Indice de guras
1.1. Diagrama de Gant del proyecto . . . . . . . . . . . . . . . . . 20 2.1. 2.2. 2.3. 2.4. 2.5. Ejemplos de frames capturados . . . . . . . . . . . . . . . . . Ejemplos de caras recortadas . . . . . . . . . . . . . . . . . . . Ecuacin utilizada para calcular el valor medio de p o xel . . . . Ejemplos de imgenes para probar la aplicacin elimina borrosas a o Ejemplos de imgenes capturadas durante la inicializacin de a o la cmara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 2.6. Ejemplos de imgenes catalogadas como borrosas . . . . . . . a 2.7. Ejemplos de imgenes que no estn borrosas segn la aplicacin a a u o 2.8. Ejemplos de imgenes utilizadas como prueba para el clasia cador de caras . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.9. Ejemplos de imgenes utilizadas como imgenes negativas . . a a 2.10. Ejemplos de imgenes del conjunto de partes de la cara sin a narices usado como imgenes negativas . . . . . . . . . . . . . a 2.11. Ejemplos de las subimgenes extra a das de los otros conjuntos de imgenes negativas . . . . . . . . . . . . . . . . . . . . . . a 2.12. Ejemplos de imgenes de narices utilizadas . . . . . . . . . . . a 2.13. Algunas imgenes del conjunto de caras descartado . . . . . . a 2.14. Algunas imgenes del conjunto de prueba . . . . . . . . . . . . a 2.15. Algunas ejemplos de la deteccin de ojos . . . . . . . . . . . . o 2.16. Curvatura de los ojos abiertos y cerrados . . . . . . . . . . . . 2.17. Divisin de la cara en partes . . . . . . . . . . . . . . . . . . . o 2.18. Partes de la cara que se han seleccionado . . . . . . . . . . . . 2.19. Ejemplos de la deteccin de narices con imgenes capturadas o a en el laboratorio . . . . . . . . . . . . . . . . . . . . . . . . . . 25 26 28 28 30 30 31 32 33 33 34 34 35 35 37 37 52 53 58

A.1. Secuencia de etapas a seguir para crear un clasicador . . . . . 88

ix

INDICE DE FIGURAS

Indice de tablas
1.1. Lista de todas las tareas realizadas durante el proyecto junto con sus duraciones y precedencias . . . . . . . . . . . . . . . . 12 2.1. Nmero de fallos de la aplicacin elimina borrosas para disu o tintos valores umbrales . . . . . . . . . . . . . . . . . . . . . 2.2. Nmero de fallos de la aplicacin elimina borrosas para disu o tintos valores umbrales una vez eliminadas las imgenes dea masiado iluminadas . . . . . . . . . . . . . . . . . . . . . . . 2.3. Resultados de la deteccin de ojos . . . . . . . . . . . . . . . o 2.4. Resultados del clasicador v1.1 . . . . . . . . . . . . . . . . 2.5. Resultados del clasicador v1.2 . . . . . . . . . . . . . . . . 2.6. Resultados del clasicador v1.3 . . . . . . . . . . . . . . . . 2.7. Resultados del clasicador v1.4 . . . . . . . . . . . . . . . . 2.8. Resultados del clasicador v1.5 . . . . . . . . . . . . . . . . 2.9. Resultados del clasicador v2.1 . . . . . . . . . . . . . . . . 2.10. Resultados del clasicador v2.2 . . . . . . . . . . . . . . . . 2.11. Resultados del clasicador v2.3 . . . . . . . . . . . . . . . . 2.12. Resultados del clasicador v2.4 . . . . . . . . . . . . . . . . 2.13. Resultados del clasicador v2.5 . . . . . . . . . . . . . . . . 2.14. Resultados del clasicador v3.1 . . . . . . . . . . . . . . . . 2.15. Resultados del clasicador v3.2 . . . . . . . . . . . . . . . . 2.16. Resultados del clasicador v3.3 . . . . . . . . . . . . . . . . 2.17. Resultados del clasicador v4.1 . . . . . . . . . . . . . . . . 2.18. Resultados del clasicador v4.2 . . . . . . . . . . . . . . . . 2.19. Resultados del clasicador v4.3 . . . . . . . . . . . . . . . . 2.20. Resultados del clasicador v5.1 . . . . . . . . . . . . . . . . 2.21. Resultados del clasicador v5.2 . . . . . . . . . . . . . . . . 2.22. Resultados del clasicador v5.3 . . . . . . . . . . . . . . . . 2.23. Otras pruebas: Resultados con todas las imgenes . . . . . . a 2.24. Otras pruebas: Resultados tras aadir imgenes . . . . . . . n a xi . 29

. . . . . . . . . . . . . . . . . . . . . . .

30 36 41 42 42 43 43 44 45 45 46 46 47 48 48 49 50 50 53 54 54 56 56

xii

INDICE DE TABLAS 2.25. Otras pruebas: Resultados sin las imgenes demasiado ilumia nadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

2.26. Otras pruebas: Resultados tras eliminar las borrosas . . . . . . 57

2.27. Otras pruebas: Resultados con imgenes capturadas en el laba oratorio y con el clasicador v5.2 . . . . . . . . . . . . . . . . 57

2.28. Resultados de la deteccin de bocas . . . . . . . . . . . . . . . 61 o

INDICE DE TABLAS

xiii

xiv

INDICE DE TABLAS

Cap tulo 1 Introduccin o


Contents
1.1. Conceptos bsicos . . . . . . . . . . . . . . . . . . a 1.2. Motivacin del proyecto . . . . . . . . . . . . . . o 1.3. 1.4. El Problema . . . . . . . . . . . . . . . . . . . . . Objetivos del proyecto . . . . . . . . . . . . . . 1 7 8 8 10 10 11 11 18

1.5. Descripcin general del entorno . . . . . . . . . . o 1.6. Estado del arte . . . . . . . . . . . . . . . . . . . . 1.7. Planicacin . . . . . . . . . . . . . . . . . . . . . o 1.8. Tareas . . . . . . . . . . . . . . . . . . . . . . . . . 1.9. Organizacin del documento . . . . . . . . . . . . o

1.1.

Conceptos bsicos a

Este proyecto consiste en implementar un conjunto de tcnicas que pere mitan contribu en la l r nea de investagacin que est llevando el grupo de o a Visin de la Universitat Jaume I. o El grupo de Visin est trabajando en la resolucin de problemas de reo a o conocimiento visual utilizando la cara para ello y, para muchos de los algoritmos utilizados, se necesita obtener los componentes de la cara (ojos, nariz y boca). Hasta el momento, la seleccin de los componentes a partir de una imao gen ha sido realizada mediante un proceso automtico basado en reglas de a 1

CAP ITULO 1. INTRODUCCION

proporcin humanas. Por ejemplo, [url, a] que la nariz est justo en el centro o a de los dos ojos, que los ojos son simtricos respecto de sta, que entre los e e ojos hay una distancia de tamao igual al de un ojo, etc. Este proceso de n localizacin de componentes nos permite obtener los componentes de forma o aproximada y ser interesante poder conseguir unos resultados ms exactos a a para mejorar el reconocimiento. Por otra parte, tambin se desea resolver el problema de eliminacin de e o imgenes no vlidas, como podr ser las imgenes borrosas o en las que a a an a aparezcan los ojos cerrados. Concretamente, las tareas en que consiste el proyecto son la deteccin y o eliminacin de imgenes borrosas y la deteccin de los componentes de la o a o cara. Una vez explicado en que consistir el proyecto, es conveniente introducir a los conceptos clave importantes que deben ser conocidos por el lector.

1.1.1.

Qu es la vigilancia? e

Vigilancia [url, b] es la monitorizacin del comportamiento. Vigilancia o por sistema es el proceso de monitorizacin de personas, objetos o procesos o dentro de sistemas para la conformidad de normas esperadas o deseadas en sistemas conables para control de seguridad o social. El trmino es usualmente utilizado para toda forma de observacin o monitore o izacin, no slo la observacin visual. Para la vigilancia en muchas ciudades o o o modernas y edicios se suelen emplear circuitos cerrados de televisin. Si bio en la vigilancia puede ser una herramienta util para las fuerzas y empresas de seguridad, mucha gente se muestra preocupada por el tema de la prdida e de privacidad. La palabra vigilancia es usualmente usada para describir observacin desde o una distancia por medio de equipo electrnico u otros medios tecnolgicos. o o Por ejemplo: escuchas secretas o eavesdropping escuchas telefnicas o micrfonos direccionales o

1.1. CONCEPTOS BASICOS aparatos de escucha encubiertos microcmaras a circuitos cerrados de televisin o rastreo GPS

veh culos carnada (bait car) especialmente modicados para atrapar ladrones de autos espionaje electrnico mediante hardware (como un Keylogger) o softo ware (por ejemplo Packet snier) imgenes CCTV a reconocimiento militar reconocimiento areo, con aviones como por ejemplo el Lockheed U-2 e satlites esp e a aparatos de computacin de Trusted Computing o vigilancia por computadora e Internet Sin embargo, la vigilancia tambin incluye mtodos simples, con poca o e e ninguna tecnolog involucrada, tales como el uso de binoculares, intercepa cin de correspondencia, o mtodos similares. o e

1.1.2.

Qu es un Circuito Cerrado de Televisin? e o

El Circuito cerrado de televisin [url, c] o su acrnimo CCTV, que viene o o del ingls: Closed Circuit Television, es una tecnolog de v e a deo vigilancia visual diseada para supervisar una diversidad de ambientes y actividades. n Se le denomina circuito cerrado ya que, al contrario de lo que pasa con la difusin, todos sus componentes estn enlazados. Adems, a diferencia de la o a a televisin convencional, este es un sistema pensado para un nmero limitado o u de espectadores. El circuito puede estar compuesto, simplemente, por una o ms cmaras de a a

CAP ITULO 1. INTRODUCCION

vigilancia conectadas a uno o ms monitores o televisores, que reproducen a las imgenes capturadas por las cmaras. Aunque, para mejorar el sistema, a a se suelen conectar directamente o enlazar por red otros componentes como v deos u ordenadores. Se encuentran jas en un lugar determinado. En un sistema moderno las cmaras que se utilizan pueden estar controladas remotamente desde una a sala de control, donde se puede congurar su panormica, enfoque, inclia nacin y zoom. o Estos sistemas incluyen visin nocturna, operaciones asistidas por ordenador o y deteccin de movimento, que facilita al sistema ponerse en estado de alerta o cuando algo se mueve delante de las cmaras. La claridad de las imgenes a a puede ser excelente, e incluso se puede transformar de niveles oscuros a claros. Todas estas cualidades hacen que el uso del CCTV haya crecido extraordinariamente en estos ultimos aos. n

1.1.3.

Qu es la v e deo-vigilancia?

Se denomina v deo-vigilacia a la vigilancia usando un CCTV.

1.1.4.

Qu es un sistema de reconocimiento de caras? e

Un sistema de reconocimiento de caras [url, d] es una aplicacin dirigida o por ordenador para identicar automticamente a una persona en una imaa gen digital, mediante la comparacin de determinadas caracter o sticas faciales a partir de una imagen digital o un fotograma de una fuente de v deo. Una de las maneras de hacer esto es mediante la comparacin de determinados o rasgos faciales de la imagen y una base de datos. Es utilizado principalmente en Sistemas de Seguridad para el reconocimiento de los usuarios. Consiste en un lector que dene las caracter sticas del rostro, y al solicitar acceso se verica que coincidan las caracter sticas del usuario con la BD. Se suelen utilizar en los sistemas de seguridad y puede ser comparado con otros sistemas de acceso basados en propiedades humanas como la huella digital o los sistema de reconocimiento usando escaneo del iris.

1.1. CONCEPTOS BASICOS

1.1.5.

Qu es la biometr e a?

La biometr [url, e] es el estudio de mtodos automticos para el rea e a conocimiento unico de humanos basados en uno o ms rasgos conductuales a o f sicos intr nsecos. El trmino se deriva de las palabras griegas bios de e vida y metron de medida. La biometr informtica es la aplicacin de tcnicas matemticas y esa a o e a tad sticas sobre los rasgos f sicos o de conducta de un individuo, para vericar identidades o para identicar individuos.

1.1.6.

Qu es la autenticacin biomtrica? e o e

En las tecnolog de la informacin (TI), la autenticacin biomtrica as o o e [url, f] se reere a las tecnolog para medir y analizar las caracter as sticas f sicas y del comportamiento humanas con propsito de autenticacin. o o Las huellas dactilares, las retinas, el iris, los patrones faciales, de venas de la mano o la geometr de la palma de la mano, representan ejemplos de caraca ter sticas f sicas (estticas), mientras que entre los ejemplos de caracter a sticas del comportamiento se incluye la rma, el paso y el tecleo (dinmicas). La a voz se considera una mezcla de caracter sticas f sicas y del comportamiento, pero todos los rasgos biomtricos comparten aspectos f e sicos y del comportamiento. Estos mtodos de autenticacin biomtrica son usados en los sistemas de ace o e ceso biomtricos. e Existen sistemas de reconocimiento basados en muchas de las caracter sticas antes citadas como, por ejemplo, el DNI, que utiliza la huella dactilar, ciertos sistemas de acceso a lugares privados (escner de retina) o patrones a faciales, que es el que intentaremos contibu a resolver. r

1.1.7.

Qu es OpenCV? e

OpenCV [url, g] es una librer libre de visin articial originalmente dea o sarrollada por Intel. Desde que apareci su primera versin alfa en el mes de o o enero de 1999, se ha utilizado en innidad de aplicaciones. Desde sistemas de seguridad con deteccin de movimiento, hasta aplicativos de control de o

CAP ITULO 1. INTRODUCCION

procesos donde se requiere reconocimiento de objetos. Esto se debe a que su publicacin se da bajo licencia BSD, que permite que sea usada libremente o para propsitos comerciales y de investigacin con las condiciones en ella exo o presadas. Open CV es multiplataforma, Existiendo versiones para Linux, Mac OS X y Windows. Contiene mas de 500 funciones que abarcan una gran gama de areas en el proceso de Visin, como reconocimiento de objetos (reconocimiento o facial), calibracin de camaras, vision estereo y visin robtica. o o o OpenCV dipone de un conjunto muy completo de herramientas de reconocimiento y clasicacin de objetos basadas en el anlisis por componentes princio a pales y el clculo de atributos. Los clasicadores pueden ser generados aua tomticamente liberando al usuario de tener que especicar complejas reglas a para el reconocimiento de objetos. Suministra herramientas de reconocimiento de formas capaces de procesar datos continuos, discretos e incluso simblio cos. El ncleo del mdulo incluye el conjunto de clasicadores, los operadores u o de aprendizaje, una rutina de reagrupamiento (clustering) estndar, opera adores de evaluacin y anlisis de atributos, as como funciones utilitarias o a para el pre-procesamiento y constitucin de bases de aprendizaje y la geno eracin de clasicadores denidos por el usuario. o Podemos descargar la librer OpenCV a partir del siguiente enlace: http: a //sourceforge.net/projects/opencvlibrary/ (Fecha de la ultima visita: 14/09/2009)

1.1.8.

Cmo interpretar los resultados de la deteccin o o usando clasicadores?

Cuando estamos intentando detectar cierto componente usando el algoritmo de Viola&Jones [Viola and Jones, 2003] con un determinado clasicador XML, en caso de deteccin, se pueden dar dos resultados distintos que es o conveniente conocer, debido a que sern nombrados con frecuencia a lo largo a de este documento. Acierto: Se produce un acierto cuando la aplicacin detecta una seccin o o de la imagen como un posible resultado y ste se corresponde con el e resultado real. Por ejemplo, cuando estamos usando un clasicador para

1.2. MOTIVACION DEL PROYECTO buscar caras y la aplicacin selecciona una cara. o

Falso Positivo: Se produce cuando la aplicacin detecta como resultado o una parte de la imagen que no es el resultado real. Por ejemplo, la aplicacin detecta y selecciona un ojo derecho cuando estamos usando o un clasicador para encontrar ojos izquierdos.

1.2.

Motivacin del proyecto o

El motivo que hacen este proyecto interesante es poder obtener un sistema de reconocimiento exacto, rpido, cmodo y transparente para el usuario si a o fuera necesario, es decir, que no se de cuenta de que existe, en la medida de lo posible. Consiguiendo este sistema, se podr llegar a obtener aplicaciones como an las que se enumeran a continuacin: o Sistemas de acceso biomtrico e Sistemas utilizados por ejemplo para abrir puertas sin llave usando un sistema de reconocimiento facial. Videovigilancia Sistemas de videovigilancia que hagan sonar las alarmas cuando se detecte la presencia de una persona en un lugar reservado o que inicie un proceso de cierre de puertas si se acerca alguien que no tiene permiso para entrar. Reconocimiento de sospechosos Sistemas que conectados a una base de datos de sospechosos, en caso de encontrar alguno mande un aviso a las autoridades. Sistema de registro de horas de entrada y salida de trabajadores Sistema que almacene las horas de entrada y salida de los trabajadores de una empresa. Como ejemplo ms cercano de problema que se podr resolver utilizando a a este sistema, ser algo que sucede cada d en la universidad. a a

CAP ITULO 1. INTRODUCCION

Hace poco tiempo han sido sustitu dos los lectores de tarjetas de las puertas de los laboratorios utilizados para controlar los accesos, pero no as de las aulas de informtica. Esto hace que los profesores tengan que tener dos a tarjetas distintas y usar la correspondiente en cada uno de los lugares donde tienen que acceder. Adems, los despachos se siguen abriendo con llave. Por a tanto, cada profesor debe utilizar 3 utensilios distintos, que adems son susa ceptibles de prdidas, robos y roturas, para abrir las distintas puertas. e La realizacin de este proyecto podr estar encaminada hacia la implantacin o a o en toda la universidad de sistemas de reconocimiento biomtricos basados en e la imagen de la cara en todos los lugares de acceso restringido. De esta forma se ganar tanto en comodidad como en seguridad, ya que una a persona puede encontrarse o robar una tarjeta pero no as la cara de alguien con acceso a un determinado sitio.

1.3.

El Problema

El Grupo de Visin de la Universitat Jaume I, se encuentra con dos o problemas a la hora de utilizar ciertos algoritmos de Reconocimiento de caras. La falta de exactitud a la hora de obtener los componentes de una cara siguiendo reglas de proporcin. o La deteccin y eliminacin de imgenes no vlidas. o o a a Por tanto, los objetivos de este proyecto irn encaminados a resolver estos a dos problemas.

1.4.

Objetivos del proyecto

Entre los objetivos del proyecto diferenciaremos dos partes totalmente distintas. La primera ser el objetivo nal a largo plazo derivado de la contina uacin y puesta en funcionamiento de los resultados obtenidos con el proyecto o y la segunda sern los objetivos a conseguir con este proyecto dentro de una a duracin muy limitada. o

1.4.1.

Objetivos a largo plazo

El objetivo a largo plazo del que este proyecto forma parte ser conseguir a un sistema de reconocimiento exacto, rpido, cmodo y transparente para a o

1.4. OBJETIVOS DEL PROYECTO

el usuario. Deber ser tan transparente y cmodo para el usuario que ni se a o dieran cuenta de que ste existe, si fuera necesario. e

1.4.2.

Objetivos de este proyecto

Al ser esto un proyecto de n de carrera desarrollado por un alumno y ser el nmero de horas limitado, los objetivos concretos de este proyecto sern u a ms restringidos. Por tanto, los objetivos principales, son: a

Deteccin y Eliminacin de Imgenes Borrosas o o a Uno de los principales objetivos del proyecto ser, para evitar realizar a pruebas con imgenes que no van a hacernos llegar a buenos resultados, a eliminar las imgenes que no han sido capturadas con la nitidez suciente, a las que no aparecen de frente o en las que no podemos ver todos los componentes. Por tanto, como el clasicador que se utiliza para la deteccin de o caras slo reconoce las que estn de frente y se le ven a la persona los dos ojos o a y, adems de esto, no detecta las caras que tienen un grado de inclinacin a o sucientemente grande, debemos preocuparnos de eliminar las imgenes bora rosas. Estas, en caso de no eliminarlas, perjudicar al rendimiento de la an aplicacin, disminuyendo su eciencia. Por tanto, ser uno de los puntos o a bsicos del proyecto. a

Detectar componentes de la cara Otro de los pilares fundamentales del proyecto ser la deteccin, de todos a o los componentes de la cara. Por tanto, el segundo de los objetivos bsicos a del proyecto ser la deteccin de los ojos (por separado izquierdo y derecho), a o la nariz y la boca en cada una de las caras detectadas. Con esto conseguiremos obtener de una forma ms exacta que la que se utilizaba hasta ahora a todas las partes de la cara que resultan interesantes para los algoritmos de reconocimiento facial. Para la deteccin de dichos componentes, se utilizar la librer OpenCV y o a a un algoritmo de deteccin que trae inclu (Viola&Jones) que utiliza clasio do cadores XML. Estos clasicadores, los crearemos o los buscaremos a travs e de la red, dependiendo del rendimiento que tengan los clasicadores encontrados.

10

CAP ITULO 1. INTRODUCCION

Redactar tutorial para crear clasicadores A ra del objetivo anterior, se vio que crear un clasicador para ser z utilizado con el algoritmo de deteccin de Viola&Jones, no era una tarea o sencilla y que se ten que tener muchas cosas en cuenta para poder lograr an un clasicador que tuviera un alto porcentaje de aciertos y un bajo nmero u de falsos positivos. Por tanto, se decidi redactar un tutorial sobre cual era la o mejor forma y los mejores parmetros de entrada para la aplicacin encargada a o de crear dicho clasicador. Esto se hace con la idea de que en el futuro cuando se quiera crear clasicadores para cualquier tipo de objeto del mundo real, dicha tarea se centre slo en crear el clasicador y no en el estudio de cmo o o se debe crear ste. e

1.5.

Descripcin general del entorno o

Tendremos dos entornos bien distintos a la hora de ejecutar cada uno de los mtodos implementados. e La deteccin de caras funcionar en un entorno no controlado, ya que podeo a mos buscar caras a travs de imgenes captadas en cualquier sitio. Por tanto, e a podemos encontrarnos con cualquier cosa en las imgenes obtenidas. a Por otra parte, cuando ejecutemos el algoritmo de deteccin de imgenes boro a rosas o para la deteccin de ojos, nariz y boca, slo utilizaremos las imgenes o o a de las caras obtenidas anteriormente. Al slo tener imgenes de caras, el eno a torno ser mucho ms controlado que en el caso anterior y evitaremos que a a en la deteccin de partes de la cara, aparezcan falsos positivos derivados o de cosas, que estando fuera de la cara, puedan parecerse a alguno de los componentes buscados.

1.6.

Estado del arte

La idea de desarrollar una herramienta de este tipo no es nueva, y como ya se ha comentado anteriormente, en OpenCV se incluye una herramienta para detectar caras y otros objetos en imgenes. Esta herramienta basa su deteca cin en clasicadores XML que deben ser creados mediante el entrenamiento o usando la aplicacin haartraining de OpenCV y un nmero bastante elevado o u de imgenes tanto positivas como negativas. a

1.7. PLANIFICACION

11

Adems de este mtodo, tambin se podr analizar las componentes de a e e a la cara analizando la imagen como una matriz de p xeles y clasicando sus componentes por la posicin o las variaciones de color. o Viendo que la dicultad de la primera opcin parec sustancialmente o a menor, se ha decidido utilizarla para la realizacin de este proyecto. o

1.7.

Planicacin o

Aqu presentaremos todas las tareas realizadas junto con su duracin y , o las tareas de las que dependen para poder ser inicializadas. La duracin aparecer en horas, ya que la dedicacin al proyecto no ha o a o sido la misma durante todo el tiempo que ha durado el desarrollo del mismo. La lista de tareas la podemos ver en la Tabla 1.1.

Adems de una tabla con todas ellas, y para facilitar la asimilacin de la a o disposicin temporal de las tareas del proyecto, mostraremos un diagrama o de Gant, en el que se mostrar grcamente todas las tareas y su disposicin a a o temporal. El diagrama de Gant lo podemos ver en la Figura 1.1.

1.8.

Tareas

En esta seccin se enumerarn y se har una breve descripcin de las o a a o principales tareas que han sido necesarias para llevar a cabo el proyecto.

1.8.1.

Familiarizarse con OpenCV

La primera tarea que se llev a cabo fue tanto documentarse sobre las o distintas funciones que proporciona la librer OpenCV como familiarizarse a con su uso. Para esto se hicieron algunas aplicaciones de prueba o modicaciones sobre alguna ya existente. Tambin fue una parte importante de esta tarea buscar cdigo que se e o pudiera reutilizar del proyecto del alumno Jos Jun Sorribes [Sorribes, 2008], e a ya que tambin se utilizaba la librer OpenCV para resolver problemas de e a deteccin. o

12

CAP ITULO 1. INTRODUCCION

Tabla 1.1: Lista de todas las tareas realizadas durante el proyecto junto con sus duraciones y precedencias No Nombre de la tarea Duracin (horas) Necesarias o 1 Familiarizarse con OpenCV 16 2 Deteccin de caras o 28 1 3 Deteccin de borrosas o 20 2 4 Escoger el mejor conjunto de 4 2 imgenes de prueba y entrea namiento 5 Deteccin de ojos o 26 2 6 Deteccin de narices o 60 2, 4 7 Marcado de coordenadas en una 4 4 imagen 8 Prueba automtica a del 4 7 rendimiento de los clasicadores 9 Obtener a partir de una imagen, 4 4 varias subimgenes a 10 Deteccin de bocas o 8 2 11 Redactar el tutorial para crear 8 6 clasicadores 12 Memoria del proyecto y pre30 sentacin o 0 Duracin total o 212 La duracin aproximada fue de 16 horas. o

1.8.2.

Deteccin de caras o

La segunda tarea que se realiz fue una de las ms importantes, ya que o a es la base para la deteccin de cualquier tipo de objeto tanto en tiempo real o como para bsqueda diferida. u Para llevar a cabo la deteccin de caras se ha utilizado el algoritmo de o Viola&Jones [Viola and Jones, 2003], que viene junto con OpenCV, y que nos permite detectar distintos tipos de objetos en imgenes ya que tambin a e hay junto con la librer OpenCV distintos tipos de clasicadores. a En este caso utilizamos el clasicador haarcascade frontalface alt.xml que nos permite encontrar caras que estn en la imagen de manera frontal y cuyo e funcionamiento es realmente bueno.

1.8. TAREAS

13

La duracin de esta tarea fue de, aproximadamente, 28 horas. o

1.8.3.

Deteccin de borrosas o

Adems de ser una de las tareas principales que se deseaba resolver, ya a que es interesante para el Grupo de Visin, se ha visto que la calidad de o las imgenes capturadas anteriormente no era uniforme, ya que depend de a a la iluminacin, de si la cmara acababa de empezar a capturar y de otros o a factores. A causa de esto, se debi adelantar esta tarea, ya que era necesario poder o eliminar, antes de detectar los componentes de la cara, las imgenes capa turadas que estuviesen borrosas o cuya calidad fuera inferior al resto. Despus de un proceso de documentacin por parte tanto de los directores del e o proyecto como del alumno se implement el mtodo que se consider que era o e o ms oportuno. Este mtodo aparece descrito en [L. Chang and del Toro, 2008]. a e Esta tarea no tuvo una duracin temporal muy grande en cuanto a imo plementacin, pero s a nivel de investigacin, sobre como llevarlo a cabo. o o Finalmente, se tard 20 horas. o

1.8.4.

Escoger el mejor conjunto de imgenes de pruea ba y entrenamiento

Para probar que tanto el clasicador de caras que viene con OpenCV como el resto de los clasicadores para encontrar los distintos componentes de la cara funcionan de forma correcta, es necesario usar un conjunto de imgenes de prueba. Esta tarea consiste en seleccionar el mejor conjunto de a imgenes de prueba posible, ya que dependiendo de las imgenes el resultado a a de las pruebas ser totalmente distinto. a Se ha decidido escojer un conjunto para medir el rendimiento del clasicador de caras, que tenga imgenes en las que salgan una o varias personas a y otras imgenes en las que no salga ninguna persona para comprobar que el a clasicador no detecta ninguna cara. Para el resto de clasicadores, se ha decidido utilizar slo imgenes de caras, o a ya que no tiene sentido buscar ojos, narices o bocas fuera de caras. Adems, a

14

CAP ITULO 1. INTRODUCCION

en la primera fase de la deteccin, tras detectar las caras, stas eran recoro e tadas y el clasicador slo acta en las imgenes recortadas. Por tanto, no o u a tiene mucho sentido usar imgenes de prueba que no sean de caras si el clasia cador nunca va a encontrarse con una entrada de esas caracter sticas. En esta tarea, el objetivo fundamental, es seleccionar entre los ditintos conjuntos de imgenes de prueba, cual es el mejor para realizar stas. a e Por otra parte, tambin se deben escoger los conjuntos de imgenes que e a sern utilizados como imgenes tanto positivas como negativas para realizar a a el entrenamiento de los clasicadores. Bsicamente, se decidir mirando las imgenes que conjuntos nos pueden a a a aportar mejores resultados cuando creemos el clasicador, debido a las caracter sticas de las imgenes. a La duracin de esta tarea fue de 4 horas. o

1.8.5.

Deteccin de ojos o

La siguiente tarea que se deb resolver era la deteccin de todos los coma o ponentes de la cara, por tanto, se procedi a documentarse sobre cual era la o mejor forma de encontrar ojos analizando una imagen. Se comenz a impleo mentar algo, pero durante el proceso de documentacin se encontraron dos o clasicadores XML para encontrar tanto el ojo derecho como el izquierdo y nos dimos cuenta de que parec mucho ms fcil encontrar los componentes a a a de la cara creando el clasicador OpenCV adecuado y utilizando el algoritmo de Viola&Jones. La duracin de la tarea se alarg bastante debido a que, al principio, se o o pens en implementar algo y, nalmente, se decidi otra cosa, habiendo pero o dido bastante tiempo. La duracin fue de 26 horas. o

1.8.6.

Deteccin de narices o

Para la deteccin de narices ya se empez pensando en crear el clasio o cador en lugar de analizar la imagen. Esta ha sido la tarea ms larga del a proyecto, ya que se part sin apenas ideas sobre como se deb realizar esta a a tarea y se fueron realizando muchas pruebas y, viendo en lo que se fallaba, modicndolas y adaptndolas a las peculiaridades del problema que se a a quer resolver. a

1.8. TAREAS

15

La duracin de esta tarea es la que ms peso tiene en la duracin del proyecto o a o debido a que es la ms importante y a las numerosas pruebas realizadas. Se a tard 60 horas en llevarla a cabo. o

1.8.7.

Marcado de coordenadas en una imagen

Tras realizar varias pruebas con el clasicador de narices y tras ver que nos era necesario una herramienta automtica que realizara las comprobaciones a entre las narices encontradas en una imagen y la nariz real, se decidi por o adaptar una aplicacin realizada por una estudiante del laboratorio para deo sarrollar una tarea semejante. Esta aplicacin, tras adaptarla, nos permitir marcar un punto de una imo a agen y guardar las coordenadas. De esta forma, luego comprobaremos si el trozo de la imagen que el algoritmo de Viola&Jones, usando un determinado clasicador, detecta como un componente deseado es un acierto o si, por el contrario, es un falso positivo. El resultado de la ejecucin de esta aplicacin ser un chero con las ruo o a tas de todas las imgenes que usemos y las coordenadas de los componentes a que deseamos encontrar. Aunque en principio, para el clasicador de caras y para el de ojos no hab an sido necesarios, porque a simple vista comprobamos que estos funcionaban de forma bastante ecaz, para realizar todas las pruebas con el clasicador de narices nos ha sido de mucha utilidad ya que hemos ahorrado mucho tiempo en realizar pruebas, ya que para cada nuevo clasicador deb amos realizar de nuevo las pruebas con todas las imgenes de las que dispon a amos. Posteriormente, para obtener los resultados del resto de clasicadores tambin se ha utilizado la aplicacin, ya que facilitaba bastante las cosas. e o La duracin de esta tarea cost un poco ms de lo esperado, debido a que o o a hab que adaptar un cdigo escrito por otra persona y primero se tuvo que a o emplear un tiempo en estudiarlo detalladamente para proceder a la posterior modicacin. o Entre la adaptacin de la aplicacin y el marcado de las imgenes, la duo o a racin fue de 4 horas. o

16

CAP ITULO 1. INTRODUCCION

1.8.8.

Prueba automtica del rendimiento de los clasia cadores

Para hacer efectiva la ganancia de tiempo que nos puede proporcionar la aplicacin de la que hablamos en la seccin anterior, y utilizando como entrao o da el chero con las coordenadas de los componentes buscados, resultado de ejecutarla, y un clasicador, se ha creado una nueva aplicacin que busque en o todas las imgenes de prueba los componentes deseados y, posteriormente, a compar el chero pasado como argumento con los resultados de la deteccin e o para poder proceder a averiguar el nmero de aciertos y fallos, as como los u porcentajes de aciertos y falsos positivos. Estos resultados nos servirn tanto para evaluar clasicadores encontrados a por la red como para comparar entre varios clasicadores realizados por nosotros encaminados a la deteccin de lo mismo, para ver cual de los dos o nos ofrece un mejor rendimiento. La implementacin de la aplicacin, ha resultado bastante sencilla y, poso o teriomente, se ha sacado mucho partido en cuanto a ahorro de tiempo al utilizarla. La implementacin de la aplicacin de prueba automtica tuvo una duracin o o a o de 4 horas, y las posteriores pruebas se hac simultaneamente a otras cosas, an por lo que no han sido tenidas en cuenta en la duracin total. o

1.8.9.

Obtener a partir de una imagen, varias subimgenes a

Al realizar el clasicador para la deteccin de narices, se ha visto en una o de las pruebas que podr ser util disponer de un gran nmero de imgenes a u a negativas. Como ya se dispon de dos conjuntos bastante grandes en los a que estbamos seguros de que no aparec ninguna persona y, ante el coste a a temporal que nos acarrear buscar nuevas imgenes y cerciorarnos de que a a no aparece en alguna de ellas ninguna persona, se ha decidido crear una aplicacin que a partir de cada una de las imgenes que tenemos actualmente o a y en las que no aparecen caras, seleccione diez trozos de la imagen, aumentando as el nmero de imgenes negativas multiplicando su nmero por diez. u a u La duracin de esta tarea no ha sido mucha, debido a la sencillez de la o implementacin. 4 horas entre implementacin y la unica ejecucin necesaria o o o para disponer de todas las imgenes necesarias. a

1.8. TAREAS

17

1.8.10.

Deteccin de bocas o

En un principio, se pens, como paso siguiente a la deteccin de narices y o o con la experiencia adquirida creando dicho clasicador, crear el clasicador para buscar bocas en imgenes. Aunque debido al tiempo invertido en la a creacin del clasicador para narices y a no haber obtenido los resultados o deseados en cuanto a porcentaje de aciertos y a obtener el m nimo nmero u de falsos positivos, se ha optado, nalmente, por utilizar un clasicador encontrado por la red, cuyo comportamiento es sucientemente bueno. La duracin de esta tarea ha venido determinada, en gran parte, por las o pruebas realizadas para medir el rendimiento del clasicador encontrado. La duracin ha sido de 8 horas. o

1.8.11.

Redactar el tutorial para crear clasicadores

El ultimo de los objetivos del proyecto ha sido redactar un tutorial sobre como se deben crear los clasicadores XML para utilizarlos con el algoritmo de Viola&Jones existente en OpenCV. Se decidi que esto era necesario o debido a la poca informacin sobre como hacerlo encontrada a travs de la o e red y para que en futuros proyectos relacionados con esto se pueda utilizar el tutorial con la consecuente ganancia de tiempo. El tutorial se puede ver en el Anexo A de esta memoria. La duracin de esta tarea ha sido de 8 horas. o

1.8.12.

Memoria del proyecto y presentacin o

La ultima tarea a realizar en el proyecto ha sido redactar esta memoria, aunque muchas de las partes se han redactado concurrentemente a la realizacin de otras tareas. o Otro de las tareas ha sido preparar la presentacin en formato de transo parencias para la exposicin del proyecto. o Como ultimo hito del proyecto queda su exposicin. o La duracin de esta ultima tarea se ha alargado bastante, debido a causas o ajenas al proyecto (principalmente, dedicacin por parte del alumno a otras o

18

CAP ITULO 1. INTRODUCCION

asignaturas y motivos de trabajo). De todas formas, la dedicacin ha sido de o 30 horas.

1.9.

Organizacin del documento o

Con el n de documentar este proyecto, se ha dividido su memoria en 5 cap tulos y 1 anexo ordenados cronolgicamente segn su realizacin. o u o La estructura que presenta esta memoria es la siguiente: Cap tulo 1. Introduccin o Es el cap tulo actual, en el que se realiza una breve introduccin al o proyecto, indicando la motivacin, objetivos y entorno para el que se o va a realizar, as como el estado del arte o aplicaciones ya existentes que cubren las necesidades que propone este proyecto. Tambin contiene la e planicacin temporal de las actividades a llevar a cabo para la realo izacin del mismo, una breve descripcin de todas las tareas realizadas o o y una vista previa del proyecto. Cap tulo 2. Desarrollo y experimentacin o En este cap tulo se detallarn de forma exhaustiva todas las tareas a tanto de forma global como de forma espec ca todas las actividades realizadas durante el proyecto y la experimentacin y resultados de las o mismas. Cap tulo 3. Conclusiones En este cap tulo se presentarn las conclusiones alcanzadas tras la rea alizacin del proyecto, tanto a nivel global, como a nivel de tarea. o Tambin se expondrn las conclusiones personales del alumno sobre e a la realizacin del proyecto. o Cap tulo 4. Posibles mejoras y ampliaciones Se analizarn las posibles mejoras y/o ampliaciones que se podrn rea a alizar a la aplicacin en el futuro. o Bibliograf A.3 a En este apartado estar enumerada la bibliograf formada por refera a encias a las distintas direcciones URL utilizadas durante la realizacin o de este proyecto y por las referencias a los art culos o libros que han sido necesarios.

1.9. ORGANIZACION DEL DOCUMENTO

19

Anexo A. Tutorial para crear clasicadores Como anexo a la documentacin se incluir un tutorial para crear clasio a cadores debido a que no hay mucha informacin por la red. o

20

CAP ITULO 1. INTRODUCCION

Figura 1.1: Diagrama de Gant del proyecto

Cap tulo 2 Desarrollo y experimentacin o


Contents
2.1. Descripcin global del proyecto . . . . . . . . . . o 2.2. Familiarizarse con OpenCV . . . . . . . . . . . . 2.3. Deteccin de caras . . . . . . . . . . . . . . . . . . o 2.4. Deteccin de borrosas . . . . . . . . . . . . . . . . o 2.5. Escoger las imgenes de prueba y entrenamiento a 2.6. Deteccin de ojos . . . . . . . . . . . . . . . . . . o 2.7. Deteccin de narices . . . . . . . . . . . . . . . . . o 2.8. Marcado de coordenadas en una imagen . . . . 2.9. Prueba del rendimiento de los clasicadores . . 2.11. Deteccin de bocas . . . . . . . . . . . . . . . . . o 2.12. Redactar el tutorial para crear clasicadores . . 2.13. Memoria del proyecto y presentacin . . . . . . o 21 24 24 26 30 36 38 59 60 61 62 62

2.10. Obtener a partir de una imagen, varias subimgenes 60 a

2.1.

Descripcin global del proyecto o

Como hemos dicho anteriormente, la nalidad del proyecto es resolver ciertos problemas que han aparecido al grupo de Visin de la Universitat o Jaume I en sus investigaciones sobre reconocimiento de caras. Bsicamente, a la nalidad del proyecto es, a partir de imgenes de caras, ser capaces de a eliminar las borrosas y encontrar, en el resto, todos sus componentes.

21

22

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Por tanto, lo primero que se har al inicializar la aplicacin ser poner en a o a marcha la webcam, para que vaya analizando las imgenes que est captana a do en ese momento. En cada uno de los frames y utilizando el algoritmo de Viola&Jones con el clasicador de caras de frente que viene inclu en la do instalacin de OpenCV, se buscar la presencia de caras. o a En caso de que, en cualquiera de los frames, durante la ejecucin de la aplio cacin principal se encuentre una o ms caras, se recortarn y se guardarn o a a a para ser analizadas en un postproceso para determinar si estn borrosas y, a en caso contrario, se proceder a encontrar todos los componentes de la cara. a Una vez a sladas las caras de las imgenes se pasarn a la aplicacin que a a o determina si estn borrosas. Las imgenes que sean clasicadas como bora a rosas sern eliminadas del conjunto de posibles resultados, quedando slo las a o imgenes de caras que no aparecen borrosas. a Una vez hemos descartado las imgenes borrosas, debemos comprobar que a somos capaces de detectar por separado cada uno de los distintos componentes de la cara. Lo haremos utilizando procesos secuenciales que utilizarn a el algoritmo de Viola&Jones usando en cada una de las fases el clasicador espec co para encontrar el componente deseado cada vez. El resultado de cada una de las fases excluir las imgenes en las que no a a podamos encontrar el componente deseado del conjunto de posibles resultados, por tanto, ya no se tendrn en cuenta en el resto de fases. a Esto lo hacemos, porque queremos obtener de cada una de las caras todos los componentes. Estas fases sern, por este orden: a Bsqueda de ojo derecho Buscaremos en todas las imgenes de caras u a no borrosas el ojo derecho, eliminando las caras donde no encontremos, al menos, uno. Bsqueda de ojo izquierdo Buscaremos en todas las imgenes restantes, u a el ojo izquierdo. Como en la fase anterior, borraremos del conjunto de posibles resultados, las caras donde no encontremos al menos uno. Bsqueda de la boca Una vez slo nos quedan las imgenes de caras no u o a borrosas donde hemos encontrado los dos ojos, y ya que el clasicador

2.1. DESCRIPCION GLOBAL DEL PROYECTO

23

de narices es el que peor rendimiento ofrece, intentaremos buscar una boca en las imgenes que han ido pasando las sucesivas fases. a Busqueda de la nariz En este punto, tenemos las imgenes no borrosas a en las que hemos encontrado ambos ojos y la boca. Esta fase ser la a que har perder rendimiento a la aplicacin, ya que el clasicador creaa o do y utilizado para encontrar narices no llega a ser todo lo ecaz que desear amos. El problema se reduce mucho, debido a que si hemos detectado que algo es una cara errneamente, debido a un falso positivo o del clasicador utilizado para encontrar caras, esta cara habr sido a descartada en alguna de las fases posteriores, ya que ser mucha coina cidencia que dentro de una imagen de algo que no es una cara hubiesen cosas parecidas a ojos y boca. Por tanto, si hemos llegado a esta fase, es prcticamente seguro al a 100 % que la imagen que estamos analizando es de una cara. El problema ser que detectar a amos una cara como correcta (hemos detectado todos los componentes) en muchos casos, aunque estuviese tapada la nariz o cosas similares debido al gran porcentaje de falsos positivos que presenta el clasicador de narices. Tambin descartar e amos caras correctas, pero esto es un problema menor, ya que se supone que cuando en la captura aparece una persona, tendremos su cara en muchos frames distintos y, el hecho de descartar una imagen de una cara, no inuir demasiado en el resultado nal. a Finalmente, y tras nalizar la ejecucin de las distintas fases, nos quedar o an un conjunto de imgenes de caras en las que estamos seguros de que no estn a a borrosas y somos capaces de encontrar todos los componentes que aparecen en ellas, habiendo descartado muchas imgenes invalidas. a Como ejemplos, de imgenes que consideraremos invlidas, pueden ser, caras a a con un parche en el ojo, con un pauelo tapando la boca, caras borrosas... n Todas las caras que no han sido descartadas tendrn una calidad suciente, a para que seamos capaces, sin atisbo de duda, de reconocer a una persona visualmente. Posteriormente, en la seccin 4, describiremos posibles v para ampliar o as el proyecto y cosas que podr amos hacer con las imgenes resultantes. a

24

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

2.2.

Familiarizarse con OpenCV

Esta tarea tuvo una corta duracin (alrededor de cinco d y consisti en o as) o familiarizarse con el entorno a utilizar. Uno de los primeros problemas, fue congurar el entorno Microsoft Visual C++ para poder trabajar con la librer OpenCV, para lo que se busc ayua o da en Internet. Se encontr [url, h], donde se explicaba con detalle la forma o en que se deb congurar todo el entorno, para que no hubiese problemas a al compilar el cdigo o enlazar las distintas librer de las que se compone o as OpenCV. Para empezar, el tutor facilit al alumno varias aplicaciones de prueba que o utilizaban funciones implementadas en la libreria OpenCV para que ste, con e la ayuda del correspondiente manual [ope, 2003], realizara varias modicaciones y pruebas para entender el funcionamiento y, posteriormente, fuera capaz de ampliarlas dndole nuevas funcionalidades. Al ser aplicaciones de a prueba, stas no han sido posteriormente utilizadas en el trabajo nal. Cone sistieron en aplicaciones de distinto tipo que enumeramos a continuacin: o Capturar datos externos a traves de una webcam (tanto imgenes coa mo v deo) y guardarlos en el sistema de cheros del ordenador para utilizarlas posteriormente. Realizar cambios en las propiedaes de las imgenes (tanto recin capa e turadas como disponibles en el PC). Obtener imgenes a travs de v a e deos capturados con anterioridad. Adems de esto, se examinaron las distintas aplicaciones realizadas por el a alumno Jos Juan Sorribes Traver [Sorribes, 2008] para su proyecto de n de e carrera, para ver si hab cdigo que pod ser reutilizado para la realizacin a o a o de este proyecto. A pesar de que, nalmente, esta opcin se descart, fue una o o parte importante del proyecto, ya que muchas de las aplicaciones presentes, se utilizaron para realizar diversas pruebas y completar el aprendizaje sobre el funcionamiento de OpenCV con mayor profundidad.

2.3.

Deteccin de caras o

La segunda de las tareas a realizar, a pesar de ser de bastante corta duracin (unos 5 d o as) fue una de las ms importantes debido a que es un a

2.3. DETECCION DE CARAS

25

Figura 2.1: Ejemplos de frames capturados requisito que es indispensable comprender para poder continuar con el trabajo. Para esto se cogi un ejemplo de aplicacin que utilizaba el algoritmo o o de Viola & Jones para detectar en la imagen, las partes deseadas a partir de varios clasicadores disponibles. Se opto por usar para la deteccin de caras, o el clasicador haarcascade frontalface alt.xml, que nos permite encontrar en una imagen caras en posicin frontal. o Se realizaron varias pruebas con esta aplicacin, realizando un gran nmero o u de modicaciones para comprender su comportamiento. Tambin se realizaron e varias modicaciones que se explican a continuacin: o

Lo primero que nos pareci interesante fue que la aplicacin guardara o o para poder analizar a posteriori, todas las imgenes capturadas durante a su funcionamiento, independientemente de que aparecieran caras en la imagen. A partir del cambio anterior, vimos que, para minimizar el espacio utilizado en disco, se pod descartar, por no tener inters en el mbito an e a del proyecto, las imgenes en las que no se hubiese detectado, al menos, a una cara. Podemos ver algunos ejemplos en la Figura 2.1. Por ultimo, se vi interesante, debido a que, posteriormente, slo nece o o sitar amos la cara, recortar todas las caras detectadas en cada una

26

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.2: Ejemplos de caras recortadas de las imgenes capturadas y guardarlas por separado aunque aparea ciesen varias en la misma imagen. Este cambio nos facilitar mucho las a cosas en el futuro, ya que tendremos todas las caras por separado y las analizaremos independientemente. En la Figura 2.2, podemos ver algunas de las caras capturadas, que han sido recortadas y almacenadas de forma independiente. Una vez nalizado este paso, ya se ten una de las partes importantes del a proyecto. Ya se dispon de caras capturadas, bien, en tiempo real, o bien, a para usarlas en diferido. En este momento se decidi el camino a seguir para llevar a cabo la deo teccin de las componentes de la cara y se vi la necesidad de, como paso o o previo, eliminar las imgenes que no se vieran nitidas, ya sea por fallos en a la captura, por un mal enfoque o por ser las primeras capturadas, ya que la cmara necesita unos segundos para optimizar el resultado de las capturas. a

2.4.

Deteccin de borrosas o

Una vez decidido que, como paso previo a la deteccin de las compoo nentes de la cara, se deb ltrar las imgenes que no estuviesen n an a tidas, para mejorar la eciencia y ecacia de la aplicacin, se procedi a investigar o o sobre cual era la mejor forma para conseguirlo. En este punto, el director del proyecto, propuso seguir un algoritmo explicado en [L. Chang and del Toro, 2008] en el que se consegu de una forma a relativamente sencilla, eliminar las imgenes borrosas. a Se procedi a la lectura y comprensin del art o o culo y, posteriormente, a su

2.4. DETECCION DE BORROSAS implementacin. o

27

El algoritmo descrito consist en realizar una serie de operaciones sobre a la imagen original y obtener a partir de ella un nmero, que de ser menor u que un valor umbral preestablecido, se descartar por estar mal enfocada. a El proceso a seguir es el siguiente: Partimos de la imagen original. Le aplicamos un ltro media, que para cada p de la imagen coge una xel matriz de p xeles que lo contiene y le asigna el valor de calcular la media de todos los p xeles de la matriz. En este caso, al ser un itro media 3x3, la matriz seleccionada ser una matriz de 3 las y tres columnas, en las a que el p al que queremos asignar el valor, ser el centro de la matriz. xel a Para ltar la imagen se ha optado por usar dos alternativas distintas, una ha sido usar la funcin cvSmooth, disponible en OpenCV, y o la otra implementarla desde cero, analizando la imagen, obteniendo los mismos resultados. Una vez tenemos la imagen ltrada, se debe obtener otra imagen que es la resta absoluta de la imagen original y la imagen ltrada, para calcular posibles variaciones en los p xeles. Si la imagen original es n tida, entre p xeles contiguos debe haber ms diferencia que si la imagen es a borrosa. Y, por tanto, esto aumentar en la imagen ltrada, al obtener a informacin global de la imagen localmente en cada p o xel. En este caso tambin se ha decidido realizar las dos variantes y come parar los resultados, que han vuelto a coincidir. La funcin OpenCV o que nos permite realizar la resta absoluta de dos imgenes es cvAbsDi. a El siguiente paso consiste en sumar el valor de todos los p xeles de la imagen resta para calcular su valor medio de p xel. Para esto se debe sumar para cada la y columna el valor RGB de cada uno de los p xeles, y este valor total dividirlo entre el nmero total de p u xeles, obteniendo as el valor medio de p , xel. Ntese que en las imgenes bien enfocadas, o a este valor deber ser ms alto que en las borrosas debido a que la a a diferencia entre la imagen original y la imagen ltrada debe ser mayor cuanto mejor enfocada est la imagen. e Para este paso ha sido necesario crear una funcin que recorriera todas o

28

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.3: Ecuacin utilizada para calcular el valor medio de p o xel

Figura 2.4: Ejemplos de imgenes para probar la aplicacin elimina borrosas a o las las y columnas de una imagen y obtenga, para cada p xel, el valor de las componentes R, G y B de la imagen y las sume para nalmente dividir este valor total entre el nmero total de p u xeles. La ecuacin o utilizada la podemos ver en la Figura 2.3. Por ultimo, se ha estimado el mejor valor umbral para eliminar el mxi a mo nmero de imgenes borrosas. Para este paso, se ha optado por crear u a un chero de texto que en cada l nea tenga la ruta de una imagen y un 1 o un 0 dependiendo de la estimacin de si es borrosa o no, hecha a ojo. o Posteriormente, se ha automatizado el proceso para ir cogiendo todas las imgenes existentes y calcular el nmero de fallos que obtiene el a u programa para distintos valores umbrales. Se han utilizado valores umbrales cercanos al 7, debido a que es el valor recomendado en el art culo [L. Chang and del Toro, 2008], donde se encontr el algoritmo. o Hemos utilizado 100 imgenes capturadas en el laboratorio mediante a la webcam y utilizando la librer OpenCV, desajustando en muchas a de las imgenes capturadas el objetivo para que gran parte de stas esa e tuvieran borrosas, para poder comprobar correctamente la efectividad del algoritmo de deteccin de borrosas. o Los resultados obtenidos se pueden ver en la Tabla 2.1. En la Figura 2.4 podemos ver algunos ejemplos de imgenes utilizadas. a

2.4. DETECCION DE BORROSAS

29

Tabla 2.1: Nmero de fallos de la aplicacin elimina borrosas para distintos u o valores umbrales Valor umbral No de imgenes No de Aciertos % de acierto a 6 100 56 56 % 6.5 100 78 78 % 7 100 84 84 % 7.5 100 88 88 % 8 100 78 78 %

Al observar los resultados, se ha visto que la mayor de los fallos a obtenidos corresponden a imgenes que aparecen demasiado iluminadas a (imagen superior izquierda e inferior derecha de la Figura 2.4) debido a que han sido capturadas durante el proceso de inicializacin de la o cmara y, se ha optado por descartar a partir de ahora los primeros 8 a frames capturados por la cmara cada una de las veces en que se pone a a capturar imgenes. a A pesar de haber solucionado este problema para ejecuciones futuras descartando estas imgenes dede un principio, como prueba adicional, a se hasn eliminado de la prueba las imgenes capturadas durante el proa ceso de inicializacin de la cmara (imgenes muy iluminadas) y se ha o a a vuelto a probar la aplicacin, mejorando sustancialmente los resultao dos. Los podemos ver en la Tabla 2.2. En la Figura 2.5 podemos ver algunos ejemplos de imgenes capturadas a durante la inicializacin de la cmara, que son las que han sido descaro a tadas para la segunda prueba.

Tras realizar todas estas pruebas se llego a la conclusin de que el mejor o valor umbral para este paso era 7.5. En la Figura 2.6 podemos ver algunas de las imgenes consideradas borrosas a por la aplicacin y en la 2.7 algunas de las que no han sido consideradas o

30

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.5: Ejemplos de imgenes capturadas durante la inicializacin de la a o cmara a Tabla 2.2: Nmero de fallos de la aplicacin elimina borrosas para distintos u o valores umbrales una vez eliminadas las imgenes demasiado iluminadas a o o Valor umbral N de imgenes N de Fallos % de acierto a 6 75 49 65.3 % 6.5 75 64 85.3 % 7 75 68 90.6 % 7.5 75 71 94.6 % 8 75 65 86.6 % borrosas.

2.5.

Escoger las imgenes de prueba y entrea namiento

La siguiente tarea ha sido escoger los mejores conjuntos posibles para ser utilizados como conjuntos de imgenes de prueba y de entrenamiento. Estos a conjuntos de imgenes van a ser utilizados tanto para probar el rendimiento a de los distintos clasicadores como para crear otros clasicadores.

Figura 2.6: Ejemplos de imgenes catalogadas como borrosas a

2.5. ESCOGER LAS IMAGENES DE PRUEBA Y ENTRENAMIENTO31

Figura 2.7: Ejemplos de imgenes que no estn borrosas segn la aplicacin a a u o En principio, disponemos de varios conjuntos de imgenes de prueba, a obtenidos a travs de Ral Montoliu o a travs de bases de datos de imgenes e u e a alojadas en pginas web. a Vamos a separar estos conjuntos de imgenes en dos tipos, ya que entena demos que tenemos dos partes bien diferenciadas que cubrir y ninguno de los conjuntos tendr sentido utilizarlo para ciertas cosas. a Disponemos de tres conjuntos de imgenes en las que no aparece nunca a ni una persona ni ninguna parte de ella. Estos conjuntos se utilizarn como a imgenes de prueba para el clasicador de caras y como imgenes negativas a a para la creacin de los clasicadores de los componentes de la cara. o Por otra parte, disponemos de cuatro conjuntos de imgenes de caras, dos a de los cuales utilizaremos como imgenes positivas para el entrenamiento del a clasicador y los otros dos como imgenes de prueba. a Finalmente, se ha obtenido, a partir de uno de los conjuntos de imgenes a de caras, un ultimo conjunto de imgenes en las que aparecen slo trozos de a o la cara, y que se ha utilizado, como imgenes negativas para crear el clasia cador de narices. Ahora vemos en cada una de las dos partes todos los conjuntos de imgenes a que han sido utilizados.

2.5.1.

Para el clasicador de caras

Para el clasicador de caras, no necesitamos imgenes de entrenamiento a debido a que el clasicador ya est creado. a Como imgenes de prueba disponemos, como comentbamos anteriora a mente, de tres conjuntos de imgenes obtenidos mediante distintos medios. a

32

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.8: Ejemplos de imgenes utilizadas como prueba para el clasicador a de caras Se ha decidido usar como conjunto de imgenes de test la unin de uno de a o los conjuntos en los que no aparece personas y uno de los conjuntos de an imgenes de caras, para as poder tener imgenes en las que hay, al menos, un a a positivo y, adems, tener imgenes en las que la aplicacin no debe encontrar a a o nada, ya que no hay personas presentes en ellas. En la Figura 2.8, vemos algunas de las imgenes que han sido utilizadas a como conjunto de imgenes de prueba. a La eleccin se ha hecho a simple vista, sin comenzar a realizar pruebas o con los clasicadores, debido a que los conjuntos ten unas caracter an sticas similares. Los otros dos conjuntos se ha decidido utilizarlos como imgenes negatia vas para crear clasicadores para encontrar componentes de la cara, ya que en estos conjuntos no aparec personas, por tanto no aparece ningn tipo de an u componente de la cara. Esto lo explicaremos en la seccin dedicada a explicar o los conjuntos de imgenes escogidos para los clasicadores de componentes a de la cara.

2.5.2.

Para los clasicadores de componentes de la cara

Como hemos explicado anteriormente, ya hemos escogido tres conjuntos de imgenes que utilizaremos como negativas para crear estos clasicadores, a

2.5. ESCOGER LAS IMAGENES DE PRUEBA Y ENTRENAMIENTO33

Figura 2.9: Ejemplos de imgenes utilizadas como imgenes negativas a a

Figura 2.10: Ejemplos de imgenes del conjunto de partes de la cara sin a narices usado como imgenes negativas a en concreto el de narices. Los dos primeros son conjuntos de imgenes en las que no aparecen pera sonas, de 1671 y 1218 imgenes, respectivamente. El otro conjunto, son 10500 a imgenes de partes de la cara, con un tamao de 20x20 p a n xeles, en las que no aparecen narices, obtenidos a partir de uno de los 4 conjuntos de imgenes a de caras. Estos tres conjuntos en solitario, o combinaciones de estos, sern a utilizados como conjuntos de imgenes negativas para la creacin de todos a o los clasicadores de narices que luego sern explicados. a En la Figura 2.9, podemos ver imgenes tanto del conjunto de 1671 como a del de 1218, que han sido usados muchas veces de forma conjunta y en la Figura 2.10 vemos imgenes que pertenecen al conjunto que hemos obtenido a a partir de uno de los conjuntos de caras y en el que aparecen slo partes de o la cara, excepto narices. Adems de esto, tambin hemos utilizado otro conjunto de imgenes a e a donde no aparecen personas como imgenes negativas para la creacin del a o

34

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.11: Ejemplos de las subimgenes extra a das de los otros conjuntos de imgenes negativas a

Figura 2.12: Ejemplos de imgenes de narices utilizadas a clasicador de narices. Este conjunto ha sido obtenido a partir de los dos citados anteriormente, despus de seleccionar en cada una de las imgenes de e a ambos conjuntos 10 subimgenes de 20x20 p a xeles de tamao para as obtener n un nmero mucho ms grande, ya que las necesitbamos para realizar varias u a a pruebas. Podemos ver algunos ejemplos en la Figura 2.11. Respecto a los 4 conjuntos de imgenes de caras, tenemos uno en blanco y a negro de 804 imgenes, otro de 2147, pertenecientes a la base de datos FERa ET [url, j], imgenes en color en el cual estn contenidas las 804 imgenes a a a del conjunto anterior. En estos conjuntos de imgenes hemos recortado las a narices y las hemos utilizado como imgenes positivas para el entrenamiento a de los clasicadores para busar narices. Hemos escogido estos, ya que al usar uno de los dos como imgenes de entrenamiento, no podemos utilizarlos coa mo imgenes de test, debido a que ser los mismos y se desvirtuar los a an an resultados. Podemos ver ejemplos de las narices utilizadas, en color, en la Figura 2.12. De los otros dos conjuntos de imgenes de caras, en principio, se decia di usar ambos como imgenes de test pero, posteriormente, se vi que los o a o resultados con uno de los conjuntos eran muy malos, debido a la mala calidad de las imgenes. Finalmente, se decidi descartar este conjunto de imgenes a o a y no utilizarlo para nada, ya que era bastante probable que empeorara los

2.5. ESCOGER LAS IMAGENES DE PRUEBA Y ENTRENAMIENTO35

Figura 2.13: Algunas imgenes del conjunto de caras descartado a

Figura 2.14: Algunas imgenes del conjunto de prueba a

resultados. Podemos ver algunos ejemplos en la Figura 2.13. El conjunto restante, de 295 imgenes de caras, del que podemos ver a ejemplos en la Figura 2.14, se ha utilizado como conjunto de imgenes de a prueba para los clasicadores de todos los componentes de la cara, ya que la calidad es lo sucientemente alta para que no inuya demasiado en los resultados. Esta base de datos se ha conseguido por internet y su nombre es XM2VTS [url, k] y se puede descargar de http://www.ee.surrey.ac.uk/ CVSSP/xm2vtsdb/ (Fecha de la ultima visita: 14/09/2009)

36

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Tabla 2.3: Resultados de la deteccin de ojos o o Clasicador N de imgenes % aciertos % falsos positivos a Ojo Izquierdo 295 76.65 % 14.38 % Ojo Derecho 295 92.34 % 6.25 % Ambos 295 74.28 % 12.21 %

2.6.

Deteccin de ojos o

Una vez eliminadas las imgenes borrosas, se procedi a buscar la posicin a o o de los ojos en stas. Como primera aproximacin se pens en relizar dicho e o o proceso, analizando la imagen y buscando componentes conexas en sta. Una e vez se investig sobre el tema, se determin la estratgia a seguir, siendo sta o o e e la siguiente: Convertir la imagen de color a escala de grises. Ecualizacin del histograma de la imagen. o Binarizado por umbral. Despus de un par de d intentando aplicar esta solucin, se lleg a la e as o o conclusin de que la tarea ser mucho ms labioriosa que la de utilizar un o a a clasicador XML como el utilizado para encontrar las caras en una imagen y se procedi a la bsqueda de informacin al respecto por la red. o u o Se encontraron dos clasicadores [url, l] (uno para buscar ojos derechos y otro para ojos izquierdos) que ten un funcionamiento bastante bueno an y se decidi darlos por vlidos para la bsqueda de ojos en la imagen. Los o a u resultados obtenidos con estos aparecen en la Tabla 2.3.

Como observamos, el clasicador encargado de buscar el ojo derecho funciona mucho mejor que el de ojos izquierdos. El problema que hay es que muchas veces detecta el ojo derecho como ojo izquierdo debido a la similitud existente entre ambos. En la Figura 2.15 vemos capturas de la ejecucin de la aplicacin. o o De esta forma, se automatiz, al igual que con las imgenes borrosas, el o a proceso para eliminar las imgenes en las que la aplicacin no era capaz de a o

2.6. DETECCION DE OJOS

37

Figura 2.15: Algunas ejemplos de la deteccin de ojos o

Figura 2.16: Curvatura de los ojos abiertos y cerrados detectar ojos, con lo que eliminamos posibles fallos derivados de la bsqueda u de caras debido a que sta no era efectiva al 100 %. e Otra de las cosas que se consideraron interesantes, visto que los clasicadores utilizados no distingu entre ojos abiertos o cerrados, fue crear una funcin an o que nos los separara, y se pens en utilizar uno de los mtodos siguientes: o e Obtener el histograma de la imagen y buscar los picos de color. Si la imagen slo tiene un pico de color (color piel), el ojo est cero a rado. Si la imagen tiene 3 picos de color (color de la piel, el blanco del ojo y elcolor del iris), el ojo est abierto. a Utilizar la diferencia de curvatura entre un ojo abierto (curvatura hacia arriba) y un ojo cerrado (curvatura hacia abajo). Lo podemos ver en la Figura 2.16. Posteriormente, se rechaz realizar esto debido a que si es posible realizar o un clasicador para encontrar narices, caras u ojos, tambin es posible ree alizar uno para encontrar slo ojos abiertos o slo ojos cerrados. o o Simplemente, se deber adaptar el conjunto de imgenes positivas y el de a a imgenes negativas, usando en este caso como imgenes positivas slo ojos a a o

38

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

abiertos y como imgenes negativas el resto de cosas que nos pudieran aparea cer en el entorno donde capturamos las imgenes, inclu a dos ojos cerrados.

2.7.

Deteccin de narices o

Una vez somos capaces de detectar los ojos en la imagen y eliminar las imgenes en donde no aparecen estos, se ha procedido de la misma forma a con las narices. Se han encontrado clasicadores por la red pero, adems de que no tienen a la precisin adecuada, se ha visto interesante crearlo desde cero, ya que es o conveniente saber cual es el funcionamiento de la herramienta de creacin de o estos clasicadores por si, en un futuro, se desea crear una aplicacin similar o y no se encuentran los clasicadores deseados. Con esta tarea se pretende ser capaces de conseguir detectar en las imgenes restantes, despus de pasar los a e dos anteriores ltrados, las narices presentes en ellas. Esta tarea es la tarea central del proyecto, ya que se han tenido que realizar muchas pruebas, fallando en muchas ocasiones y cambiando la estrategia a seguir debido a la poca informacin existente en la red sobre este tema. o Tras documentarse sobre la forma en que se deb crear los clasicadores an se vio que hab que diponer de dos conjuntos disjuntos de imgenes para a a realizar el entrenamiento del clasicador: Imgenes positivas: Son las imgenes en las que aparece lo que queremos a a encontrar, es nuestro caso narices. Imgenes negativas: Son imgenes en las que no aparece lo que querea a mos encontrar. Aunque el proceso de creacin de los clasicadores se explicar mejor en o a el Anexo A, vamos a explicar los pasos bsicos para conseguir un clasicador a funcional. Conseguir un nmero elevado de imgenes en las que aparezca el objeto u a que deseamos encontrar posteriormente en las imgenes capturadas. a Conseguir un nmero elevado de imgenes en las que no aparezca el u a objeto que deseamos encontrar posteriormente en las imgenes capa turadas.

2.7. DETECCION DE NARICES

39

Generar un chero de texto que presente una l nea por cada una de las imgenes positivas con la siguiente estructura: a ruta nmero x y w h u donde: ruta: Es la ruta donde se encuentra la imagen en el sistema de cheros. nmero: Es el nmero de apariciones en la imagen del objeto que quereu u mos encontrar, en nuestro caso ser siempre 1, ya que usamos imgenes a a de narices como imgenes positivas. a x: Es la posicin horizontal donde est el componente en la imagen. En o a nuestro caso ser siempre 0. a y: Es la posicin vertical donde est el componente en la imagen. En o a nuestro caso ser siempre 0 a w: Es la anchura que tiene el componente en la imagen. En nuestro caso ser el tamao horizontal de la imagen. a n h: Es la altura que tiene el componente en la imagen. En nuestro caso ser el tamao vertical de la imagen. a n

Una vez tenemos el chero creado, debemos ejecutar la aplicacin creo atesamples.exe, que viene con la distribucin de OpenCV, para cono seguir un vector con todas las imgenes positivas normalizadas. a Ejemplo de llamada: createsamples.exe -info narices/narices/narices.txt -vec infovec.vec num 11 -w 20 -h 20 donde le pasamos los siguientes parmetros: a -info: Le pasamos la ruta donde del chero de texto descrito en el punto anterior. -vec: El vector donde se guardarn todas las imgenes positivas nora a malizadas. -num: El nmero de imgenes positivas de que disponemos. u a -w: El tamao horizontal con que se guardarn estas imgenes. n a a -h: El tamao vertical con que se guardarn estas imgenes. n a a Tras la ejecucin de createsamples, obtendremos el vector de imgenes o a positivas que utilizaremos en el siguiente paso.

Hemos de crear un chero con las rutas de todas las imgenes negativas a que deseemos utilizar para el entrenamiento.

40

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION Ejecutaremos la aplicacin haartraining.exe, tambin disponible con la o e librer OpenCV, que es la que realizar el entrenamiento por fases y a a que generar el XML que luego utilizar el algoritmo de Viola & Jones a a para buscar los componentes deseados en una imagen. Ejemplo de uso: haartraining.exe -data trainout -vec infovec.vec -bg narices/negativas.txt -nstages 10 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos 11 nneg 9 -w 20 -h 20 -mem 700 -mode ALL donde le pasamos los siguientes parmetros: a -data: Nombre del chero XML de salida que usaremos posteriormente para la deteccin. o -vec: Vector generado usando la aplicacin createsamples.exe, donde o estn todas las imgenes positivas normalizadas y redimensionadas. a a -bg: Ruta donde se encuentra el chero que tiene las rutas de todas las imgenes negativas. a -nstages: Nmero de fases de entrenamiento que vamos a realizar. u -nsplits: Nmero de divisiones por clasicador, ya que se estructura en u forma de arbol. -minhitrate: M nima tasa de deteccin que se desea alcanzar en cada o etapa, siendo la tasa del clasicador completo ese mismo valor elevado al nmero de etapas. u -maxfalsealarm: Valor mximo para la falsa alarma de cada etapa. La a total se obtiene de la misma forma que la tasa de deteccin. o -npos: Nmero de imgenes positivas utilizadas. Las que usamos para u a crear el vector de imgenes. a -nneg: Nmero de imgenes negativas utilizadas. Nmero de l u a u neas que aparecen en el chero de imgenes negativas. a -w: Tamao horizontal con que se guardaron las imgenes postivas. n a -h: Tamao vertical con que se guardaron las imgenes positivas. n a -mem: Cantidad de memoria RAM que deseamos utilizar para la ejecucin del proceso. o -mode: Permite escoger, para las caracter sticas Haar, si se desea el conjunto bsico (BASIC) o el conjunto extendido (ALL). La forma por a defecto es la primera.

Una vez ha nalizado el proceso, obtenemos un clasicador XML, que ya puede ser utilizado con el algoritmo de Viola & Jones para detectar los componentes deseados en imgenes, tanto en vivo como en diferido. a

2.7. DETECCION DE NARICES

41

2.7.1.

Clasicadores realizados

Aqu explicaremos todas las pruebas de clasicadores, as como los resul tados obtenidos con cada uno de ellos, las particularidades de cada uno de ellos y las conclusiones que se han obtenido de los resultados. Clasicadores con un conjunto muy peque o de imgenes positivas n a Como primer intento, y para ir comprobando el funcionamiento de la herramienta haartraining.exe, se realizaron una serie de pruebas en la que slo ten o amos 11 imgenes positivas de narices capturadas por nosotros con a la webcam en el laboratorio y distintas combinaciones de imgenes negativas. a Clasicador v1.1 En la primera prueba realizada se utilizaron como conjunto de imgenes a negativas 9 imgenes obtenidas de la red. a Se pusieron 10 fases de entrenamiento y el clasicador usado online en el laboratorio, daba unos resultados casi perfectos, ya que las narices que estaba detectando eran las de las mismas personas que se hab an usado para realizar el entrenamiento. Una vez se prob el clasicador obtenido sobre una base de datos de o 295 caras, los resultados obtenidos fueron los siguientes:

Pos 11

Neg 9

Tabla 2.4: Resultados del clasicador v1.1 Fases No de img. % aciertos % falsos pos. 10 295 8.18 % 68.57 %

Como vemos, los resultados han empeorado bastante con respecto a los que nos daba la aplicacin usada online en el laboratorio. o Clasicador v1.2

42

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION Como segunda prueba se sigui entrenando el clasicador v1 aumeno tando el nmero de fases del entrenamiento a 16. u Al probar el nuevo clasicador sobre la misma base de datos de caras, los resultados obtenidos fueron:

Pos 11

Neg 9

Tabla 2.5: Resultados del clasicador v1.2 Fases No de img. % aciertos % falsos pos. 16 295 0.0 % 100 %

De esta prueba extraemos como conclusin, que con conjuntos muy o pequeos de imgenes, si aumentamos el nmero de fases de entren a u namiento, la respuesta del clasicador empeora. Clasicador v1.3 La tercera prueba consisti en aadir simplemente un conjunto de o n imgenes negativas aprovechando las 11 positivas de las que ya dispon a amos para ir eliminando poco a poco el gran nmero de falsos positivos que u nos hab estado apareciendo. En esta versin se volvi a probar con an o o 10 fases. El nmero de imgenes negativas en esta prueba fueron 1218, y los u a resultados obtenidos los siguientes:

Pos 11

Neg 1218

Tabla 2.6: Resultados del clasicador v1.3 Fases No de img. % aciertos % falsos pos. 10 295 24.31 % 18.33 %

Como podemos ver, si comparamos los 2 clasicadores de 10 fases (Clasicador v1.1 y Clasicador v1.3) y que tienen como conjunto de imgenes positivas el mismo, los resultados obtenidos son mucho a mejores cuando crece el nmero de imgenes negativas. u a

2.7. DETECCION DE NARICES Clasicador v1.4

43

Para realizar la cuarta prueba se cogi otro conjunto de imgenes negao a tivas algo ms grande (1671 imgenes) y se volvi a probar a aumentar a a o el nmero de fases de entrenamiento a 16. Volviendo a obtener resulu tados idnticos a los obtenidos con el Clasicador v1.2. e

Pos 11

Neg 1671

Tabla 2.7: Resultados del clasicador v1.4 Fases No de img. % aciertos % falsos pos. 16 295 0.0 % 100 %

Observando los resultados obtenidos comprobamos que aumentando el nmero de fases y el nmero de imgenes negativas, no obtenemos u u a mejores resultados para un conjunto muy pequeo de imgenes positin a vas. Clasicador v1.5 Para la quinta prueba, se ha ampliado el conjunto de imgenes posa itivas a 32, pero reduciendo el conjunto de imgenes negativas a las a 9 iniciales, para observar el comportamiento del clasicador, con un nmero mayor de imgenes positivas. Se ha seguido utilizando el enu a trenamiento de 10 fases, ya que hemos observado que con conjuntos pequeos, aunentar el nmero de fases no mejoraba los resultados. n u Los resultados obtenidos han sido: Tabla 2.8: Resultados del clasicador v1.5 Fases No de img. % aciertos % falsos pos. 10 295 22.58 % 86.33 %

Pos 32

Neg 9

Al aumentar el nmero de imgenes positivas, tras analizar los resulu a tados, podemos observar que hemos mejorado el porcentaje de aciertos, pero tambin ha crecido much e simo el nmero de falsos positivos u debido, en gran parte, al hecho de haber usado tan solo 9 imgenes a negativas.

44

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Tras haber realizado las pruebas anteriores, ahora nos centraremos en realizar las pruebas pertinentes para determinar que conjunto de imgenes a positivas ser el ptimo para la realizacin del clasicador. a o o Clasicadores con un conjunto grande de imgenes positivas a Tras comprobar que es necesario un conjunto bastante grande de imgenes a positivas y un nmero bastante grande de imgenes negativas. Se han obtenido u a a travs de Yasmina Andreu dos conuntos sucientemente grandes de imgenes e a de narices, uno en blanco y negro (2147 imgenes) y otro en color (804 a imgenes) y se ha procedido a realizar diferentes pruebas con ellos. a Como conjuntos de imgenes negativas, se han seguido utilizando los 3 que a ya han sido utilizados en las pruebas anteriores o uniones de ellos. Clasicador v2.1 Para esta primera prueba, se ha utilizado el conjunto de imgenes posa itivas en blanco y negro y como imgenes negativas el primer conjunto a de imgenes (9 imgenes). a a El entrenamiento ha sido de 10 fases, y los resultados obtenidos han sido los siguientes:

Pos 2147

Neg 9

Tabla 2.9: Resultados del clasicador v2.1 Fases No de img. % aciertos % falsos pos. 10 295 98.26 % 79.25 %

Tras esta prueba, podemos extraer conclusiones muy interesantes. Al haber aumentado el nmero de imgenes positivas a 2147, el porcentaje u a de acierto del clasicador ha sido casi perfecto, aunque por otra parte, tambin hemos obtenido un porcentaje demasiado alto de falsos pose itivos. Esto puede ser debido al escaso nmero de imgenes negativas u a que han sido utilizadas para la realizacin del clasicador. o Clasicador v2.2 Como segunda prueba, y para comprobar en que inuye el nmero u de fases, hemos decidido realizar exactamente la misma prueba, pero aumentando el nmero de fases de entrenamiento a 16. La tabla de los u resultados la podemos ver a continuacin: o

2.7. DETECCION DE NARICES Tabla 2.10: Resultados del clasicador v2.2 Fases No de img. % aciertos % falsos pos. 16 295 93.54 % 80.095 %

45

Pos 2147

Neg 9

Contra todo pronstico y, a pesar de haber mejorado considerablemente o las pruebas anteriores con 16 fases, no hemos obtenido una mejora respecto del clasicador v2.1. Como era de esperar, hemos perdido un poco de ecacia en cuanto a la deteccin de las narices, pero el porcentao je de falsos positivos, que esperbamos que disminuyera, ha aumentado a ligeramente. Clasicador v2.3 Esta prueba ha consistido en utilizar dos conjuntos grandes por primera vez. Se ha utilizado el conjunto de imgenes positivas que hemos estado a utilizando para las dos ultimas pruebas pero, esta vez, como conjunto de imgenes negativas se ha utilizado uno de los dos conjuntos grandes a de los que disponemos (el de 1218 imgenes). Hemos vuelto a utilizar a el entrenamiento de 10 fases, dejando los aumentos de fases para ms a adelante.

Pos 2147

Neg 1218

Tabla 2.11: Resultados del clasicador v2.3 Fases No de img. % aciertos % falsos pos. 10 295 27.0 % 34.73 %

De estos resultados, se desprende que al aumentar el nmero de imgenes u a negativas, disminu mos bastante el nmero de falsos positivos obtenidos. u Esto es muy imporatante, aunque esto tambin haya perjudicado al e nmero de narices detectadas correctamente, que ha sufrido un descenu so considerable. Clasicador v2.4 Para comprobar si es aconsejable utilizar imgenes en color como imgenes a a positivas, ahora se proceder a hacer una prueba, utilizando un cona junto de 804 imgenes en color (que tambin estn en blanco y negro a e a

46

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION en el conjunto utilizado anteriormente) y como conjunto de negativas utilizaremos el mismo que el utilizado en la prueba anterior. Podemos ver aqu los resultados obtenidos.

Pos 804

Neg 1218

Tabla 2.12: Resultados del clasicador v2.4 Fases No de img. % aciertos % falsos pos. 10 295 28.28 % 71.5 %

Observamos una leve mejor en la deteccin de las narices pero, en a o cambio, se ha empeorado mucho en cuanto a los falsos positivos, ya que hemos doblado la tasa de cosas detectadas como nariz que, realmente no son narices. Esto se debe al decremento de imgenes positivas, pero a no se puede hacer mucho ms respecto a esto, dado que no tenemos a ms imgenes de narices en color. a a Clasicador v2.5 Como ultima prueba de este apartado, vamos a utilizar todas las narices en color de las que disponemos (las 804 del conjunto anterior + las 11 que hab amos obtenido de miembros del departamento) y la unin de o los dos conjuntos grandes de imgenes negativas de que disponemos a (1218 + 1671). Con esto, comprobaremos como afecta el hecho de tener ms imgenes a a negativas al crear un clasicador y veremos si es conveniente ampliar el nmero de stas para mejorar tanto la deteccin, como para miniminar u e o el nmero de falsos positivos encontrados. u Los resultados que hemos obtenido son los siguientes:

Pos 815

Neg 2889

Tabla 2.13: Resultados del clasicador v2.5 Fases No de img. % aciertos % falsos pos. 10 295 36.72 % 60.0 %

2.7. DETECCION DE NARICES

47

Observamos, al mirar los resultados que hemos mejorado bastante respecto a la anterior prueba, pero seguimos lejos de los resultados deseados, ya que ms de la mitad de las narices encontradas siguen siendo a falsos positivos y slo encontramos una de cada tres narices en las caras o utilizadas como prueba. Al realizar estas pruebas, hemos podido ver qu tiene de positivo y de e negativo tanto aumentar tanto el nmero de imgenes positivas como negau a tivas. El hecho de aumentar las imgenes positivas nos permite aumentar el a porcentaje de narices encontradas correctamente pero, por contra, tambin e contribuye en cierta medida a que el nmero de falsos positivos aumente. Opu uestamente, aumentar el nmero de imgenes negativas hace que el nmero u a u de narices encontradas correctamente decrezca pero, en este caso, decrece el nmero de falsos positivos encontrados. u Clasicadores con imgenes positivas en color y distintos n meros a u de fases Para ver la inuencia que tiene el nmero de fases en el rendimiento u del clasicador, se ha optado por escoger el conjunto de todas las imgenes a positivas en color (815 imgenes) y de todas las imgenes negativas (2889 a a imgenes) y se ha sometido a distintos entrenamientos. Hemos utilizado esa tos conjuntos debido a que el clasicador genreado con estos es, hasta el momento, el clasicador que nos ha dado los mejores resultados en cuanto a deteccin de narices correctas, sin un nmero muy alto de falsos positivos o u detectados. Clasicador v3.1 La primera prueba ha sido realizada con 10 fases y coincide con la v2.5. Los resultados han sido los siguientes:

Pos 815

Neg 2889

Tabla 2.14: Resultados del clasicador v3.1 Fases No de img. % aciertos % falsos pos. 10 295 36.72 % 60.0 %

Como ya est comentado ms arriba, son resultados buenos respecto al a a resto de clasicadores realizados, pero malos respecto a los resultados deseados.

48

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION Clasicador v3.2 Esta prueba ha sido realizada con 15 fases y los resultados han sido los siguientes:

Pos 815

Neg 2889

Tabla 2.15: Resultados del clasicador v3.2 Fases No de img. % aciertos % falsos pos. 15 295 3.47 % 41.66 %

La aplicacin sigue encontrando narices pero, ahora, de las narices eno contradas hay ms que son falsos positivos y las encontradas correctaa mente, son muy pocas. Clasicador v3.3 Como ultima prueba, probaremos a hacer un clasicador con 20 fases de entrenamiento. Los resultados obtenidos han sido los siguientes:

Pos 815

Neg 2889

Tabla 2.16: Resultados del clasicador v3.3 Fases No de img. % aciertos % falsos pos. 20 295 0.0 % 0.0 %

El clasicador no encuentra ninguna nariz en ninguna de las 295 imgenes a usadas como imgenes de prueba. Por tanto, el clasicador no es vlido. a a Principalmente, esto puede ser debido al nmero tan bajo de imgenes u a positivas, debido a que no contbamos con ms imgenes en color para a a a poder realizar las pruebas. Esta fase de pruebas no nos ha aportado prcticamente nada. Simplea mente hemos visto que aumentar el nmero de fases hace que los resultados u vayan empeorando, algo que no parece tener mucho sentido.

2.7. DETECCION DE NARICES Clasicadores con conjuntos muy grandes de falsos positivos

49

Para la siguiente prueba y ante la falta de buenos resultados, se ha decidido utilizar un conjunto muy grande de falsos positivos obtenidos a partir del conjunto de falsos positivos del que dispon amos mediante el procedimiento explicado en la seccin 2.9. Dicho procedimiento, que mas adelante explio caremos con ms detalle consiste en obtener a partir de una imagen en la a que sabemos que no aparece el componente buscado, en nuestro caso narices, obtener varias imgenes ms pequeas para as conseguir un nmero mucho a a n u ms grande de imgenes. Para esta prueba hemos optado por obtener 10 a a nuevas imgenes a partir de la principal, descartando sta. Con dicho proa e cedimiento, hemos conseguido pasar de 2889 a 28890 imgenes negativas. a Como conjunto de imgenes positivas seguiremos utilizando el de las 815 a imgenes en color, ya que, en principio, hemos obtenido resultados bastante a parecidos, independientemente de haber utilizado como imgenes positivas a imgenes en color o en blanco y negro. a Se realizarn 3 pruebas distintas con distintos nmeros de fases. a u Clasicador v4.1 En la primera prueba el entrenamiento realizado mediante la aplicacin o haartraining, constar de 5 fases. Los resultados obtenidos han sido los a siguientes:

Pos 815

Neg 28890

Tabla 2.17: Resultados del clasicador v4.1 Fases No de img. % aciertos % falsos pos. 5 295 94.04 % 74.27 %

Observando los resultados, vemos que el nivel de acierto del clasicador es alt simo, ya que acertamos el 94 % de las veces. Por contra, tres de cada cuatro narices encontradas siguen siendo falsos positivos, a pesar de utilizar un conjunto de imgenes negativas tan grande. Nuestro a objetivo principal es que los falsos positivos desciendan bastante, para que la aplicacin gane en eciencia. o Clasicador v4.2

50

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION Para la segunda prueba aumentaremos el nmero de fases a 10, que ha u sido lo que hemos utilizado habitualmente. Los resultados han sido los que podemos ver a continuacin: o

Pos 815

Neg 28890

Tabla 2.18: Resultados del clasicador v4.2 Fases No de img. % aciertos % falsos pos. 10 295 27.54 % 51.52 %

En los resultados podemos ver, que respecto al mismo clasicador con 5 fases, detectamos slo un tercio de las narices que detectbamos, con o a lo que nos hemos alejado bastante de los buenos resultados conseguidos. En cuanto a los falsos positivos, hemos conseguido reducirlos en un 25 %, pasando de que 3 de cada 4 imgenes fueran falsos positivos a a que slo 1 de cada 2 imgenes lo son ahora. Esta mejora no es suciente o a para los resultados deseados. Si lo comparamos con el clasicador con el que, hasta ahora, hab amos obtenido los mejores resultados, vemos que el porcentaje de aciertos es algo peor en el que hemos realizado ahora, pero el porcentaje de falsos positivos encontrados tambin es algo menor, por lo que el rendimiento e de ambos clasicadores es bastante parecido. Clasicador v4.3 A pesar de que los resultados han empeorado bastante, vamos a proceder a realizar la prueba con 15 fases, para ver la evolucin de los o resultados. La tabla con los resultados obtenidos ha sido la siguiente:

Pos 815

Neg 28890

Tabla 2.19: Resultados del clasicador v4.3 Fases No de img. % aciertos % falsos pos. 15 295 2.48 % 52.38 %

Tras ver los resultados de las pruebas con este clasicador, vemos que ha sucedido lo que nos tem amos en cuanto al porcentaje de aciertos,

2.7. DETECCION DE NARICES

51

que ha bajado considerablemente al aumentar el nmero de fases. De u hecho, ahora slo detectamos la nariz en una de cada cuarenta imgenes o a de prueba. En cuanto al porcentaje de falsos positivos, vemos que ha subido ligeramente. Realmente, el nmero de falsos positivos ha bajado consideru ablemente, como era de esperar, pero al haber tenido un porcentaje de acierto tan bajo, el nmero de falsos positivos encontrados respecto del u nmero de aciertos es mayor. Por esta razn, es por la que el porcentaje u o ha subido. Tras realizar estos clasicadores y ver que aumentar much simo el nmero u de imgenes negativas no afecta en demas al rendimiento obtenido con el a a uso de los distintos clasicadores y, tras pensar bastante en cual podr ser la a causa de este mal rendimiento, se ha llegado a la conclusin de que no tiene o mucho sentido usar imgenes negativas de cualquier cosa. a Esta idea radica en que, desde un principio, se decidi extraer las caras de o las imgenes capturadas ya que, es ms sencillo buscar un ojo en una cara a a que hacerlo en una imagen donde adems de la cara hay muchas ms cosas a a o incluso varias personas. Debido a esto, hemos estado usando como conjunto de imgenes de pruea ba, imgenes de caras, simplemente. Por tanto, el clasicador creado para la a deteccin de narices slo se usa para buscar narices en imgenes de caras y, o o a en consecuencia, nunca podr aparecer nada en la imagen, que no est dentro a e de la cara. Tras esto, se ha llegado a la determinacin de usar como conjunto de imgenes o a negativas, simplemente imgenes de partes de la cara en las que no sale la nara iz, para que as la aplicacin consiga descartar dichas partes en las imgenes o a de prueba, aumentar el nmero de aciertos y, sobretodo, reducir mucho el u porcentaje de falsos positivos. Clasicadores utilizando imgenes de trozos de la cara como falsos a positivos Tal y como se ha explicado anteriormente, estas pruebas consistirn en a crear clasicadores con un conjunto de imgenes positivas del que ya dispon a amos anteriormente. Usaremos el de 2147 imgenes en blanco y negro, ya que a es el ms grande de que disponemos, para tener un ratio imgenes positia a vas:imgenes negativas, de 1:5, ya que fue el que estimamos ms conveniente a a

52

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.17: Divisin de la cara en partes o para esta prueba, debido a que el usado en la seccin anterior, con un ratio o de ms de 1:29, nos parec muy desfasado. a a Como conjunto de imgenes negativas, utilizaremos un nuevo conjunto de a imgenes de partes de caras sin narices en blanco y negro del que explicamos a a continuacin la forma en que se obtuvieron: o La obtencin de estas imgenes se ha podido completar gracias a la coo a laboracin de Yasmina Andreu, que nos ha proporcionado todo el material o necesario y se ha hecho de la siguiente forma: En primer luegar, cogemos un conjunto de imgenes de caras, en cona creto tenemos 2147 imgenes en blanco y negro proporcionadas por a Yasmina Andreu. El segundo paso, es dividir la imagen en 25 partes, como podemos ver en la Figura 2.17. Luego, debemos decidir, cuales de estos trozos nos interesan, en nuestro caso los que aparecen trozos de cara y que no tocan la nariz. En un principio, nos quedaremos con los trozos en los que aparece la frente, la boca, los ojos y las mejillas. Lo podemos ver en la Figura 2.18. Mediante un proceso automtico, se seleccionan los trozos deseados y a se recortan, para ser utilizados como imgenes negativas para crear el a clasicador.

2.7. DETECCION DE NARICES

53

Figura 2.18: Partes de la cara que se han seleccionado Finalmente, obtenemos las imgenes. En la Figura 2.10 podemos ver a algunas de las imgenes obtenidas. a Del conjunto citado anteriormente se han seleccionado aleatoriamente 10500 imgenes negativas, para conseguir el ratio desado. a Clasicador v5.1 Como se ha venido haciendo durante las ultimas pruebas, tras escoger el nmero de imgenes deseadas, realizaremos el entrenamiento en un u a nmero de fases distinto. Para este caso, se han realizado 5 fases. Se u han obtenido los resultados siguientes:

Pos 2147

Tabla 2.20: Resultados del clasicador v5.1 Neg Fases No de img. % aciertos % falsos pos. 10500 5 295 98.06 % 85.24 %

Podemos ver que, sin duda, ste es hasta el momento el clasicador que e mejor funciona en cuanto al nmero de aciertos ya que, prcticamente, u a detecta la nariz correcta en todas las imgenes de prueba. A pesar de a esto, el porcentaje de falsos positivos ha crecido con respecto a la ulti ma prueba. Esto se puede deber a que hemos utilizado un tercio de las

54

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION imgenes negativas usadas en la anterior prueba. a Clasicador v5.2 La segunda prueba ser exactamente la misma, pero el clasicador utia lizado ha sido entrenado por la aplicacin haartraining durante diez o fases. A continuacin se pueden ver los resultados obtenidos: o

Pos 2147

Tabla 2.21: Resultados del clasicador v5.2 Neg Fases No de img. % aciertos % falsos pos. 10500 5 295 45.48 % 88.34 %

Los resultados de esta prueba nos permiten ver que hemos empeorado en todos los aspectos. La deteccin de narices correctas se ha reducido o a la mitad y, a pesar de haber conseguido menos falsos positivos, el porcentaje de estos ha aumentado. Cabe destacar que de los clasicadores en los que se ha estudiado su variacin con el nmero de fases, el que mejor porcentaje de aciertos o u presenta para 10 fases es ste, aunque tambin el que ms porcentaje e e a de falsos positivos. Clasicador v5.3 Como ultima prueba de creacin de clasicadores se ha aumentado el o nmero de fases de entrenamiento a 15. Los resultados aparecen en la u siguiente tabla:

Pos 2147

Tabla 2.22: Resultados del clasicador v5.3 Neg Fases No de img. % aciertos % falsos pos. 10500 5 295 5.48 % 32 %

Observamos de nuevo como un aumento del nmero de fases nos vuelve u a bajar, tal y como deseamos, el porcentaje de falsos positivos encontrados pero tambin nos perjudica mucho en cuanto a los aciertos haciendo e

2.7. DETECCION DE NARICES que el clasicador pierda gran parte de su funcionalidad.

55

En este caso, de 295 imgenes encontramos correctamente la nariz en a unas 16 y el nmero de falsos positivos es de unicamente 7. Es evidente u que si en 295 imgenes slo se encuentran 7 falsos positivos, los resula o tados son bastante buenos. Pero tambin est claro que encontrar la nariz correctamente slo en e a o 16 de las 295, es un nmero muy bajo y que hace que el clasicador u pierda gran parte de la ecacia que ten con otro nmero de fases. a u De esta ultima prueba, observamos que los resultados de deteccin han o mejorado bastante, para cualquier nmero de fases, lo que ten u amos hasta el momento, a pesar de que con esta prueba se pretend hacer descender a el porcentaje de falsos positivos. Este slo ha sido inferior, respecto a otros o clasicadores, a partir de las 15 fases de entrenamiento, que es cuando el nmero de aciertos decrece much u simo.

2.7.2.

Pruebas realizadas con otros conjuntos de imgenes a

Cada uno de los clasicadores descritos anteriormente ha sido tambin e probado para la deteccin online de narices. o En estas pruebas el entorno no era tan controlado, como podr ser la cara, a ya que el entorno donde funcionaba la aplicacin era el laboratorio. o En estas pruebas se vio la mayor de clasicadores, funcionaban basa tante mejor que lo que se puede ver en los resultados y se hicieron pruebas con un conjunto de imgenes capturadas por nosotros en el laboratorio y en a el que aparec un nmero reducido de personas distintas y se decidi hacer an u o pruebas controladas para ver el rendimiento exacto de ste en un conjunto e cerrado de personas. A continuacin enumeraremos las pruebas realizadas y mostraremos sus o resultados utilizando el clasicador v4.2, yq que con el v4.3 los resultados en cuanto a deteccin empeoraban mucho. o Prueba con todas las imgenes a La primera prueba fu con todas las imgenes que ten e a amos capturadas y guardadas hasta el momento (352). Las imgenes, como ya hemos dicho, cora responden a gente que sol estar por el laboratorio de visin por ordenador a o

56

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

(Toms Arnau, Yasmina Andreu, Ramn Mollineda, Ral Mart yo...) y a o u n, los resultados fueron los siguientes:

Tabla 2.23: Otras pruebas: Resultados con todas las imgenes a N de imgenes % aciertos % falsos positivos a 352 88.63 % 36.84 %
o

Como vemos, los resultados, en cuanto a falsos positivos, son bastante mejores que los obtenidos con el otro conjunto de imgenes de prueba. a Prueba tras a adir ms imgenes n a a A las imgenes de que dispon a amos se decidi, para ver como afectaba a o los resultados, alguna imagen ms capturada de manera similar intentando a que las personas que aparecieran fueran distintas. Los resultados los vemos a continuacin: o Tabla 2.24: Otras pruebas: Resultados tras aadir imgenes n a N de imgenes % aciertos % falsos positivos a 428 86.91 % 39.41 %
o

Aunque han empeorado un poco los resultados, son prcticamente los a mismos que ten amos en la prueba anterior. Prueba sin las imgenes muy iluminadas a A continuacin se decidi eliminar las imgenes capturadas durante la o o a inicializacin de la cmara, ya que stas salen sobreiluminadas y pueden o a e perjudicar a los resultados.

Hemos conseguido al eliminar estas imgenes una mejora bastante buena a en los resultados, ya que el clasicador encuentra casi siempre la nariz y slo o encuentra un falso positivo 1 de cada 3 veces. Adems, si el falso positivo a est en una imagen en que tambin encontramos la nariz correctamente, a e inuye bastante menos que si lo hiciera en otra imagen.

2.7. DETECCION DE NARICES

57

Tabla 2.25: Otras pruebas: Resultados sin las imgenes demasiado iluminadas a o N de imgenes % aciertos % falsos positivos a 231 93.94 % 34.0 % Prueba tras eliminar borrosas La ultima prueba con el clasicador v4.2, fue eliminar las imgenes bor a rosas del conjunto de prueba, ya que tambin pod esta inuyendo en el e an resultado.

Tabla 2.26: Otras pruebas: Resultados tras eliminar las borrosas N de imgenes % aciertos % falsos positivos a 162 92.59 % 30.70 %
o

Vemos que los resultados no se pueden comparar con los que hab amos obtenido con el otro conjunto de imgenes de prueba, son mucho mejores. a No es justo compararlos, debido a que el entorno donde probamos el clasicador corresponde a un entorno controlado como el laboratorio y con un grupo reducido de personas distintas en las imgenes de prueba, pero probaa blemente se asemeje bastante a alguno de los entornos donde nalmente vaya a trabajar la aplicacin. o

Prueba con el clasicador v5.2 Para esta prueba se han dejado 108 imgenes y se ha utilizado el clasia cador v5.2, obteniendo los siguientes resultados.

Tabla 2.27: Otras pruebas: Resultados con imgenes capturadas en el laboa ratorio y con el clasicador v5.2 No de imgenes % aciertos % falsos positivos a 108 99.07 % 17.69 %

58

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Figura 2.19: Ejemplos de la deteccin de narices con imgenes capturadas en o a el laboratorio Como vemos, los resultados son buen simos. Hemos encontrado la nariz en todas las imgenes menos en una y con slo 23 falsos positivos en 108 a o imgenes. a La diferencia entre los resultados obtenidos con un conjunto de imgenes a de prueba u otro se puede deber a la calidad de las imgenes de cada uno a de los conjuntos, cosa que no parece probable, o a que en el conjunto de imgenes capturadas en el laboratorio, el nmero de personas que aparecen a u es ms limitado. Supondremos que la diferencia es debido a esto y tomarea mos como resultados los que se han obtenido de las pruebas con el conjunto de imgenes que seleccionamos en principio, pero nos han parecido muy ina teresantes los resultados obtenidos con el otro conjunto de imgenes, ya que a estos son los resultados deseados y han sido obtenidos en un entorno mucho ms parecido al entorno donde debe trabajar la aplicacin en un futuro. a o Finalmente en la Figura 2.19 vemos algunos de los ejemplos del funcionamiento de la deteccin usando el clasicador v4.2 y el v5.2. o

2.7.3.

Seleccin de un clasicador o

Llegados a este punto y, sin haber obtenido los resultados deseados con el conjunto de prueba inicial, debemos escoger el clasicador que utilizaremos nalmente en la aplicacin. o La prioridad es, en nuestro caso, un clasicador que encuentre narices cor-

2.8. MARCADO DE COORDENADAS EN UNA IMAGEN rectas y que tenga un nmero de falsos positivos sucientemente bajo. u

59

Tras la ultima prueba con el otro conjunto de prueba, hemos observado que los resultados var mucho dependiendo de las imgenes utilizadas como an a prueba y como nuestra aplicacin, en principio, siempre se ejecutar en un o a entorno similar al del laboratorio, hemos decidido que el clasicador v5.2, que con imgenes capturadas por nosotros ha obtenido tan buen rendimiena to, sea el clasicador que utilizaremos.

2.8.

Marcado de coordenadas en una imagen

Para realizar las pruebas pertinentes y poder comprobar el nmero de u aciertos o fallos del clasicador para encontrar las narices, se ha utilizado, tras recomendacin de Ral Montoliu, una aplicacin realizada por Manoli o u o Nuez, alumna que se encontraba haciendo el Proyecto de Fin de Mster n a en el Laboratorio de Visin por Ordenador. Dicha aplicacin consiste en ir o o abriendo, una por una, todas las imgenes con un nombre determinado en a la carpeta donde esta la aplicacin y al pinchar encima de ellas, tantas veces o como queramos, se guardan en un chero de texto todas los pares de coordenadas de todas las imgenes en las que se ha pinchado junto con el nombre a de la imagen. Cuando se ha terminado con una imagen, basta con pasar a la siguiente pulsando la barra del teclado. Como la aplicacin no se ajustaba del todo a nuestros requerimientos, se o han realizado diversas modicaciones para adaptarla. Los cambios realizados han sido, principalmente, los siguientes: Se ha cambiado la forma en que la aplicacin coge las imgenes, pero a mitiendo que las imgenes puedan estar en una carpeta distinta a la a aplicacin y que stas tengan un nombre cualquiera (anteriormente, o e deb llamarse imgxxx). an Se ha cambiado el funcionamiento de la captura de coordenadas, debido a que en cada imagen tendremos una, y slo una, nariz. Por tanto, no o tiene sentido poder capturar ms de un par de coordenadas X-Y. La a aplicacin permit hacerlo, pero nos hemos ahorrado, con este cambio o a bastante simple, tener que pulsar despus de cada imagen la barra del e teclado, mejorando el uso de la aplicacin para este caso. o

60

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION Hemos adaptado el formato de salida a nuestras necesidades, ya que el existente no era del todo adecuado.

2.9.

Prueba del rendimiento de los clasicadores

Posteriormente, se ha realizado una aplicacin, que a partir de un clasio cador y un chero con los datos de las imgenes de prueba y las coordenadas a de las narices, nos devolviera el rendimiento de ste. e Esta aplicacin nos ha ahorrado a la larga, mucho tiempo en pruebas, ya o que estas han sido totalmente automticas. a Tambin se puede establecer manualmente si queremos que las imgenes e a aparezcan en pantalla con los candidatos a nariz rodeados y el tiempo que cada una de las imgenes permanece en pantalla. Al mismo tiempo, en la a consola desde donde ejecutamos la aplicacin, va apareciendo el nombre de o la imagen y para cada una de las narices encontradas, si es una nariz detectada correctamente o un falso positivo. Para realizar las pruebas hemos tenido que establecer los mrgenes tanto a a izquierda y derecha, como arriba y abajo de las coordenadas marcadas con la aplicacin anterior. Tras diversas pruebas se decidi establecer en la parte o o superior de las coordenadas el doble que en el resto de mrgenes, debido a a que la aplicacin muchas veces encuentra dos narices en la posicin donde o o est la nariz, una un poco ms arriba de la otra. Si utilizbamos para los cuaa a a tro mrgenes valores muy pequeos, detectar a n amos este caso como un acierto y como un falso positivo, y utilizando valores ms grandes para los cuatro a mrgenes muchos falsos positivos pasan a ser aciertos, de forma incorrecta. a Debido a esto, se opt, por establecer un margen para las partes izquierda, o derecha y abajo y, para la parte superior, el doble de ese valor. De esta forma, todas las posibles narices, se clasican correctamente como Aciertos o como Falsos Positivos.

2.10.

Obtener a partir de una imagen, varias subimgenes a

Para crear la v4 de los clasicadores, se decidi probar a usar un nmero o u muy grande de imgenes negativas y, por sencillez y no tener que estar busa cando imgenes y comprobar en todas y cada una de ellas que no aparec a a

2.11. DETECCION DE BOCAS Tabla 2.28: Resultados de la deteccin de bocas o No de imgenes % aciertos % falsos positivos a 295 85.36 % 5.25 %

61

ninguna nariz, se ha optado por utilizar las 2889 imgenes de las que ya a disponemos (en las que sabemos que no aparece ninguna nariz) y, creando una sencilla aplicacin, extraer automticamente de cada una de las imgenes o a a diez subimgenes del tamao deseaado. a n Para crear la aplicacin se ha reutilizado el cdigo, ya usado anteriormente, o o que nos permit tras detectar uno de los componentes deseados (cara, ojo a, derecho, ojo izquierdo o nariz) en una imagen, guardar en otra imagen una copia del componente a slado del resto de la imagen. Esto se ha combinado con un bucle que se ejecuta el nmero de veces que u deseemos (en nuestro caso 10) y en cada una de las iteraciones generamos un par de coordenadas X-Y, que ser el punto central de cada una de an las subimgenes que generaremos. Cada una de las subimgenes, tendr` un a a a tamao de 20x20, por tanto la imagen ir desde el punto (X-10; Y-10) al n a punto (X+10;Y+10). Debido a que el punto es el centro de la imagen, las coordenadas generadas aleatoriamente, nunca estarn a menos de 10 p a xeles de ninguno de los mrgenes, para evitar as seleccionar imgenes de menor tamao o que se a , a n salgan de los mrgenes de una imagen. a Tras la ejecucin de esta aplicacin, con el conjunto de 2889 (Figura 2.8) o o imgenes negativas, obtendremos un nuevo conjunto de imgenes negativas a a donde no aparecen narices de 28890 (Figura 2.10) imgenes, que usaremos a para la creacin de la v4 de clasicadores, que se ha explicado en el punto o anterior.

2.11.

Deteccin de bocas o

Para esta ultima parte de la deteccin, al igual que para la deteccin de o o ojos, se opt por utilizar un clasicador encontrado [url, l] debido a que los o resultados obtenidos con ste eran bastante satisfactorios. Los podemos ver e en la Tabla 2.28.

62

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Como vemos los resultados son muy buenos, ya que detectamos la boca en casi todas las imgenes y el nmero de falsos positivos es muy bajo. a u Para este apartado tambin se deshecho realizar un estudio de la imagen e para poder determinar si la boca aparece abierta o cerrada debido a, que creando el clasicador correspondiente, este punto quedar resuelto. a Con todo esto ya podemos obtener a partir de una webcam imgenes, en las a que con un postprocesado, podemos determinar si en ellas aparecen caras. Una vez obtenidas las caras, podemos extraer de ellas fcilmente todos los a componentes de que constan, eliminando en el proceso todas las imgenes de a posibles caras, en las que no hayamos encontrado alguno de los componentes, reduciendo as el nmero de fallos al l u mite, descartando para ello muchas caras que en un principio ser vlidas. an a

2.12.

Redactar el tutorial para crear clasicadores

Una vez realizado todo el proceso y para que sirva de ayuda para resolver futuros problemas similares, como ultimo paso, se realizar un tutorial en a donde se explique como obtener un clasicador funcional XML para detectar componentes cualquiera en imgenes utilizando el algoritmo de Viola&Jones. a Esta tarea fue relativamente corta, ya que slo consist en explicar con o a detalle los pasos seguidos para la obtencin del clasicador de narices. o El clasicador se puede encontrar en el Anexo A de este documento.

2.13.

Memoria del proyecto y presentacin o

Como ultima tarea del proyecto, queda la redaccin de la memoria y pos o terior presentacin. Esta tarea es una de las ms importantes, ya que sin un o a documento que explique todos los pasos seguidos y los resultados, carece de sentido haber realizado un trabajo. A pesar de que esta tarea no ha sido la que ms peso ha tenido en la duracin a o del proyecto, si que ha sido la que ha hecho que el nal de ste se retrase y e

2.13. MEMORIA DEL PROYECTO Y PRESENTACION haya habido un desfase respecto a la planicacin. o Con la exposicin del proyecto se dar n a ste. o a e

63

64

CAP ITULO 2. DESARROLLO Y EXPERIMENTACION

Cap tulo 3 Conclusiones


Contents
3.1. Introduccin . . . . . . . . . . . . . . . . . . . . . o 3.2. Conclusin global del proyecto . . . . . . . . . . o 3.3. Conclusin de cada una de las tareas o 3.4. Conclusiones personales . . . . . . 65 66 67 74

. . . . . . . . . . . . . .

3.1.

Introduccin o

En este tercer cap tulo se van a exponer las conclusiones al respecto del proyecto. En primer lugar, se hablar del resultado del proyecto de forma general, a tanto valorando sus resultados como expresando las conclusiones que se han obtenido a todos los niveles. A continuacin, se pasar a enumerar todas y o a cada una de las tareas y las sensaciones que se desprenden de la realizacin o de cada una de ellas, as como el porque de haberla realizado de un modo u otro y una valoracin de todos los resultados parciales obtenidos. o Desglosaremos las conclusiones por tareas debido a que los resultados de algunas tareas han sido mejores que los de otras. Para nalizar con este apartado, pasaremos a exponer las conclusiones del proyecto a nivel personal. 65

66

CAP ITULO 3. CONCLUSIONES

3.2.

Conclusin global del proyecto o

En cuanto a los resultados del proyecto pienso que, en rasgos generales, han sido lo sucientemente buenos. El proyecto ha resultado una aventura muy interesante de la que se han aprendido muchas cosas que pueden servir en otros proyectos que pueda llevar a cabo ms adelante. A pesar de que ha habido momentos en los que no a sal las cosas, estos me han servido para darme cuenta de que en el futuro, an hay que buscar solucin a cualquier tipo de problema que te pueda aparecer o y estos pueden salirte de cualquier parte. Los resultados parciales (excepto los obtenidos con la tarea de deteccin de o narices) han sido todos muy buenos, incluso algunas veces se han mejorado los resultados esperados y se han conseguido las soluciones propuestas en un corto periodo de tiempo. De todas formas, queda la pequea laguna de que uno de los puntos cenn trales del proyecto no funcione todo lo bien que desear amos al ejecutarlo independientemente de lo dems, aunque si lo ejecutamos como ultima fase, a despus de haber pasado por todas las anteriores, su inuencia es poca y no e empeora demasiado los resultados. Nos habr gustado que cualquiera de las tareas fuera completamente funa cional ejecutndola independientemente, ya que adems, estan separadas en a a programas distintos para poder utilizarlos como mdulos para otros probo lemas que se nos puedan presentar en otros contextos distintos. De todas formas, es una tarea interesante que se puede realizar despus del proyecto. e Respecto a otra de las tareas principales, me parece muy interesante el hecho de haber creado un tutorial para crear clasicadores porque, aunque no hayamos creado un clasicador tan bueno como desebamos, hemos hecho a muchas pruebas, y muchos fallos, que permitirn a la gente que siga el tua torial para abordar problemas similares no cometerlos y ahorrarse todo el tiempo que nosotros hemos perdido. Adems, siempre resulta interesante compartir los conocimientos adquiridos. a Y de las que considerbamos las tres tareas ms importantes del proyecto, la a a que mejores resultados presenta es la aplicacin de eliminacin de borrosas, o o ya que sta tiene un porcentaje de acierto de casi un 95 %. Adems, de que e a

3.3. CONCLUSION DE CADA UNA DE LAS TAREAS

67

fue bastante fcil de realizar y, en un principio, dudaba bastante de que fuera a a obtener un rendimiento tan bueno como el que se ha conseguido obtener. Otro de los puntos importantes, aunque ya ha sido nombrado, es la posibilidad de reutilizacin de cdigo, ya que cualquiera de los mdulos puede o o o ser inclu en un programa de mayor envergadura y, al dedicarse a cosas do muy espec cas, prcticamente no ser necesario tener que adaptarlos. a a

3.3.

Conclusin de cada una de las tareas o

En esta seccin se enumerarn todas las tareas realizadas y la conslusin o a o extra de los resultados obtenidos en cada una de ellas, as como una da pequea valoracin personal de porque se han tomado ciertas decisiones, n o en caso de que haya tenido que hacerse, que afectan al desarrollo de la tarea.

3.3.1.

Familiarizarse con OpenCV

Aqu lo ve todo como algo nuevo y complicado, pero una vez te pones y , a ves que empiezan a salir los resultados, no es tan dif como parece. OpenCV cil trae un tutorial muy completo que ofrece mucha ayuda para poder crear tus primeros algoritmos. Una vez ves que empiezan a funcionar y obtienes los resultados deseados, tu mismo vas probando cosas, cambios, nuevas funciones, para ver los cambios que se producen en la ejecucin. Engancha bastante. o Los resultados de esta tarea son muy positivos ya que, en pocos d pasas as, de no tener apenas conocimiento sobre el tema a ser capaz de realizar aplicaciones que hacen cosas que parecen complicadas, abrir imgenes y ser capaz a de mostrarlas, recortarlas, cambiarles los colores p a p xel xel... Tambin son muy interesantes las pruebas de tratamiento de v e deo frame a frame, para seleccionar un frame determinado o realizar operaciones con cada uno de estos. Por ultimo, resulta interesante la posibilidad de poderse conectar con la webcam desde el cdigo del programa para ponerla en marcha y que vaya o capturando imgenes frame a frame o, incluso, convertir todos los frames a capturados en un v deo. Esta es una tarea bastante sencilla para que la curva de aprendizaje no sea

68

CAP ITULO 3. CONCLUSIONES

muy pronunciada nada ms iniciarse el proyecto y eso es de agradecer. a

3.3.2.

Deteccin de caras o

Como segunda tarea, est la deteccin de caras, que es una de las bases a o slidas del proyecto. En ella se aprende a utilizar el algoritmo de Viola&Jones o y tambin el concepto de clasicador y su uso. Esto es algo que ser impore a tante a lo largo de todo el proyecto. Resulta interesante, ya que parece, al principio, que de forma casi incomprensible una aplicacin, que si miramos el cdigo es muy sencillo aunque no o o sepamos que est haciendo, si te pones delante de la cmara te detecta la a a posicin de la cara y te la rodea. o Es una tarea muy divertida, ya que intentas engaar a la aplicacin o ponerte n o de forma para que no te detecte y vas probando muchas cosas distintas. Luego, te das cuenta de que el cdigo realmente hace poca cosa, ya que o lo importante es el clasicador, que ya ven creado con la librer OpenCV, a a y adems te dan las herramientas para crearte tus propios clasicadores de a una forma que parece bastante sencilla. Esta tarea ha sido muy sencilla, ya que te dan las cosas hechas, pero debes preocuparte de entender muy bien el cdigo proporcionado para luego poder o realizar tus propias adaptaciones con xito. e El algoritmo proporcionado dispon de muchas opciones interesantes, pero a que no se iban a utilizar. Lo que yo hice para comprobar que entend todo a lo que se hac fue eliminar ms de 2/3 de las l a, a neas de cdigo, para cono seguir un detector sin opciones extra y comprobar que segu funcionando de la misma manera. Esta tarea hizo que cada vez apeteciera ms entrar de lleno en el proyeca to e ir avanzando y acercndose al objetivo. a

3.3.3.

Deteccin de borrosas o

Esta ha sido posiblemente la tarea que ms satisfaccin me ha provocado, a o porque vino de improvisto. En un principio no pensamos en que las imgenes a pod estar borrosas. Si que pensamos en que deb estar de frente, pero an an ya lo ten en cuenta el clasicador. Cuando empezamos a capturar imgenes a a nos dimos cuenta de que, cada vez que pon amos en marcha la cmara, las a

3.3. CONCLUSION DE CADA UNA DE LAS TAREAS

69

imgenes sl sobreilminadas y, adems, hab algunas que aparec bora a an u a a an rosas. Una vez visto esto, pensamos que podr perjudicar a los resultados y se a decidi solucionarlo de dos formas. La primera fue eliminar las primeras o imgenes captadas por la cmara y la segunda, buscar un mtodo para elima a e inar borrosas. A ra del art z culo [L. Chang and del Toro, 2008], que consigu Ramn Mollineo o da, se implemento el algoritmo all explicado y era muy sencillo. Por la sen cillez, igual era algo inesperado que tuviera un funcionamiento tan bueno. Personalmente, qued bastante sorprendido de la rapidez con que se sole vent esta tarea que no estaba en un principio prevista en el proyecto y que, o nalmente, ha sido una de las tareas ms importantes ya que se puede utia lizar con cualquier contexto en que queramos ltrar un conjunto de imgenes a paar eliminar las que estn ms borrosas. a a

3.3.4.

Escoger el mejor conjunto de imgenes de pruea ba y entrenamiento

Esta tarea era bastante sencilla y, al principio, se consider poco imporo tante, pero luego al realizar los distintos clasicadores para encontrar narices, se ha visto que la importancia de los conjuntos de imgenes era algo capital a en la creacin de clasicadores. o De haber sabido antes la gran importancia del conjunto de imgenes, se a habr empleado mucho ms tiempo en conseguir muchas ms imgenes posa a a a itivas, que una vez metidos de lleno en crear los clasicadores no nos ha sido posible encontrar ms. Tambin se habr realizado un estudio mejor para a e a darnos cuenta, desde el principio, de cosas que que hemos ido viendo tras alguno de los fallos cometidos al realizar los clasicadores. De los conjuntos con que contbamos, se ha escogido, sin duda, los que a mejores resultados nos iban a proporcionar, aunque s podr amos haber buscado otros con vistas a mejorar los resultados de haber sabido que iban a inuir tanto y que con los que ten amos no habr sucientes imgenes para a a crear un clasicador completamente funcional.

70

CAP ITULO 3. CONCLUSIONES

3.3.5.

Deteccin de ojos o

Al principio, esta tarea pareci muy complicada debido a que se pens en o o analizar la imagen y buscar los ojos buscando zonas de distinto color, mirando si estn abiertos o cerrados observando la curvatura, tal y como est explia a cado en el apartado correspondiente. Finalmente, y tras trabajar un par de d con ese n, se descubri que as o hab clasicadores hechos para encontrarlos y se vi interesante utilizarlos a o debido al buen funcionamiento que presentaban, Era una solucin que hac ms sencilla esta tarea, pero pasbamos a realizar o a a a la deteccin de todos los componentes de modo similar y se decidi que para o o la bsqueda de narices el clasicador se creara manualmente para comprobar u el proceso seguido para realizarlos, con lo que la deteccin de ojos pasaba de o ser uno de los elementos principales del proyecto a ser un elemento importante pero secundario. Como conclusin decir que la deteccin de los ojos funciona de una foro o ma bastante buena y que habr resultado tambin muy interesante seguir a e la otra opcin, aunque personalmente me parece mucho mejor el camino que o hemos seguido ya que al aprender a realizar clasicadores podemos llegar a encontrar cualquier cosa que queramos de una forma bastante similar y analizando la imagen, depender en gran parte del componente buscado y de a las caracter sticas que presente ste. e Parece una tarea sin mucha importancia dentro del proyecto, ya que el clasicador se ha encontrado hecho, pero fue crucial, porque hizo que el proyecto tomara un nuevo rumbo mucho ms interesante y ampliable segn mi punto a u de vista.

3.3.6.

Deteccin de narices o

Esta es la parte que menos me ha gustado y con la que menos contento estoy debido a no haber sido capaz de conseguir que los resultados mejoraran lo suciente para poder consederarlos vlidos. a El problema es que para hacer cada una de las pruebas, la aplicacin tarda o much simas horas (ms de 1 d y, por tanto, no se han podido realizar una a a) gran cantidad. Se han hecho muchas, pero hubieran sido necesarias muchas ms para llegar a obtener un conocimiento lo sucientemente amplio del funa

3.3. CONCLUSION DE CADA UNA DE LAS TAREAS

71

cionamiento de los clasicadores y de las imgenes que se deben utilizar como a positivas y como negativas. Por el otro lado, es en la tarea que ms se ha aprendido y en la que se a han podido sacar las conclusiones ms importantes debido a que es en la que a ms fallos se han cometido y, poco a poco, se ha ido viendo en que fallaba a la solucin utilizada y como poder resolverla tras estudiar detenidamente la o situacin. o Si antes de empezar, se hubiese dedicado un tiempo a estudiar el problema tranquilamente, se habr ahorrado muchas de las pruebas, empezanan do directamente desde un estado al que se lleg tras varias aproximaciones o errneas al problema. o En muchas de las otras tareas, al ir hacindolas y ver como van saliendo, e consigues motivarte ms y, en caso de que no salgan, intentas solucionarlo de a muchas formas. En sta, el hecho de que cada prueba tardaba uno o varios e d en poderse probar, hac que fuera desesperante por momentos. Adems, as a a de que el entrenamiento era muy largo y costoso, muchas veces daba errores por falta de memoria o cosas similares y tocaba volver a comenzar de cero. A nivel personal, no estoy nada contento con los resultados de esta tarea, aunque s con los conocimientos adquiridos y en como se ha llevado a cabo, porque me ha hecho entender que hay que analizar primero la tarea con detenimiento antes de ponerse a solucionarla. A pesar de todo, se pudo lograr que, aunque los resultados de esta tarea no fueran los esperados, que tuviera un impacto m nimo en los resultados globales de la aplicacin, debido a que, anteriormente a la ejecucin de esta o o tarea, ya se hab ltrado la mayor de las imgenes y las que quedan estaan a a mos completamente seguros de que son caras. Por tanto, los falsos positivos no tienen tanto efecto. Cabe destacar que los resultados obtenidos con un conjunto de imgenes a capturadas por nosotros mediante la webcam son buen simos, aunque todav haya un 17 % de falsos positivos, se consigue un 99 % de aciertos en a la deteccin. Simplemente, lo comentamos, porque el conjunto utilizado es o mucho ms cerrado y cabr comprobar el comportamiento en un grupo de a a imgenes ms heterogneo. a a e

72

CAP ITULO 3. CONCLUSIONES

3.3.7.

Marcado de coordenadas en una imagen

Esta tarea fue relativamente sencilla ya que se part de una aplicacin a o completamente funcional que resolv un problema que era bastante parecia do al que se nos planteaba. Esta aplicacin hab sido realizada por Manoli o a Nnez y gracias a su ayuda conseguimos resolver en poco tiempo un probleu ma que, de otra forma, nos habr costado bastante ms tiempo. a a Al tener que adaptar la aplicacin para cambiar ciertas cosas que nos ino teresaba que fueran de otra manera, se tuvo que pegar un buen estudio al cdigo, pero al nal, los cambios eran sencillos y en poco tiempo, pudimos o tener la aplicacin funcionando. o Con ella conseguimos automatizar el proceso de evaluacin de los clasio cadoresya que, al marcar el componente buscado, no ten amos que estar pendientes de si lo hab encontrado o no y, simplemente, con una comparacin a o de coordenadas pod amos obtener el resultado. Los resultados de esta aplicacin han sido muy buenos, aunque no ha aporo tado mucho al aprendizaje.

3.3.8.

Prueba automtica del rendimiento de los clasia cadores

Esta tarea est muy relacionada con la anterior, ya que usa lo descrito a anteriormente para realizar las pruebas pertinentes. Estamos muy contentos con su creacin porque hemos conseguido ahorrar o mucho tiempo de pruebas, ya que usando la aplicacin, automticamente se o a obten un resumen con todos los resultados deseados. a La aplicacin fue sencilla de realizar, slo hubo que hacer unos pequeos o o n reajustes para que funcionara de forma completamente correcta. Resulta muy interesante la combinacin de estas dos ultimas tareas ya que o pueden ser usadas para cualquier tipo de deteccin de objetos usando clasio cadores, ya que son totalmente independientes de las imgenes utilizadas y a de los clasicadores.

3.3. CONCLUSION DE CADA UNA DE LAS TAREAS

73

3.3.9.

Obtener a partir de una imagen, varias subimgenes a

En esta tarea, se quer obtener muchas imgenes y se vi que resultaba a a o ms cmodo y ms rpido automatizar el proceso. A pesar de haber tenido a o a a que utilizarla slo una vez, estamos muy contentos con el hecho de haber o escrito dicho cdigo, pues este nos puede servir en un futuro cuando, en o cualquier tipo de proyecto, podemos obtener todas las imgenes que quera amos a partir de una imagen. Haber realizado esta tarea simplica mucho el proceso de obtencin de imgenes o a a partir de otras, ya que incluso les podemos dar los nombres deseados y crear un chero con todas las rutas de las imgenes y los datos que posteriormente a vayamos a tener que utilizar.

3.3.10.

Deteccin de bocas o

Al igual que la deteccin de ojos, pero esta vez por falta de tiempo, se ha o recurrido a buscar un clasicador por la red y, tras ver que su funcionamiento era sustancialmente mejor que el clasicador de narices creado por nosotros desde cero, se ha decidido utilizarlo. De esta forma, conseguimos que el unico punto conictivo de la aplicacin o sea el clasicador de narices y, dejndolo al nal, no inuye demasiado en el a resultado. Mi opinin al respecto de esta tarea es que habr sido mejor crear un clasio a cador de bocas que de narices, ya que entre las bocas y el resto de partes de la cara hay una diferencia mucho ms pronunciada que la que hay con las a narices, aunque el fallo estuvo en el planteamiento inicial y no en el desarrollo del proyecto.

3.3.11.

Redactar el tutorial para crear clasicadores

Este punto me parece de una importancia muy grande, ya que transmitir los conocimientos adquiridos a alguien me parece algo interesant simo. El tutorial se ha hecho tratando todos los problemas con que se puede encontrar cualquier persona que, como yo, se enfrenta por primera vez al mundo de los clasicadores. Con ello se pretende, ahorrar muchos fallos y mucho tiempo a la gente que intenta hacer un clasicador para que empiecen desde un punto ms avanzaa

74

CAP ITULO 3. CONCLUSIONES

do y nalicen su tarea antes de dejarla de lado debido a los errores cometidos y al tiempo invertido. Siempre me ha gustado hacer manuales de las tareas complicadas que he realizado tanto en la estancia en prcticas como en la empresa donde estoy a trabajando actualmente, por tanto, ha sido muy interesante para m poder compartir mis conocimientos sobre el tema. Me gustar mucho que la gente que pudiera necesitar este manual pudiese a acceder a l de manera sencilla y que le fuera util. e

3.3.12.

Memoria del proyecto y presentacin o

Esta ultima tarea es la que menos me ha gustado, debido a tener que invertir mucho tiempo, en una poca en la que no dispon de l. e a e Cuando el resto de tareas ya estaban, salvo pequeas modicaciones, con mo en esta ultima versin fue cuando decid iniciar esta tarea. Esto para o m es un error bastante grande, ya que hay que llevarla lo ms paralela a la a realizacin de las otras tareas posible. o Al haberla dejado para el nal y, en mi caso, empezar a trabajar, hace que te dejes esta ultima tarea un poco de lado y cuando intentas llevarla a cabo te das cuenta de que te faltan hojas de resultados, has perdido enlaces con informacin, no recuerdas cosas que hab hecho... o as Todo esto slo hace que tengas que invertir mucho ms tiempo del que o a costar si se hubiera llevado todo a la par. a Al menos, queda una importante leccin para otra vez que se tenga que o llevar a cabo un proyecto de similares caracter sticas.

3.4.

Conclusiones personales

Globalmente, los resultados han sido buenos, lo cual es bastante importante. Aunque el cometido de un proyecto de n de carrera, ya que es una asignatura, es aprender y esto se ha conseguido sin lugar a duda. Cuando toca enfrentarse a esta asignatura, la mayor de los alumnos lo hacemos con a miedo, porque ves que es algo ms grande y distinto a cualquier otra asiga natura cursada, pero a medida que te animas y vas introducindote descubres e

3.4. CONCLUSIONES PERSONALES

75

que es la asignatura en la que ms se aprende y en la que ms orgulloso te a a sientes del trabajo realizado, porque sientes que es algo que ests haciendo a solo (aunque esto no sea verdad). Cuando empiezas con el trabajo y ves que adelantas, te engancha, quieres ms y deseas acabar lo ms rpido posible. Lees cosas al respecto, preguntas, a a a buscas cosas similares, le hablas a la gente de lo que ests haciendo (aunque a no le interese lo ms m a nimo o no entiendan nada) y en cualquier situacin o piensas en como podr mejorar ciertas cosas. as Pero puede darse el caso, como a m me ha pasado (y supongo que a mucha gente ms) que te quedes estancado en un sitio y no puedas avanzar, entonces a todo lo explicado anteriormente, se vuelve en tu contra. Ves que no avanzas, que gastas un tiempo en intentar resolverlo que luego utilizar para otras as cosas, que los resultados no estn siendo los deseados, que va a salir todo mal a por culpa de esto y otras cosas parecidas. El problema es que la gente, yo inclu do, no suele pensar en que esto es un aprendizaje ms para prepararte para la vida laboral y que no son tan a importantes los resultados obtenidos como las conclusiones que seamos capaces de obtener de ellos y nos encegamos en mejorar los resultados que no son los adecuados con ms corazn que cabeza, y ese es un problema bastante a o importante. En cuanto al proyecto en s me pareci bastante interesante desde el princi, o pio y complicado de realizar pero, una vez conocida la librer OpenCV, el a proyecto era bastante sencillo. Hab dos posibles formas de abordarlo una vez obtenidas las imgenes de a a las caras: Analizar la imagen Usar clasicadores Personalmente, nunca me ha gustado tener que analizar las imgenes p a xel por p mirando el color o los p xel xeles adyacentes y cosas por el estilo. Lo poco que me he metido en ese tema, me ha parecido bastante lioso y complicado, por tanto, no era partidario de seguir por este camino. Un camino conocido y complicado. El otro camino, era el camino desconocido ya que, antes de empezar el proyecto, no ten conocimiento de la existencia de clasicadores que nos permit a an

76

CAP ITULO 3. CONCLUSIONES

encontrar lo que deseramos en una imagen. Finalmente fue el camino esa cogido y al principio todo parec sencillo y las cosas parec salir como por a an arte de magia. Pero el camino desconocido y fcil, escond peligros. Una vez metido de a a lleno en el mundo de los clasicadores, se ve que no todo es tan bonito, supongo que por falta de experiencia. Los clasicadores son muy sencillos de realizar pero conseguir que funcionen de forma efectiva y eciente es algo realmente complicado. Se tiene que estudiar realmente bien las imgenes que a vas a utilizar, tanto positivas como negativas y tener en cuenta todo lo que pueda afectar a esto y, sobretodo, tener tiempo y paciencia, algo fundamental, que quizs a m me falt. a o A pesar de esto, mi valoracin es muy positiva, ya que me he metido en o un campo nuevo, donde no ten ningn conocimiento y he aprendido mucho a u de esto. Creo que ha valido mucho la pena escoger el camino desconocido porque as me he dado cuenta que algo que, aparentemente, es sencillo si no lo conoces puede complicarse. En cuanto al trabajo realizado, me quedo un poco decepcionado, ya que los resultados del clasicador de narices no han llegado a ser todo lo buenos que me hubiese gustado, aunque estoy convencido de que con un poco ms de a estudio, tiempo y pruebas se habr acabado consiguiendo resultados simian lares a los de otros clasicadores encontrados por la web, como el de ojos. Por otra parte, satisfecho de que en el entorno donde usamos la aplicacin o con imgenes de gente capturadas por nosotros, los resultados son prcticaa a mente excelentes, aunque no hayan sido buenos con distintos conjuntos de imgenes de prueba obtenidos. a Lo que es harina de otro costal es la realizacin de la memoria que se hace o aburrida y pesada si no la has llevado a la par que el proyecto y que es algo que nos pasa a casi todos. Y cuando nalmente te pones a hacerla te das cuenta de que realmente es una de las cosas ms importantes, ya que exprea sas tu valoracin sobre los resultados y tu opinin sobre porque han salido o o como han salido. Y es donde muestras realmente lo que has aprendido. Me gustar comentar que el nal se ha alargado bastante debido a que a desde el mes de enero estoy trabajando y me he despreocupado un poco y he dejado la memoria algo de lado, cosa que no ten que haber hecho en un a principio, ya que esto hizo que fuera cada vez ms dif volverse a poner. a cil

3.4. CONCLUSIONES PERSONALES

77

Y por ultimo, querr agradecer tanto a Ral Montolu como a Ramn Molline a u o da toda la ayuda prestada, que no ha sido poca, como al resto de miembros del laboratorio, sobretodo a Yasmina Andreu y Manoli Nnez, ya que su u cooperacin ha sido crucial para el desarrollo del proyecto. Tambin ha sido o e importante la ayuda de Ral Mart ya que, dejando a un lado la ayuda u n, ofrecida en el laboratorio, su memoria me ha servido de gu para establecer a los puntos importantes de sta. Y la paciencia de Toms Arnau, porque al no e a tener acceso a todos los ordenadores del laboratorio, no pod utilizar otro a ordenador sin su ayuda para realizar los clasicadores y as poder adelantar otras cosas.

78

CAP ITULO 3. CONCLUSIONES

Cap tulo 4 Posibles mejoras y ampliaciones


Contents
4.1. Mejorar el rendimiento de la aplicacin . . . . . o 4.2. Posibles ampliaciones del proyecto . . . . . . . . 4.3. Otros proyectos relacionados . . . . . . . . . . . . 79 80 83

Como ultimo cap tulo de la memoria hablaremos de mejoras o ampliaciones que se pueden hacer al proyecto. Nombraremos las que nos parezcan ms interesantes y daremos una breve explicacin de su utilidad. Tambin coa o e mentaremos otros proyectos que pueden ser realizados tomando como base la idea de los clasicadores XML, ya que estos se pueden utilizar para la deteccin de cualquier cosa y luego pueden ser aplicados a multitud de proyectos o distintos. Muchas de estas propuestas pueden ser encaminadas a acercarnos a los objetivos a largo plazo descritos en la seccin 1.2 y otros pueden tomar o otros caminos totalmente distintos una vez visto el camino que ha seguido el proyecto.

4.1.

Mejorar el rendimiento de la aplicacin o

La mejora bsica de esta aplicacin consiste en subsanar el aspecto donde a o su rendimiento es peor, esto es, el clasicador encargado de encontrar narices. Tenemos dos formas bsicas de mejorar el clasicador. A continuacin explia o caremos cada una de ellas brevemente. 79

80

CAP ITULO 4. POSIBLES MEJORAS Y AMPLIACIONES

4.1.1.

B squeda de un clasicador de narices mejor u

La forma ms sencilla de mejorar el rendimiento de nuestra aplicacin a o y hacerla mucho ms usable es obtener uin clasicador de similares caraca ter sticas por la red, cosa que no deber ser muy dif pero que tenga una a cil, relacin porcentaje de acierto/porcentaje de falsos positivos bastante ms o a alta que el clasicador que hemos podido obtener nosotros. Es una mejora que pod amos haber hecho pero que hemos decidido no tenerla en cuenta, debido a que lo importante del proyecto era aprender como crear un clasicador e interpretar los resultados. Se ha visto que tras muchas pruebas estos han ido mejorando pero no han llegado al nivel deseado y como el objetivo era crear el mejor clasicador posible, ser el que utilice nuestra aplicacin. a o Por tanto, obteniendo un clasicador mejor por la red, conseguir amos, adems a de obtener caras donde encontramos todos los componentes y los almacenamos por separado, tener la seguridad de que la nariz encontrada ser en la a mayor de casos el trozo de imagen seleccionado (cosa que ahora slo ocurre a o en algunas ocasiones). Con esta sencilla tarea habr amos conseguido mejorar la aplicacin. o

4.1.2.

Creacin de un clasicador mejor o

Anlogamente, podemos decidirnos por crear un clasicador mejor nosotros a mismos, con toda la informacin recabada durante las pruebas realizadas. o Ser una solucin similar a la explicada en la seccin 4.1.1, pero que tendr a o o a un coste temporal mucho mayor. De esta forma, adems de lograr el objetivo a deseado, aprender amos mucho ms sobre clasicadores, ya que por falta de a tiempo no se ha podido conseguir aprender lo suciente como para crear un clasicador completamente funcional.

4.2.

Posibles ampliaciones del proyecto

En esta seccin describiremos otras mejoras que se salgan de los objetivos o marcados en un principio para el proyecto realizado.

4.2. POSIBLES AMPLIACIONES DEL PROYECTO

81

4.2.1.

Mejora en la deteccin de los componentes o

Como posible mejora se puede plantear mejorar los clasicadores utilizados para que slo se detecten ojos abiertos y bocas cerradas. De esta forma o conseguiremos descartar caras que, por razones obvias, no son optimas para usarlas para reconocimiento facial. La idea consistir en crear los clasicadores pertinentes para que slo sean a o vlidos los ojos abiertos y las bocas cerradas. a En principio, se debern usar como imgenes de entrenamiento positivas, a a imgenes de ojos abiertos y de bocas cerradas, dependiendo del clasicador a que estemos realizando, y como conjunto de imgenes negativas, bocas abiera tas en un caso y ojos cerrados en el otro, consiguiendo de esta forma los resultados adecuados. Una vez realizados estos clasicadores, la aplicacin ser capaz de encono a trar caras no borrosas con los dos ojos abiertos y la boca cerrada, con lo que ya podemos estar seguros de que esta cara es un buen candidato para ser usada en proyectos de mayor envergadura. Estas mejoras pueden ser implementadas de distintas formas, como podr a ser analizar la imagen, pero nos parece mucho ms interesante y relacionado a con el proyecto usar clasicadores XML.

4.2.2.

Reconocimiento de personas

Otra de las mejoras que se podr realizar corresponde a implementar an un sistema de reconocimiento biomtrico de personas. e Bsicamente, encaminados a dos de los objetivos descritos en la seccin a o 1.2. Sistemas de acceso biomtrico e Podemos utilizar el reconocimiento facial para implementar sistemas de acceso biomtrico. Esta es quizs la mejora ms importante que podemos e a a realizar ya que, es uno de los objetivos que motivan la realizacin de este o proyecto. Con un sistema de estas caracter sticas podr amos evitar que una persona

82

CAP ITULO 4. POSIBLES MEJORAS Y AMPLIACIONES

deba llevar encima cientos de llavas, tarjetas de identicacin, documentos, o etc. Todos los objetos descritos son susceptibles de prdida, deterioro, rotura e o falsicacin, cosa que no sucede con la cara. o Para esta mejora ser necesario, una vez tenemos los componentes, almaa cenarlos todos en una base de datos que est disponible en todos los sitios e donde se implemente el sistema. Adems, debemos crear un mtodo que nos a e permita de forma rpida y sin fallos comparar entre las imgenes obtenidas a a en tiempo real a travs de la cmara y todas las imgenes de la base de datos, e a a para comprobar si estos datos coinciden o no con los almacenados y actuar en consecuencia.

Reconocimiento de sospechosos Otra de las utilidades de los sistemas de reconocimientos facial puede ser la deteccin de sospechosos en lugares pblicos. o u Este caso, resulta importante ya que, tericamente, los componentes de la o cara ser iguales, aunque la persona se cambie de peinado, cambie su color an de pelo u ojos o se deje vello facial. Una persona con todos estos cambios, podr parecer otra a ojos de una persona, pero si nos jamos simplemente a en los rasgos de sus componentes faciales, los cambios sern m a nimos. Tambin se podr usar de la misma forma para buscar personas desaparecie a das por otras razones. Sistema de registro de horas de entrada y salida de trabajadores En muchas empresas es habitual controlar las horas de entrada y salida de sus trabajadores. Este proceso suele realizarse mediante mquinas, que permiten a los traa bajadores introducir una tarjeta personal, para que se registren las horarios de llegada y salida. Ser muy interesante conseguir un sistema de reconocimiento visual que a nos permitiera, simplemente a travs de las imgenes capturadas a travs de e a e una cmara, registrar el momento en que cada trabajador entra y sale. a Este sistema ser mucho ms rpido y cmodo para los trabajadores y, en caa a a o so de que lo deseramos, ser incluso transparente, ya que se podr utilizar a a a

4.3. OTROS PROYECTOS RELACIONADOS sin que estos se dieran cuenta.

83

4.2.3.

Videovigilancia

Como dijimos en la seccin 1.2, los sistemas de videovigilancia son otro o de los objetivos a largo plazo del proyecto y podemos realizar mejoras en ese aspecto. Podemos usar, como ejemplo ms bsico de videovigilancia el algoritmo de Via a ola&Jones [Viola and Jones, 2003] con el clasicador que viene con OpenCV para detectar personas de cuerpo completo. En caso de que el sistema detecte una persona podemos actuar de una forma determinada. Por ejemplo, avisar al propietario de la casa, a la policia, cerras las puertas automticamente, etc. a Y, renando el sistema, podr amos introducir un sistema de reconocimiento de las personas no peligrosas, para que el sistema las reconozca y contine u funcionando como si nada hubiera pasado. En este aspecto, se puede trabajar en muchas v para crear sistemas de as videovigilancia cada vez mejores.

4.3.

Otros proyectos relacionados

En esta seccin explicaremos algun proyecto que guarda cierta relacin o o con el descrito en este documento, pero con objetivos alejados de ste. e

4.3.1.

Control de la fauna

Podemos crear un clasicador que detecte de una especie cualquiera de animal y instalar cmaras de seguimiento en su hbitat natural para obsera a var su comportamiento sin la presencia de personas, contar el nmero de u individuos de una especie en peligro de extincin en un lugar determinado y o muchas otras cosas relacionadas con el mundo animal.

4.3.2.

Sistema de reconocimiento del lenguaje de gestos

Otro proyecto que me resulta interesante, ya que tengo un familiar cercano con problemas de habla y de audicin, ser crear un sistema que fuera capaz o a de reconocer, en un medio controlado, el lenguaje de gestos usado por las pesonas sordas y obtener a partir de imgenes de una persona usando dicho a

84

CAP ITULO 4. POSIBLES MEJORAS Y AMPLIACIONES

lenguaje para comunicarse, el mensaje en formato texto y en formato audible. Me parece interesante, ya que puede que una persona sordomuda quiera comunicarse con otra que no conozca el lenguaje utilizado por sta. Ser una e a especie de traductor, lenguaje de signos - lenguaje hablado, instanteno, ya a que tener que escribir cada vez algo para poder comunicarse y ser entendido resulta bastante incmodo. o A partir de esta mejora, tambin se podr implementar un sistema de ree a conocimiento de cualquier tipo de lenguaje de gestos, como el utilizado por los arbitros en los partidos de baloncesto cuando se dirigen a la mesa para que estos anoten las incidencias del partido.

Apndice A e Tutorial para crear clasicadores


Contents
A.1. Introduccin . . . . . . . . . . . . . . . . . . . . . o A.2. Funcionamiento del algoritmo de deteccin de o caras . . . . . . . . . . . . . . . . . . . . . . . . . . A.3. Creacin del clasicador de narices . . . . . . . . o 85 86 87

A.1.

Introduccin o

En este anexo vamos a intentar dar las directrices bsicas que se deben a seguir a la hora de crear un clasicador XML. Para ello, explicaremos en que consisten las dos aplicaciones utilzidas para ello y todos los parmetros que a debemos ajustar para el funcionamiento de stas. e Nuestro objetivo es que mucha gente que quiera desarrollar proyectos de cualquier tipo en los que se usen clasicadores XML, tengan una gu bsica a a para no tener que empezar desde cero y as conseguir evitar muchos de los fallos que hemos cometido nosotros al no tener desde el principio mucha informacin al respecto. o Para generar clasicadores XML, se utilizan dos aplicaciones: createsamples y haartraining. Estas dos aplicaciones vienen inclu das en la libreria OpenCV y su utilizacin es muy sencilla, ya que simplemente debemos ejecutarlas deso de la l nea de comandos con los parmetros adecuados. a 85

86

APENDICE A. TUTORIAL PARA CREAR CLASIFICADORES

A continuacin describiremos el funcionamiento del algoritmo de deteccin o o de caras y, posteriormente, nos centraremos en explicar la creacin de un o clasicador para crear narices. Nos centramos en ste, ya que ha sido el que e hemos realizado, pero adecuando las imgenes a cada caso, se pueden llegar a a crear clasicadores paa encontrar todo tipo de cosas distintas en imgenes. a

A.2.

Funcionamiento del algoritmo de deteccin de caras o

En primer lugar explicaremos el funcionamiento del algoritmo de deteccin de caras que viene con OpenCV [Viola and Jones, 2003]. o Este algoritmo se encarga de detectar si en una IplImage de OpenCV hay alguna cara humana. En caso de detectarla modica la imagen original marcando la cara detectada con un c rculo. En primer lugar el algoritmo de Viola&Jones se encarga de suavizar la imagen y pasarla a escala de grises, ya que los colores no son relevantes, porque al buscar nos centraremos slo en las formas geomtricas. Para conseguirlo o e se utiliza la siguiente funcin de OpenCV que nos dar la imagen de entrada o a en escala de grises: cvCvtColor(IplImage orig, IplImage dest, CV GRAY2GRAY) Cuando se obtiene una imagen con las dimensiones y colores adecuado se procede a la deteccin de caras en la imagen. Para ello se utiliza la siguiente o funcin: o CvSeq* cvHaarDetectObjects( const IplImage* img, CvHidHaarClassierCascade* cascade, CvMemStorage* storage, double scale factor, int min neighbors, int ags); Esta funcin encuentra regiones rectangulares en la imagen de entrada que o tienen una granprobabilidad de contener los objetos para los que el parmetro a cascade (el clasicador utilizado) ha sido entrenado, devolviendo estas regiones como una secuencia de rectngulos. Esta funcin escanea la imagen a o varias veces en diferentes escalas. Aplicando algoritmos de heur stica para reducir el nmero de regiones analizadas. u

A.3. CREACION DEL CLASIFICADOR DE NARICES

87

Por lo que simplemente se deber pasar como parmetro un CvHidHaarClasa a sierCascade entrenado para detectar caras. Estos clasicadores son archivos XML y en particular se ha usado un clasicador de OpenCV que nos permite encontrar caras de frente. Este clasicador es haarcascade frontalface alt.xml. Despus se obtendr una secuencia de rectngulos donde se encuentran las e a a caras por lo que lo unico que se debe hacer es recorrer esta secuencia e ir marcando con un c rculo cada una de las caras.

A.3.

Creacin del clasicador de narices o

En este punto, vamos a explicar como crear un clasicador, ya que nuestra intencin es poder encontrar narices en las imgenes capturadas siguiendo o a este mtodo, pero OpenCV no dispone de ningn clasicador entrenado para e u realizar esta labor. Realizar un clasicador requiere un largo y tedioso proceso que estructuraremos en 4 etapas. Estas etapas se ejecutarn secuencialmente y las podemos ver a en la Figura A.1. El primer paso que se debe seguir para crear el clasicador es tomar las imgenes que van a ser utilizadas como imgenes de entrenamiento del a a clasicador. Necesitamos dos tipos de imgenes: a Imgenes Positivas: Son imgenes en las que se encuentra el objeto que a a deseamos detectar de una forma clara. En nuestro caso, imgenes de a manos. Para realizar los distintos clasicadores, hemos tomado muchas imgenes y hemos utilizado las imgenes de caras de la base de datos a a FERET [url, j], para extraer las narices. En la mayor de clasicadores a hemos utilizado 2147 imgenes de narices. a En la documentacin se aconseja utilizar unas 5000 imgenes positio a vas, pero no hemos podido conseguir las sucientes, ya que deb amo guardar algunas imgenes de caras para realizar pruebas de rendimiento a del clasicador, sin que ya hubiesen sido utilizadas en el entrenamiento.

Imgenes Negativas: Son imgenes tomadas, en principio, de forma ara a bitraria. Lo ms importante es que estas imgenes no contengan el objea a

88

APENDICE A. TUTORIAL PARA CREAR CLASIFICADORES

Figura A.1: Secuencia de etapas a seguir para crear un clasicador

to que deseamos encontrar, en nuestro caso, que no contengan ninguna nariz. Es interesante hacer un estudio un poco ms amplio y hacernos la a pregunta siguiente: Dnde va a trabajar nuestra aplicacin? o o Si la respuesta es que la aplicacin trabajar siempre en un entorno de o a similares caracter sticas, por ejemplo, para buscar la nariz en una cara lo hacemos buscando la cara y, en un postproceso, buscamos la nariz en la imagen de la cara recortada, es conveniente que utilicemos, como imgenes negativas, imgenes de la cara donde on aparezcan narices. a a Esto se har as debido a que la aplicacin nunca podr encontrar a , o a nada que no fueran trozos de la cara y no tiene sentido que logre distinguir, valga el ejemplo, un coche de una nariz. Si, por el contrario, nuestra aplicacin va a tener que funcionaren un eno torno dinmico, se deben utilizar como imagenes negativas, imgenes a n a arbitrarias, ya que no podemos predecir que aparecer en un momento a determinado en una imagen mientras buscamos narices.

A.3. CREACION DEL CLASIFICADOR DE NARICES

89

Nosotros hemos realizado diferentes pruebas, con nmeros de imgenes u a desde 1218 hasta 28890. La documentacin de OpenCV aconseja utio lizar unas 8000 imgenes. a

Una vez tenemos los dos conjuntos de imgenes denidos, pasaremos a la a siguiente etapa, crear la muestra. Para llevarla a cabo utilizaremos la aplicacin OpenCV llamada createsamples pasndole un chero con las rutas de o a todas las imgenes positivas. a El chero debe ajustarse al siguiente formato: u Ruta imagen nmero x y ancho largo De cada una de las imgenes positivas a utilizar debemos obtener las dia mensiones y coordenadas donde se encuentra la nariz. En nuestro caso, se dispuso de una herramienta que a partir de la BBDD de caras, obten la imagen de la nariz, por lo que siempre ocupaba toda la a imagen y creaba un chero con los nombres de todas las narices. A continuacin, rellenaba cada una de las l o neas con los datos adecuados. En nuestro caso nmero, x e y siempre tomaban los valores 1, 0 y 0 respectivamente, u debido a que en la imgen siempre aparec una nariz que ocupaba toda la a imagen. Los dos ultimos campos se correspondian con el tamao de la imagen. n Aqu podemos ver un ejemplo de la ejecucion del comando createsamples. n createsamples.exe -info positives/info.txt -vec infovec.vec -num 2147 -w 20 -h 20 Donde num es el nmero de imgenes positivas, w y h la longitud que se u a desea que tengan las imgenes de muestra de salida, -vec el vector de salida a donde guardaremos todas las imagenes normalizadas e info.txt es el archivo n de texto con las rutas de todas las imgenes y tendr el formato explicado a a anteriormente. Tras realizar este proceso se habr creado el vector que contiene las imgenes a a de muestra, estas imgenes estarn normalizadas, en escala de grises y con a a el tamao adecuado. n Una vez ya disponemos de la muestra, pasaremos al entrenamiento del clasi-

90

APENDICE A. TUTORIAL PARA CREAR CLASIFICADORES

cador que es la fase ms lenta y costosa. a Para llevar a cabo el entrenamiento [url, n] se utiliza la aplicacin haaro training con los parmetros adecuados a cada caso. Aqu vemos un ejemplo a de llamada: haartraining.exe -data trainout -vec infovec.vec -bg negatives.txt -nstages 14 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos 2147 -nneg 2889 -w 20 -h 20 -mem 700 -mode ALL El signicado de cada uno de los parmetros es el siguiente: a

data: Es la ruta de salida del clasicador. Cuando nalize la aplicacin o encontraremos un chero XML con el nombre escogido, que ser el que a debemos usar con el algoritmo de Viola&Jones para llevar a cabo la deteccin. o vec: Es el vector que contiene la muestra de imgenes positivas normala izadas que obtenemos como resultado de la ejecucin de createsamples. o bg: En este parmetro le pasaremos un chero de texto en el que cada a una de las l neas contendr la ruta de cada una de las imgenes nega a ativas que deseamos utilizar. En nuestro caso tendr 2889 l a neas y en cada una de las cuales tendremos la ruta a una imagen negativa. nstages: Nmero de etapas que van a ser entrenadas. Tericamente, u o a mayor nmero de etapas, ms potente ser el clasicador. La docu a a umentacin de OpenCV dice que a partir de 14 etapas se consiguen o clasicadores muy slidos, pero depende de muchas otras cosas, ya que o hemos obtenido mejores resultados con clasicadores de 10 fases que con clasicadores de 20 fases. El nmero optimo de fases se obtiene a u travs de ir probando con distintos valores. e nsplits: Indica las divisiones internas de nodos que utilizar el clasia cador. Es recomendable dejarlo en 2. minhitrate: Es el m nimo rango de acierto que se desea conseguir en cada una de las etapas de entrenamiento. Si nos pasamos ser dif de a cil conseguir y si nos quedamos cortos el clasicador ser poco robusto. a 0.999 es un valor adecuado.

A.3. CREACION DEL CLASIFICADOR DE NARICES

91

maxfalsealarm: Es el mximo rango de falsas alarmas que se permite a en cada etapa del clasicador. A mayor valor, peor ser el clasicador. a 0.5 es un valor apropiado. Si nos pasamos con cualquiera de estos valores puede que el haartraining se quede atascado o tarde demasiado tiempo en procesar, no obstante si vemos que los clasicadores no son todo lo buenos que deber an, podemos aumentarlos. npos: Es el nmero de imgenes positivas existentes en el vector que u a contiene las imgenes. Debe coincidir. a nneg: Es el nmero de imgenes negativas utilizadas. En princio, debe u a coincidir con el nmero de l u neas del chero con las rutas de las imgenes a negativas, aunque puede ser mayor. En caso de que sea mayor, la aplicacin se encarga de seleccionar o imgenes ms pequeas a partir de las imgenes negativas usadas, a a n a aunque es aconsejable usar, en caso de querer ms imgenes negatia e vas, otras imgenes antes que hacer que la aplicacin las seleccione. a o w: Es la anchura de las imgenes de entrenamiento, es muy importante a que coincida con la que usamos en la aplicacin createsamples. o h: Es la altura de las imgenes de entrenamiento, es muy importante a que coincida con la que usamos en la aplicacin createsamples. o mem: Memoria RAM en Mb que asignamos al proceso, no conviene asignar la mxima del sistema porque suele dar fallos, si tenemos 1,9GB a usaremos 1,7GB como mucho. mode: Permite escoger, para las caracter sticas Haar, si se desea el conjunto bsico (BASIC) o el conjunto extendido (ALL). La docua mentacin aconseja utilizar el mode ALL, que es el que usaremos nosotros. o El entrenamiento de OpenCV esta basado en AdaBoost que es un algoritmo de aprendizaje que se centra en 2 aspectos importantes: Seleccionar un conjunto de caracter sticas que representen la nariz. Entrenar el clasicador con una combinacin lineal de las mejores caro acter sticas. La fase de entrenamiento tiene un alto nivel computacional y necesita varias horas para nalizar el proceso. En nuestro caso ha habido pruebas que

92

APENDICE A. TUTORIAL PARA CREAR CLASIFICADORES

han llegado a tardar varios d y otras que han tardado entre 15 y 16 horas, as dependiendo del nmero de fases. u Cuando el entrenamiento ha terminado disponemos de un clasicador cascade en formato XML que podr ser usado de la misma forma que en la a deteccin de caras con el algoritmo de Viola&Jones. o Una vez ejecutemos el algoritmo de Viola&Jones con este clasicador veremos, para cada imagen si se ha encontrado una nariz y, de ser as las , coordenadas exactas donde se encuentra. En nuestro caso, recortaremos la nariz y la almacenaremos para utilizarla, posteriormente, en lo que deseemos.

Bibliograf a
[url, a] http://www.conocimientosweb.net/zip/article1187.html. Ultima visita: 16/09/2009. [url, b] http://es.wikipedia.org/wiki/Vigilancia. 16/09/2009. Ultima visita:

[url, c] http://es.wikipedia.org/wiki/Circuito_cerrado_de_ television. Ultima visita: 16/09/2009. [url, d] http://es.wikipedia.org/wiki/Sistema_de_reconocimiento_ facial. Ultima visita: 16/09/2009. [url, e] http://es.wikipedia.org/wiki/Biometria. 16/09/2009. Ultima visita:

[url, f] http://www.dominecultural.com.ar/004_biometria.htm. Ultima visita: 16/09/2009. [url, g] http://es.wikipedia.org/wiki/OpenCV. 16/09/2009. Ultima visita:

[url, h] http://www.jesusllor.es/?p=24. Ultima visita: 16/09/2009. [url, i] http://pascal.inrialpes.fr/data/human/. 16/09/2009. Ultima visita:

[url, j] http://www.itl.nist.gov/iad/humanid/feret/feret_master. html. Ultima visita: 16/09/2009. [url, k] http://www.ee.surrey.ac.uk/CVSSP/xm2vtsdb/. 16/09/2009. [url, l] http://alereimondo.no-ip.org/OpenCV/34. 16/09/2009. 93 Ultima visita: Ultima visita:

94

BIBLIOGRAF IA Ultima

[url, m] http://www.codeproject.com/KB/library/eyes.aspx. visita: 16/09/2009.

[url, n] http://note.sonots.com/SciSoftware/haartraining.html. Ultima visita: 16/09/2009. [url, o] http://www.scribd.com/doc/3948415/ Counting-Cars-in-Traffic. Ultima visita: 16/09/2009. [ope, 2003] (2003). Opencv reference manual. [L. Chang and del Toro, 2008] L. Chang, I. Rods, H. M. and del Toro, E. e (2008). Best-shot selection for video face recognition using fpga. [Sorribes, 2008] Sorribes, J. (2008). Sistema semi-automtico de control de a acceso basado en caracter sticas biomtricas. e [Viola and Jones, 2003] Viola, P. and Jones, M. (2003). Robust real-time face detection.

También podría gustarte