Picstitch Navigator

  • Uploaded by: Waldir Pimenta
  • 0
  • 0
  • December 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Picstitch Navigator as PDF for free.

More details

  • Words: 1,976
  • Pages: 4
Correcção de Perspectiva de Fotos para a Composição e Navegação de Panoramas A Photo Stitching Application for Building and Navigating Panoramas Abel Soares, Gustavo Maçães, Pedro Ribeiro e Waldir Pimenta {abelbarbosasoares,gustavomacaes,pedroribeir,waldirpimenta}@gmail.com

Matr.# 13019, 13890, 13021, 12650 UCE de Computação Gráfica: Módulo de Visão por Computador Universidade do Minho: Mestrado em Informática http://www.uminho.pt 24 de Fevereiro de 2009 Resumo: A montagem e composição de panoramas com base em várias fotos é um problema que já foi abordado por várias aplicações, sendo que o estado da arte já se encontra relativamente avançado. No entanto, no contexto das aplicações modernas que seguem a tendência de implementar cada vez mais interactividade nas aplicações, faz sentido apostar em formas de permitir a construção iterativa e navegação em mosaicos panorâmicos de imagens. Implementamos assim uma aplicação que permite a construção de panoramas, usando fotografias sequenciais capturadas com uma webcam ou carregadas de uma colecção, e um sistema de navegação no panorama construído. Abstract: Building panoramas using photo stitching algorithms has already been extensively dealt with and implemented through several software applications, and the state of the art is reasonably mature at this time. However, considering the recent trends that aim the improvement the interactivity of the user interfaces, it makes sense to implement methods that allow the user to not only iteratively build panoramas, but also to navigate through them. We thus present an application which allows the creation of panoramic mosaics from sequential webcam snapshots — or from previous collections stored in disk — and the subsequent navigation through the panorama.

Palavras-chave: navegação

panorama,

mosaico,

fotos,

Keywords: panorama, mosaic, mosaicking, photo browsing, image stitching, photo stitching, photo navigation

1. Introdução Programas de geração de imagens panorâmicas já existem há algum tempo, e os algoritmos de ajuste automático de perspectiva entre imagens tiradas de pontos de vista distintos já estão relativamente estabelecidos[1][2]. O foco de investigação tem-se portanto desviado mais para a melhoria da experiência do utilizador, com a implementação de panoramas, não planares, mas tridimensionais, tipicamente acompanhados de uma interface de navegação 3D [3]. O objectivo deste trabalho foi a implementação de uma interface mais simplificada, utilizando a técnica conhecida como 2,5D ou seja, que não fosse realmente tridimensional, mas que visualmente transmitisse a sensação de se estar a navegar num ambiente 3D. Este artigo está estruturado da seguinte forma: a Secção 2 explora os trabalhos já desenvolvidos na área; a Secção 3 detalha a abordagem que utilizamos para o problema descrito; na Secção 4 listamos os resultados obtidos, e na Secção 5 apresentamos as conclusões do nosso trabalho.

2. Trabalho relacionado A composição (por software) de mosaicos panorâmicos com base em imagens fotográficas já é uma técnica estabelecida. As primeiras aplicações utilizavam pontos de correspondência entre duas imagens, sendo que as diferenças nas posições relativas desses pontos nas duas imagens permitem calcular as distorções de perspectiva de ambas e estimar, com base na geometria das projecções em perspectiva, as matrizes de transformação que permitem distorcer uma imagem e ajustar a sua perspectiva ao plano de outra imagem. Ao fazer isto para múltiplas imagens, consegue-se criar um panorama composto de fotografias do mesmo cenário.

Fig. 1 – Construção de um panorama planar [1] Estes pontos tinham que ser de início indicados manualmente, mas em pouco tempo foram desenvolvidos métodos automáticos que usam zonas de alto contraste para identificar os pontos de interesse e as suas correspondências. Um dos métodos mais usados actualmente é o SIFT (ScaleInvariant Feature Transform)[4]. Porém, este método de geração de mosaicos planares tem a desvantagem de distorcer (cada vez maisX) as imagens cuja perspectiva (orientação do ponto de vista) difere muito da imagem inicial. Isto, num panorama horizontal, produziria um efeito “borboleta” em que as imagens laterais ficariam cada vez maiores na vertical e comprimidas na horizontal; quando a câmara roda 90º em relação ao ângulo original, a projecção desta imagem, perpendicular ao plano da imagem original, produziria o caso extremo de uma linha vertical de comprimento infinito. Uma aproximação possível, para aumentar a amplitude de panoramas horizontais (permitindo até imagens a 360º, chamadas panoramas

cilíndricos) é a distorção de cada imagem em relação apenas à imagem adjacente; havendo assim duas matrizes para cada uma, sendo estas interpoladas entre cada extremo da imagem, produzindo um efeito de fisheye em cada uma das imagens (tornando-as côncavas), mas permitindo que a distorção não vá aumentando de imagem para imagem. O mesmo princípio pode ser aplicado para produzir panoramas que se estendem não só na horizontal como na vertical; esta é a técnica de distorção usada na maior parte dos programas de geração de imagens panorâmicas. Estes panoramas podem ser visualizados na íntegra, mas (especialmente no caso dos panoramas cilíndricos), geralmente é possível algum grau de navegação, nomeadamente a rotação em Y (pitch), a translação em Z (zoom) e a translação no plano XY (panning). Sistemas mais avançados permitem a geração de panoramas cúbicos, ou esféricos, que preenchem completamente o espaço em torno do ponto de visualização. Para visualizar estes panoramas, é necessário um sistema de navegação que permita tanto a rotação em Y (pitch) como em X (yaw). O exemplo mais conhecido é o QuickTimeVR; mas hoje em dia já existem muitas aplicações semelhantes. Ainda assim, a navegação nestes sistemas apenas permite movimentos de “look around”, ou seja, não se pode mover o ponto de vista, apenas rodá-lo. Assim, tentativas mais ambiciosas foram feitas no sentido de fazer a reconstrução 3D das cenas retratadas, em vez de fazer apenas a projecção planar das imagens. Com isso, e havendo imagens suficientes, pode-se recriar um ambiente virtual onde a câmara pode teoricamente navegar de forma livre, sendo a visualização, nos pontos de vista para os quais não existem imagens, conseguida com recurso à interpolação das outras imagens na proximidade. O primeiro e mais conhecido exemplo é a plataforma PhotoSynth[3], desenvolvida pelos investigadores da Microsoft Research e da Universidade de Washington. Devese salientar porém que estas interpolações de momento não geram imagens completas, mas apenas nuvens de pontos, pelo que na prática a câmara não se move livremente pelo espaço 3D, mas sim desloca-se de imagem em imagem, com uma animação suavizada.

3. Método aplicado O objectivo deste trabalho foi desenvolver uma aplicação situada no campo intermédio entre as aproximações 2D e as 3D. Com recurso à biblioteca de processamento de imagem OpenCV, desenvolveu-se uma aplicação que analisa os pontos de interesse de uma colecção de imagens usando uma implementação do algoritmo SIFT, detecta as correspondências e depois calcula a matriz de transformação que melhor se adequa a esses pontos, recorrendo ao algoritmo RANSAC (RANdom SAmple Consensus)[5]. Fazemos isto para todos os pares de imagens possíveis na colecção. Para cada par, só temos que calcular a matriz de transformação de uma das imagens para a outra, pois a matriz homográfica é invertível e assim pode-se calcular directamente a inversa sem recorrer novamente ao algoritmo. O número de pares (e de cálculos, portanto) aumenta numa progressão geométrica, nomeadamente na sequência dos números triangulares:

Em que P(n) é o número de pares possíveis numa colecção com n imagens, ou mais formalmente, o número de arestas num grafo completo de ordem n[6]. Isto significa que o tempo de processamento aumenta exponencialmente quanto maior for a colecção, o que pode ser verificado no gráfico abaixo:

Apesar disso, e tal como acontece com o PhotoSynth, após o período de processamento e cálculo das matrizes, pode-se navegar de forma quase instantânea entre as imagens. As matrizes que calculamos são matrizes de projecção planar, mas em vez de unir todas as imagens da colecção num único panorama, guardamos para cada imagem a lista das imagens com as quais tem correspondências, e as matrizes que projectam cada uma destas no plano da imagem em questão. Assim evitamos que ocorram distorções significativas, como poderia ocorrer se tentássemos projectar imagens ligadas indirectamente à imagem actual, em grau 2 ou superiores. Finalmente, apresentamos as imagens em grupos: centramos uma das imagens da colecção na janela de visualização, sem distorção, e “colamos” as imagens relacionadas a esta, aplicando dinamicamente a projecção ao plano da imagem central. A imagem central pode ser alterada ao se escolher outra imagem da colecção, ficando esta no centro, sendo as imagens circundantes também actualizadas, passando a representar as imagens relacionadas com a nova imagem central, com as respectivas transformações aplicadas. A vantagem desta aproximação é que se pode navegar pelo mosaico todo sem experimentar distorções extremas, já que altera o plano de visualização sempre que se muda de uma imagem para outra, em vez de se tentar ajustar todas as imagens ao mesmo plano. Além disso, as imagens mantêm-se todas no formato original, o que não acontece com os panoramas clássicos.

4. Resultados

Fig. 2 – Tempo de processamento/nº imagens [7]

Fig. 3 – Screenshot da versão alfa do software

A aplicação construída permite a captura de imagens através de uma webcam ou o carregamento de uma colecção armazenada em disco (nomeadamente, uma pasta de imagens no directório de colecções).

de uma aplicação consistente e funcional que permite de forma eficiente e intuitiva a integração e agrupamento de imagens diversas para posterior navegação com recurso a uma interface acessível e natural.

Após serem feitos os cálculos de correspondências e das matrizes de transformação, a colecção é apresentada, bem como miniaturas de todas as imagens, podendo-se navegar na mesma quer utilizando o teclado, quer o rato (clicando nas miniaturas)

A principal contribuição deste trabalho reside no campo de exploração de colecções de imagens, já que o stitching por si só já foi implementado noutras aplicações com relativo sucesso. Assim, este trabalho possui a vantagem da simulação de movimento 3D da câmara, embora a visualização na prática decorra totalmente em 2D, o que permite um melhor desempenho do que abordagens em 3D “real” – tal característica poderá ser importante para a implementação desta aplicação em plataformas móveis (o que é cada vez mais importante com a disseminação dos dispositivos portáteis). Outra vantagem é a capacidade de criar colecções a partir de uma stream vídeo, por exemplo de uma webcam.

O resultado conseguido é razoavelmente similar à interface do PhotoSynth, já que apesar de planificarmos cada enquadramento da colecção, permitimos a mudança do ponto de vista de acordo com a imagem que estiver centrada, passando assim a sensação de mover a câmara em 3D, embora não de forma livre (mas ainda assim dinamicamente ajustada à perspectiva das imagens de cada colecção). Podemos dizer assim que implementamos uma interface em 2,5D, ou seja, uma interface em 2D que simula efeitos tridimensionais, e por não usar 3D “real”, o processamento consumido na navegação é substancialmente reduzido, sem prejudicar demasiado a experiência (a principal diferença em relação ao PhotoSynth é a nãoexistência de animações suaves entre as transições de enquadramentos.

Este trabalho pode ser aumentado com melhoramentos como: navegação das miniaturas com uma barra de scrolling; navegação por cliques directamente nas imagens; gravar e carregar colecções analisadas; separar a aplicação em dois módulos, um de análise para desktop, e um de navegação para dispositivos móveis; e implementação de uma interface gráfica (dialog boxes).

6. Referências

Fig. 4 – Visualizador já com as miniaturas

5. Conclusão Considerando o problema inicial, de implementar uma forma de navegação intuitiva em colecções de imagens que representam diferentes pontos de vista do mesmo cenário, o resultado é a nosso ver satisfatório, tendo sido implementado o esqueleto

[1] R. Hartley, A. Zisserman – “Multiple View Geometry In Computer Vision” (2000) [2] O.Faugeras, Q.T. Luong – “The Geometry of Multiple Images” [3] N. Snavely, S.M. Seitz, R. Szeliski – “Photo Tourism: Exploring Photo Collections in 3D” [4] D. Lowe – “Distinctive Image Features from Scale-Invariant Keypoints” (2004) [5] Martin A. Fischler and Robert C. Bolles – “Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography” (1981) [6] Wikipedia – “Complete graph” [http://en.wikipedia.org/wiki/Complete_gra ph] [7] Online Encyclopedia of Integer Sequences “Triangular numbers” (seq. A000217) [http://www.research.att.com/~njas/sequenc es/A000217]

Related Documents

Picstitch Navigator
December 2019 18
Navigator Object
December 2019 21
Micro Vbb Navigator
November 2019 12
Navigator Issue 8
November 2019 16
Navigator Issue 7
November 2019 15

More Documents from ""

November 2019 37
December 2019 21
Picstitch Navigator
December 2019 18
November 2019 24
Ortho Y Polar.pdf
August 2019 18