EDGE COMPUTING NA PRÁTICA
COM IOT, TENSORFLOW E GOOGLE CLOUD
Alvaro Viebrantz 

Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz
O que vamos ver hoje ?
O que é Edge
Computing ?
Cenário
Prático
Como
construir esse
cenário!
3
Disponibilidade Escalabilidade Manutenção
Gastar Menos
4
MAS O QUE É
EDGE COMPUTING ?
QUANDO FAZ SENTIDO ?
Privacidade
Banda de Rede
Latencia
Confiabilidade
Custos
FALAR É FÁCIL
VAMOS VER NA PRÁTICA
USAR CAMERAS
COMO SENSORES
15
Cameras como sensores
Nosso projeto de Edge Computing
• Usar cameras Wifi baratas
• Servidor local recebendo e processando as imagens
• Detecção de objetos usando Machine Learning
• Enviar dados processados para nuvem
• Prover uma interface web local e uma remota para mostrar
os dados
16
Arquitetura do Projeto
HARDWARE
18
ESP32 Cam Raspberry Pi 3
10$
35$
PROVER IMAGENS NA
REDE LOCAL
20
Camera Firmware
github.com/alvarowolfx/gcloud-iot-edge-tensorflow/tree/master/esp32-camera-firmware
• Conectar na rede Wifi
• Prover uma interface HTTP para adquirir as images
• Ler as imagens da camera local (OV2640)
21
Descoberta de Cameras com mDNS
Protocolo de Descoberta Local
• Encontra as cameras locais automaticamente
{INSTANCE_NAME}.local/jpg
• Serviço _camera e protocolo _tcp
22
Encontrando cameras locais
Podemos testar localmente using a ferramenta dns-sd
• http://indoor-camera-ec5d.local/jpg
• http://indoor-camera-60d8.local/jpg
23
GATEWAY NA REDE LOCAL
BAIXAR IMAGENS, CLASSIFICAR
E ENVIAR PARA A NUVEM
26
QUALQUER LINGUAGEM
PODE SER USADA AQUI
27
ATENÇÃO
EU NÃO SOU NENHUM EXPERT
EM MACHINE LEARNING
MAS TALVEZ ESSA SEJA A MELHOR
PARTE DESSE PROJETO
tensorflow.org/js/models
Modelos Pré Treinados em TensorFlow.js que podem ser usados sem muitas alterações
Classification
Mobilenet model
Object Detection
CocoSSD model
Cat, Dog, DuckCat
Classification vs Object Detection
32
33
Arquitetura da Rede Local
34
Edge/Gateway server
github.com/alvarowolfx/gcloud-iot-edge-tensorflow/tree/master/edge-server
DEMO - EDGE SERVER
36
37
38
Meu Computador Raspberry Pi 3
TensorFlow.js
Core
8 seconds
per frame
45 seconds
per frame
TensorFlow.js
Node
200 milliseconds
per frame
1 second
per frame
Performance
Dica - Use tfjs-node ou tfjs-node-gpu se possível
CONFIGURAÇÃO EM NUVEM
40
Arquitetura em Nuvem
cloud.google.com/iot/docs/how-tos/gateways/
INGESTÃO DOS DADOS
PLATFORMA
SERVERLESS
Cloud
Functions
NODEJS
PYTHON
GOLANG
Cloud
Functions
48
ARMAZENANDO OS DADOS
51
52
firebase deploy 🔥 🔥 🔥
53
54
55
Artigo descrevendo tudo que mostrei até agora
bit.ly/gcloud-iot-edge
EVOLUINDO O PROJETO
Eu amo gatos
E se eu pudesse rastrear meus gatos em casa ?
Treinando um modelo customizado
Primeira tentativa
Transfer Learning
Usando modelos pré treinados para treinar novos modelos com datasets menores
Construindo o dataset
Geralmente a parte mais dificil de qualquer projeto de ML
BAIXA ACURÁCIA NO MEU MODELO
😭😿
Treinar um modelo de classificação
Usando o mesmo dataset
Train a classification model
Using the same dataset
Melhor dos dois mundos
Usar um modelo pré treinado para detecção de objetos primeiro e depois o modelo
customizado
Detect
Objects using
CocoSSD
Filtrar
gatos e
cortar as
imagens
Classificar
com modelo
customizado
DEMO - CUSTOM MODEL
68
Found a cat Found Jam
69
Found a cat Found Berry
70
Found two catsFound Jam
Found Muffin
Found Berry
TRABALHO FUTURO
Edge Devices
Performance melhor na borda
Outros Edge Devices
Performance melhor na borda
Sipeed Maix Bit Sparkfun Edge
Identificação de Faces
Identificar apenas pessoas autorizadas em um determinado local
github.com/ageitgey/face_recognition
Estimação de Pose
Modelo Pré Treinado - Posenet
RESUMINDO TUDO
Resumindo tudo
77
Usar o poder do
dispositivo na borda
Extrair mais
informação
usando Machine
Learning
Escalabilidade,
Flexibilidade
e Facilidade de Uso
Usando o poder tanto local quanto em nuvem
OBRIGADO!
AVIEBRANTZ.COM
Alvaro Viebrantz 

Google Developer Expert for IoT and Product Engineer at Leverege
aviebrantz.com
@alvaroviebrantz

Edge computing na prática com IoT, Machine Learning e Google Cloud