InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel...
-
Upload
imasters -
Category
Technology
-
view
26 -
download
1
Transcript of InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel...
Criando um robô para autistas usando Serverless, AI e
Image RecognitionGabriel Couto (Bob)
@gabrielrcouto - github.com/gabrielrcouto
Em 2016, fui morar sozinho em São Paulo…
Depois de um tempo, senti falta de algo…
Uma das melhores companhias do homem…
Eu não tenho espaço para um cão, mas e se for um robô?
O projeto não andou muito, até que…
Propósito = Combustível
Problemas dos robôs que encontrei• Custo elevado
• Difíceis de montar
• Você que aprende com ele, não ele com você
• São “educacionais”, não como um “pet”
• Não são realmente Open Source
• Difíceis de “pegar"
• Personagem é distante do humano
Como fazer o MVP de um robô?
COMPUTADOR =
INTELIGÊNCIA
CARRINHO =
TERMINAL BURRO
NodeMCU - ESP12ER$49,90 - Wifi - LUA
Primeira coisa que fiz
O robô precisa andar via HTTP!
LUA
VENHA AQUI!
WIFI - HTTP POSTControle
+ NodeMCU
RF AM 27MHz
RF AM < WIFI
WIFI - HTTP POST
Agora ele precisa enxergar!
HTTP POST
HTTP POST 1 FOTO/SEG
JAVA
VENHA AQUI!
• Usar API antiga do Android é trabalhoso
• Tirar foto consome mais processamento do que usar um “snapshot” do preview
• É mais fácil enviar a foto usando base64
• É necessário usar uma fila de requests
Lições aprendidas
HTTP POST
HTTP POST 1 FOTO/SEG
LUA
JAVA
PHP
Será que consigo fazer ele desviar de objetos?
Não quero usar mais sensores, o robô já vê pela câmera!
Stereo CamerasCom dois olhos, já faz tempo que sabemos como medir a distância
Mas só tenho uma câmera :-(
Deep3D: Automatic 2D-to-3D Video Conversion with CNNs2015 - Obrigado ConvNets \o/
https://github.com/piiswrong/deep3d
Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture
Paper de 2015
Unsupervised Monocular Depth Estimationwith Left-Right Consistency
Paper de 2017 https://github.com/mrharicot/monodepth
Better hardware and new AI smarts means this year's Google phone is better with low-light photos while adding a new portrait mode.
Google's Pixel 2 portrait mode works on a dog, even though it can't use machine learning that recognizes human faces. At left, portrait mode is on.
PYTHON
VENHA AQUI!
Sabendo a distância, consigo programar como ele vai se
movimentar!
AQUI TEM
OBJETO PERTO
AQUI TEM
OBJETO QUASE PERTO
AQUI TEM
OBJETO LONGE
VIRE PARA
A DIREITA
E se eu não programar? E se ele APRENDER?
Q-learningAprendendo como as ações afetam o estado atual com base em recompensas
Deep Q-networksDesenvolvida pelo Google DeepMind - 2015
Serverless
Motivos• Precisa ser fácil adicionar um comportamento ao robô
• Precisa ser orientado a comando/eventos, podendo fazer chaining das ações
• Precisa suportar N linguagens e containers customizados
Sem executar nenhuma função% CPU muito alta!
PHP
Python Python Linguagem X
Kernel Signal USR1
Running containers - Sleeping waiting the kernel signal
Manter uma rede neural do Tensorflow em memória é menos
custoso do que instanciá-la toda vez
Por que o servidor do robô precisa ficar na casa do dono?
• Privacidade
• Suporte a ficar offline
• Baixa latência
O conceito de serverless é lindo, mas para o meu caso, irei apenas me inspirar na forma
como os “nano-services” se comunicam
25%
Timeline do projeto
6 meses
hoje beta
Próximos passos
Simulador e Transfer LearningVai acelerar o aprendizado
EmoçãoIdentificar o rosto, olhar nos olhos, demonstrar felicidade/tristeza
Estrutura EsféricaVai ajudar a ter uma locomoção mais simples e ser “pegável"
Reflexão
–Juramento da Eng. da Computação
“não me deixarei cegar pelo brilho excessivo da tecnologia, de forma a não me esquecer de que trabalho para o bem do Homem e não da
máquina”
Tecnologia = Super poder
Nos quadrinhos temos heróis e vilões, e no mundo da tecnologia, é
quase a mesma coisa
Acredito, de coração, que esta sala está repleta de heróis
Muito obrigado@gabrielrcouto
github.com/gabrielrcouto
Ajude a resolver os problemas do mundo:
github.com/php-wpi
Venha trabalhar comigo na Memed [email protected]