• Embed Doc
  • Readcast
  • Collections
  • CommentGo Back
Download
 
Correcção de Perspectiva de Fotos para aComposiçã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, 12650UCE de Computação Gráfica: Módulo de Visão por ComputadorUniversidade do Minho: Mestrado em Informáticahttp://www.uminho.pt 24 de Fevereiro de 2009
Resumo:
A montagem e composição depanoramas com base em várias fotos é umproblema que já foi abordado por váriasaplicações, sendo que o estado da arte já seencontra relativamente avançado. No entanto, nocontexto das aplicações modernas que seguem atendência de implementar cada vez maisinteractividade nas aplicações, faz sentido apostarem formas de permitir a construção iterativa enavegação em mosaicos panorâmicos de imagens.Implementamos assim uma aplicação que permitea construção de panoramas, usando fotografiassequenciais capturadas com uma webcam oucarregadas de uma colecção, e um sistema denavegação no panorama construído.
 Abstract:
Building panoramas using photo stitchingalgorithms has already been extensively dealt with andimplemented through several software applications,and the state of the art is reasonably mature at thistime. However, considering the recent trends that aimthe improvement the interactivity of the user interfaces,it makes sense to implement methods that allow theuser to not only iteratively build panoramas, but alsoto navigate through them. We thus present anapplication which allows the creation of panoramicmosaics from sequential webcam snapshots — or from previous collections stored in disk — and thesubsequent navigation through the panorama.
Palavras-chave:
panorama, mosaico, fotos,navegação
 
 Keywords:
panorama, mosaic, mosaicking, photobrowsing, image stitching, photo stitching, photonavigation
 
1. Introdução
Programas de geração de imagens panorâmicas jáexistem há algum tempo, e os algoritmos de ajusteautomático de perspectiva entre imagens tiradasde pontos de vista distintos já estão relativamenteestabelecidos[1][2]. O foco de investigação tem-seportanto desviado mais para a melhoria daexperiência do utilizador, com a implementaçãode panoramas, não planares, mas tridimensionais,tipicamente acompanhados de uma interface denavegação 3D[3].O objectivo deste trabalho foi a implementação deuma interface mais simplificada, utilizando atécnica conhecida como 2,5D ou seja, que não fosserealmente tridimensional, mas que visualmentetransmitisse a sensação de se estar a navegar numambiente 3D.Este artigo está estruturado da seguinte forma: aSecção 2 explora os trabalhos já desenvolvidos naárea; a Secção 3 detalha a abordagem queutilizamos para o problema descrito; na Secção 4listamos os resultados obtidos, e na Secção 5apresentamos as conclusões do nosso trabalho.
 
2. Trabalho relacionado
A composição (por software) de mosaicospanorâmicos com base em imagens fotográficas jáé uma técnica estabelecida. As primeirasaplicações utilizavam pontos de correspondênciaentre duas imagens, sendo que as diferenças nasposições relativas desses pontos nas duas imagenspermitem calcular as distorções de perspectiva deambas e estimar, com base na geometria dasprojecções em perspectiva, as matrizes detransformação que permitem distorcer umaimagem e ajustar a sua perspectiva ao plano deoutra imagem. Ao fazer isto para múltiplasimagens, consegue-se criar um panoramacomposto de fotografias do mesmo cenário.
Fig. 1
– Construção de um panorama planar[1]Estes pontos tinham que ser de início indicadosmanualmente, mas em pouco tempo foramdesenvolvidos métodos automáticos que usamzonas de alto contraste para identificar os pontosde interesse e as suas correspondências. Um dosmétodos mais usados actualmente é o SIFT (Scale-Invariant Feature Transform)[4].Porém, este método de geração de mosaicosplanares tem a desvantagem de distorcer (cadavez maisX) as imagens cuja perspectiva(orientação do ponto de vista) difere muito daimagem inicial. Isto, num panorama horizontal,produziria um efeito “borboleta” em que asimagens laterais ficariam cada vez maiores navertical e comprimidas na horizontal; quando acâmara roda 90º em relação ao ângulo original, aprojecção desta imagem, perpendicular ao planoda imagem original, produziria o caso extremo deuma linha vertical de comprimento infinito.Uma aproximação possível, para aumentar aamplitude de panoramas horizontais (permitindoaté imagens a 360º, chamadas panoramascilíndricos) é a distorção de cada imagem emrelação apenas à imagem adjacente; havendoassim duas matrizes para cada uma, sendo estasinterpoladas entre cada extremo da imagem,produzindo um efeito de
 fisheye
em cada uma dasimagens (tornando-as côncavas), mas permitindoque a distorção não vá aumentando de imagempara imagem. O mesmo princípio pode seraplicado para produzir panoramas que seestendem não só na horizontal como na vertical;esta é a técnica de distorção usada na maior partedos programas de geração de imagenspanorâmicas.Estes panoramas podem ser visualizados naíntegra, mas (especialmente no caso dospanoramas cilíndricos), geralmente é possívelalgum grau de navegação, nomeadamente arotação em Y (pitch), a translação em Z (zoom) e atranslação no plano XY (panning). Sistemas maisavançados permitem a geração de panoramascúbicos, ou esféricos, que preenchemcompletamente o espaço em torno do ponto devisualização. Para visualizar estes panoramas, énecessário um sistema de navegação que permitatanto a rotação em Y (pitch) como em X (yaw). Oexemplo mais conhecido é o QuickTimeVR; mashoje em dia já existem muitas aplicaçõessemelhantes.Ainda assim, a navegação nestes sistemas apenaspermite movimentos de “
look around
”, ou seja, nãose pode mover o ponto de vista, apenas rodá-lo.Assim, tentativas mais ambiciosas foram feitas nosentido de fazer a reconstrução 3D das cenasretratadas, em vez de fazer apenas a projecçãoplanar das imagens. Com isso, e havendo imagenssuficientes, pode-se recriar um ambiente virtualonde a câmara pode teoricamente navegar deforma livre, sendo a visualização, nos pontos devista para os quais não existem imagens,conseguida com recurso à interpolação das outrasimagens na proximidade. O primeiro e maisconhecido exemplo é a plataforma PhotoSynth[3],desenvolvida pelos investigadores da MicrosoftResearch e da Universidade de Washington. Deve-se salientar porém que estas interpolações demomento não geram imagens completas, masapenas nuvens de pontos, pelo que na prática acâmara não se move livremente pelo espaço 3D,mas sim desloca-se de imagem em imagem, comuma animação suavizada.
 
3. Método aplicado
O objectivo deste trabalho foi desenvolver umaaplicação situada no campo intermédio entre asaproximações 2D e as 3D. Com recurso àbiblioteca de processamento de imagem OpenCV,desenvolveu-se uma aplicação que analisa ospontos de interesse de uma colecção de imagensusando uma implementação do algoritmo SIFT,detecta as correspondências e depois calcula amatriz de transformação que melhor se adequa aesses pontos, recorrendo ao algoritmo RANSAC(RANdom SAmple Consensus)[5].Fazemos isto para todos os pares de imagenspossíveis na colecção. Para cada par, só temos quecalcular a matriz de transformação de uma dasimagens para a outra, pois a matriz homográfica éinvertível e assim pode-se calcular directamente ainversa sem recorrer novamente ao algoritmo. Onúmero de pares (e de cálculos, portanto)aumenta numa progressão geométrica,nomeadamente na sequência dos númerostriangulares:Em que P(n) é o número de pares possíveis numacolecção com n imagens, ou mais formalmente, onúmero de arestas num grafo completo de ordemn[6]. Isto significa que o tempo de processamentoaumenta exponencialmente quanto maior for acolecção, o que pode ser verificado no gráficoabaixo:
Fig. 2
– Tempo de processamento/nº imagens[7]Apesar disso, e tal como acontece com oPhotoSynth, após o período de processamento ecálculo das matrizes, pode-se navegar de formaquase instantânea entre as imagens.As matrizes que calculamos são matrizes deprojecção planar, mas em vez de unir todas asimagens da colecção num único panorama,guardamos para cada imagem a lista das imagenscom as quais tem correspondências, e as matrizesque projectam cada uma destas no plano daimagem em questão. Assim evitamos que ocorramdistorções significativas, como poderia ocorrer setentássemos projectar imagens ligadasindirectamente à imagem actual, em grau 2 ousuperiores.Finalmente, apresentamos as imagens em grupos:centramos uma das imagens da colecção na janelade visualização, sem distorção, e “colamos” asimagens relacionadas a esta, aplicandodinamicamente a projecção ao plano da imagemcentral. A imagem central pode ser alterada ao seescolher outra imagem da colecção, ficando estano centro, sendo as imagens circundantes tambémactualizadas, passando a representar as imagensrelacionadas com a nova imagem central, com asrespectivas transformações aplicadas. A vantagemdesta aproximação é que se pode navegar pelomosaico todo sem experimentar distorçõesextremas, já que altera o plano de visualizaçãosempre que se muda de uma imagem para outra,em vez de se tentar ajustar todas as imagens aomesmo plano. Além disso, as imagens mantêm-setodas no formato original, o que não acontece comos panoramas clássicos.
4. Resultados
Fig. 3
– Screenshot da versão alfa do software
of 00

Leave a Comment

You must be to leave a comment.
Submit
Characters: ...
You must be to leave a comment.
Submit
Characters: ...