Diseño de un Sistema de clasificación de signos de tráfico vehicular utilizando redes neuronales convolucionales (DEEP LEARNING) www.fernandojimenezmotte.com

May 24, 2017 | Autor: Fernando Jimenez | Categoría: Artificial Intelligence, Artificial Neural Networks, Deep Learning
Share Embed


Descripción

FACTULTAD DE INGENIERÍA Carrera de Ingeniería Informática y de Sistemas

Diseño de un Sistema de Clasificación de Signos de Tráfico Vehicular utilizando Redes Neuronales Convolucionales

Tesis para optar por el título Profesional de Licenciado en Ingeniería Informática y de Sistemas

KEVIN JOSE MARINO AYUQUE ARENAS

Asesor: Fernando Jiménez Motte

Lima - Perú 2015





2

Índice de contenidos

Introducción……………………………………………………………………………………..….6 Problema de investigación………………………………………………………….……..6 Planteamiento del problema………………………………………..………………6 Formulación del problema…………………………………………………..………7 Justificación de la investigación…………………………………..…………..……7 Marco referencial…………………………………………………………..……………….7 Antecedentes……………………………………………..………………………….7 Estado del Arte……………………………………………………………………….8 Marco teórico……………………………………………….……………………….11 Objetivos……………………………………………………………………………………36 Objetivo general…………………………………………………………………….36 Objetivos específicos……………………………………………………...……….36 Método…………………………………………………….………………………………………37 Análisis……………………………………………….……………………………………..37 Tipo de investigación……………………………………………………………….……..47 Diseño………………………………………………………………….…………………...47 Especificación de diseño……………………………………..……………………47 Método de diseño…………………………………………………………………..47 Resultados………………………………………………………………………………………..53 Simulación y presentación de resultados………………………………………………53 Conclusiones……………………………………………………………………………....61 Recomendaciones …………………………………………………………………….….62 Referencias …………………………………………………………………………………....…63



3

Índice de figuras

FIgura 1. Caos y congestión vehicular. Un escenario común en la ciudad de Lima y en varias ciudades del mundo .......................................................................................... 6 FIgura 2. Algunas muestras de la base de datos GTSRB .................................................. 8 FIgura 3. Neurona biológica .............................................................................................. 11 FIgura 4. Modelo matemático de neurona artificial ........................................................... 11 FIgura 5. Cuando 2 neuronas disparan al mismo tiempo, su conexión se fortalece ......... 18 FIgura 6. Cuando 2 neuronas disparan de manera asíncrona, su conexión se debilita ... 18 FIgura 7. Arquitectura de red neuronal Perceptrón con 1 unidad de salida ...................... 20 FIgura 8. Modelo de red neuronal Perceptrón con j unidades de salida ........................... 20 FIgura 9. Carácter A con dimensión 11x7 ......................................................................... 21 FIgura 10. Arquitectura de Perceptrón multicapa .............................................................. 24 FIgura 11. El experimento de Hubel y Wiesel ................................................................... 29 FIgura 12. Red neuronal Neocognitrón según [21] ........................................................... 29 FIgura 13. Le-Net 5 [22] .................................................................................................... 30 FIgura 14. AlexNet [23] ..................................................................................................... 31 FIgura 15. El dato de entrada posee 3 dimensiones. En caso de una imagen, la tercera dimensión serían los canales R,G,B. Cada capa transforma el dato de entrada en un dato de salida de diferente dimensión. ...................................................................... 31 FIgura 16. Dato de entrada con padding de valor 0 y filtro 3×3×D con paso 2. El valor es calculado usando la sumatoria de pesos (pesos de conexión no incluidos en la figura) ........................................................................................................................ 32 FIgura 17. Max-pooling con filtro 2x2 y paso 2 ................................................................. 34 FIgura 18. Sustracción de promedio y normalización ....................................................... 48 FIgura 19. Algunas imágenes luego de ser procesadas ................................................... 48 FIgura 20. Función de pérdida y porcentaje de aciertos (entrenamiento) en el diseño 1 . 54 FIgura 21. Función de pérdida y porcentaje de aciertos (entrenamiento) en el diseño 2 . 55 FIgura 22. Función de pérdida y porcentaje de aciertos (entrenamiento) en el diseño 3 . 56 FIgura 23. Función de pérdida y porcentaje de aciertos (entrenamiento) en el diseño 4 . 57 FIgura 24. Función de pérdida y porcentaje de aciertos (entrenamiento) en el diseño 5 . 58 FIgura 25. Función de pérdida y porcentaje de aciertos (entrenamiento) en el diseño 6 . 59 FIgura 26. Diseño con mayor porcentaje de aciertos en la data de testeo ....................... 60 FIgura 27. La aplicación desarrollada para iPhone usa la cámara del dispositivo obtener nueva data para clasificar .......................................................................................... 61



4

índice de tablas Tabla 1 .............................................................................................................................. 36 Tabla 2 .............................................................................................................................. 53





5

Introducción Problema de Investigación Planteamiento del Problema El tráfico y congestión vehicular es un problema grave en la ciudad de Lima y en varias ciudades del mundo como se muestra en la 0. Para regular el tráfico se requiere de intervención humana como el de un policía de tránsito; sin embargo, Lino de la Barrera, gerente de la empresa de tránsito Kunay Consultores, sostiene que “La policía nunca se va a dar abasto controlando a todos los autos (tampoco tiene las herramientas para ello)”. [1] La policía no siempre se encuentra disponible en el momento oportuno y algunos de ellos son susceptibles a soborno al momento de poner una multa. Aunque se ha visto un aumento en el número de cámaras de seguridad instaladas en las calles de Lima (aproximadamente 500 en el año 2014 [1]), ellas requieren monitoreo humano, lo cual puede resultar una tarea complicada dependiendo de la cantidad de cámaras y la cantidad de eventos a monitorear (robo, asalto, accidente de tráfico, violación de las reglas de tránsito, etc.). Recientes avances científicos en el campo de inteligencia artificial podrían ser aplicados para resolver este problema, brindando inteligencia a las cámaras de seguridad para que monitoreen de manera autónoma que se respeten las reglas de tránsito. Este es un problema general que requiere de varias soluciones como el de identificación y clasificación de señal(es) de tránsito y evaluación de que se está respetando la señal de tránsito. Esta tesis busca enfocarse en el problema de clasificación.

FIgura 1. Caos y congestión vehicular. Un escenario común en la ciudad de Lima y en varias ciudades del mundo



6

Formulación del Problema ¿Cómo hacer que un sistema clasifique el símbolo de una señal de tránsito? Justificación de la Investigación Para poder controlar el tráfico a través de un sistema externo es necesario que se respeten las reglas de tránsito. En algunos casos, no obedecer las reglas de transito puede resultar en tragedia. En los últimos 10 años (2004 – 2015) se han reportado 1,041,704 accidentes de tránsito, resultando en 598,912 heridos y 38,567 muertes, siendo el exceso de velocidad uno de los principales factores. [33] Estas cifras pueden ser mayor puesto a que “solo reflejan la situación de lesionados o fallecidos que hay en el lugar mismo del accidente. Si pasados unos días, una víctima queda incapacitada o fallece, no se incluyen en las estadísticas”. [1] Marco referencial Antecedentes En el año 1943, el primer modelo de una neurona artificial fue propuesto por Warren McCulloch y Walter Pitts, el cual iría evolucionando a través del tiempo en diferentes variantes. [6] Uno de los sucesores fue el Perceptrón, propuesto por Frank Rosenblatt en el año 1957 y considerado la primera red neuronal, diseñado inicialmente con el propósito de reconocimiento de imágenes. Aunque inicialmente prometedor, este algoritmo sería incapaz de reconocer diferentes tipos de patrones como la compuerta lógica XOR, por lo que se perdió el interés en el campo por varios años. [7] El interés en el campo fue renovado a mitad de los ochenta cuando se descubrió que usando más capas en el modelo del Perceptrón y otra técnica para actualizar los pesos de conexión denominada retropropagación, se obtenían mejores resultados. [4, 17] Además, en esta década Kunihiko Fukushima desarrolló el Neocognitrón, un tipo de red neuronal inspirado en procesos biológicos. [21] Su sucesor, la red neuronal convolucional desarrollado por Yann LeCun et al. en los noventa se convertiría en el estado de arte en reconocimiento de patrones. [5] Otros factores que llevó al renovado interés en redes neuronales en años posteriores sería el incremento de poder computacional. Según la ley de Moore “el número de transistores en un microprocesador se duplica cada dos años” y para ese entonces ya era posible usar



7

métodos numéricos más complejos. Otro factor sería la disponibilidad de grandes base de datos en el mercado, sobre todo la que es recolectada por servicios en internet como Google o Facebook. Por último, el descubrimiento de algoritmos más robustos.

Una de las aplicaciones similares que se ha dado en el Perú es el OCR para el reconocimiento de placas vehiculares. El más arcaico fue desarrollado en el año 2006 para una tesis de licenciatura, en el cual la red neuronal fue desarrollado usando la técnica de retropropagación, sugiriendo que se debe mejorar el reconocimiento de letras y presenta como alternativas los mapas autoorganizadores de Kohonen. Consiguientes estudios realizados en el país se basan en la misma primicia del método de retropropagación y se ven limitados por imágenes en blanco y negro (bipolar), ruido, diferencia de color, formato e iluminación. [11, 12, 13] El mapa de autoorganizador de Kohonen, propuesto por Tuevo Kohonen en 1982, es un tipo de red neuronal basado en aprendizaje no supervisado. [10] Un estudio realizado en el 2011 muestra cómo se puede aplicar este algoritmo al problema de OCR con caracteres dibujados por mouse. [9] Estado del Arte En el caso de clasificación de señales de tránsito, se han realizado varios estudios en base a la base de datos GTSRB, que cuenta con más de 50 mil imágenes distribuidas en más de 40 clases. [32] Estos estudios usan diferentes métodos como el de Vecinos Más Cercanos (Nearest Neightbor Classifier), Máquina de Soporte de Vectores (Support Vector Machine), entre otros. El mejor resultado obtenido fue usando una red neuronal convolucional. [28, 29, 30]

FIgura 2. Algunas muestras de la base de datos GTSRB



8

La red neuronal convolucional fue creada para reconocer patrones visuales directamente de imágenes con mínimo pre-procesamiento. Es capaz de reconocer patrones con extrema variabilidad y con robustez a distorsiones o transformaciones geométricas, como es el caso de caracteres escritos. [5] Este modelo, a veces denominado “Deep Learning” ha tenido gran éxito en otros casos de uso como el reconocimiento de escritura a mano, imágenes y voz. [8, 23] Notoriamente, en el año 2012 empezó a ganar popularidad al ser el modelo usado en ganar la competencia “ImageNet” cuyo resultado sería significativamente mayor al previo estado del arte. [23] En el caso de clasificación de caracteres escritos a mano usando la base de datos MNSIT, el mejor resultado fue obtenido en el año 2013 con un error de 0.21% usando DropConnect, una variante de la red neuronal convolucional. [2] Esta red también puede ser usado en dispositivos compactos como teléfonos celulares. En el caso de Google Translate, se usa una red neuronal compacta con suficiente data entrenada para que sea eficiente en teléfonos celulares. [3] Los resultados mencionados de la base de datos GTSRB fueron realizados a finales del año 2011; sin embargo, desde el año 2012 se han propuesto nuevas variantes de redes neuronales convolucionales, ya sea usando una función de activación diferente, usando más capas en la red, introduciendo nuevas capas como la de “Batch normalization” o nuevos métodos de optimización. En esta tesis se va a discutir los más recientes variantes en redes neuronales convolucionales y aplicarse al problema de clasificación de señales de tránsito.



9

1943

McCulloch-Pitts



Modelo de una



neurona •



1957

1987

1998

Perceptrón

Perceptrón multicapa con retropropagación

Red Neuronal Convolucional

Propuesto por Frank



Propuesto por David

Rosenblatt

Rumelhart, Geoffrey

Diseñado para

Hinton y Ronald

reconocimiento de

Williams en “Learning

imágenes.

Internal

No puede reconocer

Representations by

diferentes tipos de

Error Propagation”

patrones como la



Optimizar el peso a

compuerta logica

través de métodos

XOR.

como “Gradient descent”. •

Primeras discusiones se dan en los sesenta, no relacionado con redes neuronales.









Sucesor de la red

2012



Se convierte en

neuronal

el estado de arte

Neocognitron.

para resolver

Inspirado en

varios problemas

procesos

como visión,

biológicos (la

reconocimiento

corteza visual).

de voz, etc.

Marco Teórico Neurona artificial Modelo inspirado en la neurona biológica, propuesta por primera vez en 1943 por Warren McCulloch y Walter Pitts. Describe como una neurona recibe señales de entrada a través de sinapsis de otras neuronas que se conectan a las dendritas de la neurona, esta información es procesada en una señal de salida a través del axón, que es el resultado de la multiplicación entre la señal de entrada con la fuerza de la sinapsis que se conecta a la dendrita. Esta señal de salida puede ser compartida con otras neuronas. Posteriormente se descubre que la fuerza de la sinapsis es variable; es decir, se puede ajustar para simular aprendizaje. En el modelo computacional, las señales de entrada equivalen a los datos de entrada y la señal procesada equivale a la unidad de salida.

Dendrita Sinápsis

Axón

Cuerpo celular

FIgura 3. Neurona biológica

!" Sinápsis

#"

!" #"

Axón de otra neurona

Cuerpo celular

*

, -& !' #' + ). '+$

x1

!$ #$

*

& !' #' + ) '+$

x2

Axón

f

Función de activación

!% #%

FIgura 4. Modelo matemático de neurona artificial



11

La unidad de salida es definida por la función de activación: *

/=,

!' #' + )

1

'+$

Donde: / es la unidad de salida (output unit), 2 es la cantidad de datos de entrada, !' es el peso de la conexión (weight), #' es la activación de la unidad de entrada (input activation), ) es peso sesgo (bias). Otra forma de definir esta función es usando el peso sesgo ) como !" y asignándole 1 a #" : #" = 1 *

/=,

!' #'

2

'+"

Cabe recalcar que recientes estudios indican que la neurona biológica no tiene el mismo comportamiento que la neurona propuesta por McCulloch-Pitts [14], lo que ha llevado a que su connotación aceptada sea unidad. Función de activación La función de activación o función de transferencia produce la unidad de salida. Puede ser considera como una función de decisión, es decir, determina si por la neurona artificial existe alguna característica en particular. Existen diferentes tipos de funciones de activaciones, entre las principales se encuentran:



12

Función identidad , # = #,

∀ #

3

Es una función que devuelve el mismo resultado. Por lo general su uso se limita a la última capa de la red neuronal, la capa de salida, por ejemplo, para aproximación de funciones. Función escalón unitario binario (Binary step function)

, # =

1, 0,

# ≥ 9 #
Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.