• Nenhum resultado encontrado

Robótica Subaquática: Uma Abordagem Baseada em Visão Computacional Aplicada a SLAM

N/A
N/A
Protected

Academic year: 2021

Share "Robótica Subaquática: Uma Abordagem Baseada em Visão Computacional Aplicada a SLAM"

Copied!
135
0
0

Texto

(1)

Engenharia de Computação

Robótica Subaquática: Uma

Abordagem Baseada em Visão

Computacional Aplicada a SLAM

Paulo Lilles Jorge Drews Junior

(2)

Engenharia de Computação

Robótica Subaquática: Uma

Abordagem Baseada em Visão

Computacional Aplicada a SLAM

Paulo Lilles Jorge Drews Junior

Trabalho de Conclusão do Curso de Gra-duação em Engenharia de Computação sub-metido à avaliação, como requisito parcial à obtenção do título de Engenheiro de Com-putação.

Orientador(a): Profa. Dra. Silvia Silva da Costa Botelho

Co-orientador(a): Prof. Ms. Vitor Irigon Gervini

(3)

de Computação e aprovado em sua forma final pelo orientador.

——————————————————– Profa. Dra. Silvia Silva da Costa Botelho

Banca Examinadora:

Profa. Dra. Silvia Silva da Costa Botelho

DFIS – FURG (Orientadora) Prof. Ms. Vitor Irigon Gervini DFIS – FURG (Co-orientador)

Prof. Dr. Nelson Lopes Duarte Filho DMAT – FURG

(4)

tudo dependesse de você." Cardial Francis J. Spellman

(5)

Agradecimentos

Primeiramente, agradeço a professora, orientadora e amiga Silvia, pelo apoio que me deu e pela paciência que teve comigo, mesmo não tendo os resultados esperados no tempo esperado, ao professor Sebastião, pelos ensinamentos e pela amizade, ao professor Vitor, pelas festas e dicas importantes no começo do trabalho, ao professor Éder, pelas diversas conversas compartilhadas no Nautec, e a todos os mestres da Engenharia de Computação pelos ensinamen-tos passados. Agradeço especialmente aos meus pais pelo apoio incansável, mesmo quando eu ia para casa e mal tinha tempo de conversar, aos meus amigos por terem me mostrado que a vida é feita de momentos, que devem ser sempre aproveitados com muita intensidade, especialmente ao Daniel Junior, que dividiu comigo viagens cansativas a Pelotas e um lar em Rio Grande, ao Tomás pelas conselhos e pela longa amizade, ao Emanuel, incansável amigo de viagens do FURGBOL, ao Ulisses, por ter sempre uma resposta pra tudo, aos meus colegas do NAUTEC e do NUMA, por terem sempre se mostrados amigos e prestativos, principalmente ao Mário Centeno, pela incansável ajuda com os experimentos com o ROV, a Mariane, companheira de visão computa-cional e a Neusa por ter me ajudado com a correção da monografia. Enfim, agradecer a todos, que mesmo sem saber fizeram este trabalho possível.

(6)

Lista de Figuras iv

Lista de Tabelas vii

Lista de Abreviaturas viii

Resumo x Abstract xi 1 Introdução 1 1.1 Motivação . . . 1 1.2 Objetivos . . . 3 1.3 Estrutura do Trabalho . . . 4

2 Sistemas Visuais para Localização 5 2.1 Introdução . . . 5

2.2 Imagens Subaquáticas . . . 7

2.3 Pré Processamento . . . 9

2.3.1 Modelo da Câmera . . . 9

2.3.2 Calibração da Câmera e Correção das Distorções . . . 12

2.4 Transformações Projetivas e Modelo de Movimento . . . 18

2.5 Estimativa de Movimento . . . 19

2.5.1 Técnicas Não Baseadas em Características . . . 21

2.5.2 Técnicas Baseadas em Características . . . 22

2.5.2.1 Detector de Harris . . . 24

(7)

2.5.2.2 KLT . . . 27

2.5.2.3 SIFT . . . 28

2.5.2.3.1 Detecção de Extremos no Espaço de Escala . . . 30

2.5.2.3.2 Localização de Pontos-Chave . . . 31

2.5.2.3.3 Definição de Orientação . . . 33

2.5.2.3.4 Descritores dos Pontos-Chave . . . 34

2.5.3 Correspondências Entre Pontos (Matching) . . . 35

2.5.4 Eliminação de Falsas Correspondências (Outliers) . . . 40

2.5.5 Comparativo Entre Métodos . . . 43

2.5.6 Matriz de Estimativa do Movimento . . . 46

3 Mapeamento de Ambientes 50 3.1 Introdução . . . 50

3.2 Modelagem Geométrica Exata . . . 51

3.2.1 Roadmaps . . . 51

3.2.2 Decomposição Celular . . . 53

3.2.3 Gradiente de Campo Potencial . . . 55

3.3 Modelagem Topológica Qualitativa . . . 57

3.3.1 Mapas Auto-Organizáveis . . . 60

3.3.1.1 Redes de Kohonen . . . 61

3.3.1.2 Estruturas Celulares Crescentes . . . 62

3.4 Comparativo Entre as Abordagens . . . 63

4 Metodologia - SLAM Visual 67 4.1 Introdução . . . 67

4.2 Pré-Processamento . . . 68

4.3 SIFT . . . 71

4.4 Correspondência (Matching) . . . 72

4.5 Matriz de Estimativa do Movimento - Homografia . . . 75

(8)

5 Resultados 83

5.1 Introdução . . . 83

5.2 Plataforma de Teste . . . 83

5.3 Resultados Experimentais . . . 89

5.3.1 Sistema de Visão . . . 89

5.3.2 Localização Em Braço Robótico . . . 96

5.3.3 Mapeamento Topológico . . . 97

6 Conclusão 104 6.1 Trabalhos Futuros . . . 105

Bibliografia 107

(9)

Lista de Figuras

2.1 Estrutura do sistema de visão utilizando veículos subaquáticos. . . 6

2.2 Problemas de iluminação em ambiente subaquático. . . 8

2.3 Representação de uma câmera pinhole. . . 10

2.4 Modelo de câmera pinhole. . . 10

2.5 Exemplo de padrão de calibração sobre uma superfície plana, proposto por Zhang. . . 14

2.6 Imagem com distorções, à esquerda, e com as distorções corrigidas, à direita. 17 2.7 Transformação projetiva entre duas diferentes vistas de uma mesma cena. . 19

2.8 Modelos de movimentos. . . 20

2.9 Veículo subaquático com sistema de coordenadas no robô, à esquerda, e na câmera, à direita. . . 21

2.10 Problema da abertura. . . 23

2.11 Função janela da equação de auto-correlação, acima uma função degrau e uma função gaussiana, abaixo. . . 25

2.12 Tipos de janelas que podem ser detectados em uma imagem. . . 26

2.13 Classificação dos pontos da imagem utilizando o operador de Harris(R). . . 26

2.14 Espaço de escala - diferença gaussiana (DoG). . . 31

2.15 Máximos e mínimos de uma imagem com diferença gaussiana. . . 31

2.16 Histograma de orientação do SIFT . . . 33

2.17 Descritor local do SIFT . . . 34

2.18 Janela de correlação do CS. . . 36

2.19 Representação da geometria epipolar. . . 41

(10)

2.20 Comparativo entre os três métodos, Harris, KLT e SIFT na detecção de

características. . . 44

2.21 Variância à escala apresentada pelos métodos KLT e Harris. . . 45

2.22 Movimentos representados pela matriz de homografia. . . 48

3.1 Mapa do ambiente para gerar grafo de visibilidade. . . 53

3.2 Grafo de visibilidade com a escolha do melhor caminho entre origem e destino. 54 3.3 Diagrama de Voronoi. . . 55

3.4 Decomposição do mapa em células. . . 56

3.5 Grafo de conectividade criado a partir das células. . . 57

3.6 Caminho escolhido entre origem e destino através das bordas das células. . 58

3.7 Mapa em forma de grids. Na esquerda, uma distribuição uniforme e à direita uma distribuição quadtree. . . 58

3.8 A partir do mapa, à esquerda, gera-se dois campos potenciais, um a par-tir dos obstáculos e outro dos pontos de origem e destino, gerando como resultado o gradiente de campo potencial do mapa, à direita. . . 59

3.9 Interação lateral nos neurônios corticais nos primatas. . . 62

3.10 Comparativo entre abordagens de mapeamento auto-organizável. Com as redes de Kohonen na imagem acima, e as estruturas celulares crescentes (GCS), na imagem abaixo. . . 64

4.1 Overview do sistema proposto. . . 69

4.2 Imagem com distorção, à esquerda, e com distorção corrigida, à direita, utilizando a metodologia proposta. . . 70

4.3 Orientação do robô. . . 78

5.1 Interface principal do sistema desenvolvido com as janelas de ajuste de vídeo e de mapeamento. . . 85

5.2 Interface principal com a aba comandos e janela de vídeo. . . 85

5.3 Câmeras de vídeo utilizadas nos testes. . . 86

5.4 Plataforma de teste utilizando braço robótico. . . 86

5.5 Plataforma de teste utilizando veículo subaquático. . . 87

(11)

5.7 Imagens subaquáticas reais geradas com a aplicação de filtros. . . 88 5.8 Imagem utilizada para calibração, em sua forma original, à esquerda, e com

correção radial corrigida, à direita. . . 89 5.9 Comparativo KLT x SIFT utilizando imagens reais a uma taxa de 2fps. . . 91 5.10 Comparativo KLT x SIFT utilizando imagens reais a uma taxa de 30fps. . 91 5.11 Comparativo KLT x SIFT utilizando imagens reais em tempo online de

execução. . . 93 5.12 Comparativo KLT x SIFT utilizando imagens artificiais a uma taxa de 2fps. 94 5.13 Comparativo KLT x SIFT utilizando imagens artificiais a uma taxa de 30fps. 96 5.14 Comparativo KLT x SIFT utilizando imagens artificiais em tempo online

de execução. . . 97 5.15 Pontos de interesse e correlações detectadas em imagens reais pelo sistema

proposto. . . 98 5.16 Pontos de interesse e correlações detectadas em imagens artificiais com

distorção 5 pelo sistema proposto. . . 99 5.17 Deslocamento nos eixos cartesianos x e y determinado pelo sistema

pro-posto, em relação a odometria do robô. . . 100 5.18 Número de pontos de interesse detectados nas imagens e número de

corre-lações corretas no tempo. . . 101 5.19 Velocidade do braço robótico por um período superior a três minutos, pela

odometria e pelo sistema proposto. . . 102 5.20 Mapeamento topológico treinado a partir de 39 frames, à esquerda, e 586

frames, à direita. Navegando sobre a mesma área. . . 103 5.21 Mapeamento topológico treinado a partir de 27 frames. com imagens

(12)

5.1 Características subaquáticas para cada distorção. . . 87 5.2 Parâmetros de calibração das duas câmeras utilizadas nos testes. . . 89 5.3 Taxa de frames por segundos média dos algoritmos KLT e SIFT em dois

computadores distintos, utilizando imagens reais e com filtros. . . 92 5.4 Taxa de frames por segundos média dos algoritmos KLT e SIFT em dois

computadores distintos, utilizando imagens artificiais com filtros. . . 95

(13)

Lista de Abreviaturas

1D Unidimensional

2D Bidimensional

3D Tridimensional

AUV Autonomous Underwater Vehicle

BBF Best-Bin-First

CS Correlation Score

DoG Difference-of-Gaussian

DOF Degree of Freedom

fps Frames Por Segundo

FURG Fundação Universidade Federal do Rio Grande

GCS Growing Cell Structures

GPU Graphic Processor Unit

IPL Image Processing Library

IPP Intel Integrated Performance Primitives

LMedS Least Median Square

LoG Laplacian of the Gaussian

LUT Look-up Table

(14)

OpenCV Intel Open Source Computer Vision Library

RANSAC Random Sample Consensus

SLAM Simultaneous Localization and Mapping

SIFT Scale Invariant Feature Transform

SOM Self-Organizing Maps

SVD Sigular Value Decomposition

ROV Remote Operated Vehicle

US NAVY Marinha dos Estados Unidos

(15)

Resumo

Atualmente, os avanços tecnológicos em software, hardware e instrumentação têm permi-tido a utilização de sistemas robóticos para diferentes tipos de aplicações. Robôs móveis estão sendo construídos para a atuação em locais de difícil acesso ao homem, como por exemplo, o fundo do mar. Busca-se o desenvolvimento de veículos subaquáticos, que dotados de sensores realizem tarefas de inspeção e manipulação, explorando ambientes submersos desconhecidos não estruturados. Neste contexto, este trabalho tem como obje-tivo o estudo de técnicas capazes de propiciar autonomia a robôs de inspeção subaquática, no que tange a localização, navegação e capacidade de mapeamento destes. Supondo a utilização de câmeras de inspeção, esta proposta divide-se em duas etapas: a utiliza-ção de visão computacional através do algoritmo SIFT para extrautiliza-ção de características de seqüências de imagens, e o desenvolvimento de mapas topológicos para localização e navegação usando como principal algoritmo as redes neurais de Kohonen. A integração de tais sistemas propiciará a localização do robô e o mapeamento do ambiente, simultane-amente, esta técnica é denominada SLAM. Tendo como restrições a execução em tempo online e o custo envolvido. Um conjunto de testes com um robô real foi realizado. Os resultados obtidos demonstraram que a proposta é precisa e robusta a diversas condições de fundo, iluminação e ruído, conduzindo a uma promissora e original técnica de SLAM.

(16)

Lately, the technological progress in software, hardware and instrumentation have been allowing the use of robotics systems to different types of applications. Mobile robots are being built for the performance in places of difficult access to the man, as for example, the bottom of the sea. Seeking the development of underwater vehicles that endowed with sensor they accomplish inspection tasks and manipulation, exploring unknown and not structured submerged environment. In this context, this work has as objective the study of techniques capable to propitiate autonomy to underwater robots for inspection, with respect to localization, navigation and mapping capacity. Supposing the use of inspection cameras, this proposal becomes separated in two stages: the use of computer vision through the algorithm SIFT to extract the characteristics in image sequences, and the development of topological maps to localization and navigation using as main algorithm the Kohonen Neural Network. The integration of such systems will propitiate simultaneous localization and mapping of the environment, this technique is denominated SLAM. It has as restrictions the execution in online time and cost involved. A test set with one real robot was accomplished. The obtained results demonstrated that the proposal is accuracy and robust to several bottom conditions, illumination and noise, leading to a promissory and original SLAM technical.

(17)

Capítulo 1

Introdução

1.1

Motivação

Robôs móveis são cada vez mais usados em áreas de difícil acesso para a exploração humana [Fleischer, 2000]. Dotá-los de características inteligentes e fornecer um maior grau de autonomia têm sido objetivos dos pesquisadores que, para isso, podem se valer do uso da visão computacional como meio de percepção do ambiente para a tomada de decisões dos robôs. Desta maneira, o propósito do presente trabalho é preencher uma lacuna de tecnologias para exploração remota de ambientes não estruturados desconhecidos.

Uma área estratégica em crescente desenvolvimento de tecnologias é a subaquática, uma vez que cerca de 70% da superfície da terra e, aproximadamente, 97% do habitat de vida encontram-se nos oceanos. Além disso, o ambiente marinho é rico em metais e pedras preciosas, como o ouro e o diamante, possuindo ainda grandes reservas de petróleo. Assim, a exploração desse ambiente torna-se extremamente relevante e atra-tiva [McFarlane, 2000].

Nos últimos anos, os veículos subaquáticos não tripulados (UUV) estão sendo muito utilizados para tarefas de exploração e inspeção. Dentre os tipos de UUV, os mais utiliza-dos são os chamautiliza-dos veículos operautiliza-dos remotamente (ROV), onde um operador remoto controla o veículo a partir de um cabo, também conhecido como cordão umbilical. Este cabo pode ser afetado por correntes subaquáticas, dificultado o controle do movimento do robô.

Outro tipo de UUV que vem sendo muito pesquisado, é o chamado veículo autônomo

(18)

subaquático (AUV). Este tipo de robô toma suas próprias decisões a partir da leitura de seus sensores e da arquitetura de controle, sem a necessidade de um operador humano. Tais robôs podem ser utilizados para diversos tipos de aplicações, como inspeção de estru-turas submersas, exploração do fundo do oceano, medida de colunas de água e inspeção de cabos e canos [Garcia, 2001].

A robótica subaquática tem recebido grande aporte de recursos nos últimos tem-pos advindos, principalmente, da Marinha dos Estados Unidos (US NAVY). Porém a pesquisa nesta área não se restringe a aplicações militares. Nos últimos 30 anos, a pesquisa científica foi intensa na área, além de diversas aplicações comerciais de sucesso [Wernli, 2000][Wernli, 2002].

Independentemente da missão do Unmanned Underwater Vehicle (UUV), é importante que o veículo incorpore a capacidade de posicionar-se e localizar-se em um ambiente sub-aquático. Uma vez resolvido este problema, o veículo pode navegar através de algoritmos de planificação, os quais fornecem posições alvo para o robô.

Em muitas atividades, um controle embarcado no robô, facilita muito o trabalho do operador humano. Por exemplo, se o objetivo é manter o robô parado acima de uma determinada estrutura, pode-se ter um controle, de forma que o operador apenas se preocupe com as atividades mais complexas, e não com as variações da corrente de água ou com o empuxo.

Atualmente, existem diversos dispositivos utilizados para o auxílio à localiza-ção do robô, tais como Doppler Velocity Log (DVL), Acoustic Transponder Net-works (ATN), Inertial Navigation Systems (INS) e Global Positioning System (GPS) [Whitcomb et al., 1999] [Garcia, 2001]. Entretanto, na maioria das aplicações envolvendo robótica subaquática de inspeção, uma câmera fixada ao robô é utilizada por um operador humano, como realimentação visual para a operação do UUV. Assim torna-se conveniente o uso de tal informação visual no auxílio ao posicionamento, mapeamento e navegação autônoma do robô no ambiente.

Assim, frente ao desafio não trivial associado a localização de robôs subaquáticos e e suas tarefas de navegação e mapeamento de ambiente, o uso de uma câmera de vídeo a bordo do robô e uma unidade central de processamento, a bordo ou remota, surge como uma solução criativa, de baixo custo, de boa performance e robusta.

(19)

1.2

Objetivos

O principal objetivo deste trabalho é o desenvolvimento de um sistema visual para loca-lização e mapeamento simultâneo (SLAM) em robôs subaquáticos, auxiliando de forma online a localização e a navegação autônomas destes robôs1.

De forma mais precisa, o presente estudo objetiva fornecer uma arquitetura para SLAM baseada em informações visuais. Tal arquitetura será composta de dois módulos princi-pais, onde se focaliza nos seguintes objetivos:

• um módulo de visão: estudar, desenvolver e implementar um sistema visual para extração de informações representativas e relevantes do ambiente navegado pelo robô. Tais informações, servirão como marcos naturais a serem mapeados, além de servirem como fonte de informação do deslocamento do robô.

• um módulo mapeamento topológico: estudar desenvolver e implementar um sistema de mapeamento topológico, tornando possível a navegação atendendo às necessi-dades de exploração de determinados locais e também a correção de erros cumula-tivos de posicionamento devido à capacidade de detecção de cruzamentos.

A arquitetura será testada, analisada e validada em simulações, bem como na plataforma ROV-FURG, contribuindo para a consolidação da área de robótica sub-aquática na FURG.

Cabe salientar que, embora o foco deste trabalho seja a robótica subaquática, a pro-posta aqui apresentada não fica restrita a tal domínio de aplicação, ou seja, quaisquer veículos dotados de câmeras acopladas podem utilizar a arquitetura desenvolvida para o mapeamento, auxílio à sua própria localização e navegação autônoma. O restante do tra-balho fará referência principalmente à robótica subaquática, mas que pode ser estendida para outras áreas.

1Na forma online, diferentemente da forma em tempo real, considera-se que à medida que o veículo

explora certo ambiente, a informação é utilizada pelo sistema quando o mesmo está disponível e não quando a informação está, situação conhecida como real time

(20)

1.3

Estrutura do Trabalho

Os capítulos seguintes mostram como foi desenvolvida a arquitetura proposta, focalizando-se na estratégia para determinação da localização do robô e para o mapeamento do am-biente explorado.

O trabalho está dividido em seis capítulos. O Capítulo 1 apresentou uma introdução, com a motivação para o desenvolvimento deste trabalho e seus objetivos. O Capítulo 2 apresenta uma revisão bibliográfica sobre as técnicas de processamento de imagens e visão computacional para a localização de robôs, fazendo um comparativo entre os métodos mais importantes. O Capítulo 3 é responsável por mostrar as técnicas de mapeamento, dando um enfoque ao mapeamento topológico, o qual é a técnica utilizada nesse trabalho. O Capítulo 4 propõe um sistema para SLAM em robôs subaquático, apresentando em deta-lhes o desenvolvimento da metodologia. Uma série de resultados utilizando a metodologia proposta, envolvendo cada parte do sistema são mostrados no Capítulo 5. Finalmente, o Capítulo 6 apresenta a conclusão sobre o trabalho realizado, mostrando vantagens e desvantagens do sistema, assim como dificuldades encontradas e perspectivas futuras.

(21)

Capítulo 2

Sistemas Visuais para Localização

Este capítulo faz uma revisão bibliográfica sobre o processamento de imagens e a visão computacional, incluindo os métodos de calibração da câmera, os métodos de estima-tiva de movimentos utilizados na localização robótica, além de métodos de detecção de características, iniciando pelo detector de Harris, até métodos complexos como o SIFT. Também é realizado um comparativo entre estes métodos.

2.1

Introdução

Uma revisão sobre alguns métodos para a estimativa de localização, a partir de imagens captadas por uma câmera de vídeo, faz-se necessário. Porém, esta revisão é baseada na aplicação a robótica subaquática, descrevendo suas características relevantes.

É necessário, para o entendimento do sistema, um detalhamento dos métodos utiliza-dos desde a fase de aquisição das imagens, com a correção das distorções geradas pelo sistema ótico da câmera, até a correlação de pontos de interesse nas imagens, chegando ao resultado final, o deslocamento do robô.

Os sistemas de visão capturam imagens a partir de câmeras fixadas nos robôs. Em geral, tais câmeras são orientadas para baixo (down looking cameras), cobrindo uma pequena área do fundo do oceano, como mostra a figura 2.1 [Garcia, 2001].

Algumas restrições precisam ser feitas para a real utilização do trabalho proposto em ambiente subaquático, sendo assim, essas restrições serão válidas para todo trabalho. Os algoritmos detalhados a seguir, só são válidos, se as suposições seguintes forem válidas:

(22)

Figura 2.1: Estrutura do sistema de visão utilizando veículos subaquáticos.

• O veículo subaquático leva uma câmera de vídeo orientada para o fundo do oceano.

• A turbidez da água permite uma visibilidade aceitável.

• O veículo, ou a câmera presa ao mesmo, deve estar a uma distância do chão de oceano, de forma que permita uma visibilidade aceitável. Essa distância também não pode variar excessivamente de uma imagem para outro.

• É assumido que o terreno subaquático é plano. Esta hipótese pode ser relaxada caso a superfície do ambiente subaquático tenha desníveis desprezíveis com relação à distância da câmera ao solo.

• A condição de iluminação deve ser adequada para se obter imagens do fundo do oceano.

• A imagem precisa ter características distintivas mínimas, pois não se utilizam marcos artificiais, assim é preciso existir marcos naturais para serem detectados.

• O ambiente a ser explorado não pode ser excessivamente dinâmico, fazendo com que não seja possível inferir movimento entre imagens.

(23)

2.2

Imagens Subaquáticas

A aplicação de técnicas de visão de computador para imagens subaquáticas lida com alguns problemas adicionais a visão computacional tradicional. Eles surgem, principal-mente, devido às propriedades de transmissão do meio [Garcia, 2001]. As propriedades ópticas dos corpos dentro da água dependem da interação entre a luz e o ambiente aquático. Esta interação inclui dois processos basicamente: absorção e espalhamento [Negahdaripour, 1994].

• Absorção - É o processo no qual energia da luz é convertida em uma forma difer-ente (principalmdifer-ente calor). Conseqüdifer-entemdifer-ente, a luz desaparece do processo de formação da imagem.

• Espalhamento - É produzido por mudança de direção dos fótons, principalmente devido ao tamanho variável das partículas que formam a água. Este fenômeno é quase independente do comprimento de onda. O espalhamento pode ser dividido em retro-dissipação, ou backscatter, e pró-espalhamento, ou forward scatter.

– Backscatter aparece quando a luz é refletida na direção da câmera.

– Forward scatter é produzido quando a luz é refletida pelo objeto trocando, levemente, sua direção. Este efeito produz um blurring,ou borramento, na imagem do objeto.

A figura 2.2 ilustra os problemas citados anteriormente. A retro-dissipação é reduzida, normalmente, aumentando-se a distância entre a fonte de luz e a câmera de vídeo(l). Já o pró-espalhamento pode ser atenuado diminuindo a distância da câmera ao objeto (Z).

Além das questões associadas à iluminação, o processamento de imagens subaquáticas deve tratar ainda outros fenômenos, um exemplo importante é a neve marinha, presente freqüentemente em imagens subaquáticas, devido a partículas macroscópicas presentes na água, fazendo com que a análise de tais imagens seja dificultada [Garcia, 2001].

Outro fator a ser considerado é a falta de características em imagens de ambientes sub-aquáticos. As imagens, muitas vezes, não têm características relevantes, ou seja, pontos, linhas ou contornos, que são comumente explorados pelos sistemas de visão convencional

(24)

Figura 2.2: Problemas de iluminação em ambiente subaquático.

para tracking, posicionamento, navegação, etc. Existem duas principais razões para essa ausência de característica. A primeira, é que o fundo do mar não tem contornos bem definidos naturalmente, embora possam existir objetos como canos e cabos, esses per-dem as características devido a proliferação de vida marinha. A segunda razão é que a luz refletida nos objetos sofre com o pró-espalhamento, que causa blurring na imagem [Garcia, 2001].

Outros problemas existentes são o baixo contraste e a iluminação não-uniforme das imagens subaquáticas, devido à absorção da luz e a iluminação artificial, comumente utilizada [Garcia, 2001].

Existem ainda, distorções na imagem produzidas devida a difração dos raio de luz na água e, novamente, quando o raio ultrapassa a lente e entra em contato com o ar, presente dentro da câmera entre a lente e o sensor, fazendo assim com a distância focal efetiva diminua [Garcia, 2001].

(25)

Porém, apesar dos diversos problemas citados, as imagens subaquáticas apresentam uma vantagem importante em relação ao ambiente terrestre, a característica estática do fundo do mar [Negahdaripour and Khamene, 2000].

2.3

Pré Processamento

O pré-processamento da imagem é um passo importante para as demais fases do sistema visual. É neste ponto que são corrigidas deformações geométricas, causadas por imper-feições no sistema óptico. Várias técnicas para a correção do problema são consideradas na literatura e usadas em alguns dos sistemas de visão para o mapeamento visual já desenvolvidos [Xu and Negahdaripour, 1997] [Garcia et al., 2001].

Para a correção das distorções geradas pelo sistema visual é necessária uma calibração da câmera, ou seja, um levantamento dos parâmetros intrínsecos e extrínsecos da mesma, levando assim aos parâmetros das distorções geradas pelo sistema óptico. Porém, para a realização da calibração da câmera, o entendimento do modelo de câmera se faz necessário, esse será descrito na seção 2.3.1.

A distorção causada pelas lentes da câmera pode ser modelada por uma com-ponente radial e tangencial. Como a componente radial causa a maior dis-torção, a maioria dos trabalhos desenvolvidos corrigem apenas este problema [Gracias and Santos-Victor, 1998][Garcia, 2001].

2.3.1

Modelo da Câmera

O modelo de câmera mais utilizado é o pinhole [Faugeras, 1993]. Segundo este modelo, um raio de luz parte do ponto M no espaço e atravessa o orifício C, também conhecido como centro da câmera, incidindo no plano imagem em um ponto m, como mostra a figura 2.3. Enquanto na figura 2.4, são mostrados dois parâmetros relevantes de uma câmera, a distância focal f , esta a distância do plano imagem ao centro de câmera, e o ponto m0, conhecido como centro da imagem. A partir destes pontos tem-se dois sistemas

de coordenadas, o primeiro centrado em C com o eixo da cota, eixo Z, passando pelo ponto m0, este conhecido como sistema de coordenadas da câmera. O segundo sistema de

(26)

Figura 2.3: Representação de uma câmera pinhole.

Figura 2.4: Modelo de câmera pinhole.

A relação entre o ponto M no espaço, no sistema de coordenadas da câmera, e sua projeção m, no sistema de coordenadas da imagem, é obtida por semelhança de triângulos. A partir daí, tem-se que u = f X/Z e v = f Y /Z, logo o ponto m pode ser representado como mostra a equação 2.1.

m =   f X/Z f Y /Z   (2.1)

Sendo o ponto M = (X, Y, Z, 1), em coordenadas homogêneas, tem-se a relação entre o ponto m através da matriz mostrada na equação 2.2, que pode ser reescrita como mostra a equação 2.3. O símbolow é utilizado para explicitar que os dois lados de uma igualdade diferem por uma constante desconhecida e não-nula, ou seja, trata-se de uma equação homogênea.

(27)

     f X f Y Z      =      f 0 0 0 0 f 0 0 0 0 1 0      ∗         X Y Z 1         (2.2) m w A[I|0]M (2.3)

A matriz A mostrada na equação 2.3 é conhecida como matriz de parâmetros in-trínsecos da câmera, esta pode ser estendida, chegando a uma forma mais geral como mostra a equação 2.4. Algumas considerações são necessárias sobre a matriz A. Primeira-mente, considera-se o ponto central m0, com coordenadas (u0, v0). Não se pode considerar

o valor de f igual para a altura e a largura, pois os sensores utilizados pelas câmeras não formam um quadrado perfeito. Dessa forma, α é diferente de β para levar em conside-ração essa diferença. Por fim, considera-se que o ângulo formado entre os eixos pode ser diferente de 90o, logo isso causa uma distorção representada por γ.

A =      α γ u0 0 β v0 0 0 1      (2.4) m w Ah R t i M (2.5)

Um fator a ser considerado é a estimação do ponto m0, este muito sensível a

ruí-dos. Alguns autores assumem que m0 localiza-se exatamente no centro da imagem

[Zhang et al., 1996].

As coordenadas do ponto M podem ser fornecidas em relação a outro referencial, diferente do sistema de coordenadas da câmera. Quando isto ocorre, o referencial em questão é conhecido por sistema de coordenadas do mundo. Assim a equação 2.3 deve ser reescrita como mostra a equação 2.5, sendo

h R t

i

conhecido como parâmetros extrínsecos da câmera, que mapeia a posição de um ponto no sistema de coordenadas do mundo no sistema de coordenadas da câmera, a matriz R, de dimensões 3 × 3, representa a rotação da câmera em relação ao sistema de coordenadas do mundo e t um vetor que equivale à translação do centro da câmera.

(28)

2.3.2

Calibração da Câmera e Correção das Distorções

Os métodos de calibração da câmera consistem em determinar as características geométri-cas e óptigeométri-cas internas da câmera assim como sua orientação e posição em relação a certo sistema de coordenadas do mundo. Neste processo de calibração, utiliza-se a câmera para capturar imagens de um objeto de dimensões e forma bem conhecidos chamado de gabarito de calibração. Em seguida, utiliza-se a relação entre pontos do gabarito e suas respectivas projeções no plano de imagem para determinar os parâmetros da câmera.

Inicialmente, os algoritmos de calibração utilizavam apenas gabaritos 3D [Tsai, 1987]. Geralmente, tais gabaritos são compostos por dois planos ortogonais com um padrão bem conhecido (composto por quadrados ou círculos) em suas faces. Com o pas-sar dos anos, foram propostos novos métodos de calibração que utilizam gabaritos 2D [Agrawal and Davis, 2003] e [Zhang, 2000], ou seja, um único plano com um padrão co-nhecido em sua faces.

Os parâmetros podem ser classificados em dois grupos: extrínsecos e intrínsecos.

• Parâmetros Extrínsecos: fornecem informações da posição e orientação da câmera em relação a certo sistema de coordenadas global (ou do mundo);

• Parâmetros Intrínsecos: fornecem características ópticas e geométricas internas da câmera (distância focal, fatores de escala, posição em pixels da projeção ortogonal do centro óptico no plano de projeção e as distorções proporcionadas pelas lentes).

Existe uma transformação que relaciona os pontos 3D com os respectivos 2D, exceto por distorções e erros mínimos. Equacionando estas relações com o uso de equações lineares na variável de posição de um objeto, os coeficientes destas equações serão exata-mente funções dos dados que a calibração determina. O processo de calibração de câmera pode se resumir a encontrar tais valores. Esta transformação é apresentada na equação 2.5.

A resolução desse sistema de equações, conhecido um conjunto de pontos é o problema central da calibração. Um processo padrão de calibração de câmera, pode ser estruturado da seguinte forma:

(29)

• Resolução do Sistema de Equações Lineares;

• Otimização dos dados obtidos, utilizando o resultado da etapa anterior como solução inicial.

A etapa de aquisição de dados iniciais está relacionada com o conjunto de dados de entrada, ou seja, com os gabaritos de calibração. Usualmente o conjunto de pontos 3D correspondem a pontos de um padrão de calibração. Diversos métodos utilizam padrões cujas coordenadas de seus pontos sejam relativamente fáceis de encontrar. O conjunto de pontos 2D é extraído de uma imagem do padrão adquirida pelo equipamento a ser calibrado.

A etapa de resolução do sistema de equações lineares consiste em definir uma heurís-tica para resolver o problema, ou seja, define-se o método de calibração que irá ser utilizado [Zhang, 2000]. A etapa de otimização consiste em definir o método que será usado para otimizar os resultados obtidos durante a resolução do sistema. O método de otimização mais utilizado é o algoritmo de Levenberg-Marquardt [Ranganathan, 2004] [Marquardt, 1963] que provê uma solução numérica para o problema de minimização de uma função de reprojeção dos pontos, esta geralmente não linear.

Para a obtenção dos parâmetros intrínsecos da câmera, um método flexível, robusto e de baixo custo computacional foi proposto por Zhang. Este método resolve o sistema de equações lineares a partir da equação 2.5, porém em um espaço 2D como mostra a equação 2.6, tendo m = (f X/Z, f Y /Z, 1)T e M = (X, Y, 1), assumindo Z = 0 [Zhang, 2000]. Ele

utiliza-se de um padrão plano, obtido em no mínimo duas posições diferentes, sem a necessidade de se ter um conhecimento sobre o deslocamento realizado pela câmera entre uma e outra observação, como mostra a figura 2.5. O padrão deve estar sobre uma superfície plana. C · m = Ah r1 r2 t i M (2.6) Considerando-se a homografia H = h h1 h2 h3 i

na equação 2.7, que relaciona o ponto no sistema de coordenada da câmera com um ponto no sistema de coordenada da imagem, pode-se obter as equações 2.8 e 2.9, pois r1 e r2 são ortogonais.

(30)

Figura 2.5: Exemplo de padrão de calibração sobre uma superfície plana, proposto por Zhang. H = λ ∗ Ah r1 r2 t i (2.7) h1A−TA−1h2 = 0 (2.8) h1A−TA−1h1 = h2A−TA−1h2 (2.9)

Seja B = A−TA−1, representada pelo vetor b = h B11 B12 B22 B12 B23 B33 i , hi = h hi1 hi2 hi3 iT , a i-nésima coluna de H, e vij = h hi1hj1 hi1hj2+ hi2hj1 hi2hj2 hi3hj1+ hi1hj3 hi3hj2+ hi2hj3 hi3hj3 i , determina-se a equação 2.10. hiTBhj = vTijb (2.10)

Desta forma, as equações 2.8 e 2.9 podem ser reescritas, conforme mostra a equação 2.11.   v12T (v11− v22)T  b = 0 (2.11)

Observando n imagens do padrão de calibração, são obtidas n equações iguais a 2.11. Assim, a equação 2.12 pode ser determinada, com V sendo uma matriz do tipo 2n x 6.

(31)

Se n ≥ 3, b pode ser calculado unicamente, exceto por um fator de escala. Caso n = 2, γ pode ser definindo como zero, gerando mais uma equação, ou seja, h

0 1 0 0 0 0 i

b = 0, sendo possível, então, solucionar o sistema apresentado na equação 2.11.

Para calcular a resposta do sistema da equação 2.11, a técnica de decomposição em valores singulares (SVD) [Stewart, 1992] da matriz VTV pode ser utilizada, a resposta será o vetor coluna direito associado com o menor valor singular. Conhecendo o valor de b, pode-se ainda calcular a matriz A de parâmetros intrínsecos, como mostra a equação 2.13 [Zhang, 2000]. V b = 0 (2.12) v0 = B12B13− B11B23 B11B22− B122 λ = B33− [B13 2+ v 0(B12B13− B11B23)] B11 α = r λ B11 β = s λB11 B11B22− B122 γ = −B12α 2β λ u0 = γv0 β − B13α2 λ (2.13)

A partir dessas equações, calcula-se também, os parâmetros extrínsecos da câmera, através da equação 2.14, para cada uma das imagens do padrão capturadas, considerando R = h r1 r2 r3 i e t. r1 = λA−1h1 r2 = λA−1h2 r3 = r1× r2 t = λA−1h3 (2.14)

(32)

Após a definição dos parâmetros intrínsecos da câmera, pode-se considerar a distorção causada pela lente, pois ela não foi considerada até o momento. Visto que as lentes provocam distorções significativas no sistema óptico, Zhang sugere que a distorção radial representa maior distorção em relação à distorção tangencial, e que com os dois primeiros termos da série que define a distorção, conforme mostra equação 2.15, se obtém ótimos re-sultados, já que modelos mais complexos, ou seja com mais termos, não fornecem melhores resultados além de causar instabilidade numérica [Tsai, 1987] [Wei and Ma, 1994].

Considerando m um ponto da imagem ideal, sem distorção, e o ponto m0 um ponto da imagem com distorção, ou seja, o ponto realmente observado. Considerando, também, que esses pontos são projeções do ponto M no sistema de coordenado do mundo, de acordo com o modelo de câmera citado na seção 2.3.1. Assim, os pontos M , em centímetros e sem distorção, e o ponto M0, com distorção e também em centímetro, podem ser representados pela equação 2.15, onde k1 e k2 são os coeficientes de distorção radial.

Mx 0 = Mx+ Mx[k1(Mx2+ My2) + k2(Mx2+ My2)2) My 0 = My+ My[k1(Mx2+ My2) + k2(Mx2+ My2)2) (2.15)

Considerando que o centro da distorção é o mesmo centro da imagem (u0, v0), então

a equação 2.16 fornece o valor de m0, com γ = 0.

mx 0 = u0+ αMx 0 + γMy 0 mx = u0+ αMx+ γMy my 0 = v0+ βMy 0 my = v0+ βMy mx 0 = mx+ mx− u0[k1(mx2+ my2) + k2(mx2+ my2)2) my 0 = my+ my − v0[k1(mx2 + my2) + k2(mx2+ my2)2) (2.16)

Zhang sugere a estimação, para obtenção dos parâmetros k1 e k2, da matriz de

pa-râmetros intrínsecos A, desconsiderando os efeitos da distorção radial. A partir dessa estimativa inicial, pode-se calcular o valor dos parâmetros em um processo iterativo, porém segundo Zhang este processo é lento, então propõe-se utilizar uma otimização da

(33)

função, mostrada na equação 2.17, onde f (A, k1, k2, Rj, tj, Mij) é a projeção do i-ésimo

ponto na j-ésima imagem de acordo com a equação 2.6, sendo Mij o ponto na coordenada

de mundo em centímetros e mij o ponto na coordenada da imagem em pixeis, além de Rj

e tj os parâmetros extrínsecos da j-ésima imagem [Zhang, 2000].

n X i=1 m X j=1 ||mij − f (A, k1, k2, Rj, tj, Mij)||2 (2.17)

Xu propõe que quando se trabalha em ambientes subaquáticos, têm-se a adição de mais uma distorção causada pela difração na água e dentro da própria câmera. As-sim, após ter-se feito a correção da distorção radial, se aplica a equação 2.18. Sendo m = (mx, my), o ponto já sem distorção radial, e m0 o novo ponto, sem distorção

adi-cional. O valor de R = pmx2+ my2 e R0 definido pela equação 2.19 com f sendo a

distância focal. Para maior eficiência desse método, Xu utiliza uma LUT computada offline [Xu and Negahdaripour, 1997].

m0x = mx+ R0 R (mx− u0) m0y = my+ R0 R (my − v0) (2.18)

R0 = f tan (sin−1(1.33 ∗ sin(tan−1

R

f))) (2.19) A figura 2.6 mostra o resultado da correção da distorção radial e da difração pro-posta por Xu, com a listra branca apenas para ilustrar o efeito causado pelas distorções [Garcia, 2001].

(34)

2.4

Transformações Projetivas e Modelo de Movimento

O movimento de uma câmera de vídeo é, basicamente, o movimento de um corpo rígido, ou seja, ela realiza translação e rotação. Considerando que a ela visualiza um mundo em 2D, sendo possível movimento de translação em relação aos eixos cartesianos X e Y e uma rotação em torno do eixo Z, porém um robô subaquático pode executar em 3D.

Tal robô pode realizar, também, translação no eixo Z e rotação em torno do eixo X e do eixo Y, embora a maioria dos trabalhos considerem a rotação em torno de X e de Y como estáveis, ou seja, o robô pode executar pequenas rotações em torno desses eixos e retornam a posição original devido as forças de empuxo e gravidade, logo estas não são controladas, assim é necessário um estudo das transformações projetivas possíveis de serem visualizadas pela câmera e os movimentos possíveis de serem executados.

A geometria projetiva modela a distorção geométrica que surge quando o plano é capturado por uma câmera em perspectiva. Ela modela esta imagem capturada e fornece uma representação matemática em termos de equações lineares.

O vetor (x1, x2, ..., xn, xn+1)T ∈ Rn+1 é um conjunto de pontos de tamanho n + 1

chamado de Espaço de Projeção Pn, se e somente se, pelo menos uma das n+1 coordenadas

do vetor é diferente de zero e dois vetores (x1, x2, ..., xn, xn+1)T e (ex1, ex2, ..., exn, exn+1)T

representam o mesmo ponto para qualquer e 6= 0 [Gracias and Santos-Victor, 2000]. Uma transformação no espaço projetivo Pn é conhecida como colineação ou trans-formação projetiva. Essa transtrans-formação é importante para a visão computacional por representar duas vistas de cenas no espaço 3D como uma transformação projetiva em P2, conhecida como homografia ou transformação projetiva 2D, definida através de uma

matriz H [Szeliski, 1994].

Esta transformação necessita de pontos em coordenadas homogêneas, ou seja, um ponto arbitrário (x1, x2, x3)T ∈ R3 representa um ponto (x1/x3, x2/x3)T ∈ R2, definido a

partir de um fator de escala. A figura 2.7 ilustra esta transformação [Neves, 2006]. A transformação projetiva modela diversos tipos de movimentos, como ilustra a figura 2.8. Sendo o movimento de translação e rotação, conhecido como modelo translacional ou rígido, o modelo um pouco mais complexo, que inclui a escala é chamado como modelo de similaridade. O modelo com movimentos de rotação, translação, escala e cisalhamento é

(35)

conhecido como modelo afim e o último modelo, envolvendo todos os tipos distorções é conhecido como modelo projetivo.

Figura 2.7: Transformação projetiva entre duas diferentes vistas de uma mesma cena.

2.5

Estimativa de Movimento

Estimar o movimento da câmera é o processo de detectar o movimento dos pixeis da imagem e, a partir de uma generalização, determinar o movimento da câmera. Um robô subaquático típico trabalhando em um espaço 3D, tem seis graus de liberdade, as três coordenadas de posição X, Y e Z, além das três orientações dependes dos movimentos do veículo de rolamento, arfagem e guinada (roll, pitch e yaw ), embora maioria dos trabalhos considerem rolamento e arfagem como medidas estáveis e sem necessidade de controle [Garcia, 2001], fazendo assim com que o veículo tenha quatro graus de liberdade. Essa suposição é aceitável quando o centro de massa do submergível estiver abaixo do centro de flutuabilidade.

Existem duas diferentes abordagens na seleção do sistema de coordenadas descrito pelo veículo, o primeiro assume que o sistema de coordenadas que descreve o movimento do veículo, se encontra sobreposto ao sistema de coordenado do robô, no centro de massa,

(36)

Figura 2.8: Modelos de movimentos.

como mostra a figura 2.9, à esquerda. Outro modo de descrever o sistema de coordenada é centralizando no plano da imagem capturada pela câmera, como mostra a figura 4.3 à direita, este último mais utilizando para localização robótica a partir de imagens.

As técnicas de detecção do movimento a partir de imagens podem ser classificadas de acordo com diversos parâmetros, uma classificação muito utilizada é a divisão das técnicas segundo seu domínio de trabalho, ou seja, técnicas no domínio espacial e técnicas no domínio da freqüência [Garcia, 2001].

As técnicas no domínio da freqüência são pouco utilizadas, embora existam alguns casos de uso em imagens subaquáticas [Rzhanov et al., 2000]. Estas técnicas obtém me-lhores resultados que técnicas baseadas no domínio espacial, tanto em imagens sintéticas quanto em imagens reais, porém sem vantagens significativas [Olmos et al., 2000].

Técnicas no domínio da espacial podem ser divididas em dois tipos, as baseadas em características (feature-based ) e não-baseadas em características(featureless). As técnicas baseadas em características, partem do principio que há correspondência de características

(37)

Figura 2.9: Veículo subaquático com sistema de coordenadas no robô, à esquerda, e na câmera, à direita.

entre pares de imagens pode ser encontradas, e a partir delas, o movimento entre as duas imagens pode ser obtido. Por outro lado, a técnica featureless tenta encontrar a melhor transformação entre duas imagens sem nenhuma correspondência.

2.5.1

Técnicas Não Baseadas em Características

Esse tipo de técnica não necessita encontrar correspondência entre características de ima-gens. Duas abordagens fazem parte deste grupo de técnicas:

• Técnicas de Minimização Global - Este tipo de técnica busca uma minimização global da matriz de transformação geométrica;

• Método Direto - Este método determina diretamente o movimento 3D, sem necessidade de estimação do movimento 2D, ele é baseado na equação do fluxo ótico.

As técnicas de minimização global têm como objetivo minimizar a soma dos quadrados dos erros de intensidade entre todos pares de pixeis de duas imagens consecutivas, de acordo com a equação 2.20, sendo um ponto na imagem definido no intervalo de tempo k com coordenadas x e y como Ik(xik, yik) e no intervalo de tempo k+1 como Ik+1(xik+1, yik).

 =X

i

[Ik+1(xik+1, yik+1) − Ik(xik, yik)]2 (2.20)

Através de técnicas de minimização não-linear, esse método chega a bons resultados em imagens subaquáticas, visto que não existe a necessidade de casamento de

(38)

carac-terística, muito propensa a erros. Porém esse método precisa de uma boa inicializa-ção para convergir para uma soluinicializa-ção, embora sem a certeza da soluinicializa-ção fornecida ser a solução ótima, pois esta é muito sensível a mínimos locais. Mesmo assim, essa é a téc-nica featureless mais comum de ser encontrada em aplicações para ambiente subaquático [Pires and Aguiar, 2005].

O método direto para estimação de movimento baseia-se no cálculo de gradientes espaços-temporais da imagem (Iu, Iv, It) = (∂I∂x,∂I∂y,∂I∂t), permitindo obter tais medidas

diretamente. Negahdaripour et al. deriva essa solução através da aplicação do método Brightness Constancy Model, o qual considera que um ponto conserva seu brilho ao longo do tempo, ou seja, entre imagens consecutivas [Negahdaripour et al., 1999].

O método direto apresenta algumas vantagens sobre o método de fluxo óptico ou cor-respondência de características, como um custo computacional inferior, precisão mais alta e a possibilidade de levar em conta variações radiométricas, podendo ser implementado eficientemente com desempenho em tempo real[Negahdaripour et al., 1999].

2.5.2

Técnicas Baseadas em Características

Este grupo de técnicas trabalha com a idéia de encontrar características iguais entre ima-gens, assim estas características podem ser correlacionadas, permitindo definir o movi-mento relativo entre as imagens.

Estes sistemas buscam, geralmente, pontos que representam extremidades de objetos na imagem. Outras características também podem ser buscadas, como linhas e con-tornos, porém em ambiente subaquático tais características são dificilmente encontradas, tornando inviável seu uso.

Para a determinação movimento entre imagens, é necessário conhecer extremidades, devido ao problema de abertura [Shi and Tomasi, 1994], no qual somente movimentos ortogonais à arestas podem ser determinado. Desta forma, é preciso restringir a busca por pontos que contenham uma janela em torno do ponto suficientemente rica em textura, tornando o rastreamento mais robusto às variações causadas por mudanças de iluminação e pontos de vista, estes pontos também podem ser chamados de pontos característicos ou pontos de interesse. A figura 2.10 ilustra o problema.

(39)

de-Figura 2.10: Problema da abertura.

tectando quinas ou fragmentos altamente texturados na imagem Ik no tempo k e na

imagem Ik+1 no tempo k + 1, ou minimizando funções custo, considerando em ambos os

casos que o brilho da cena é mantido constante para imagens consecutivas. Geralmente, é utilizado um filtro passa-baixa antes da correlação, devido ao fato da correlação ser muito suscetível a ruído [Giachetti, 2000].

Um dos primeiros sistemas de localização e mapeamento subaquático foi desenvolvido pelos pesquisadores do MBARI/Stanford [Marks et al., 1995] [Fleischer et al., 1996] [Fleischer, 2000]. No qual localizam características com alto gradiente (contornos) através do uso do operador LoG. Este método propicia alguma robustez com respeito à iluminação não-uniforme, por exemplo.

Outros métodos como o detector de Harris, o método KLT e o SIFT serão descritos com maiores detalhes nas seções 2.5.2.1, 2.5.2.2 e 2.5.2.3, respectivamente.

(40)

2.5.2.1 Detector de Harris

O detector de extremidades de Harris-Stephens [Harris and Stephens, 1988], também co-nhecido como detector de Plessey, foi desenvolvido com a finalidade ser um passo de baixo nível na tarefa de construir interpretações do ambiente de um robô baseado em imagens. Este método têm como intenção inicial a localização de quinas e bordas de objetos em uma imagem, para posterior correlação.

Ele foi desenvolvido buscando resolver as limitações do método de Moravec [Moravec, 1977], tendo como resultado um detector mais eficiente em termos de repetibi-lidade e detecção de pontos, ao custo de um incremento de custo computacional. Embora com custo mais elevado, esse método tornou-se muito utilizado na prática, visto que o poder computacional disponível hoje, tornou desprezível o custo do método.

O detector de Plessey é baseado na função de auto-correlação local de um ponto na ima-gem, onde esta função mede as mudanças locais de gradiente deste ponto. Considerando I(x, y), como sendo uma função espacial de coordenadas x e y, considerando I ∈ R1 para

imagens preto e branco e I ∈ R3 para imagens coloridas. A equação 2.21 define a mu-dança de intensidade da imagem para um deslocamento definido por u e v, no ponto (x, y), também conhecida por função de auto-correlação para uma imagem preto e branco. Esta função pode ser estendida para imagens coloridas [Harris and Stephens, 1988]. A função janela w(x, y) pode ser definida como mostra a figura 2.11, por uma função degrau ou por uma função gaussiana, por exemplo.

E(u, v) =X

x,y

w(x, y)[I(x + u, y + v) − I(x, y)]2 (2.21)

Para pequenos valores de u e v, é possível realizar uma aproximação bilinear, conforme mostra a equação 2.22. Maiores detalhes sobre essa aproximação podem ser encontrados em [Derpanis, 2004]. E(u, v) w [u, v]M   u v   (2.22)

A equação 2.23 mostra a matriz Hessiana, chamada de matriz M na equação 2.22 [Harris and Stephens, 1988].

(41)

Figura 2.11: Função janela da equação de auto-correlação, acima uma função degrau e uma função gaussiana, abaixo.

H =   ∂I2 ∂x2 ∂I2 ∂x∂y ∂I2 ∂y∂x ∂I2 ∂y2  . (2.23)

O operador de Harris é definido pela equação 2.24, sendo λ1 e λ2 os autovalores da

matriz H, estes formando um descritor invariante a rotação, e k uma constante empírica, que geralmente é escolhida no intervalo [0, 04; 0, 06] [Harris and Stephens, 1988]. A figura 2.12 mostra os tipos de formas possíveis de serem detectadas em uma janela, na figura à esquerda existe uma região plana no interior de um objeto, essa região caracteriza-se por ter pequena curvatura em qualquer direção. Já a direita desta imagem, a janela caracteriza uma borda, apresentando uma pequena curvatura ao longo da borda e alta curvatura perpendicular a borda, no seu lado esquerdo. Nas imagens à direita, existem altas curvaturas em ambas as direções.

A figura 2.13 mostra como distinguir, através do operador de Harris, pontos de canto, bordas e regiões planas. Pontos de regiões planas se caracterizam por terem valores de λ1

e λ2 pequenos, ou seja, R(x, y) pequeno em qualquer direção. Se λ1 tiver um valor alto e

λ2 um valor baixo ou vice-versa, R < 0, ou seja, a variação de curvatura é alta somente

(42)

R > 0, existe uma quina com alta curvatura em todas as direções.

R(x, y) = λ1λ2− k(λ1+ λ2)2. (2.24)

Figura 2.12: Tipos de janelas que podem ser detectados em uma imagem.

Figura 2.13: Classificação dos pontos da imagem utilizando o operador de Harris(R).

Este método foi utilizado por Gracias e Santos-Victor [Gracias and Santos-Victor, 1998] [Gracias and Santos-Victor, 2000], onde eram de-tectadas características em imagens por meio de uma versão modificada do detector de Harris, com precisão de sub-pixel. Essa precisão é obtida através de técnicas utilizadas em aplicações de fluxo ótico, de forma a determinar com precisão o ponto de interesse, facilitando a correlação com a próxima imagem. Além disso, tais trabalhos também ajustam os parâmetros de superfície de uma janela, em torno do ponto, para um melhor resultado de correlação.

(43)

2.5.2.2 KLT

O Algoritmo de rastreamento Kanade-Lucas-Tomasi(KLT) foi proposto por Lucas e Kanade [Lucas and Kanade, 1981], sendo aperfeiçoado por Tomasi e Kanade [Tomasi and Kanade, 1991] e explicado em detalhes por Shi e Tomasi [Shi and Tomasi, 1994]. Tem como limitações, pouca tolerância a variação no brilho da imagem e dificuldade em detecção de movimentos rápidos. O método proposto por Lucas e Kanade, o LK, computa o fluxo ótico, isto é, para cada pixel da imagem existe um vetor, que no tempo t que mapeia um pixel no tempo t + 1, enquanto o método proposto por Tomasi e Kanade, conhecido como KLT, escolhe características na imagem, e, então, computa o fluxo ótico nas imagens subseqüentes somente para este subconjunto de pontos.

O KLT é um método completo, que fornece a solução para dois problemas de visão computacional:

• O problema de seleção de características ótimas em uma imagem;

• O problema de determinação da correspondência entre características em imagens consecutivas de um vídeo.

Nesta seção, será realizado um detalhamento apenas do problema de seleção de carac-terísticas. O problema de determinação do deslocamento entre imagens, será detalhado na seção 2.5.3.

Para a determinação de bons pontos, é necessário conhecer a matriz G mostrada na equação 2.25 [Tomasi and Kanade, 1991], também conhecida como matriz Z [Shi and Tomasi, 1994], que depende da localização do ponto definida por (px, py), do

tamanho da janela de busca (ωx, ωy), com valores típicos variando de 2 até 7 pixeis

[Bouguet, 2000]. Ix(x, y) = I(x + 1, y) − I(x − 1, y) 2 Iy(x, y) = I(x, y + 1) − I(x, y − 1) 2 G = px+ωx X x=px−ωx py+ωy X y=py−ωy   Ix2(x, y) Ix(x, y)Iy(x, y) Iy(x, y)Ix(x, y) Iy2(x, y)   (2.25)

(44)

Conforme a seção 2.5.2, é necessário a seleção de pontos que contenham uma região em torno, com textura suficiente para evitar o problema da abertura. O critério utilizado pelo KLT seleciona características que podem ser rastreadas com confiabilidade, com objetivo de maximizar o desempenho. Para dar maior robustez, implementações piramidais são desenvolvidas, buscando pontos em várias escalas [Bouguet, 2000].

Os autovalores da matriz G, λ1 e λ2, definem os pontos que devem ser utilizados

como pontos de interesse. Primeiramente, esses autovalores devem ser maiores que um limiar λ, visto que valores pequenos de λ1 e λ2 indicam que a janela possui pontos com

intensidades aproximadamente constante. Quando um autovalor tem valor grande e outro pequeno sinaliza que a intensidade varia em apenas uma direção, representando uma borda. Por outro lado, dois autovalores grandes indicam quinas, texturas ricas ou outros padrões que podem ser rastreados de maneira confiável [Shi and Tomasi, 1994] [Tomasi and Kanade, 1991].

Assim, uma janela é aceita se respeita a equação 2.26, λ pode ser escolhido como a média entre um limitante inferior (obtido a partir dos autovalores de regiões com brilho aproximadamente uniforme) e um limite superior (obtido a partir uma quina). Para maiores detalhes do KLT [Baker and Matthews, 2004].

min(λ1, λ2) ≥ λ (2.26)

O detector de características do KLT foi utilizado pelos pesquisadores de Heriot-Watt/Udine Universities [Plakas and Trucco, 2000] [Tommasini et al., 1998] para sele-cionar características relevantes em imagens subaquáticas. Foi utilizado o modelo afim proposto por [Shi and Tomasi, 1994], visto que as imagens têm movimentos mais com-plexos que simplesmente rotação e translação.

2.5.2.3 SIFT

O Algoritmo SIFT, proposto inicialmente em 1999 por Lowe [Lowe, 1999], e desenvolvido em 2004 [Lowe, 2004], tem a capacidade de extrair pontos em uma imagem, que possuem diversas propriedades que os habilitam a serem descobertos em outras imagens. O método obtém, para cada ponto encontrado, propriedades robustas a variações na imagem, tais como rotação, mudança de escala, iluminação e a pequenas variações de ponto de vista da

(45)

câmera. Além disto, as propriedades obtidas dos pontos, por esse método, têm elevada robustez a ruído.

Este método gera, para cada característica ou ponto de interesse, um descritor local, ou seja, vetores de características de uma determinada região de uma imagem, que podem ser utilizados para se comparar regiões em imagens diferentes. Os descritores obtidos com a técnica SIFT são altamente distintos, ou seja, um determinado ponto pode ser corretamente encontrado, com alta probabilidade, em um banco de dados extenso com descritores de diversas imagens.

Um aspecto importante do SIFT é a geração de um número grande de pontos de interesse que conseguem cobrir densamente uma imagem quanto a escalas e localizações. A quantidade de pontos é particularmente importante para o reconhecimento de objeto.

O SIFT é composto por 4 etapas:

• Detecção de extremos no espaço de escala - Nessa etapa é utilizada a diferença de filtros gaussianos (DoG), de modo que seja possível identificar pontos de interesse invariantes à rotação e escala. Também é interpolada a imagem em uma abordagem piramidal.

• Localização de pontos-chave - Para cada localização em que foi detectado um extremo, um modelo detalhado é ajustado de modo a se determinar localização e escala. Pontos-chave, ou pontos de interesse, são, então, selecionados baseando-se em medidas de estabilidade.

• Definição de orientação - É definida a orientação de cada ponto chave através dos gradientes locais da imagem. Toda operação a partir de então será feita com relação a dados da imagem transformados em relação à orientação, escala e localização de cada ponto chave. Desta maneira, obtém-se invariância a estas transformações.

• Descritor dos pontos-chave - O gradiente local é medido, utilizando-se região vizinha a cada ponto de interesse. Estas medidas são transformadas para uma representação que permite níveis significativos de tolerância a distorção e mudança de iluminação.

(46)

2.5.2.3.1 Detecção de Extremos no Espaço de Escala Esta primeira etapa do algoritmo visa buscar pontos que sejam invariantes a mudanças de escala da imagem, possibilitando a detecção de pontos em diferentes visões de um mesmo objeto, com altas taxas de repetibilidade. Tal objetivo é obtido procurando os pontos em todas as possíveis escalas, utilizando-se de uma função chamada de espaço de escala, cuja única maneira de ser modelada é através de função gaussiana [Lindeberg, 1994]. Assim, o espaço de escalas L(x, y, σ), conforme mostra equação 2.27, sendo I(x, y) a imagem e a função gaussiana G(x, y, σ), descrita pela equação 2.28. O operador ∗ representa a convolução em x e y.

L(x, y, σ) = G(x, y, σ) ∗ I(x, y) (2.27)

G(x, y, σ) = 1 2πσ2e

−x2+y2

2σ2 (2.28)

A eficiência da busca por pontos de interesse aumenta substituindo-se a função L(x, y, σ) por uma função DoG, formada pela subtração de dois espaços de escala, sepa-radas por um fator multiplicativo k, conforme a equação 2.29, segundo Lowe um bom valor para k é √2 [Lowe, 2004]. Esta função se aproxima da função Laplaciano do Gaussiano normalizado em escala σ2O2G [Lindeberg, 1994], que permite localizar pontos invariantes à escala em seus máximos e mínimos. A equação 2.30 demonstra essa aproximação. A figura 2.14 mostra os espaços de escala e a forma como é obtido o DoG, a partir das funções gaussianas. D(x, y, σ) = (G(x, y, kσ) − G(x, y, σ)) ∗ I(x, y) = L(x, y, kσ) − L(x, y, σ) (2.29) σ2O2G = ∂G ∂σ ≈ G(x, y, kσ) − G(x, y, σ) kσ − σ (2.30)

Os pontos-chave são localizados nos máximos e mínimos locais de cada imagem D(x, y, σ), que podem ser obtidos comparando-se a intensidade de cada ponto com as intensidades de seus seis pontos vizinhos na sua escala, e com os nove pontos vizinhos na escala acima e abaixo, como mostra a figura 2.15. Procuram-se pontos com valores

(47)

Figura 2.14: Espaço de escala - diferença gaussiana (DoG).

de intensidade maiores ou menores que todos os seus vizinhos. É importante ressaltar, que e possível encontrar um ponto máximo ou mínimo em uma imagem após ter sua amostragem reduzida e, portanto, a sua posição nesta imagem reduzida não é equiva-lente a sua posição na imagem original, que possui mais pixels, sendo necessária uma interpolação para determinar a posição na imagem original.

Figura 2.15: Máximos e mínimos de uma imagem com diferença gaussiana.

2.5.2.3.2 Localização de Pontos-Chave Os pontos encontrados como extremos de-vem ser filtrados para retirar aqueles que possuem pouco contraste (sendo sensíveis a

(48)

ruído) e aqueles próximos de extremidades. A eliminação de pontos sensíveis a ruídos é obtida utilizando uma expansão de Taylor sobre a função Diferença-do-Gaussiano deslo-cada, de modo a ter sua origem no ponto de amostragem [Brown and Lowe, 2002], como mostra a equação 2.31, sendo D e suas derivadas calculadas no ponto de amostragem e x = (x, y, σ) o deslocamento deste ponto. A localização do extremo, ˆx , é dada pela equação 2.32, tendo assim a função D(ˆx), definida pela equação 2.33 cuja finalidade é rejeitar pontos de extremo instáveis, com baixo contraste. Lowe sugere que o módulo de D(ˆx) deve ser superior à 0, 03.

D(x) = D + ∂D T ∂x x + 1 2x T∂2D ∂x2 x (2.31) ˆ x = −∂ 2D−1 ∂x2 ∂D ∂x (2.32) D(ˆx) = D +1 2 ∂DT ∂x xˆ (2.33)

Para dar maior estabilidade, não é suficiente apenas rejeitar pontos de baixo contraste. A função DoG possui resposta forte ao longo de arestas, mesmo que a localização ao longo da borda seja mal determinada. Isto faz com que estes pontos sejam instáveis para ruído. Um pico mal definido em DoG terá grande curvatura principal ao longo da borda, porém pequena curvatura em sua direção perpendicular. As curvaturas principais podem ser computadas através da matriz Hessiana 2 × 2, H, computada na localização e escala do ponto conforme a equação 2.34, abordagem muito semelhante à usada no detector de Harris. H =   Dxx Dxy Dxy Dyy   (2.34)

Sendo λ1 e λ2 os autovalores da matriz H, caso tenham sinais diferentes, significa que

as curvaturas têm sinais diferentes, não sendo um ponto de extremo. Considerando r a relação entre o maior e o menor autovalor, é obtida a equação 2.35, que define a razão

(r+1)2

r , oferecendo uma medida de distinção dos autovalores. Eliminam-se pontos próximos

a extremidades e descartando-se pontos abaixo de um determinado limiar, conforme a equação 2.36, Lowe utilizou r = 10 [Lowe, 2004].

(49)

(λ1+ λ2)2 λ1λ2 = (rλ2+ λ2) 2 rλ22 = (r + 1) 2 r (2.35) (λ1+ λ2)2 λ1λ2 < (r + 1) 2 r (2.36)

2.5.2.3.3 Definição de Orientação A invariância à escala e robustez ao ruído são muito importantes para os pontos-chave, porém eles devem ser invariantes à rotação da câmera. Para obter-se essa invariância, atribui-se uma orientação baseada nas caracte-rísticas locais da imagem. Para medir a orientação, calcula-se para cada amostragem da imagem na escala do ponto-chave, L(x, y) , a magnitude m(x, y), e a orientação θ(x, y) do gradiente usando diferenças de pixels, conforme mostra a equação 2.37.

m(x, y) = p(L(x + 1, y) − L(x − 1, y))2+ (L(x, y + 1) − L(x, y − 1))2

θ(x, y) = tan−1 L(x, y + 1) − L(x, y − 1) L(x + 1, y) − L(x − 1, y)



(2.37)

Um histograma de orientação é formado, a partir do gradiente de orientação dos pontos de uma região em torno do ponto-chave. Esse histograma possui 36 valores, segundo proposto por Lowe [Lowe, 2004], cobrindo os 360 graus de orientação, conforme ilustra a figura 2.16, porém a figura mostra uma discretização de apenas sete valores meramente ilustrativa.

Figura 2.16: Histograma de orientação do SIFT

O valor com maior amplitude no histograma, ou pico, é utilizado para definir a sua orientação. No caso de múltiplos picos de elevada amplitude, o ponto-chave receberá

(50)

múltiplas orientações, ou seja, serão criados vários pontos-chave com mesma escala e localização, porém com diferentes orientações, tornando-o ainda mais estável para futura identificação. Ao final, uma parábola é usada para interpolar os três valores do histograma mais próximos do pico, de forma a se ter uma melhor precisão de sua posição.

2.5.2.3.4 Descritores dos Pontos-Chave Após escolhidos os pontos-chave, invari-antes a rotação e escala, um descritor para cada um desses pontos, baseados nos histogra-mas da região em torno do ponto, deve ser computado. Para a obtenção deste histograma, é necessário rotacionar os pontos vizinhos e as orientações dos gradientes, tendo assim um descritor invariante a rotação.

São definidas regiões nxn em torno do ponto com kxk pixeis, Lowe sugere que valores de n e k igual a quatro obtém melhores resultados [Lowe, 2004], então constrõe-se um histograma, semelhante ao utilizado em 2.5.2.3.3, porém com 8 direções apenas, que definirá o descritor.

O descritor é representado por um vetor, onde o valor de cada posição do vetor se refere a uma das direções dos histogramas. Com valor de n e k iguais a quatro, obtém-se um vetor com 128 posições. Para evitar efeitos de borda na qual o descritor abruptamente muda enquanto a amostra se desloca suavemente indo de um histograma para outro ou de uma orientação para outra, uma interpolação trilinear é utilizada para distribuir o valor de cada amostra de gradiente para sua posição no histograma adjacente.

A figura 2.17 ilustra um descritor porém com n = 2 e k = 4.

(51)

Para uma maior tolerância a variação de iluminação, o descritor é normalizado. Após a normalização, todos os valores acima de um determinado limiar são ajustados para este limiar. Isto é feito para que direções com magnitude muito grande não dominem a representação do descritor. Lowe sugere utilizar um limiar de 0.2 [Lowe, 2004], ocorrendo uma normalização, novamente.

Não foi encontrada nenhuma referência da utilização do SIFT em imagens subaquáti-cas, isso se deve principalmente ao fato do SIFT ter sido proposto recentemente, porém o método foi utilizado com sucesso para a localização robótica em ambiente terrestre [Se et al., 2002] [Se et al., 2005].

2.5.3

Correspondências Entre Pontos (Matching )

A detecção de correspondência em técnicas baseadas em características é essencial. Quando uma imagem é obtida, encontram-se pontos de interesse, ou seja, pontos com características fortes que, provavelmente, serão encontrados na imagem consecutiva.

Visando a localização robótica, resolver o problema de correspondência de um modo preciso e seguro é fundamental. Existem diferentes alternativas para resolver este pro-blema, como mostrado abaixo:

• Técnicas Baseadas em Intensidade

• Técnicas Baseadas em Análise de Textura

• Técnicas Baseadas em Fluxo Ótico

• Técnicas Baseadas em Descritores Locais

Para estabelecer correspondências entre as imagens, é considerado, freqüentemente, que pixeis correspondentes têm um valor de intensidade semelhante. Porém, existem diversos pixeis de valores de intensidade idênticos em uma imagem. A solução então é considerar os pixeis vizinhos ao ponto na imagem, definindo uma janela. Logo, a cor-respondência entre pontos é determinada utilizando uma medida de semelhança, que é aplicada em janelas ao redor dos pontos de interesse da imagem.

Uma medida de semelhança muito utilizada é o CS [Giachetti, 2000]. Esta medida de correlação, normalmente, é computada utilizando valores de intensidade da imagem.

Referências

Documentos relacionados

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças

When the 10 th percentile of the Alexander stan- dard growth curve for twins was used, a birth weight below the 10 th percentile was observed in 4.9% of newborn of

O Fórum de Integração Estadual: Repensando o Ensino Médio se efetiva como ação inovadora para o debate entre os atores internos e externos da escola quanto às

Para solucionar ou pelo menos minimizar a falta ou infrequência dos alunos dos anos finais inscritos no PME, essa proposta de intervenção pedagógica para o desenvolvimento

Na apropriação do PROEB em três anos consecutivos na Escola Estadual JF, foi possível notar que o trabalho ora realizado naquele local foi mais voltado à

Pensar a formação continuada como uma das possibilidades de desenvolvimento profissional e pessoal é refletir também sobre a diversidade encontrada diante

O estudo foi gerado pela problemática “Como se dá o processo de escolarização dos alunos ribeirinhos em escolas urbanas?”, sendo que os resultados que dele emergiram versam sobre