95
Criando um robô para autistas usando Serverless, AI e Image Recognition Gabriel Couto (Bob) @gabrielrcouto - github.com/gabrielrcouto

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

Embed Size (px)

Citation preview

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

Criando um robô para autistas usando Serverless, AI e

Image RecognitionGabriel Couto (Bob)

@gabrielrcouto - github.com/gabrielrcouto

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

Em 2016, fui morar sozinho em São Paulo…

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

Depois de um tempo, senti falta de algo…

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

Uma das melhores companhias do homem…

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

Eu não tenho espaço para um cão, mas e se for um robô?

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

O projeto não andou muito, até que…

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

Propósito = Combustível

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

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

Page 15: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 16: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 17: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 18: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

Como fazer o MVP de um robô?

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

COMPUTADOR =

INTELIGÊNCIA

CARRINHO =

TERMINAL BURRO

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

NodeMCU - ESP12ER$49,90 - Wifi - LUA

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

Primeira coisa que fiz

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

O robô precisa andar via HTTP!

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

LUA

VENHA AQUI!

Page 28: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 29: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 30: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

WIFI - HTTP POSTControle

+ NodeMCU

RF AM 27MHz

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

RF AM < WIFI

Page 32: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 33: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 34: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 35: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

WIFI - HTTP POST

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

Agora ele precisa enxergar!

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

HTTP POST

HTTP POST 1 FOTO/SEG

Page 39: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 40: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 41: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 42: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 43: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 44: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

JAVA

VENHA AQUI!

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

• 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

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

HTTP POST

HTTP POST 1 FOTO/SEG

LUA

JAVA

PHP

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

Será que consigo fazer ele desviar de objetos?

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

Não quero usar mais sensores, o robô já vê pela câmera!

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

Stereo CamerasCom dois olhos, já faz tempo que sabemos como medir a distância

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

Mas só tenho uma câmera :-(

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

Deep3D: Automatic 2D-to-3D Video Conversion with CNNs2015 - Obrigado ConvNets \o/

https://github.com/piiswrong/deep3d

Page 54: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 55: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 56: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture

Paper de 2015

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

Unsupervised Monocular Depth Estimationwith Left-Right Consistency

Paper de 2017 https://github.com/mrharicot/monodepth

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

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.

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

PYTHON

VENHA AQUI!

Page 60: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 61: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 62: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

Sabendo a distância, consigo programar como ele vai se

movimentar!

Page 63: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 64: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 65: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

AQUI TEM

OBJETO PERTO

AQUI TEM

OBJETO QUASE PERTO

AQUI TEM

OBJETO LONGE

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

VIRE PARA

A DIREITA

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

E se eu não programar? E se ele APRENDER?

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

Q-learningAprendendo como as ações afetam o estado atual com base em recompensas

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

Deep Q-networksDesenvolvida pelo Google DeepMind - 2015

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

Serverless

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

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

Page 74: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 75: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 76: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 77: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

Sem executar nenhuma função% CPU muito alta!

Page 78: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 79: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 80: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto
Page 81: InterCon 2017 - Criando um robô para autistas usando Serverless, AI e Image Recognition - Gabriel Couto

PHP

Python Python Linguagem X

Kernel Signal USR1

Running containers - Sleeping waiting the kernel signal

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

Manter uma rede neural do Tensorflow em memória é menos

custoso do que instanciá-la toda vez

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

Por que o servidor do robô precisa ficar na casa do dono?

• Privacidade

• Suporte a ficar offline

• Baixa latência

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

O conceito de serverless é lindo, mas para o meu caso, irei apenas me inspirar na forma

como os “nano-services” se comunicam

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

25%

Timeline do projeto

6 meses

hoje beta

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

Próximos passos

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

Simulador e Transfer LearningVai acelerar o aprendizado

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

EmoçãoIdentificar o rosto, olhar nos olhos, demonstrar felicidade/tristeza

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

Estrutura EsféricaVai ajudar a ter uma locomoção mais simples e ser “pegável"

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

Reflexão

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

–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”

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

Tecnologia = Super poder

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

Nos quadrinhos temos heróis e vilões, e no mundo da tecnologia, é

quase a mesma coisa

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

Acredito, de coração, que esta sala está repleta de heróis

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

Muito obrigado@gabrielrcouto

github.com/gabrielrcouto

Ajude a resolver os problemas do mundo:

github.com/php-wpi

Venha trabalhar comigo na Memed [email protected]