identificando árvores e rede elétrica com o tensorflow€¦ · rede elétrica com o tensorflow...

87
Identificando árvores e rede elétrica com o Tensorflow Tamara Mendes

Upload: others

Post on 25-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Identificando árvores e rede elétrica com o Tensorflow

Tamara Mendes

Page 2: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Contexto

Page 3: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 4: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 5: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Gerenciar ativos de rede

Page 6: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Automatizar identificação de

elementos de rede e árvores

Page 7: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 8: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 9: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 10: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Classificação de imagens

Page 11: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Classificar

Gato

Classes

Page 12: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Classificar

Gato

Classificar

e localizar

Gato

Classes

Page 13: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Classificar

Gato

Classificar

e localizar

Detectar múltiplos objetos

Gato Gato, cachorro, pato

Classes

Page 14: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Classificação de espécies

Page 15: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

No mínimo 20 imagens para cada classe

Page 16: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 17: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Treinar o modelo

Tensorflow Modelo

Page 18: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Treinamento https://github.com/tensorflow/hub/raw/master/examples/image_r

etraining/retrain.py

Teste https://github.com/tensorflow/tensorflow/raw/master/tensorflow/

examples/label_image/label_image.py

Page 19: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Classificar as árvores

Modelo

oiti: 0.02

sibipiruna: 0.04

mangueira: 0.01

coqueiro: 0.93

Page 20: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Mangueira: 99,65% Oiti: 0,19%

Sibipiruna: 0,09%

Coqueiro: 0,05%

Coqueiro: 70,11% Mangueira: 15,37%

Sibipiruna: 14,20%

Oiti: 0,29%

Page 21: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Mangueira: 78,48 Oiti: 21,11% Sibipiruna: 0,29%

Coqueiro: 0,11%

Sibipiruna: 99,73% Coqueiro: 0,17%

Oiti: 0,059%

Mangueira: 0,031%

Page 22: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Detecção de objetos

Page 23: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Instalação

Page 24: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

conda create -n nome_seu_ambiente python=3.6

conda activate nome_seu_ambiente

Page 25: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

GPU compatível

Drivers necessários

conda install tensorflow-gpu

conda install tensorflow

CPU

GPU

Page 26: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

GPU compatível

Drivers necessários

conda install tensorflow-gpu

conda install tensorflow

CPU

GPU

Page 27: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

conda install pillow lxml jupyter matplotlib opencv contextlib2 Cython pandas

Pacotes necessários

Page 28: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

python

import tensorflow as tf

hello = tf.constant('Hello, TensorFlow!')

sess = tf.Session()

print(sess.run(hello))

conda install pillow lxml jupyter matplotlib opencv contextlib2 Cython pandas

Pacotes necessários

Testar a instalação

Page 29: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

https://github.com/tensorflow/models/

Page 30: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Setar variáveis de ambiente

Baixar e compilar a biblioteca protobuf

Setar PATH do python

Page 31: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

python object_detection/builders/model_builder_test.py

Rodar os testes

Page 32: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 33: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Treinamento

Page 34: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

No mínimo 100 imagens para cada objeto

Page 35: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

90% 10%

Page 36: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Tensorflow Modelo

Page 37: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 38: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 39: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

python scripts/preprocessing/xml_to_csv.py [parametros]

Page 40: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

python scripts/preprocessing/xml_to_csv.py [parametros]

python scripts/preprocessing/generate_tfrecord.py [parametros]

Page 41: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

item { id: 1 name: ‘arvore’ } item { id: 2 name: ‘poste’ }

Page 42: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 43: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

Page 44: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

Page 45: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

python object_detection\train.py [parametros]

Page 46: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

AGUARDANDO...

O TREINAMENTO DA MINHA REDE NEURAL

Page 47: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

2 GPUs NVIDIA Tesla K80

52 GB de memória

1162 imagens (até 4MB)

60 mil passos

Page 48: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

2 GPUs NVIDIA Tesla K80

52 GB de memória

1162 imagens (até 4MB)

60 mil passos

91 horas e 40 minutos

Page 49: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

Page 50: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Exportar modelo python object_detection\export_inference_graph.py

[parâmetros]

Page 51: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

Page 52: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Testar python object_detection\object_detection.py

Page 53: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

workspace

images

train

test

annotations

pre-trained-model

training

exported-models

tests

images

results

Page 54: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Detecção de árvores e equipamentos

Page 55: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Sistema de mapeamento

terrestre móvel

Page 56: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 57: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

I - Treinar o modelo

Tensorflow Modelo

Page 58: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

II – Identificar os objetos

Modelo

Page 59: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 60: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 61: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 62: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Também erra!

Page 63: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Treinamento

OBJETO NÚMERO DE IMAGENS

Árvores 512

Poste 650

Chave 221

Transformador 317

Cabo 932

Page 64: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Teste em 214.400 imagens

Inspeção manual de amostra com

13.509 imagens (6,3% do total)

Avaliação

Page 65: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Precisão

Page 66: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Recall

Page 67: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Resultados

OBJETO Nº DETECÇÕES PRECISÃO RECALL

Árvores 554 93,32% 93,15%

Poste 373 91,69% 90%

Cabos 394 100% 74,17%

Chave 28 92,85% 71,79%

Transformador 33 78,79% 70,27%

TOTAL 1382 93,27% 86,91%

Page 68: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Desafios

Page 69: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Funcionou para classificação

Pesado

Ambiente

Page 70: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Instalação...

Gerar o modelo...

Ambiente

Page 71: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Instalação...

Gerar o modelo...

Page 72: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

https://github.com/tensorflow/models/

Versão do Tensorflow

Julho de 2018

Page 73: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Objetos pequenos

Rede neural

Page 74: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Solução: recorte do poste

Page 75: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Localização

de cabos

Rede neural

Page 76: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Localização

de cabos

Rede neural

Page 77: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Área rural

X

Área urbana

Rede neural

Page 78: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Como funciona?

Page 79: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 80: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 81: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 82: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 83: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 84: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 85: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação
Page 86: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Referências

Tutorial Tensorflow object detection:

https://tensorflow-object-detection-api-tutorial.readthedocs.io

https://www.linkedin.com/pulse/o-que-%C3%A9-um-rede-neural-convolucional-alex-fernandes-mansano

https://imasters.com.br/back-end/classificacao-de-imagens-com-deep-learning-e-tensorflow

https://www.tensorflow.org/hub/tutorials/image_retraining

Page 87: Identificando árvores e rede elétrica com o Tensorflow€¦ · rede elétrica com o Tensorflow Tamara Mendes . Contexto . Gerenciar ativos de rede . Automatizar identificação

Tamara Mendes Mestre em Ciência da Computação

Analista de Software na CONCERT Technologies

[email protected]

http://br.linkedin.com/in/tamaramendes