proposal of a hybrid algorithm based on surf and...

6
Proposal of a Hybrid Algorithm Based on SURF and ORB Ricardo Ribani 2 [email protected] Luiz Lino Bertanha de Abreu 1 [email protected] Cleberson Forte 1,2 [email protected] Mauricio Marengoni 2 [email protected] 1 FATEC Americana 2 Universidade Presbiteriana Mackenzie Abstract This paper proposes a hybrid algorithm for detection and tracking based on SURF and ORB to be executed on mobile devices. The tests performed here analyze the detection of interest points and the descriptors used in each algorithm, and verify the better combination considering performance, robustness, rotation invariance and scale invariance. The computer vision library used to build the software was OpenCV for the iOS platform and the device was a 3rd generation iPad. The results presented here show that the combination of SURF and ORB can lead to a better real time system in mobile devices. Keywords: SURF; ORB; Hybrid algorithm. I. INTRODUÇÃO Com a popularização de dispositivos móveis com algum poder computacional, torna-se cada vez mais comum o desenvolvimento de aplicativos que empregam técnicas de visão computacional, oferecendo técnicas que auxiliam desde o tratamento de imagens, passando por aplicativos de reconhecimento de padrões até aplicações de realidade aumentada. A combinação do uso desses dispositivos com a necessidade de reconhecimento de imagens em tempo real, requer muitas vezes, o processamento de algoritmos no próprio dispositivo, diferente de outros cenários onde a imagem é capturada e enviada a um servidor com maior capacidade de processamento, para então retornar um resultado. Tendo em vista que a necessidade pelo desenvolvimento de tais aplicativos tende a crescer com o lançamento de novos dispositivos com ainda maior poder computacional, somado ao barateamento da tecnologia, justifica-se uma proposta de algoritmo para reconhecimento de objetos, baseado na extração e descrição de pontos de interesse, visando prover bons resultados para a tecnologia móvel. Neste contexto, foram estudados dois algoritmos correlatos: o SURF [1] e o ORB [2] , a partir dos quais foi proposto um algoritmo hibrido para o contexto aqui apresentado. Segundo os experimentos realizados, a proposta híbrida se mostrou mais rápida e mais robusta. Na seção 2 deste trabalho discutimos brevemente sobre dispositivos móveis e suas principais diferenças em relação aos computadores pessoais; Na seção 3 são apresentadas as principais características dos dois algoritmos que compõem a base conceitual de nossa proposta; Na seção 4 apresentamos a proposta e implementação do algoritmo híbrido, bem como as ferramentas utilizadas; Na seção 5 mostramos os resultados da execução do algoritmo proposto, bem como das outras combinações estudadas; Finalmente, na seção 6, apresentamos as conclusões e trabalhos futuros. II. DISPOSITIVOS MÓVEIS Quando se fala em mobilidade, comumente somos impelidos a pensar sobre a possibilidade do objeto em análise estar apto ao uso em qualquer lugar ou momento. Cabe sublinhar que este conceito que identifica os dispositivos móveis neste trabalho é uma observação moderna, uma vez que há alguns anos os dispositivos moveis tratavam, na maioria das vezes, de grandes equipamentos, pesados, e com alto consumo de energia. Quando se conseguia dispositivos menores e mais portáteis, esses tinham baixo poder de processamento e pouca memória. Com a evolução tecnológica nos últimos anos, representada principalmente pelo surgimento dos tablet PCs e smartphones, passou-se a ter pequenos dispositivos, com um significativo poder de processamento e melhor eficiência energética. A maioria dos processadores utilizados nesses dispositivos são baseados na arquitetura RISC [8], como por exemplo os microprocessadores ARM, presentes em grande parte dos dispositivos comercializados atualmente. Ao trabalhar com um sistema de tempo real em dispositivos móveis, porém, é necessário enfatizar que mesmo com a rápida evolução, tais dispositivos ainda apresentam certa deficiência em relação a processamento e memória quando comparados com os computadores pessoais. Este contexto nos encoraja à proposição do algoritmo hibrido, que se propõe a ser uma alternativa rápida e eficiente para o emprego em projetos que passem pela necessidade de reconhecimento de padrões. III. ALGORITMOS UTILIZADOS Dentre as possibilidades já estabelecidas no ambiente acadêmico e que compõem o estado da arte no que se refere a algoritmos de extração de pontos de interesse, destacam-se os algoritmos SURF e ORB. Nesta seção nos atemos ao estudo mais detalhado sobre ambos os algoritmos que compõem a base teórica para nossa proposta. A. SURF Desenvolvido a partir do legado iniciado pelo seu antecessor direto, o algoritmo SIFT [3], o SURF (Speeded Up Robust Features) baseia-se em três etapas distintas: detecção dos pontos de interesse, descrição destes pontos e correlação entre os pontos de diferentes imagens. De modo geral, o detector de pontos de interesse implementado no algoritmo trabalha com uma matriz

Upload: lehanh

Post on 08-Nov-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Proposal of a Hybrid Algorithm Based on SURF and ORB

Ricardo Ribani2

[email protected] Luiz Lino Bertanha de Abreu1 [email protected]

Cleberson Forte1,2 [email protected]

Mauricio Marengoni2 [email protected]

1 FATEC Americana 2 Universidade Presbiteriana Mackenzie

   

Abstract This paper proposes a hybrid algorithm for detection and

tracking based on SURF and ORB to be executed on mobile devices. The tests performed here analyze the detection of interest points and the descriptors used in each algorithm, and verify the better combination considering performance, robustness, rotation invariance and scale invariance. The computer vision library used to build the software was OpenCV for the iOS platform and the device was a 3rd generation iPad. The results presented here show that the combination of SURF and ORB can lead to a better real time system in mobile devices.

Keywords: SURF; ORB; Hybrid algorithm.

I. INTRODUÇÃO Com a popularização de dispositivos móveis com algum

poder computacional, torna-se cada vez mais comum o desenvolvimento de aplicativos que empregam técnicas de visão computacional, oferecendo técnicas que auxiliam desde o tratamento de imagens, passando por aplicativos de reconhecimento de padrões até aplicações de realidade aumentada. A combinação do uso desses dispositivos com a necessidade de reconhecimento de imagens em tempo real, requer muitas vezes, o processamento de algoritmos no próprio dispositivo, diferente de outros cenários onde a imagem é capturada e enviada a um servidor com maior capacidade de processamento, para então retornar um resultado.

Tendo em vista que a necessidade pelo desenvolvimento de tais aplicativos tende a crescer com o lançamento de novos dispositivos com ainda maior poder computacional, somado ao barateamento da tecnologia, justifica-se uma proposta de algoritmo para reconhecimento de objetos, baseado na extração e descrição de pontos de interesse, visando prover bons resultados para a tecnologia móvel. Neste contexto, foram estudados dois algoritmos correlatos: o SURF [1] e o ORB [2] , a partir dos quais foi proposto um algoritmo hibrido para o contexto aqui apresentado. Segundo os experimentos realizados, a proposta híbrida se mostrou mais rápida e mais robusta.

Na seção 2 deste trabalho discutimos brevemente sobre dispositivos móveis e suas principais diferenças em relação aos computadores pessoais; Na seção 3 são apresentadas as principais características dos dois algoritmos que compõem a base conceitual de nossa proposta; Na seção 4 apresentamos a proposta e implementação do algoritmo híbrido, bem como as ferramentas utilizadas; Na seção 5 mostramos os resultados da execução do algoritmo proposto,

bem como das outras combinações estudadas; Finalmente, na seção 6, apresentamos as conclusões e trabalhos futuros.

II. DISPOSITIVOS MÓVEIS Quando se fala em mobilidade, comumente somos

impelidos a pensar sobre a possibilidade do objeto em análise estar apto ao uso em qualquer lugar ou momento.

Cabe sublinhar que este conceito que identifica os dispositivos móveis neste trabalho é uma observação moderna, uma vez que há alguns anos os dispositivos moveis tratavam, na maioria das vezes, de grandes equipamentos, pesados, e com alto consumo de energia. Quando se conseguia dispositivos menores e mais portáteis, esses tinham baixo poder de processamento e pouca memória.

Com a evolução tecnológica nos últimos anos, representada principalmente pelo surgimento dos tablet PCs e smartphones, passou-se a ter pequenos dispositivos, com um significativo poder de processamento e melhor eficiência energética. A maioria dos processadores utilizados nesses dispositivos são baseados na arquitetura RISC [8], como por exemplo os microprocessadores ARM, presentes em grande parte dos dispositivos comercializados atualmente.

Ao trabalhar com um sistema de tempo real em dispositivos móveis, porém, é necessário enfatizar que mesmo com a rápida evolução, tais dispositivos ainda apresentam certa deficiência em relação a processamento e memória quando comparados com os computadores pessoais. Este contexto nos encoraja à proposição do algoritmo hibrido, que se propõe a ser uma alternativa rápida e eficiente para o emprego em projetos que passem pela necessidade de reconhecimento de padrões.

III. ALGORITMOS UTILIZADOS  

Dentre as possibilidades já estabelecidas no ambiente acadêmico e que compõem o estado da arte no que se refere a algoritmos de extração de pontos de interesse, destacam-se os algoritmos SURF e ORB. Nesta seção nos atemos ao estudo mais detalhado sobre ambos os algoritmos que compõem a base teórica para nossa proposta.  A. SURF

Desenvolvido a partir do legado iniciado pelo seu antecessor direto, o algoritmo SIFT [3], o SURF (Speeded Up Robust Features) baseia-se em três etapas distintas: detecção dos pontos de interesse, descrição destes pontos e correlação entre os pontos de diferentes imagens.

De modo geral, o detector de pontos de interesse implementado no algoritmo trabalha com uma matriz

Hessiana (matriz da derivada parcial da segunda ordem) que é aplicada no resultado da pirâmide de filtros obtida a partir da imagem original e que serve como uma etapa para supressão de pontos não máximos. Os pontos são escolhidos de acordo com o determinante dessa matriz Hessiana que possui n variáveis, essas variáveis se caracterizam por ser a matriz quadrada com “i” colunas e “i” linhas (i X i), através disto será possível descrever a curvatura local necessária para a seleção dos pontos.

O SURF é um algoritmo que tenta identificar os pontos de interesse de forma eficiente, para isso é utilizada uma aproximação através da Laplaciana da Gaussiana fazendo uma convolução nos pontos da imagem nas direções X, Y e XY (diagonal), utilizando filtros nas matrizes de convolução (Fig. 1). Nesse processo, a escala é levada em consideração através da derivada de segunda ordem da Gaussiana e aplicando uma pirâmide de escalas, porém na prática essa Gaussiana precisa ser discretizada [1]. As três etapas do algoritmo utilizam estruturas que auxiliam no incremento de velocidade de execução, como é o caso das imagens integrais [10].

Fig. 1 - Da esquerda para a direita: Derivada parcial de

segunda ordem da gaussiana na direção Y e XY, respectivamente; Aproximação para a derivada parcial de

segunda ordem da gaussiana na direção Y e XY [1]. Na etapa de descrição dos pontos de interesse, o

algoritmo SURF cria, para cada um dos pontos considerados pelo sistema, um vetor que descreve a distribuição da intensidade em uma região de pixels vizinha ao ponto considerado [1], uma abordagem similar à forma como a informação do gradiente é extraída no algoritmo SIFT [3].

A partir desta região é realizada a extração da orientação dominante da imagem, que vai tornar o algoritmo invariante à rotação.

Para encontrar o vetor que descreve a região de pixels vizinhos ao ponto de interesse, o algoritmo faz uma convolução com os dois filtros que representam as direções X e Y (Fig. 2). Para cada ponto de interesse, considera-se uma região em sua volta com o tamanho de acordo com a escala no qual se encontra e realiza-se a soma dos resultados dessa convolução, obtendo um vetor resultante que irá indicar, também, a sua direção (Fig 3).

Fig. 2 – Filtros para calcular a resposta em X e Y

utilizando a convolução [1].

Fig. 3 - Demonstração de cada ponto de amostragem em volta do ponto de interesse e o vetor resultante [1].

Tendo o vetor resultante, o próximo passo, é obter a

distribuição de respostas de Haar Wavelets [12] do ponto de interesse em relação a esse vetor. Para isso, se usa um vetor que contém 64 posições (Fig. 4). É considerado o atributo de cada posição, mais uma vez realizando a convolução com os filtros X e Y (Fig. 2) e somam-se o resultante da direção desses quadrantes. Lembrando que as direções X e Y agora são em relação ao vetor resultante do passo anterior. Com isso, para cada ponto de interesse, temos um vetor de 64 posições descrevendo a forma como a imagem varia nesse ponto.

Fig. 4 – Vetor que descreve a orientação em relação ao

vetor resultante da convolução X e Y, em torno do ponto de interesse. Soma das direções dx, |dx|, dy e |dy| [1].

B. ORB

Em 2011, o algoritmo ORB foi apresentado visando ser uma alternativa eficiente ao SIFT e ao SURF, principalmente no contexto de aplicação em dispositivos móveis. A proposta desse algoritmo baseia-se nas técnicas apresentadas pelos algoritmos FAST[6] e BRIEF[4], o que justifica seu nome (Oriented FAST and Rotated BRIEF). De modo geral, a técnica pode ser entendida como um refinamento do componente de orientação no algoritmo FAST e a implementação da característica de invariância à rotação ao algoritmo BRIEF. [2]

O algoritmo ORB utiliza o método FAST para encontrar os pontos de interesse. Este método utiliza um filtro Harris para rejeitar bordas e oferecer uma pontuação razoável, sendo considerado um dos métodos mais eficientes para detectar cantos e arestas [6].

O detector FAST, originalmente, não inclui um operador de orientação. Segundo Rosten e Drummond [6], realizar a invariância à rotação no algoritmo demandaria tempo computacional, o que contrasta com a proposta geral do

algoritmo (identificar rapidamente os pontos de interesse), existindo diversas outras formas de descrever a orientação de um ponto de interesse.

Segundo [2], por privilegiar a rapidez de execução, o algoritmo FAST não produz uma boa medida de cantos, por isso, no ORB, ele foi aprimorado e chamado de oFAST ou FAST Keypoint Orientation. Para um número N de pontos de interesse é aplicado um limiar baixo para obter mais pontos, em seguida esses pontos são ordenados de acordo com a medida Harris [5] e considerados apenas os N primeiros pontos.

A orientação do ponto de interesse utiliza um conceito simples de centro de intensidade, ele assume um vetor de intensidade das bordas em relação ao centro e usa esse vetor como orientação. Para melhorar a invariância a rotação, são considerados blocos em torno do centro do ponto, considerando um raio r, que é o tamanho do bloco, e o vetor é considerado sobre x e y dentro deste bloco [3].

O descritor utilizado pelo algoritmo ORB baseia-se no BRIEF e utiliza simples testes binários entre os pixels a partir de uma imagem suavizada [4]. Sua performance é muito parecida com a do SIFT, porém ela é mais sensível a rotação. Esse descritor foi chamado de rBRIEF, que mostra uma melhora em relação a rotação. O rBRIEF executa vários testes binários na imagem suavizada, detectando diversas características em torno do ponto e procurando grandes variações. São enumerados blocos de 31x31 pixels, cada teste é um par de duas janelas de 5x5 dentro do bloco. Se notarmos a largura do bloco que é wp = 31 e a largura da

janela que é wt = 5, teremos N = (wp − wt)2 sub-janelas dentro do bloco [2]. Com esses dados, o algoritmo faz uma busca exaustiva por um conjunto de testes não correlacionados com proximidades de 0.5 e é executado da seguinte forma:

1. Executa cada teste para todos os blocos; 2. Ordena os testes por uma distância da média de 0.5,

formando um vetor T. 3. Executar a busca:

a. Colocar o primeiro teste em um vetor R e remover do vetor T;

b. Pegar o próximo teste de T e comparar com todos os testes de R, se a correlação absoluta for maior que um limiar, descartar o teste, senão adicionar a R;

c. Repetir o passo anterior até obter 256 testes em R, se houver menos do que 256 testes, retornar o limiar e tentar novamente.

IV. ALGORITMO HÍBRIDO E SUA IMPLEMENTAÇÃO Devido a disponibilidade e facilidade de implementação,

a plataforma padrão escolhida para o desenvolvimento do projeto foi o iOS. O fato dos atuais dispositivos dessa plataforma serem baseados na arquitetura ARM foi mais um ponto a favor da escolha. O ambiente de desenvolvimento utilizado foi a IDE nativa para desenvolvimento de aplicações para iOS: o Xcode. As linguagens de programação utilizadas foram: Objective-C e C++, visto que

o compilador para iOS aceita os dois códigos. A biblioteca escolhida com as funções de visão computacional foi a OpenCV em sua versão 2.4.4, uma biblioteca de código aberto disponível para o iOS, Android, Windows, Linux e MacOS X.

O dispositivo utilizado nos experimentos foi um iPad de 3ª geração, com processador ARM A5X dual-core fabricado pela Samsung e customizado para a Apple. A imagem foi obtida a partir da câmera frontal a uma taxa de 30 quadros por segundo a 640x480 pixels de resolução e o algoritmo foi executado em todos os frames.

Os dois marcadores escolhidos para serem identificados na cena foram: Uma imagem com pedras na resolução de 400x280 pixels, também utilizada em um exemplo da biblioteca Vuforia da Qualcomm [9], fig 5, e a imagem da capa de um livro na resolução de 160x480 (Fig. 6).

Fig. 5 – Marcador com imagem de pedras, resolução

400 x 200, distribuída com o Vuforia [9].

Fig. 6 – Marcador com a capa de um livro, resolução

160 x 480. Para analisar o comportamento de cada algoritmo, foram

seguidos os seguintes passos: 1. Escolhemos um detector e um descritor para os

pontos de interesse, dentre as opções dos algoritmos SURF ou ORB;

2. A partir da imagem do marcador, executamos o detector e o descritor escolhidos e armazenamos essa informação em memória;

3. Iniciamos a classe VideoCapture do OpenCV para realizar a captura da imagem pela Webcam frontal do iPad, em escalas de cinza, a 30 quadros por segundo e com uma resolução de 640x480 pixels;

4. Invertemos a imagem, devido a estar utilizando a câmera frontal;

5. Aplicamos o detector e o descritor escolhidos no frame capturado;

6. Utilizamos a classe BFMatcher para encontrar os pontos de interesse que combinam nas duas imagens: no marcador e na cena;

7. A partir do resultado dessa combinação, computamos a melhor perspectiva de acordo com os pontos na origem e no destino utilizando a função findHomography e desenhamos a homografia em torno do objeto encontrado na cena, utilizando as funções de desenho do OpenCV, (Fig. 7).

Fig. 7 – Resultado das combinações dos pontos

interessantes e a homografia desenhada na imagem, executando o algoritmo SURF.

A. Escolhendo um algoritmo Híbrido

Para implementar o algoritmo híbrido foi proposto uma mistura entre os dois algoritmos, escolhendo o que é melhor de cada um deles entre o detector de pontos interessantes e o descritor desses pontos.

Foram testadas as seguintes combinações:

• SURF puro;

• ORB puro;

• O algoritmo híbrido que chamaremos de SURF-ORB, utilizando o detector de pontos de interesse do SURF e descrevendo-os utilizando o ORB;

• E por fim o ORB-SURF, utilizando o detector de pontos de interesse do ORB e descrevê-los utilizando o SURF.

B. Comparação entre os detectores

Como vimos na seção 3.1 desse artigo, o detector do algoritmo SURF identifica variações existentes em toda a imagem utilizando uma matriz Hessiana, o ponto é escolhido de acordo com o determinante dessa matriz.

Já o detector de pontos do algoritmo ORB, como vimos no capítulo 3.2, utiliza uma versão melhorada do detector de pontos FAST, que adiciona um componente de orientação ao detector FAST.

Como hipótese, espera-se que o detector oFAST, do algoritmo ORB, seja mais rápido, detectando poucos pontos por trabalhar apenas nos cantos ou arestas, porém o detector do SURF deve se apresentar mais robusto, detectando mais pontos interessantes, já que ele é mais refinado ao aplicar a Gaussiana em toda imagem.

C. Comparação entre os descritores

O descritor do algoritmo SURF, mostra a distribuição da intensidade do conteúdo do ponto de interesse e seus pixels vizinhos. Verificamos, na seção 3.1 desse artigo, que apesar de ser muito eficiente e descrever bem os pontos de interesse, esse processo exige muitos passos e pode se tornar custoso, principalmente quando executamos em um dispositivo

móvel e em aplicações com necessidade de processamento em tempo real.

Já o descritor utilizado pelo algoritmo ORB baseia-se no BRIEF e utiliza simples testes binários entre os pixels a partir de uma imagem suavizada [4], detectando diversas características em torno do ponto de interesse e procurando grandes variações.

Como hipótese, espera-se que o descritor do algoritmo SURF apresente-se mais robusto quando comparado ao BRIEF.

V. RESULTADOS

Para comprovar e comparar a eficiência de cada algoritmo, cada combinação foi executada com duas imagens diferentes e sempre no mesmo dispositivo com a mesma taxa de captura. A medição foi realizada colocando um timer que para o programa após 60 segundos, nesse tempo são somados todos os pontos extraídos. Foi criada uma variável que conta quantas vezes o evento de captura de frame é chamado, sendo que a chamada de um frame só ocorre quando o processamento do frame anterior for finalizado, ou seja, se o algoritmo for lento será possível perceber essa lentidão na exibição da imagem.

Foram feitas 5 medições e então extraída a média do tempo de execução. O comportamento de cada um dos algoritmos estudados é resumido na tabela 1.

TABELA 1. COMPARAÇÃO DA EXECUÇÃO DOS ALGORITMOS.

Frames/s Pontos/s Custo/Ponto SURF 1.73 78 0.769 s ORB 8.20 254 0.236 s SURF-ORB 2.10 70 0.857 s ORB-SURF 2.90 499 0.120 s

Em todos os casos, considera-se a captura de vídeo a 10

fps, com o algoritmo sendo executado em todos os frames. No caso do SURF, a exibição do vídeo ficou com um grande atraso, não podendo ser considerada em tempo real, assim como já aponta o trabalho de [11]. Não foi aplicado nenhum algoritmo de optical flow. No caso da imagem com as pedras (Fig. 5), a homografia foi apresentada em todos os frames com exatidão, independente de escala e rotação. (Fig. 7)

Ao executar o SURF com a capa do livro (Fig. 6), foi possível perceber uma grande quantidade de pontos espalhados pelo background, ou seja, muitos pontos detectados fora da imagem.

A execução do ORB não apresentou nenhuma lentidão na exibição, já que a média de processamento foi bem menor que 1 segundo. A homografia foi apresentada corretamente em aproximadamente 95% dos frames. Nos frames onde não foi apresentada corretamente, foi possível perceber que o motivo foi a movimentação do objeto a ser detectado na cena, fato que no SURF aconteceu com uma ocorrência muito menor. Observou-se que esse número de frames onde a homografia não foi desenhada, aumenta conforme a distância do objeto em relação a câmera, ou seja, quanto mais longe o objeto da câmera, mais sensível o algoritmo fica em relação a movimentação desse objeto em cena, essa sensibilidade é maior do que no SURF.

Ao realizar o primeiro teste híbrido, no algoritmo SURF-ORB, ou seja: detector SURF e descritor ORB, obteve-se uma média de processamento abaixo de 1 segundo. A combinação mostrou-se mais rápida do que o SURF, mas não tanto quanto o ORB. Porém mais robusto, detectando mais pontos e apresentando uma homografia mais precisa do que no ORB e, ao mesmo tempo, menos sensível ao movimento (Fig. 8). Essa combinação se mostrou mais eficiente no caso da imagem das pedras (Fig. 5), o que é plausível, devido a grande quantidade de variações existentes na imagem.

Fig. 8 – Resultado da homografia desenhada na imagem,

executando o algoritmo SURF-ORB. Em relação a execução do SURF, percebemos uma quantidade menor de pontos

detectados.

Por ultimo, a combinação ORB-SURF foi considerada a menos interessante para a imagem das pedras (Fig. 5), porém bastante eficiente para a imagem do livro (Fig. 6), o que faz sentido, pois o ORB trabalha melhor com bordas, isso explica a grande concentração de pontos no título do livro (Fig. 8), pode-se sugerir um estudo dessa combinação para reconhecimento de escritas. Ainda que tenha se apresentado mais rápida que o SURF, não foi a mais rápida quando comparada com as outras opções.

Fig. 8 – Resultado da homografia desenhada na imagem,

executando o algoritmo ORB-SURF. A maioria dos pontos ficou concentrado na parte do texto.

VI. CONCLUSÕES

Foi apresentada a comparação entre os algoritmos híbridos, tomando como base os algoritmos SURF e ORB. A combinação do detector do algoritmo SURF com o descritor do algoritmo ORB foi considerada a melhor opção para o ambiente de testes no qual foram realizados os experimentos, utilizando a imagem das pedras (Fig. 5). Nessa combinação foi possível utilizar a performance do ORB ao aplicar o descritor, conservando a quantidade de pontos de interesse encontrados pelo SURF.

No caso do ORB-SURF, os tempos de execução ficaram muito próximos do SURF-ORB, porém a homografia não pôde ser bem desenhada no caso das pedras (Fig. 5). O detector do ORB não trabalha com variações em toda a

imagem, mas sim com variações em cantos e arestas, então ao aplicar o descritor do SURF nesses pontos, o algoritmo de combinação não foi capaz de achar boas combinações entre a cena e o marcador, isso explica a melhor eficiência do algoritmo, quando utilizado com a imagem da capa do livro (Fig. 6).

Para trabalhos futuros, sugere-se incluir nesse estudo o uso de diferentes algoritmos que identificam as combinações entre os pontos descritos no marcador e na cena, e verificar se os resultados continuam interessantes. Como cada um dos algoritmos híbridos se mostrou melhor em cada tipo de imagem, pode-se propor o desenvolvimento de um sistema adaptativo que realize uma mudança em tempo de execução de qual algoritmo usar, dependendo do frame capturado.

Outra sugestão é utilizar o ORB-SURF para identificação de textos puros, já que ao utilizar essa combinação com a capa de um livro, verificamos que os pontos de interesse ficaram concentrados no título do livro.

Existem outros algoritmos para reconhecimento de padrões, como SIFT, BRIEF e FAST, cada um tem alguma restrição que foi identificada e melhorada, já os dois algoritmos escolhidos nesse artigo, SURF e ORB, apresentam uma melhora em relação a esses. Para um futuro estudo pode-se testar diferentes combinações com outros algoritmos.

REFERÊNCIAS

[1] H. Bay, A. Ess, T. Tuytelaars, and L. V. Gool. "Speeded-Up Robust Features (SURF)". Journal of Computer Vision and Image Understanding. 2008.

[2] E. Rublee, V. Rabaud, K. Konolige, and G. Bradski. "ORB: an efficient alternative to SIFT or SURF". International Conference on Computer Vision. 2011.

[3] D. G. Lowe. "Object Recognition from local Scale-Invariant Features". 7th International Conference on Computer Vision (ICCV). 1999.

[4] M. Calonder, V. Lepetit, C. Strecha, and P.Fua. “Brief: Binary robust independent elementary features”. European Conference on Computer Vision. 2010.

[5] C. Harris and M. Stephens. “A combined corner and edge detector”. Alvey Vision Conference. 1998.

[6] E. Rosten and T. Drummond. “Machine learning for high-speed corner detection”. European Conference on Computer Vision. 2006.

[7] www.opencv.org. Site da biblioteca de código aberto OpenCV. Acessado em 14/03/2013.

[8] D. A. Patterson, and C. H. Sequin. “RISC I: A Reduced Instruction Set VLSI Computer”. 8º simpósio anual de arquitetura de computadores. 1981.

[9] www.vuforia.com. Site da biblioteca Vuforia da empresa Qualcomm. Acessado em 14/03/2013.

[10] P. A. Viola and M. J. Jones. Rapid object detection using a boosted cascade of simple features. In CVPR (1), pages 511 - 518, 2001.

[11] D. L. Baggio and S. Emami and D. M. Escriva and K. Ievgen and N. Mahmood and J. Saragih and R. Shilkrot. Mastering OpenCV with Pratical Computer Vision Projects, 2012

[12] C. P. Papageorgiou and M. Oren and T. poggio. A General Framework for Object Detection, Proceedings of the Sixth International Conference on Computer, 1998