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

Poc1 - Final

Embed Size (px)

Citation preview

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