• Nenhum resultado encontrado

CORRESPONDÊNCIA RÁPIDA DE RETAS VERTICAIS ENTRE IMAGENS PARA LOCALIZAÇÃO DE ROBÔS MÓVEIS

N/A
N/A
Protected

Academic year: 2021

Share "CORRESPONDÊNCIA RÁPIDA DE RETAS VERTICAIS ENTRE IMAGENS PARA LOCALIZAÇÃO DE ROBÔS MÓVEIS"

Copied!
8
0
0

Texto

(1)

CORRESPONDÊNCIA RÁPIDA DE RETAS VERTICAIS ENTRE IMAGENS PARA

LOCALIZAÇÃO DE ROBÔS MÓVEIS

Roberto J. G. Barra

roberto.barra@poli.usp.br

Anna Helena Reali Costa

anna.reali@poli.usp.br

Laboratório de Técnicas Inteligentes – LTI

Escola Politécnica da Universidade de São Paulo – EPUSP Av. Prof. Luciano Gualberto, trav.3, nr.158

05508-900 São Paulo - SP, Brazil

ABSTRACT

Mobile robot localization can be estimated by using just one camera attached to it, and by previously knowing the position of a few visual landmarks. This approach is known as Structure from Motion, and it is based on the tracking of features over image sequences acquired during the robot navigation. in indoor environments. We propose a new and fast method that extracts projections of vertical lines and matches them between consecutive frames. This method is based on a new metric, which considers color distributions in the neighborhoods of the line projections, and on the use of search windows defined by robot displacement. This way, we obtain an effective and efficient matching process. Experiments showed promising results.

KEYWORDS: Mobile Robots, Localization, Computer Vision, Matching

RESUMO

É possível estimar a localização de um robô autônomo utilizando apenas uma câmera a ele acoplada e conhecendo previamente a posição de alguns poucos marcos no ambiente. A técnica é conhecida por Estrutura a partir do Movimento, e é baseada no rastreamento de projeções de características na seqüência de imagens adquirida durante a navegação do robô num ambiente interno. Neste artigo é proposto um método rápido que extrai projeções de retas verticais presentes no ambiente, e realiza a correspondência destas projeções entre quadros consecutivos na seqüência de imagens. O método é baseado numa nova métrica que utiliza a distribuição de cores na vizinhança das projeções das retas e no uso de janelas de busca definidas a partir da informação do deslocamento fornecida pelo robô, tornando a correspondência mais eficaz e eficiente. Resultados bastante promissores foram obtidos nos experimentos conduzidos.

KEYWORDS: Robôs Móveis, Localização, Visão Computacional, Correspondência.

1

INTRODUÇÃO

A partir de uma seqüência de imagens capturadas por uma câmera em movimento em um ambiente estático, é possível extrair tanto a estrutura do ambiente (localização de cantos, paredes, portas, etc) quanto o percurso da câmera, a menos de um fator de escala. Essa técnica é conhecida como Estrutura a Partir de Movimento ("Structure from Motion"ou SfM). Pode-se classificar as técnicas existentes de SfM em algoritmos

online (Chiuso et al., 2002), capazes de fornecer ao fim de cada

iteração uma estimativa aualizada, e algoritmos offline (Taylor e Kriegman, 1995), capazes de fornecer uma estimativa apenas ao final do processamento. O método apresentado neste artigo é voltado para a primeira classe de técnicas. Convém aos algoritmos online executarem cada iteração de forma rápida e eficiente, de modo que seja viável utiliza-los em um sistema de localização para robôs móveis que seja capaz de extrair informações em tempo real.

As técnicas de SfM utilizam conjuntos de correspondências de projeções de alguns elementos-chave entre quadros de imagem consecutivos. A correspondência indica quais projeções encontradas em dois quadros correspondem a um mesmo elemento do mundo real. Pode-se utilizar quaisquer elementos-chave, desde que seja possível extraí-los e rastreá-los na seqüência de imagens. Escolhas mais comuns são pontos ou retas. Nesse trabalho foram escolhidas retas verticais. Essa escolha deve-se aos seguintes motivos:

• Retas verticais estão presentes em quase todos ambientes

internos, como escolas, hospitais, escritórios, e em vários ambientes externos, como os postes em ruas de uma cidade, por exemplo.

• Retas são mais robustas a ruído e a oclusão.

• Assumindo que o ambiente tenha uma quantidade razoável

de retas verticais em relação a outras inclinações próximas, é possível usar essa informação para ajudar a calibrar

(2)

a posição da câmera em relação a pequenos erros de inclinação.

Nesse artigo é abordado um aspecto crucial para o bom funcionamento de uma técnica de SfM, que é a extração e a correspondência das projeções dos elementos-chave, no caso, retas verticais.

A extração e a correpondência dos elementos-chave deve ser realizada rapdiamente para não se tornar um gargalo de velocidade de execução do algoritmo de SfM. Ao mesmo tempo, é interessante aumentar a relação <informação / ruído> retirada dos quadros a fim de processar um menor número de quadros e, assim, diminuir o tempo total de execução do algoritmo. Uma forma de aumentar a relação <informação / ruído> entre dois quadros é aumentar a distância entre os locais em que a câmera captura os quadros, o que resulta em um maior deslocamento entre as projeções do mesmo elemento-chave em quadros consecutivos, tornando a correspondência mais difícil. A contribuição desse artigo consiste na proposição de um algoritmo que visa atender a ambas necessidades: executar em tempo real e realizar a correspondência de projeções que apresentam deslocamentos maiores do que os considerados na maioria das técnicas em tempo real de SfM, como a apresentada por Chiuso et al. (2002).

Considerando que a maioria dos robôs autônomos consegue reportar informação sobre seu deslocamento (através do uso de odômetros, por exemplo), o algoritmo proposto utiliza essa informação para ajudar a realizar a correspondência. O deslocamento do robô é usado para calcular uma janela de busca cujo objetivo é restringir o número de possíveis correspondências, aumentando as chances de correspondências corretas e acelerando a execução do algoritmo. Para cada reta encontrada numa imagem, é calculada uma janela de busca na imagem seguinte, onde apenas as retas encontradas dentro dessa janela são candidatas à correspondência com a reta que originou a janela.

Também se propõe, neste trabalho, uma nova métrica para avaliar e decidir a correspondência entre projeções das retas verticais. Esta métrica baseia-se numa estrutura que tenta resumir, de forma compacta, a distribuição de cores nas vizinhanças da reta. Essa estrutura é denominada Perfil Médio de Cor.

Alguns métodos usando retas para o problema da correspondência já foram propostos. Chang e Aggarwal (1997) usaram agrupamento temporal e espacial de retas com ótimos resultados, mas o método não é para uso em tempo real. Aider e Colle (2002) usaram deslocamento da câmera para auxiliar na correspondência das retas, mas era assumido conhecimento sobre a posição inicial das retas. Para algoritmos que trabalham em tempo real, em geral, considera-se que ocorram apenas pequenos deslocamentos de câmera entre dois quadros, como no trabalho de Sharghi e Kamangar (1999). Uma prática comum é utilizar a correlação cruzada para realizar correspondências entre pontos (Rosenfeld e Kalk, 1982). A métrica proposta nesse artigo expande esta idéia, adaptando-a para retas.

Os resultados experimentais reportados neste trabalho são

bastante motivadores, mostrando a eficácia do uso de retas verticais como elementos-chave, aliado ao uso de janelas de busca e da métrica proposta para a correspondência entre quadros.

O restante deste artigo está organizado da seguinte forma: na seção 2 são apresentadas algumas restrições e definições adotadas no presente trabalho. Na seção 3, o algoritmo proposto é detalhado. Na seção 4, os resultados de alguns experimentos são reportados e, finalmente, na seção 5 são apresentadas a conclusões.

2

RESTRIÇÕES E DEFINIÇÕES

Neste trabalho, considera-se que o robô se desloque num plano horizontal e que realize rotações em torno de um eixo vertical. Considera-se que a câmera se encontra sobre o robô e que se desloca com ele. O plano de projeção da câmera e o sistema de coordenadas do mundo real relacionam-se da seguinte forma: a origem do sistema de coordenadas do mundo real é fixado no centro de projeção da câmera. O plano XY coincide com o plano horizontal de movimentação. O ângulo θ corresponde à rotação ao redor do eixo Z, o ângulo α, à rotação ao redor de Y e o ângulo β, à rotação ao redor de X. O plano de projeção da câmera é paralelo ao plano YZ e perpendicular ao plano XZ, e possui um sistema de coordenadas denotado por UV, centrado no canto superior esquerdo da imagem. Os sistemas de coordenadas estão alinhados de tal modo que a projeção de uma linha vertical do mundo real é um linha vertical na imagem. A Figura 1 ilustra esses sistemas de coordenadas.

Figura 1: Alinhamento dos sistemas de coordenadas. Considera-se que não existe, no ambiente, retas verticais colineares. Se, no entanto, existirem casos de retas colineares, como, por exemplo, um quadro em cima de uma porta cuja moldura esteja alinhada com o batente da porta, elas serão consideradas como sendo parte da mesma reta.

Essas restrições permitem representar o movimento do robô (e, conseqüentemente, o da câmera) por um vetor de três elementos,

(x, y, θ), as retas verticais com um vetor de dois elementos (um

ponto(x, y) no plano XY) e as projeções de retas verticais com

apenas um elemento (um ponto (u) numa linha horizontal no

plano de projeção).

3

DESCRIÇÃO DO MÉTODO PROPOSTO

O algoritmo aqui proposto é divido nas seguintes fases:

• Extração: inicialmente são extraídas as projeções de retas

(3)

• Alinhamento: nessa fase é usado o fato de que o ambiente é

rico o suficiente em retas verticais para calibrar a inclinação da câmera com relação ao eixo vertical. Essa etapa não é obrigatória, ou pode ser executada apenas uma vez para calibrar o erro da posição inicial da câmera em relação ao plano XY de movimento.

• Cálculo dos Perfis Médios de Cor: aqui é calculada,

para cada reta detectada, a estrutura usada para realizar a correspondência.

• Delimitação das Janelas de Busca: nessa fase é restringido o número de potenciais pares candidatos à correspondências entre projeções de retas do quadro anterior com as do quadro corrente, utilizando informação sobre o deslocamento do robô, caso esta esteja disponível.

• Cálculo da Medida de Similaridade: para cada par criado, é

calculada uma medida de similaridade que indica o quanto as linhas são similares segundo seus Perfis Médios de Cor.

• Correspondência: finalmente, a correspondência é determinada entre os pares candidatos usando a medida de similaridade calculada.

A seguir, cada uma das fases é descrita em mais detalhes.

3.1

Extração

Inicialmente, a imagem do quadro corrente é transformada em uma imagem binária. Para isso, é realizada uma convolução entre a imagem e uma matriz de tamanho3 × 6 composta por

linhas com o padrão[−1, 0, 1]. O objetivo é criar uma imagem

de diferenças que reforçam as descontinuidades verticais. As retas procuradas são retas com inclinação próxima a 90 graus. Quanto maior o número de linhas na matriz, mais importância é dada para pixels que façam parte de retas com inclinação próximas de 90 graus (paralelas ao eixo Z da Figura 1). Seis linhas representam um bom equilíbrio entre restringir as inclinações não desejadas e a velocidade de execução. A variação aceitável em relação a 90 graus depende do erro esperado na inclinação da câmera. Nesse trabalho a extração foi projetada tendo em vista inclinações variando entre 87 e 93 graus.

Em seguida, é feita uma varredura horizontal, linha por linha na imagem processada, procurando pelos máximos locais. Em caso de empate entre mais de um pixel (um platô de máximo), os critérios de desempate utilizados são a conectividade-4 com um máximo na linha anteriormente processada, seguida pela conectividade-8. Se nenhum pixel preencher os critérios, então é escolhido o pixel central do platô. O resultado é uma imagem binária com os máximos locais formando rastros de linhas verticais.

Para extrair as retas da imagem binária, é usada a Transformada de Hough (Gonzalez e Woods, 1992). Uma vez definido um modelo paramétrico (uma equação de reta, neste caso) para o que se deseja detectar, a Transformada de Hough gera, a partir dos pontos da imagem binária, um espaço vetorial onde cada dimensão representa um parâmetro do modelo definido. Cada ponto desse espaço representa uma reta diferente. Os pontos com valores maiores no espaço paramétrico indicam as retas que passam por um maior número de pontos da imagem

binária. Então, para encontrar os parâmetros corretos das retas presentes na imagem binária, basta encontrar os máximos locais do resultado da Transformada de Hough. Como se espera que as retas procuradas tenham um leque restrito de inclinações, essa informação é usada para restringir o espaço gerado pela transformada, aumentando o desempenho do algoritmo.

3.2

Alinhamento

Ao posicionar a câmera no robô, é provável que o plano de projeção não fique corretamente alinhado conforme definido na Figura 1. Ainda, durante a movimentação do robô, vibrações maiores podem alterar o alinhamento da câmera. Seja qual for a fonte do desalinhamento, a projeção de uma reta vertical pode não ser, de fato, uma reta vertical. Um desvio de inclinação no ângulo β fará com que as projeções continuem retas paralelas umas às outras, porém não mais verticais. Um desvio no ângulo

α fará com que as projeções deixem de ser paralelas, passando a

convergir num ponto de fuga.

Utilizando apenas uma imagem, não se pode quantificar o erro em cada ângulo de inclinação. Porém é possível corrigir a imagem para que as projeções passem a ser retas verticais. O objetivo não é obter a projeção equivalente à obtida caso a câmera estivesse alinhada corretamente, mas sim minimizar os erros no cálculo dos Perfis Médios de Cor, que podem ser bastante influenciados por erros de inclinação pequenos para retas de grande extensão.

Caso as projeções sejam paralelas, basta aplicar uma rotação ao centro da imagem de modo que a inclinação média das projeções se torne 90 graus.

Caso as projeções não sejam paralelas, primeiramente é calculado o ponto para o qual elas convergem. Para evitar que projeções com erros grosseiros influenciem negativamente o cálculo, é usado o método RANSAC (Fischler e Bolles, 1981). Esse método produz resultados similares ao Método dos Mínimos Quadrados, com a diferença que o RANSAC tenta descartar dados que desviam muito da média global. De posse do ponto de fuga, é aplicada uma transformação em toda imagem, visando corrigí-la. Para cada coluna da imagem, é realizado o seguinte: uma reta virtual é traçada passando pelo ponto de fuga e o ponto no centro da coluna considerada. Cada ponto da coluna da imagem recebe o valor do ponto da reta virtual que se encontra à mesma coordenada v. A operação pode ser vista como a projeção da reta virtual na coluna da imagem. A coordenada a ser transformada é calculada por:

up= A.uvp− up

0

A− 1 (1)

A= vp− vic

vvp− vic (2)

onde (u0p, vp) são as coordenadas do pixel na reta virtual, (up, vp) são as coordenadas do pixel na coluna considerada, vic

é a coordenada v do centro da imagem e (uvp, vvp) são as

coordenadas do ponto de fuga. O valor de cada pixel (u0p, vp)

é transformado para o valor do pixel (up, vp) correspondente,

conforme ilustra a Figura 2.

O resultado final é a imagem original transformada de modo que as projeções das retas verticais sejam, de fato, verticais.

(4)

Figura 2: Correção da imagem para desvios na inclinação da câmera.

Depois da transformação, a imagem apresentará regiões pretas nas laterais. Mas isso não é preocupante, pois apenas as regiões em volta das projeções já extraídas serão usadas.

3.3

Cálculo dos Perfis Médios de Cor

O Perfil Médio de Cor tenta capturar a distribuição de cores que cerca uma reta. Para isso, é preciso estimar os pontos que delimitam os segmentos de reta na imagem. Essas estimativas não precisam ser exatas. Sendo as retas verticais, basta saber as coordenadas v dos pontos extremos dos segmentos, vi e vf. É

usada a imagem binária que alimenta a Transformada de Hough para essa tarefa.

Outra informação necessária é um parâmetro que define o tamanho da vizinhança (quão longe da reta) a ser usado no cálculo do perfil. Quanto mais longe se considerar, maior o custo computacional, porém mais características para identificar a reta poderão ser consideradas. Um valor razoável a se adotar é considerar uma distância de 5 pixels para cada lado da reta. Esse valor é identificado por Np. O Perfil Médio de Cor é, então, um

vetor de dimensão2Np+ 1.

O algoritmo abaixo realiza o cálculo do Perfil Médio de Cor para cada reta vertical extraída:

1. envolver o segmento de reta vertical considerado por uma janela (centralizada) de largura2Np+ 1 e altura delimitada

pelos extremos do segmento de reta, vie vf.

2. calcular para cada coluna de pixels dentro da janela, a média das intensidades de cada banda de cor (azul, vermelho e verde). Os resultados são armazenados num vetor correspondente de tamanho 2Np + 1, sendo que a

posição central do vetor corresponde à coluna do segmento de reta considerado.

3. calcular um outro vetor com a média da iluminação I para cada coluna, e equalizar o vetor (Ieq).

4. ajustar o vetor das médias das componentes de cor com o vetor de iluminação. Para cada coluna e para cada banda do vetor de cores, calcula-se:

Vnovo= Ieq

I .V (3)

onde Vnovoé o novo valor da componente, V o valor antigo, Ieq o valor da iluminação equalizada para a coluna e I o valor não equalizado da iluminação.

Os vetores de cores ajustados pela iluminação formam o Perfil Médio de Cor. O passo de equalização tem por objetivo fornecer alguma resistência às variações de iluminação na cena.

3.4

Delimitação das Janelas de Busca

Inicialmente tem-se dois conjuntos de projeções de retas:

C1, contendo as projeções da imagem processada na iteração passada, e C2, contendo as projeções de reta da imagem corrente.

As janelas de busca são estimadas na imagem corrente, para cada reta em C1, usando a informação disponível sobre o

deslocamento do robô. Uma reta em C1é pareada com as retas

em C2que estejam dentro da janela associada a ela. O processo

se repete para todas as retas em C1.

São adotadas três alternativas para a criação da janela de busca. A primeira considera que não há informação disponível sobre o deslocamento do robô. A segunda considera que seja disponível a estimativa da rotação do robô, a estimativa da direção do vetor de translação do robô e uma previsão arbitrária do valor máximo de pixels que uma projeção se desloca de um quadro para o outro. A terceira considera a existência da estimativa tanto da rotação como da translação do deslocamento. Todas as estimativas têm associada uma variância. Considera-se que há independência entre as estimativas.

3.4.1 Sem informação de deslocamento

Devido à falta de informação, a primeira alternativa faz com que a janela de busca seja, na verdade, toda a imagem corrente, criando pares com todas as retas de C2para cada reta em C1.

3.4.2 Com informação parcial do deslocamento Com a segunda alternativa pode-se estimar duas janelas independentes: uma para a rotação e outra para a translação. A contribuição da rotação é igual para todas as projeções de retas, enquanto a contribuição da translação é única por reta.

Para a rotação, é calculado um deslocamento e um valor de incerteza, em pixels. A incerteza da rotação é dada pelo desvio padrão da estimativa da rotação. O deslocamento é obtido por:

uwc= −usize.∆θ

γvis (4)

onde uwc é o deslocamento do centro da janela, usize é o

comprimento em pixels da imagem,∆θ é a rotação da câmera, e γvisé o ângulo de visibilidade da câmera. Observe que, quando o robô (e a câmera) gira para a direita, por exemplo, a projeção de uma reta na imagem se desloca em sentido oposto.

A janela dada pela translação é obtida para cada reta em

C1, primeiro decompondo o vetor de deslocamento em dois, a componente x, perpendicular ao plano de projeção, e a componente y, paralela ao plano de projeção. Então, para cada uma das componentes, encontra-se em qual sentido a projeção da reta considerada se desloca pela imagem (para a direita ou

(5)

esquerda). Se para ambas as componentes a projeção se desloca no mesmo sentido, então a janela tem uma extremidade fixa na posição u da reta, e a outra extremidade fica na direção para a qual a reta se desloca, distante o número máximo de pixels que se espera que uma projeção se desloque. Caso as componentes discordem sobre o movimento da reta, é considerada uma janela centrada na projeção, e com tamanho duas vezes o deslocamento máximo esperado.

Finalizando, as contribuições geradas por translação e rotação são fundidas numa única janela de busca do seguinte modo: desloca-se o centro da janela de translação pelo deslocamento provindo da rotação. Por fim, cada extremidade da janela é dilatada pela incerteza da rotação.

3.4.3 Com informação completa do deslocamento Com informação completa sobre o deslocamento da câmera, pode-se, para cada projeção em C1, estimar a posição da reta

no mundo real. Para tal, é necessário conhecer a projeção da reta em dois quadros, e a movimentação da câmera entre os quadros. No caso, uma das projeções é a própria projeção do conjunto C1. A outra é a projeção do conjunto C1 da iteração

anterior que foi correspondida à projeção no atual conjunto

C1. O deslocamento da câmera é o deslocamento do robô da iteração passada. Pode ser que alguma reta de C1 não tenha

correspondido a nenhuma projeção na iteração passada. Nesse caso, é calculada a janela como se estivesse disponível apenas informação parcial do deslocamento do robô.

A partir da estimação obtida da posição da reta no ambiente e usando a informação do deslocamento na iteração atual, pode-se calcular sua projeção no quadro atual. Para calcular o tamanho da janela, é considerado que o deslocamento do robô é perturbado por ruído gaussiano, e que essa perturbação afeta a posição da projeção. As variáveis consideradas são as três componentes do deslocamento de robô (dx, dy, e dθ) para o deslocamento da iteração atual e da iteração passada. As projeções extraídas das imagens são consideradas medições livres de erro, por simplificação.

Para cada uma das seis variáveis é determinado o sentido que a projeção estimada da reta no quadro atual se desloca ao adicionar um valor positivo a mesma, e é criado um vetor P contendo, para cada variável, o valor 1 caso esse deslocamento é no

sentido crescente de U , e−1 caso seja no sentido contrário. As

extremidades da janela de busca são então obtidas recalculando a projeção no quadro atual, primeiro somando e depois subtraindo a cada variável o valor correspondente do vetor P , multiplicado pelo desvio padrão da incerteza associada à variável.

Os limites da janela tendem a superestimar o erro real, pois a incerteza combinada das variáveis é menor que a soma de todas as incertezas. Porém o interesse é em delimitar a região de busca pela projeção correspondente, e não em determinar com precisão a incerteza esperada da projeção. Caso o erro do robô não possa ser bem modelado por uma distribuição normal, é interessante aumentar o tamanho da janela ainda mais, multiplicando os desvios padrões no procediemnto acima por um parâmetro de controle, que assumiria um valor maior que um para aumentar as chances da projeção correspondente estar dentro da janela de busca. Utilizar métodos formais para a propagação do erro introduziriam complexidade extra ao algoritmo, sem trazer

benefícios expressivos.

3.5

Cálculo da Métrica de Similaridade

Para cada par criado, é calculado um valor que será a medida de similaridade entre as duas retas segundo seus Perfis Médios de Cor. Esse valor é calculado utilizando a média das correlações cruzadas dos Perfis Médios de Cor das projeções das três bandas de cor. A correlação cruzada para cada banda de cor é dada por:

Cij= Nk=1(vi(k)− ¯vi).(vj(k)− ¯vj)

(N −1).V ar(vi).V ar(vj) (5)

onde Cijindica o valor da medida para a reta i de C1e a reta j de C2, N é o tamanho dos Perfis, vie vjsão os Perfis,vi¯ andvj¯ são

as médias dos mesmos, e o operador V ar(.) indica a variância.

Uma vez calculadas as medidas de similaridades, eliminam-se os pares cujo valor da medida está abaixo de um limiar. O limiar é escolhido de modo que é esperado que pares com valores abaixo do limiar tenham baixa probabilidade de representarem uma correspondência válida. Normalizando a medida para que a mesma retorne valores entre 0 e 100, o limiar escolhido foi de 50%. Assim, Cij resulta em zero para combinações de i e j que

não formam um par potencial.

3.6

Correspondência

O último passo a realizar é a correspondência entre as retas, estando limitada aos pares já criados e utilizando as métricas calculadas. Para isso foi definida a função descrita na equação (6) que deve ser maximizada variando a função δij:

fmax=PNprev

i=1

PNcurr

j=1 δij.Cij (6)

onde Npreve Ncurrsão os números de retas extraídas no quadro

anterior e atual, respectivamente, e δij assume o valor 1 caso i

e j sejam escolhidas como pares de possível correspondência, e zero em caso contrário, respeitando:

• 0 ≤PNprev

i=1 δij ≤ 1 e • 0 ≤PNcurr

j=1 δij≤ 1.

Por exemplo, considere que Nprev = 2 e Ncurr = 3. Os pares (i, j) existentes são: (1,1), (1,2), (1,3), (2,1), (2,2) e (2,3). Caso

o par (1,1) seja escolhido para a correspondência, tem-se que

δi=1,j=1 = 1, δi=1,j6=1 = 0 e δi6=1,j=1 = 0, restando os pares

(2,2) e (2,3) para a correspondência global. O procedimento se repete, caso (1,2) seja escolhido, restando (2,1) e (2,3) para a correspondência global e, finalmente, caso (1,3) seja escolhido, restará (2,1) e (2,2). O algoritmo de correpondência escolherá entre os conjuntos possíveis, {(1, 1), (2, 2)}, {(1, 1), (2, 3)}, {(1, 2), (2, 1)}, {(1, 2), (2, 3)}, {(1, 3), (2, 1)} e {(1, 3), (2, 2)},

aquele que possuir a maior soma de medidas de similaridade, isto é,(C11+ C22) ou (C11+ C23), etc.

A complexidade computacional do cálculo exaustivo da solução ótima é da ordem de O(2NprevNcurr). Mesmo para valores

pequenos de Nprev e Ncurr, o cálculo da solução ótima pode

ser impraticável. São apresentados dois algoritmos não ótimos, porém de complexidade computacional bem menor, e que demonstraram ser adequados para as situações experimentadas.

(6)

Um dos algoritmos é mais complexo, e fornece uma solução boa na maioria dos casos, e outro mais simples, que fornece uma solução boa para um número menor de situações, mas executa mais rapidamente.

A solução simples funciona do seguinte modo:

1. Ordena de forma decrescente os pares pela medida de similaridade Cij.

2. Para cada par (começando pelo que possui maior medida): verifica se alguma das retas já está correspondida. Se não, marca o par como uma correspondência válida e as retas como correspondidas.

Essa solução funciona para ambientes mais simples, com poucas ambigüidades entre as retas presentes. A complexidade computacional do algoritmo é da ordem de

O(NprevNcurr.lg(NprevNcurr)). Para ambientes mais complexos, essa solução não é muito adequada. Para estes casos, propõe-se o seguinte algoritmo:

1. Para cada reta em C1, agrupar todos os pares que

contêm a reta considerada, ordenando-os pela medida de similaridade.

2. Para cada grupo gerado, calcular a diferença entre as medidas de similaridade dos dois pares com maiores valores, e multiplicar o resultado pela maior medida do grupo. Se um grupo possuir apenas um par, usar como segunda maior medida o limiar usado para eliminar pares com baixa probabilidade de serem uma correspondência válida.

3. Para o grupo que resultou no maior valor calculado, escolher o par de maior medida de similaridade deste grupo, adotando-a como uma correspondência.

4. Eliminar o grupo de maior valor calculado, e eliminar dos grupos restantes os pares que possuem a reta de C2

envolvida na correspondência adotada.

5. Repetir a partir do passo 2 até todos os pares serem eliminados.

Essa solução privilegia correspondências que possuem valores altos de similaridades e que, ao mesmo tempo, não ofereçam uma segunda opção tão boa quanto a primeira. A complexidade computacional do algoritmo é da ordem de

O(N2

prevNcurr.lg(NprevNcurr)). Esta proposta lida bem

melhor com ambigüidades e repetição de padrões de retas, e gera resultados melhores que a primeira, mas consome mais tempo. Como um número relativamente baixo de pares é formado (pelos experimentos, uma média de 50 pares), seu tempo de execução não é um limitante grave.

O último passo da correspondência refere-se a decidir o encaminhamento das retas que não obtiveram correspondência a nenhuma outra. Para essas retas, adotou-se a solução mais simples: manter as retas extraídas da imagem corrente e eliminar as retas da imagem anterior.

4

EXPERIMENTOS

Foram realizados experimentos utilizando um robô Pioneer, da ActivMedia Robotics, provido de odômetros e com uma web cam de baixa qualidade sobre ele. O teste apresentado aqui foi realizado num ambiente típico: um corredor de faculdade. Foram selecionados 15 quadros com deslocamento entre quadros consecutivos não menor do que meio metro. A rotação foi limitada a 10 graus para evitar que um número muito grande de retas ficasse fora do campo de visão da câmera. A Figura 3 mostra um dos quadros analisados, com as projeções de retas extraídas sobrepostas sobre a imagem.

Figura 3: Exemplo de quadro usado no experimento, com as projeções de retas extraídas sobrepostas na imagem.

O Experimento foi realizado com 4 configurações do algoritmo: usando janela de busca determinada a partir de informação completa de deslocamento (Caso 1), usando informação parcial de deslocamento (Caso 2) e sem usar informação de deslocamento (Caso 3). A última situação (Caso 4) utiliza janela de busca determinada a partir de informação completa de deslocamento, mas utilizando a solução simplificada proposta para realizar a correspondência.

Os resultados estão na Tabela 1. Para todos os experimentos, o número médio de retas extraídas por quadro foi de 18, 9,

o número médio de correspondências entre dois quadros foi de 16, 1, e o número médio de quadros pelos quais uma reta

sobreviveu foi de5, 4. A Tabela mostra a porcentagem média de

correspondências realizadas corretamente, a porcentagem média de correspondências realizadas erroneamente (falsos positivo – FP) e a porcentagem média de correspondências possíveis perdidas (falsos negativo – FN).

Tabela 1: Resultados dos Experimentos.

Casos Matches OK FN FP

Caso 1 94% 5% 1%

Caso 2 94% 4% 2%

Caso 3 60% 2% 38%

Caso 4 88% 5% 7%

Pela análise dos resultados nota-se que, utilizando pelo menos alguma informação sobre o deslocamento do robô, é possível indicar as correspondências com grande taxa de acerto. É interessante notar que usando informação parcial ou total do deslocamento não resultou em grande diferença para esse experimento. Esse comportamento foi verificado em outros experimentos, e a informação completa sobre o deslocamento do robô só influencia positivamente os resultados de modo mais significativo quando o erro associado ao seu deslocamento

(7)

é reduzido, caso no qual são geradas janelas de busca com tamanhos abaixo de 10-20 pixels. Isso ocorre porque, em geral, características parecidas e padrões repetitivos tendem a ocorrer próximos uns dos outros, e apenas quando a janela de busca assume um tamanho menor que o tamanho do padrão de repetição os resultados melhoram.

Quando eliminada toda informação sobre o movimento do robô, o algoritmo ainda foi capaz de identificar corretamente mais da metade das correspondências (caso 3). O maior problema foi o aumento de erros do tipo falso positivo, que são muito prejudiciais para a estimação de localização do robô.

Em contrapartida, nos casos 1 e 2 pode ser notado um baixo número de falsos positivos, porém o erro do tipo falso negativo apareceu em maior número do que no caso 3. Era natural obter isso, pois como nos casos 1 e 2 é imposta a restrição adicional da janela, a ocorrência de retas para as quais não foram encontradas correspondências tende a aumentar em relação ao caso 3, onde existem mais possibilidades para se procurar por uma correspondência. Com base nisso pode-se perceber a influência da janela de busca nos resultados. Ela direciona a realização de correspondências corretas e inibe a criação de correspondências falsas.

Ao analisar o Caso 4, pode-se notar que há uma queda na capacidade de realizar correspondências, porém a queda é pequena. Mas o que de fato é negativo é que todas correspondências perdidas foram transferidas para falsos positivos, e não para falsos negativos, que seriam menos prejudiciais. Isso mostra que a versão mais simples do algoritmo de correspondência tem uma deficiência em lidar com ambigüidades, que podem ser geradas por repetição de padrões na imagem. E é isso o que ocorre no teste. Pode-se ver na Figura 3 que várias retas verticais foram encontradas quando há a existência de padrões repetitivos, como no lado esquerdo da imagem. O algoritmo mais simples não consegue lidar corretamente com esta situação.

Foram realizados alguns testes variando as condições de iluminação para testar a correção de iluminação aplicada no cálculo dos Perfis Médios de Cor. Foi constatado que a correção de iluminação traz benefícios, mas os mesmos são pequenos. Em situações onde a iluminação se manteve fixa, usar a correção de iluminação em relação a ignorar a correção degradou os resultados. Essa degradação pode ser atribuída ao modo como a iluminação é corrigida. Ao equalizar cada Perfíl Médio de Cor levando em conta apenas a região da imagem delimitada pelo perfíl, a informação sobre a variação da intensidade ao longo do perfíl é realçada, porém a informação sobre a média da intensidade é perdida. Uma correção alternativa que pode ser usada é a equalização da imagem inteira como uma etapa de pré-processamento.

Com base nesses resultados, é recomendável só usar a correção de iluminação caso se espera variações de iluminação repentinas no ambiente. Os resultados apresentados nesse trabalho foram obtidos usando a correção de iluminação.

Nos testes realizados, a câmera estava bem alinhada com relação ao eixo perpendicular ao plano horizontal, e a fase de Alinhamento não atuou. Alguns testes foram realizados alterando a inclinação da câmera para testar a

fase de Alinhamento. Foi constatado que em situações onde as projeções eram consideradas paralelas pelo algoritmo, o Alinhamento consegue corrigir corretamente imagem, rotacionando-a. O limite de precisão que a correção consegue atingir está relacionado com a resolução adotada para representar o parâmetro inclinação no espaço paramétrico utilizado pela Transformada de Hough. Quanto maior a resolução, menor o erro cometido pelo Alinhamento.

Em situações onde as projeções não eram consideradas paralelas, o desempenho do algoritmo foi aquém do esperado. O algoritmo se mostrou muito sensível a variações nas inclinações das retas, e em geral as imagens corrigidas não apresentaram melhora significativa em relação às imagens originais, e em alguns casos as imagens ficaram muito distorcidas. Aumentar a resolução do espaço paramétrico da Transformada de Hough melhora o desempenho do algoritmo até um certo ponto, porém ao aumentar além desse ponto o desempenho passar a cair. Isso ocorre porque a resolução do espaço de parâmetros passa a ser maior que a resolução da imagem, resultando em mais de uma uma linha significativa no espaço paramétrico para cada linha na imagem.

Os resultados obtidos levaram a inserção de uma checagem de segurança no algoritmo. Se o Alinhamento realiza correção numa imagem com projeções não paralelas, então a extração de retas é executada novamente, dessa vez sobre a imagem alinhada. Se a média das inclinações das projeções obtidas nessa etapa de checagem estiver em média mais próximo de 90 graus do que as projeções obtidas originalmente, então esse novo conjunto de projeção é passado adiante para o cálculo dos Perfis Médios de Cor. Se não, a etapa de alinhamento é ignorada e é usado o conjunto original de projeções.

Essa modificação é importante pois ela tem sucesso em bloquear erros grosseiros que podem ocorrer. Utilizando essa modificação, os resultados do Alinhamento melhoraram, porém o algoritmo fica um pouco mais lento.

O último teste apresentado é relativo ao tempo de execução. A Tabela 2 mostra a avaliação do tempo de execução do processo de correspondência, sem contar a extração de retas e o Alinhamento. Essas duas etapas são equivalentes para todos os casos. É usada uma operação básica de processamento de imagem, uma convolução da imagem por uma matriz3 × 3 no

domínio espacial e sem otimização, como unidade de tempo para permitir uma avaliação independente de plataforma.

Tabela 2: Tempo gasto na operação de correspondência. A unidade de tempo usada é o tempo gasto pela convolução de uma matriz3 × 3 com a imagem.

Cases Time Taken.

Case 1 1.1

Case 2 1.1

Case 3 1.9

Case 4 1.3

5

CONCLUSÕES

Foi apresentado um algoritmo rápido e capaz de realizar a correspondência de retas verticais entre imagens, mesmo com pouca informação sobre a posição relativa da câmera entre

(8)

os instantes em que elas foram capturadas. Mostrou-se a melhora no desempenho do sistema quando se usa a informação de deslocamento do robô entre as capturas das imagens para definir uma janela de busca que guia a correspondência entre as imagens. Apresentou-se, também, um cálculo eficaz para a métrica de similaridade entre retas, que decide a correspondência entre imagens.

Os resultados preliminares indicam que vale a pena continuar o trabalho nessa linha, tendo como prioridade reduzir ainda mais os erros de falsos positivos, que são os mais danosos para o algoritmo da localização do robô.

Já está em andamento uma modificação importante do algoritmo. A alteração consiste em modificar a etapa de extração de retas para que a mesma seja capaz de fornecer à etapa de cálculo dos Perfis Médios de Cor listas de pixels indicando a trajetória mais provável da reta. Assim a etapa de Alinhamento da imagem pode ser suprimida, diminuindo o tempo de execução do algoritmo, e o cálculo dos Perfis Médios de Cor tende a fornecer resultados mais precisos. A eliminação da etapa de Alinhamento é interessante, pois como já dito anteriormente a fase apresenta grande sensibilidade a variações no ângulo das retas extraídas. Essa modificação substitui a Transformada de Hough por um outro algoritmo que permite extrair as listas de pixels de forma mais eficiente, e também permite trabalhar com um leque maior de inclinações de retas, indo de 45 graus até 135 graus, e com alguns tipos de curvas, sem aumentar o tempo de execução. O uso desse algoritmo alternativo é um passo na generalização do método para lidar com outras estruturas além de retas verticais.

AGRADECIMENTOS

Este projeto teve apoio parcial do Projeto MultiBot CAPES-GRICES Proc. N. 099/03.

REFERÊNCIAS

Aider, P. H. e Colle, E. (2002). A model to image straight line matching method for vision-based indoor mobile robot self-location, IEEE/RSJ International Conference on

Intelligent Robots and System, 2002, pp. 460–465.

Chang, Y. e Aggarwal, J. (1997). Line correspondences from cooperating spatial and temporal grouping processes for a sequence of images, Computer Vision and Image

Understanding 67: 186–201.

Chiuso, A., Favaro, P., Jin, H. e Soatto, S. (2002). Structure from motion causally integrated over time, IEEE Transactions

on Pattern Analysis and Machine Intelligence 24: 523–535.

Fischler, M. e Bolles, R. (1981). Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography, Communications of

the ACM 24(6): 381–395.

Gonzalez, R. C. e Woods, R. E. (1992). Digital Image Processing, Addison-Wesley Publishing Company, inc.

Rosenfeld, A. e Kalk, A. C. (1982). Digital Picture Processing, Academic Press.

Sharghi, S. e Kamangar, F. (1999). Geometric feature-based matching in stereo images, : Information, Decision and

Control, 1999. IDC 99. Proceedings. 1999, Adelaide, SA,

Australia, pp. 65–70. ISBN 0-7803-5256-4.

Taylor, C. e Kriegman, D. (1995). Structure and motion from line segments in multiple images, IEEE Transactions on

Referências

Documentos relacionados

1- A partir de observações e avaliações realizadas no segmento de transportes verificou-se a dificuldade de apropriação dos custos efetivos aos serviços

I, Seltan Segued, emperor of Ethiopia, believe and profess that Saint Peter, prince of the Apostles was nominated head of the Christian Church by Christ our Lord, who bestowed

No primeiro, destacam-se as percepções que as cuidadoras possuem sobre o hospital psiquiátrico e os cuidados com seus familiares durante o internamento; no segundo, evidencia-se

Classificação biológica, Taxonomia e Sistemática são designações que tiveram origem em alturas distintas ao longo da história, e cujo significado por vezes

se a uma forma de comunicação que engloba vários meios para transmitir uma mensagem (Ribeiro, 2004). As aplicações multimédia interactivas ultrapassaram a sua utilização em contexto

Mestrado em Administração e Gestão Pública, começo por fazer uma breve apresentação histórica do surgimento de estruturas da Administração Central com competências em matéria

Posteriormente, em Junho de 1999, ingressei no grupo Efacec, onde fui responsável pela elaboração de projetos e propostas para a construção de Estações de Tratamento

Para avaliação do estado imunológico da população em estudo, foram colhidas amostras de soro sanguíneo de 133 aves e submetidas a provas sorológicas como a Reação