Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Visão Computacional em 30 minutos
1. João Victor Dias, 31/01/2018 JoaoVictor_AC
17 anos de
Visão Computacional em
30 minutos
NERDZÃO #23 INTELIGÊNCIA ARTIFICIAL
2. João Victor
Estatístico
Atualmente Cientista de Dados na everis
João Victor Dias, 31/01/2018 JoaoVictor_AC
Análise de
Redes Sociais
Estatística
Pública
Inteligência
Artificial
jvictordias@gmail.com
3. João Victor Dias, 31/01/2018 JoaoVictor_AC
VISÃO COMPUTACIONAL
Conjunto de ferramentas que auxiliam na percepção,
visualização e construção de um mundo visual complexo
Vision Foundations
CS 131
CNN for Visual Recognition
CS 231
4. João Victor Dias, 31/01/2018 JoaoVictor_AC
Reconhecimento
de objetos1
GLOSSÁRIO
Detecção
de objetos2
Segmentaçã
o
de objetos
3
Segmentaçã
o
de imagem
4
Segmentaçã
o
semântica
5
5. João Victor Dias, 31/01/2018 JoaoVictor_AC
RECONHECIMENTO DE OBJETOS
Localizar todos os objetos em uma imagem (uma quantidade restrita
baseada no seu conjunto de dados) e traçar um caixa de seleção ao redor
destes junto a um rótulo associado.
6. João Victor Dias, 31/01/2018 JoaoVictor_AC
DETECÇÃO DE OBJETOS
Similar ao Reconhecimento de
Objetos porém nesta tarefa só
existem duas classes de objetos: uma
desejada e as demais não.
7. SEGMENTAÇÃO DE OBJETOS
Também similar ao Reconhecimento de Objetos porém ao invés de
traçar uma caixa ao redor destes o resultado é a seleção dos pixels dos
objetos.
João Victor Dias, 31/01/2018 JoaoVictor_AC
8. João Victor Dias, 31/01/2018 JoaoVictor_AC
SEGMENTAÇÃO DE IMAGEM
Segmentação de regiões da imagem sem rotulá-las
9. João Victor Dias, 31/01/2018 JoaoVictor_AC
SEGMENTAÇÃO SEMÂNTICA
Neste tipo de segmentação é necessário rotular cada pixel com uma
classe de objetos.
11. João Victor Dias, 31/01/2018 JoaoVictor_AC
2001
Viola-Jones
2005
HOG
CNN
(AlexNet)
2012
R-CNN
2013
Fast R-CNN
2015
Faster R-CNN
Mask R-
CNN
2017
YOLO
YOLO
9000
2016
SSD
12. João Victor Dias, 31/01/2018 JoaoVictor_AC
VIOLA-JONES
1.
Classificador binário baseado em
diversos detectores fracos
2. Atributos de Haar são calculados em
janelas de diferentes tamanhos e
localizações
3. Adaboost é utilizado para
selecionar os melhores atributos
4. Classificadores em cascada são
usados para detectar as faces nas
diferentes janelas
14. João Victor Dias, 31/01/2018 JoaoVictor_AC
HISTOGRAMA DE GRADIENTES ORIENTADOS
1.
As imagens são pré-processadas
2.
Os gradientes são calculados,
obtendo magnitude e direção.
3. Os vetores de atributos são
calculados
Descrição da distribuição das direções dos gradientes
16. João Victor Dias, 31/01/2018 JoaoVictor_AC
HOG
https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-
17. João Victor Dias, 31/01/2018 JoaoVictor_AC
HOG
https://medium.com/@ageitgey/machine-learning-is-fun-part-4-modern-face-recognition-with-deep-learning-
18. ● Imagens:
João Victor Dias, 31/01/2018 JoaoVictor_AC
● 1000 classes de objetos
(categorias)
- 1.2M para treino
- 100k para teste
19. João Victor Dias, 31/01/2018 JoaoVictor_AC
ERRO DE CLASSIFICAÇÃO (ImageNet)
28,2%
2010
15,3%
2012
<2,5%
2017
20. João Victor Dias, 31/01/2018 JoaoVictor_AC
REDES NEURAIS CONVOLUCIONAIS
https://papers.nips.cc/paper/4824-imagenet-classification-with-deep-convolutional-neural-networks.pdf
AlexNet 60 milhões de parâmetros
21. João Victor Dias, 31/01/2018 JoaoVictor_AC
EXTRAÇÃO DE ATRIBUTOS
ABORDAGEM
TRADICIONAL
REDES
NEURAIS
Extratores de
atributos, fixos
e manuais
Extratores de
atributos,
treináveis
Classificadores,
simples e
treináveis
Classificadores,
treináveis
22. João Victor Dias, 31/01/2018 JoaoVictor_AC
Largura: 4 unidades
(Pixels)
Altura: 4 unidades
(Pixels)
3 canais de cores
Imagem como
um tensor 4x4x3
24. João Victor Dias, 31/01/2018 JoaoVictor_AC
ATRIBUTOS DE REDES NEURAIS
CONVOLUCIONAIS PROFUNDAS
São poderosas e transferíveis
São interpretáveis
https://arxiv.org/pdf/1403.6382v3.pdf
https://arxiv.org/abs/1311.290
1
25. João Victor Dias, 31/01/2018 JoaoVictor_AC
Cantos e junções de bordas/cores
https://courses.cs.washington.edu/
27. João Victor Dias, 31/01/2018 JoaoVictor_AC
Partes de objetos Objeto inteiro com variação de pose
28. João Victor Dias, 31/01/2018 JoaoVictor_AC
http://playground.tensorflow.org/
Tensorflow
Playground
29. Utiliza um modelo de regressão
linear para reajustar a caixa de
seleção à imagem
João Victor Dias, 31/01/2018 JoaoVictor_AC
R-CNN
Regiões com Redes Neurais Convolucionais
1.
Gera um conjunto de propostas de
localização para caixas de seleção
2.
Redimensiona as imagens e as envia
para uma versão alterada da AlexNet
3.
4.
Utiliza um SVM para classificar o
objeto contido na caixa de seleção
30. João Victor Dias, 31/01/2018 JoaoVictor_AC
R-CNN
Regiões com atributos de uma CNN
1 - Imagem
de entrada
2 - Extração das
regiões
propostas (~2k)
3 - Cálculo dos
atributos da
CNN
4 - Classificação
das regiões
região selecionada avião? Não.
pessoa? Sim.
Tigre? Não.
31. Dificuldades
João Victor Dias, 31/01/2018 JoaoVictor_AC
R-CNN
1 Necessita percorrer a CNN para cada região proposta em
cada imagem.
2
3
O armazenamento dos atributos extraídos das imagens
exige muito espaço.
Necessita o treino de 3 modelos diferentes
separadamente o que prejudica a performance.
32. João Victor Dias, 31/01/2018 JoaoVictor_AC
FAST R-CNN
1.
Executa a CNN apenas uma vez
sobre a imagem
2.
Compartilha os atributos obtidos
pela CNN entre as regiões propostas
3. Mantém as etapas de classificação
e regressão linear da R-CNN
33. João Victor Dias, 31/01/2018 JoaoVictor_AC
FAST
R-CNN
Extrator de atributos, classificador, regressor,
todos em um framework unificado
34. João Victor Dias, 31/01/2018 JoaoVictor_AC
FASTER R-CNN
1.
Promoveu uma melhoria na geração
das regiões propostas
2.
Ocorreu a troca da Selective Search
pela Region Proposal Network
3. Introduz o conceito de caixas de
âncora
35. João Victor Dias, 31/01/2018 JoaoVictor_AC
FASTER
R-CNN
Fonte: https://arxiv.org/abs/1506.01497
36. João Victor Dias, 31/01/2018 JoaoVictor_AC
R-CNN x Fast R-CNN x Faster R-CNN
R-CNN Fast R-CNN Faster R-CNN
Tempo por imagem 50 segundos 2 segundos 0,2 segundos
Velocidade 1x 25x 250x
mAP (Precisão média) 66,0% 66,9% 66,9%
37. João Victor Dias, 31/01/2018 JoaoVictor_AC
Comentários sobre:
R-CNN, Fast R-CNN e Faster R-CNN
mais rápido
Porém
permanece com
2 componentes:
O Faster R-CNN é: mais preciso
RPN classificador
38. João Victor Dias, 31/01/2018 JoaoVictor_AC
MASK R-CNN
Segmentação a nível do pixel
1. Adiciona uma Rede Totalmente
Convolucional sobre as camadas de
atributos da Faster R-CNN
2.
Gera uma máscara binária que
relaciona o pixel ao objeto
3. Aplicam o RoIAllign para ajustar a
caixa de seleção ao objeto
39. João Victor Dias, 31/01/2018 JoaoVictor_AC
MASK
R-CNN
Fonte: https://arxiv.org/abs/1703.06870
40. João Victor Dias, 31/01/2018 JoaoVictor_AC
YOLO
Abordagem diferente dos demais: Analisa a imagem apenas 1 vez.
Divide a imagem em
grids de 13x13 pixels
e cada célula prediz 5
caixas de seleção.
1000 vezes mais rápido que R-CNN
100 vezes mais rápido que Fast R-
CNN
43. João Victor Dias, 31/01/2018 JoaoVictor_AC
YOLO V2 (9000)
O que mudou?
Melhoria da sensibilidade e
da localização de objetos,
mantendo a acurácia da
classificação.
- Adicionaram Batch Normalization e
removeram o Dropout;
- Utilizam caixas de âncora com K-
médias para clusters de dimensões;
- Treino com múltiplas escalas.
44. João Victor Dias, 31/01/2018 JoaoVictor_AC
SINGLE SHOT DETECTOR
1.
Uma única rede unificada sem o uso
de regiões propostas
2. Utiliza caixas de seleção de
diferentes tamanhos e as ajusta
como parte da predição
3.
Mais rápido e preciso que o YOLO