diseo e implementacin de un herramienta de deteccin facial

98
Instituto Politécnico Nacional Centro de Innovación y Desarrollo Tecnológico en Cómputo Diseño e implementación de una herramienta de detección facial TESIS QUE PARA OBTENER EL GRADO DE MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO PRESENTA: MARÍA ESTHER GARCÍA CHANG DIRECTORES DE TESIS: M. en C. Jesús Antonio Álvarez Cedillo Dra. Hind Taud México D.F., Junio 2009.

Upload: others

Post on 27-Oct-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Diseo e implementacin de un herramienta de deteccin facial

 

  Instituto Politécnico Nacional  Centro de Innovación y Desarrollo  

Tecnológico en Cómputo 

 

Diseño e implementación de una herramienta de detección facial  

 

TESIS  

QUE PARA OBTENER EL GRADO DE MAESTRÍA EN  TECNOLOGÍA DE CÓMPUTO   

 

PRESENTA: 

MARÍA ESTHER GARCÍA CHANG 

 

DIRECTORES DE TESIS: 

M. en C. Jesús Antonio Álvarez Cedillo 

Dra. Hind Taud 

México D.F., Junio 2009. 

Page 2: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

Page 3: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

 

Page 4: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

Resumen  

Aunque  el  reconocimiento  de  rostro  humano  sea  un  tema  difícil  debido  a  varios 

parámetros  implicados,  llega  a  ser  de  interés  cada  vez mayor  en  diversos  campos  de 

aplicaciones  como  en  la  identificación  personal,  la  interface  hombre‐máquina,  etc.  La 

mayoría de  las  imágenes del  rostro  contienen un  fondo que  se debe eliminar antes del 

siguiente  proceso  del  reconocimiento  de  lo mismo.  Así  esta  tesis  trata  del  diseño  y  la 

implementación de un sistema de detección facial como el primer paso en el proceso de 

reconocimiento de  rostro. En  la  literatura  científica, uno de  los  trabajos  importantes de 

detección de rostros en tiempo real es un método basado en el aprendizaje de Adaboost. 

Por su eficiencia, este método ha sido elegido.  

La principal aportación en este trabajo, es identificar un método de detección de rostro en 

tiempo real, realizar una descripción detallada de sus etapas y su implementación basada 

en la biblioteca OpenCV, en conjunto, permiten diseñar aplicaciones para imágenes fijas o 

de video para cualquier tipo de cámara web.  

 

   

Page 5: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

Abstract  Although  human  face  recognition  is  a  hard  topic  due  to many  parameters  involved,  it 

becomes  of  increasing  interest  in  numerous  application  fields  as  the  personal 

identification,  the man‐machine  interfaces, etc. Most  face  images  contain a background 

that must be discarded before subsequent face recognition process. Thus this thesis deals 

with the design and the implementation of a system of facial detection as a first step in the 

face  recognition  process.  In  scientific  literature,  one  of  the  outstanding  works  in  face 

detection  in  real  time  is a method based  in Adaboost  learning. Because of  its efficiency, 

the implementation of this method has been chosen. 

The main contribution in this work is to identify a method of face detection in real time, to 

realize a detailed description of its stages and their implementation based on the OpenCV 

library,  altogether,  allow designing  applications  in  fixed  images or  video  for  any  type of 

camera Web.  

 

 

   

Page 6: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

 

  

 

 

 "De nuestros miedos 

nacen nuestros corajes, y en nuestras dudas 

viven nuestras certezas. Los sueños anuncian otra realidad posible, 

y los delirios otra razón. En los extravíos 

nos esperan los hallazgos porque es preciso perderse para volver a encontrarse." 

 Eduardo Galeano 

   

Page 7: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

 

Agradecimientos 

 

Gracias a mis hijos Jeniffer y Diego 

Esta tesis es por ellos que los amo y son mi vida. 

Gracias a mis padres Esther y Rodolfo 

Por su cariño, apoyo, comprensión y brindarme todo su amor, apoyo incondicional y por 

haber creído en mí siempre. 

A mis hermanos Manuel y Rodolfo 

Por compartir conmigo tantas cosas, estar a mi lado cuando más los necesito. 

A mi director de tesis Hind Taud 

Por su infinita paciencia y ayuda en este trabajo, por sus consejos, por confiar en mí pero 

sobre todo por su amistad. 

A mi director de tesis Jesús Antonio Álvarez Cedillo 

Por haberme dado su confianza y amistad. 

A mis amigos y compañeros 

Por su apoyo y ayuda. 

Gracias a cada uno de mis maestros 

Que participaron en mi desarrollo profesional sin su ayuda y conocimientos no estaría en 

donde me encuentro ahora, especialmente al Dr. Lindig Bos que me motivó a estudiar una 

Maestría. 

Gracias a mi Comité revisor 

Dr. Víctor Manuel Silva García, M. en C. Eduardo Rodríguez Escobar, M. en C. Rolando 

Flores Carapia, M. en C. Juan Carlos Herrera Lozada por proporcionarme toda su ayuda así 

como sus conocimientos. 

Gracias al Instituto Politécnico Nacional y al Centro de Innovación y Desarrollo 

Tecnológico en Cómputo 

Por todo el conocimiento adquirido durante los años de estudio. 

Page 8: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

En general quisiera agradecer a todas y cada una de las personas que han vivido conmigo 

la realización de esta tesis de maestría, con sus altos y bajos y que no necesito nombrar 

porque tanto ellos como yo sabemos que desde los más profundo de mi corazón les 

agradezco el haberme brindado todo el apoyo, colaboración, ánimo y sobre todo cariño y 

amistad. 

   

Page 9: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

Índice General 

Resumen ...................................................................................... 4 

Abstract ....................................................................................... 5 

Índice de Figuras ........................................................................ 12 

Índice de Tablas.......................................................................... 14 

Glosario de Términos ................................................................. 15 

Capítulo 1 ................................................................................... 16 

Introducción ............................................................................... 16 

1.1 Antecedentes .......................................................................................................................... 16 

1.2 Objetivo del trabajo ................................................................................................................ 19 

1.2.1 Objetivo general ............................................................................................................... 19 

1.2.2 Objetivos particulares ...................................................................................................... 19 

1.3 Justificación. ............................................................................................................................ 19 

1.4 Planteamiento del Problema................................................................................................... 20 

1.5 Organización de la tesis ........................................................................................................... 20 

Capítulo 2 ................................................................................... 22 

Estado del arte ........................................................................... 22 

2.1 Detección y reconocimiento de rostro .................................................................................... 22 

2.2 Retos de la detección facial ..................................................................................................... 22 

2.2.1 Escala ................................................................................................................................ 23 

2.2.2 Pose .................................................................................................................................. 23 

2.2.3 Iluminación ....................................................................................................................... 24 

2.2.4 Expresión Facial ................................................................................................................ 24 

2.2.5 Oclusión ............................................................................................................................ 25 

2.2.6 Edad .................................................................................................................................. 25 

2.3 Reconocimiento de Patrones .................................................................................................. 25 

2.3.1 Introducción ..................................................................................................................... 25 

Page 10: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

10 

2.3.2 Aprendizaje ...................................................................................................................... 27 

2.3.3 Enfoques de reconocimiento de patrones ....................................................................... 27 

2.3.4 Selección de variables ...................................................................................................... 28 

2.4 Algoritmos del reconocimiento facial ..................................................................................... 29 

2.4.1 Reducción de dimensionalidad ........................................................................................ 29 

2.4.2 Técnicas de grafos: “Elastic Bunch Graph Matching” EBGM ........................................... 31 

2.4.3 Transformación de huella ................................................................................................ 31 

2.4.4  Modelo activo de apariencia ........................................................................................... 32 

2.4.5 Reconocimiento Facial 3‐D ............................................................................................... 32 

2.4.6 Enfoque Bayesiano ........................................................................................................... 33 

2.4.7 Máquinas de soporte vectorial ........................................................................................ 33 

2.4.8 Redes neuronales ............................................................................................................. 34 

2.4.9 Boosting y adaboost ......................................................................................................... 35 

Capítulo 3 ................................................................................... 37 

Marco Teórico ............................................................................ 37 

3.1 Descripción general ................................................................................................................. 38 

3.1.1 Preprocesamiento ............................................................................................................ 39 

3.1.2 Extracción de descriptores ............................................................................................... 43 

3.1.3 Block de decisión .............................................................................................................. 44 

3.2  Descriptores de Harr .............................................................................................................. 45 

3.3 Imagen Integral ....................................................................................................................... 47 

3.3.1 Importancia de los descriptores de Harr‐Like .................................................................. 49 

3.4 Algoritmos de Aprendizaje ...................................................................................................... 50 

3.5 Las Funciones de clasificación en cascada .............................................................................. 53 

3.5.1 Disposición de las funciones de clasificación ................................................................... 54 

3.5.2 Árbol de funciones del clasificador .................................................................................. 56 

3.5.3 Importancia  de la estructura en cascada. ....................................................................... 57 

Capítulo 4 ................................................................................... 60 

Implementación del algoritmo ................................................... 60 

4.1. Elementos computacionales. ................................................................................................. 60 

Page 11: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

11 

4.1.1 Microsoft Visual Studio. ................................................................................................... 60 

4.1.2 Open CV ............................................................................................................................ 61 

4.1.3 Emgu. ................................................................................................................................ 62 

4.2 Entrenamiento usando Haartraining....................................................................................... 62 

4.2.1 Imágenes de muestra ....................................................................................................... 63 

4.2.2 Preparación de muestra ................................................................................................... 63 

4.2.3 Obtención del clasificador ................................................................................................ 65 

4.2.4 Rendimiento del clasificador ............................................................................................ 66 

4.3 Implementación ...................................................................................................................... 67 

4.3.1 Requerimientos mínimos del sistema .............................................................................. 67 

4.3.2 Software desarrollado ...................................................................................................... 67 

4.3.3 Función de detección de objetos de OpenCV. ................................................................. 71 

4‐3.4 Funciones de clasificación en cascada ............................................................................. 73 

4.3.5 Detección combinada: rostro‐ojo .................................................................................... 76 

Capítulo 5 ................................................................................... 77 

Experimentación y resultados .................................................... 77 

5.1 Experimentación ..................................................................................................................... 77 

5.2 Resultados ............................................................................................................................... 78 

5.3 Conclusión ............................................................................................................................... 79 

Capítulo 6 ................................................................................... 92 

Conclusiones y trabajo a futuro .................................................. 92 

6.1 Conclusiones ............................................................................................................................ 92 

6.2 Trabajo a futuro....................................................................................................................... 94 

Referencias .................................................................................................................................... 95 

   

Page 12: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

12 

Índice de Figuras  

 

Figura 1.1 Estructura de un sistema de verificación, el cual está compuesto de dos módulos, detección de 

rostros y verificación ................................................................................................................................ 17 

Figura 1.2 Etapas de un sistema de reconocimiento facial ............................................................................... 18 

Figura 2.1 Rostros en diferentes escalas ........................................................................................................... 23 

Figura 2.2 Rostros con diferentes  poses .......................................................................................................... 23 

Figura 2.3 Rostros con diferente  iluminación .................................................................................................. 24 

Figura 2.4 Rostros con diferente expresión ...................................................................................................... 24 

Figura 2.5 Rostros en oclusión .......................................................................................................................... 25 

Figura 2.6 Rostros de la misma persona con edad diferente ............................................................................ 25 

Figura 2.7 Ejemplo simple de reconocimiento de patrones; en la izquierda conjunto de patrones, en la 

derecha patrones clasificados en dos clases. .......................................................................................... 26 

Figura 3.1 Detección Facial ............................................................................................................................... 39 

Figura 3.2 Conversión YUV a partir RGB ........................................................................................................... 40 

Figura 3.3 Interpolación bicúbica con el valor de los 16 puntos vecinos .......................................................... 41 

Figura 3.4 Ecualización del histograma H; ........................................................................................................ 41 

Figura 3.5 Mejoramiento del contraste por ecualización del histograma; la izquierda: imagen original; la 

derecha: imagen con ecualización del histograma. ................................................................................. 42 

Figura 3.6 Ejemplo de detección del borde de Canny: ..................................................................................... 43 

Figura 3.7 Sistema de detección de Viola y Jones [36] ..................................................................................... 45 

Figura 3.8 Representación de un descriptor ..................................................................................................... 46 

Figura 3.9 Los tres tipos de descriptores de Haar............................................................................................. 46 

Figura 3.10 Extensión de los descriptores de Haar. .......................................................................................... 47 

Figura 3.11 El valor de la imagen integral al punto (x, y) es igual a la suma de todos los píxeles situados 

encima y a la izquierda. ........................................................................................................................... 48 

Figura 3.12 La suma del Píxel en el rectángulo D puede ser calculada con solamente cuatro referencias. El 

valor de la imagen integral en el lugar 1 es la suma del Píxel en el rectángulo A. El valor en el lugar 2 es 

A + B, en el lugar 3 es A + C, y en el lugar 4 es ......................................................................................... 48 

Figura 3.13 Los dos descriptores de Haar más discriminantes seleccionados por Adaboost ........................... 53 

Figura 3.14 Esquema del árbol de las funciones de clasificación en cascada, n: clasificador, V: verdad, F: Falso.

 ................................................................................................................................................................. 55 

Figura 3.15 Comparación entre un detector de rostro simple compuesto de 200 funciones de clasificación y 

un detector compuesto de 20 períodos de prácticas de 10 funciones de clasificación [38]. .................. 58 

Page 13: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

13 

Figura 4.1 Pasos para creación del clasificador ................................................................................................ 63 

Figura 4.2 Pantalla principal del software ........................................................................................................ 68 

Figura 4.3 Primera elección del software ......................................................................................................... 68 

Figura 4.4 Selección de tipo de imágenes ........................................................................................................ 69 

Figura 4.5 Elección de la ruta de la imagen a tratar ......................................................................................... 69 

Figura 4.6 Resultado del algoritmo de detección de rostro .............................................................................. 70 

Figura 4.7 Opción de video: iniciar, detener y cerrar ........................................................................................ 71 

Figura 5.1 Diferentes pruebas con 3 clasificadores .......................................................................................... 85 

Figura 5.2 Diferentes pruebas con 3 clasificadores: (a) Clasificación rostro con ojo frontalface_alt.xml, (b) 

Clasificación carafrontal_alt.xml,(c) Clasificación cara frontalface_alt‐tree.xml ..................................... 91 

 

   

Page 14: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

14 

Índice de Tablas 

Tabla 3.1 El algoritmo de Adaboost ...................................................................................... 52 

Tabla 4.1 Función de detección de objetos de OpenCV ....................................................... 72 

Tabla 4.2 Estructura del árbol ............................................................................................... 74 

Tabla 4.3 Estructura de una fase ........................................................................................... 75 

Tabla 4.4 La estructura de la función de clasificación .......................................................... 75 

Tabla 4.5 Las fases y sus funciones del archivo haarcascade_frontalface_alt.xml ............... 76 

 

   

Page 15: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

15 

Glosario de Términos  

AdaBoost: es una variante de boosting (adaptative boosting). 

Boosting: un método de aprendizaje que se caracteriza por mejorar el resultado de otro 

método de aprendizaje llamado base, mediante la aplicación repetida del mismo.  

Falsas alarmas: falsos positivos. 

Falsos  positivos:  Son  aquellos  objetos  que  son  detectados  pero  que  no  deberían  ser 

detectados.  

Falsos negativos: Son aquellos objetos que deberían ser detectados pero no se detectan.  

Formato: una organización para almacenar datos digitales. 

Histograma: la representación de la frecuencia de píxeles de cierto nivel de gris en función 

de los niveles de gris. 

Imagen: es una  función que a cada par de coordenadas  (x, y)  (en el caso bidimensional) 

asocia  un  valor  relativo  a  alguna  propiedad  del  punto  que  representa  (por  ejemplo  su 

brillo o su matiz). 

Interpolación: construcción de nuevos puntos partiendo del conocimiento de un conjunto 

discreto de puntos. 

JPG: son  las siglas de Joint Photographic Experts Group, es un formato de compresión de 

imágenes. 

Pixel: del inglés “picture element” es el elemento básico o más pequeño de una imagen. 

Resolución espacial: El número de muestras por unidad de espacio sobre el objeto original 

o el tamaño de un pixel por (ejemplo 2×2 cm).  

Resolución radiométrica o espectral: el número de niveles posibles que puede tener como 

valor un pixel. 

Transformada  de  Haar:  de  los  primeros  ejemplos  de  transformadas  ortonormales  de 

ondeletas. 

XML:  siglas  de  Extensible  Markup  Language,  es  un  estándar  para  el  intercambio  de 

formación estructurada entre diferentes plataformas. in

   

Page 16: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

16 

Capítulo 1  

Introducción  

Este capítulo presenta los antecedentes de la tesis, así como los objetivos de la misma, la 

justificación del trabajo, el planteamiento del problema y la organización del documento.  

 

1.1 Antecedentes  

Las  imágenes  son ampliamente utilizadas  como una de  las  fuentes más  importantes de 

información, sobre todo en el contexto de las aplicaciones centradas en el ser humano, tal 

como: vigilancia de seguridad, desarrollo de sistemas biométricos,  juegos multimedia de 

interacción hombre‐máquina,  rebotica,  realidad  virtual,  videoconferencias,  Indexación  y 

codificación [1]. 

Gracias  al  progreso  tecnológico  en  la  fabricación  de  sensores  que  captan  las  imágenes 

digitales a un bajo coste y mejorando cada vez sus características, se puede constatar el 

crecimiento de su utilización en diversos campos y aplicaciones.   

Unos de estos campos es el desarrollo de sistemas biométricos, el cual notoriamente ha 

crecido en estos últimos años. La biometría es una tecnología de seguridad basada en el 

reconocimiento de una característica física e  intransferible de  las personas, tal como  iris, 

retina, rostro, sistema vascular, palma de la mano, huella dactilar, y voz. 

El  reconocimiento  facial  involucra  el  reconociendo  de  personas  mediante  sus 

características  faciales.  Comparando  a  otros  sistemas  biométricos  como  ADN,  la  huella 

dactilar  o  la  voz,  el  reconocimiento  facial  es  una  técnica  no  intrusiva. Desde  el  primer 

sistema  automático  desarrollado  por  Kanade  [2]  un  creciente  interés  ha  sido  dado  al 

reconocimiento  facial.  La  evolución  de  los  sistemas  de  cómputo,  así  como  los  últimos 

progresos  en  reconocimientos  de  patrones  hacen  que  los  sistemas  de  reconocimiento 

Page 17: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

17 

facial  se  puedan  realizar  en  tiempo  real  y  obtener  resultados  satisfactorios  bajo 

condiciones controladas llevados a diferentes aplicaciones.  

Un  sistema  de  reconocimiento  facial  se  puede  realizar  de  dos  modos  diferentes: 

verificación o autentificación e identificación. La verificación involucra la confirmación o la 

negación  de  la  identidad  reclamada  por  una  persona  (uno‐a‐uno).  Por  otro  lado,  la 

identificación procura establecer  la  identidad de una persona dada que se encuentra en 

un grupo de N personas  (uno a N). Mientras que verificación e  identificación a menudo 

comparten  los mismos algoritmos de clasificación, ambos modos apuntan a aplicaciones 

distintas. 

En el modo de verificación,  las principales aplicaciones conciernen al control de acceso, 

por  ejemplo:  acceso  a  una  computadora,  entrada  a  un  dispositivo  móvil,  control  de 

puertas, acceso a bancos de datos, etc. Un sistema biométrico presenta múltiples ventajas 

sobre  sistemas  tradicionales  de  acceso  de  seguridad:  la  firma  biométrica  no  puede  ser 

robada,  olvidada  ,  perdida  ,  ni  transmitida,  como  en  el  caso  de  un  documento  de 

identificación.  En  el  modo  de  identificación,  las  aplicaciones  potenciales  implican 

principalmente video vigilancia (lugares públicos, zonas prohibidas, etc.),  la recuperación 

de  la  información  (bases  de  datos,  la  gestión  de  datos multimedia,  etc.)  o  interacción 

hombre‐máquina (videojuegos, etc.). 

 Figura 1.1 Estructura de un sistema de verificación, el cual está compuesto de dos módulos, detección de  rostros y verificación 

 

Un  sistema  automático  de  verificación  del  rostro  está  compuesto  de  dos  etapas 

principales (Fig. 1.1): detección de rostro (primera etapa) y verificación de rostro (segunda 

Page 18: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

18 

etapa). En detección de rostro, el propósito es determinar si hay uno o más rostros en una 

imagen (o video), y si es el caso, devolver su posición y escala. El termino  localización es 

empleada cuando hay únicamente un rostro en  la  imagen. La detección del rostro es un 

ámbito de la investigación importante en la visión de computadora, porque sirve como un 

primer  paso  necesario  a  cualquier  sistema  de  procesamiento  de  rostro,  como 

reconocimiento de rostro, seguimiento de rostro, análisis de expresión. La mayor parte de 

estas  técnicas  asumen,  en  general,  que  la  región  de  rostro  ha  sido  localizada 

perfectamente. Por lo tanto, sus rendimientos dependen de una manera muy significativa 

en la precisión del paso de detección de rostro. En la Figura 1.2 se puede apreciar las dos 

etapas que constituyen un sistema de reconocimiento de rostro donde la detección es la 

primera etapa y la verificación es la segunda etapa.  

 

 

 

 

 

Detección 

 

 

 

 

Verificación  

 

 

Esther 

Figura 1.2 Etapas de un sistema de reconocimiento facial 

 

   

Page 19: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

19 

1.2 Objetivo del trabajo 

1.2.1 Objetivo general 

 Desarrollar un sistema de detección facial como primera etapa en un sistema de 

reconocimiento facial.  

 

1.2.2 Objetivos particulares  

• Estudio bibliográfico de los avances en el tema de detección facial. 

• Identificar el algoritmo eficaz para el reconocimiento facial. 

• Implementar este algoritmo. 

• Crear  un  sistema  que  pueda  ser  reutilizado  para  otros  proyectos  y  en  otras 

aplicaciones.  

1.3 Justificación.  

Se justifica el desarrollo de un sistema de detección de rostro por los siguientes puntos: 

 

1.  Es  un  área  de  investigación muy  creciente  en  visión  por  computadora  por  la 

amplia  gama  de  aplicación  centrada  en  el  ser  humano,  la  cual  fue    citada 

anteriormente. 

2. Sirve como un primer paso necesario a cualquier sistema de procesamiento de 

rostro,  como  reconocimiento  de  rostro,  seguimiento  de  rostro,  análisis  de 

expresión. 

3. Permitirá su uso en otros proyectos que se requieren desarrollar en este centro. 

 

 

 

 

Page 20: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

20 

1.4 Planteamiento del Problema.  

Aunque  la  detección  de  rostro  es  un  campo  de  investigación muy  activo,  todavía  se 

considera una tarea difícil el reconocimiento de patrones, a causa de la alta variabilidad de 

la apariencia del rostro. Los rostros son objetos no rígidos y dinámicos con una diversidad 

grande en  la forma, el color y  la textura, debido a múltiples factores como  la pose de  la 

cabeza, iluminación (contraste, las sombras), expresiones faciales, las oclusiones (lentes) y 

otras características faciales (el maquillaje,  la barba). La alta variabilidad en  la apariencia 

de rostro afecta más la detección de rostro que la variabilidad de la identidad del rostro.  

Otra  dificultad  viene  de  la  carencia  de  imágenes,  debido  a  que  éstas  son  tomadas  de 

referencia para  la  fase de entrenamiento. Los pocos datos disponibles generalmente no 

son  suficientes  para  cubrir  la  variabilidad  en  apariencia.  Además,  una  diferencia 

significativa entre las condiciones en la fase de entrenamiento y la fase de prueba puede 

suceder. Por último, el rendimiento de un sistema de reconocimiento facial es relacionado 

sumamente al resultado del paso de detección de rostro. 

Buscar  solucionar estos problemas será casi imposible, lo que se pretende en este trabajo 

es tratar de encontrar una metodología eficaz entre las que existen para implementarla y 

así  desarrollar  un  sistema  de  detección  de  rostros  con  resultados  satisfactorios  bajo 

condiciones bien definidas. 

1.5 Organización de la tesis  

Esta tesis se encuentra compuesta por 5 capítulos organizados de la siguiente manera: 

1. El  primer  capítulo  proporciona  una  introducción  a  la  detección  de  rostro  para 

situarla en un sistema de reconocimiento de rostro. Se presentan los objetivos del 

trabajo,  la  justificación  del  porque  es  importante  contar  con  una  sistema  de 

detección de rostro. Se describe el planteamiento del problema y  la organización 

de la tesis. 

Page 21: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

21 

2. El segundo capítulo describe el estado del arte, en el cual se hace una investigación 

sobre los trabajos relacionado con el tema de esta tesis. 

3. El tercer capítulo presenta el marco teórico de  la tesis, el cual contiene todos  los 

elementos o herramientas esenciales que componen el desarrollo de la misma. 

4. El  cuarto  capítulo  detalla  la  implementación  de  la metodología  propuesta  para 

designar un sistema de detección de rostro así como  los resultados obtenidos en 

diferentes casos.  

5. El quinto capítulo se presenta las experiencias hechas con diferentes imágenes así 

como los resultados obtenidos en diferentes casos.  

6. El  sexto  capítulo  describe  las  conclusiones  del  trabajo  haciendo  énfasis  en  las 

aportaciones de esta  tesis,  las ventajas y  limitaciones de  la  técnica propuesta así 

como los trabajos futuros que pueden desarrollarse tomando como base esta tesis.   

 

   

Page 22: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

22 

Capítulo 2  

Estado del arte  

2.1 Detección y reconocimiento de rostro  

La detección del rostro es el primer paso en un sistema de reconocimiento facial. Dada una 

imagen o un video, un identificador de rostros debe de ser capaz de identificar y localizar 

todos  los  rostros  independientemente  de  su  posición,  escala,  edad  y  orientación,  la 

detección debe ser ajena, independientemente de las condiciones de iluminación así como 

el contenido de la imagen o video.  

El  reconocimiento  del  rostro  es  una  tarea  que  los  humanos  realizan  rutinariamente  y 

fácilmente en sus vidas diarias. Desarrollar algoritmos capaces de hacer esta tarea es uno 

de  los desafíos fundamentales donde  la  investigación quiere  llegar. Diferentes subareas y 

componentes  abarcan  el  reconocimiento  facial,  detección,  seguimiento,  alineamiento, 

extracción  de  rasgos,  entrenamiento,  identificación,  clasificación,  análisis  de  expresión 

facial,  análisis  en  2  y  3  dimensiones  entre  otros  [3].  Muchos  de  estos  componentes 

comparten  las mismas técnicas y algoritmos de reconocimiento de patrones y análisis de 

imágenes  a  pesar  que  apuntan  aplicaciones  distintas. Una  clasificación  y  evaluación  de 

estas técnicas de detección facial se encuentra en el trabajo de revisión de Yang et al. [4] y 

Li y Jain [5]. 

2.2 Retos de la detección facial  

Algunos de los factores que afecta la detección facial, son la escala, la pose, iluminación, la 

expresión facial, la oclusión y la edad. 

 

 

 

Page 23: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

23 

2.2.1 Escala  

En una imagen puede aparecer un grupo de diferentes escalas de rostros como se puede 

apreciar en la Figura 2.1, el tamaño o escala de un rostro puede ser tratado por un simple 

proceso de cambio de tamaño por deformación. Este proceso de transformación requiere 

la localización de algunos puntos como los ojos, la nariz, y boca [6]. 

 

Figura 2.1 Rostros en diferentes escalas 

 

2.2.2 Pose  

El  rendimiento  de  los  sistemas  de  detección  de  rostro  se  ven  afectados  cuando  hay 

variaciones en la pose (Figura 2.2) ya que la mayoría de los trabajos están hechos para la 

detección del rostro frontal [7]. 

 

 

Figura 2.2 Rostros con diferentes poses 

 

 

 

 

Page 24: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

24 

2.2.3 Iluminación  

Los problemas creados por la iluminación se pueden apreciar en la Figura 2.3, en la cual el 

mismo rostro con  la misma expresión facial, y vista desde el mismo punto de vista, se ve 

diferente debido a los cambios de iluminación, estos suelen ser muy drásticos. [8]. 

 

 

 

Figura 2.3 Rostros con diferente iluminación 

 

 

2.2.4 Expresión Facial  

A diferencia de  los efectos de escala,  la pose y  la  iluminación,  la expresión  facial puede 

modificar en forma significativa la geometría del rostro, como se muestra en la Figura 2.4, 

las expresiones son significativas para la detección del rostro [9]. 

 

Figura 2.4 Rostros con diferente expresión 

 

 

   

Page 25: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

25 

2.2.5 Oclusión  

Es  otro  tema  a  confrontar  para  la  detección  facial,  como  lentes,  bufandas  todo  lo  que 

pueda cambiar la apariencia del rostro como se muestra en la Figura 2.5. Existen diferentes 

algoritmos para poder resolver este problema. 

 

 

Figura 2.5 Rostros en oclusión 

 

2.2.6 Edad  

La edad es otro problema a confrontar para la detección facial, ya que una persona puede 

tener  cambios  significativos  a  través  de  su  vida,  y  las  bases  de  datos  algunas  veces  no 

están actualizadas, todavía no existen técnicas para este problema (Figura 2.6).  

 

Figura 2.6 Rostros de la misma persona con edad diferente 

 

2.3 Reconocimiento de Patrones 

2.3.1 Introducción   

El  reconocimiento  es  un  atributo  básico  de  los  humanos.  Se  realizan  actos  de 

reconocimiento  en  cualquier  instante  de  la  vida,  se  reconocen  los  objetos  del  entorno 

donde  se  encuentran.  El  ser  humano  se mueve  y    actúa  en  relación  a  ellos,  se  puede 

distinguir a una persona conocida ante una multitud, la voz de un amigo, los gestos de un 

rostro, un texto escrito, el olor de un perfume particular, el sabor de una naranja o el tacto 

Page 26: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

26 

de un  trozo de hielo. En este  sentido,  los humanos  son un  sistema de  información muy 

sofisticado, con cualidades de reconocimiento muy elevadas.  

El estudio de los problemas de reconocimiento puede dividirse en dos grandes áreas:  

1‐El  estudio  de  las  habilidades  o  capacidades  de  reconocimiento  de  los  seres 

humanos son temas incluidos en disciplinas como la psicología, la fisiología.  

2‐El desarrollo de teorías, métodos y técnicas para el diseño de sistemas capaces 

de  realizar  ciertas  tareas de  reconocimiento en  aplicaciones específicas,  son  temas que 

caen dentro de  las áreas de  interés de  la  informática o computación en general y de  la 

inteligencia  artificial  y  reconocimiento  de  formas  en  particular  [10].  En  este  sentido  El 

reconocimiento de patrones es  la disciplina científica cuyo objetivo es  la clasificación de 

objetos en unos ciertos números de categorías o clases (Figura 2.7).  

 

 

Figura 2.7 Ejemplo simple de reconocimiento de patrones; en la izquierda conjunto de patrones, en la derecha patrones clasificados en dos clases. 

 

 

 

   

Page 27: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

27 

2.3.2 Aprendizaje  

Todo  sistema  de  reconocimiento  de  patrones  puede  ser  dotado  de  dos  modos  de 

funcionamiento: el denominado de reconocimiento propiamente dicho y el de análisis o 

aprendizaje.  Las  aproximaciones metodológicas  al  diseño  de  las  etapas  de  aprendizaje 

pueden ser: 

Aprendizaje Supervisado: en este caso se dispone de una muestra controlada de cada una 

de  las  clases  de  formas  en  el  diseño  del  clasificador  de  la  cual  se  conocen  a  priori  las 

etiquetas de pertenencia a clase de todos y cada uno de los elementos de dicha muestra. 

El proceso de aprendizaje consiste en la determinación, en base a la muestra, de las reglas 

de clasificación a partir de las regularidades de la misma. 

Aprendizaje no Supervisado: en este caso no se dispone de las etiquetas de pertenencia a 

clase de los elementos de la muestra controlada, por lo que antes de obtener las reglas de 

clasificación es preciso analizar el conjunto de datos para determinar el número de clases 

de formas que la constituyen así como sus regularidades. 

Aprendizaje mediante Refuerzo: es un concepto extraído de  la  literatura de aprendizaje 

animal, y se refiere a una clase de tareas y algoritmos de aprendizaje, para los cuales este 

último  se  efectúa maximizando  una  evaluación  escalar  o  refuerzo  de  la  calidad  de  lo 

aprendido acerca del problema en cuestión. Si  la medida de calidad se obtiene tras cada 

paso  del  proceso  de  aprendizaje  por  una muestra,  el  procedimiento  se  denomina  de 

refuerzo  inmediato, mientras que  si  se obtiene  el  refuerzo, no para  cada muestra  sino 

para un colectivo de ellas, el procedimiento se denomina de refuerzo retardado. 

2.3.3 Enfoques de reconocimiento de patrones  

En  la  literatura  especializada  en  reconocimiento  de  patrones  hay  varias  técnicas  que 

pueden ser clasificadas según el enfoque: 

Geométrico:  en  éste  enfoque  se  emplea  el  cálculo  de  distancias,  geometría  de 

formas, vectores numéricos, puntos de atracción, etc.  

Page 28: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

28 

Estadístico:  Este  enfoque  se  basa  en  la  teoría  de  probabilidad  y  estadística  y 

supone  que  se  tiene  un  conjunto  de medidas  numéricas  con  distribuciones  de 

probabilidad conocidas y a partir de ellas se hace el reconocimiento. 

Sintáctico  –Estructural:  Este  enfoque  se  basa  en  encontrar  las  relaciones 

estructurales que guardan los objetos de estudio, utilizando la teoría de lenguajes 

formales.  El  objetivo  es  construir  una  gramática  que  describa  la  estructura  del 

universo de objetos. 

Redes Neuronales: Este enfoque supone que se tiene una estructura de neuronas 

interconectadas que se estimulan unas a otras, las cuales pueden ser “entrenadas” 

para dar una cierta respuesta cuando se le presentan determinados valores. 

Lógica Combinatoria: Este enfoque  se basa en  la  idea de que  la modelación del 

problema  debe  ser  lo más  cercana  posible  a  la  realidad  del mismo,  sin  hacer 

suposiciones  que  no  estén  fundamentadas.  Uno  de  los  aspectos  esenciales  del 

enfoque es que las características utilizadas para describir a los objetos de estudio 

deben ser tratadas cuidadosamente. 

 

2.3.4 Selección de variables  

Uno de  las etapas cruciales en  reconocimiento de patrones es  la selección de variables, 

que pueden ser usadas para dos tareas:  

Para  la Clasificación: La selección de características relevantes, a partir del conjunto total 

de características que describen a  los objetos,  se hace con dos motivos  fundamentales: 

mejorar la clasificación y/o aumentar la velocidad de procesamiento. 

Para  la Representación: Decidir cuáles características representan mejor a cierto tipo de 

objetos. 

 

 

 

Page 29: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

29 

2.4 Algoritmos del reconocimiento facial  

Las técnicas desarrolladas para el reconocimiento facial están inspiradas totalmente en los 

métodos y teorías matemáticas del reconocimiento de patrones. Algunas de estas técnicas 

se describen a continuación. 

 

2.4.1 Reducción de dimensionalidad  

Tres algoritmos  son bien conocidos en el mundo del  reconocimiento e  identificación de 

rostros:  Análisis  de  componentes  principales  (ACP),  Análisis  de  componentes 

independientes  (ACI), Análisis Discriminatorio  Lineal  (ADL). Todos ellos pertenecen a un 

grupo  de  técnicas  estadísticas multivariantes  descriptivas.  Se  obtienen  la  reducción  de 

dimensionalidad mediante la proyección en subespacios de menor dimensión. 

 

2.4.1.1 Análisis de componentes principales (ACP)  

El Análisis de Componentes Principales  (ACP) es un enfoque que ha sido muy difundido, 

especialmente  en  el  tratamiento  de  grandes  masas  de  datos.  Según  los  campos  de 

aplicaciones el ACP es reconocido bajo el nombre de la transformación de karhunen‐Loeve 

o transformación de Hotelling, o de descomposición ortogonal. 

El ACP permite  reducir  la dimensionalidad de  los datos,  transformando el conjunto de p 

variables  originales  en  otro  conjunto  de  q  variables  incorrelacionadas  (q  ≤  p)  llamadas 

componentes principales. Las p variables son medidas sobre cada uno de los n individuos, 

obteniéndose una matriz de datos de orden np (p < n). 

En  el  ACP  existe  la  opción  de  usar  la  matriz  de  correlaciones  o  bien,  la  matriz  de 

covarianzas. En la primera opción se le está dando la misma importancia a todas y a cada 

una  de  las  variables;  esto  puede  ser  conveniente  cuando  se  considera  que  todas  las 

variables son igualmente relevantes. La segunda opción se puede utilizar cuando todas las 

Page 30: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

30 

variables tengan  las mismas unidades de medida y además, cuando se  juzga conveniente 

destacar cada una de las variables en función de su grado de variabilidad. 

Las  nuevas  variables  (componentes  principales)  son  obtenidas  como  combinaciones 

lineales de las variables originales. Los componentes se ordenan en función del porcentaje 

de varianza explicada. En este sentido, el primer componente será el más importante por 

ser  el  que  explica mayor  porcentaje  de  la  varianza  de  los  datos.  Por  el  interés  de  la 

investigación se decide cuántos componentes se elegirán en el estudio. 

El análisis se realiza en el espacio de  las variables y, en  forma dual, en el espacio de  los 

individuos.  

La ACP es una forma de identificar patrones en datos y representar los datos en una forma 

tal que sus semejanzas y diferencias sean resaltadas. Este método resulta de gran utilidad 

cuando es necesario buscar  cierto  tipo de  información. Esta  técnica  se  considera de  las 

más usadas en los procesos de reconocimiento facial [11, 12, 13]. 

2.4.1.2 Análisis de componentes independientes (ACI)  

Consiste de  transformar un  conjunto de  señales observadas  en un  conjunto de  señales 

estadísticamente  independientes  llamadas  fuentes  o  componentes  independientes  del 

primer  conjunto.  El  principal  objetivo  de  ACI  es  identificar  a  partir  de  las  señales 

observadas, un nuevo grupo de señales subyacentes con significado. Esta representación 

puede  ser  usada  en  distintos  ámbitos  como  la  extracción  de  características  y  el 

reconocimiento de patrones. Esta técnica difiere de los análisis en componente principales 

en que ACI impone independencia de alto orden y no solo de segundo orden como en ACP. 

ACI ha sido aplicado con éxito para la tarea del reconocimiento facial [14,15]. 

 

Page 31: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

31 

2.4.1.3 Análisis Discriminatorio Lineal (ADL) 

 ADL es una técnica de aprendizaje supervisado para clasificar datos. La idea central de ADL 

es  obtener  una  proyección  de  los  datos  en  un  espacio  de  menor  (o  incluso  igual) 

dimensión que  los datos entrantes, con el fin de que  la separabilidad de  las clases sea  la 

mayor posible. Es una  técnica  supervisada ya que para poder buscar esa proyección  se 

debe entrenar el sistema con patrones etiquetados.  

Es  importante  aclarar  que  ADL  no  busca  en  ningún  momento  minimizar  el  error  de 

representación cometido, como si  lo hacia ACP. Este análisis de discriminación fue usado 

para el reconocimiento de rostro por Etemad y Chellappa [16], así como Zhao et al. [17]. 

2.4.2 Técnicas de grafos: “Elastic Bunch Graph Matching” EBGM  

Todos  los  rostros humanos  comparten una estructura  topológica  similar,  los  rostros  son 

representados  como  grafos,  con  nodos  posicionados  en  puntos  específicos.  Bordes 

etiquetados  con  2‐D  vectores  de  distancia.  Cada  nodo  contiene  un  conjunto  de  40 

coeficientes  de  ondeleta  Wavelet  de  Gabor  Wavelet,  con  diferentes  escalas  y 

orientaciones. El reconocimiento se basa en etiquetar  las graficas. Una grafica etiquetada 

es un conjunto de nodos conectada por bordes,  los nodos son etiquetados con  los  jets y 

los bordes son etiquetados con las distancias [18,19]. 

 

2.4.3 Transformación de huella  

La  transformada de huella  conocida  en  terminología  inglesa  como  “trace  transform”  es 

una  generalización  de  la  transformada  de  Radon  y  es  una  nueva  herramienta  para  el 

procesamiento de  imágenes  la  cual puede  ser usada para el  reconocimiento de objetos 

bajo  trasformaciones geométricas  tal como  rotación,  traslación y cambio de escala. Para 

producir  esta  trasformación  se  calcula mediante  una  función  de  un  parámetro  o  trazo 

funcional  a  lo  largo  de  las  líneas  de  una  imagen,  diferentes  transformadas  pueden  ser 

producidas  de  una  imagen  usando  diferentes  trazos  funcionales.  El  uso  de  esta 

Page 32: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

32 

transformada en la problemática de reconocimiento facial fue desarrollada por Kadyrov y 

Petrou [20], así como Srisuk et al. [21]. 

2.4.4  Modelo activo de apariencia   

Es un modelo generalizado del modelo activo de patrón [22]. Es un método Iterativo para 

ajustar un modelo a una  imagen utilizando toda  la  información de  la  imagen en  lugar de 

únicamente  los bordes. Es un modelo estático  integrado, el cual combina un modelo de 

variación  de  forma  con  un  modelo  de  variaciones  en  la  apariencia,  en  una  forma 

normalizada. Coincidiendo con imágenes que involucren parámetros de modelo los cuales 

minimizan la diferencia entre la imagen y el modelo sintetizado dentro de la imagen.  

 

2.4.5 Reconocimiento Facial 3‐D  

2.4.5.1 El modelo de “morphing”  

El  rostro humano es una  superficie que  se extiende  intrínsecamente en un espacio 3‐D. 

Por  lo  tanto  el  modelo  3‐D  debería  ser  mejor  para  la  representación  de  rostros, 

especialmente  para  el manejo  de  las  variaciones  faciales,  como  pose,  iluminación,  etc. 

Blanz  y  Vetter  [23]  propusieron  un método  basado  en  el modelo  de  “morphing”  que 

codifica  la  forma y  la  textura  como parámetros del modelo. Estos autores desarrollaron 

algoritmos que permiten recupera los parámetros de una sola imagen del rostro. Otro de 

los investigadores que utilizo este método fue Moghaddam et al. [24]. 

 

2.4.5.2 Invariancia a la deformación  

La  principal  novedad  de  este  enfoque  es  la  habilidad  de  comparar  superficies 

independientes  de  las  deformaciones  naturales,  como  resultado  de  las  expresiones 

faciales.  Primero,  el  rango  de  la  imagen  y  la  textura  del  rostro  son  adquiridas. 

Posteriormente, el rango de  la  imagen es pre‐procesada quitando ciertas partes, como el 

Page 33: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

33 

cabello, el cual puede resultar complicado para el proceso de reconocimiento. Finalmente, 

una forma canónica de la superficie facial es computarizada. 

Es  una  representación  la  cual  es  insensible  a  la  orientación  de  la  cabeza  y  expresiones 

faciales,  lo que  implica  la simplicidad del procedimiento de reconocimiento. El desarrollo 

por  sí mismo  es  empleado  sobre  superficies  canónicas.  Bronstein  et  al.  [25]  utilizan  el 

reconocimiento facial 3‐D. 

2.4.6 Enfoque Bayesiano   

El enfoque Bayesiano es una estructura probabilística basado en la aplicación del teorema 

de Bayes. El teorema de Bayes ofrece un método estadístico para calcular la probabilidad 

de que un  suceso ocurra, partiendo de  la probabilidad de que un evento  ligado  a este 

ocurra.  Este  teorema  es  de  gran  utilidad  para  evaluar  una  probabilidad  a  posteriori 

partiendo de probabilidades simples, y así poder revisar la estimación de la probabilidad a 

priori de un evento que se encuentra en un estado o en otro.  

Una medida de similitud probabilista basada en el enfoque Bayesiano se funda en que las 

diferencias de nivel de gris en imagen son una característica de las variaciones típicas en la 

apariencia de un  individuo. Dos clases de variaciones de  imágenes faciales son definidas: 

variaciones  interpersonales  y  variaciones  extra  personales.  Algunos  trabajos  [26,27]  se 

basaron en esta medida de  la similitud entre  rostros utilizando  la  regla Bayesian para el 

reconocimiento facial. 

2.4.7 Máquinas de soporte vectorial  

Las  máquinas  de  soporte  vectorial  son  básicamente  algoritmos  de  clasificación  de 

patrones binarios, cuyo objetivo es asignar cada patrón a una clase mediante la búsqueda 

del mejor  hiperplano  de  separación  que  se  traduce  en  un  problema  de  optimización. 

Existen varios métodos para esta optimización, siendo uno de los más conocidos el paso a 

la  formulación de LaGrange. La teoría  fue desarrollada  inicialmente por Vapnik  [28] y se 

centra en lo que se conoce como Teoría del Aprendizaje Estadístico. 

Page 34: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

34 

Inicialmente  se  usaron  para  problemas  de  clasificación  binaria,  pero  después  se  ha 

extendido  su  uso  a  problemas  de  regresión,  agrupamiento,  clasificación  multiclase, 

regresión  ordinal.  Las máquinas  de  soporte  vectorial  adquirieron  fama  cuando  dieron 

resultados  muy  superiores  a  las  redes  neuronales  en  el  reconocimiento  de  letra 

manuscrita.  El  reconocimiento  y  la  detección  facial  entre  otras  han  sido  un  campo  de 

aplicación de esta técnica [29,30]. 

2.4.8 Redes neuronales   

Una  red  neuronal  es  un  conjunto  de  procesadores  muy  simples  (neuronas) 

interconectados que forman lo que se considera un modelo simplificado del cerebro. Una 

neurona  artificial  tiene,  generalmente,  varias  entradas  y  una  salida.  La  salida  es  una 

función  de  la  suma  de  las  entradas,  multiplicadas  por  “pesos"  asociados  a  las 

interconexiones  entre  neuronas.  Dichas  neuronas  se  encuentran  interconectadas 

formando una red neuronal. Algunas tienen interconexiones al mundo externo (entrada / 

salida) y otras son internas (escondidas). 

Las  redes  neuronales  se  utilizan,  normalmente,  como  elementos  clasificadores  o 

memorias asociativas, asociando una serie de patrones de entrada con patrones de salida. 

Para ello  se entrena  la  red, alterando  los pesos de  las  interconexiones de acuerdo a  la 

relación deseada. 

Una forma de aplicar las redes neuronales para reconocimiento es mediante su aplicación 

a ventanas de pixeles. Primero se entrenan con varios ejemplos positivos y negativos de 

los objetos de interés, y después se aplican a toda la imagen detectando la localización de 

dichos  objetos  donde  se  tenga mayor  respuesta.  Esto  se  puede  extender  a  diferentes 

resoluciones  para  hacer  el  proceso  más  eficiente.  Para  ello  se  utiliza  una  estructura 

piramidal  para  representar  la  imagen  y  se  comienza  por  los  niveles  superiores  (menor 

resolución),  pasando  al  siguiente  nivel  cuando  exista  cierta  respuesta,  hasta  llegar  a  la 

máxima resolución. El proceso de entrenamiento se puede optimizar mediante el mapeo 

de los pesos de las redes de ciertas resoluciones a otras. 

Page 35: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

35 

Esta idea ha sido aplicada al reconocimiento y detección de rostros [31]. El problema con 

este enfoque es que  la red no es  invariante ante cambios de escala y rotación problema 

que trató de resolver en parte Rowley et al. [32] en sus trabajos.  

2.4.9 Boosting y adaboost  

Los métodos  de  “boosting”  son  algoritmos  que  en  el  enfoque  supervisado  conocen  la 

solución a priori y utilizaran esto para adaptar su comportamiento. El boosting se basa en 

la pregunta ¿Puede un conjunto de clasificadores débiles crear un solo clasificador fuerte? 

Un clasificador débil es definido como un clasificador que se correlaciona levemente con la 

clasificación final. En cambio, un clasificador fuerte es un clasificador que se correlaciona 

fuertemente con la clasificación final. 

La mayoría de los algoritmos de boosting consiste en procesos iterativos que aprenden de 

clasificadores  débiles  con  respecto  a  una  distribución,  para  finalmente  agregarlos  a  un 

clasificador  final el cual es más  fuerte. Cuando se agregan, son almacenados de manera 

que se  relaciona comúnmente con  la precisión del clasificador débil. Después de que se 

agrega un clasificador débil, los datos se vuelven a pesar. Los ejemplos que son clasificados 

correctamente pierden peso y  los que  son clasificados de manera errónea aumentan  su 

peso. Así,  los siguientes clasificadores se centran más en  los ejemplos que  los anteriores 

clasificaron erróneamente. 

Existen  una  variedad  de  algoritmos  de  boosting,  los  originales  propuestos  por  Schapire 

[33]  y  Freund  [34]  no  eran  adaptativos  y  no  podían  tomar  ventaja  completa  de  los 

clasificadores  débiles.  Por  tal motivo  Freund  y  Schapire  [35]  proponen  posteriormente 

Adaboost,  el  cual  es  un  algoritmo  adaptativo  que  toma  ventaja  de  los  clasificadores 

débiles para formar un clasificador fuerte.  

El algoritmo de Adaboost es normalmente  implementado utilizando arboles de decisión, 

pero puede utilizar diferentes clasificadores de base incluyendo el Bayesiano simple.  

Page 36: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

36 

Uno de  los  trabajos de detección de  rostros  en  tiempo  real  es  el esquema  algorítmico 

desarrollado por Viola y Jones [36, 37, 38] que se basa en el aprendizaje de AdaBoost para 

construir un clasificador no lineal. 

Varias referencias [5,39] muestran la eficacia de este sistema en término de detección, de 

alarmas falsas y de rapidez. Por esta razón se eligió su implementación en esta tesis. Este 

método se detallará en el siguiente capítulo. 

   

Page 37: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

37 

Capítulo 3  

Marco Teórico  

Según los autores Li y Jain [5], en sus comparaciones de los diversos métodos de detección 

del rostro, el método de Viola y Jones basado en Adaboost ha sido el más eficaz de todos 

los  trabajos  desarrollados.  En  términos  de  relación  detección  y  falsos  positivos,  este 

método es comparable al de la red neuronal de Rowley y otros [32], pero se realiza varias 

veces más rápidamente. Su sistema se considera el primer detector de rostro en tiempo 

real.En este capítulo se detallará la técnica de Viola y Jones [36, 37,38] que ha sido elegida 

entre otras por estas razones ya mencionadas para ser implementada en éste trabajo.  

Viola  y  Jones  presentaron  un  método  rápido  de  detección  de  objeto  basado  en  un 

algoritmo  en  cascada  usando  descriptores  simples  llamados  los  descriptores  de  "Haar" 

que pueden ser calculados de modo eficaz utilizando una representación intermediaria de 

la  imagen  llamada  imagen  integral.  Propusieron  también  un  procedimiento  de 

clasificación  a  varias  etapas  el  cual  reduce  considerablemente  el  tiempo  de  ejecución 

realizado casi con  la misma exactitud con relación a un algoritmo de clasificación mono‐

fase, que ciertamente es más lento y más complejo. 

El principio de base del algoritmo de Viola y Jones es explorar una sub‐ventana capaz de 

detectar  rostros  a  través  de  una  imagen  de  entrada.  El  acercamiento  estándar  en 

procesamiento  de  imagen  sería  escalar  la  imagen  de  la  entrada  a  diversos  tamaños  y 

después  convertir  la  ventana  del  detector  en  tamaño  fijo  en  las  imágenes.  Este 

acercamiento  resulta  ser  bastante  largo  en  tiempo  de  cálculo  debido  al  cálculo  de  las 

diversas imágenes en diferentes escalas. 

Al  contrario  el  acercamiento  propuesto  por  Viola  y  Jones  permite  transformar  en 

diferentes  escalas  el  detector  en  vez  de  la  imagen  de  la  entrada  y  de  esta manera  el 

detector es aplicado muchas veces a la imagen, cada vez con un tamaño diferente. Como 

se puede  apreciar,  ambos  acercamientos  son  igualmente  largos  en  tiempos de  cálculo, 

Page 38: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

38 

pero Viola y Jones ha tenido la idea de un detector invariante de la escala que requiere el 

mismo número de operaciones en cualquier escala. 

Este detector se construye usando una imagen integral supuesta y algunas características 

rectangulares  simples  derivadas  de  las  wavelet  (ondeletas)  de  Haar. Más  adelante  se 

describe en detalle este detector. 

3.1 Descripción general  Todo  proceso  automático  de  detección  y  seguimiento  de  rostro  debe  tomar  en 

consideración  varios  factores  que  contribuyen  a  la  complejidad  de  su  tarea,  porque  el 

rostro es una entidad dinámica que cambia constantemente bajo  la  influencia de varios 

factores.  

La Figura 3.1  ilustra el paso general adoptado para  realizar  tales  sistemas. En el mundo 

físico, hay tres parámetros que hay que considerar: la iluminación, la variación de postura 

y la escala. La variación de uno de estos tres parámetros puede influir considerablemente 

en  los  resultados de nuestro  sistema. Este último  se  requiere  ser el más  independiente 

posible  de  estos  parámetros,  es  decir  un  sistema  autónomo  que  no  pide  condiciones 

puestas de inicialización manualmente así como de informaciones a priori sobre el entorno 

de implantación. 

Page 39: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

39 

 

Figura 3.1 Detección Facial 

 

El método adoptado, que se presenta en las secciones siguientes, requiere de una fase de 

aprendizaje  en  la  cual  se  forma  una  función  de  clasificación  robusta.  Esta  función  de 

clasificación  se  explotará mediante  el  algoritmo  de  detección  para  poder  ser  separada 

entre la clase de los rostros y la clase de no rostros. 

Siguiendo este esquema, tres etapas son necesarias: el pre‐procesamiento o tratamiento 

previo, la extracción de características y la decisión. Como es sabido el método de Viola y 

Jones aplica escalas a grises a  las  imágenes,  la primera etapa describe el proceso que se 

aplica  a  la  imagen  en  color  [39].  Las  dos  siguientes  etapas  describen  directamente  el 

método de Viola y Jones.  

3.1.1 Preprocesamiento 

3.1.1.1 Transformación a nivel de gris 

 Este método basado en los descriptores de Haar, se aplica en imágenes en niveles de gris. 

Para  sistemas  que  funcionan  con  imágenes  colores  (la  imagen  y  el  video  porque  la 

Page 40: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

40 

detección se realiza en cada  imagen de video), es necesaria una etapa de procesamiento 

previo que  transformara  los  colores en niveles de gris. En  la gran parte de  los  casos,  la 

imagen está representada en el espacio de los colores YUV. En ese caso la imagen en nivel 

de  gris  correspondiente  se  deduce  directamente  de  la  imagen  original  considerando 

únicamente  la  luminancia  de  cada  pixel  (Y).  El modelo  YUV  es  un  espacio  de  color  en 

términos  de  una  componente  de  luminancia  y  dos  componentes  de  crominancia.  Es  el 

modelo usado en los sistemas PAL y NTSC de difusión de televisión, el cual es el estándar 

en  la  mayoría  del  mundo.  El  modelo  YUV  está  más  próximo  al  modelo  humano  de 

percepción que el estándar RGB usado en el hardware de gráficos por computadora. 

La conversión YUV a partir del m  RG va a  me iante la operación (Fig. 3.2): odelo B se lle  cabo d

       0.299 0.587 0.1140.147 0.289 0.4360.615 0.515 0.100

 

Figura 3.2 Conversión YUV a partir RGB 

       

3.1.1.2 Escalado por Interpolación   

Otro procesamiento, que  resulta útil,  consiste en  cambiar el  tamaño de  la  imagen para 

controlar mejor el tiempo de cálculo y el espacio memoria. Esta tarea se realiza mediante 

uno de los métodos de interpolación. La interpolación puede considerarse como el cálculo 

del valor de  intensidad de un pixel, en una posición cualquiera, como una función de  los 

pixeles que lo rodea. Existen diferentes técnicas de interpolación, entre los cuales los más 

utilizados  en  el  procesamiento  geométrico  de  imágenes  son:  bilineal,  bicúbica  y  vecino 

más cercano [10]. En la interpolación bicúbica se requiere del valor de los 16 puntos para 

calcular el valor de punto central como se puede apreciar en la Figura. 3.3.  

 

Page 41: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

41 

 

Figura 3.3 Interpolación bicúbica con el valor de los 16 puntos vecinos 

 

3.1.1.3 Ecualización del histograma  

Es  una  transformación  que  pretende  obtener,  para  una  imagen,  un  histograma  con 

distribución uniforme. Es decir, que exista el mismo número de pixeles para cada nivel de 

gris del histograma. 

 

Figura 3.4 Ecualización del histograma H; 

En teoría,  la aplicación de esta operación debería transformar el histograma en otro con 

una  forma  perfectamente  uniforme  sobre  todos  los  niveles  de  gris  (Figura  3.4).  Sin 

embargo, en  la práctica esto no  se va a poder conseguir pues se estaría  trabajando con 

funciones de distribución discretas en  lugar de continuas. En  la transformación, todos  los 

pixeles de un mismo nivel de gris se transformarán a otro nivel de gris, y el histograma se 

distribuirá en  todo el  rango disponible separando en  lo posible  las ocupaciones de cada 

nivel. 

Se puede aplicar diferentes tipos de ecualización [10]: ecualización uniforme, exponencial, 

de Rayleigh, etc. La libraría OpenCV emplea la ecualización uniforme según la expresión: 

Page 42: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

42 

           ∑          (3.1) 

Donde   es el histograma. 

El  resultado  de  la  ecualización  maximiza  el  contraste  de  una  imagen  sin  perder 

información  de  tipo  estructural,  esto  es,  conservando  su  Entropía  (información).  Esta 

operación  constituye  una  regulación  óptima  y  automática  del  contraste  de  la  imagen 

evitando  los ajustes manuales, con  los que no se consigue un equilibrio óptimo entre el 

blanco y el negro, Figura 3.5.  

   

Figura 3.5 Mejoramiento del contraste por ecualización del histograma; la izquierda: imagen original; la derecha: imagen con ecualización del histograma. 

 

3.1.1.4 Detección del Borde mediante el algoritmo de Canny  

Algunas funciones de detección de rostro [39] utilizan el detector del borde de Canny [40] 

para  rechazar  algunas  regiones  de  la  imagen  que  contengan  demasiados  o  pocos 

contornos,  regiones  que  no  puede  contener  el  objeto  buscado.  El  objetivo  de  este 

procedimiento es acelerar el proceso de detección.  

El  algoritmo  de  Canny  se  considera  uno  de  los  mejores  detectores  del  borde  en 

procesamiento de imágenes. Este algoritmo se fundamenta en la teoría de operadores de 

la primera derivada, debido a que toma el valor de cero en todas  las regiones donde no 

varía  la  intensidad y  tiene un valor constante en  toda  la  transición de  intensidad. Por  lo 

tanto  un  cambio  de  intensidad  se  manifiesta  como  un  cambio  brusco  en  la  primera 

derivada, característica que es usada para detectar un borde. El detector de Canny (Figura 

Page 43: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

43 

3.6)  resulta  particularmente  interesante  porque  extrae  bordes  y  cierra  los  contornos 

evitando posible rupturas de los mismos durante su extracción, este es desglosado en tres 

módulos [10]: 

1‐Obtención del gradiente: en este paso  se calcula  la magnitud y orientación del 

vector gradiente en cada píxel. 

2‐Supresión no máxima: en este paso se  logra el adelgazamiento del ancho de  los 

bordes, obtenidos con el gradiente, hasta lograr bordes de un píxel de ancho. 

3‐Histéresis de umbral: en este paso se aplica una función de histéresis basada en 

dos  umbrales;  con  este  proceso  se  pretende  reducir  la  posibilidad  de  aparición  de 

contornos falsos. 

 

 

Figura 3.6 Ejemplo de detección del borde de Canny: 

Izquierda: imagen original, derecha imagen del borde 

 

3.1.2 Extracción de descriptores  

A partir de la imagen transformada en nivel de gris, redimensionada y con una regulación 

óptima y automática del contraste, se realiza la extracción de características o descriptores 

que  van  a  constituir  la  entrada  del  sistema  de  reconocimiento.  Los  descriptores  son 

extraídos a partir de  la  imagen en nivel de gris mediante  la  imagen  integral. Se calcula  la 

imagen integral de los cuadrados. 

Page 44: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

44 

El  valor de  la  imagen  integral de  los  cuadrados  al punto  (x;  y) es  la  suma de  todos  los 

valores de píxeles al cuadrado situados encima y a la izquierda. La imagen integral permite 

reducir considerablemente el tiempo de cálculo de  los descriptores. Lo mismo  la  imagen 

integral  de  los  cuadrados  es  una  representación  de  la  imagen  que  permite  calcular  el 

covariancia en una ventana muy rápidamente a partir de cuatro referencias solamente. 

 

3.1.3 Block de decisión   

La  imagen  integral  y  la  función  de  clasificación  son  las  entradas  de  un  bucle.  A  cada 

iteración,  la  ventana  de  barrido  será  redimensionada;  siendo  más  precisos,  será 

aumentada  por  un  factor  bien  escogido  de  escala.  Por  consecuencia,  los  datos  de  la 

función de clasificación deben ser adaptados a este cambio. 

La  adaptación  principalmente  consiste  en  redimensionar  los  rectángulos  de  Haar 

proporcionalmente al tamaño de la ventana. Este bucle garantiza la detección de rostro a 

toda  escala,  pues  su  parámetro  principal  es  el  factor  de  escala.  Este  parámetro 

generalmente es entre 1.1 y 1.4. 

A  fin de poder  localizar  los  rostros  en  todo  emplazamiento de  la  imagen,  esta  ventana 

debe  recorrer  toda  la  imagen. Por  consecuencia, un bucle  imbricado  se  impone, y  cuyo 

paso es el parámetro determinante. A cada iteración, un algoritmo de decisión se ejecuta. 

La Figura 3.6 resume el funcionamiento del método de detección de rostro. 

Page 45: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

45 

 

Figura 3.7 Sistema de detección de Viola y Jones [36] 

 

3.2 Descriptores de Harr  

El  valor de un punto de  la  imagen  solo nos  informa  sobre  el  color  en  este punto. Una 

técnica más elaborada es encontrar detectores basados en características más globales del 

objeto.  Es  el  caso  de  los  descriptores  de  Haar.  Estos  descriptores  son  funciones  que 

permiten  acentuar  la  diferencia  de  contraste  entre  diferentes  regiones  rectangulares 

adyacente en una  imagen. Es una manera de codificar  los contrastes existentes entre un 

rostro y las relaciones espaciales.  

Un descriptor  (figura 3.7) es  representado por un  rectángulo definido por  su vértice,  su 

altura, su longitud y sus pesos (negativo o positivo, de cada rectángulo). 

Page 46: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

46 

Hay  muchas  motivaciones  para  el  uso  de  los  descriptores  más  bien  que  los  píxeles 

directamente:  el  sistema  fundado  sobre  los descriptores  es más  rápido que un  sistema 

fundado sobre los píxeles (Figura 3.8). 

 

Figura 3.8 Representación de un descriptor 

 

Los descriptores simples utilizados son  inspirados por  las funciones de base de Haar que 

han sido empleados por Papageorgiou y al  [41]. Más específicamente, Viola y Jones  [36] 

emplearon tres tipos de descriptores (Figura 3.9). 

Un descriptor  a dos  rectángulos es  la diferencia entra  la  suma de  los píxeles de 

ambas  regiones  rectangulares.  Las  regiones  tienen  el mismo  tamaño  y  forma  y 

están horizontalmente o verticalmente adyacentes. 

Un descriptor a  tres rectángulos, es  la suma de  los píxeles en ambos rectángulos 

exteriores sustraídos por la suma en el rectángulo central. 

Un descriptor a cuatro rectángulos es la diferencia entre los pares diagonales de los 

rectángulos. 

 

Figura 3.9 Los tres tipos de descriptores de Haar  

Page 47: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

47 

Lienhart et Maydt [42] han propuesto una extensión de estos descriptores incluyendo unos sometidos a una rotación de 45 grados (Figura 3.10).  

 

 Figura 3.10 Extensión de los descriptores de Haar. 

 Como ejemplo, en el caso que el tamaño de  la ventana de base  (imagen en entrada) ha 

sido  fijado sobre 24 × 24, este método utiliza un número grande de descriptores  (45396 

descriptores  según Viola y  Jones). Así, el número de descriptores es  considerablemente 

más grande que el espacio de la imagen (en este caso 576 píxeles). 

 

3.3 Imagen Integral  

Los  descriptores  rectangulares  pueden  ser  calculados  de  modo  eficaz  utilizando  una 

representación  intermediaria  de  la  imagen  llamada  la  imagen  integral.  Esta  imagen, 

resultado del  trabajo publicado por Crow  [43], es obtenida a partir de un algoritmo que 

permite  generar  de manera  eficiente  y  rápida  la  suma  de  los  valores  de  un  rectángulo 

adentro de una imagen.  

La  imagen  integral es una matriz del mismo  tamaño que  la matriz de  la  imagen original 

donde cada elemento de la Imagen Integral a la posición (x; y) contiene la suma de todos 

los píxeles localizados en la región superior izquierda de la imagen original (Figura 3.11). 

Page 48: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

48 

 

Figura 3.11 El valor de la imagen integral al punto (x, y) es igual a la suma de todos los e uados en  la izquierda. píxel s sit cima y a

  ,   ,          (3.2)     ∑ ,

,  es  la  imagen  integral y  ,   es  la  imagen original. Usando  las dos  siguientes 

operaciones:  

            (3.3) , , 1   ,   

      , 1, (3.4)   ,         

Donde   ,  es suma acumulada en línea y  , 1 0    1, 0 

Así la imagen integral puede ser calculada en un solo barrido sobre la imagen original. 

Utilizando  esta  representación  cualquier  suma  de  píxeles  en  un  rectángulo 

correspondiente  a  un  descriptor  puede  ser  calculada  a  partir  de  cuatro  referencias 

solamente por la imagen integral. 

 

 

Figura  3.12  La  suma  del  Píxel  en  el  rectángulo D  puede  ser  calculada  con  solamente cuatro referencias. El valor de la imagen integral en el lugar 1 es la suma del Píxel en el rectángulo A. El valor en el lugar 2 es A + B, en el lugar 3 es A + C, y en el lugar 4 es A + B + C + D 

Page 49: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

49 

La  Figura  3.12  muestra  que  la  diferencia  entre  dos  sumas  de  píxeles  en  una  región 

rectangular puede ser calculada a partir de ocho referencias. Ya que el descriptores a dos 

rectángulos  definidos  anteriormente  son  por  definición  adyacentes,  eso  implica  que 

pueden  ser  calculados por  seis  referencias  solamente de  la  imagen  integral, ocho en el 

caso el descriptores a tres rectángulos, y nueve para descriptores. 

 

3.3.1 Importancia de los descriptores de Harr‐Like  

Los descriptores  rectángulos son atributos simples en comparación con otros medios de 

análisis local tales como los filtros orientados. Los filtros orientados son excelentes para el 

análisis detallado de las fronteras, la compresión de imagen, y el análisis de textura. 

Los descriptores, a pesar de  la sencillez son sensibles a  la presencia de  los contornos,  las 

barras y otras estructuras simples en la imagen. 

Con el fin de apreciar la ventaja informática de la técnica de imagen integral, consideremos 

el  caso  de  detección  de  objeto  basada  en  una  pirámide  de  imágenes  (imágenes  a 

diferentes  escalas).  Como  en  la  mayoría  de  los  sistemas  de  detección  de  objeto,  el 

algoritmo recorre la imagen de entrada a diferentes escalas comenzando con la resolución 

más baja. 

En calidad de ejemplo, podemos considerar una  imagen de  tamaño de 24x24 píxeles,  la 

imagen es recorrida a 11 escalas, cada una es más pequeña que la precedente teniendo un 

factor de 1.25. Una  ventana de  tamaño  fijo es  recorrida  a  través de  cada una de estas 

imágenes  implicando un aumento en  tiempo de cálculo además del  tiempo dedicado al 

cálculo de la pirámide.  

Como  conclusión,  la  gran  ventaja  del  uso  de  los  descriptores  es  que  representan  un 

conjunto  significativo  de  descriptores,  que  tienen  la  propiedad  de  ser  evaluado  en 

cualquier escala y cualquier  lugar mediante muy pocas operaciones. Como demostraron 

Page 50: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

50 

Viola  y  Jones  [36],  los  algoritmos  de  detección  con  resultados  aceptables  podían  ser 

construidos con solamente dos descriptores. 

 

3.4 Algoritmos de Aprendizaje 

A partir de un  conjunto de descriptores y un  conjunto de  imágenes  correspondientes a 

rostros  (imágenes  positivas)  y  a  no  rostros  (imágenes  negativas),  un  método  de 

aprendizaje puede emplearse para deducir una función de clasificación. 

Se debe tomar en cuenta que el conjunto de los descriptores rectángulo está formado por 

45396  descriptores,  un  número más  grande  que  el  número  de  pixeles  en  la  imagen. 

Aunque  cada  descriptor  puede  ser  calculado  de  una  manera  eficaz,  la  utilización  del 

conjunto completo es excesivamente costosa. La hipótesis que ha sido confirmada por una 

consecuencia  de  experiencias,  es  que  un  número  limitado  de  estos  descriptores  puede 

emplearse para formar una función de clasificación fuerte. El reto principal es encontrar a 

estos descriptores. 

En  los  trabajos  de  Viola  y  Jones  [36,  37,  38]  una  versión  de  algoritmo  de  aprendizaje 

conocido bajo el nombre de ”AdaBoost“, que significa “adaptative boosting“ (Tabla 3.1) , se 

empleó  para  elegir  los  descriptores  y  formar  la  función  de  clasificación.  Es  uno  de  los 

algoritmos más utilizados en aprendizaje automático. 

Bajo su forma original, el algoritmo de aprendizaje de AdaBoost se empleó para mejorar 

un  algoritmo  de  aprendizaje  simple.  Su  principio  consiste  en  combinar  un  conjunto  de 

funciones  sencillas o débiles de  clasificación para  formar una  función de  la  clasificación 

fuerte. La función de clasificación es débil si es solamente capaz de reconocer dos clases al 

menos.  

Para un problema dado una  función de clasificación débil puede solamente clasificar  los 

datos de  la base de  aprendizaje  correctamente  al 51%. Después de  la primera  fase del 

aprendizaje, los ejemplos serán combinados de modo que las que han sido clasificadas mal 

por  la función de clasificación anterior tendrán el peso más grande. La función fuerte de 

Page 51: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

51 

clasificación  final  toma  la  forma  de  un  perceptor  =  una  combinación  ponderada  de 

funciones de clasificación débiles (según su calidad de clasificación). 

Consideremos  el  problema  de  aprendizaje,  en  el  cual  se  combina  un  gran  conjunto  de 

funciones de clasificación utilizando un voto mayoritario ponderado. El reto es asociar un 

gran peso a cada mejor  función de clasificación y un peso más pequeño a  las  funciones 

débiles. 

AdaBoost es un mecanismo que permite elegir un pequeño conjunto de buenas funciones 

de  clasificación  que  tienen  sin  embargo  una  variación  significativa.  Por medio  de  una 

analogía entre  las funciones de clasificación y  los descriptores débiles de Haar, AdaBoost 

es un procedimiento eficaz para seleccionar un número limitado de buenos descriptores. 

Un método práctico para entender esta analogía es limitar la función débil de clasificación 

en el conjunto de  las funciones de clasificación que dependen de un único descriptor. Es 

para eso que el algoritmo de aprendizaje débil  se  concibe para elegir al descriptor que 

separa mejor las imágenes positivas  s. de las negativa

Una  función  de  clasificación  débil  , , ,     consta  así  de  un  descriptor    de  un 

umbral    y de una paridad     que indica la dirección de la señal de desigualdad: 

 

         , , ,   1     0                

      (3.5) 

 

Donde  x es una ventana de la imagen en entrada.  

En  la  Tabla  3.1  se muestra  el  algoritmo  de  Adaboost  desarrollado  y  publicado  por  sus 

autores Viola y Jones [38]. 

 

 

 

 

 

 

 

Page 52: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

52 

Tabla 3. ritmo aboost 1 El algo  de Ad

‐Dado  un  conjunto  de  imágenes  1, 1 , … . ,   donde  1 0,1  para muestras 

negativas y positivas respectivamente. 

• Inicializar los pesos  , ,  para yi=0,1  

Donde m es el número de muestras negativas y l es el número de muestras positivas. 

• Para t = 1, . . . , T: 

1) Normalizar los pesos   , ∑ , 

2) Seleccionar la mejor clasificadora base respecto al error de peso. 

min , ,θ  | , , , | 

3) Define       , , , , donde   , ,  son usadas para minimizar  . 

4) Actu iz  pesos:   , ,   al a los

Donde  0 si  la muestra   es clasificada correctamente, o  0 en otro caso, 

con    

• El clasificador robusto final queda:   1      ∑      ∑0                                    

 

Donde   

 

Las  experiencias  iníciales  [36,37]  han  mostrado  que  una  función  de  clasificación 

constituida  de  200  descriptores  daría  resultados  razonables  el  porcentaje  de  buena 

detección es del 95% y el número de falsa alarma es de 1 sobre un conjunto 14084 datos 

de prueba. 

Page 53: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

53 

Para  caracterizar  bien  el  rostro,  los  descriptores  rectángulos  iniciales  elegidos  por Ada‐

Boost  son  significativos  y  fácilmente  interpretados.  La elección del primer descriptor  se 

basa en la propiedad que la región de los ojos es a menudo más oscura que la región de la 

nariz y las mejillas (Figura 3.13). El segundo descriptor elegido se basa en la propiedad que 

los ojos son más oscuros que el puente de la nariz. 

 

Figura 3.13 Los dos descriptores de Haar más discriminantes seleccionados por Adaboost 

 

En resumen la función de clasificación a 200 descriptores ha mostrado que una función de 

clasificación construida a partir de descriptores rectángulos es una  técnica eficaz para  la 

detección de objeto. En términos de detección, estos resultados son alentadores pero no 

son suficientes para mucha aplicación. En términos de cálculo, esta función de clasificación 

es  probablemente  más  rápida  que  cualquier  otro  sistema  publicado,  necesitando  0.7 

segundos para recorrer una imagen de 384 × 288. 

Desgraciadamente,  la  técnica más directa para mejorar  la detección de  rostro, es añadir 

descriptores a  la función de clasificación, y en consecuencia se aumenta directamente el 

tiempo de cálculo. 

   

3.5 Las Funciones de clasificación en cascada   

Una función de clasificación es un algoritmo capaz distinguir al menos entre dos clases. En 

nuestro caso clase de los rostros y no rostros. 

Page 54: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

54 

 

3.5.1 Disposición de las funciones de clasificación  

Se  describe  a  continuación  un  algoritmo  constituido  por  una  sucesión  de  funciones  de 

clasificación  que  realiza  un  incremento  de  detección mientras  reduce  radicalmente  el 

tiempo de cálculo. Las funciones de clasificación se colocan en cascada:  las funciones de 

clasificación más  débiles  se  emplean  en  primer  lugar  para  rechazar  la mayoría  de  las 

ventanas antes de que  las funciones de clasificación más complejas realizan baja tasa de 

falsa alarma. 

Los resultados de detección de una función de clasificación a dos descriptores son lejos de 

ser aceptables para un sistema de detección de objeto. Sin embargo esta simple función 

de clasificación puede significativamente reducir el número de las ventanas candidatas con 

muy pocas operaciones:  

1. Evaluar los descriptores rectángulos (exige entre 6 y 9 referencias por descriptor). 

2. Calcular  la función de clasificación débil para cada descriptor (exija una operación 

de umbral por descriptor). 

3. Combinar  las  funciones  de  clasificación  débiles  (exija  una  multiplicación  por 

descriptor, adición, y finalmente una comparación por descriptor). 

La forma global del método de detección es la de un árbol degenerado de decisión (Figura 

3.14). Un resultado positivo de  la primera función de clasificación activa  la evaluación de 

una segunda función de clasificación que también ha sido ajustada para realizar tasa muy 

elevada de detección. Un resultado positivo de  la segunda función de clasificación activa 

una  tercera  función,  y  así  sucesivamente.  Resultados  negativos  conducen  al  rechazo 

inmediato de la ventana. 

 

Page 55: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

55 

 

Figura 3.14 Esquema del árbol de las funciones de clasificación en cascada, n: clasificador, V: verdad, F: Falso. 

 

La función de clasificación inicial elimina un gran número de ejemplos negativos con pocos 

tratamientos.  Las  capas  siguientes  eliminan  los  negativos  adicionales  pero  exigen  un 

cálculo  adicional.  Después  de  varias  etapas  de  tratamientos  se  redujo  radicalmente  el 

número de ventanas. 

La estructura del árbol refleja el hecho de que para cualquier imagen simple la mayoría de 

las ventanas son negativas. Así pues, la función intenta rechazar tantos negativos posibles 

lo más pronto posible. Mientras que un ejemplo positivo desencadenará la evaluación de 

cada  función de  clasificación en el árbol. Al  igual que  cualquier árbol de decisión, estas 

funciones  de  clasificación  se  forman  utilizando  ejemplos  que  se  deslizan  por  todas  las 

etapas anteriores. En consecuencia, una  función de clasificación  se está cargada de una 

tarea más difícil que la anterior. 

 

 

Page 56: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

56 

3.5.2 Árbol de funciones del clasificador  

El proceso de concepción de  las funciones de clasificación debe responder a un conjunto 

de objetivos de detección y resultados. Para la detección de rostro, se han realizados tasas 

de detección elevados (entre 85% y 95%) y tasas de falsas alarmas extremadamente bajo 

(sobre el orden 10 ‐5% o 10 ‐6%). El número de etapas de transición y el tamaño de cada 

etapa deben ser suficientes para realizar un resultado similar de detección reduciendo al 

mínimo el tiempo de cálculo. Dado un árbol de funciones de clasificación, la tasa de falsas 

alarmas es definida:  

      ∏              (3.6) 

Donde K es el número de funciones de clasificación, y   es el la tasa de falsa alarma de la 

I‐ésima función de clasificación calculada a partir de los ejemplos de formación. Del mismo 

modo, la tasa de detección D es dado por:  

      ∏             (3.7) 

Donde   es la tasa de detección de la I‐ésima función de clasificación. 

El  número  de  descriptores  se  evalúa  cuando  se  prueba  sobre  imágenes  verdaderas. 

Cualquier  ventana  dada  progresará  en  el  árbol,  hasta  que  se  decida  que  la  ventana  es 

negativa  o,  la  ventana  supera  todas  las  pruebas  y  se  señala  como  positiva.  El 

comportamiento  previsto  de  este  proceso  viene  determinada  por  la  distribución  de  la 

ventana  la  imagen en un conjunto típico de prueba. La medida principal de cada función 

de  clasificación  es  la  tasa  de  detección  llamado  también  la  tasa  positiva.  El  número 

previsto de descriptor lúa :es que se eva  es   

         ∑ ∏          (3.5) 

Dónde K es el número de  funciones de  clasificación,   es  la  tasa positiva de  la  I‐ésima 

función  de  clasificación,  y    es  el  número  de  descriptores  en  la  I‐ésima  función  de 

clasificación. 

Page 57: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

57 

El proceso de  formación de  cada elemento del  árbol exige un determinado  cuidado.  El 

algoritmo de  aprendizaje de  “AdaBoost”,  intenta  reducir  al mínimo  los  errores,  y no  se 

concibe realizar una tasa elevada de buena detección. Simplemente, para controlar estos 

errores se puede ajustar el umbral del perceptron producido por “AdaBoost”. 

El  proceso  global  de  formación  implica  dos  tipos  de  compromiso.  En  la mayoría  de  los 

casos las funciones de clasificación con más descriptores realizarán tasas más elevadas de 

buena detección y reducirán las tasas de falsas alarmas. Al mismo tiempo las funciones de 

clasificación con más descriptores necesitan más tiempo de cálculo. En principio se podría 

definir  un marco  de  optimización  en  el  cual  el  número  de  etapas  de  clasificación,  el 

número de descriptores,   de cada etapa, el umbral de cada etapa, se negocian con el fin 

de reducir al mínimo el número previsto de descriptores N siguiendo F y D.  

Desgraciadamente  la  conclusión  de  esta  optimización  es  un  problema  enormemente 

difícil.  En  la  práctica  se  emplea  un  marco  muy  simple  para  producir  una  función  de 

clasificación  fuerte. El usuario elige  las tasas mínimas aceptables para  los   y  los  . Las 

tasas se determinan examinando el detector que corre sobre un conjunto de validaciones. 

Si no se alcanza aún  la  tasa de  falsas alarmas de objetivo global entonces se añade otra 

capa  al  árbol.  El  conjunto  negativo  para  las  capas  siguientes  de  formación  se  obtiene 

reuniendo  todas  las  falsas  detecciones  cometidas  por  el  detector  que  corre  sobre  un 

conjunto de imágenes que no contienen ningún ejemplo del objeto que debe detectarse. 

 

3.5.3 Importancia de la estructura en cascada.  

Con  el  fin  de  explorar  la  viabilidad  del  enfoque  árbol  de  funciones  de  clasificación  se 

formaron  dos  detectores  simples:  una  función  de  clasificación  monolítica  a  200 

descriptores  y  un  árbol  de  funciones  de  clasificación  de  20  períodos  de  prácticas  que 

tienen cada uno 20 descriptores. 

Page 58: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

58 

La función de clasificación del primer período de prácticas en el árbol se formó utilizando 

5000 rostros y 10000 no rostros aleatoriamente elegidos a partir de  las  imágenes que no 

contienen rostros. La función de clasificación del segundo período de prácticas se formó a 

partir  de  las  mismas  5000  rostros  más  5000  no  rostros  de  la  primera  función  de 

clasificación.  Este  proceso  se  repite  de  modo  que  las  etapas  siguientes  se  formen 

utilizando los falsos positivos de la etapa anterior. Podríamos naturalmente emplear todas 

las ventanas posibles de todas nuestras imágenes no rostro, pero esto cuesta muy caro en 

tiempo de cálculo.  

 

Figura 3.15 Comparación entre un detector de rostro simple compuesto de 200 funciones de clasificación y un detector compuesto de 20 períodos de prácticas de 10 funciones de 

clasificación [38]. 

 

Las dos curvas de la Figura 3.15 ponen de manifiesto que las tasas de buenas detecciones 

y  de  falsa  alarma  de  una  función  de  clasificación  a  200  descriptores  y  un  árbol  de 

funciones  de  clasificación  son muy  cercanas,  pero  la  gran  diferencia  es  la  velocidad  de 

ejecución.  

Page 59: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

59 

Comparando la velocidad de una función de clasificación monolítica y la de de un árbol de 

funciones de clasificación conectado en cascada,  la segunda es mucha más rápida. Por  lo 

tanto, se deduce  la  importancia de  la estructura en cascada en un sistema de detección 

tiempo real. 

   

Page 60: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

60 

Capítulo 4  

Implementación del algoritmo   En  este  capítulo  se  explicara  cómo  se  implemento  la  técnica  de  Viola  y  Jones.  Está  se 

desarrollo en entorno Visual Studio 2008 con  lenguaje C# y  las  librerías de OpenCV bajo 

Emgu.  Se  introduje  una  breve  explicación  de  estos  elementos  computacionales  seguida 

con una explicación detallada de la fase de entrenamiento de esta técnica usando librería 

OpenCV.  La  fase  de  entrenamiento  es  de  suma  importancia  puesto  que  influye  en  los 

resultados  de  la  detección.  Una mirada  del  software  desarrollado  se  presentara  en  el 

parágrafo titulado implementación seguida de los resultados obtenidos. 

 

4.1. Elementos computacionales.  

4.1.1 Microsoft Visual Studio. 

 Microsoft Visual Studio 97 fue la primera versión que salió al mercado, ésta incluía Visual 

Basic 5.0 y Visual C++ 5.0 para realizar software para Windows específicamente, mientras 

que Visual  J++ 1.1 era para  Java y Windows. Los otros  lenguajes eran Visual Fox Pro 5.0 

para  la Bases de Datos  y Visual  InterDev 1.0 para  crear  sitios dinámicos  con ASP. Esto, 

como se puede adivinar por  la versión del producto, se realizó en 1997. Microsoft Visual 

Studio 6.0 salió al siguiente año, en 1998. Con esto se movieron los números de versión de 

todos  los  Lenguajes  de  Programación  y  fue  la  última  versión  que  Visual  J++  y  Visual 

InterDev  aparecieron  en  una  paquetería  de Visual  Studio. Microsoft Visual  Studio  .NET 

2002  fue  un  salto  completamente  drástico,  ya  que  se  cambia  completamente  la 

estructura.  Ahora  con  .NET  los  programas  no  se  compilan  para  generar  un  ejecutable 

máquina  (un archivo  .EXE conocido comúnmente para el ambiente Microsoft Windows), 

sino  que  se  genera  un  archivo  intermedio  para  poder  ser  ejecutado  en  diferentes 

Page 61: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

61 

Plataformas  (al  decir  Plataforma  me  refiero  a  distintas  Arquitecturas  de  Software  y 

Hardware, como GNU/Linux, Solaris de Sun Microsystems o Mac OS X de Apple Inc.).  

A esta versión se le agregan nuevos lenguajes que son: Visual J# (sucesor del desaparecido 

Visual  J++),  Visual  C#,  .NET.Microsoft  Visual  Studio  2008,  es  un  entorno  de  desarrollo 

integrado  (IDE)  para  sistemas  operativos  Windows.  Soporta  varios  lenguajes  de 

programación  como  C  ++,  Visual  C#,  Visual  J#,  ASP.NET  .Visual  Studio  permite  a  los 

desarrolladores  crear  aplicaciones,  así  como  servicios  Web  en  cualquier  entorno  que 

soporte la plataforma .NET. Así como dispositivos móviles. 

 

4.1.2 Open CV   OpenCV  viene  de  las  siglas Open  Source  Computer  Vision  Library  [39],  es  una  librería 

abierta desarrollada por  Intel en el año de 1999, contiene cerca de 500  funciones. Esta 

librería  proporciona  un  alto  nivel  de  funciones  para  el  procesado  de  imágenes.  Estas 

librerías  permiten  a  los  programadores  crear  aplicaciones  poderosas.  Open  CV  ofrece 

varios tipos de datos de alto nivel  como juegos, arboles, gráficos, matrices, etc. Funciona  

en  muchas  plataformas.  Algunas  de  las  características  que  permite  Open  CV,  son 

operaciones básicas, procesamiento de imágenes y análisis. Análisis estructural, análisis de 

movimiento,  reconocimiento  del modelo,  reconstrucción  3D  y  calibración  de  la  cámara 

etc. 

 

Open  CV  implementa  una  gran  variedad  de  herramientas  para  la  interpretación  de  la 

imagen. Es compatible con la librería de procesamiento de imágenes de Intel (Intel Image 

Processing Library (IPL)) la cual implementa algunas operaciones en imágenes digitales. A 

pesar de primitivas como binarización, filtrado, estadísticas de la imagen, pirámides, Open 

CV  es  principalmente  una  librería  que  implementa  algoritmos  para  las  técnicas  de  la 

calibración  (Calibración de  la Cámara), detección de  rasgos, para  rastrear  (Flujo Óptico), 

análisis de la forma (Geometría, Contorno que Procesa), análisis del movimiento (Plantillas 

del  Movimiento,  Estimadores),  reconstrucción  3D  (Transformación  de  vistas), 

segmentación de objetos y reconocimiento (Histograma, etc.).  

Page 62: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

62 

 

El rasgo esencial de  la  librería  junto con funcionalidad y  la calidad es su desempeño. Los 

algoritmos están basados en estructuras de datos muy flexibles, acoplados con estructuras 

IPL;  más  de  la  mitad  de  las  funciones  ha  sido  optimizada  aprovechándose  de  la 

Arquitectura de Intel. 

 

4.1.3 Emgu.  Emgu  CV  es  una  plataforma  cruzada  .Net  ligada  a  la  librería  de  Intel  Open  CV  de 

procesamiento de  imágenes, permitiendo que  las  funciones de Open CV  sean  llamadas 

desde .NET, compatible con lenguajes como C#, VB, VC ++ etc. Emgu CV está escrito en C#, 

pude ser compilado en forma Mono (Monodevelop) por lo cual puede correr en cualquier 

plataforma que contenga la forma Mono, incluyendo Linux/Solaris y mac. 

Es necesario bajar todos los dlls que vienen incluidos en Emgu CV en la carpeta donde se 

ejecuta el código. Para que el código pueda correr sin ningún problema. 

 

4.2 Entrenamiento usando Haartraining.  

La librería de Open CV, provee programas o comandos los cuales son usados para entrenar 

clasificadores  llamado  HaarTraining  por  lo  tanto  es  posible  crear  clasificadores  propios 

haciendo uso de éstas. Estos comandos son: “createsamples.exe”, “haaartraining.exe” y 

“performance.exe”. Por otro  lado, OpenCV  viene  con unos  clasificadores  ya entrenados 

para detección facial frontal y otros objetos en uno archivos con extensión xml (apartado 

4.3.3). El objeto de  interés puede ser cualquier objeto como árbol, fruta, coche,   etc., no 

solamente  el  rostro.  Para  el  logro  de  este  clasificador  es  preciso  completar  los  pasos 

(Figura 4.1) que se describen a continuación.  

Page 63: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

63 

 Figura 4.1 Pasos para creación del clasificador 

 

4.2.1 Imágenes de muestra  

La  parte  más  importante  del  proceso  de  entrenamiento  del  clasificador  es  la  de 

recolección de una gran cantidad de muestras positivas y negativas, de forma que de ellas 

se puedan extraer las mejores reglas posibles que formen un detector de objetos potente. 

El  conjunto  de  imágenes  se  dividen  en  dos  grupos:  (1)  las muestras  positivas  son  en 

imágenes que contienen múltiples ejemplos de la clase objeto de interés y (2) la muestras 

negativas con una colección de  imágenes donde no se encuentren dichos objetos que se 

pretende detectar. En realidad cuatro muestras son necesarias: 

• Muestras positivas para el entrenamiento (generación del clasificador)  

• Muestras negativas para la prueba de clasificador  

• Muestras positivas para el entrenamiento 

• Muestras negativas para la prueba de clasificador 

 

4.2.2 Preparación de muestra   

Las muestras  positivas  necesarias  para  construir  el  clasificador  se  crean  con  la  utilidad 

Createsamples.  Tras  su  ejecución,  se  crea  un  archivo  de  extensión  vec  que  servirá  al 

clasificador para su entrenamiento. 

El Createsamples puede tomar como base para  la creación del archivo de entrenamiento 

una única  imagen del objeto o una  colección de  imágenes  con  las  coordenadas exactas 

Page 64: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

64 

donde  se encuentre el objeto en  cada una  (archivo  índice). El programa es  capaz de,  a 

partir de  rotaciones  aleatorias,  cambios en el  color,  así  como  colocación  sobre diversos 

fondos, generar un gran conjunto de muestras positivas que sirvan para el entrenamiento. 

Por ello es necesario  crear un  archivo de  índices  con  información  sobre el  conjunto de 

muestras. Este archivo de índices (de extensión txt o idx) tendrá la siguiente estructura: 

nombre_archivo1 número_muestras x11 y11 w11 h11 x12 y12... 

nombre_archivo2 número_muestras x21 y21 w21 h21 x22 y22... 

... 

siendo nombre_archivo el nombre de la imagen donde se encuentran los objetos a buscar. 

Debemos destacar que el nombre del archivo debe ir acompañado de su dirección dentro 

del  sistema  de  archivos.  número_muestras  el  número  de  objetos  positivos  que  se 

encuentran en la imagen.  

La  llamada  al  programa  para  crear  el  archivo  de  extensión  vec  tiene  los  siguientes 

argumentos: 

•  ‐vec: tras este flag se escribe el nombre del archivo vec que creará el Createsamples a 

partir de las muestras proporcionadas. 

•  ‐info: precederá  al nombre del  archivo  lista que  contendrá  todas  las  imágenes de  los 

objetos que constituyen las muestras positivas. 

•  ‐bg: nombre del archivo con  la  lista de  las  imágenes que servirán de  fondos  (muestras 

negativas). 

• ‐num: indica al Createsamples el número de muestras que contiene el archivo lista y que 

por tanto añadirá en el formato adecuado en el archivo vec. 

•  ‐w:  indica  el  ancho  deseado  para  las  muestras  creadas  en  la  ejecución  del 

Createsamples. Su valor por defecto es de 24 píxeles. 

• ‐h: indica el valor para el alto de las muestras. Su valor por defecto es 24 píxeles. 

 

Además de éstas, el programa también dispone de otras opciones cuyo objetivo es indicar 

los  ángulos  máximos  en  cada  dirección  para  realizar  las  rotaciones  o  para  hacer  la 

inversión de los colores de la muestra.  

Page 65: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

65 

4.2.3 Obtención del clasificador   

El comando para ejecutar el Haartraining tiene los siguientes argumentos: 

• ‐data: nombre del directorio donde se almacena el clasificador. 

• ‐vec: nombre del archivo de extensión vec creado con la utilidad Createsamples. 

• ‐bg: nombre del archivo índice de muestras negativas. 

•  ‐npos:  número  de muestras  positivas  usadas  en  el  entrenamiento  de  cada  etapa  del 

clasificador. Su valor por defecto es 2000. 

•  ‐nneg:  Aquí  se  introduce  el  número  de  muestras  negativas  que  se  le  solicita  al 

entrenamiento que encuentre  en  las  imágenes de  fondo del  tamaño especificado. Para 

cada etapa que construya, tendrá que encontrar este número basándose en las etapas de 

clasificación que ya ha construido, de forma que sean candidatos que  le sigan aportando 

información. Su valor por defecto también es 2000. 

• ‐nstages: número de etapas a construir. Por defecto es 14. 

•  ‐nsplits:  Hace  referencia  a  la  estructura  del  árbol  de  clasificación  ya  que  permite 

especificar el número de nodos. 

• ‐mem: Permite seleccionar la memoria de la que hará uso el programa para la ejecución. 

Cuanta más se asigne, ésta será más rápida. 

•  ‐sym;  ‐nonsym:  especifica  si  la  clase  del  objeto  bajo  entrenamiento  tiene  simetría 

vertical o no. La simetría vertical acelera el proceso de entrenamiento. 

•  ‐minhitrate: Mínima  tasa de detección que se desea alcanzar en cada etapa, siendo  la 

tasa del clasificador completo ese mismo valor elevado al número de etapas. El valor por 

defecto es 0.995. 

• ‐maxfalsealarm: Valor máximo para la falsa alarma de cada etapa. La total se obtiene de 

la misma forma que la tasa de detección. Su valor por defecto es de 0.5. 

•  ‐mode:  Permite  escoger,  para  las  características Haar,  si  se  desea  el  conjunto  básico 

(BASIC) o el conjunto extendido (ALL). La forma por defecto es la primera. 

• ‐w: Sirve para especificar el ancho de las muestras positivas proporcionadas. Su valor por 

defecto es 24 píxeles. 

Page 66: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

66 

• ‐h: Ídem que el anterior para el alto de las muestras. Su valor por defecto es también 24 

píxeles, y esto se corresponde con los valores por defecto del Createsamples. 

Esta  etapa  de  entrenamiento  no  crea  un  archivo  con  extensión  xml,  para  generarlo  se 

utiliza el código convert_cascade.c que se encuentra en OpenCV.  

4.2.4 Rendimiento del clasificador  

Una  vez  ejecutado  el  programa  Haartraining,  el  clasificador  puede  ser  probado  con  la 

utilidad Performance. Es conveniente realizar el test del clasificador con muestras distintas 

a las utilizadas durante el entrenamiento. 

El comando Performance tiene los siguientes argumentos: 

• ‐data: nombre del directorio donde se almacena el clasificador. 

•  ‐info: precederá  al nombre del  archivo  lista que  contendrá  todas  las  imágenes de  los 

objetos que constituyen las muestras positivas. 

• ‐maxSizeDiff y –maxPosDiff: determinan la coincidencia de detección de los rectángulos. 

Los valores por defecto son 1,5 y 0,3 respectivamente. 

• ‐sf: parámetro de detección. Por defecto vale 0,3. 

• ‐w y –h: tamaño de las muestras (en píxeles). Debe ser el mismo que el usado durante el 

entrenamiento con la utilidad Haartraining. 

La salida por pantalla será de la forma: File Name| Hits |Missed| False| 

donde  File  Name  indica  el  nombre  del  archivo  analizado,  Hits muestra  el  número  de 

objetos correctos encontrados en el archivo, Missed el número de objetos no encontrados, 

que el programa detecta que existen pero no  los encuentra  (falsos negativos) y False el 

número de falsas alarmas, que no existen pero el programa los detecta (falsos positivos). 

Tras su ejecución, el programa creará por cada  imagen  indicada en el archivo de  índices, 

otra con las siguientes características: 

•  Variará  el  nombre  del  archivo,  anteponiendo  el  código  det‐  al  que  tenía  la  imagen 

original. Es decir, si  inicialmente tenemos una  imagen de nombre salida.jpg, el programa 

creará otra con el nombre det‐salida.jpg. 

Page 67: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

67 

•Si  el  objeto  a  buscar  es  encontrado  correctamente,  la  nueva  imagen  contendrá  un 

rectángulo rojo alrededor del objeto; si devolvió un falso negativo, la imagen será igual a la 

original  y  si  devolvió  un  falso  positivo,  la  imagen  contendrá  un  rectángulo  rojo  situado 

donde el programa detectó el falso positivo. 

•  Las  nuevas  imágenes  se  guardarán  en  el mismo  directorio  donde  se  encuentran  las 

originales. 

 

  

4.3 Implementación  En este parágrafo  se explicara el diseño del  software desarrollado en esta  tesis. Ésta  se 

implementó en entorno Visual Studio 2008 con lenguaje C# y las librerías de Open CV bajo 

Emgu,  usando  el  detector  de  objetos  disponible  en  estas  librerías,  llamado 

DetectHaarCascade bajo Emgu o cvHaarDetectObjects bajo OpenCV. Asimismo se empleo 

las funciones de clasificación en cascada de la librería OpenCV. 

4.3.1 Requerimientos mínimos del sistema  

El sistema desarrollado se denomina Sistema de Detección Facial en Sistemas de Cómputo versión 1.0, para  su adecuado  funcionamiento  se enlistan  las características mínimas de hardware requerido: 

Sistema operativo:  Windows XP o superior. 

Procesador:    Pentium 4 (1.5 GHz.) o similar 

Memoria RAM:  512 MB. con Windows XP o 1 GB. con Windows Vista 

Cámara:    VGA (640 x 480) 

4.3.2 Software desarrollado  

Ejecutándolo,  la  primera  ventana  que  se muestra  es  la  pantalla  principal  del  proyecto 

(Figura 4.2). 

 

Page 68: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

68 

 

Figura 4.2 Pantalla principal del software 

 

Cuenta con un botón en la parte inferior derecha para continuar, la cual nos llevará a otra 

ventana (Figura 4.3) con las opciones Ventanas o Ayuda.  

 

 

Figura 4.3 Primera elección del software 

 

La  opción  Ventanas  (Figura  4.4)  permite  la  elección  de  los  tipos  de  imágenes  a  tratar: 

imágenes  fijas  (fotos)  o  imágenes  de  video mediante  cámara WEB  (Video)  así  como  el 

cierre de todas las ventanas abiertas en el procesamiento o salir del software.  

Page 69: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

69 

 

Figura 4.4 Selección de tipo de imágenes 

 

Si se selecciona  la opción foto, se podrá seleccionar varias opciones, como abrir  imagen, 

guardar imagen y cerrar. 

Cuando se selecciona  la opción abrir  imagen  (Figura 4.5) o guardar  imagen, se abre una 

ventana para escoger la ruta de la imagen a seleccionar o el nombre para guardar. 

 

 

 

Figura 4.5 Elección de la ruta de la imagen a tratar 

Page 70: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

70 

 Una vez seleccionada el nombre de  la  imagen, se  le da  la opción abrir. A esta  imagen se 

aplicará el algoritmo de detección de rostro. Como se ha mencionado el capítulo anterior, 

el  algoritmo  de Viola  y  Jones  se  emplea  en  imágenes  a  escala  de  gris. A  la  imagen  de 

entrada en color se les aplica la transformación (3.1) para extraer la luminancia   (Formula 

  4.1).

0.299 0.587 0.114      4.1)  

A esta imagen de luminancia o de escala de gris se le aplica la ecualización del histograma 

para resaltar el contraste en la imagen. El resultado de estas transformaciones (Figura 4.6) 

se presenta como imagen de la parte derecha. Una vez pasada a escala de grises se lleva  a 

cabo la detección de los rostros, el cual se coloca cuadros de color azul para enmarcar los 

rostros encontrados, como se puede apreciar en la parte izquierda de la Figura 4.6.  

 

 Figura 4.6 Resultado del algoritmo de detección de rostro 

 Se puede guardar la imagen o cerrar, para poder hacer otra detección ya sea por imagen o 

video según se requiera. 

Page 71: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

71 

Si se selecciona la opción de video, cuenta con varias acciones (Figura 4.7) como inicio de 

video o detener el video. Cuando  se  selecciona  la opción de  iniciar, el video  se activa y 

comienza a detectar los rostros que se encuentren dentro del video. De la misma manera 

que lo hizo con la imagen. 

 

  

Figura 4.7 Opción de video: iniciar, detener y cerrar 

El módulo que se implemento es capaz de detectar y localizar más que un rostro en una 

trama de vídeo a partir de un archivo de video o directamente de una cámara web. 

El procesamiento es tan rápido que se puede seguir los movimientos de rostros dentro de 

la zona de observación.  

 

4.3.3 Función de detección de objetos de OpenCV.  

La  Tabla  4.1  muestra  la  función  principal  de  detección  de  objetos  de  OpenCV: 

cvHaarDetectObjects  . Esta  función, que  se aplicó en este  trabajo, depende de algunos 

parámetros: image, cascade, storage, storagescale_factor, min_neighbors, flags, min_size. 

 

Page 72: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

72 

 

Tabla 4.1 Función de detección de objetos de OpenCV 

CvSeq* cvHaarDetectObjects( 

const CvArr* image, 

CvHaarClassifierCascade* cascade, 

CvMemStorage* storage, 

double scale_factor = 1.1, 

int min_neighbors = 3, 

int flags = 0, 

CvSize min_size = cvSize(0,0) 

); 

 

Image es la imagen a escala de grises, 

cascade  es  el  clasificador  de  cascada  resultado  del  entrenamiento  (ver  el  parágrafo 

siguiente),  

Storage sirve para la memoria de almacenamiento para guardar los resultados 

scale_factor: es un factor de escala. La función cvHaar Detect Objects() escanea la imagen 

de entrada para rostros de cualquier escala, habilitando el factor de escala determina que 

tan grande será el brinco entre cada escala si se le pone a un mayor valor significará que el 

tiempo de computación será más rápido. 

min_neighbors es un  factor que sirve para prevenir  falsas detecciones, si se  le coloca el 

valor  (3)  este  indicará  que  solamente  se  decidirá  si  el  rostro  está  presente  después  de 

haber hecho al menos tres detecciones.  

flags es un parámetro que puede  tomar a  cuatro  factores válidos  los  cuales pueden  ser 

combinados con un operador booleano OR:  

1‐ cv_haar_do_canny_pruning,  causa  que  cuando  las  regiones  sean  planas  (por 

ejemplo un fondo homogéneo) se evita procesarlas.  

Page 73: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

73 

2‐ cv_haar_scale_image, el cual le dice al algoritmo que escale la imagen en el lugar 

de escalar el detector.  

3‐ cv_haar_find_biggest_object  , permite regresar nada mas el objeto más grande 

encontrado (por lo tanto el numero de objetos regresados será uno o ninguno). 

4‐ cv_haar_do_rough_search  el  cual  es  usado  solamente  con 

cv_harr_find_biggest_object, utilizada para  terminar  la búsqueda de objeto en 

cuando el primer candidato sea encontrado (con suficientes vecinos para que sea 

un acierto).  

min_size es el  tamaño de  la  ventana más pequeña en el  cual  se hace  la búsqueda del 

rostro,  colocando  este  a  un mayor  valor  reducirá  el  proceso  de  computación  evitando 

encontrar rostros pequeñas. Como se puede apreciar en  la Figura 4.8, en  la cual algunas 

rostros no son detectadas y también hay falsos positivos (la camisa, no es rostro). 

 

 

Figura 4.8 Detección de rostros [39] 

 

4‐3.4 Funciones de clasificación en cascada  Los resultados del entrenamiento se encuentran catalogados en un archivo tipo xml. Este 

archivo describe el árbol de funciones de clasificaciones que se utilizó. Varios archivos se 

encuentran en la librería OpenCV desarrollada por Lienhart [39] Entre ellos se puede citar 

los que sirven para la detección de rostro: 

Page 74: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

74 

haarcascade_profileface.xml 

haarcascade_frontalface_default.xml,  

haarcascade_frontalface_alt_tree.xml 

haarcascade_frontalface_alt2.xml,  

haarcascade_frontalface_alt.xml 

 

Como ejemplo se presentará el caso del último archivo haarcascade_frontalface_alt.xml. 

Está formado por 22 fases ordenadas del las más simples hacia las más complejas, aquí la 

complejidad es una función de número de función de clasificación: por ejemplo, la fase 0 

se compone de 3  funciones de clasificación  sin embargo  la última  fase 21 contiene 213 

funciones. Este árbol sólo se utiliza en nuestro módulo para validar el trabajo efectuado, la 

elaboración de un árbol de  funciones de clasificación es necesaria cuando se requiere  la 

comercialización  del  producto.  La  tabla  4.2  describe  la  estructura  del  árbol  de  las 

funciones de clasificación como esta en el archivo de extensión xml. 

Tabla 4.2 Estructura del árbol 

Cascada: 

Fase1 

Clasificador 11 

Descriptor 11 

Clasificador 12 

Descriptor 12 

… 

Fase 2  

Clasificador 21 

Descriptor 21 

… 

… 

 

Cada fase es definida por un conjunto de función de clasificación y un umbral (Tabla 4.3).  

Page 75: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

75 

 

Tabla 4.3 Estructura de una fase 

Fasei 

Clasificador i1 

Descriptor i1 

Clasificador i22 

Descriptor i2 

… 

… 

Umbral 

 

Una función de clasificación (Tabla 4.4) incluye un descriptor de Haar, un umbral y dos 

valores predefinidos por la función de clasificación. La salida toma una de estos valores 

según que el resultado del descriptor sea superior o inferior al umbral de la función de 

clasificación.  

Tabla 4.4 La estructura de la función de clasificación 

Clasificador i1 

Descriptor i1 

rectángulo 1 

rectángulo 2 

rectángulo 3 

umbral 

valor izquierda 

valor derecha 

 

El número total de funciones de clasificación utilizadas por el árbol es 2137. La tabla 4.5  

describe la distribución de estas funciones de clasificación en cada fase. 

Se puede observar que se utilizan solamente 1/4 de los descriptores en las 13 primeras 

fases. 

Page 76: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

76 

 

Tabla 4.5 Las fases y sus funciones del archivo haarcascade_frontalface_alt.xml 

fase  Numero de función 

de clasificación  

fase  Numero de función 

de clasificación 

0  3  11  103 

1  16  12  111 

2  21  13  102 

3  39  14  135 

4  33  15  137 

5  44  16  140 

6  50  17  160 

7  51  18  177 

8  56  19  182 

9  71  20  212 

10  80  21  214 

 

4.3.5 Detección combinada: rostro‐ojo  

Como  la mayoría de  la  funciones de OpenCV  son optimizadas para  tener  respuestas en 

tiempo real, un manera de tratar de mejorar el sistema de detección de rostro es el uso de 

detección del ojo. En  la primera etapa, el ojo será un objeto de estudio de  igual manera 

que el  rostro  con  su entrenamiento generando un archivo  tipo  xml. Existe dentro de  la 

librería  de  OpenCV  el  archivo  de  Haarcascades  para  la  detección  de  ojo  lo  cual  es 

haarcascade_eye.xml. 

La afirmación o la negación de la presencia de un rostro está condicionada a la presencia 

de un ojo en la zona  rostro.  

 

   

Page 77: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

77 

Capítulo 5  

Experimentación y resultados  

En  este  capítulo  se  expone  los  resultados  obtenidos  de  los  experimentos  donde  se 

emplearon tres clasificadores de detección de rostro basados en: un clasificador de rostro 

combinado con ojo y  dos  clasificadores de rostro  mediante clasificadores entrenados que 

se encuentran en OpenCV. 

El objetivo  tras  la  realización de estos experimentos no es  investigar el  rendimiento del 

método  de  Viola  y  Jones,  así  como  la  comparación  de  los  diferentes  clasificadores  de 

OpenCV. El propósito esencial es encontrar las respuestas a las siguientes preguntas que se 

pueden lograr solamente con tres clasificadores: 

¿La combinación rostro – ojo mejoraría la detección? 

¿La  detección  de  rostro  con  dos  diferentes  clasificadores  responde  de  la misma 

manera?  

¿La etapa del entrenamiento tiene importancia en la detección? 

 

5.1 Experimentación 

Los  tres  clasificadores  propuestos  para  la  experimentación  tienen  las  características 

siguientes:    

‐Detección rostro‐ojo empleado con  los archivos haarcascade_frontalface_alt.xml   y 

haarcascade_eye.xml. 

‐Detección de rostro empleando el archivo haarcascade_frontalface_alt.xml. 

‐Detección de rostro empleando el archivo haarcascade_frontalface_alt_tree.xml  

 

Se  utilizo  la  función  de  detección  de  rostro  bajo  Emgu  DetectHaarCascade  que corresponde  a  cvHaarDetectObjects  de  OpenCV.  Esta  función  tiene  los  siguientes parámetros:  DetectHaarCascade(face,  1.1,  1,  HAAR_DETECTION_TYPE.DO_CANNY_PRUNING,  new Size(20, 20));  

Page 78: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

78 

La  explicación  de  la  tarea  de  cada  parámetros  fue  explicada  en  el  apartado  4.3.3  de capitulo 4.   

scale_factor = 1.1  

min_neighbors = 1 no se toma en cuenta la detección múltiple del mismo objeto 

flags =  cv_haar_do_canny_pruning,  indica que  cuando  las  regiones  son homogéneas,  se 

evita procesarlas.  

min_size=  Size(20,  20)  es  el  tamaño  de  la  ventana más  pequeña  en  el  cual  se  hace  la 

búsqueda del rostro 

 

Se tomaron 33 imágenes con diversas particularidades fueron elegidas para poder aplicar 

estos clasificadores (Figuras 5.1 y 5.2). Estas particularidades son: 

- Imágenes sencillas de rostro o rostros (por ejemplo fotos 9 y 25). 

- Imágenes complejas: presencia de muchos objetos con alto contraste en el fondo 

detrás de los rostros (fotos 3, 29,…)  

- Imágenes  con  resolución  diferente  y  tamaño  de  imágenes  variado  (imágenes 

cuadradas, rectangulares, resolución alta, baja etc.)  

- Imágenes con rostros en diferentes escalas (fotos 1, 28, 30, 31,…) 

- Imagen sin rostro (foto 24) 

A cada imagen se le aplicó los tres clasificadores lo que llevó a 99 el número total de

experimentos.

5.2 Resultados  

Los resultados de estos tres  clasificadores se muestran en las Figuras 5.1 y 5.2.  

Se puede subrayar las siguientes observaciones:  

‐ Detección de todos  los rostros con  los tres clasificadores en  las fotos: 4, 6, 8, 9, 11, 12, 

16, 23, 25 y 30. 

‐ Detección de todos los rostros y además unos falsos positivos en los fotos 2, 14, 15 y 19. 

‐ No se detectó nada en la imagen sin rostro. 

Page 79: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

79 

‐ Se detectan rostros frontales o casi frontales, rostros de lado no se detectaron como en 

las fotos 1, 21 y 28. 

‐  El  clasificador  rostro–ojo  y  el  clasificador  rostro,  los  juntos  con  el  mismo 

haarcascade_frontalface_alt.xml,  dieron  resultados  diferentes.  El  primero  mejoro  la 

detección eliminando los falsos positivos en las fotos  2, 15 y 19. Al contrario, el hecho de 

no poder detectar los ojos, no se detectaron los rostros en las fotos 1, 3, 27 y 28. 

‐  Comparando  las  dos  clasificadores  de  rostros  (haarcascade_frontalface_alt.xml  y 

haarcascade_frontalface_alt_tree.xml) se nota  las diferencias en fotos 1, 2, 7, 14, 15, 17, 

20, 22, 29, 32 y 28.  

‐  Se  identificaron  unos  falsos  negativos  que    son  aquellos  objetos  que  deberían  ser 

detectados pero no se detectan en fotos 3, 10 y 7. 

En algunos casos se observan rostros detectados con doble cuadros (fotos 16, 25,31). Este 

caso resulta del parámetro min_neighbors propuesto al valor 1. Un solo rostro se puede 

detectar  varias  veces  en  ubicaciones  cercanas  o  en  diversas  escalas.  Las  falsas  alarmas 

pueden  también ocurrir pero generalmente con menos consistencia que  las detecciones 

múltiples. El número de detecciones múltiples  (min_neighbors) en una vecindad de una 

ubicación se puede utilizar como indicador de la existencia de un rostro en esa ubicación. 

Se confirma una detección si el número de detecciones múltiples es mayor que un valor 

dado. Esto  se practica en  la mayoría de  los  sistemas de detección de  la  cara  [5,32].  Las 

detecciones múltiples se combinan en un solo rostro y se eliminan las falsas alarmas. 

 

5.3 Conclusión  

De estos resultados se puede concluir lo siguiente: 

• Los resultados con los dos archivos haarcascade_frontalface_alt.xml y 

haarcascade_frontalface_alt_tree.xml dieron resultados diferentes. Por lo tanto la 

detección de rostro depende de la fase de entrenamiento. 

• el clasificador combinado rostro‐ojo no siempre mejora  la detección, al contrario, 

en algunos  casos le empeora cuando no puede detectar el ojo. 

Page 80: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

80 

• la  presencia  de  falsos  negativos  está  relacionado  con  diversos  factores,  como  la 

resolución de la imagen, el tamaño del objeto en le etapa del entrenamiento. 

• Algunos rostros de lado o de perfil, rostro con gorra no se detectaron por la razón 

que  las   muestras usadas en el entrenamiento que generaron estos dos archivos 

son muestras de rostros frontales sin gorras.  

  

foto  Clasificación cara con ojo 

frontalface_alt.xml 

Clasificación cara 

frontalface_alt.xml 

Clasificación cara 

frontalface_alt_tree.xml 

 

 

   

 

 

   

 

 

   

Page 81: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

81 

 

 

 

 

 

 

   

     

 

Page 82: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

82 

10 

 

 

11 

   

 

 

12 

     

 

14 

     

 

15 

   

 

 

Page 83: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

83 

16 

   

 

 

17 

 

   

18 

     

 

19 

     

 

20 

     

 

Page 84: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

84 

21 

 

22 

     

 

23 

     

 

24 

   

 

 

Page 85: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

85 

25 

     

 

26 

 

29 

 

32 

 

 

Figura 5.1 Diferentes pruebas con 3 clasificadores 

 

Foto 1(a) 

 

 

Page 86: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

86 

Foto 1(b) 

 

 

Foto 1(c) 

 

 

Foto 3(a) 

 

 

Foto 3(b) 

 

 

Page 87: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

87 

Foto 3(c) 

 

 

Foto 27(a) 

 

 

Foto 27(b) 

 

 

Page 88: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

88 

Foto 27(c) 

 

 

Foto 28(a) 

 

 

Foto 28(b) 

 

Page 89: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

89 

Foto 28(c) 

 

 

Foto 30 (a) 

 

 

Foto 30(b) 

 

Foto 30(c) 

 

 

Page 90: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

90 

Foto 31(a) 

 

 

Foto 31(b) 

 

 

Foto 31(c) 

 

 

Foto 33(a) 

 

Foto 33(b) 

Page 91: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

91 

 

Foto 33(c) 

 

 

Figura 5.2 Diferentes pruebas con 3 clasificadores: (a) Clasificación rostro con ojo frontalface_alt.xml, (b) Clasificación carafrontal_alt.xml,(c) Clasificación cara 

frontalface_alt‐tree.xml 

   

Page 92: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

92 

Capítulo 6 

Conclusiones y trabajo a futuro  

 

En este capítulo se presentan  las conclusiones a  las cuales se ha  llegado, en el desarrollo 

de este proyecto, así como  los  resultados obtenidos a  través de esta. De  igual  forma  se 

plantean algunos trabajos a futuro que pueden ser basados en esta investigación. 

 

6.1 Conclusiones  

La detección de rostro es una necesidad en la actualidad para varias aplicaciones como la 

de video  conferencia,  indexación y  sobre  todo de video vigilancia. Su  importancia  crece 

con la consideración que es la primera etapa en un sistema de reconocimiento de rostro. 

La  gran  apariencia  del  objeto  rostro,  hace  que  su  detección  sea  considerada  una  tarea 

difícil para el reconocimiento de patrones.  

Se logro objetivo principal establecido en el principio de esta tesis era el desarrollo de un 

sistema de detección  facial. Encontrar una metodología eficaz entre  las que existen para 

implementarla fue alcanzado mediante una búsqueda del estado del arte elaborado en el 

segundo  capítulo  de  este  trabajo.  Muchos  de  los  métodos  de  detección  de  rostro 

comparten  las mismas técnicas y algoritmos de reconocimiento de patrones y análisis de 

imágenes a pesar que estos últimos apuntan aplicaciones distintas. Uno de los métodos de 

detección de rostros en tiempo real es el método de Viola y Jones. La descripción de este 

algoritmo se detalló el tercer capítulo. 

El método de Viola y Jones es un método supervisado de detección de rostro en tiempo 

real. Su característica principal se puede resumir de  la siguiente: un entrenamiento  lento 

con  una  detección muy  rápida.  Las  ideas  claves  de  este método  se  resumen  en  tres 

puntos: (1) Explotar la imagen integral para tener una evolución rápida de los descriptores 

de  Haar.  (2)  Utilizar  la  técnica  de  “boosting”  para  la  selección  de  descriptores:  es  un 

método de clasificación que combina varios clasificadores  simples para  formar un único 

Page 93: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

93 

clasificador más potente.  (3) emplear un clasificador en cascada para un  rápido  rechazo 

del objeto no‐rostro. 

Este método de clasificación supervisado se requiere de una etapa de entrenamiento que 

genera  el  clasificador.  Varias  funciones  que  contiene  la  biblioteca OpenCV  permiten  la 

implementación de este método de una manera optimizada para lograr una aplicación en 

tiempo real.  

El diseño y  la  implementación de  la aplicación mediante  los elementos computacionales, 

la  etapa  del  entrenamiento,  los  parámetros  de  la  función  detección  de  rostro,  los 

clasificadores de OpenCV así como una detección combinada rostro‐ojo son explicados en 

el capítulo 4. 

El software desarrollado en esta tesis, implementado en el entorno Visual Studio 2008 con 

lenguaje C# bajo  Emgu  y nombrado  “Detección  facial en  sistemas de  cómputo”  admite 

imágenes de video mediante cámara web así como imágenes fijas. 

Los resultados obtenidos de  la aplicación de este método de Viola y  Jones en diferentes 

imágenes usando diferentes clasificadores entrenados de OpenCV son presentados en el 

capítulo 5. 

Esta visión de  los componentes principales de cada capítulo refleja el cumplimientos con 

los  4  objetivos  particulares  de  esta  tesis  lo  cuales  son  (1)  Estudio  bibliográfico,  (2) 

encontrar  un  algoritmo  eficaz  para  la  detección  facial,  (3)  su  implementación  y  (4)  la 

creación de un  sistema que  se usara en otras  aplicaciones. Al mismo  tiempo  refleja  las 

principales actividades realizadas en el desarrollo de este trabajo.  

Los resultados de la aplicación desarrolladla en esta tesis muestra que el método de Viola 

y  Jones  es  un método  de  clasificación muy  eficiente.  A  pesar  que  los  resultados  son 

ampliamente relacionados con  la etapa del entrenamiento,  los parámetros de  la  función 

de detección de objetos de OpenCV influyen ligeramente  en los resultados. 

Su aplicación no es limitada a la detección de rostro, se puede aplicarlo a cualquier tipo de 

objeto. 

Combinar  la detección de rostro con  la detección del ojo para mejorar  la clasificación no 

resulta siempre eficaz. Al contrario puede empeorar los resultados además de aumentar el 

Page 94: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

94 

tiempo  de  computación  y  perder  uno  de  los  puntos  claves  de  esta  técnica  que  es  su 

respuesta en tiempo real. 

Las aportaciones de este trabajo son: 

1‐ Identificar  un método de detección de rostro en tiempo real   

2‐  Realizar una descripción detallada de sus etapas. 

3‐  Implementar  este  método  usando  la  biblioteca  OpenCV  la  cual  se  encuentra 

optimizada para respuestas en tiempo real.  

4‐ Diseñar aplicaciones para imágenes fijas o de video para cualquier tipo de cámara 

web. 

5‐ Establecer  las  bases  de  investigación  formal  para  próximos  proyectos  en 

reconocimiento de rostros. 

 

6.2 Trabajo a futuro   

Los  trabajos  futuros  citados  a  continuación  se  presentan  con  dos  objetivos: mejorar  el 

presente trabajo o apoyarse en él para lograr otros objetivos. 

- Generar  un  clasificador  con  un  entrenamiento  usando  un  gran  número  de 

imágenes muestra. 

- Mejora la detección con nuevos descriptores 

- Implementar un sistema completo de reconocimiento de rostros 

- Aplicar  el  método  de  Viola  y  Jones  a  otro  campos  como  en  proyectos  Geo 

espaciales (reconocimiento de objetos en mapa temáticas, detección de barcos en 

imágenes satelitales de alta resolución, etc.) 

- Detección y seguimiento de objetos en video (autos, personas, etc.). 

- Detección de movimientos para proyecto de seguridad 

- Implementar un sistema de reconocimiento facial como herramienta de seguridad 

en un dispositivo móvil. 

   

Page 95: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

95 

Referencias  

[1] H. Ekenel and B.Sankur, “Feature selection in the independent component subspace for face recognition”, Pattern Recognition Letters, vol. 25, no. 12, pp. 1377‐1388, 2004. 

[2] T. Kanade, “Picture Processing by Computer Complex and Recognition of Human Faces”, Ph.D. thesis, Kyoto University, 1973. 

[3] F. Abate, M. Nappi, D. Riccio and G. Sabatino, “2D and 3D face recognition: A survey”, Pattern Recognition Letters, vol.28 , pp 1885–1906, 2007. 

[4] M.‐H.  Yang,  D.  Kriegman  and  N.  Ahuja,  “Detecting  Faces  in  Images:  A  Survey,  IEEE Transactions on Pattern Analysis and Machine Intelligence, vol 24, no. 1, pp 34‐58, 2002. 

[5] S. Z. Li A. K. Jain, Handbook of Face Recognition, springer,2005. 

[6] D. de Ridder, O. Kouropteva, and O. Okun,  “Supervised  locally  linear embedding”,  in Proc. Joint Int. Conf. ICANN/ICONIP, vol. 2714, pp. 333‐341, 2003. 

[7] D.  J. Beymer, “Face recognition under varying pose”,  in Proc.  IEEE Conf. on Computer  Vision and Pattern Recognition, pp. 756‐761, 1994. 

[8] R. Brunelli and T. Poggio, “Face recognition: Features versus templates”, IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 15, no. 10, pp. 1042‐1052, 1993. 

[9] A.  Samal and P. A.  Iyengar,  “Automatic  recognition and analysis of human  faces and facial expressions: A survey”, Pattern Recognition, vol. 25, no. 1, pp. 65‐77, 1992. 

[10] G. P. Martinsanz y G. de la Cruz, Visión por computadora, segunda edición Alfaomega, 2008. 

[11]  D.  Valentin,  H.  Abdi,  A.  O’Toole  and  G.  Cottrell,  “Connectionist  models  of  face processing: a survey”, Pattern Recogn., vol. 27, pp. 1208–1230, 1994. 

[12]  M.  Turk  and  A.  Pentland,  “Eigenfaces  for  Recognition”,  Journal  of  Cognitive Neurosicence, Vol. 3, No. 1, pp. 71‐86, 1991. 

[13] H. Moon and P.J. Phillips, “Computational and Performance aspects of PCA‐based Face Recognition Algorithms”, Perception, Vol. 30, pp. 303‐321, 2001. 

[14] M.S.  Bartlett,  J.R. Movellan  and  T.J.  Sejnowski,  “Face  Recognition  by  Independent Component  Analysis”,  IEEE  Trans.  on  Neural  Networks,  Vol.  13,  No.  6,  pp.  1450‐1464, November 2002. 

Page 96: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

96 

[15]  C.  Liu  and  H.  Wechsler,  “Comparative  Assessment  of  Independent  Component Analysis  (ICA)  for Face Recognition”,  in Proc. of  the Second  International Conference on Audio‐ and Video‐based Biometric Person Authentication, pp. 211‐216, March 1999. 

[16] K. Etemad and R. Chellappa,  “Discriminant Analysis  for Recognition of Human Face Images”, Journal of the Optical Society of America A, Vol. 14, No. 8, pp. 1724‐1733, August 1997. 

[17]  W.  Zhao,  R.  Chellappa  and  A.  Krishnaswamy,  “Discriminant  Analysis  of  Principal Components  for Face Recognition”,  in Proc. of  the 3rd  IEEE  International Conference on Face and Gesture Recognition, FG'98, Nara, Japan, pp. 336‐341, April 1998. 

[18] L. Wiskott, J.‐M. Fellous, N. Krueuger and C. Von Der Malsburg, “Face Recognition by Elastic  Bunch  Graph  Matching”,  Chapter  11  in  Intelligent  Biometric  Techniques  in Fingerprint and Face Recognition, eds. L.C. Jain et al., CRC Press, pp. 355‐396, 1999. 

[19] L. Wiskott, J.‐M. Fellous, N. Krueuger and C. Von Der Malsburg, “Face Recognition by Elastic Bunch Graph Matching”, IEEE Trans. On Pattern Analysis and Machine Intelligence, Vol. 19, No. 7, pp. 776‐779, 1997. 

[20]  A.  Kadyrov  and  M.  Petrou,  “The  Trace  Transform  and  Its  Applications”,  IEEE Transactions  on Pattern Analysis and Machine  Intelligence, Vol.  23, No.  8, pp.  811‐828, August 2001. 

[21] S. Srisuk, M. Petrou, W. Kurutach and A. Kadyrov, “Face Authentication using the Trace Transform”,  in Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'03), Madison, pp. 305‐312, June 2003. 

[22] T. F. Cootes, K. Walker and C.  J. Taylor, “View‐Based Active Appearance Models”,  in Proc.  of  the  IEEE  International  Conference  on Automatic  Face  and Gesture  Recognition, Grenoble, France, pp. 227‐232, March 2000. 

[23] V. Blanz and T. Vetter,  “Face Recognition Based on Fitting a 3D Morphable Model”, IEEE Transactions on Pattern Analysis and Machine  Intelligence, Vol. 25, No. 9, pp. 1063‐1074, September 2003. 

[24] B. Moghaddam, J. H. Lee, H. Pfister and R. Machiraju, “Model‐Based 3D Face Capture with Shape‐from‐Silhouettes”, in Proc. of the IEEE International Workshop on Analysis and Modeling of Faces and Gestures, AMFG , Nice, pp. 20‐27, October 2003. 

[25] A. Bronstein, M. Bronstein, R. Kimmel and A. Spira, “3D face recognition without facial surface reconstruction”, in Proceedings of ECCV, Prague, Czech Republic, May 2004. 

[26]  B.  Moghaddam,  C.  Nastar  and  A.  Pentland,  “A  Bayesian  Similarity  Measure  for Deformable  Image Matching”,  Image and Vision Computing, vol. 19, no. 5, pp. 235‐244, May 2001. 

Page 97: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

97 

[27] C. Liu and H. Wechsler, “A Unified Bayesian Framework for Face Recognition”, in Proc. of the 1998 IEEE International Conference on Image Processing, Chicago, Illinois, USA, pp. 151‐155, October 1998. 

[28] V.N. Vapnik, Statistical Learning Theory, John Wiley & Sons, Inc, 1998. 

[29] P. Shih and C. Liu, “Face detection using discriminating  feature analysis and Support Vector Machine”, Pattern Recognition, vol. 39, no. 2, pp. 260‐276, February 2006. 

[30] B. Heisele, T. Serre, S. Prentice and T. Poggio, “Hierarchical classification and feature reduction for fast face detection with support vector machines”, Pattern Recognition, vol. 36, no. 9, pp. 2007–2017, 2003. 

[31]  P.  Brimblecombe  and  H.  Meng.  (2008).  Sciences  Face  Detection  using  Neural Networks,  Electronic  Engineering.  Available:  http://en.scientificcommons.org/ electronic_engineering 

[32]  H.  Rowley,  S.  Baluja  and  T.  Kanade,  Neural  network‐based  face  detection,  IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 20, no. 1, pp. 23–38, 1998. 

[33] R. Schapire, “Strength of weak  learnability”, Journal of Machine Learning, vol. 5, pp. 197–227, 1990. 

[34] Y. Freund, “Boosting a weak  learning algorithm by majority”, In Annual Workshop on Computational Learning Theory, pp. 202 – 216, 1990. 

[35] Y. Freund, and R. E. Schapire, “A decision‐theoretic generalization of on‐line  learning and an application to boosting”, Journal of Computer and System Sciences, vol. 55, pp. 119 – 139, 1997. 

[36]  P.  Viola  and M.  Jones,  "Rapid  object  detection  using  boosted  cascade  of  simple features,"  in  Proceedings  IEEE  Computer  Society  Conference  on  Computer  Vision  and Pattern Recognition, vol. 1, pp. 511‐ 518, Kauai, Hawaii 2001, 

[37] P. Viola and M. Jones., “Robust real time object detection”, In IEEE ICCV Workshop on Statistical and Computational Theories of Vision, Vancouver, 2001. 

[38] P. Viola  and M.  Jones,  “Robust Real‐Time  Face Detection”.  International  Journal  of Computer Vision, vol.57, no. 2, pp. 137‐154, 2004. 

[39] G. R. Bradski, A. Kaehler, Learning OpenCV Computer Vision with the OpenCV Library, O’REILLY., September 2008. 

[40]  J.  Canny,  “A  Computational  Approach  to  Edge  Detection”,  IEEE  Trans.  on  Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679‐698, 1986. 

Page 98: Diseo e implementacin de un herramienta de deteccin facial

Diseño e implementación de un herramienta de detección facial  

98 

[41] C.Papageorgiou, M. Oren and T. Poggio, "a general framework for object detection", in International Conference on Computer Vision, 1998. 

[42]  R.  Lienhart  and  J. Maydt,  "An  extended  set  of  haar‐like  features  for  rapid  object detection," in IEEE ICIP, vol. 1, pp. 900‐903, 2002. 

[43] F. C. Crow, “Summed‐area tables  for textures mapping”, computer Graphics, vol. 18, no. 3, july 1984.