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
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
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
18
Detecção de Extremos (4/5)Detecção de Extremos (4/5)
Método (3/3): Encontrar candidatos em extremos
locais:
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:
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.
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:
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