Poc1 - Final

42
Extração de pontos de Extração de pontos de interesse de imagens interesse de imagens utilizando o utilizando o algoritmo SIFT no ambiente algoritmo SIFT no ambiente Android Android Duílio Campos Sasdelli ([email protected]) Duílio Campos Sasdelli ([email protected]) Orientador: Orientador: Fernando Magno Quintão Pereira Fernando Magno Quintão Pereira Co-Orientador: Co-Orientador: David Menotti David Menotti

Transcript of Poc1 - Final

Extração de pontos de Extração de pontos de interesse de imagens interesse de imagens

utilizando outilizando oalgoritmo SIFT no ambiente algoritmo SIFT no ambiente

AndroidAndroid

Duílio Campos Sasdelli ([email protected])Duílio Campos Sasdelli ([email protected])Orientador:Orientador: Fernando Magno Quintão Pereira Fernando Magno Quintão Pereira

Co-Orientador:Co-Orientador: David Menotti David Menotti

2

Proposta (1/2)Proposta (1/2)

Motivação Inicial: Turismo

3

Proposta (2/2)Proposta (2/2)

Solução: Utilizar técnicas de visão computacional

para casamento de objetos:SIFT: Detecção de Pontos de

InteresseRANSAC: Casamento dos Pontos

Encontrados Metodologia:

Implementação do SIFT (Scale Invariant Feature Transform) em um Ambiente Móvel Android

4

Aplicação (1/3)Aplicação (1/3)

Turismo (1) Usuário captura imagem (2) Pontos de Interesse (3) Informações sobre a imagem

1

2

3

5

Aplicação (2/3)Aplicação (2/3)

Turismo: Redução da carga na rede

PNG: 1.5Mb Pontos de Interesse: 300Kb

6

Aplicação (3/3)Aplicação (3/3)

Outras aplicações

7

Pontos de Interesse (1/2)Pontos de Interesse (1/2)

O que são?

8

Pontos de Interesse (2/2)Pontos de Interesse (2/2)

O que são? Para que servem?

9

SIFT (1/6)SIFT (1/6)

Por quê usar o SIFT? Mesmo objeto apresenta variações em

diferentes imagens

10

SIFT (2/6)SIFT (2/6)

Há necessidade invariância: Escala

11

SIFT (3/6)SIFT (3/6)

Há necessidade invariância: Escala Rotação

12

SIFT (4/6)SIFT (4/6)

Há necessidade invariância: Escala Rotação Luminosidade

13

SIFT (5/6)SIFT (5/6)

Há necessidade invariância: Escala Rotação Luminosidade Perspectiva

14

SIFT (6/6)SIFT (6/6)

É dividido em quatro etapas: Detecção de Extremos Localização dos Pontos de Interesse Definição de Orientação Definição de Descritores

15

Detecção de Extremos (1/5)Detecção de Extremos (1/5)

Deve-se detectar candidatos a pontos de interesse e definir suas escalas e localizações.

Solução:Utilizar a Função Scale-Space

16

Detecção de Extremos (2/5)Detecção de Extremos (2/5)

Método (1/3): Scale-Space:

17

Detecção de Extremos (3/5)Detecção de Extremos (3/5)

Método (2/3): Diferença de Gaussianas:

18

Detecção de Extremos (4/5)Detecção de Extremos (4/5)

Método (3/3): Encontrar candidatos em extremos

locais:

19

Detecção de Extremos (5/5)Detecção de Extremos (5/5)

Resultado: Muitos pontos

20

Localização de Pontos de Localização de Pontos de Interesse (1/6)Interesse (1/6)

Definir uma localização precisa para os pontos: Interpolação com expansão de Taylor

Eliminar candidatos: Com baixo contraste:

Usar Threshold mínimo Mal localizados ao longo de uma borda:

Avaliar curvaturas principais

21

Localização de Pontos de Localização de Pontos de Interesse (2/6)Interesse (2/6)

Método (1/3): Interpolação com expansão de Taylor

Novo extremo local:

22

Localização de Pontos de Localização de Pontos de Interesse (3/6)Interesse (3/6)

Método (2/3): Pontos com baixo contraste são

descartados:

23

Localização de Pontos de Localização de Pontos de Interesse (4/6)Interesse (4/6)

Resultado: Ainda há muitos pontos mal posicionados nas bordas

24

Localização de Pontos de Localização de Pontos de Interesse (5/6)Interesse (5/6)

Método (3/3): Curvaturas principais possuem uma razão

elevada se o ponto é sensível a ruídos Auto-valores da matriz hessiana em um

dado ponto são proporcionais às curvaturas principais:

Como só é necessária a razão, os pontos devem respeitar:

25

Localização de Pontos de Localização de Pontos de Interesse (6/6)Interesse (6/6)

Resultado:

26

Definição de Orientação (1/4)Definição de Orientação (1/4)

Para garantir invariância a rotação, deve-se definir a orientação do ponto de interesse:

27

Definição de Orientação (2/4)Definição de Orientação (2/4)

Método (1/2): Calcular gradientes e suas magnitudes

em uma região ao redor do ponto:

28

Definição de Orientação (3/4)Definição de Orientação (3/4)

Método (2/2): Criar um histograma de orientações:

Orientação dominante é assinalada ao ponto.

29

Definição de Orientação (4/4)Definição de Orientação (4/4)

Resultado:

30

Definição de Descritores (1/4)Definição de Descritores (1/4)

As etapas anteriores criam um descritor invariante à escala e rotação

É necessário expandi-lo para permitir invariância à: Perspectiva:

Histograma de gradientes regional Iluminação (Brilho e Contraste):

Normalização

31

Definição de Descritores (2/4)Definição de Descritores (2/4)

Método (1/3) Cria-se um novo descritor a partir de

histogramas de gradiente em regiões ao redor do ponto:

32

Definição de Descritores (3/4)Definição de Descritores (3/4)

Método (2/3)

33

Definição de Descritores (4/4)Definição de Descritores (4/4)

Método (3/3) Invariância a mudanças no contraste:

O vetor descritor é normalizado e se torna unitário

Invariância a mudanças no brilho:Não é necessário fazer nada pois o

uso de gradientes já incorpora a invariância

34

Android (1/2)Android (1/2)

O Ambiente Android Sistema operacional da Google para

Smartphones Utiliza uma versão modificado do Kernel

Linux Desenvolvimento de aplicativos:

Linguagem JavaGoogle oferece amplo suporte e

documentação SDK completo: bibliotecas, depurador

e emulador

35

Android (2/2)Android (2/2)

Desenvolvimento do Sift no Android é desafiante: Grande gasto de memória Processamento pesado

Soluções: Simplificar o algoritmo Otimizar funções custosas Adaptar algumas funções

36

Resultados (1/8)Resultados (1/8)

O que já está pronto?

37

Resultados (2/8)Resultados (2/8)

38

Resultados (3/8)Resultados (3/8)

39

Resultados (4/8)Resultados (4/8)

40

Resultados (5/8)Resultados (5/8)

41

Resultados (5/8)Resultados (5/8)

42

DúvidasDúvidas