Вы находитесь на странице: 1из 7

Algoritmos de Busca SIFT e SURF no Uso de Dispositivos

Móveis.
Christien Lana Rachid1, Ana Amélia de Souza Pereira2
1,2
Ciência da Computação – Universidade Presidente Antônio Carlos (UNIPAC)
36.500-000 – Ubá – MG – Brasil
christienrachid@gmail.com, aamelia.mg@gmail.com

Abstract. As vendas de telefones com câmera estão subindo rapidamente em


todo o mundo. Quase todos os telefones móveis vendidos hoje são equipados
com uma câmera interna. Os sistemas de buscas que utilizam palavras chave
podem funcionar bem em computadores, mas se tornam um pouco incômodos
para o uso no celular. Deseja-se fazer uma comparação entre técnicas de
detecção de imagens, como por exemplo, comparar métodos como SIFT e
SURF verificando a eficiência destes algoritmos, verificando a eficiência entre
eles, analisando a complexidade computacional com relação ao tempo de
execução que gastarão. A metodologia proposta neste trabalho utilizará
correlação entre descritores de features. Os resultados obtidos foram
correlacionados de pesquisas feitas por autores de diversos seguimentos. Foi
verificado que o algoritmo Sift possui um desempenho superior a diversos
algoritmos, embora sua maior limitação seja o custo computacional elevado.

Resumo. As vendas de telefones com câmera estão subindo rapidamente em


todo o mundo. Quase todos os telefones móveis vendidos hoje são equipados
com uma câmera interna. Os sistemas de buscas que utilizam palavras chave
podem funcionar bem em computadores, mas se tornam um pouco incômodos
para o uso no celular. Deseja-se fazer uma comparação entre técnicas de
detecção de imagens, como por exemplo, comparar métodos como SIFT e
SURF verificando a eficiência destes algoritmos, verificando a eficiência entre
eles, analisando a complexidade computacional com relação ao tempo de
execução que gastarão. A metodologia proposta neste trabalho utilizará
correlação entre descritores de features. Os resultados obtidos foram
correlacionados de pesquisas feitas por autores de diversos seguimentos. Foi
verificado que o algoritmo Sift possui um desempenho superior a diversos
algoritmos, embora sua maior limitação seja o custo computacional elevado.
1. Introdução
Como em outras partes do mundo, milhões de pessoas em todo o mundo já se
comunicam por meio de tecnologias móveis, só no Brasil em 2007 havia 120,6 milhões
de linhas habilitadas no país contra quase 100 milhões no final de ANATEL1, 2006.
No mundo inteiro, as vendas de telefones com câmera estão subindo
rapidamente. Quase todos os telefones móveis comprados hoje são equipados com uma
câmera interna. O grupo Gartner2 estima que em 2006 quase 460 milhão telefones com
câmera foram vendidos, este número pode bater um bilhão de dispositivos no mercado
em 2010.
Deseja-se começar a modificar a maneira de se utilizar um celular para encontrar
informação sobre produtos ou anúncios, atualmente feitos apenas via digitação de
termos em um sistema de busca WAP.
Os sistemas de buscas que utilizam palavras-chave podem funcionar bem em
computadores, mas se tornam um pouco incômodos para o uso no celular. Para tentar
tornar esse processo mais fácil para o usuário, pesquisadores da Microsoft
desenvolveram um protótipo de um software chamado Lincoln3, que utiliza fotografias
tiradas no telefone portátil como referência para a busca de informações na web.
De acordo com Larry Zitnick4, pesquisador que trabalha no projeto, telefones
equipados com o programa poderiam, por exemplo, acessar resenhas de filmes on-line
através de fotos do pôster do filme ou da capa de um DVD, e ter informações sobre
produtos através de imagens de propaganda. “O que queremos fazer é conectar os
objetos do mundo real com a web, utilizando imagens”, disse Zitnick ao o site da revista
“Technology Review”. “O programa é uma forma de achar informação na internet
utilizando imagens ao invés de palavras-chave.”
[RUF et al, 2008] propôs um protótipo que permite visitantes de um museu
portando um telefone com câmera conectar a um guia turístico: o usuário aponta com
seu telefone à pintura do interesse e recebe detalhes tais como o título, artista, contexto
histórico e revisão crítica que podem facilmente ser comunicados ao visitante na língua
de sua escolha.
Quando uma foto é colocada no sistema, o algoritmo rapidamente estabelece
esses dados e os compara com os da base de dados.
O sistema funciona através de uma integração em tempo real entre um servidor
central e o aparelho, que rapidamente compara itens filmados com imagens previamente
cadastradas em um banco de dados.

__________________________
1
http://www.anatel.gov.br
2
http://www.gartner.com/it/page.jsp?id=498310
3
http://research.microsoft.com/en-us/
4
http://www.technologyreview.com/Infotech/18368/
O servidor, então roda um algoritmo chamado SIFT(Scale-Invariant Feature
Transform) ou SURF(Speeded Up Robust Features) que encontra informações
relevantes e envias de volta ao celular. Estes algoritmos utilizam milhares de pontos de
referencia, capazes de analisar características físicas e retornar resultados precisos.
O uso de um servidor central é importante porque é difícil armazenar um banco
de dados muito grande em um celular, além de ser difícil também propor um software
genérico para qualquer marca e modelo, explicou Krystian Mikolajczyk5, da
Universidade de Surrey, na Inglaterra.
O objetivo deste artigo é fazer uma comparação entre técnicas de detecção de
imagens, como por exemplo, comparar métodos dos algoritmos SIFT e SURF e verificar
a eficiência destes, analisando a complexidade computacional com relação ao tempo de
execução que eles gastarão. Com o aumento da velocidade dos computadores, torna-se
cada vez mais importante desenvolver algoritmos mais eficientes, devido ao aumento
constante do tamanho dos problemas a serem resolvidos. Na seção dois é tratado um
pouco sobre as duas tecnologias. Já na seção três e demonstrado a diferença entre os
métodos utilizados pelas duas linguagens em seus diferentes algoritmos. Finalizando o
artigo na seção quatro e mostrado as conclusões e trabalhos futuros.

2. Algoritmos SIFT e SURF


Esta seção apresenta uma revisão bibliográfica dos algoritmos SIFT e SURF,
enfatizando as implementações em Hardware. Os mesmos foram escolhidos por serem
amplamente utilizados no desenvolvimento de sistemas moveis. O SIFT foi escolhido
por ser uma solução que detecta features invariante à escala e rotação. E o SURF por ter
se mostrado ser mais eficiente e com uma taxa de acerto tão boa ou melhor que a do
SIFT tanto em ambientes internos quanto externos.

2.1. SIFT
Proposta por [DAVID, 2004], a técnica SIFT, é um algoritmo que analisa a imagem e
cria uma assinatura que descreve a figura sucintamente, utilizando uma pequena
quantidade de dados. Ela informa a posição relativa dos pixels e a intensidade de uma
determinada característica na imagem. Em uma foto de um rosto, por exemplo, são
agrupadas as características dos olhos, boca e nariz.
Originalmente proposta para o reconhecimento de objetos, atualmente possui
diversas aplicações como a navegação de robôs, a modelagem 3D, o reconhecimento de
gestos e a detecção de imagens e vídeos parecidos. O SIFT transforma uma imagem
numa larga coleção de vetores de características, cada uma invariante a translação,
escala, rotação, razoavelmente invariáveis a mudanças de iluminação, ruído de imagem
e pequenas mudanças de perspectivas.
Esses vetores de características são chamados de descritores, que são utilizadas
para comparar regiões em imagens diferentes. Utilizando esta técnica, pode se encontrar
correspondências ponto a ponto entre duas imagens.
_____________________
5
http://info.ee.surrey.ac.uk/Personal/K.Mikolajczyk/
A técnica de SIFT gera um grande numero de descritores que conseguem cobrir
densamente uma imagem quanto à escala localização[ DREWS JR, 2007].
A Obtenção de descritores SIFT é feita através das seguintes etapas:
• Detecção de Extremos;
• Localização de pontos chaves;
• Definição de Orientação;
• Descritor dos pontos chave.

2.2. SURF
Proposto recentemente por [HERBERT, 2006] o algoritmo SURF. É um sólido detector
de pontos de interesse em imagens, inspirado parcialmente no SIFT, visando um menor
custo computacional com bom desempenho. O algoritmo é composto por três etapas:
• Criação da Integral da Imagem;
• Determinação de Pontos de Interesse através da Fast- Hessian;
• Criação do Descritor de Cada Ponto-chave.
O SURF usa, uma abordagem semelhante ao SIFT, considerando a distância
euclidiana e a razão com a segunda menor distância.
Aproxima-se ou mesmo supera propostas anteriores no que diz respeito à
repetibilidade, à clareza, e a robustez. Construído sobre os pontos fortes dos líderes
atuais em detectores. Os autores propõem 3 versões do descritor do ponto, porém o
método de extração é o mesmo para todos.

3. SIFT versus SURF


Algoritmos promissores como o SIFT, proposto por [LOWE, 2004], e o SURF, proposto
por [Bay et al. 2006], não se propõem apenas em detectar pontos de interesse, mas
também em criar e utilizar uma abordagem baseada em descritores de regiões
invariantes.
Existem ainda algumas considerações sobre o processo de correlação utilizando
descritores de pontos. O SIFT além de considerar a menor distância entre descritores,
ainda faz uma consideração com a segunda menor distância, esta devendo ser maior que
uma razão pré-definida. O SURF para fazer matching considera o sinal do laplaciano, ou
seja, o trace da matriz hessiana.
SIFT e SURF têm maneiras ligeiramente diferentes de detectar características.
SIFT identifica as posições chave no espaço-escala através da busca por posições de
máximo ou mínimo em uma pirâmide da imagem utilizando uma função diferença de
Gaussianas (DoG), a qual é uma aproximação do Laplaciano da Gaussiana (LoG). Por
outro lado, o SURF se baseia no uso de integral de imagens a do uso do Fast- Hessian,
através de uma aproximação do kernel gaussiano de segunda ordem, para determinar
características. Para determinação do descritor é utilizado a soma das respostas do 2D
Haar wavelet em diferentes orientações. A versão padrão do SURF cria um descritor de
64 posições, sendo muito eficiente, porém menos preciso. Uma variante deste, ainda
menos custosa computacionalmente não corrige a orientação do ponto. Existe uma
terceira versão que tem um descritor de 128 posições considerando assim os diferentes
sinais do 2D Haar wavelet, esta sendo muito precisa[ DREWS JR, 2008].

IplImage*** build_dog_pyr( IplImage*** gauss_pyr, int octvs, int intvls )


{
IplImage*** dog_pyr;
int i, o;
dog_pyr = calloc( octvs, sizeof( IplImage** ) );
for( i = 0; i < octvs; i++ )
dog_pyr[i] = calloc( intvls + 2, sizeof(IplImage*) );
for( o = 0; o < octvs; o++ )
for( i = 0; i < intvls + 2; i++ )
{
dog_pyr[o][i] = cvCreateImage( cvGetSize(gauss_pyr[o][i]),
IPL_DEPTH_32F, 1 );
cvSub( gauss_pyr[o][i+1], gauss_pyr[o][i], dog_pyr[o][i], NULL);
}
return dog_pyr;
}

Fig.1- Método Difference of Gaussians


Fonte: Christopher, 2009

for ( int o=0; o<octaves ; o++)


{
border = (3 * pow( 2 , o+1)*( i n t e r v a l s )+1) + 1 ) / 2 ;
for ( int i =0; i<i n t e r v a l s ; i++) {
lobe = pow( 2 , o+1)_( i +1)+1;
area = pow( (3* lobe ) , 2 ) ;
for ( int r=border ; r<height_border ; r++) {
for ( int c=border ; c<width_border ; c++) {
Dyy = [ Filter Response ] / ar ea ;
Dxx = [ Filter Response ] / ar ea ;
Dxy = [ Fi lter Response ] / ar ea ;
detHes s = (Dxx_Dyy 0 . 9 f _0. 9 f _Dxy_Dxy ) ;
}
}
}
}

Fig.2- Método Fast-Hessian


Fonte: Christopher, 2009

Os resultados obtidos foram correlacionados de pesquisas feitas por autores de


diversos seguimentos.
Foi verificado que o algoritmo Sift possui um desempenho superior a diversos
algoritmos, embora sua maior limitação seja o custo computacional elevado.
Fig.3- Tabela de Resultados

4. Considerações Finais
Este artigo propõe a comparação dos métodos descritores dos algoritmos SIFT e SURF e
verifica a eficiência destes, analisando a complexidade computacional com relação ao
seu tempo de execução.
A utilização do cálculo da distância euclidiana entre vetores que representam
descritores de pontos gerados pelo SIFT mostrou-se bastante eficiente, porém bem mais
lento. O SURF apresentou ótimo desempenho e precisão
Trabalhos futuros concentram-se em pesquisas de algoritmos precisos e com
baixo custo computacional, em implementações otimizadas utilizadas em dispositivos
moveis.

5. Referências
DAVID. G. Lowe. Distinctive image features from scale-invariant keypoints. Int. J.
Comput. Vision, 2004.
DREWS JR, P. L. J. ; BOTELHO, S. S. C. ; MEDEIROS, M. M. ; CENTENO, T. M. .
Using SIFT Algorithm for visual-based Localization in Multi-AUVs Fleet. In: Simpósio
Brasileiro de Automação Inteligente, 2007, Florianópolis. Anais do SBAI 2007.
DREWS JR, P. L. J. ; BOTELHO, S. S. C. . Uma Abordagem Baseada em Visão
Computacional para Localização e Mapeamento Simultâneos de Robôs Subaquáticos.
REIC. Revista Eletrônica de Iniciação Científica, v. VIII, p. 6, 2008.
ERIC CHU, Erin Hsu, Sandy Yu, Image-guided tours: fast-approximated Sift with U-
Surf Features, Stanford University, 2008.
HERBERT BAY, Tinne Tuytelaars, and Luc Van Gool. Surf: Speeded up robust
features. In Ninth European Conference on Computer Vision, 2006.
HAMID AGHVAMI, Alex Brand, editor. ... guide: Fast and robust recognition of
museum objects. First International Conference on Mobile Vision, 2006.
K. MIKOLAJCZYK and C. Schmid. A performance evaluation of local descriptors.
IEEE Transactions on Pattern Analysis e Machine Intelligence, 2005.
RUF BORIS; Kokiopoulou,Effrosyni; Detyniecki, Marcin; Mobile museum guide based
on fast SIFT recognition, 6th International Workshop on Adaptive Multimedia
Retrieval, Berlin, Germany, 2008.

Вам также может понравиться