SlideShare ist ein Scribd-Unternehmen logo
1 von 61
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

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

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
itgfiles
 
Algoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à RobóticaAlgoritmos de Percurso Aplicados à Robótica
Algoritmos de Percurso Aplicados à Robótica
Lucas Oliveira
 
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
DevCamp Campinas
 

Ähnlich wie 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
 

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.