SlideShare uma empresa Scribd logo
Criando um robô para autistas
usando Serverless, AI e
Image Recognition
Gabriel 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 - ESP12E
R$49,90 - Wifi - LUA
Primeira coisa que fiz
O robô precisa andar via HTTP!
LUA
VENHA AQUI!
WIFI - HTTP POST
Controle
+
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 Cameras
Com 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 CNNs
2015 - 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 Estimation

with 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-learning
Aprendendo como as ações afetam o estado atual com base em recompensas
Deep Q-networks
Desenvolvida 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 Learning
Vai acelerar o aprendizado
Emoção
Identificar o rosto, olhar nos olhos, demonstrar felicidade/tristeza
Estrutura Esférica
Vai 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
vagas@memed.com.br

Mais conteúdo relacionado

Semelhante a InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/DjangoÁtila Bezerra
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
Alvaro Viebrantz
 
Desmistificando Raspberry
Desmistificando RaspberryDesmistificando Raspberry
Desmistificando Raspberry
Alejandro Mesias Nebra Perez
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e Mercado
Ricardo Ogliari
 
Desenvolvimento Mobile Web e PHP na FIPAR
Desenvolvimento Mobile Web e PHP na FIPARDesenvolvimento Mobile Web e PHP na FIPAR
Desenvolvimento Mobile Web e PHP na FIPAR
Bruno Fernandes "PorKaria"
 
Fgsl 2015
Fgsl 2015Fgsl 2015
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
Luiz Aldabalde
 
10102015164828
1010201516482810102015164828
10102015164828
Romario Santos
 
Yes We Can do I.T. - Pyladies Recife
Yes We Can do I.T. - Pyladies RecifeYes We Can do I.T. - Pyladies Recife
Yes We Can do I.T. - Pyladies Recife
Andreza Leite
 
Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010
Bruno Fernandes "PorKaria"
 
PHP e o Desenvolvimento Mobile Web no LinguAgil
PHP e o Desenvolvimento Mobile Web no LinguAgilPHP e o Desenvolvimento Mobile Web no LinguAgil
PHP e o Desenvolvimento Mobile Web no LinguAgil
Bruno Fernandes "PorKaria"
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
Eric Hideki
 
Raspberry pi – primeiros passos
Raspberry pi – primeiros passosRaspberry pi – primeiros passos
Raspberry pi – primeiros passos
Felipe Meganha
 
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaCase Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaPaulo César M Jeveaux
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
Paulino Michelazzo
 
RWTF?
RWTF?RWTF?
Firebase para se divertir com Internet das Coisas
Firebase para se divertir com Internet das CoisasFirebase para se divertir com Internet das Coisas
Firebase para se divertir com Internet das Coisas
Luís Leão
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
Bruno Fernandes "PorKaria"
 
#4 Oracle Cloud Meetup - Chatbots
#4 Oracle Cloud Meetup - Chatbots#4 Oracle Cloud Meetup - Chatbots
#4 Oracle Cloud Meetup - Chatbots
-
 

Semelhante a InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto (20)

O poder do Python/Django
O poder do Python/DjangoO poder do Python/Django
O poder do Python/Django
 
Carreira de Desenvolvimento
Carreira de DesenvolvimentoCarreira de Desenvolvimento
Carreira de Desenvolvimento
 
Desmistificando Raspberry
Desmistificando RaspberryDesmistificando Raspberry
Desmistificando Raspberry
 
Mobile, Flutter e Mercado
Mobile, Flutter e MercadoMobile, Flutter e Mercado
Mobile, Flutter e Mercado
 
Desenvolvimento Mobile Web e PHP na FIPAR
Desenvolvimento Mobile Web e PHP na FIPARDesenvolvimento Mobile Web e PHP na FIPAR
Desenvolvimento Mobile Web e PHP na FIPAR
 
Raspberry Pi + Python
Raspberry Pi + PythonRaspberry Pi + Python
Raspberry Pi + Python
 
Fgsl 2015
Fgsl 2015Fgsl 2015
Fgsl 2015
 
The zen of python 2010
The zen of python 2010The zen of python 2010
The zen of python 2010
 
10102015164828
1010201516482810102015164828
10102015164828
 
Yes We Can do I.T. - Pyladies Recife
Yes We Can do I.T. - Pyladies RecifeYes We Can do I.T. - Pyladies Recife
Yes We Can do I.T. - Pyladies Recife
 
Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010Desenvolvimento Mobile Web e PHP no Sinform2010
Desenvolvimento Mobile Web e PHP no Sinform2010
 
PHP e o Desenvolvimento Mobile Web no LinguAgil
PHP e o Desenvolvimento Mobile Web no LinguAgilPHP e o Desenvolvimento Mobile Web no LinguAgil
PHP e o Desenvolvimento Mobile Web no LinguAgil
 
Python para programadores Ruby
Python para programadores RubyPython para programadores Ruby
Python para programadores Ruby
 
Raspberry pi – primeiros passos
Raspberry pi – primeiros passosRaspberry pi – primeiros passos
Raspberry pi – primeiros passos
 
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-diaCase Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
Case Giran - Os desafios no uso de XP e SCRUM no dia-a-dia
 
POG nunca mais - SOLISC
POG nunca mais - SOLISCPOG nunca mais - SOLISC
POG nunca mais - SOLISC
 
RWTF?
RWTF?RWTF?
RWTF?
 
Firebase para se divertir com Internet das Coisas
Firebase para se divertir com Internet das CoisasFirebase para se divertir com Internet das Coisas
Firebase para se divertir com Internet das Coisas
 
Desenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHPDesenvolvimento Mobile Web e o PHP
Desenvolvimento Mobile Web e o PHP
 
#4 Oracle Cloud Meetup - Chatbots
#4 Oracle Cloud Meetup - Chatbots#4 Oracle Cloud Meetup - Chatbots
#4 Oracle Cloud Meetup - Chatbots
 

Mais de iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
iMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
iMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
iMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
iMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
iMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
iMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
iMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
iMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
iMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
iMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
iMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
iMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
iMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
iMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
iMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
iMasters
 

Mais de iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto