Detección de rostros humanos mediante SVM y generación de fotografías de tipo carné

Documentos relacionados
Visión por computadora Computer vision

Laboratorio de Visión para Robots. Práctica 2

License Plate Detection using Neural Networks

Técnicas de Clasificación Supervisada DRA. LETICIA FLORES PULIDO

4.1 CONGRUENCIA ENTRE LOS OBJETIVOS DEL PLAN DE ESTUDIOS Y EL PERFIL DE EGRESO CON LAS LGAC:

INSTITUTO UNIVERSITARIO DE SISTEMAS INTELIGENTES Y APLICACIONES NUMÉRICAS EN INGENIERÍA TRABAJO FINAL DE MÁSTER:

Visión. Sesión 3: Clasificación de imágenes mediante histogramas y características. Departamento CCIA


Elaboración de Documentos en Procesadores de Textos

[20380] Visió per Computador Prueba 2 (2013) Teoria (10p) (una pregunta test fallada descuenta 1/4 de pregunta acertada)

Tomamos como imagen de prueba la figura 4.17 en escala de grises. Figura Imagen de prueba.

VISIÓN POR COMPUTADOR

RecAM. Reconocimiento Automático de Matrículas

BLOQUE IV. CLASIFICACIÓN

Análisis de imágenes digitales

6.4. APLICACIÓN DE REDES NEURONALES EN EL CÁLCULO DE LA TASA DE CONTORNEAMIENTOS Velocidad de retorno del rayo con distribución uniforme

Curso de Procesamiento Digital de Imágenes

Un método de caracterización del patrón de color en la elastografia de nódulos mamarios.

Tutor: Ing. Eddie Galarza. Autores: Edison Xavier Sánchez Quevedo Edison Saúl Gallardo Calvopiña

Aprendizaje Automatizado

Tema 14: Sistemas Secuenciales

automático tico de la reserva ovarica en las mujeres _

MANUAL DE USO PROGRAMA SENSIBAR

Modelo de Saliencia Utilizando el Descriptor de Covarianza

METODOLOGÍA DE CONSTRUCCIÓN DE GRUPOS SOCIOECONÓMICOS Pruebas SIMCE 2012

Unidad 5. Tablas. La celda que se encuentra en la fila 1 columna 2 tiene el siguiente contenido: 2º Celda

Resolución de problemas de búsqueda

Clasificación de objetos en imágenes usando SIFT

Capítulo 8. Análisis Discriminante

INFORME PROYECTO. EDIFICIO: Casa de Cultura MUNICIPIO: Balmaseda. Nuevo modelo de gestión energética para edificios municipales.

Micro y Macroeconomía

UNA GUÍA PASO A PASO SOBRE CÓMO PUBLICAR EN OJS

RECONOCIMIENTO E IDENTIFICACIÓN DE LOGOTIPOS EN IMÁGENES CON TRANSFORMADA SIFT

Reconocimiento automático a través de visión artificial, correlación estadística y Matlab aplicado a las matrículas de vehículos

MICROSOFT EXCEL PARA DIRECCIÓN FINANCIERA I. 1. Resolución de problemas de simulación de Montecarlo mediante el uso de la hoja de cálculo.

3.1. Administración de la medición y de la información estratégica:

Filtros digitales dominio del espacio dominio de la frecuencia

Análisis y síntesis de sistemas digitales combinacionales

TABLAS WORD La tercer opción es usar el vínculo Dibujar Tabla, aquí se dimensiona la tabla dibujándola con el mouse

CLASIFICACIÓN DE LA IMAGEN. Escuela de Ingeniería Civil y Geomática Francisco Luis Hernández Torres

Projecte/Treball Final de Carrera

Ministerio de Educación. Base de datos en la Enseñanza. Open Office. Módulo 4: Diseñador de Consultas (+ info)

3. COMPONENTES DEL SISTEMA

CONTROL DE ROBOTS Y SISTEMAS SENSORIALES 4º Ingeniería Industrial

Informática I ACI-191. Taller de Informática

Curso de Manipulador de alimentos copia 2. Guía del alumno

1.-LEY DE OHM: VOLTAJE, CORRIENTE Y RESISTENCIA

A/42/10 ANEXO IV TASAS DEL PCT Y MECANISMOS RELATIVOS AL TIPO DE CAMBIO

SISTEMA DE RECONOCIMIENTO FACIAL Y REALIDAD AUMENTADA PARA DISPOSITIVOS MÓVILES

PRÁCTICA 3: DISEÑO DE PLANTILLAS WEB

APUNTE TABLAS MICROSOFT WORD 2003

DEPARTAMENTO DE ORGANIZACIÓN INDUSTRIAL Y GESTIÓN DE EMPRESAS ESCUELA SUPERIOR DE INGENIEROS DE LA UNIVERSIDAD DE SEVILLA

INVESTIGACIÓN DE MERCADOS

M É T O D O S A L T E R N A T I V O S P A R A E X T R A C C I O N D E V E C T O R C A R A C T E R I S T I C AS.

3. ASOCIACIÓN ENTRE DOS VARIABLES CUALITATIVAS

Manual de las Mejoras Realizadas al Área Administrativa del Sitio Web de la Universidad Tecnológica de Panamá

UNIDAD 12.- Estadística. Tablas y gráficos (tema12 del libro)

Administración de la producción. Sesión 6: Presentaciones Gráficas

Trabajar con Tablas. capítulo 07

Se definen los siguientes objetivos que se extraen de la propuesta anteriormente planteada:

Predicción de la relación entre el género, la cantidad de cigarrillos y enfermedades usando Máquinas de Vector Soporte

Algunas licencias de código abierto

La última versión disponible cuando se redactó este manual era la 5 Beta (versión ), y sobre ella versa este manual.

ECUACIONES.

GLOSARIO DE CONCEPTOS Y TÉRMINOS

WEBCAMS COMO EQUIPO DE PRÁCTICAS EN ASIGNATURAS DE VISIÓN ARTIFICIAL Y RECONOCIMIENTO DE PATRONES

MICROSOFT EXCEL 2010

Preparación de la imagen. Preparación de la imagen. Características de la imagen utilizada. PADVA, Diego y WILSON, Carlos

ESTADÍSTICA CON EXCEL

IA con RARS. Miguel Ángel Herranz Trillo Juan Ramón Martín Blanco. Práctica Final de IRC

CAPÍTULO 4. ANÁLISIS DE LA INFLUENCIA DEL INTERVALO DE TIEMPO UTILIZADO EN EL SEGUIMIENTO EN LOS RESULTADOS DE LA PREVISIÓN

Crear gráficos en Excel Un gráfico es la representación gráfica de los datos de una hoja de cálculo y facilita su interpretación.

Trabajo opcional tema 3: modulación lineal

Colegio Universitario Boston

Uso de la simulación en hoja de cálculo como herramienta pedagógica para la inferencia estadística.

A continuación, se describen las conclusiones más relevantes a las que conduce el presente estudio:

DESARROLLO DE UNA APLICACIÓN INTELIGENTE BASADA EN RECONOCIMIENTO FACIAL PARA CONTROLAR EL ACCESO A LA BIBLIOTECA DANIEL RODRÍGUEZ HOYLE

Las imágenes capturadas se guardan en formato digital en un dispositivo de almacenamiento que se llama tarjeta de memoria Esta tarjeta se conecta al

Estructura de la propiedad forestal en Castilla-La Mancha

INGENIERÍA DEL SOFTWARE

Parciales Matemática CBC Parciales Resueltos - Exapuni.

Las personas usuarias de pueden acceder desde dos sitios diferentes:

Sistemas Biométricos para el aula nuestro de informática.

Revisora: María Molero

RETORNO DE LA INVERSION EN LA IMPLANTACIÓN DE LA TÉCNICA DE PREDICTIVO MCA (MOTOR CIRCUIT ANALYSIS)

Reconocimiento de Caracteres: Un abordaje invariante a translación, rotación y escala

SEGMENTACIÓN AUTOMÁTICA DE TEJIDOS CEREBRALES EN MRI MULTIESPECTRALES MEDIANTE CLASIFICACIÓN POR MÍNIMA DISTANCIA EUCLÍDEA

Que es una Ecuación Diferencial? (ED) Para qué sirven las ecuaciones diferenciales?

ANÁLISIS DE EFICIENCIA EN ALGORITMOS DE RECONOCIMIENTO DE IMÁGENES DIGITALES APLICABLES A DISPOSITIVOS MÓVILES BAJO LA PLATAFORMA ANDROID

UNIDAD 2: ECUACIONES E INECUACIONES. SISTEMAS DE ECUACIONES

Clase III - Control de corriente en inversores de tensión

Manual de usuario Cuadernos web Norma 34.14

Visualización de imágenes

Unidad 6. Análisis costo-volumen-utilidad. Objetivos específicos de aprendizaje

Retículos y Álgebras de Boole

Planteamiento del problema del servidor de video

V. ESTUDIO DE LA ENTONACIÓN.

MÓDULO 5 TEMA 2: AJUSTES DE IMAGEN INTRODUCCIÓN

Prestaciones de la Normalización del Rostro en el Reconocimiento Facial

ANALISIS DE CLUSTER CON SPSS: INMACULADA BARRERA

Transcripción:

Detección de rostros humanos mediante SVM y generación de fotografías de tipo carné Daniel J. Calandria, Antonio Cañas, Antonio F. Díaz Departamento de Arquitectura y Tecnología de Computadores E. T. S. Ingenierías Informática y de Telecomunicación Universidad de Granada 18071, Granada dcalandria@gmail.com, acanas@atc.ugr.es, afdiaz@atc.ugr.es Resumen En este artículo presentamos un método para detectar rostros en imágenes y generar, a partir de ellos, fotografías de tipo carné de manera automática. El proceso llevado a cabo consta de dos etapas, una de clasificación, donde se detectan los posibles rostros, y otra de realce, donde, una vez extraída la imagen con las dimensiones típicas de una fotografía de tipo carné, se aplican diversos filtros para mejorar la calidad. El sistema ha sido implantado con éxito en la plataforma SWAD [1], un sistema web de apoyo a la docencia. En él, los usuarios pueden enviar archivos con imágenes a partir de las cuales se extraen las fotografías de tipo carné que se usarán en diversos lugares como la ficha electrónica, los foros o el chat. 1. Introducción El problema de la detección facial ha sido uno de los más abordados a lo largo de la historia de la visión artificial. Las distintas soluciones aportadas pueden englobarse en dos grandes enfoques, generalizables a cualquier proceso de detección de objetos: Sistemas de detección facial que extraen características globales de la imagen para realizar la clasificación [16, 18]. El gran inconveniente de estas soluciones es la falta de robustez ante algunos aspectos como la oclusión o la orientación. Además, el entrenamiento suele requerir datos con alineaciones y tamaños normalizados. Sistemas que hacen uso de características locales para realizar la clasificación [11, 12, 13]. Éstos, por lo general, ofrecen mejores respuestas a la oclusión y su entrenamiento no requiere necesariamente datos alineados. El algoritmo propuesto sigue un enfoque hibrido: en la primera etapa, las características son locales (palabras visuales), mientras que la clasificación se lleva a cabo mediante SVM (Support Vector Machines) utilizando globalmente toda la información contenida en el rostro candidato. La Figura 1 contiene un esquema del proceso llevado a cabo. Las SVM ha sido muy utilizadas en trabajos anteriores [21, 20, 14], ofreciendo buenos resultados. Sin embargo, para una imagen de tamaño medio, el número de ventanas a clasificar por la SVM sería excesivamente alto, obteniendo resultados muy ineficientes. Para solucionarlo, aplicamos previamente un proceso en el que extraemos rostros candidatos. En esta etapa de selección de rostros, hemos implementado un modelo basado en partes. Concretamente, disponemos de un diccionario de palabras visuales etiquetadas con las diferentes zonas del rostro humano a las que pertenecen (ojos, boca ). Para seleccionar los candidatos, identificamos en la imagen puntos donde existan ocurrencias de las palabras del diccionario y les asignamos la etiqueta correspondiente. Los rostros candidatos serán las ventanas donde las etiquetas cumplan todas las restricciones espaciales impuestas (por ej. que los ojos estén en zonas superiores a las de la boca). El sistema desarrollado está pensado para un uso masivo por parte de un gran número de usuarios. Por tanto, es de esperar que éstos proporcionen imágenes con calidad, iluminación, fondos y tamaños muy heterogéneos, por lo que uno de los principales objetivos planteados ha sido conseguir un algoritmo robusto a la vez que eficiente.

El artículo está estructurado de la siguiente forma: en la sección 2 se describe la etapa de localización de candidatos, en la sección 3 se detalla la clasificación con SVM, en la sección 4 se resume el proceso llevado a cabo para generar la fotografía de tipo carné, en la sección 5 se analizan los resultados obtenidos y, por último, en la sección 6, se exponen las conclusiones y las futuras líneas de investigación. 2. Localización de rostros candidatos En los siguientes apartados se presentan la localización y la extracción de los rostros candidatos, que constituyen la primera etapa del proceso de clasificación. Hay que decir que todo este proceso, al igual que la clasificación con SVM, se lleva a cabo trabajando con la imagen en escala de grises. 2.1. Selección de características Figura 1. Esquema del algoritmo implementado excesivos para este caso). Concretamente, utilizamos los valores, previamente normalizados, de intensidad de cada uno de los píxeles del parche. El proceso de normalización llevado a cabo es el siguiente: 1. Para evitar la influencia de la iluminación en la imagen, se resta el valor de intensidad medio a cada píxel de parche. 2. Se realiza un filtrado gaussiano para reducir ruido. 3. Se normalizan los valores de los píxeles para que estén en el intervalo [0, 1]. La dimensión de los parches es determinante para obtener buenos resultados. Un tamaño pequeño permite realizar el proceso más rápidamente, pero impide obtener información rica sobre las regiones que estamos clasificando. Por ejemplo, podría confundirse fácilmente el extremo de un ojo con el extremo de la boca. Un tamaño fijo de 40 40 píxeles es una buena opción para rostros con unas dimensiones cercanas a 100 100 píxeles. La extracción de características de una imagen es sencilla: se aplica el detector de Harris [7] para extraer puntos de interés de la imagen (en este caso esquinas), y a continuación se obtienen parches centrados en dichos puntos. En cuanto al tipo de características a calcular, hay que tener en cuenta que nuestro objetivo en esta etapa, más que clasificar la imagen, es encontrar, de una forma eficiente, objetos candidatos (en este caso rostros) para centrar en ellos nuestra atención en etapas posteriores. Por esta razón, utilizaremos descriptores muy sencillos que no requieran grandes costes computacionales (SIFT [11] o HMAX [15] son 2.2. Aprendizaje del modelo Como hemos comentado en la introducción, durante el proceso de localización utilizamos un modelo basado en bolsas de palabras visuales [5, 17, 4, 6], con información sobre las partes de la estructura del objeto que deseamos detectar: el rostro humano. En nuestro trabajo elegimos cuatro partes claramente distinguibles entre si: la zona del ojo izquierdo, la zona del ojo derecho, el extremo izquierdo de la boca y el extremo derecho de la boca. Para cada una de ellas, es necesario determinar los siguientes aspectos importantes:

Información sobre las características que componen el objeto (intensidad de los píxeles). Información sobre las restricciones espaciales existentes en la forma. Por ejemplo, en un rostro humano, los ojos están en una zona superior a la boca. En el primer punto, el aprendizaje de las características se lleva a cabo mediante la construcción de un diccionario de palabras visuales que especifique cómo es el modelo. El proceso para elaborarlo es sencillo: partiendo de dos conjuntos de imágenes, pertenecientes a cada una de las clases a clasificar (en nuestro caso caras y no-caras), obtenemos una serie de parches (características) sobre los que aplicamos algún algoritmo de clustering (por ej. k-medias). Las medias de los clusters generados serán las palabras que formarán parte de nuestro diccionario. El número de parches a extraer y el tamaño del diccionario dependen del tipo de objeto que se desee localizar. En el problema de la localización de rostros hemos utilizado 75000 parches para cada clase y un diccionario de 500 palabras visuales. La Figura 2 contiene una muestra del diccionario generado. Aunque se pueden apreciar palabras visuales con rasgos faciales, todavía no tienen etiquetas asignadas que indiquen a qué zona de la cara pertenecen o, si por el contrario, corresponden al fondo de la imagen. Además, no existe ninguna información sobre la forma del objeto, es decir, las restricciones espaciales que cumple cada palabra. Para el aprendizaje de estos dos aspectos, etiquetado e información espacial, se ha utilizado un modelo semisupervisado que detallamos en los siguientes párrafos. En primer lugar, es necesario partir de unas pocas palabras previamente etiquetadas a mano. Esto no supone un problema ya que, como se aprecia en la Figura 2, muchas de ellas son claramente identificables. En un principio, será suficiente partir de tres o cuatro palabras para cada una de las etiquetas a utilizar. Otro aspecto que debemos establecer al comienzo del proceso, es el tamaño normalizado del rostro que localizaremos, que en este caso lo hemos establecido en 64 64 píxeles. En cada escala, se detectarán rostros con dicho tamaño (para el objetivo de generar fotografías de tipo carné se descartan los rostros muy pequeños). Figura 2. Fragmento del diccionario de palabras visuales generado en nuestro sistema. Puede apreciarse que la mayoría de las palabras de arriba corresponden a las zonas a detectar del rostro humano. Las de abajo son palabras obtenidas a partir de los ejemplos negativos. Una vez establecidas las condiciones iniciales, extraemos diversos parches del conjunto de ejemplos positivos, determinando, para cada uno, la palabra del diccionario más cercana. Esto nos permitirá construir un histograma {h 1, h 2,.., h n }, donde h i indica el número de ocurrencias de la palabra i en las imágenes de entrenamiento. Puesto que estamos usando sólo las imágenes de ejemplos positivos, las palabras visuales con un valorhmuy bajo serán clasificadas directamente como fondo. Para cada una de las palabras visuales no clasificadas como fondo construimos un mapa (Figura 3a) del tamaño elegido para el rostro (64 64 píxeles), que indique la probabilidad de encontrar dicha palabra en cada posición del modelo. En cada mapa, los valores de x e y para los que se alcance el máximo valor de probabilidad indicarán la posición estimada de la palabra asociada. Para finalizar el proceso de aprendizaje, debemos asignar etiquetas a las palabras que todavía no las tengan. Para ello, agruparemos las palabras con localizaciones más próximas entre sí, obteniendo tantos clusters como etiquetas tiene el modelo. En cada cluster asignaremos a las palabras aún no etiquetadas la etiqueta más común. El resultado de este proceso será una plantilla, como la de la Figura 3b, que contiene información sobre la forma del objeto.

(a) (b) Figura 3. (a) Mapas correspondientes a diferentes palabras visuales (por filas: ojo izquierdo, ojo derecho, extremo izquierdo de la boca y extremo derecho de la boca). (b) Plantilla estructural del modelo aprendido (se ha sometido a un proceso de dilatación y suavizado para rellenar huecos). Se pueden apreciar los cuatro clusters correspondientes a cada una de las zonas del rostro a detectar. Antes de terminar el proceso de construcción de la bolsa de palabras, es posible aplicar algún método de edición y condensado para eliminar aquellas palabras que sean fácilmente confundibles con una etiqueta diferente a la suya. En nuestro caso, hemos conseguido, mediante multiedición y condensado de Hart [8], reducir la bolsa de palabras de 500 a 213, lo que nos ofrecerá mejores resultados computacionales. 2.3. Extrayendo rostros candidatos Una vez explicado el proceso de aprendizaje llevado a cabo, detallaremos el algoritmo utilizado para extraer rostros candidatos. Como hemos visto en apartados anteriores, las características extraídas, así como el modelo estructural utilizado, tienen tamaños fijos, por lo que es necesario realizar el proceso de extracción para diferentes escalados de la imagen. Los pasos a seguir, para una escala dada, son los siguientes: 1. Extraer de la imagen diferentes parches como se ha indicado en el apartado 2.1. 2. A cada parche se le asigna la etiqueta correspondiente a la palabra del diccionario más cercana a él. Con ello se obtiene un mapa como el de la parte superior de la Figura 4, que indica las posibles zonas donde hay partes del rostro humano y del fondo. 3. Sobre el mapa anterior, se comprueba si existen puntos que cumplan las restricciones impuestas por el modelo estructural. Esta comprobación se realiza de una forma sencilla: se desplaza la plantilla del modelo aprendido comprobando si encaja en algún punto de la imagen, es decir, si debajo de cada una de las zonas de la plantilla existe una etiqueta equivalente. 4. Los rostros serán las ventanas donde se haya ajustado la plantilla del modelo (Figura 4, abajo). Como vemos, el proceso de localización utilizado es bastante simple, lo que nos permite trabajar en varias escalas a gran velocidad (podemos analizar entre 10 y 15 escalas sin problemas de eficiencia). Además, puesto que también distinguimos las palabras pertenecientes al fondo de la imagen, el número de rostros candidatos que obtenemos es relativamente bajo. En nuestros experimentos, obtenemos entre 20 y 200 rostros candidatos, valores muy inferiores al número máximo de ventanas que habría que comprobar en la imagen si se aplicara una clasificación basada únicamente en SVM. 3. Clasificación usando SVM La etapa descrita en la sección 2 constituye un proceso de preclasificación. Una vez detectados los rostros candidatos, utilizamos un clasificador más robusto para discriminar entre caras y nocaras. Hemos optado por la utilización de una SVM usando un kernel RBF. A partir de un rostro candidato, calculamos la entrada de la SVM de la siguiente forma: 1. Se redimensiona el rostro al tamaño de 15 15 píxeles y se ecualiza su histograma. 2. Se aplica, sobre la imagen resultante, un detector de bordes de Sobel.

Figura 4. Arriba se muestra el mapa de etiquetas generado para una imagen de ejemplo. Los cuadrados (rojo y verde), representan las zonas de los ojos; las cruces (azul y magenta), las zonas de la boca; y los rombos, las zonas etiquetadas como fondo. Puede apreciarse, principalmente sobre los rostros, que los puntos etiquetados se ajustan al modelo presentado en la Figura 3. Abajo se muestran algunos de los rostros candidatos. 3. La entrada de la SVM es un vector con los píxeles de las dos imágenes obtenidas en los puntos 1 y 2. Para el primer entrenamiento de la SVM hemos tenido que construir los conjuntos de ejemplos positivos y negativos de forma manual a partir de las salidas producidas en la etapa de preclasificación. Puesto que obtener conjuntos grandes de esta forma sería muy laborioso, hemos realizado sucesivos entrenamientos de forma incremental, añadiendo a los conjuntos de entrada las propias salidas obtenidas con la SVM. El conjunto de entrenamiento final ha estado compuesto por unos 8000 ejemplos positivos y unos 100000 ejemplos negativos. 4. Extracción de la fotografía de tipo carné Tras detectar los rostros en la imagen con la SVM, se procede a la extracción de la fotografía de tipo carné y a la correspondiente mejora de su calidad. La región extraída será proporcional al tamaño del rostro detectado. La Figura 5 muestra el rectángulo inicial que utilizamos para extraer la fotografía de tipo carné. Sobre este rectángulo, añadimos o quitamos filas y columnas para alcanzar una relación de aspecto de 3:4 con la finalidad de utilizar un tamaño normalizado de 150 200 píxeles. Una vez extraída y normalizada la imagen, procedemos a aplicar una serie de filtros, que Figura 5. Dimensiones utilizadas para extraer la fotografía de tipo carné a partir del rostro detectado. detallamos en las siguientes secciones, para mejorar su calidad. 4.1. Filtro de contraste En este caso, haremos que el histograma de las fotografías sea lo más uniforme posible. Para ello, realizamos un estiramiento del histograma usando una función de transferencia lineal cuya pendiente depende de la imagen (Figura 6b). 4.2. Filtro de saturación El filtro de contraste presenta el inconveniente de que los píxeles que contienen tonos de piel

tienden ligeramente a quedar grises, acromáticos. Para que la piel que hay en la fotografía sea un poco más natural, la solución es pasar la imagen resultante al espacio HSV y estirar el histograma de saturación con el objetivo de obtener un mayor colorido. Tras haber estirado la componente S, la imagen retorna al espacio RGB con un color de piel más natural (Figura 6c). 4.3. Ajuste de blancos Una de las características que debe tener una fotografía de carné es que el fondo sea de color claro, lo más próximo posible al blanco. Por ello, se rechazan las fotografías cuyas esquinas superiores no superen cierto umbral de iluminación. En las imágenes que superan este filtro, se alteran los histogramas para que el color de fondo predominante tienda al blanco (Figura 6d). (a) (b) En cuanto a las SVM, hemos utilizado la biblioteca LIBSVM [2]. Las bases de datos utilizadas para evaluar los resultados han sido BioID [9] y CMU-MIT [3]. Además, tanto los entrenamientos como los test se han realizado usando una base de datos propia obtenida durante el proceso de desarrollo. Ésta se compone de fotografías enviadas por miles de usuarios a través de internet, con características muy dispares entre sí (Figura 7). En la Tabla 1 se muestran los resultados obtenidos por nuestro sistema en las diferentes bases de datos analizadas, así como la comparativa con el clasificador basado en el de Viola y Jones [19] incluido en la OpenCV, y el de Wang et al. [20]. Se puede apreciar que nuestro clasificador, en la base de datos CMU-MIT, ofrece resultados bajos. Esto es debido a que muchas de las fotografías que componen esta base de datos tienen rostros con tamaños muy inferiores a 64 64 píxeles, el umbral de detección de nuestro sistema. De los tres sistemas comparados, el que ofrece mejores porcentajes de acierto es el clasificador de Viola. Sin embargo, al probarlo en nuestra base de datos, se observa un descenso en el rendimiento, obteniendo un número de falsos positivos muy elevado, algo no deseable para nuestra finalidad: la generación de fotografías de tipo carné para la utilización en una plataforma web. Hay que decir que la eficiencia obtenida en nuestro sistema es bastante aceptable. Si bien el clasificador de Viola y Jones, como es bien conocido, es el que ofrece en general un menor (c) Figura 6. Realce de una fotografía: (a) imagen original; (b) tras filtro de contraste; (c) tras filtro de saturación; (d) tras ajuste de blancos. 5. Resultados Para la implementación realizada, se ha hecho uso de la biblioteca de visión artificial OpenCV [10]. (d) Viola y Jones. Wang et al. Nuestro clasificador Base de datos Tasa de acierto Falsos positivos BioID 98,8% 10 CMU 92,5% 16 Propia 96,1% 73 BioID 96,8% 2 CMU 94,2% 8 Propia - - BioID 97,2% 0 CMU 83,1% 4 Propia 93,5% 7 Tabla 1. Comparativa de los resultados obtenidos con diversos clasificadores, incluido el nuestro (SVM con kernel RBF), para algunos cientos de imágenes. Se puede apreciar que el clasificador de Viola ofrece mejores resultados, aunque el número de falsos positivos es muy alto.

tiempo de ejecución, nuestro sistema realiza el proceso de detección en un tiempo aproximadamente 3 o 4 veces mayor que el de éste. Comparado con el tiempo necesario para enviar las fotografías a través de la web, el tiempo de ejecución del clasificador es insignificante. 6. Conclusiones y trabajo futuro En este trabajo hemos mostrado un método eficiente para detectar rostros en una imagen y generar automáticamente fotografías de tipo carné. El software está siendo utilizado con éxito en la plataforma SWAD [1], una herramienta web de apoyo a la docencia elaborada en la Universidad de Granada. Concretamente, se ha implantado para permitir a los usuarios el envío de imágenes a partir de las cuales generar las fotografías utilizadas en las fichas electrónicas usadas por el sistema. Actualmente, está ofreciendo muy buenos resultados, siendo utilizada por unos 32000 usuarios. La implantación en esta plataforma nos ha permitido elaborar una base de datos a partir de las fotografías enviadas por los usuarios. Esta base de datos, por el momento, está compuesta por más de 22000 fotografías (tanto ejemplos positivos como negativos) con iluminaciones, tamaños o fondos muy heterogéneos. La enorme variabilidad en las características de las fotografías recibidas ha hecho que la robustez se convierta en el objetivo principal de nuestro trabajo. Como hemos podido apreciar, los resultados obtenidos son muy prometedores. Actualmente, estamos siguiendo nuevas líneas de investigación para incrementar la fiabilidad del detector, especialmente en el proceso de localización de rostros candidatos. Además, estamos trabajando en métodos de segmentación que nos permitan, una vez detectado el rostro, eliminar todo el fondo de la imagen, para poder sustituirlo por uno homogéneo (en este caso de color blanco). Otro aspecto que no debemos olvidar es el de la elaboración, que actualmente sigue en proceso, de la base de datos obtenida en la plataforma SWAD. Compuesta por decenas de miles de fotografías reales enviadas por los usuarios, estudiantes y profesores de la Universidad de Granada, creemos que será de gran utilidad para la investigación de soluciones para el problema de clasificación robusta de rostros. En nuestro caso, la buena calidad de los datos utilizados en el aprendizaje, nos ha permitido construir un clasificador que, si bien no es tan complejo como el de Viola, ofrece resultados muy parecidos, mejorando el número de falsos positivos. En esta línea, esperamos publicar en breve la base de datos para que pueda ser utilizada en otros grupos de trabajo. Referencias [1] Cañas, A. Plataforma SWAD, 1999-2007. http://swad.ugr.es/, http://www.swad.es/ [2] Chang, C., Lin, C. J. LIBSVM: a library for support vector machines. http://www.csie.ntu.edu.tw/~cjlin/libsvm/ Figura 7. Ejemplos de fotografías de nuestra base de datos utilizadas para las pruebas.

[3] CMU-MIT. Frontal Faces Data Base. http://vasc.ri.cmu.edu/idb/html/face/frontal_i mages/ [4] Csurka, G., Dance, C. R., Fan, K., Willamowski, J., Bray, C. Visual categorization with bags of keypoints. In Proc. ECCV, 2004. [5] Fei-Fei, L., Fergus, R., Torralba, A. Recognizing and Learning Object Categories. IEEE ICCV, 2005. [6] Fei-Fei, L., Perona, P. A Bayesian hierarchy model for learning natural scene categories. CVPR, 2005. [7] Harris, C., Stephens, M. A combined corner and edge detector. Plessey Research Roke Manor, 1988. [8] Hart, P. E.: The condensed nearest neighbor rule. IEEE Transactions on Information Theory 14 (1968) 515 516. [9] Human Scan. BioID Face Database. http://www.bioid.com/downloads/facedb/inde x.php [10] Intel Corp. Open Source Computer Vision Library. http://opencvlibrary.sourceforge.net/ [11] Lowe, D. G. Object Recognition from Local Scale-Invariant Features, 1999. [12] Mikolajczyk, K., Schmid, C. A Performance Evaluation of Local Descriptors. IEEE Trans. Pattern Anal. Mach. Intel. 27(10): 1615-1630. 2005. [13] Mikolajczyk, K., Schmid, C. Scale and affine invariant interest point detectors. International Journal of Computer Vision, 2004. [14] Rätsch, M., Romdhani, S., Vetter, T. Efficient Face Detection by a Cascaded Support Vector Machine using Haar-like Features. 2004 [15] Riesenhuber, M., Poggio, T. Hierarchical models of object recognition in cortex. Nature neuroscience, 2(11), 1019-1025, 1999. [16] Rowley, H. A., Baluja, S., Kanade, T. Rotation invariant neural-network based face detection Proc. IEEE Conference on Computer Vision and Pattern Recognition, 1998. [17] Sivic, J., Russell, B., Efros, A., Zisserman, A. Freeman, W. T.. Discovering object categories in image collections. Proc. ICCV, 2005. [18] Turk, M., Pentland, A. Face recognition using eigenfaces. Proc. IEEE Conference on Computer Vision and Pattern Recognition, 1991. [19] Viola, P., Jones, M. Rapid object detection using a boosted cascade of simple features. Proc. CVPR, vol. 1, pp. 511-518, 2001. [20] Wang, Q., Yang, J., Yang, W. Face Detection Using Rectangle Features and SVM. International Journal of Intelligent Technology Volume 1 Number 3 ISSN 1305 6417. 2006 [21] Waring, C. A., Liu, X. Face Detection Using Spectral Histograms and SVMs, 2005. Figura 8. Ejemplos de rostros detectados.