SlideShare uma empresa Scribd logo
1 de 61
Baixar para ler offline
Sistema de Navegação Autônomo Baseado em Visão
Computacional
Trabalho de Conclusão de Curso
Michel Conrado Cardoso Meneses
São Cristóvão - Sergipe
2017
Sistema de Navegação Autônomo Baseado em Visão
Computacional
Orientador: Prof. Dr. Leonardo Nogueira Matos
Coorientador: Prof. Dr. Bruno Otavio Piedade Prado
São Cristóvão - Sergipe
2017
Michel Conrado Cardoso Meneses
1. Introdução
● Navegação de robôs autônomos
○ Aplicações: monitoramento, mapeamento, transporte, busca (SIEGWART; NOURBAKHSH,
2004);
○ Motivação: inviabilidade de presença humana (NASA, 2017), redução de custos (KADIR et
al., 2015), comodidade (IROBOT, 2017).
Figura 1 - Mars Rover Curiosity. Figura 2 - empilhadeira
autônoma (Courtesy Photo).
Figura 3 - iRobot Roomba 500.
1. Introdução
● Requisitos
○ Dependência mínima de sistemas externos;
○ Adaptação a ambientes dinâmicos;
○ Tempo de resposta mínimo.
● Consequência
○ Quanto maior a autonomia desejada, mais relevante é a modelagem do ambiente.
1. Introdução
● Visão
○ Alta resolução (dimensões, texturas, cores, bordas);
○ Modelos com alto nível de detalhamento;
○ Principais técnicas necessitam de plataformas computacionais robustas
■ Ex: Visão estereoscópica (LINS et al., 2016).
1. Introdução
● Raspberry Pi (FOUNDATION, 2016)
○ Pequeno porte;
○ Eficiente gerenciamento de energia;
○ Baixo custo de aquisição.
Figura 4 - Raspberry Pi 3 Model B.
1. Introdução
● Motivação
○ Robôs que atendam aos requisitos de autonomia (através da visão) por um baixo custo
(através da Raspberry Pi).
2. Objetivos
● Desenvolver um robô de baixo custo capaz de se locomover de maneira
autônoma através da visão e baseado na plataforma Raspberry Pi
○ Revisar técnicas de visão computacional utilizadas para navegação autônoma;
○ Investigar o desempenho da Raspberry Pi ao executar algoritmos de visão computacional;
○ Construir a plataforma física do robô;
○ Implementar uma estratégia de navegação baseada em visão;
○ Comparar o sistema final desenvolvido aos apresentados por trabalhos relacionados;
3. Estrutura da Apresentação
● Classificação de fluxo óptico;
● Sistema proposto;
● Avaliação do sistema;
● Conclusão.
4. Classificação de Fluxo Óptico
● Fluxo óptico
○ Conjunto de vetores que descrevem a movimentação aparente de padrões de brilho de uma
imagem (FLEET; WEISS, 2005).
Figura 5 - Padrão de brilho no
instante t.
Figura 6 - Padrão de brilho no
instante t+1.
Figura 7 - Fluxo óptico.
4. Classificação de Fluxo Óptico
● Fluxo óptico
○ Permite inferir dimensão, posição e velocidade relativas de elementos contidos na cena
registrada (CALDEIRA et al., 2007).
Figura 8 - Exemplo de movimentação percebida entre duas imagens em sequência.
(a) (b) (c)
4. Classificação de Fluxo Óptico
● Fluxo óptico
○ Relevante para a navegação
■ Está diretamente relacionado à movimentação percebida pelo agente;
■ Várias aplicações: rastreamento de objetos (SHANTAIYA et al., 2015), odometria
(ROSS et al., 2012), detecção de obstáculos (SHANKAR et al., 2014).
4. Classificação de Fluxo Óptico
● Detecção de obstáculos
○ Movimentação contrastante a dos demais elementos da cena.
Figura 9 - Exemplo de movimentação
contrastante de obstáculo.
4. Classificação de Fluxo Óptico
● Detecção de obstáculos
○ Modelo para reconhecimento de movimentação
■ Padrão = movimento percebido entre duas imagens;
■ Características = intensidade e direção;
■ Grupos = {presença de obstáculos; ausência de obstáculos}.
4. Classificação de Fluxo Óptico
● Detecção de obstáculos
○ Treinamento de máquina classificadora (THEODORIDIS, 2003)
■ corresponde ao vetor de características associado à i-ésima imagem.
■ corresponde ao par (V1
,V2
), sendo V1
e V2
, respectivamente, a norma e a fase do
vetor de fluxo óptico associado ao n-ésimo ponto da imagem.
■ é o rótulo de cada vetor .
5. Sistema Proposto
● Estratégia
○ Identificação de obstáculos baseada no reconhecimento de padrões de fluxo óptico através
de uma máquina classificadora.
○ Vantagens:
■ Estimação do fluxo é computacionalmente barata (O’DONOVAN, 2015);
■ Ajuste automático do modelo;
■ Generalização.
5. Sistema Proposto
● Etapas do desenvolvimento
○ Hardware;
○ Software.
5.1. Hardware
● Raspberry Pi 3 Model B
○ CPU ARMv8 quad-core 64-bit 1,2GHz;
○ RAM 1GB;
○ LAN Wireless 802.11n;
○ 4 portas USB;
○ Consumo médio: 5,1W.
Figura 10 - Raspberry Pi 3
Model B.
5.1. Hardware
● Raspberry Pi 3 Model B
○ GPIO - General Purpose Input/Output
■ Interface de comunicação digital;
■ Corrente máxima por pino: 16mA.
Figura 11 - Pinos de propósito geral GPIO.
5.1. Hardware
● Chassi
○ Fácil manipulação;
○ Estável sobre várias superfícies;
○ Evidencia a eficiência do sistema.
Figura 12 - Chassi utilizado para a
plataforma robótica.
5.1. Hardware
● Chassi
○ 2 motores DC.
Figura 12 - Motor DC.
Tabela 1 - Especificações dos
motores DC
5.1. Hardware
● Chassi
○ Acionamento dos motores através do CI L293D (2 circuitos Ponte H)
■ Alteração do sentido de rotação dos motores;
■ Controle isolado da alimentação.
Figura 13 - L293D. Figura 14 - Ponte H.
5.1. Hardware
● Alimentação
○ Carregador portátil Power Pack APC
■ Duas saídas de 5V já regulados;
■ Fornece ao máximo 1A e 2,4A em cada saída;
■ 5000mAH;
■ Economia de espaço.
Figura 15 - Power Pack APC.
5.1. Hardware
● Sensores
○ Câmera LG AN-VC500
■ Resolução máxima: 1920x1080 pixels;
■ Taxa de captura: 30 FPS;
■ Formatos de saída: H.264 e YUY2;
■ Interface: USB 2.0.
Figura 16 - Câmera LG
AN-VC500.
5.1. Hardware
● Sensores
○ HC-SR04 (sensor de ultrassom)
■ Alcance varia entre 2cm a 4m;
■ Precisão de 3mm;
■ Utilizado durante o treinamento do sistema.
Figura 17 - HC-SR04.
5.1. Hardware
● Plataforma final
Figura 18 - plataforma final construída (vista em perspectiva).
5.1. Hardware
● Plataforma final
Figura 19 - plataforma final construída (visão inferior).
5.1. Hardware
● Custo total
Tabela 2 - custo dos componentes físicos.
5.2. Software
● Ferramentas utilizadas
○ Raspbian
■ Sistema operacional oficial da Raspberry Pi;
■ Baseado no Debian;
○ Python 2.7
■ Simplicidade no desenvolvimento e manutenção.
5.2. Software
● Ferramentas utilizadas
○ OpenCV 3.2
■ Biblioteca de visão computacional;
■ Mais de 2500 algoritmos otimizados;
○ Scikit-Learn
■ Biblioteca de aprendizado de máquina.
5.2. Software
● Funcionamento do sistema
Figura 20 - Fluxograma do sistema de
navegação.
5.2. Software
● Cálculo do fluxo óptico
○ Circular simétrica
■ 1 ponto central;
■ 5 anéis concêntricos;
■ 20 pontos por anel.
Figura 21 - Distribuição de pontos
monitorados.
5.2. Software
● Cálculo do fluxo óptico
○ Algoritmo de Lucas-Kanade (LUCAS; KANADE, 1981)
■ Estimador de fluxo esparso;
○ Criação do vetor de características
■ 202 dimensões.
Figura 22 - Fluxo óptico estimado durante
navegação.
5.2. Software
● Classificação do fluxo óptico
○ Normalização do vetor de características
■ Normalização linear das amplitudes entre o intervalo [0,1];
■ Homogeneizar padrões com mesma relevância, porém em escalas diferentes
(THEODORIDIS, 2003);
5.2. Software
● Classificação do fluxo óptico
○ Redução das dimensões
■ Facilitar processo de classificação
■ Atenuar ruídos
■ Ferramenta: PCA (Principal Components Analysis) (HOTELLING, 1933)
● Componentes definidas offline;
● Projeção realizada online.
5.2. Software
● Classificação do fluxo óptico
○ Classificação
■ SVM (Support Vector Machine) (HSU; CHANG, 2008)
● Boa performance em altas dimensões;
● Boa generalização;
● Kernel definido offline;
● Treinamento realizado offline.
5.2. Software
● Tomada de decisão
○ Em caso de obstáculo, desviar;
○ Caso contrário, manter trajetória em linha reta.
5.2. Software
● Tomada de decisão
○ Para o desvio, escolhe-se a direção com menor intensidade de movimentação.
Figura 23 - Comparação de fluxo óptico para tomada de decisão.
(a) (b)
5.2. Software
● Acionamento dos atuadores
○ PWM (Pulse Width Modulation)
■ Velocidade linear: menor duty cycle entre as rodas;
■ Velocidade angular: diferença de duty cycle entre as rodas.
6. Avaliação do Sistema
● Metodologia offline
○ Ausência de protocolos online universais robustos;
○ Maior facilidade para comparação com trabalhos relacionados.
6. Avaliação do Sistema
● Metodologia offline
○ Avaliação da performance do classificador SVM
■ Validação k-fold (KOHAVI et al., 1995);
■ Treinamento (supervisionado) e teste sobre base de dados rotulada;
6. Avaliação do Sistema
● Metodologia offline
○ Avaliação da performance do classificador SVM
■ Medidas aferidas:
● Precisão = taxa de indicações corretas de obstáculos;
● Cobertura = taxa de obstáculos percebidos;
● Medida F = média harmônica entre precisão e cobertura;
● Acurácia = taxa total de indicações corretas;
● Tempo de execução.
6. Avaliação do Sistema
● Criação da base de dados
○ 8 vídeos (320x240 pixels)
○ Circuitos reais
■ Ponto de vista do robô.
Figura 24 - Ilustração do circuito de teste.
6. Avaliação do Sistema
● Criação da base de dados
Figura 25 - ambiente no qual foram gravados os vídeos de teste.
6. Avaliação do Sistema
● Criação da base de dados
○ Geração dos rótulos: HC-SR04
■ Medida associada a cada frame;
■ Maior comodidade.
Figura 26 - Exemplo de quadro
capturado.
6. Avaliação do Sistema
● Criação da base de dados
○ Condicionamento dos vídeos
■ Aplicação do algoritmo de Lucas-Kanade;
■ Criação dos vetores de características.
6. Avaliação do Sistema
● Criação da base de dados
○ Condicionamento dos rótulos
■ Discretização com base em limites inferior (Linf
) e superior (Lsup
)
● Não obstáculo (-1): distância < Linf
ou distância > Lsup
● Obstáculo (+1): caso contrário
● Linf
= 10cm
● Lsup
= 70cm
6. Avaliação do Sistema
● Criação da base de dados
○ Quantidade de atributos: 202;
○ Quantidade de exemplos da classe positiva: 6533;
○ Quantidade de exemplos da classe negativa: 31627;
○ Quantidade total de exemplos: 38160.
6. Avaliação do Sistema
● Treinamento
○ PCA (Principal Component Analysis)
■ Informação preservada: 90%;
■ Redução de dimensão: 43;
■ Componentes armazenadas para teste;
○ SVM com kernel RBF (Radial Basis Function)
■ Mapeamento não-linear;
■ Balanceamento dos exemplos de treino;
■ Máquina armazenada para teste.
6. Avaliação do Sistema
● Resultados
○ Precisão = 75,46%
○ Cobertura = 61,71%
○ Medida F = 68,00%
○ Acurácia = 89,90%
7. Avaliação do Sistema
● Resultados
Figura 27 - Distribuição do tempo médio de execução.
7. Avaliação do Sistema
● Resultados
○ Tempos de execução
■ Estimação do fluxo óptico = 50,50ms;
■ Projeção através da PCA = 0,72ms;
■ Previsão da SVM = 15,97ms;
○ Taxa de processamento total:
■ 14,88FPS (sem considerar captura);
■ 9,4 FPS (considerando taxa de captura igual a 25,28FPS).
7. Avaliação do Sistema
● Resultado Final
○ Comparação com os trabalhos relacionados
Tabela 3 - Comparação entre o sistema desenvolvido e trabalhos relacionados.
8. Conclusão
● Revisaram-se as principais técnicas de navegação autônoma baseadas em
visão;
● Desenvolveu-se uma estratégia de navegação baseada apenas na visão, a
qual é capaz de ser utilizada em ambientes dinâmicos;
● Construiu-se uma plataforma física de baixo custo baseada na Raspberry Pi;
● Experimentalmente, o sistema desenvolvido apresentou alta frequência de
processamento, alta acurácia e baixo custo de aquisição, tendo-se como
referência os trabalhos relacionados.
8.1. Trabalhos Futuros
● Investigar a utilização de modelos probabilísticos, de modo a prever
obstáculos com base em padrões sequenciais de movimentação;
● Aprimorar a extração de características, de modo a reduzirem-se as
dimensões dos padrões apresentados ao classificador;
● Desenvolver uma metodologia de avaliação online, de modo a validar o
desempenho de todo o sistema numa situação real de navegação;
● Aplicar o sistema num caso de uso real.
Referências
● NASA. Mars Science Laboratory Curiosity Rover. 2017. Disponível em:
<https://mars.nasa.gov/msl/.
● KADIR, M. A. et al. An autonomous industrial robot for loading and unloading
goods. In: 2015 International Conference on Informatics, Electronics & Vision
(ICIEV). Institute of Electrical and Electronics Engineers (IEEE), 2015.
Disponível em: <http://dx.doi.org/10.1109/ICIEV.2015.7333984>.
● IROBOT. iRobot: Seu parceiro para uma casa mais limpa. 2017. Disponível
em:
<http://www.irobot.com.br/sobre%20a%20iRobot/sobre%20a%20iRobot/>.
● SIEGWART, R.; NOURBAKHSH, I. R. Introduction to Autonomous Mobile
Robots. [S.l.]: Massachusetts Institute of Technology, 2004.
Referências
● LINS, R. G. et al. A Novel Machine Vision Approach Applied for Autonomous
Robotics Navigation. Proceedings - 2015 IEEE International Conference on
Systems, Man, and Cybernetics, SMC 2015, p. 1912–1917, 2016.
● FLEET, D.; WEISS, Y. Optical Flow Estimation. Mathematical models for
Computer Vision: The Handbook, p. 239–257, 2005. ISSN 1941-0042.
Disponível em: <http: //eprints.pascal-network.org/archive/00001065/>.
● O’DONOVAN, P. Optical Flow: Techniques and Applications. The University
of Saskatchewan, 2005.
Referências
● THEODORIDIS, K. S. K. Pattern Recognition. 4th. ed. [S.l.]: Elsevier
Academic Press, 2003.
● FOUNDATION, R. P. Raspberry Pi - Teach, Learn, and Make with Raspberry
Pi. 2016. Disponível em: <https://www.raspberrypi.org/>.
● CALDEIRA, E. M. D. O.; SCHNEEBELI, H. J. A.; SARCINELLI-FILHO, M. An
optical flow-based sensing system for reactive mobile robot navigation. Sba:
Controle & Automação Sociedade Brasileira de Automatica, v. 18, n. 3, p.
265–277, 2007. ISSN 0103-1759.
Referências
● SHANTAIYA, S. et al. Multiple Object Tracking using Kalman Filter and
Optical Flow. In: European Journal of Advances in Engineering and
Technology, 2015.
● ROSS, R. et al. Toward Refocused Optical Mouse Sensors For Outdoor
Optical Flow Odometry. IEEE Sensors J.12(6), 1925–1932 (2012).
● SHANKAR, A.; VATSA, M.; SUJIT, P. B. Collision avoidance for a low-cost
robot using SVM-based monocular vision. 2014 IEEE International
Conference on Robotics and Biomimetics, IEEE ROBIO 2014, p. 277–282,
2014.
Referências
● LUCAS, B. D.; KANADE, T. An Iterative Image Registration Technique with
an Application to Stereo Vision. Imaging, v. 130, n. x, p. 674–679, 1981. ISSN
17486815. Disponível em:
<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.49.2019{&}rep=re
p1{&}ty>.
● HSU, C.W.; CHANG, C.C; LIN, C.-J. A Practical Guide to Support Vector
Classification. BJU international, v. 101, n. 1, p. 1396–400, 2008. ISSN
1464-410X. Disponível em:
<http://www.csie.ntu.edu.tw/{~}cjlin/papers/guide/guide.p>.
Referências
● KOHAVI, R. et al. A study of cross-validation and bootstrap for accuracy
estimation and model selection. In: STANFORD, CA. Ijcai. [S.l.], 1995. v. 14,
n. 2, p. 1137–1145.
● HOTELLING, H. Analysis of a complex of statistical variables into principal
components. Journal of educational psychology, Warwick & York, v. 24, n. 6,
p. 417, 1933.

Mais conteúdo relacionado

Semelhante a Project presentation: Low-cost Autonomous Navigation System Based on Optical Flow Classification

TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLAndré Curvello
 
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...GiovanniGuimares2
 
18.ago ouro i 12.00_211_cesp
18.ago ouro i 12.00_211_cesp18.ago ouro i 12.00_211_cesp
18.ago ouro i 12.00_211_cespitgfiles
 
Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...
Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...
Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...Ricardo Olsen
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoComunidade NetPonto
 
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Intelie
 
Apressentação SBIAGRO 2015
Apressentação SBIAGRO 2015Apressentação SBIAGRO 2015
Apressentação SBIAGRO 2015Roberson Alves
 
Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017Renato Groff
 
Algoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaAlgoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaLucas Oliveira
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumMaximiliano Alves
 
Apresentação robótica móvel
Apresentação robótica móvel Apresentação robótica móvel
Apresentação robótica móvel Humberto Zanetti
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningDevCamp Campinas
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serproRicardo Katz
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaEmbarcados
 

Semelhante a Project presentation: Low-cost Autonomous Navigation System Based on Optical Flow Classification (20)

TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
TDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGLTDC2016 - Processamento de Imagem em GPU com OpenGL
TDC2016 - Processamento de Imagem em GPU com OpenGL
 
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
Artigo - PROJETO DE UM HARDWARE ACELERADOR DO ALGORITMO DE DISTÂNCIA EUCLIDIA...
 
Kafer2014.pdf
Kafer2014.pdfKafer2014.pdf
Kafer2014.pdf
 
18.ago ouro i 12.00_211_cesp
18.ago ouro i 12.00_211_cesp18.ago ouro i 12.00_211_cesp
18.ago ouro i 12.00_211_cesp
 
Spring boot
Spring bootSpring boot
Spring boot
 
Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...
Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...
Aplicação de Conceitos de IHM de Alta Performance e Consciência Situacional n...
 
ASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis PaulinoASP.Net Performance – A pragmatic approach - Luis Paulino
ASP.Net Performance – A pragmatic approach - Luis Paulino
 
RodoCap no JustJava 2008
RodoCap no JustJava 2008RodoCap no JustJava 2008
RodoCap no JustJava 2008
 
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
Poço WEB - VI ENHAPE - Encontro Nacional de Hidráulica de Perfuração de Poços...
 
Apressentação SBIAGRO 2015
Apressentação SBIAGRO 2015Apressentação SBIAGRO 2015
Apressentação SBIAGRO 2015
 
Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017Application Insights - Campinas .NET - Março/2017
Application Insights - Campinas .NET - Março/2017
 
Algoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaAlgoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à Robótica
 
Cross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appiumCross testing mobile com ruby, cucumber e appium
Cross testing mobile com ruby, cucumber e appium
 
Apresentação robótica móvel
Apresentação robótica móvel Apresentação robótica móvel
Apresentação robótica móvel
 
Palestra
PalestraPalestra
Palestra
 
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learningEiti Kimura - Analisador de dados automatizado utilizando machine learning
Eiti Kimura - Analisador de dados automatizado utilizando machine learning
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Estaleiro o uso de kubernetes no serpro
Estaleiro   o uso de kubernetes no serproEstaleiro   o uso de kubernetes no serpro
Estaleiro o uso de kubernetes no serpro
 
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistemaWebinar: Uma introdução a ISA RISC-V e seu ecossistema
Webinar: Uma introdução a ISA RISC-V e seu ecossistema
 

Último

TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxFlvioDadinhoNNhamizi
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaWilliamCruz402522
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06AndressaTenreiro
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMdiminutcasamentos
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptxVagner Soares da Costa
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptxVagner Soares da Costa
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp txrafaelacushman21
 

Último (7)

TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docxTRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
TRABALHO INSTALACAO ELETRICA EM EDIFICIO FINAL.docx
 
apresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aulaapresentação de Bancos de Capacitores aula
apresentação de Bancos de Capacitores aula
 
Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06Lista de presença treinamento de EPI NR-06
Lista de presença treinamento de EPI NR-06
 
Apresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPMApresentação Manutenção Total Produtiva - TPM
Apresentação Manutenção Total Produtiva - TPM
 
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
10 - RELOGIO COMPARADOR - OPERAÇÃO E LEITURA.pptx
 
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
07 - MICRÔMETRO EXTERNO SISTEMA MÉTRICO.pptx
 
NR10 - Treinamento LOTO - 2023.pp tx
NR10 - Treinamento LOTO - 2023.pp     txNR10 - Treinamento LOTO - 2023.pp     tx
NR10 - Treinamento LOTO - 2023.pp tx
 

Project presentation: Low-cost Autonomous Navigation System Based on Optical Flow Classification

  • 1. Sistema de Navegação Autônomo Baseado em Visão Computacional Trabalho de Conclusão de Curso Michel Conrado Cardoso Meneses São Cristóvão - Sergipe 2017
  • 2. Sistema de Navegação Autônomo Baseado em Visão Computacional Orientador: Prof. Dr. Leonardo Nogueira Matos Coorientador: Prof. Dr. Bruno Otavio Piedade Prado São Cristóvão - Sergipe 2017 Michel Conrado Cardoso Meneses
  • 3. 1. Introdução ● Navegação de robôs autônomos ○ Aplicações: monitoramento, mapeamento, transporte, busca (SIEGWART; NOURBAKHSH, 2004); ○ Motivação: inviabilidade de presença humana (NASA, 2017), redução de custos (KADIR et al., 2015), comodidade (IROBOT, 2017). Figura 1 - Mars Rover Curiosity. Figura 2 - empilhadeira autônoma (Courtesy Photo). Figura 3 - iRobot Roomba 500.
  • 4. 1. Introdução ● Requisitos ○ Dependência mínima de sistemas externos; ○ Adaptação a ambientes dinâmicos; ○ Tempo de resposta mínimo. ● Consequência ○ Quanto maior a autonomia desejada, mais relevante é a modelagem do ambiente.
  • 5. 1. Introdução ● Visão ○ Alta resolução (dimensões, texturas, cores, bordas); ○ Modelos com alto nível de detalhamento; ○ Principais técnicas necessitam de plataformas computacionais robustas ■ Ex: Visão estereoscópica (LINS et al., 2016).
  • 6. 1. Introdução ● Raspberry Pi (FOUNDATION, 2016) ○ Pequeno porte; ○ Eficiente gerenciamento de energia; ○ Baixo custo de aquisição. Figura 4 - Raspberry Pi 3 Model B.
  • 7. 1. Introdução ● Motivação ○ Robôs que atendam aos requisitos de autonomia (através da visão) por um baixo custo (através da Raspberry Pi).
  • 8. 2. Objetivos ● Desenvolver um robô de baixo custo capaz de se locomover de maneira autônoma através da visão e baseado na plataforma Raspberry Pi ○ Revisar técnicas de visão computacional utilizadas para navegação autônoma; ○ Investigar o desempenho da Raspberry Pi ao executar algoritmos de visão computacional; ○ Construir a plataforma física do robô; ○ Implementar uma estratégia de navegação baseada em visão; ○ Comparar o sistema final desenvolvido aos apresentados por trabalhos relacionados;
  • 9. 3. Estrutura da Apresentação ● Classificação de fluxo óptico; ● Sistema proposto; ● Avaliação do sistema; ● Conclusão.
  • 10. 4. Classificação de Fluxo Óptico ● Fluxo óptico ○ Conjunto de vetores que descrevem a movimentação aparente de padrões de brilho de uma imagem (FLEET; WEISS, 2005). Figura 5 - Padrão de brilho no instante t. Figura 6 - Padrão de brilho no instante t+1. Figura 7 - Fluxo óptico.
  • 11. 4. Classificação de Fluxo Óptico ● Fluxo óptico ○ Permite inferir dimensão, posição e velocidade relativas de elementos contidos na cena registrada (CALDEIRA et al., 2007). Figura 8 - Exemplo de movimentação percebida entre duas imagens em sequência. (a) (b) (c)
  • 12. 4. Classificação de Fluxo Óptico ● Fluxo óptico ○ Relevante para a navegação ■ Está diretamente relacionado à movimentação percebida pelo agente; ■ Várias aplicações: rastreamento de objetos (SHANTAIYA et al., 2015), odometria (ROSS et al., 2012), detecção de obstáculos (SHANKAR et al., 2014).
  • 13. 4. Classificação de Fluxo Óptico ● Detecção de obstáculos ○ Movimentação contrastante a dos demais elementos da cena. Figura 9 - Exemplo de movimentação contrastante de obstáculo.
  • 14. 4. Classificação de Fluxo Óptico ● Detecção de obstáculos ○ Modelo para reconhecimento de movimentação ■ Padrão = movimento percebido entre duas imagens; ■ Características = intensidade e direção; ■ Grupos = {presença de obstáculos; ausência de obstáculos}.
  • 15. 4. Classificação de Fluxo Óptico ● Detecção de obstáculos ○ Treinamento de máquina classificadora (THEODORIDIS, 2003) ■ corresponde ao vetor de características associado à i-ésima imagem. ■ corresponde ao par (V1 ,V2 ), sendo V1 e V2 , respectivamente, a norma e a fase do vetor de fluxo óptico associado ao n-ésimo ponto da imagem. ■ é o rótulo de cada vetor .
  • 16. 5. Sistema Proposto ● Estratégia ○ Identificação de obstáculos baseada no reconhecimento de padrões de fluxo óptico através de uma máquina classificadora. ○ Vantagens: ■ Estimação do fluxo é computacionalmente barata (O’DONOVAN, 2015); ■ Ajuste automático do modelo; ■ Generalização.
  • 17. 5. Sistema Proposto ● Etapas do desenvolvimento ○ Hardware; ○ Software.
  • 18. 5.1. Hardware ● Raspberry Pi 3 Model B ○ CPU ARMv8 quad-core 64-bit 1,2GHz; ○ RAM 1GB; ○ LAN Wireless 802.11n; ○ 4 portas USB; ○ Consumo médio: 5,1W. Figura 10 - Raspberry Pi 3 Model B.
  • 19. 5.1. Hardware ● Raspberry Pi 3 Model B ○ GPIO - General Purpose Input/Output ■ Interface de comunicação digital; ■ Corrente máxima por pino: 16mA. Figura 11 - Pinos de propósito geral GPIO.
  • 20. 5.1. Hardware ● Chassi ○ Fácil manipulação; ○ Estável sobre várias superfícies; ○ Evidencia a eficiência do sistema. Figura 12 - Chassi utilizado para a plataforma robótica.
  • 21. 5.1. Hardware ● Chassi ○ 2 motores DC. Figura 12 - Motor DC. Tabela 1 - Especificações dos motores DC
  • 22. 5.1. Hardware ● Chassi ○ Acionamento dos motores através do CI L293D (2 circuitos Ponte H) ■ Alteração do sentido de rotação dos motores; ■ Controle isolado da alimentação. Figura 13 - L293D. Figura 14 - Ponte H.
  • 23. 5.1. Hardware ● Alimentação ○ Carregador portátil Power Pack APC ■ Duas saídas de 5V já regulados; ■ Fornece ao máximo 1A e 2,4A em cada saída; ■ 5000mAH; ■ Economia de espaço. Figura 15 - Power Pack APC.
  • 24. 5.1. Hardware ● Sensores ○ Câmera LG AN-VC500 ■ Resolução máxima: 1920x1080 pixels; ■ Taxa de captura: 30 FPS; ■ Formatos de saída: H.264 e YUY2; ■ Interface: USB 2.0. Figura 16 - Câmera LG AN-VC500.
  • 25. 5.1. Hardware ● Sensores ○ HC-SR04 (sensor de ultrassom) ■ Alcance varia entre 2cm a 4m; ■ Precisão de 3mm; ■ Utilizado durante o treinamento do sistema. Figura 17 - HC-SR04.
  • 26. 5.1. Hardware ● Plataforma final Figura 18 - plataforma final construída (vista em perspectiva).
  • 27. 5.1. Hardware ● Plataforma final Figura 19 - plataforma final construída (visão inferior).
  • 28. 5.1. Hardware ● Custo total Tabela 2 - custo dos componentes físicos.
  • 29. 5.2. Software ● Ferramentas utilizadas ○ Raspbian ■ Sistema operacional oficial da Raspberry Pi; ■ Baseado no Debian; ○ Python 2.7 ■ Simplicidade no desenvolvimento e manutenção.
  • 30. 5.2. Software ● Ferramentas utilizadas ○ OpenCV 3.2 ■ Biblioteca de visão computacional; ■ Mais de 2500 algoritmos otimizados; ○ Scikit-Learn ■ Biblioteca de aprendizado de máquina.
  • 31. 5.2. Software ● Funcionamento do sistema Figura 20 - Fluxograma do sistema de navegação.
  • 32. 5.2. Software ● Cálculo do fluxo óptico ○ Circular simétrica ■ 1 ponto central; ■ 5 anéis concêntricos; ■ 20 pontos por anel. Figura 21 - Distribuição de pontos monitorados.
  • 33. 5.2. Software ● Cálculo do fluxo óptico ○ Algoritmo de Lucas-Kanade (LUCAS; KANADE, 1981) ■ Estimador de fluxo esparso; ○ Criação do vetor de características ■ 202 dimensões. Figura 22 - Fluxo óptico estimado durante navegação.
  • 34. 5.2. Software ● Classificação do fluxo óptico ○ Normalização do vetor de características ■ Normalização linear das amplitudes entre o intervalo [0,1]; ■ Homogeneizar padrões com mesma relevância, porém em escalas diferentes (THEODORIDIS, 2003);
  • 35. 5.2. Software ● Classificação do fluxo óptico ○ Redução das dimensões ■ Facilitar processo de classificação ■ Atenuar ruídos ■ Ferramenta: PCA (Principal Components Analysis) (HOTELLING, 1933) ● Componentes definidas offline; ● Projeção realizada online.
  • 36. 5.2. Software ● Classificação do fluxo óptico ○ Classificação ■ SVM (Support Vector Machine) (HSU; CHANG, 2008) ● Boa performance em altas dimensões; ● Boa generalização; ● Kernel definido offline; ● Treinamento realizado offline.
  • 37. 5.2. Software ● Tomada de decisão ○ Em caso de obstáculo, desviar; ○ Caso contrário, manter trajetória em linha reta.
  • 38. 5.2. Software ● Tomada de decisão ○ Para o desvio, escolhe-se a direção com menor intensidade de movimentação. Figura 23 - Comparação de fluxo óptico para tomada de decisão. (a) (b)
  • 39. 5.2. Software ● Acionamento dos atuadores ○ PWM (Pulse Width Modulation) ■ Velocidade linear: menor duty cycle entre as rodas; ■ Velocidade angular: diferença de duty cycle entre as rodas.
  • 40. 6. Avaliação do Sistema ● Metodologia offline ○ Ausência de protocolos online universais robustos; ○ Maior facilidade para comparação com trabalhos relacionados.
  • 41. 6. Avaliação do Sistema ● Metodologia offline ○ Avaliação da performance do classificador SVM ■ Validação k-fold (KOHAVI et al., 1995); ■ Treinamento (supervisionado) e teste sobre base de dados rotulada;
  • 42. 6. Avaliação do Sistema ● Metodologia offline ○ Avaliação da performance do classificador SVM ■ Medidas aferidas: ● Precisão = taxa de indicações corretas de obstáculos; ● Cobertura = taxa de obstáculos percebidos; ● Medida F = média harmônica entre precisão e cobertura; ● Acurácia = taxa total de indicações corretas; ● Tempo de execução.
  • 43. 6. Avaliação do Sistema ● Criação da base de dados ○ 8 vídeos (320x240 pixels) ○ Circuitos reais ■ Ponto de vista do robô. Figura 24 - Ilustração do circuito de teste.
  • 44. 6. Avaliação do Sistema ● Criação da base de dados Figura 25 - ambiente no qual foram gravados os vídeos de teste.
  • 45. 6. Avaliação do Sistema ● Criação da base de dados ○ Geração dos rótulos: HC-SR04 ■ Medida associada a cada frame; ■ Maior comodidade. Figura 26 - Exemplo de quadro capturado.
  • 46. 6. Avaliação do Sistema ● Criação da base de dados ○ Condicionamento dos vídeos ■ Aplicação do algoritmo de Lucas-Kanade; ■ Criação dos vetores de características.
  • 47. 6. Avaliação do Sistema ● Criação da base de dados ○ Condicionamento dos rótulos ■ Discretização com base em limites inferior (Linf ) e superior (Lsup ) ● Não obstáculo (-1): distância < Linf ou distância > Lsup ● Obstáculo (+1): caso contrário ● Linf = 10cm ● Lsup = 70cm
  • 48. 6. Avaliação do Sistema ● Criação da base de dados ○ Quantidade de atributos: 202; ○ Quantidade de exemplos da classe positiva: 6533; ○ Quantidade de exemplos da classe negativa: 31627; ○ Quantidade total de exemplos: 38160.
  • 49. 6. Avaliação do Sistema ● Treinamento ○ PCA (Principal Component Analysis) ■ Informação preservada: 90%; ■ Redução de dimensão: 43; ■ Componentes armazenadas para teste; ○ SVM com kernel RBF (Radial Basis Function) ■ Mapeamento não-linear; ■ Balanceamento dos exemplos de treino; ■ Máquina armazenada para teste.
  • 50. 6. Avaliação do Sistema ● Resultados ○ Precisão = 75,46% ○ Cobertura = 61,71% ○ Medida F = 68,00% ○ Acurácia = 89,90%
  • 51. 7. Avaliação do Sistema ● Resultados Figura 27 - Distribuição do tempo médio de execução.
  • 52. 7. Avaliação do Sistema ● Resultados ○ Tempos de execução ■ Estimação do fluxo óptico = 50,50ms; ■ Projeção através da PCA = 0,72ms; ■ Previsão da SVM = 15,97ms; ○ Taxa de processamento total: ■ 14,88FPS (sem considerar captura); ■ 9,4 FPS (considerando taxa de captura igual a 25,28FPS).
  • 53. 7. Avaliação do Sistema ● Resultado Final ○ Comparação com os trabalhos relacionados Tabela 3 - Comparação entre o sistema desenvolvido e trabalhos relacionados.
  • 54. 8. Conclusão ● Revisaram-se as principais técnicas de navegação autônoma baseadas em visão; ● Desenvolveu-se uma estratégia de navegação baseada apenas na visão, a qual é capaz de ser utilizada em ambientes dinâmicos; ● Construiu-se uma plataforma física de baixo custo baseada na Raspberry Pi; ● Experimentalmente, o sistema desenvolvido apresentou alta frequência de processamento, alta acurácia e baixo custo de aquisição, tendo-se como referência os trabalhos relacionados.
  • 55. 8.1. Trabalhos Futuros ● Investigar a utilização de modelos probabilísticos, de modo a prever obstáculos com base em padrões sequenciais de movimentação; ● Aprimorar a extração de características, de modo a reduzirem-se as dimensões dos padrões apresentados ao classificador; ● Desenvolver uma metodologia de avaliação online, de modo a validar o desempenho de todo o sistema numa situação real de navegação; ● Aplicar o sistema num caso de uso real.
  • 56. Referências ● NASA. Mars Science Laboratory Curiosity Rover. 2017. Disponível em: <https://mars.nasa.gov/msl/. ● KADIR, M. A. et al. An autonomous industrial robot for loading and unloading goods. In: 2015 International Conference on Informatics, Electronics & Vision (ICIEV). Institute of Electrical and Electronics Engineers (IEEE), 2015. Disponível em: <http://dx.doi.org/10.1109/ICIEV.2015.7333984>. ● IROBOT. iRobot: Seu parceiro para uma casa mais limpa. 2017. Disponível em: <http://www.irobot.com.br/sobre%20a%20iRobot/sobre%20a%20iRobot/>. ● SIEGWART, R.; NOURBAKHSH, I. R. Introduction to Autonomous Mobile Robots. [S.l.]: Massachusetts Institute of Technology, 2004.
  • 57. Referências ● LINS, R. G. et al. A Novel Machine Vision Approach Applied for Autonomous Robotics Navigation. Proceedings - 2015 IEEE International Conference on Systems, Man, and Cybernetics, SMC 2015, p. 1912–1917, 2016. ● FLEET, D.; WEISS, Y. Optical Flow Estimation. Mathematical models for Computer Vision: The Handbook, p. 239–257, 2005. ISSN 1941-0042. Disponível em: <http: //eprints.pascal-network.org/archive/00001065/>. ● O’DONOVAN, P. Optical Flow: Techniques and Applications. The University of Saskatchewan, 2005.
  • 58. Referências ● THEODORIDIS, K. S. K. Pattern Recognition. 4th. ed. [S.l.]: Elsevier Academic Press, 2003. ● FOUNDATION, R. P. Raspberry Pi - Teach, Learn, and Make with Raspberry Pi. 2016. Disponível em: <https://www.raspberrypi.org/>. ● CALDEIRA, E. M. D. O.; SCHNEEBELI, H. J. A.; SARCINELLI-FILHO, M. An optical flow-based sensing system for reactive mobile robot navigation. Sba: Controle & Automação Sociedade Brasileira de Automatica, v. 18, n. 3, p. 265–277, 2007. ISSN 0103-1759.
  • 59. Referências ● SHANTAIYA, S. et al. Multiple Object Tracking using Kalman Filter and Optical Flow. In: European Journal of Advances in Engineering and Technology, 2015. ● ROSS, R. et al. Toward Refocused Optical Mouse Sensors For Outdoor Optical Flow Odometry. IEEE Sensors J.12(6), 1925–1932 (2012). ● SHANKAR, A.; VATSA, M.; SUJIT, P. B. Collision avoidance for a low-cost robot using SVM-based monocular vision. 2014 IEEE International Conference on Robotics and Biomimetics, IEEE ROBIO 2014, p. 277–282, 2014.
  • 60. Referências ● LUCAS, B. D.; KANADE, T. An Iterative Image Registration Technique with an Application to Stereo Vision. Imaging, v. 130, n. x, p. 674–679, 1981. ISSN 17486815. Disponível em: <http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.49.2019{&}rep=re p1{&}ty>. ● HSU, C.W.; CHANG, C.C; LIN, C.-J. A Practical Guide to Support Vector Classification. BJU international, v. 101, n. 1, p. 1396–400, 2008. ISSN 1464-410X. Disponível em: <http://www.csie.ntu.edu.tw/{~}cjlin/papers/guide/guide.p>.
  • 61. Referências ● KOHAVI, R. et al. A study of cross-validation and bootstrap for accuracy estimation and model selection. In: STANFORD, CA. Ijcai. [S.l.], 1995. v. 14, n. 2, p. 1137–1145. ● HOTELLING, H. Analysis of a complex of statistical variables into principal components. Journal of educational psychology, Warwick & York, v. 24, n. 6, p. 417, 1933.