CONIITEC - 2016 - Paper - Reconocimiento de Imagenes Visual Studio

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/311536087

Implementación de sistema de reconocimiento de automóviles en imágenes


basado en patrones locales binarios y clasificador tipo Adaboost

Conference Paper · November 2016

CITATIONS READS

0 1,458

2 authors, including:

Moisés Arredondo Velazquez


Instituto Tecnológico de Celaya
4 PUBLICATIONS   9 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

Sistema de visión estereoscópica para el reconocimiento automático de escenas de riesgo para la seguridad ciudadana View project

Autonomous electric car View project

All content following this page was uploaded by Alejandro Israel Barranco Gutiérrez on 09 December 2016.

The user has requested enhancement of the downloaded file.


Artículo CONIITEC 2016

Implementación de sistema de reconocimiento de automóviles en imágenes basado


en patrones locales binarios y clasificador tipo Adaboost
ARREDONDO VELAZQUEZ MOISES, DIAZ CARMONA JAVIER†, PADILLA MEDINA
ALFREDO, PRADO OLIVARES JUAN, BARRANCO GUTIERREZ ISRAEL
Depto. Ing. Electrónica del Instituto Tecnológico de Celaya
[email protected]

(Indicar fecha de envío: Mes, Día, Año); Aceptado (Fecha de aceptación: uso exclusivo de CONIITEC)
___________________________________________________________________________________________________

RESUMEN es posible mencionar desventajas de los sistemas actuales,


En este artículo se describe el desarrollo de un sistema digital con entre ellas se destacan: la existencia de muchos posibles
la aplicación de reconocer automóviles en imágenes, las cuales escenarios imprevistos que alteran el tránsito normal de una
son obtenidas mediante una cámara ubicada en un crucero vial. El vialidad, por ejemplo: la aparición de automóviles de
objetivo principal del proyecto presentado es realizar el conteo de emergencia (ambulancia, bomberos etc.), escenarios de
automóviles existentes en un crucero, cuyo flujo es controlado con colisiones entre automóviles, etc.... Otra desventaja es que
un semáforo. Dicho conteo es necesario para estimar el afore la duración de las luces del semáforo es fija y no dinámica
vehicular y con ello lograr la implementación de algoritmos
computacionales que controlen el tiempo de encendido y apagado
con respecto al escenario, ya que una vez que el semáforo
de las luces de semáforo. Lo anterior con el objetivo global de es programado, las sincronización posterior por los
lograr un control eficiente del flujo vehicular de acuerdo a la administradores del sistema muchas horas después.
situación de tráfico presentada. El reconocimiento de los El congestionamiento vial tiene repercusiones en varios
automóviles en las imágenes se realizó a partir de su descripción ámbitos, entre los cuales se puede mencionar: medio
utilizando patrones locales binarios y con un clasificador del tipo ambiente con las grandes cantidades de gases
Adaboost, cuyos algoritmos se realizaron en Phyton e contaminantes, económico con los problemas que involucra
implementados en una plataforma basada en tarjeta Raspberry Pi tiempos excesivos de traslado, social con el gran
2. El sistema de visión está conformado por una cámara infrarroja incremento de malestar y estrés que provoca en los
que es conectada a la plataforma vía USB. Se presentan los
resultados obtenidos mediante pruebas experimentales en un
ciudadanos. En [1] se describe el uso de un controlador
crucero en particular, de acuerdo a los mismos se puede establecer multiagente basado en lógica difusa mediante sensores
que el uso de ésta técnica empleada en el reconocimiento de inalámbricos como una solución de problemas inherentes
automóviles es una opción viable para la aplicación definida. en congestión vehicular, accidentes y exceso de velocidad.
La propuesta se concreta en minimizar el tiempo de espera
de los vehículos en un semáforo. En [2] se describe la
Palabras clave implementación de control de tráfico mediante semáforos
Reconocimiento de imágenes, Patrones locales binarios, inteligentes basado en tecnología RFID y una base de datos
Clasificador Adaboost, Raspberry Pi 2.
para administrar información tal como saturación de los
carriles de las arterias, los ciclos de temporización de los
Categorías y Descriptores Temáticos semáforos, etc... De acuerdo a lo reportado se puede
Theory and algorithms for application domains: Machine deducir que la implementación de una secuencia dinámica
learning theory, Boosting. de los tiempos de encendido de las luces de un semáforo
Computer vision: Image and video acquisition, computer vision (principalmente de luz roja y verde) constituyen una
problems, object recognition. solución eficiente a los problemas que enfrentan las
secuencias fijas que actualmente se utilizan en la mayoría
de los semáforos. La secuencia dinámica debe ser capaz de
INTRODUCCIÓN ajustarse de manera inteligente a las necesidades que se
Hoy en día en las vialidades disponibles en cualquier presenten en la vialidad.
ciudad se regula el flujo vehicular por medio de semáforos, En este artículo se describe la implementación de un
cuyos tiempos de sus luces indicadoras son determinados prototipo de sistema auxiliar en la determinación dinámica
por expertos en control de tráfico que toman en cuenta el de la secuencia de tiempos de luces de semáforos. La
aforo vehicular en especifico de cada crucero. Sin embargo

CONIITEC 2016 http://coniitec.utrng.edu.mx


función específica del sistema es lograr el reconocimiento y por computadora y reconocimiento de patrones. Los
conteo de automóviles que cruzan por una vialidad en la métodos iniciales de clasificación se centran análisis
que existe un semáforo. El sistema consta de una cámara en estadístico de las imágenes, entre los que se pueden
el infrarrojo cercano, cuyas imágenes son procesadas mencionar: matriz de co-ocurrencia [3], basados en filtrado
digitalmente en una tarjeta digital Raspberry Pi 2. La [4], modelo autoregresivo [5], modelo Hidden-Markov y
descripción de las imágenes se realiza mediante patrones Gaussiano [6,7].
locales binarios y el reconocimiento con un clasificador Por otro lado en [8] se propuso el uso de histograma de
tipo Adaboost. patrones binarios locales (LBP, por sus siglas en inglés)
En la siguiente sección se describen los objetivos del como una descripción computacionalmente simple de la
proyecto. El desarrollo de la propuesta se presenta en la información contenida en imágenes en escala de frises para
tercer sección, para ello inicialmente se definen brevemente clasificadores de textura invariante a la rotación. LBP es un
los conceptos y se describen los componentes relacionados operador eficiente y simple para describir patrones de
con el proyecto. Los resultados obtenidos de un crucero imágenes locales, el cual ha tenido resultados de
real se muestran en la cuarta sección, mientras que en la clasificación impresionantes en base de datos de textura
última sección se plantean tanto las conclusiones como los representativa [9]. El uso de LBP se ha adaptado también
trabajos a futuro. en muchas otras aplicaciones, tales como reconocimiento
de caras [10], reconocimiento de textura dinámica [11] y
localización de formas [12], como es el caso del proyecto
OBJETIVOS desarrollado. Para mayores detalles sobre LBP se
El sistema desarrollado constituye el prototipo inicial para recomienda al lector consultar [8].
lograr el reconocimiento, y con ello el conteo, de La principal contribución de LPB es la notable reducción
automóviles ubicados en un crucero controlado por un del tiempo de procesamiento en el proceso de clasificación,
semáforo. Por lo anterior el principal objetivo es: mientras que se obtienen casi la misma exactitud en
"Desarrollar un sistema digital capaz de realizar funciones comparación con clasificadores mucho más lentos y más
de reconocimiento de automóviles en imágenes captadas complejos. En [13] se propone una extensión del método
mediante una cámara ubicada en un crucero". con la que se logra una mejora en la rápida detección de
Entre los objetivos particulares a lograr para el desarrollo objetos. Lo anterior es posible añadiendo un conjunto de
del proyecto, se pueden mencionar: características rotadas 45º, con lo que se añade
características adicionales en el proceso de aprendizaje.
 "Determinar el sistema óptico apropiado para la
aplicación",
Clasificador Adaboost
 "Establecer las especificaciones técnicas a cumplir por El clasificador utilizado es del tipo Boosting, el cual es un
el sistema digital", concepto de aprendizaje importante, en el cual se combina
el comportamiento de muchos clasificadores "débiles" para
 "Seleccionar la plataforma digital apropiada para la lograr un clasificador potente. Un clasificador débil se
aplicación", espera que sea mejor en una situación, y por ello es muy
 "Determinar las técnicas de procesamiento digital de simple requiere muy pocos recursos computacionales. Si
imágenes a utilizar en la detección de automóviles", varios de estos clasificadores se combinan de manera
apropiada es posible obtener un clasificador mucho mejor.
 "Implementar los algoritmos de mejoramiento y Existen diferentes variantes de clasificadores basados en
detección de imágenes en plataforma digital Boosting, entre los que se encuentran: Discrete Adabost,
seleccionada" Real Adaboost y Gentle Adaboost. Todos tienen una
 "Implementar y realizar la experimentación de campo". complejidad computacional idéntica y en lo que difieren es
en el algoritmo de aprendizaje [13].
El reconocimiento de automóviles en las imágenes
DESARROLLO procesadas del proyecto se realizó utilizando un
En esta sección inicialmente se describen brevemente los clasificador en cascada, el cual consistió en el uso de varias
conceptos y elementos esenciales relacionados al proyecto. etapas en secuencia. En cada una de las etapas se utilizó el
Posteriormente se presenta la propuesta desarrollada. clasificador Gentle Adaboost.

Patrones Binarios Locales Librería OpenCV


La descripción de la información contenida en una imagen La librería OpenCV (Open source Computer Vision Libray,
es un punto muy importante a tenerse en cuenta para lograr por sus siglas en inglés) ofrece es una plataforma de acceso
reconocer objetos que en ella se encuentran. Tal es el grado libre a software fuente referente a visión por computadora y
de importancia que ello determina en gran parte la aprendizaje automático [14]. Lo que permite OpenCV es
eficiencia del clasificador utilizado. La clasificación de infraestructura común para aplicaciones de visión por
textura es un tema de investigación muy activo en visión computadora y para acelerar el uso de percepción

CONIITEC 2016 http://coniitec.utrng.edu.mx


automática en productos comerciales. La librería cuenta disponible en las librerías de OpenCV. Dicha función hace
con más de 2500 algoritmos optimizados, incluyendo uso de un clasificador del tipo Gentle Adaboost que
algoritmos clásicos y del estado del arte en visión por requiere como entrada, además de la imagen a procesar
computadora y aprendizaje automático. El uso de los (archivo moi_509.png), un archivo generado en la etapa de
algoritmos incluyen la detección y reconocimiento de entrenamiento (archivo cascade.xml) (véase figura 2).
rostros humanos, identificación de objetos, clasificación de
acciones humanas en videos, etc... La librería OpenCv
cuenta actualmente con una comunidad de más de 47 mil
usuarios y un número de descargas de más de 7 millones.

Plataforma Digital
La plataforma digital utilizada en la implementación del
proyecto está basada en la tarjeta Raspberry Pi 2 (véase
figura 1). Dicha tarjeta fue seleccionada debido a las gran Figura 2. Proceso de identificación de automóviles.
cantidad de recursos computacionales que ofrece, los cuales
son utilizados en el procesamiento de las imágenes. La El resto de programa Phyton implementado tiene la función
tarjeta Raspberry Pi se puede considerar una computadora de enmarcar los objetos identificados de acuerdo al archivo
miniatura del tamaño casi de una tarjeta de crédito, lo cual de entrenamiento generado (véase figura 3).
ofrece ventajas de portabilidad.
En particular la tarjeta Raspberry Pi 2 cuenta con un
microprocesador ARMv7 BCM2836 con cuatro núcleos a
900 MHz y memoria RAM de 1 GB, y socket para
memoria de almacenamiento tipo micro SDI. En lo
referente a la conectividad cuenta con interface a Ethernet
10/100 base y cuatro conectores USB 2.0. Se tiene una
salida de video HDMI rev 1.3 & 1.4, [15].
Figura 3. Delimitación y conteo de automóviles.

Un aspecto importante en cualquier clasificador Adabost es


la etapa de entrenamiento, en la cual se genera el archivo de
extensión xml. A continuación se describe el procedimiento
para dicha etapa.

Entrenamiento
El entrenamiento es posible realizarse en una PC, a partir
del cual se genera el archivo del tipo xml. Los pasos a
seguir se describen a continuación de manera resumida:
Figura 1. Tarjeta Rasberry 2 pi empleada en proyecto. 1. Crear una carpeta donde se almacenarán los archivos
necesarios (la dirección no debe contener espacios).
Cámara
Las imágenes fueron capturadas con la cámara de 2. Dentro de dicha carpeta crear dos nuevas carpetas en
aplicación industrial UI-1240SE-MGL 1/1.8" del fabricante donde se almacenarán imágenes positivas e imágenes
IDS Imaging [16], la cual cuenta con una resolución de negativas.
1280x1024 monocromática. La transferencia de datos se
realiza mediante un puerto USB 2.0 disponible. 3. Almacenar en carpeta de imágenes positivas archivos
que contenga la imagen del tipo de objeto a identificar.
En nuestro caso son archivos con diferentes tipos o
Propuesta modelos de autos (véase figura 4).
El sistema propuesto para la aplicación consistió en el uso
de la cámara para adquirir las imágenes de una vialidad que
tiene una semáforo en un crucero. Dichas imágenes son
transferidas a la tarjeta Raspberry, en la cual se implementó
un programa en Phyton para realizar el procesamiento de
las imágenes y con ello la identificación y conteo de
automóviles presentes en un momento dado en el crucero. Figura 4. Ejemplos de archivos de imágenes positivas.
El programa en Phyton realiza el proceso de identificación
mediante la función detectMultiScale, la cual está

CONIITEC 2016 http://coniitec.utrng.edu.mx


4. De igual se almacenan en carpeta de imágenes entrenamiento. Deberá estar vacía antes de iniciar
negativas archivos que no contengan ningún tipo de entrenamiento.
objeto a identificar (véase figura 5). 9. Finalmente el entrenamiento se inicia con el comando:
opencv_traincascade.exe -data data -vec cars.vec -bg bg.txt -
numPos 350 -numNeg 350 -numstages 3 -w 30 -h 35 -
featureType LBP -precalcvalBuffSize 256 -precalcdxbufSize
256 -minHitRate 0.999 -maxFalseAlarmRate 0.5
en donde se especifican los siguientes parámetros:
Figura 5. Ejemplos de archivos de imágenes negativas.
carpeta de salida (-data data)
5. Es necesario crear un archivo de texto ligado a las archivo .vec (-vec cars.vec)
imágenes negativas (llamado en nuestro caso bg.txt), archivo background (-bg bg.txt)
cuyo contenido es la dirección parcial de cada una de número muestras positivas y negativas (-numPos
las imágenes negativas de acuerdo. Por ejemplo: 350 -numNeg 350)
neg\neg_0.jpg número etapas de entrenamiento (-numstages 3)
neg\neg_1.jpg resolución de imágenes dentro de .vec (-w 30 -h
neg\neg_2.jpg 35)
neg\neg_3.jpg tipo de descriptor (-featureType LBP)
neg\neg_4.jpg Una vez terminado el entrenamiento se generará el
neg\neg_5.jpg archivo xml (cascade.xml en nuestro caso).
....etc
6. En lo que respecta a las imágenes positivas es neceario
crear un archivo de texto que contenga información de RESULTADOS
ellas (en nuestro caso info.txt). El contenido del archivo La etapa de experimentación consistió en obtener
deberá contener la dirección parcial de las imágenes resultados en el reconocimiento de automóviles en
positivas y además cinco parámetros numéricos. El imágenes captadas en un crucero real. La cámara fue
primero será siempre '1' indicando el número de objetos colocada en una posición con la suficiente altura para
dentro de cada imagen positiva. Los cuatro números lograr una visión apropiada para el reconocimiento de los
posteriores corresponden a las coordenadas de un automóviles.
cuadro que contiene el objeto dentro de la imágen Los resultados para una serie de imágenes obtenidas de
correspondiente. En nuestro caso se utilizó el tamaño manera consecutiva en el crucero se muestran en las figuras
completo de la imagen, como se muestra a 6-11. Los resultados obtenidos muestran que el sistema
continuación: propuesto lleva a cabo el reconocimiento de automóviles
pos\pos_0.jpg 1 0 0 111 115 con diferentes características. Sin embargo, existen casos
pos\pos_1.jpg 1 0 0 26 30 en los que el reconocimiento no se realiza de manera
pos\pos_10.jpg 1 0 0 46 49 exitosa, se presentan las siguientes observaciones:
pos\pos_100.jpg 1 0 0 54 51
 Los automóviles de color oscuro que se
pos\pos_101.jpg 1 0 0 47 50
encuentran bajo sombra no son reconocidos,
pos\pos_102.jpg 1 0 0 37 40
(véase figura 11).
... etc
 Cuando los automóviles se encuentran a lo lejos
tienen poca resolución, lo cual implica que los
7. A partir del archivo de extensión info se crea uno de
descriptores obtenidos de una imagen tan pequeña
extensión vec mediante el comando
no son representativos de los objetos de interés, tal
opencv_createsamples.exe de la siguiente manera:
es el caso en figura 7.
C:\opencv\build\x64\vc12\bin\opencv_createsamples.exe -info  En situaciones de aglomeraciones de automóviles
info.txt -vec cars.vec -num 350 -w 30 -h 35 pause la detección tiende a ser errónea debido a que
donde se describe: algunos vehículos solo son parcialmente visibles y
nombre del archivo info (-info info.txt) de ellos no se obtiene la información suficiente en
nombre del archivo de salida (-vec cars.vec) el proceso de descripción (véase figura 12).
número de muestras positivas (-num 350)
resolución de imágenes archivo vec (-w 30 -h 35)
Una vez ejecutado el comando se genera archivo .vec
(cars.vec).
8. A continuación se crea una carpeta llamada data, que es
donde se almacenarán los archivos generados por el

CONIITEC 2016 http://coniitec.utrng.edu.mx


Figura 6. Resultado obtenido para primer imagen. Figura 9. Resultado obtenido para cuarta imagen.

Figura 7. Resultado obtenido para segunda imagen. Figura 10. Resultado obtenido para quinta imagen.

Figura 8. Resultado obtenido para tercer imagen. Figura 11. Resultado obtenido para sexta imagen

CONCLUSIONES vialidad controlada por un semáforo. La descripción de los


objetos de interés se realiza mediante patrones locales
El presente artículo describe los resultados obtenidos en la
binarios y la clasificación se lleva a cabo mediante
implementación de un sistema de visión artificial para el
clasificador Gentle Adaboost.
reconocimiento de automóviles que se encuentran en una

CONIITEC 2016 http://coniitec.utrng.edu.mx


[2] Khalid, A. S. Al-Khateeb. Jaiz, A. Y. Johari, Wajdi, F.
(2008). Dynamic traffic light sequence algorithm using
RFID. Journal of Computer Science, pags.517-524
[3] Haralik, R. M. Shanmugam, K. Dinstein, I. (1973). Texture
features for image classification. IEEE Trans. on Systems,
Man, and Cybertics. 3(6), pags. 610-621
[4] Randen, T. Husy, J. H. (1999). Filtering for texture
classification: a comparative study. IEEE Trans. on Pattern
Analysis and Machine Intelligence. 21(4), pags. 291-310
[5] Kashyap, R. L. Khotanzed, A. (1986). A model-based
method for rotation invariant texture classification. IEEE
Trans. on Pattern Analysis and Machine Intelligence. 8(4),
pags. 472-481
[6] Chen, J. L. Kundu A. (1994). Rotary and gray scale
transform invariant texture identification using wavelet
decomposition and hidden Markov model. IEEE Trans. on
Figura 12. Resultado caso de aglomeración. Pattern Analysis and Machine Intelligence. 16(2), pags. 208-
214
[7] Deng, H. Clausi, D. A. (2004). Gaussian VZ-MRF rotation-
De acuerdo a los resultados obtenidos el sistema invariant features for image classification. IEEE Trans. on
desarrollado es capaz de realizar el reconocimiento y Pattern Analysis and Machine Intelligence. 26(7), pags. 951-
conteo de automóviles presentes en el crucero. Sin 955
embargo, existen limitantes en el reconocimiento en ciertos [8] Ojala, T. Pietikainen, M. Maenpaa, T. T. (2002).
casos. ´ Multiresolution gray-scale and rotation invariant texture
Se tienen trabajos a desarrollar a futuro para aumentar la classification with Local Binary Pattern. IEEE Trans. on
eficiencia del proceso de reconocimiento. Siendo las Pattern Analysis and Machine Intelligence. 24(7), pags. 971-
987
principales: a) la exploración de diferentes descripciones de
imágenes b) hacer uso de diferentes variantes del [9] Ojala, T. Maenpaa, T. T. Pietikainen, M. Viertola, J.
clasificador utilizado. Una posible solución a investigar es Kyllonen, J. Huovinen, S. (2002). Outex- new framework for
implementar dentro del mismo algoritmo de empirical evaluation of texture analysis algorithm. in Proc.
International Conference on Pattern Recognition. pags. 701-
reconocimiento un detector de automóviles pequeños y otro
706
para los que se encuentren cerca de la cámara, esto
significa crear dos archivos del tipo xml. También otra [10] Ahonen, T. Hadid, A. Pietikainen, M. (2006). Face
recognition with local binary patterns: application to face
posibilidad planeada es hacer uso de iluminación infrarroja
recognition. IEEE Trans. on Pattern Analysis and Machine
y filtros apropiados para compensar la falta de contraste en Intelligence. 28(12), pags. 2037- 2041
algunos automóviles.
[11] Zhao, G. Pietikainen, M. (2007). Dynamic texture
recognition using local binary patterns with an application to
facial expressions. IEEE Trans. on Pattern Analysis and
AGRADECIMIENTOS Machine Intelligence. 27(6), pags. 915- 928
Los autores agradecen al PRODEP por el apoyo financiero para la [12] Huang, X. Li, S. Z. Wang, Y. (2004). Shape localization
realización del presente proyecto otorgado a la red "Sistemas based on statistical method using extended local binary
inteligentes en ámbitos complejos" a través de su convocatoria pattern. in Proc. International conference on Image and
Integración de Redes Temáticas de colaboración Académica 2015. Graphics. pp. 184-187
A su vez se agradece la contribución a los cuerpos académicos [13] Rainer, L. Kuranov, Pisarevsky, V. (2003), Empirical
participantes en dicha red: UATG-CA-4, ITLAG-CA-4 e ITCEL- analysis of detection cascades of bossted classifiers for rapid
CA-4. object detection, en Michaelis, B. Krell, G. Pattern
Recognition. Magdeburg, Germany: Springer Berlin:
Heidelberg
REFERENCIAS
[14] OpenCV WEB. Obtenido de http://opencv.org/
[1] Saeed, Y. Khan, S. Ahmed, K. (2011). A multi-agent based [15] Raspberry WEB. Obtenido de https://www.raspberrypi.org/
autonomous traffic lights control system using fuzzy control. [16] IDS Imaging WEB. Obtenido de https://www. es.ids-
International Journal of Scientific & Engineering Research. imaging.com/
2(6), pags. 2229-5518
.

CONIITEC 2016 http://coniitec.utrng.edu.mx

View publication stats

También podría gustarte