Upload
duilio-campos-sasdelli
View
590
Download
0
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
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