Subido por Ronald Enrique Del Pezo Chuquimarca

ensayo #1 castillo jorge

Anuncio
Universidad Laica Eloy Alfaro
de Manabí
Carrera de Ingeniería
Eléctrica
PROGRAMACIÓN III
Nombre del profesor
WASHINGTON XAVIER GARCIA QUILACHAMIN
Nombre del Estudiante:
Jorge Luis Castillo Ibarra
Semestre
4to
Tema
Ensayo: Detección de rostros utilizando
algoritmo de viola jones y redes neuronales
30-05-2019
Fecha
DETECCIÓN DE ROSTROS UTILIZANDO ALGORITMO DE VIOLA JONES Y
REDES NEURONALES
RESUMEN
El rostro humano es un objeto dinámico que tiene un alto grado de variabilidad en su
apariencia lo cual hace que su detección sea un problema difícil de tratar en visión por
computador. El problema de detección del rostro en los sistemas de reconocimiento no
recibió la atención necesaria y se partía de que el rostro ya había sido detectado, en la década
de los ochenta surgieron los primeros algoritmos, basados en técnicas heurísticas y
antropométricas, según el paso del tiempo, se propuso técnicas, desde algoritmos básicos de
detección de bordes hasta algoritmos compuestos de alto nivel que utilizan métodos
avanzados de reconocimiento de patrones. Partiendo de: Enfoques basados en rasgos faciales
o características locales, en los que se buscan determinados elementos que componen el
rostro, como los ojos, la nariz, Enfoques holísticos o basados en la imagen, en este caso los
métodos trabajan con la imagen completa o zonas concretas de la misma de la cual se extraen
características que puedan representar el objeto, Enfoques híbridos, estos métodos usan tanto
la información local como la global para la detección, basándose en el hecho de que el sistema
de percepción humano distingue tanto las características locales como globales del rostro.
INTRODUCCIÓN
La detección de rostros consiste en determinar si en una imagen arbitraria hay alguna cara y,
en caso se haberla, en qué posición se encuentra. Un detector de rostros debería ser capaz de
encontrar todas las caras de una imagen. Además, debe devolver para cada cara detectada en
la imagen la posición y tamaño de una caja de inclusión en la que se encuentren los ojos, la
nariz y la boca. Sería deseable que se devolviera otros datos como el ángulo de rotación de
la cara y una puntuación que nos indique la fiabilidad de esa detección. (Nehru & Padmavathi,
2017)
Existen algunos inconvenientes al momento de detectar un rostro como, por ejemplo: Poses,
componentes estructurales, expresiones faciales, orientación de la imagen y condiciones de
la captura de la imagen.
En la actualidad existen varios algoritmos para la detección de caras. Cada uno de estos
algoritmos está basado alguna técnica conocida de reconocimiento de formas como redes
neuronales, vecino más próximo, etc. Cada detector tiene características que lo hacen
diferente al resto. Por ejemplo, el detector de Viola-Jones es un detector muy rápido pero no
es capaz de calcular la orientación de la cara ni darnos una estimación de lo seguro que está
de la detección. (Vikram & Padmavathi, 2017)
ANTECEDENTES
Detección de caras basado en viola-jones
Este detector trabaja con imágenes en escalas de grises alcanzando buenos resultados, esto
lo diferencia de otros que utilizan más información como el color de los píxeles, etc.
Este algoritmo hace la representación de las imágenes mediante el método de la imagen
integral; esto permite evaluar de forma muy rápida las características utilizadas. Entonces
no se trabaja con la intensidad de la imagen, sino con una representación de la misma. La
gran ventaja es que se pueden calcular las características utilizadas en cualquier lugar
de la imagen y en cualquier escala en el mismo lapso de tiempo y en forma sumamente
eficiente desde el punto de vista del gasto computacional. (Putro, Adji, & Winduratna, 2015)
Reconocimiento facial
Los sistemas de reconocimiento facial permiten identificar a una persona analizando las
características biométricas de su rostro. Aunque hace algunos años se usaban modelos
geométricos simples para el análisis del rostro, la extracción de la información relativa a las
características biométricas del rostro está actualmente ligada a sofisticados procesos
matemáticos y algoritmos de coincidencia. Lo que ha propulsado el avance la tecnología de
reconocimiento facial en diversas áreas del conocimiento. (Dmytro Peleshko, n.d.)
Detección de rostros basado en proyecciones mediante eigen vectores
Dentro del sistema de visión se ha utilizado para el reconocimiento e identificación de las
caras el método basado en la proyección de las imágenes originales en un nuevo espacio.
El algoritmo básico para identificar caras en diferentes subespacios es el siguiente:
1. Se calcula un subespacio (generado por las propias imágenes de las caras a reconocer)
donde proyectar las imágenes.
2. Una vez generado el subespacio, todas las caras de entrenamiento son proyectadas en
el subespacio
3. Cada nueva imagen se proyecta en el subespacio y es comparada con todas las
proyecciones de las imágenes de entrenamiento por similitud o por medida de
distancias, la imagen de entrenamiento más similar o más cercana a la nueva imagen
se utiliza para identificar esa nueva cara. (Egorov, Alexey D. Mazurenko, 2018)
METODOLOGÍA
La metodología se basada en la propuesta que divide en tres etapas, en la primera se realiza
una transformación de la imagen generando una nueva llamada imagen integral, en la
segunda etapa se realiza la extracción de características usando filtros con base Haar, y por
último se usa boosting para la construcción de clasificadores en cascada. (Rahman & Zayed,
2018)
Adquisición de imágenes
La toma de estos datos se los puede introducir mediante la cámara o manualmente. En el caso
de que se desea reconocer los rostros en tiempo real, se debe hacer uso de frames, lo cual es
capturar imágenes de la cámara cada cierto tiempo. Para cada captura se debe hacer el
reconocimiento del rostro, mostrar el nombre de la persona identificada en la pantalla y seguir
con la siguiente captura, por este motivo es que la toma de datos (imágenes) no es muy
seguida, dado que requiere ciertos procesos en medio. (Rashidan & Mustafah, 2014)
Entrenamiento de la red neuronal
Lo primero a tener en cuenta son los elementos con los cuales se va a entrenar la red, ya que
de esto depende su desempeño.
Preprocesamiento
Lo siguiente que se debe realizar es transformar las imágenes en escala de grises dado que si
estuviera en formato RGB se necesitaría 3 matrices para interpretar las tonalidades de las
mismas. A continuación, se procede a representar cada imagen en un solo vector, pero dado
que dichas imágenes tienen resolución de 64x48 pixeles se debe implementar una red
neuronal con 3072 entradas para avaluar cada imagen, esto es computacionalmente y
temporalmente ineficiente, por lo cual se recurre a otra alternativa, que consiste en extraer
solamente los valores característicos del conjunto de imágenes con el objetivo de reducir el
número de entraras de la red neuronal. (Haneefl et al., 2019)
Procesamiento
La extracción de estas características importantes se lo realiza de la siguiente forma:
1.
Se calcula la media de cada rostro.
2.
Se hace un cálculo estadístico de la covarianza.
3.
Se extrae los vectores.
4.
Se proyecta los vectores con la covarianza, este resultado proporciona los
componentes más importantes de cada rostro.
De acuerdo al proceso descrito anteriormente se restringe el número de vectores evaluando
los elementos más relevantes. Por ejemplo, si se muestra la proyección de los vectores con
17 elementos, pero son más notables los últimos 13 elementos de las columnas, por lo tanto
serían más cercanos a cero, por este motivo para la implementación de la red neuronal solo
se consideran los 4 primeros elementos de los vectores. (Kolsch & Turk, 2004)
Red neuronal
Una vez que se tiene las entradas listas para entrenar la red neuronal, se necesita saber qué
tipo de red se va a implementar.
Reconocimiento facial
Pre-procesamiento: De la imagen adquirida previamente se procede a detectar el rostro
mediante el algoritmo de Viola-Jones, este ya es una función implementada en matlab, se
recorta el área del rostro y se cambia de tamaño (64x48 pixeles). (Dang & Sharma, 2017)
Procesamiento: Se transforma el rostro a escala de grises, se hace un solo vector de pixeles,
se proyecta con los vectores hallados y se normaliza los datos.
Red neuronal: Como paso final se introduce los datos resultantes de la normalización en la
red neuronal y se interpreta la salida. (Hasan, Ullah, Gupta, & Ahmad, 2016)
Valores del vector de salida en donde tenga un máximo valor en la última posición
corresponde a la persona uno, valores del vector de salidas en donde tenga un máximo valor
en la posición tres corresponde a la persona dos y valores del vector de salidas en donde tenga
un máximo valor en la posición uno corresponde a la persona tres. (Jin et al., 2017)
Visualización
En la pantalla se visualiza la imagen completa ingresada con anterioridad, pero además se
grafica un rectángulo alrededor del rostro con su posible identificación.
ANÁLISIS
Los altos porcentajes de detección y bajos tiempos de procesamiento demuestran la
efectividad de la combinación de técnicas de viola-jones, para la detección del rostro y
características faciales y dan la posibilidad de llevar el sistema a una aplicación en tiempo
real. La reducción del desempeño del método en la detección de ojos se atribuye a que el
algoritmo debe realizar la búsqueda sobre toda la imagen. Esto se puede mejorar aplicado el
método únicamente sobre la región que ha sido detectado como rostro, ya que se estaría
descartando información del fondo, y además se disminuiría el tiempo de procesamiento. (Jin
et al., 2017)
RESULTADOS
Tras la evaluación del sistema de detección con diferentes valores de los parámetros
ajustables, se ha verificado que combinando distintos valores, es posible utilizar el sistema
para la detección de caras en tiempo real (aprox. 2-3 segundos) para caras cercanas, con una
probabilidad de detección aceptable de aproximadamente 0.8. Para caras lejanas el sistema
de detección no es útil en tiempo real por su elevado tiempo de detección, aunque si se puede
utilizar para imágenes estáticas. (Sikander, Anwar, & Djawad, 2017)
Por otro lado la eficacia del sistema depende mucho de la frecuencia del reloj de la CPU
(relacionado directamente con las instrucciones por segundo), el cual, al estar implementado
en una FPGA de bajo coste, está muy limitada en este aspecto, siendo 85 MHz la frecuencia
máxima alcanzada estable. El diseño es posible exportarlo a los dispositivos ASIC (circuitos
integrados de aplicación específica) que requieren un menor coste de producción. Esto es
conveniente para la comercialización del producto si no se prevé ninguna modificación de
hardware ya que estos dispositivos no permiten una actualización en este sentido. (Dang &
Sharma, 2017)
Realizando diversos experimentos modificando los parámetros definidos por el usuario para
la evaluación del detector, y añadiendo un banco de imágenes que incluyen caras de diversas
características, se puede obtener una configuración óptima. La evaluación se realiza con un
conjunto de fotografías donde todas contienen una cara. Los parámetros modificados para la
realización del experimento son los siguientes:

Etapas: Este parámetro modifica el porcentaje de etapas utilizadas por el clasificador.

Ventanas: Se denominan ventanas a las sub-imagenes en las que se divide la imagen
para su procesamiento. Este parámetro modifica el porcentaje de ventanas utilizadas
por cada escala. El número máximo de ventanas por cada escala es calculado en
tiempo de ejecución, y depende exclusivamente de las dimensiones de la imagen.

Escalas: Este parámetro modifica el porcentaje de escalas utilizadas en el proceso de
detección. El número máximo de escalas utilizadas es calculado en tiempo de
ejecución, y depende al igual que el número máximo de ventanas, de las dimensiones
de la imagen.
Los análisis están orientados a conseguir unos valores razonables para dichos parámetros,
que mantengan una alta probabilidad de detección y baja probabilidad de falsa alarma sin
que el tiempo de detección sea relativamente alto. Se modificarán los parámetros de manera
independiente dejando el resto en el valor principal (valor original). La probabilidad de falsa
alarma únicamente aumentará disminuyendo el parámetro “Porcentaje de etapas”, ya que
dicha probabilidad sólo depende de éste. (Sharma & Saurav, 2015)
CONCLUSIÓN
Cuando se hace el reconocimiento facial en tiempo real aplicando la técnica de viola-jones,
el acertado o erróneo resultado de la red neuronal depende en gran medida del brillo con el
cual las imágenes son capturadas, ya que el entrenamiento de la red neuronal con el conjunto
de imágenes de entrenamiento tiene cierto límite de certeza.
El cálculo de la covarianza depende del número de elementos de entrenamiento, se procura
que los individuos detectados sean lo más diferente posible para que esta covarianza tome
valores máximos y, por lo tanto, tener mayor certeza en los resultados de la red neuronal.
Este trabajo está orientado a la identificación de rostros de posición frontal ya que el
algoritmo que se usa para la detección de rostros tiene un mayor rango de detección en este
posicionamiento de la imagen.
REFERENCIAS
Dang, K., & Sharma, S. (2017). Review and comparison of face detection algorithms. 2017
7th International Conference on Cloud Computing, Data Science & Engineering Confluence, 629–633. https://doi.org/10.1109/CONFLUENCE.2017.7943228
Dmytro Peleshko. (n.d.). 2013 12th International Conference The Experience of Designing
and Application of CAD Systems in Microelectronics (CADSM). Retrieved from
https://ieeexplore.ieee.org/document/6543266
Egorov, Alexey D. Mazurenko, G. A. (2018). Some cases of optimization face detection
methodes on image (Using the Viola-Jones method as an example). 2018 IEEE
Conference of Russian Young Researchers in Electrical and Electronic Engineering
(EIConRus), 1075–1078. https://doi.org/10.1109/EIConRus.2018.8317276
Haneefl, O., Maqbooll, S., Siddiquel, F., Mahmoodl, Z., Khattakl, S., & Khan, G. Z.
(2019). Effects of Image Resolution on Automatic Face Detection. 2019 2nd
International Conference on Communication, Computing and Digital Systems (CCODE), 231–236. https://doi.org/10.1109/C-CODE.2019.8680985
Hasan, M. K., Ullah, S. M. H., Gupta, S. Sen, & Ahmad, M. (2016). Drowsiness detection
for the perfection of brain computer interface using Viola-jones algorithm. 2016 3rd
International Conference on Electrical Engineering and Information Communication
Technology (ICEEICT), 1–5. https://doi.org/10.1109/CEEICT.2016.7873106
Jin, X., Yuan, P., Li, X., Song, C., Ge, S., Zhao, G., & Chen, Y. (2017). Efficient privacy
preserving Viola-Jones type object detection via random base image representation.
2017 IEEE International Conference on Multimedia and Expo (ICME), 673–678.
https://doi.org/10.1109/ICME.2017.8019497
Kolsch, M., & Turk, M. (2004). Analysis of rotational robustness of hand detection with a
Viola-Jones detector. Proceedings of the 17th International Conference on Pattern
Recognition, 2004. ICPR 2004., 107-110 Vol.3.
https://doi.org/10.1109/ICPR.2004.1334480
Nehru, M., & Padmavathi, S. (2017). Illumination invariant face detection using viola jones
algorithm. 2017 4th International Conference on Advanced Computing and
Communication Systems (ICACCS), 1–4.
https://doi.org/10.1109/ICACCS.2017.8014571
Putro, M. D., Adji, T. B., & Winduratna, B. (2015). Adult image classifiers based on face
detection using Viola-Jones method. 2015 1st International Conference on Wireless
and Telematics (ICWT), 1–6. https://doi.org/10.1109/ICWT.2015.7449208
Rahman, M. A., & Zayed, T. (2018). Viola-Jones Algorithm for Automatic Detection of
Hyperbolic Regions in GPR Profiles of Bridge Decks. 2018 IEEE Southwest
Symposium on Image Analysis and Interpretation (SSIAI), 1–4.
https://doi.org/10.1109/SSIAI.2018.8470374
Rashidan, M. A., & Mustafah, Y. M. (2014). Analysis of Artificial Neural Network and
Viola-Jones Algorithm Based Moving Object Detection. 2014 International
Conference on Computer and Communication Engineering, 251–254.
https://doi.org/10.1109/ICCCE.2014.78
Sharma, H., & Saurav, S. (2015). Analyzing impact of image scaling algorithms on violajones face detection framework. 2015 International Conference on Advances in
Computing, Communications and Informatics (ICACCI), 1715–1718.
https://doi.org/10.1109/ICACCI.2015.7275860
Sikander, G., Anwar, S., & Djawad, Y. A. (2017). Facial feature detection: A facial
symmetry approach. 2017 5th International Symposium on Computational and
Business Intelligence (ISCBI), 26–31. https://doi.org/10.1109/ISCBI.2017.8053538
Vikram, K., & Padmavathi, S. (2017). Facial parts detection using Viola Jones algorithm.
2017 4th International Conference on Advanced Computing and Communication
Systems (ICACCS), 1–4. https://doi.org/10.1109/ICACCS.2017.8014636
Descargar