Está en la página 1de 99

 

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 PARA OBTENER EL GRADO DE MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO   

PRESENTA: 

LIC. 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. 
Diseño e implementación de un herramienta de detección facial 
 

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

CIDETEC   3 
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.  
 
   

CIDETEC   4 
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.  
 
 
   

CIDETEC   5 
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 
   

CIDETEC   6 
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. 

CIDETEC   7 
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. 
   

CIDETEC   8 
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 

CIDETEC   9 
Diseño e implementación de un herramienta de detección facial 
 
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 ................................................................... 53 
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 

CIDETEC   10 
Diseño e implementación de un herramienta de detección facial 
 
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 ................................................................................... 78 
Experimentación y resultados .................................................... 78 
5.1 Experimentación ..................................................................................................................... 78 
5.2 Resultados ............................................................................................................................... 79 
5.3 Conclusión ............................................................................................................................... 80 

Capítulo 6 ................................................................................... 93 
Conclusiones y trabajo a futuro .................................................. 93 
6.1 Conclusiones ............................................................................................................................ 93 
6.2 Trabajo a futuro....................................................................................................................... 95 
Referencias .................................................................................................................................... 96 

   

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

Í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 

CIDETEC   12 
Diseño e implementación de un herramienta de detección facial 
 
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 ................................................................................... 86 
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 ................................ 92 

 
   

CIDETEC   13 
Diseño e implementación de un herramienta de detección facial 
 
Í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 
 
   

CIDETEC   14 
Diseño e implementación de un herramienta de detección facial 
 
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 
información estructurada entre diferentes plataformas. 
   

CIDETEC   15 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   16 
Diseño e implementación de un herramienta de detección facial 
 
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  0.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 

CIDETEC   17 
Diseño e implementación de un herramienta de detección facial 
 
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.  
 
   
 
     
    Esther 
Detección    Verificación  

 
Figura 0.2 Etapas de un sistema de reconocimiento facial 

   

CIDETEC   18 
Diseño e implementación de un herramienta de detección facial 
 
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. 
 
 
 
 

CIDETEC   19 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   20 
Diseño e implementación de un herramienta de detección facial 
 
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.   
 
   

CIDETEC   21 
Diseño e implementación de un herramienta de detección facial 
 
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. 
 
 
 

CIDETEC   22 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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 0.2 Rostros con diferentes  poses 
 

CIDETEC   23 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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 0.4 Rostros con diferente expresión 
 
 
   

CIDETEC   24 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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 0.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 

CIDETEC   25 
Diseño e implementación de un herramienta de detección facial 
 
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 0.7 Ejemplo simple de reconocimiento de patrones; en la izquierda conjunto de 
patrones, en la derecha patrones clasificados en dos clases. 

 
 
 
   

CIDETEC   26 
Diseño e implementación de un herramienta de detección facial 
 
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.  

CIDETEC   27 
Diseño e implementación de un herramienta de detección facial 
 
 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. 
 
 
 

CIDETEC   28 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   29 
Diseño e implementación de un herramienta de detección facial 
 
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]. 

CIDETEC   30 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   31 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   32 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   33 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   34 
Diseño e implementación de un herramienta de detección facial 
 
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.  

CIDETEC   35 
Diseño e implementación de un herramienta de detección facial 
 
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. 

   

CIDETEC   36 
Diseño e implementación de un herramienta de detección facial 
 
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, 

CIDETEC   37 
Diseño e implementación de un herramienta de detección facial 
 
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. 

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

Figura 0.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 

CIDETEC   39 
Diseño e implementación de un herramienta de detección facial 
 
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 modelo RGB se lleva a cabo mediante la operación (Fig. 3.2): 

0.299 0.587 0.114


        0.147 0.289 0.436  
0.615 0.515 0.100

Figura 0.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.  

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

Figura 0.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 0.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 OpneCV emplea la ecualización uniforme según la expresión: 

CIDETEC   41 
Diseño e implementación de un herramienta de detección facial 
 
           ∑          (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 0.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 

CIDETEC   42 
Diseño e implementación de un herramienta de detección facial 
 
derivada, característica que es usada para detectar un borde. El detector de Canny (Figura 
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 0.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. 

CIDETEC   43 
Diseño e implementación de un herramienta de detección facial 
 
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. 

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

Figura 0.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). 

CIDETEC   45 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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 0.9 Los tres tipos de descriptores de Haar  

CIDETEC   46 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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). 

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

Figura 0.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. 

      ,  ∑ , ,          (3.2) 

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

      , , 1   ,          (3.3) 

      , 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  0.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 

CIDETEC   48 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   49 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   50 
Diseño e implementación de un herramienta de detección facial 
 
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 de las negativas. 
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     
         , , ,         (3.5) 
0                
 
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]. 
 
 
 
 
 
 
 

CIDETEC   51 
Diseño e implementación de un herramienta de detección facial 
 
Tabla 0.1 El algoritmo de Adaboost 

‐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) Actualiza los pesos:   , ,   

Donde  0 si la muestra   es clasificada correctamente, o  0 en otro caso, 


con    

1      ∑      ∑
• El clasificador robusto final queda:    
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. 

CIDETEC   52 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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. 

3.5.1 Disposición de las funciones de clasificación 
 

CIDETEC   53 
Diseño e implementación de un herramienta de detección facial 
 
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. 

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

Figura 0.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. 

CIDETEC   55 
Diseño e implementación de un herramienta de detección facial 
 
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 descriptores que se evalúa 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. 

CIDETEC   56 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   57 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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.  

CIDETEC   58 
Diseño e implementación de un herramienta de detección facial 
 
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. 

   

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

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 

CIDETEC   60 
Diseño e implementación de un herramienta de detección facial 
 
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.).  

CIDETEC   61 
Diseño e implementación de un herramienta de detección facial 
 
 
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.  

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

 
Figura 0.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 

CIDETEC   63 
Diseño e implementación de un herramienta de detección facial 
 
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.  

CIDETEC   64 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   65 
Diseño e implementación de un herramienta de detección facial 
 
• ‐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. 

CIDETEC   66 
Diseño e implementación de un herramienta de detección facial 
 
•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). 
 

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

 
Figura 0.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 0.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.  

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

 
Figura 0.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 0.5 Elección de la ruta de la imagen a tratar 

CIDETEC   69 
Diseño e implementación de un herramienta de detección facial 
 
 
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 0.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. 

CIDETEC   70 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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. 

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

Tabla 0.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.  

CIDETEC   72 
Diseño e implementación de un herramienta de detección facial 
 
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: 

CIDETEC   73 
Diseño e implementación de un herramienta de detección facial 
 
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 0.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).  

CIDETEC   74 
Diseño e implementación de un herramienta de detección facial 
 
 
 
 
 
Tabla 0.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 0.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 
 

CIDETEC   75 
Diseño e implementación de un herramienta de detección facial 
 
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. 
 
Tabla 0.5 Las fases y sus funciones del archivo haarcascade_frontalface_alt.xml 

fase  Numero de función  fase  Numero de función 


de clasificació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. 

CIDETEC   76 
Diseño e implementación de un herramienta de detección facial 
 
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.  
 
   

CIDETEC   77 
Diseño e implementación de un herramienta de detección facial 
 
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));  

CIDETEC   78 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   79 
Diseño e implementación de un herramienta de detección facial 
 
‐ 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. 

CIDETEC   80 
Diseño e implementación de un herramienta de detección facial 
 
 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  Clasificación cara  Clasificación cara 

frontalface_alt.xml  frontalface_alt.xml  frontalface_alt_tree.xml 

     
 

     
 

     
 

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

   
 

     
 

     
 

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

 
 

11 

     
 

12 

     
 

14 

     
 

15 

     
 

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

     
 

17 

   
 

18 

     
 

19 

     
 

20 

     
 

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

22 

     
 

23 

     
 

24 

     
 

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

     
 

26 

29 

32 

 
Figura 0.1 Diferentes pruebas con 3 clasificadores 
 
Foto 
1(a) 

 
 

CIDETEC   86 
Diseño e implementación de un herramienta de detección facial 
 
Foto 
1(b) 

 
 

Foto 
1(c) 

 
 

Foto 
3(a) 

 
 

Foto 
3(b) 

 
 

CIDETEC   87 
Diseño e implementación de un herramienta de detección facial 
 
Foto 
3(c) 

 
 

Foto 
27(a) 

 
 

Foto 
27(b) 

 
 

CIDETEC   88 
Diseño e implementación de un herramienta de detección facial 
 
Foto 
27(c) 

 
 

Foto 
28(a) 

 
 

Foto 
28(b) 

CIDETEC   89 
Diseño e implementación de un herramienta de detección facial 
 
Foto 
28(c) 

 
 

Foto 
30 (a) 

 
 

Foto 
30(b) 

 
Foto 
30(c) 

 
 

CIDETEC   90 
Diseño e implementación de un herramienta de detección facial 
 
Foto 
31(a) 

 
 

Foto 
31(b) 

 
 

Foto 
31(c) 

 
 

Foto 
33(a) 

Foto 
33(b) 

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

Foto 
33(c) 

 
Figura 0.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 

   

CIDETEC   92 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   93 
Diseño e implementación de un herramienta de detección facial 
 
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 

CIDETEC   94 
Diseño e implementación de un herramienta de detección facial 
 
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. 
   

CIDETEC   95 
Diseño e implementación de un herramienta de detección facial 
 
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. 

CIDETEC   96 
Diseño e implementación de un herramienta de detección facial 
 
[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. 

CIDETEC   97 
Diseño e implementación de un herramienta de detección facial 
 
[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. 

CIDETEC   98 
Diseño e implementación de un herramienta de detección facial 
 
[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. 

CIDETEC   99 

También podría gustarte