Reconhecimento de Sinais de Trânsito Utilizando Deep Learning Marcos Vinícius Oliveira Sobrinho 1, Matheus Chaves Menezes 1, Chrystian Gustavo Martins Nascimento 1, Geraldo Braz Júnior 2 1 Curso de Ciência da Computação Universidade Federal do Maranhão (UFMA) São Luís - Brasil 2 Departamento de Informática Universidade Federal do Maranhão (UFMA) São Luís - Brasil {mv.olsob,matheuschavesmenezes,chrystiang20}@gmail.com,geraldo.braz@ufma.br Abstract. There is no doubt that traffic signs are extremely important to the harmony and operation of traffic, mainly in larger urban centers. Every sign has a unique meaning that need to be understood e respected by pedestrians e drivers, because an oversight could lead to serious problems, including fatal accidents. This paper describes the creation of a computational model for classification of traffic signs boards, using techniques of Deep Learning. To train the model, a database of synthetic images of the traffic signs was created, applying image processing techniques for this. Lastly, real traffic signs images were used to validate the model created. Resumo. Não há dúvidas que os sinais de trânsito são de extrema importância para a harmonia e o funcionamento do trânsito, principalmente em grandes centros urbanos. Cada sinal possui um significado único que deve ser entendido e respeitado por pedestres e motoristas, pois um descuido pode levar a graves problemas, incluindo acidentes fatais. Este trabalho descreve a criação de um modelo computacional para classificação de sinais de trânsito em placas, utilizando técnicas de Deep Learning. Para treinar o modelo, foi criada uma base de dados com imagens sintéticas dos sinais de trânsito, aplicando-se técnicas de processamento de imagem para isto. Por fim, imagens de placas de trânsito reais foram utilizadas para validação do modelo criado. 1. Introdução Sistemas computacionais são utilizados diariamente por pessoas, máquinas ou outros sistemas, auxiliando-os seja na tomada de decisão, ou realizando tarefas de forma automatizada. Também podem ser utilizados para monitoramento e detecção de objetos específicos em ambientes com excesso de informação, bem como os sinais de trânsito presentes em avenidas movimentadas. Para quem vive nos centros urbanos, é perceptível o aumento do número de veículos e pedestres. Com isso, cresce também o número de acidentes com vítimas no trânsito, sendo a imprudência um dos principais motivos. Também há casos em que os acidentes são causados por falta de atenção na sinalização do trânsito. Portanto, pode-se pensar em sistemas que deem assistência avançada de condução, onde o reconhecimento de sinais de trânsitos é uma importante tarefa.
Diversos trabalhos orientados para o reconhecimento e classificação de sinais de trânsito mostram que técnicas computacionais são eficientes para este trabalho, a utilização de descritores locais [da Silva et al. 2012] gerou resultados com 84,78% de êxito na classificação; outro trabalho, utilizando Support Vector Machine (SVM), apresentou resultados positivos com 93,24% de acurácia [Maldonado-Bascon et al. 2007]. Também há casos onde são extraídas as características dos sinais de trânsito com algoritmos de otimização, e classificando-os com o algoritmo Random Forest [Silva et al. 2015], com uma taxa de erro de 12,50% em relação a base de dados The German Traffic Sign Recognition Benchmark (GTSRB) [Stallkamp et al. 2012] Aprendizado de máquina é uma área de Inteligência Artificial, cujo objetivo é o desenvolvimento de técnicas computacionais sobre o aprendizado, construindo sistemas capazes de adquirir conhecimento de forma automática. Através das experiências acumuladas, esses sistemas de aprendizado conseguem encontrar soluções mais eficientes a determinados problemas [Deng 2004]. A área de aprendizado de máquina desenvolveu-se rapidamente através dos estudos de reconhecimento de padrões, transformando-se na base da análise preditiva. Assim, sistemas de aprendizado de máquina são utilizados para identificar objetos em imagens, classificar pessoas em redes sociais, transcrever voz em texto, recomendar produtos a usuários em sites de comércio eletrônico, entre várias outras aplicações. Cada vez mais, estas aplicações fazem uso de um conjunto de técnicas chamado de Deep Learning [LeCun et al. 2015]. Este trabalho propõe a criação de modelo de aprendizado de máquina utilizando técnicas de Deep Learning para classificação de sinais de trânsito em placas. Na seção 2, são apresentados conceitos introdutórios sobre Deep Learning, além do modelo de rede neural utilizado neste trabalho. Na seção 3, explana-se a geração da base de dados, o treinamento e a classificação da rede. Na seção de 4, são exibidos os resultados alcançados ao testar a rede com imagens dos sinais de trânsitos adquiridos da internet. 2. Redes Neurais Convolucionais e Deep-Learning Entre as diversas variações de redes neurais artificiais, uma das que mais ganhou destaque é a Rede Neural Convolucional, que é o conjunto de múltiplas tarefas de aprendizado de máquina que lida com diferentes tipos de abstração, sendo que sua característica mais marcante é a resolução de problemas a partir de estruturas de representação dos dados de diferentes maneiras [Deng 2004]. As Redes Neurais Convolucionais (RNCs) foram inspiradas no sistema de visão humana. Elas recebem como entrada, pequenas porções de imagens, na camada mais baixa da estrutura hierárquica. A arquitetura mais complexa permite estabilidade mesmo com alterações em relação a escala, ou rotação. A rede é composta basicamente de neurônios, que possuem peso e inclinações treináveis, e acesso a recursos básicos, como por exemplo, bordas [Sarraf and Tofighi 2016]. Representação de aprendizagem são métodos que fornecem a uma máquina um conjunto de dados não processados, e esta descobre automaticamente representações de classificação ou detecção. O método de representação de aprendizagem Deep Leaning realiza esse processo com vários níveis, através de um conjunto de módulos simples e não-lineares, em que a cada nível essa representação se torne mais abstrata. Quando se trata de classificação, grande parte das variações consideradas irrelevantes são descartadas
nas camadas mais altas, enquanto que características distintas de borda, por exemplo, são separadas. O importante a se notar é que essas camadas de aprendizagem são criadas a partir dos dados aprendidos, durante um procedimento chamado de aprendizagem de uso geral, sem nenhuma participação direta de um humano [LeCun et al. 2015]. Uma famosa arquitetura de RNC é a rede LeNet-5. Esta foi desenvolvida por [LeCun 1998] e está ilustrada na Figura 1. Essa rede foi utilizada primeiramente para classificação de dígitos e então foi aplicada para verificar números escritos à mão com resultados bem sucedidos. A sua aplicação foi expandida para problemas mais complicados, como classificação de imagens cerebrais de pessoas portadoras de Alzheimer [Sarraf and Tofighi 2016] e não portadoras. Com seus parâmetros ajustados para outras questões, a rede LeNet-5 apresenta bons resultados para classificação. Neste trabalho, a rede foi utilizada com poucas alterações iniciais para classificação das 16 classes de sinais de trânsito. Figura 1. Arquitetura da RNC LeNet-5 3. Metodologia Este trabalho foi conduzido em duas etapas. A primeira foi a aquisição da base de dados dos sinais de trânsito e a segunda foi a geração de modelo treinado para classificação destes sinais. É comum em trabalhos de classificação e aprendizado de máquina que as bases de dados sejam adquiridas de forma manual e em grande quantidade para que não haja classificações errôneas no modelo, principalmente se este modelo necessitar de grande acurácia em seus resultados. 3.1. Geração da Base de Dados Sistemas de classificação normalmente precisam de uma boa quantidade de dados para treinar e validar seu modelo, principalmente quando esses sistemas necessitam de uma boa acurácia. No trabalho apresentado por [Greenhalgh and Mirmehdi 2002], a obtenção dessa grande quantidade dos dados não era possível sem um considerável esforço manual. Aplicando-se técnicas de processamento de imagens, foram geradas imagens sintéticas de forma automatizada. Neste trabalho, aplicou-se procedimentos parecidos para a obtenção dos sinais de trânsito, o que levou à uma boa quantidade de dados gerados para o treino da RNC. As imagens padrões utilizadas para a criação da base de dados sintética foram obtidas da base de dados online do Departamento de Transporte do Maranhão
[DETRAN-MA 2016]. Para este trabalho, foram utilizadas 19 imagens-classes, representadas na Figura 2. Em cada imagem sintética gerada, são aplicadas distorções geométricas aleatórias, a fim de torná-la mais parecida com imagens reais de sinais em placas de trânsito. Após a aplicação das distorções, cada placa é sobreposta a uma imagem de fundo, escolhida aleatoriamente, entre as 32 disponíveis no gerador sintético. Depois de sobrepor as duas imagens, foram aplicados efeitos aleatórios de brilho, contraste, borrões e ruídos. Cada imagem foi salva em uma proporção de 28x28 pixels e em escala de cinza. Para cada classe, 1300 novas imagens sintéticas foram geradas com o processo descrito acima. A Figura 3 mostra uma comparação da base de dados gerada sinteticamente e imagens manualmente capturadas para teste. Figura 2. Classes utilizadas para o treino da rede. O número abaixo de cada imagem representa seu rótulo. Figura 3. (a) Imagens criadas artificialmente. (b) Imagens manualmente adquiridas. 3.2. Ajuste de Modelo A rede RNC utilizada neste trabalho foi configurada com 30 épocas, utilizando a função de ativação sigmóide e com uma taxa de aprendizado igual a 0.15 para seu treino.
Os experimentos foram realizados dividindo as imagens em grupo de treinamento, validação e teste. Para cada classe, 500 exemplares foram aleatoriamente separados para serem utilizados no teste. O restante foi utilizado no treinamento, sendo que 1/3 foi usado especificamente para validação. Os resultados apresentados abaixo utilizam unicamente a base de teste. 4. Resultados A Figura 4 mostra a matriz confusão da classificação durante a etapa de teste da rede, utilizando as imagens da base conhecida e também as imagens geradas de maneira sintética. A acurácia do modelo foi de 99,98%. Figura 4. Matriz de confusão para o classificador da RNC (acurácia = 99.89%) A Tabela 1 apresenta os resultados separados por classe em termos de precisão do método, na qual podemos observar que para todas as classes testadas a metodologia obteve alta precisão. Tabela 1. Resultado da classificação dos sinais com a metodologia proposta
5. Conclusão Neste trabalho, um modelo de RNC de classificação de sinais de trânsito foi apresentado, utilizando um conjunto de técnicas de representação de aprendizagem chamada Deep Learning. O modelo criado foi testado utilizando imagens geradas de forma sintética, no qual obteve-se resultados satisfatórios. Entre os trabalhos futuros, deseja-se criar uma base de imagens reais, com a captura dos sinais realizada por uma câmera dentro de um veículo para realizar testes práticos da eficiência do método. Também sugere-se a detecção automática destes sinais, visando tanto a detecção quanto a classificação em tempo real. Referências da Silva, F. A., Artero, A. O., de Paiva, M. S. V., and Barbosa, R. L. (2012). Uma metodologia para detectar e reconhecer placas de sinalização de trânsito. VIII Workshop de Visão Computacional. Deng, L. (2004). Deep learning: Methods and applications. In BISHOP, C.M. Pattern Recognition and Machine Learning. Amazon.com. DETRAN-MA (2016). Departamento nacional de trânsito do maranhão. http://www. detran.ma.gov.br/. Accessed: 2016-04-19. Greenhalgh, J. and Mirmehdi, M. (2002). Real-time detection and recognition of road traffic signs. In IEEE, editor, IEEE TRANSACTIONS ON INTELLIGENT TRANSPORTATION SYSTEMS. IEEE. LeCun, Y. (1998). Gradient-based learning applied to document recognition. In IEEE, editor, Proceedings of the IEEE. IEEE. LeCun, Y., Bengio, Y., and Hinton, G. (2015). Deep learning. Nature, 521(7553):436 444. Maldonado-Bascon, S., Lafuente-Arroyo, S., Gil-Jimenez, P., Gomez-Moreno, H., and López-Ferreras, F. (2007). Road-sign detection and recognition based on support vector machines. IEEE Transactions on Intelligent Transportation Systems, 8(2):264 278. Sarraf, S. and Tofighi, G. (2016). Classification of alzheimer s disease using fmri data and deep learning convolutional neural networks. arxiv preprint arxiv:1603.08631. Silva, J., Farias, F., Lima, V., Silva, V., Seijas, L., and Bastos-Filho, C. (2015). Classificação de sinais de trânsito usando otimização por colmeias e random forest. XII BRAZILIAN CONGRESS ON COMPUTATIONAL INTELLIGENC. Stallkamp, J., Schlipsing, M., Salmen, J., and Igel, C. (2012). Man vs. computer: Benchmarking machine learning algorithms for traffic sign recognition. Neural Networks, (0):.