Low-cost robot controlled by a Raspberry Pi and whose navigation system is based on optical flow pattern recognition. This work represents a thesis presented to the Federal University of Sergipe, at Sergipe, Brazil in partial fulfillment of the requirement for the degree of Bachelor of Science in Computer Engineering.
Link to video: https://youtu.be/hzyKAGhQExg
Link to the paper in English: https://arxiv.org/abs/1803.03966
Link to the paper in Portuguese: https://arxiv.org/abs/1710.06518
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.
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.
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.
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.
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.