intercon 2017 - criando um robô para autistas usando serverless, ai e image recognition - gabriel...

Post on 21-Jan-2018

26 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 vagas@memed.com.br

top related