Rastreamento de Áreas Planas em Cenas Reais para Propósitos de Realidade Aumentada



Documentos relacionados
Scale-Invariant Feature Transform

4 Segmentação Algoritmo proposto

RECONHECIMENTO DE PLACAS DE AUTOMÓVEIS ATRAVÉS DE CÂMERAS IP

Universidade Federal de Goiás Instituto de Informática Processamento Digital de Imagens

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

VCA Treinamento em Algoritmo

SEGMENTAÇÃO DE IMAGENS EM PLACAS AUTOMOTIVAS

ESTEREOSCOPIA INTRODUÇÃO. Conversão de um par de imagens (a)-(b) em um mapa de profundidade (c)

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Detecção e Rastreamento de Objetos coloridos em vídeo utilizando o OpenCV

Módulo 4. Construindo uma solução OLAP

3 Classificação Resumo do algoritmo proposto

Aula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela

4 Avaliação Econômica

Processamento digital de imagens. introdução

1) MANUAL DO INTEGRADOR Este documento, destinado aos instaladores do sistema, com informações de configuração.

Cálculo de volume de objetos utilizando câmeras RGB-D

Passo 3: Posicionando a Câmera na Prova Didática Teórica ou na Prova de Defesa da Produção Intelectual

SCANNER DE TRIANGULAÇÃO LASER PARA PROTOTIPAGEM 3D

Filtragem. pixel. perfil de linha. Coluna de pixels. Imagem. Linha. Primeiro pixel na linha

Chow&Kaneko buscam as modas da imagem para separar os objetos. Admite que os tons na vizinhança de cada moda são do mesmo objeto.

Reconhecimento de marcas de carros utilizando Inteligência Artificial. André Bonna Claudio Marcelo Basckeira Felipe Villela Lourenço Richard Keller

CONTROLE DE QUALIDADE e VALIDAÇÃO DE PRODUTO CARTOGRÁFICO

Conforme explicado em 2.4.3, o sinal de voz x(n) às vezes é alterado com a adição de ruído r(n), resultando num sinal corrompido y(n).

PROCESSAMENTO DOS DADOS AVHRR DO SATÉLITE NOAA E APLICAÇÃO SOBRE A REGIÃO SUL DO BRASIL. Leonid Bakst Yoshihiro Yamazaki

Filtragem Espacial. (Processamento Digital de Imagens) 1 / 41

FILTRAGEM ESPACIAL. Filtros Digitais no domínio do espaço

Aula 2 Aquisição de Imagens

Funções de Posicionamento para Controle de Eixos

TUTORIAL TRACKER PIBID Walfredo v1-2.docx

SEGEMENTAÇÃO DE IMAGENS. Nielsen Castelo Damasceno

Localização dos inquéritos de rua para Arroios e Gulbenkian

Arquitetura de Rede de Computadores

Aula 3 - Registro de Imagem

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Status. Barra de Título. Barra de Menu. Barra de. Ferramentas Padrão. Caixa de nomes. Barra de. Ferramentas de Formatação. Indicadores de Coluna

)LJXUD8PGRVSDUHV'SDUDFRQYROXomRTXHWHPRPHVPRHIHLWRGR NHUQHOGD)LJXUD

SESSÃO 5: DECLINAÇÃO SOLAR AO LONGO DO ANO

Factor Analysis (FACAN) Abrir o arquivo ven_car.sav. Clique Extraction. Utilizar as 10 variáveis a partir de Vehicle Type.

UFGD FCA PROF. OMAR DANIEL BLOCO 6 CLASSIFICAÇÃO DE IMAGENS

EXPERIMENTO N o 6 LENTES CONVERGENTES INTRODUÇÃO

LENTES E ESPELHOS. O tipo e a posição da imagem de um objeto, formada por um espelho esférico de pequena abertura, é determinada pela equação

5 Resultados. 1 Os resultados apresentados foram obtidos com 1 rodada do simulador.


Trabalho 2 Fundamentos de computação Gráfica

Versão Melhorias Melhorias Versão 6.0.1

REPRESENTAÇÃO DA IMAGEM DIGITAL

Prof. Júlio Cesar Nievola Data Mining PPGIa PUCPR

PROF. DR. JACQUES FACON

Transformada de Hough. Cleber Pivetta Gustavo Mantovani Felipe Zottis

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

O que há de novo. Audaces Idea

Visão humana. Guillermo Cámara-Chávez

Curso de Computação Gráfica (CG) 2014/2- Unidade 1- Modelagem de objetos. Exercício 1 (individual) - Entrega: quarta 13/08

COMO USAR DOIS MONITORES NO WINDOWS 8

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

TUTORIAL PARA A PLATAFORMA IPOL

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

Memória Virtual. Prof. Dr. José Luís Zem Prof. Dr. Renato Kraide Soffner Prof. Ms. Rossano Pablo Pinto

ISO/IEC 12207: Gerência de Configuração

TIPOS DE REFLEXÃO Regular Difusa

Comparação entre a Máscara de Nitidez Cúbica e o Laplaciano para Realce de Imagens Digitais

5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS Os Programas de Avaliação

A. MANUAL DO MÓDULO ATFAR DO ECGLAB

Algoritmos e Estrutura de Dados III. Árvores

Programação em papel quadriculado

Modelo Cascata ou Clássico

Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO DE JANEIRO DEPARTAMENTO DE INFORMÁTICA PÓS GRADUAÇÃO EM INFORMÁTICA

IMPLEMENTAÇÃO DE SOCKETS E THREADS NO DESENVOLVIMENTO DE SISTEMAS CLIENTE / SERVIDOR: UM ESTUDO EM VB.NET

Aula 8 Circuitos Integrados

Clip-art Retrieval using Sketches PTDC/EIA-EIA/108077/2008

Ivan Guilhon Mitoso Rocha. As grandezas fundamentais que serão adotadas por nós daqui em frente:

COLÉGIO ESTADUAL PAULO LEMINSKI APOSTILA SOBRE O BROFFICE IMPRESS

Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

6 Conclusões e Trabalhos futuros 6.1. Conclusões

Rastreamento de Múltiplos. Objetos em Tempo Real

Utilização de Análise de Características Dinâmicas em analises estáticas.

Barra de ferramentas padrão. Barra de formatação. Barra de desenho Painel de Tarefas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

Universidade Federal do Rio de Janeiro - IM/DCC & NCE

Universidade Federal de Santa Maria UFSM Centro de Tecnologia CT. Power Point. Básico

Pesquisa e organização de informação

CorelDRAW UM PROGRAMA DE DESIGN

Projeto de Redes Neurais e MATLAB

ALBUM DE FOTOGRAFIAS NO POWER POINT

ARTIGO. O que tem o melhor zoom: 18x ou 36x?

SUMÁRIO Acesso ao sistema... 2 Atendente... 3

Manual do Publicador. Wordpress FATEA Sistema de Gerenciamento de Conteúdo Web

Roteiro para preparação de proposta de Trabalhos Técnico-Científicos

PASSO A PASSO MOVIE MAKER

SISTEMA DE APONTAMENTO

No manual da webcam, ele descobriu que seu sensor de imagem tem dimensão total útil de 2

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Título: Controle de um sistema Bola- Barra com realimentação através de imagem

Este documento foi elaborado sob a licença

Transcrição:

Rastreamento de Áreas Planas em Cenas Reais para Propósitos de Realidade Aumentada Luis Felipe A. Zeni 1, Wilson P. Gavião Neto 1 1 Faculdade de Informática Centro Universitário Ritter dos Reis (UNIRITTER) Rua Orfanotrófio, 555 91.501-970 Porto Alegre RS Brazil luisfelipezeni@gmail.com, wilson neto@uniritter.edu.br Abstract. Planes are important features and can be used in a wide range of applications in computer vision as robot navigation, camera calibration, 3D reconstruction, etc. The use of planes present in the scene in order to insert virtual objects eliminates the need to know in advance the characteristics of the scene and the use of artificial markers. This article presents a study of some of the techniques used for detecting planar regions and makes a feasibility analysis of use for purposes of augmented reality in real scenes. Resumo. Planos são características importantes e podem ser utilizados em uma ampla quantidade de aplicações em visão computacional, como navegação de robôs, calibragem da câmera, reconstrução 3D, etc. Utilizar os planos presentes na cena com o propósito de inserir objetos virtuais elimina a necessidade de conhecer antecipadamente as características da cena e do uso de marcadores artificiais. Este artigo apresenta um estudo de algumas das técnicas utilizadas para detecção de regiões planares e faz uma analise de viabilidade de uso para propósitos de realidade aumentada em cenas reais. 1. Introdução Uma grande parte das aplicações que contêm Realidade Aumentada utilizam símbolos de marcação artificiais. Estes símbolos servem para auxiliar no rastreamento indicando o local onde vão ser inseridos os objetos virtuais em uma determinada cena. Este tipo de técnica acaba limitando a aplicação aos marcadores, pois sem eles a aplicação não tem nenhuma referencia dentro da cena. Uma aplicação livre de marcadores possibilita um não conhecimento prévio da cena e por consequência acaba reduzindo a dependência que a aplicação tem do usuário. Sendo as regiões planares características abundantes em cenas reais, detectar planos parece ser um passo inicial interessante para a eliminação dos marcadores artificiais. Regiões planares vêm sendo utilizadas em uma ampla quantidade de aplicações em Visão Computacional, como navegação de robôs, calibragem da câmera, reconstrução 3D, etc. Entretanto, detectar planos em cenas reais, não é uma tarefa trivial. Este é um campo em constante pesquisa na área de visão computacional. Usualmente abordagens baseiam-se na detecção da geometria da cena com base no rastreamento de características das imagens (capturadas de diferentes pontos de vista) e é amplamente conhecida na literatura de Visão Computacional como structure-from-motion. A Figura 1 mostra o funcionamento de um sistema structure-from-motion.

Figura 1. Exemplo de um sistema de structure-from-motion. onde cada câmera captura o mesmo objeto de diferentes pontos de vista, pode-se observar que o ponto vermelho(p1) é visualizado em diferentes posições nas imagens das câmeras 1, 2 e 3, isso se deve aos nives de rotação e translação que cada câmera sofreu perante a cena [SHAPIRO and STOCKMAN 2001]. A literatura atual não apresenta dados claros sobre a viabilidade do uso de regiões planares para propósitos de realidade aumentada. Portando, este trabalho tem como objetivo estudar alguns dos métodos que possibilitem o reconhecimento de áreas planas em cenas reais, para propósitos de Realidade Aumentada. O artigo está organizado da seguinte forma: na seção 2, são apresentados conceitos relacionados com a pesquisa. Na seção 3, são apresentados os trabalhos relacionados com a pesquisa. Já na seção 4, é apresentada a solução proposta e os testes para verificar a viabilidade da mesma. A seção 5 mostra qual foi a conclusão do trabalho e aborda também sobre trabalhos futuros. 2. Referencial Teórico Esta seção apresenta alguns dos conceitos utilizados ao longo deste artigo, dentre eles: formação da imagem, detecção de pontos, casamento(rastreamento) dos pontos entre duas imagens, detecção do modelo de homografia e RANSAC. 2.1. Formação da Imagem Quando falamos da parte física(hardware) para aquisição de imagens digitais, dois elementos são necessários. O primeiro é um dispositivo físico sensível a uma banda no espectro de energia eletromagnética (Raio-X, ultravioleta, visível, ou bandas infravermelhas) o qual produz como saída sinais elétricos proporcionais ao nível de energia captado, o qual é chamado de sensor. O segundo, chamado de digitalizador, é um dispositivo que converte a saída elétrica do dispositivo elétrico para sinal digital [GONZALEZ 1993].

A literatura atual aponta que os principais dispositivos de aquisição utilizados para a captura digital de imagens são chamados de charge-coupled devices (CCDs). Um sensor CCD é muito parecido com um filme fotográfico, exceto pelo plano da imagem, em vez do reagente químico para apresentar os resultados, pequenas células do sensor convertem a energia da luz em uma carga elétrica [SHAPIRO and STOCKMAN 2001]. Segundo [GONZALEZ 1993] os resultados dos sensores são armazenados em frame-buffers (imagem) que posteriormente podem ser processados pelo computador. O termo imagem referencia a uma função bi-dimensional de intensidade de luz, denotada pela função f(x, y), onde o valor ou amplitude de f nas coordenadas espaciais (x, y) retorna a intensidade (brilho) da imagem naquele ponto. A geometria da formação de uma imagem pode ser conceitualizada como a projeção de cada ponto em uma cena 3D através do centro de óptico da câmera até o plano da imagem, conforme a Figura 2. Este modelo de projeção é conhecido como modelo de câmera pinhole [SHAPIRO and STOCKMAN 2001]. As coordenadas de um ponto em 3D no espaço X = (X, Y, Z, 1) e sua correspondente projeção sobre o plano da imagem x = (x, y, 1), ambos representados em coordenadas homogêneas, estão relacionados pela equação projetiva: Figura 2. Exemplo de uma transformação projetiva. Onde C é o centro ótico da câmera, π é o plano de um objeto na cena, π é o plano da imagem, x é um ponto no pano π e x é a projeção deste ponto no plano π [GAVIÃO 2009]. λx = PX (1) onde λ é um fator de escala desconhecido (que é proporcional a profundidade de X relativa a câmera) e P é uma matriz 3 4 de projeção de câmera, que pode ser fatorada como: P = K[R t], (2)

onde: K = f s x 0 0 f y 0 0 0 1 (3) A matriz de calibração de câmera K mapeia coordenadas métricas em coordenadas de imagem (pixels). K contém os parâmetros internos (ou intrínsecos) de câmera, onde f representa a distância focal da câmera; c = [x 0, y 0 ] é o ponto principal, que representa as coordenadas da imagem onde ocorre a intersecção do eixo ótico e o plano da imagem; s é referido como o fator de inclinação e diz respeito a formatos não retangulares de pixels no sensor CCD da câmera (s é bastante próximo de zero para a maioria das câmeras). A matriz 3 4 de parâmetros externos [R t] representa a orientação e a posição da câmera. R é uma matriz de rotação e t é um vetor de translação [GAVIÃO 2009]. 2.2. Detecção de Pontos Detectar pontos correspondentes entre duas imagens é um passo inicial para computar a geometria de uma cena. Porém, nem todas as regiões das imagens são apropriadas pra este propósitos. Como observado na Figura 3 os pontos x e x são projeções do ponto X, contudo, estabelecer a correspondência entre x e x não é um problema de fácil resolução, pois não pode-se esperar que um ponto x vá aparecer com as mesmas características em x. Além do fato de que métodos usuais de casamento de pontos freqüentemente entregam falsas correspondências, por isto é interessante utilizar um método que remova estas falsas correspondências após a detecção [GAVIÃO 2009]. Figura 3. Geometria entre duas imagens. Onde C e C são os centros óticos das câmeras, x e x são as projeções de X nas imagens [GAVIÃO 2009]. Uma das abordagens possíveis para a detecção de pontos em imagens é o método detector de cantos de Harris. Basicamente o método detecta cantos em uma pequena área onde há o encontro de bordas de diferentes direções na imagem. Na prática, métodos que detectam cantos identificam pontos de uma maneira geral, uma vez que estes pontos são caracterizados pela presença de grandes diferenças de intensidade no gradiente de cor

em sua vizinhança [HARRIS and STEPHENS 1988]. Esta etapa não tem como objetivo tentar verificar se um ponto esta presente nas duas imagens, técnicas para o casamento de pontos entre duas imagens são demonstradas a seguir. 2.3. Casamento de Pontos entre Duas Imagens Dado que tem-se duas imagens, I e I, ambas em perspectivas de visão diferentes. Cada imagem terá seu conjunto de pontos I = {x 1,..., x i,..., x M } extraídos por algum método de detecção de pontos onde x i =(x i, y i ). Onde cada imagem tem seu próprio conjunto de pontos. Como em um conjunto de I pode conter pontos que não estão presentes em I, é necessário verificar quais pontos estão presentes nas duas imagens. Dois métodos bastante encontrados na literatura são o KLT e o SIFT que serão explicados a seguir. O rastreador de pontos KLT produz um conjunto de pontos potencialmente correspondentes I = {x i x i} entre pares de imagens. Cada correspondência x x é computada independentemente, sem considerar uma consistência global de movimento que envolveria todas as correspondências computadas para duas imagens. Dadas duas imagens I e I separadas por pontos de vista próximos e um ponto x em I, o algoritmo KLT iterativamente procura pela localização de x i em I minimizando a diferença de intensidade entre janelas de tamanho fixo, W i e W i, centradas em x i e xi respectivamente. A versão mais simples do algoritmo KLT é baseada em um modelo de movimento de translação local, onde o deslocamento d = (d x, d y ) de cada ponto é estimado pela minimização de (x,y) W [I (x + d x, y + d y ) I(x, y)] 2. (4) Dimensões usuais para a matriz W são 5 5, 7 7 ou 9 9. Contudo, devese levar em consideração um equilíbrio na escolha destas dimensões: W deve ser tão grande quanto possível para evitar os efeitos provocados pelo ruído e deslocamentos mais amplos, mas também deve ser tão pequena quanto possível para aproximar deformações locais entre os quadros, uma vez que emprega-se um modelo simplificado de translação. Deste modo, para tratar deslocamentos maiores que as dimensões de W, e ao mesmo tempo manter o tamanho de W pequeno, uma representação piramidal/multi-escala do algoritmo KLT pode ser empregada [GAVIÃO 2009]. Já o SIFT é um descritor de local altamente distintivo e invariante quanto a mudanças na iluminação. O descritor é baseado na magnitude do gradiente e a orientação de todos os pixels em uma região em volta de um ponto chave. Eles são colocados em uma janela glaussiana e acumulados em um histograma sumarizado em sub-regiões, como mostrado na Figura 4. O tamanho de cada flecha corresponde a soma das direções das magnitudes dos gradiente da região. As entradas de orientação no histograma correspondente aos comprimentos das setas está na esquerda da Figura 4. O indicador é formado por um vetor contendo todas essas entradas. A distância entre os histogramas (descritor SIFT) é usada como medida de correlação. O calculo de distancia euclidiana pode ser usado para calcular a distancia entre os histogramas. Se a distância for inferior a determinado limite, um possível par

Figura 4. Esta figura mostra uma matriz descritora 2 2 computada de um conjunto de amostras 8 8 [AIRES et al. 2008]. correspondente é detectado. SIFT é bem mais custoso computacionalmente que o KLT porém mais preciso.[aires et al. 2008]. 2.4. Homografia Uma homografia pode ser definida como uma transformação projetiva planar. Transformações projetivas são úteis para explicar relações de movimento de câmera sob certas configurações. Representamos uma homografia como H, que é representada por uma matriz 3 3 não-singular: x = Hx (5) onde x e x são pontos 2D representados por coordenadas homogêneas. Como se pode ver na Figura 2 os raios projetivos atravéz de C definem um mapeamento para os planos π e π, onde x = Hx. O plano π representa o plano da imagem, o plano π representa um objeto genérico da cena e o ponto C representa a posição da câmera (o centro ótico) em relação a cena. Um plano pode ser explicado através de uma transformação projetiva H entre imagens associadas a dois pontos de vista como visto na Figura 5(a). Na Figura 5(a) demonstra-se uma homografia induzida pelo plano π que é um mapeamento de x para x. Uma transformação projetiva planar H pode explicar o relacionamento entre o espaço 3D e o plano da imagem. Sendo assim, uma transformação projetiva perspectiva H 1 explica a relação entre x (plano da imagem 1) e X (plano π) como x = H 1 X, da mesma forma que uma transformação projetiva perspectiva H 2 explica a relação entre x (plano da imagem 2) e X (plano π) como x = H 2 X. Deste modo, a relação H entre os pontos das imagens x e x pode ser explicada como uma composição de duas transformações projetivas perspectivas, onde x = H 2 H 1 1 x = x. Na Figura 5(b) observa-se o caso em que a câmera executa apenas movimentos de rotação em torno de seu eixo ótico, não havendo translação. Nesta configuração de cena a relação entre os pontos x e x resume-se a um mapeamento direto entre os planos

(a) (b) Figura 5. Configurações degeneradas de cena onde uma transformação projetiva H explica a relação entre as imagens, onde x = Hx. (a)cena Planar. (b) Cena em que a câmera executa apenas rotações em torno de seu eixo ótico [HARTLEY and ZISSERMAN 2004]. das imagens (onde x = Hx) na forma de uma transformação projetiva perspectiva H [HARTLEY and ZISSERMAN 2004]. Uma das alternativas para calcular uma homografia entre duas imagens é o algoritmo DLT(Direct Linear Transformation) [HARTLEY and ZISSERMAN 2004]. O qual precisa de no mínimo 4 pontos para ser calculado. Portanto é necessário começar com um conjunto de 4 pontos correspondentes x i x i, então o conjunto de equações A i h = 0 é utilizado, onde A é a matriz das coordenadas conhecidas dos pontos. Se a posição dos pontos for exata na matriz A, onde h vai ser uma solução exata [HARTLEY and ZISSERMAN 2004]. Isto não ocorre quando a medição das coordenadas das imagens são inexatas, geralmente ocasionadas pelo ruído, por exemplo dados de cenas reais. Não existe uma solução exata para determinar o sistema ah = 0 perto da solução de zero. Em vez de tentar uma solução exata, algumas tentativas procuram um resultado aproximado. A seguir os passos resumidos para obter uma homografia H: 1. Para cada correspondencia x i x i, computar uma matriz A. 2. Popular a matriz A com os dados dos pontos x i x i. 3. Obter o SVD de A (Mais informações sobre o SVD em [HARTLEY and ZISSERMAN 2004] p585). 4. A matriz H é determinada de h. Estimar modelos de homografias entre duas imagens é um problema amplamente estudado em visão computacional. Geralmente imagens reais contém ruído e assim não é possível tratar com correspondências perfeitas entre as imagens. Juntamente com isso, os métodos que estabelecem potenciais correspondências podem entregar falsas combinações de pontos devido a ambigüidades na descrição das características dos pontos. Uma forma de tentar amenizar este problema pode-se utilizar um algoritmo que tente encontrar um consenso entre os pontos. Por Exemplo o RANSAC. O algoritmo RANSAC (RANdom SAmple Consensus) [FISCHLER and BOLLES 1981] é uma metodologia comumente empregada para tratar a presença de combinações incorretas. O RANSAC pode tentar estimar uma

homografia, que melhor se ajuste aos dados, e conseqüentemente computar as correspondências que são consistentes com a homografia. Pontos correspondentes que dão suporte a uma homografia estimada são denominados de inliers, o restante dos pontos são outliers. O processo para estimar um modelo utilizando RANSAC é bem simples tendo os seguintes passos: 1. Seleciona-se aleatoriamente m pares de pontos correspondentes a partir de um conjunto de potenciais correspondências p e computa-se uma relação candidata T c com base nessa amostra de m correspondências. Usualmente, m é a quantidade mínima de elementos necessários para computar a relação T. 2. Aplica-se T c a p e classifica-se cada potencial correspondência usando-se um limiar de erro. Tem-se então o conjunto de inliers in c e o conjunto de correspondências classificadas como outliers out c segundo T c. 3. A melhor relação candidata T c é aquela que gera o maior conjunto (consenso) de inliers. 4. Os passos de 1 a 2 repetem-se até uma quantidade suficiente de amostragens ter sido avaliada, ou até que uma desejada probabilidade tenha sido computada. Onde p representa um conjunto prováveis de pontos correspondentes entre as duas imagens, in são o conjunto de inliers e out são o conjunto de outliers [HARTLEY and ZISSERMAN 2004]. 3. Trabalhos Relacionados A maioria das técnicas presentes na literatura utilizam homografias para detectar planos, o detector de pontos de Harris e o rastreamento de pontos normalmente é feito com KLT ou SIFT. Para estimar homografias grande parte utiliza o RANSAC aliado ao algoritmo de 4 pontos. A seguir uma breve descrição de alguns trabalhos relacionados: Vincent em seu trabalho [VINCENT and LAGANIERE 2001] demonstra um método que detecta planos em pares de imagens para fins de estimar a Matriz Fundamental(mais informações em [HARTLEY and ZISSERMAN 2004]). Este método utiliza a abordagem clássica do RANSAC e utiliza 4 pontos para estimar homografias. O esquema básico do método é o seguinte: 1. Primeiramente cantos são detectados em ambas as imagens utilizando o método de Harris. 2. Correlação de variância é aplicada sobre os cantos detectados e pares com uma pontuação alta de correlação são coletados em um conjunto de pontos correspondentes candidatos. 3. Quatro pontos são selecionados de um conjunto de pontos casados e uma homografia é estimada usando a Equação 5. 4. Pares compatíveis com a homografia são selecionados. Um par x i x i, é considerado compatível com a homografia H se dist(hx, x ) < E onde E é um limiar pré-definido. 5. Passos 3 e 4 são repetidos enquanto um numero suficiente de de pares não for estimado. 6. Usando todas as correspondências consistentes, uma nova homografia é estimada usando o algoritmo de oito pontos.

Como um par de imagens pode conter mais de um plano, depois de computada a primeira homografia os pares de pontos pertencentes a ela são removidos e uma nova homografia é computada repetindo todo o processo anterior. Este processo é repetido até um limite de planos ser detectado. Kähler em seu artigo [DENZLER and KÄHLER 2007] foca em dois problemas que ainda estão em aberto em métodos derivados do RANSAC. Primeiro ele tenta detectar apenas planos que realmente estejam presentes fisicamente nas cenas e por segundo ele propõem um método para identificar os casos que uma homografia não indica em pontos co-planares. O método utiliza o KLT para casar os pontos entre duas imagens, o autor justifica o uso do KLT por ele conseguir processar um bom número de conjuntos por segundo. O RANSAC é utilizado com 4 pontos para inicialmente detectar uma homografia dominante, depois, pontos que se encaixem nesta homografia são removidos. Este processo é repetido até não ser possível detectar novas homografias. Já Aires demonstra em seu trabalho [AIRES et al. 2008] um método para detectar e agrupar planos que não utiliza RANSAC. Ele utiliza o método de Harris para detectar pontos e o SIFT para fazer o casamento dos pontos entre as duas imagens. Tendo os pontos casados é feita uma triangulação de Delaunay sobre os pontos casados e é aplicado um processo de filtro para que sobrem apenas os triângulos com todos os lados e com um certo limite de tamanho. Na próxima etapa é feito um processo de agrupamento, onde, dado o conjunto de pontos encontrados M e o conjunto de triângulos T, é definida H p como o conjunto de todas as prováveis p homografias existentes entre as duas imagens. Cada homografia em H p define um plano na imagem. Inicialmente H p é considerada vazia. A primeira homografia H A é calculada usando os três pontos do primeiro triângulo T (1) e seus pares correspondentes no conjunto M. A Homografia H A é incluída em H p, e todos os pontos utilizados são marcados como visitados e atribuídos à homografia H p, ou seja, o primeiro plano. Na próxima etapa, o triângulo ao lado de T e seus pontos encontrados em M são considerados. Para cada H p (i) na H p, todos os pontos do triângulo são verificados para determinar se eles pertencem a qualquer um dos planos já existentes em H p. Se o ponto esta marcado como não-visitado e seu erro de re-projeção está entre de um certo limiar, o ponto é marcado como visitado e atribuído a homografia H i. Se o ponto foi marcado como visitado e se o erro de re-projeção da nova H i é menor do que a anterior, o ponto é atribuído ao plano H i. No caso de todos os pontos do triângulo não pertencem a qualquer plano existente, uma nova homografia H A é calculada com os pontos. A homografia nova representa um novo plano e é incluída em H p. Este loop é executado até que não haja pares combinados de pontos não visitados. No final da fase de agrupamento, os planos com um numero de pontos acima de um certo limite são considerados. Embora o foco não seja a detecção de planos em si, o trabalho de Klein [Klein and Murray 2007] demonstra um método que, na inicialização, define um plano dominante entre duas imagens. Estando o plano definido ele é associado com os pontos que estão sendo rastreados. Tendo esta etapa sido comprida, o método de Klein não detecta mais planos, e se foca em manter o mapeamento dos pontos correto. Outro fator interessante deste método é que ele utiliza duas threads para fazer o processamento.

A primeira fica responsável por detectar os pontos e a segunda responsável em fazer o mapeamento dos pontos. 4. Solução Implementada Esta seção descreve a implementação do algoritmo para detectar planos junto com os testes dos mesmo. No algoritmo, optou-se pelo uso do KLT para o casamento de pontos dada sua melhor performance comparada com o SIFT. Para a escolha dos pontos para calcular a homografia, escolheu-se o RANSAC pois ele ajuda no tratamento do ruído escolhendo os pontos randomicamente para estimar modelos de homografia conforme o consenso dos pontos. Para o desenvolvimento algoritmo foi utilizada a linguagem de programação C juntamente com a biblioteca OpenCV (Open Computer Vision). A OpenCV foi escolhida por ser uma biblioteca repleta de recursos de visão computacional, como rastreamento de pontos, buffers de videos, suporte a webcams, calculo de homografia, etc. Outros fatores que foram levados em consideração é que é uma biblioteca gratuita, de código fonte aberto e multi-plataforma. Um fator interessante da OpenCV é que o próprio autor do KLT em seu site 1 aponta que a implementação do KLT da OpenCV é mais robusta que a disponível no site. Para testar o algoritmo implementado utilizou-se três tipos de testes distintos, foram feitos testes com dados sintéticos, vídeos pré-gravados e imagens em tempo real a partir de uma webcam. 4.1. Implementação A OpenCV dá suporte ao cálculo de homografias com a função cvfindhomography, esta função recebe os pares de pontos correspondentes, uma matriz para retornar a homografia calculada, um valor para o limite de erro e um parâmetro para indicar o método de seleção de pontos utilizado, por exemplo o RANSAC. Porem esta função não retorna os pontos que são explicados pela homografia. Por isto foi necessário utilizar a Equação 5 para calcular quais pontos eram explicados pela homografia. Para verificar se um ponto é ou não pertencente a homografia foi utilizada uma distancia euclidiana juntamente com um limite(o mesmo que é utilizado para a função cvfindhomography), se um ponto pertencer a homografia ele estará abaixo do limite. Para facilitar o re-uso de código, foi implementado um método que calcula uma homografia e verifica quais pontos são explicados pela mesma os quais são retirados dos pares de pontos para que seja possível continuar calculando outras homografias. Para rastrear pontos nas imagens reais foi utilizado o algoritmo KLT implementado na OpenCV, a função cvcalcopticalflowlk resolve este trabalho na OpenCV, a função recebe como parameto as duas imagens onde serão procurados os pontos, duas matrizes que vão receber os conjuntos de pontos rastreados onde cada uma representa uma imagem e o tamanho da janela w. 4.2. Testes Para testar, o comportamento do algoritmo de detecção de planos foram feito três tipos de testes: teste com dados sintéticos, teste com dados reais pré-estabelecidos e teste com dados em tempo real a partir de imagens de uma webcam. 1 Disponível em: http://www.ces.clemson.edu/ stb/klt/

4.2.1. Teste com Dados Sintéticos Para verificar o comportamento do método para calcular homografias foram utilizados pontos sintéticos gerados artificialmente. A vantagem de se utilizar pontos sintéticos é que se conhece exatamente a posição onde estão localizados os pontos e a qual plano eles pertencem. Para os testes com dados sintéticos, foram gerados 3 planos diferentes, conforme pode ser visto na Figura 6. Foram gerados no total 1000 pontos sintéticos, onde 50% dos pontos estão no plano dominante(vermelho), 30% no segundo plano(verde), 15% no terceiro plano(azul) e os 5% restantes são falsas combinações(roza). ImagemA(X) ImagemB(X ) Figura 6. Dados sintéticos gerados em dois pontos de vista diferentes. As cores diferem os planos aos quais os pontos pertencem. Pontos roza são falsas correspondecias. Para gerar os pontos sintéticos, foram feitas algumas modificações na implementação em matlab de geração de pontos sintéticos de Philip Torr 2. Foram gerados 1000 pontos randomicos, onde os primeiros 500 ficaram com a coordenada z = 1, os próximos 300 com a coordenada x = 1, os próximos 150 com a coordenada y = 1 e os 50 restantes ficarão com todas as coordenadas randomicas para não ficaram correspondentes a um plano. Estes pontos foram duplicados em dois conjuntos x e x para serem aplicadas rotações e translações diferentes a cada conjunto, gerando diferentes perspectivas de visão. Para o primeiro conjunto de pontos foram aplicadas as seguintes rotação e translação: x = x 0.9903 0 0.1392 0 1.0000 0 0.1392 0 0.9903 1.9931 1.1684 1.2962 (6) Para o segundo conjunto de pontos foram aplicadas as seguintes rotação e translação: x = x 0.9613 0 0.2756 0 1.0000 0 0.2756 0 0.9613 3.9862 2.3368 2.5924 (7) 2 Disponível em: http://www.mathworks.com/matlabcentral/fileexchange/4576-structure-and-motiontoolkit-in-matlab

Tendo os pontos em diferentes posições, foi aplicada a seguinte matriz de câmera aos dois conjuntos x e x : 256 0 0 K = 0 256 0 (8) 0 0 0.2 Os pontos gerados foram salvos em uma arquivo de texto, para posteriormente serem importados para a implementação em C com OpenCV para fazer os testes de interesse. Para avaliar o comportamento da detecção de homografias, foram seguidos os passos do Algoritmo 1. Para tentar aproximar o teste ao mundo real, utilizou-se ruído gaussiano para cada conjunto de pontos. Como já se sabe a posição dos pontos não foi necessário o uso do KLT neste teste. Nos testes, para cada combinação de limite e ruído foram rodadas 100 vezes o algoritmo e feita a média de inliers. O limite das homografias foi de 0,1 á 3 aumentando de 0,1 em 0,1. Sendo que para cada limite foi aplicado ruído de 0,0 á 4 aumentando de 0,1 em 0,1. A Figura 7 demonstra o resultado deste teste em forma de gráfico. Podese observar que quanto mais ruído na cena, menos inliers foram encontrados e que é interessante maner o limite de erro da homografia ficam entre 0,5 e 1,9. entrada: Dois conjuntos de pontos correspondentes x e x, limite da homografia l e nível de ruído r. saida : Quantidade de Inlieres e Outliers. //aplica ruído aos pontos; adicionaruido(x,r); adicionaruido(x,r); //calcula homografia e computa inliers; i = 0; inliers = 0; outliers = 1000; while i < 3 do h = computahomografia(x, x, l); inliers += verificainliers(x, x, h); i + +; end outliers -= inliers; retorna(inliers, outliers); Algorithm 1: Algoritimo que testa quantos inliers e outliers um determinado limite de homografia e ruido geram. 4.2.2. Teste com Dados Reais Pré-estabelecidos Como um passo seguinte ao teste com dados sintéticos, optou-se testar o comportamento do algoritmo em dados reais. Esta seção demonstra os testes que foram realizados em um ambiente mais controlado. Foram gravados dois vídeos diferentes da mesma cena, um

video com rotação pura da câmera e outro com translação e rotação da câmera, ambos com uma movimentação suave. Foi usado o Algoritmo 2 para a detecção de pontos entrada: Duas imagens em diferentes perspectivas, limite da homografia l, janela KLT w. saida : Planos detectados apresentados na tela. correspondencias[2]; //rastreia correspondências nas duas imagens; correspondencias = rastreiapontosklt(img1, img2, w); //calcula homografia e computa inliers; i = 0; inliers = 0; while i < 3 do h = computahomografia(correspondencias[0], correspondencias[1], l); inliers += verificainliers(correspondencias[0], correspondencias[1], h); apresenta(inliers); i + +; end Algorithm 2: Algoritmo que a partir de duas imagens em diferentes perspectivas detecta planos entre as mesmas e apresenta os resultados. Visualmente obteve-se bons resultados utilizando um limite de erro da Homografia entre 0.3, janela da KLT com tamanho 11x11. O algoritmo foi limitado para estimar apenas as 3 primeiras homografias, por serem mais consistentes, pois algumas sequências geravam mais de 50 homografias diferentes. Como o video tem frames bem próximos um do outro, optou-se entregar para o método que calcula homografia conjuntos de pontos com um intervalo de 5 frames entre eles, assim as perspectivas ficam mais distantes e melhorou significativamente os resultados. Porem, para o KLT foram passados todos os frames do video, o KLT se mostrou sensível á grandes pulos entre os frames. Quando passados os frames em sequência para o KLT ele detecta corretamente as correspondências entre as duas imagens, como pode ser visto na imagem 8. Assim como esperado, quando se fez rotação pura na câmera, todos os pontos foram detectados como pertencentes a mesma homografia. A Figura 9 demonstra o resultado do algoritmo rodando com rotação e translação em duas imagens destintas. 4.2.3. Teste com Dados Reais em Tempo Real Os testes em tempo real foram feitos utilizando uma webcam, foi utilizado o Algoritmo 2, porem em vez de tentar detectar três homografias, i foi modificado para 2, para detectar apenas duas homografias no máximo. Para evitar atraso na apresentação dos dados não foi utilizado o pulo entre os frames. Os testes foram feitos em um computador com processador core 2 duo com 2.4GHz, aparentemente não teve atraso na apresentação dos resultados.

Embora não tenha sido notado atraso na apresentação dos resultados, o algoritmo não se provou muito eficiente em alguns casos. Por exemplo, quando a câmera tem apenas rotação em torno de seu próprio eixo ou pouca movimentação, nestes casos o algoritmo acaba detectando tudo como um plano apenas, o que não é interessante. Outro problema é quando não se tem muitas características na cena, por exemplo quando há muita proximidade da cena ou há poucos objetos, isso acaba gerando poucos pontos e dando resultados ruins. Porém, quando se tem rotação e translação suficientes o algoritmo se provou bem eficiente ao detectar os planos, a Figura 10 mostra um exemplo de sucesso. 4.3. Problemas encontrados Durante os testes, pode-se notar alguns problemas na técnica de detecção de planos através de homografias. O primeiro problema encontrado é quanto a movimento da câmera, se a câmera apenas rotacionar em volta do seu eixo vai detectar todos os pontos como pertencentes ao mesmo plano e se entregarmos imagens com pouca translação e rotação entre elas os resultados não são muito satisfatórios. Outro problema encontrado é quando não se tem muitos objetos na cena ou a câmera esta muito próxima da cena, o método não consegue detectar muitas características e assim não é possível obter bons resultados com as homografias. 5. Conclusão Neste artigo apresentou-se algumas das abordagem possíveis para se rastrear planos em cenas reais. Optou-se pelo uso de Homografias para estimar planos entre duas imagens. Porem como foi visto para estimar uma ou mais Homografias entre duas imagens é necessário um conjunto de pares de pontos presentes entre as duas imagens os quais podem ser detectados utilizando o método detector de cantos de Harrys aliado a um rastreador de pontos como o KLT. Pode-se concluir que é viável utilizar os planos detectados a partir de uma homografia para propósitos de realidade aumentada, embora em alguns casos de movimento esta abordagem não seja ideal. Porem pode-se utilizar uma abordagem semelhante ao PTAM de Klein onde inicialmente são detectadas Homografias as quais são mapeadas aos pontos rastreados. Tendo este mapeamento não seria mais necessário fazer a detecção de planos para aquela região. Outro fator, foi que para os testes com dados reais foi utilizada uma câmera com uma boa qualidade, provavelmente se fosse utilizado um dispositivo móvel, a câmera geraria muito mais ruído o que poderia inviabilizar o uso desta técnica. Para trabalhos futuros pretende-se verificar qual o custo computacional desta abordagem, utilizar uma técnica de mapeamento SLAM para melhorar a qualidade do rastreamento de planos e realizar mais testes inserindo realidade aumentada. Referências AIRES, K., ARAUJO, H., and MEDEIROS, A. D. (2008). Plane detection from monucular images sequences. IASTED 2008. DENZLER, J. and KÄHLER, O. (2007). Detecting coplanar features points in hanheld image sequences. VISAPP.

FISCHLER, M. and BOLLES, R. (1981). Random sample consensus: a paradigm for model fitting with application to image analysis and automated cartography. In Communications of the ACM, volume 24, pages 381 385. [S.l.]. GAVIÃO, W. (2009). Sumarização de Vídeos de Histeroscopias Diagnósticas. PhD thesis, Universidade Federal do Rio Grande do Sul. GONZALEZ, R. (1993). Digital image processing. Massachusetts: Addison-Wesley, ISBN: 0201508036. HARRIS, C. and STEPHENS, M. (1988). A combined corner and edge detector. In IEEE International Conference on Computer Vision, volume 2, pages 1508 1511. ALVEY VISION CONFERENCE. HARTLEY, R. I. and ZISSERMAN, A. (2004). Multiple View Geometry in Computer Vision. Cambridge University Press, ISBN: 0521540518, second edition. Klein, G. and Murray, D. (2007). Parallel tracking and mapping for small AR workspaces. In Proc. Sixth IEEE and ACM International Symposium on Mixed and Augmented Reality (ISMAR 07), Nara, Japan. SHAPIRO, L. G. and STOCKMAN, G. C. (2001). Computer Vision. Prentice Hall, ISBN: 9780130307965. VINCENT, E. and LAGANIERE, R. (2001). Detecting planar homographies in an image pair. IEEE.

Figura 7. Gráfico demonstrando como se comporta o algoritmo de detecção de homografias com dados sintéticos. Foram testados limites de homografia de 0,1 a 3 aumentando de 0,1 em 0,1. Para cada Limite foi testado o ruído de 0,0 a 4 também aumentando de 0,1 em 0,1. O eixo y demonstra a quantidade de inliers de forma empilhada que foram detectados para cada homografia e o x mostra o limite de homografia com seus respectivos graus de ruído.

Figura 8. Exemplo de rastreamento do KLT, nota-se que os pontos estão presentes nas duas imagens.

Figura 9. Duas amostras de detecção de planos em dados reais préestabelecidos. Cada conjunto de pontos pintado de uma cor representa um plano detectado.

Figura 10. Exemplo de sucesso ao detectar planos em tempo real.