Reconhecimento de Modelos de Veículos

Documentos relacionados
GoogLeNet - Going Deeper with Convolutions

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION - VGG

Uma Abordagem Genética Para Redes Neurais Convolucionais

Um Estudo sobre Diferente Tipos de Funções de Custo Para Redes Neurais Convolucionais

Redes Neurais Convolucionais

Redes Neurais Convolucionais

RECONHECIMENTO DE CARACTERES EM IMAGENS COM RUÍDO

Redes Convolucionais Aplicadas em Visão Computacional

JAI 6 - Deep Learning Teoria e Prática

Roberto Lotufo Big Data Brasil São Paulo, 23 de junho de 2018

Aprendizado de Máquina

SEMINÁRIO DOS ARTIGOS:

Region Based CNNs. Francisco Calaça Xavier. Programa de pós-graduação em Ciências da Computação Mestrado e Doutorado. Instituto de Informática UFG

Redes Neurais Convolucionais Aplicadas à Preensão Robótica

Projetos finais. Grupo 3

Unidade 08 MATLAB Neural Network Toolkit

SEMINÁRIO Visão Computacional Aluno: Afonso Pinheiro

2. Redes Neurais Artificiais

Reconhecimento de Gestos

Inteligência Artificial

Redes Neurais Convolucionais com Tensorflow: Teoria e Prática

READING DIGITS IN NATURAL IMAGES WITH UNSUPERVISED FEATURE LEARNING

Machine learning para reconhecimento de padrões em tempo real

Um comparativo entre arquiteturas de redes neurais profundas aplicadas no reconhecimento de imagens

Deep Learning para Classificação de Imagens

JAI 6 - Deep Learning Teoria e Prática

Classificação de espécies de peixe utilizando redes neurais convolucional

Métodos de Deep Learning Aplicados a Candlestick como Estratégia de Investimento

First-person activity recognition. Matheus A. Nerone

Conceitos de Aprendizagem de Máquina e Experimentos. Visão Computacional

Segmentação Automática da Próstata em Imagens de Ressonância Magnética utilizando Redes Neurais Convolucionais e Mapa Probabilístico

Avaliando Técnicas de Aprendizado Profundo para Detecção de Esquistossomose Mansoni em Imagens de Exames Parasitológicos

Redes Neurais Artificiais - Introdução. Visão Computacional

Autor: Edroaldo Lummertz da Rocha Home page: edroaldo.wordpress.com

RECONHECIMENTO DE GÊNERO ATRAVÉS DA VOZ

Classificação de Objetos em Contexto Real por Redes Neurais Convolutivas

Classificação de Padrões. Abordagem prática com Redes Neurais Artificiais

Redes Neurais Arti-iciais - Introdução. Visão Computacional Prof. Geraldo Braz Junior

R 1: Se x é A 1 e y é B 1, então f 1 = p 1x + q 1y + r 1 R 2: Se x é A 2 e y é B 2, então f 2 = p 2x + q 2y + r 2

André de S. Moreira Caroline Rosa Redlich Suellen de A. C. da S. Motta Thiago R. da Motta Detecção de Pedestres em Vídeos

Object Tracking. Fernando Medeiros Dufour Ciência da Computação - UFPR Tópicos em Visão Computacional

Redes Neurais Artificiais

UM ESTUDO SOBRE ABORDAGENS PARA DE CLASSIFICAÇÃO DE ANIMAIS EM IMAGENS DE ARMADILHAS FOTOGRÁFICAS

Rumo à Melhoria de Produtividade e Sustentabilidade Agrícola por meio da Classificação Automática do Vigor de Sementes de Soja

Reconhecimento de Gestos usando Redes Neurais Convolucionadas

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS FABIO AUGUSTO GONÇALVES FACCINI

Redes Neurais Convolucionais de Profundidade para Reconhecimento de Textos em Imagens de CAPTCHA

Recognition of Pantanal Animal Species using Convolutional Neural Networks

Detecção e Re-mapeamento de Jogadores em um Campo de Futebol

Sketch to Photo Matching: A Feature-based Approach (Klare and Jain [2010])

Aprendizado de Máquina (Machine Learning)

Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais

Sistemas Especialistas

Reconhecimento de Produtos por Imagem Utilizando Palavras Visuais e Redes Neurais Convolucionais

Reconhecimento de Sinais de Trânsito Utilizando Deep Learning

ESCOLA POLITÉCNICA PROGRAMA DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO MESTRADO EM CIÊNCIA DA COMPUTAÇÃO LEANDRO PEREIRA DA SILVA

DETECÇÃO DE PORNOGRAFIA INFANTIL EM IMAGENS ATRAVÉS DE TÉCNICAS DE APRENDIZADO PROFUNDO PAULO ROBERTO ROCHA VITORINO

Reconhecimento e detecção de logotipos a partir de redes neurais convolucionais profundas

Tópicos sobre Redes Neurais

Aprendizado de Máquina. Combinando Classificadores

3 Redes Neurais Artificiais

Sistema de Reconhecimento Facial Baseado em Redes Neurais Convolucionais Profundas com Aplicação no Comércio Varejista

EXTRAÇÃO DE NETLIST A PARTIR DE IMAGENS UTILIZANDO REDES NEURAIS CONVOLUCIONAIS. Arthur de Arruda Chau

Detecção de pessoas em um ambiente industrial utilizando imagens de profundidade e classificadores profundos

UNIVERSIDADE DE SÃO PAULO ESCOLA DE ENGENHARIA DE SÃO CARLOS. Kaio Augusto de Oliveira

UNIVERSIDADE FEDERAL DO CEARÁ CAMPUS QUIXADÁ CURSO DE GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO LEODÉCIO BRAZ DA SILVA SEGUNDO

Previsão de consumos a curto prazo

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Redes Neurais Artificiais

Color Eyes Detector. Duarte Petiz. DCC/FCUP

Rede RBF (Radial Basis Function)

Combinação de Superpixels e Redes Convolucionais para Segmentação de Bovinos. Diogo Nunes Gonçalves

Paradigmas de Aprendizagem

Person Re-Identification. Autor: Guilherme Zasyeki Machado

WERTON PONTES DE ARAUJO LOCALIZAÇÃO DOS CENTROS DOS OLHOS USANDO REDES NEURAIS CONVOLUTIVAS E GRADIENTES DE IMAGEM

UNIVERSIDADE DO ESTADO DE MATO GROSSO - UNEMAT. Faculdade de Ciências Exatas e Tecnológicas FACET / Sinop Curso de Bacharelado em Engenharia Elétrica

Inteligência Artificial. Prof. Tiago A. E. Ferreira Aula 21 Projeto de RNA

Descritores de Imagens

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva

HP UFCG Analytics Abril-Maio Um curso sobre Reconhecimento de Padrões e Redes Neurais. Por Herman Martins Gomes.

Tópicos Especiais: Inteligência Artificial REDES NEURAIS

Detecção de Resíduos em Imagens de Bolsas para Coleta de Sangue Utilizando Redes Neurais Artificiais nos canais RGB

Redes Neurais Feedforward e Backpropagation. André Siqueira Ruela

Aprendizagem Profunda (Deep Learning) Marcondes Ricarte Universidade Federal de Pernambuco Centro de Informática

INF011 - Seminários de Pesquisa II

Análise Quantitativa de Tecidos em Úlceras de Perna

ANALISANDO TÉCNICAS DE DESENVOLVIMENTO EM REPOSITÓRIOS DE SOFTWARE ALUNO: BRENO GUSTAVO DE CARVALHO SIQUEIRA TORRES ORIENTADOR: MÁRCIO LOPES CORNÉLIO

Aprendizado de Máquinas. Multi-Layer Perceptron (MLP)

FLODNet - Detecção e reconhecimento de objetos em dispositivos de baixa especificação: um estudo de caso em classificação de alimentos

A instalação do DCR compreende apenas a descompactação do arquivo DCR.zip num diretório no disco. Descompacte o arquivo DCR.zip num novo diretório.

Aplicações da RMC. Avaliação de Algoritmos. Tratamento nos dados 27/8/2010. Roseli A F Romero SCC 5809 REDES NEURAIS

Aprendizagem de Máquina

Considerações de Desempenho

Back Propagation. Dicas para o BP

Reconhecimento de palma de mão. Peterson Wagner Kava de Carvalho

Objetivos. 1. O método desenvolvido usa características de pares de pixeis para fazer estatísticas e formar

Composição de música utilizando LSTM

Aplicação de Histograma de Gradientes Orientados para detecção de hidrômetros em imagens de fundo complexo

Reconhecimento de ações humanas em vídeos por meio de transferência de aprendizado

Transcrição:

Reconhecimento de Modelos de Veículos Fernando Benedito Veras Magalhães January 15, 2018 1 Introdução Em 2017, 2,1 milhões de automóveis, incluindo picapes e furgões, foram vendidos no Brasil. A variedade de modelos disponíveis ao consumidor tende a aumentar a medida que as montadores tentam produzir o carro perfeito para cada nicho do mercado. É comum que pessoas não saibam reconhecer os carros que observam no dia a dia, incluindo alguns dos modelos mais comuns. Um método de reconhecimento de veículos além de ajudar os curiosos, pode ajudar agentes de segurança a identificar automóveis cuja a placa não está visível ou pode ter sido adulterada. O uso de aprendizado supervisionado de máquina pode levar ao desenvolvimento de um classificador eficiente capaz de predizer o modelo de um veículo tomando como entrada uma imagem do mesmo. Esse trabalho buscar treinar redes neurais convolucionais para o reconhecimento do modelo de automóveis e possui como objetivos específicos: Pré-processar uma base de dados para o treinamento de redes neurais; Treinar diferentes arquiteturas de redes neurais; Comparar o desempenho de cada uma delas; 2 Fundamentação Teórica 2.1 Redes Neurais Convolucionais (CNNs) CNNs são um tipo especial de redes neurais especialmente eficazes em extrair características de imagens, também são muito utilizadas para reconhecimento de fala e de linguagem natural. A utilização de CNNs permite diminuir o número de pesos em cada camada da rede além de representar melhor o relacionamento espacial entre pixels próximos. As CNNs buscam identificar padrões, sendo que suas camadas iniciais obtém características de baixo nível e alimentam as camadas posteriores obtendo características de cada vez mais alto nível. As CNNs são caracterizadas pelo uso das seguintes operações: 1. Convolução: A convolução consiste em obter neurônios que levam em consideração apenas uma região da imagem. Cada neurônio convolucional processa os dados referentes apenas a seu campo receptivo. Na figura 1 podemos notar como diferente das camadas de uma rede neural comum nas camadas convolucionais os neurônios não estão conectados a todos os neurônios da camada anterior. 2. Pooling: Consiste em combinar as características de píxels próximos tomando apenas a característica de maior valor (Max Pooling) ou a média delas (Average Pooling). Objetiva reduzir a dimensionalidade do espaço de características. A figura 2 demonstra a diferença entre Max Pooling e Average Pooling 3. Relu: Funciona como uma função identidade, porém retornando 0 para valores negativos. 2.2 GoogLeNet e o Módulo Inception A CNN GoogLeNet foi vencedora de algumas categorias do ImageNet Large-Scale Visual Recognition Challenge 2014. O artigo [SLJ + 15] propõe essa rede juntamente com seu módulo principal, o Inception. 1

Figure 1: Algumas camadas convolucionais. Figure 2: Max Pooling e Average Pooling. 2.2.1 Inception O módulo inception é caracterizado pela utilização filtros 1x1, 3x3 e 5x5 juntamente com um pooling os resultados desses filtros são combinados e enviados para a próxima camada. Dessa maneira, o módulo pode capturar características em diferente níveis e durante o treinamento, aquelas que forem mais relevantes irão se sobressair. A arquitetura do módulo inception dessa maneira está representada na figura 3(a). Porém essa arquitetura necessitaria de um grande número de pesos, o que tornaria a CNN mais custosa computacionalmente. Então decidiu-se adotar algumas convoluções 1x1 para reduzir a dimensionalidade dos filtros, obtendo como resultado a arquitetura da figura3(b). Assim, combinando módulos inception com redução de dimensionalidade, é possível construir redes profundas, capazes de obter características de alto nível e cada vez menos lineares, mas ainda assim necessitar de relativamente pouca memória e processamento para a inferência de uma classe. 2.2.2 GoogLeNet GoogLeNet foi a CNN baseada no módulo inception submetida para o ILSVRC 2014. A GoogLeNet começa com algumas convoluções e máx poolings e é seguida por 9 módulos inception. Possuindo ao final um Average Pooling, Uma camada Fully Conected e uma saída softmax. É interessante notar que a rede possui outras saídas no meio da arquitetura. Essas saídas secundárias são utilizadas apenas durante o treinamento e servem para garantir que os gradientes sejam propagados para as camadas longe da saída final da rede. A arquitetura da GoogLeNet está representada na figura 4 3 Dataset O dataset [KSDFF13] utilizado é composto de 2120 imagens de 50 classes diferentes, o que inclui 10 marcas cada uma com 5 modelos o número de imagens por modelo é variado, ficando em torno de 37. Nas imagens, os veículos encontravam-se em posições variadas, incluindo fotos frontais, traseiras e várias fotos diagonais, as cameras e localidades onde as fotos foram tiradas também eram variadas. Originalmente, as imagens possuiam tamanhos variados e não estavam cortadas de modo a incluir apenas a bounding box dos veículos. A maioria das imagens estava colorida. O objetivo era usar como entrada imagens de tamanho 299,299 com 3 canais (RBG) para isso foi necessário pre-processar as imagens. 2

Figure 3: O módulo inception. Fonte:[SLJ + 15] 3.1 Pré-processamento O dataset incluia uma pasta com todas as imagens e um arquivo contendo a bounding box das imagens e a sua classe representada apenas por um número. Foi escrito um script para cortar as imagens de modo a conter apenas o bounding box e separá-las em pastas de acordo com a classe a qual pertenciam. Foi enviada uma mensagem para o email disponibilizado na página do dataset de modo a obter o modelo de veículo o qual cada número representava, mas nenhuma resposta foi obtida. Então foi necessário observar as imagens em busca dos modelos e por meio de pesquisas na internet foi possível obter o modelo que cada inteiro representava. As imagens foram então dividas em 80% para treino e 20% para validação. Por fim foi necessário ajustar as imagens para o formato 299,299,3 e convertê-las para matrizes de modo que pudessem ser armazenadas em um único arquivo que pudesse ser lido na nuvem do google. 3.2 Aumento de dados Devido ao número pequeno de imagens por veículo, foi utilizada uma técnica de aumento de dados nas imagens reservadas para treino, foram utilizados de forma aleatória durante o treinamento espelhamentos horizontais, inclinações de até 30 graus e zooms. 4 Treinamento Foram adotadas 4 arquiteturas de redes neurais: uma CNN simples, uma com um módulo inception, uma com 3 módulos inceptions e por fim a GoogLeNet pré-inicializada com os pesos da base ImageNet. Seguem as arquiteturas das redes construídas utilizando a bibioteca keras [C + 15]: 1. SimpleConvNet: Convolução(32 filtros de (3,3), relu) MaxPooling(32 filtros de (2,2)) Convolução(32 filtros de (3,3), relu) MaxPooling(32 filtros de (2,2)) Convolução(64 filtros de (3,3), relu) MaxPooling(64 filtros de (2,2)) Flaten() 3

Figure 4: A rede GoogLeNet. Fonte:[SLJ + 15] 4

FullyConnected(128 saídas, relu) Dropout(50%) FullyConnected(50 saídas, relu) Sigmoid() 2. SingleInception: Convolução(32 filtros de (3,3), stride(2,2) relu) Convolução(32 filtros de (3,3), relu) Convolução(64 filtros de (3,3), relu) MaxPooling(64 filtros de (3,3), stride(2,2)) Convolução(80 filtros de (1,1), relu) Convolução(192 filtros de (3,3), relu) MaxPooling(192 filtros de (3,3), stride(2,2)) 1 Módulo inception GlobalAveragePooling() FullyConnected(50 saídas, relu) Sigmoid() 3. GoogLeNet: Substitui o final da rede para retreinar de acordo com o novo dataset. Toma a saída do último módulo inception e adiciona: GlobalAveragePooling() FullyConnected(1024 saídas, relu) FullyConnected(50 saídas, relu) Sigmoid() O treinamento foi feito em 100 épocas para todas as configurações de CNN, exceto para a GoogLeNet, cujo treinamento foi dividido em duas etapas: A primeira consistiu de 50 épocas treinando apenas as camadas que foram adicionadas ao final da rede. Na segunda essas últimas camadas foram treinadas juntamente com o último módulo inception da rede por mais 50 épocas. O treinamento foi feito desse modo seguindo o tutorial de fine tune apresentado em: https: //keras.io/applications/#inceptionv3 5 Resultados A SimpleConvNet apresentou acurácia de 5% no dataset de treino e 6% no dataset de validação(figuras 5 e 6). A rede com 1 módulo inception apresentou uma acurácia de 93% no dataset de treino e 49% no dataset de validação(figuras 7 e 8). Ao final das primeirs 50 épocas, a GoogLeNet apresentou uma acurácia de 63% no dataset de treino e 48% no dataset de validação (figuras 9 e 10). Treinadas mais 50 épocas seguindo o descrito na seção anterior, a acurácia foi de 96% no dataset de treino e 67% no de validação(figuras 11 e 12). 5

Figure 5: Acurácia SimpleConvNet. Figure 6: Loss SimpleConvNet. Figure 7: Acurácia Single Inception. 6

Figure 8: Loss Single Inception. Figure 9: Acurácia GoogLeNet etapa 1. Figure 10: Loss GoogLeNet etapa 1. 7

Figure 11: Acurácia GoogLeNet etapa 2. Figure 12: Loss GoogLeNet etapa 2. 8

6 Conclusão Podemos notar que uma rede muito simples como a SimpleConvNet descrita é completamente incapaz de resolver um problema tão complexo quanto o proposto. Já o uso de uma rede com algumas camadas convolucionais e de pooling seguida de um módulo inception apresentou um desempenho muito bom, 93% de acurácia no dataset de treino, porém notamos que a rede pode sofrer com overfitting devido ao desempenho ruim no dataset de validação. Ao utilizar uma rede conhecida e com bons resultados no ImageNet como a GoogleNet notamos que ela apresentou um desempenho ainda melhor no dataset de treino e sofreu menos com o possível overfitting, 67% de acurácia no dataset de validação. Não pode-se concluir que há um grande overfitting nas redes devido ao dataset conter poucas imagens por veículo e alta variação entre elas que acontece pois as fotos foram tiradas de várias posições diferentes. Mesmo utilizando técnicas de aumento de dados, alguns veículos possuem apenas 3 fotos que mostram a traseira. Porém devido a alta acurácia no treinamento das duas últimas redes em apenas 100 épocas, pode-se ter alguma confiança de que o problema possa ser resolvido utilizando um dataset com mais imagens por veículo ou fotos que foram tiradas de posições similares. References [C + 15] François Chollet et al. Keras, 2015. [KSDFF13] Jonathan Krause, Michael Stark, Jia Deng, and Li Fei-Fei. 3d object representations for fine-grained categorization. In Proceedings of the IEEE International Conference on Computer Vision Workshops, pages 554 561, 2013. [SLJ + 15] Christian Szegedy, Wei Liu, Yangqing Jia, Pierre Sermanet, Scott Reed, Dragomir Anguelov, Dumitru Erhan, Vincent Vanhoucke, and Andrew Rabinovich. Going deeper with convolutions. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1 9, 2015. 9