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

Tamanho: px
Começar a partir da página:

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

Transcrição

1 Fundação Universidade Federal do Rio Grande Engenharia de Computação Robótica Subaquática: Uma Abordagem Baseada em Visão Computacional Aplicada a SLAM Paulo Lilles Jorge Drews Junior Rio Grande, Janeiro de 2008

2 Fundação Universidade Federal do Rio Grande 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 Graduação em Engenharia de Computação submetido à avaliação, como requisito parcial à obtenção do título de Engenheiro de Computação. Orientador(a): Prof a. Dr a. Silvia Silva da Costa Botelho Co-orientador(a): Prof. Ms. Vitor Irigon Gervini Rio Grande, Janeiro de 2008

3 Este trabalho foi analisado e julgado adequado para a obtenção do título de Engenheiro de Computação e aprovado em sua forma final pelo orientador. Prof a. Dr a. Silvia Silva da Costa Botelho Banca Examinadora: Prof a. Dr a. 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 "Reze como se tudo dependesse de Deus e trabalhe como se 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 ensinamentos 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 computacional 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 Conteúdo Lista de Figuras Lista de Tabelas Lista de Abreviaturas Resumo Abstract iv vii viii x xi 1 Introdução Motivação Objetivos Estrutura do Trabalho Sistemas Visuais para Localização Introdução Imagens Subaquáticas Pré Processamento Modelo da Câmera Calibração da Câmera e Correção das Distorções Transformações Projetivas e Modelo de Movimento Estimativa de Movimento Técnicas Não Baseadas em Características Técnicas Baseadas em Características Detector de Harris i

7 CONTEÚDO ii KLT SIFT Detecção de Extremos no Espaço de Escala Localização de Pontos-Chave Definição de Orientação Descritores dos Pontos-Chave Correspondências Entre Pontos (Matching) Eliminação de Falsas Correspondências (Outliers) Comparativo Entre Métodos Matriz de Estimativa do Movimento Mapeamento de Ambientes Introdução Modelagem Geométrica Exata Roadmaps Decomposição Celular Gradiente de Campo Potencial Modelagem Topológica Qualitativa Mapas Auto-Organizáveis Redes de Kohonen Estruturas Celulares Crescentes Comparativo Entre as Abordagens Metodologia - SLAM Visual Introdução Pré-Processamento SIFT Correspondência (Matching) Matriz de Estimativa do Movimento - Homografia Mapas Topológicos

8 CONTEÚDO iii 5 Resultados Introdução Plataforma de Teste Resultados Experimentais Sistema de Visão Localização Em Braço Robótico Mapeamento Topológico Conclusão Trabalhos Futuros Bibliografia 107 A OpenCV 118

9 Lista de Figuras 2.1 Estrutura do sistema de visão utilizando veículos subaquáticos Problemas de iluminação em ambiente subaquático Representação de uma câmera pinhole Modelo de câmera pinhole Exemplo de padrão de calibração sobre uma superfície plana, proposto por Zhang Imagem com distorções, à esquerda, e com as distorções corrigidas, à direita Transformação projetiva entre duas diferentes vistas de uma mesma cena Modelos de movimentos Veículo subaquático com sistema de coordenadas no robô, à esquerda, e na câmera, à direita Problema da abertura Função janela da equação de auto-correlação, acima uma função degrau e uma função gaussiana, abaixo Tipos de janelas que podem ser detectados em uma imagem Classificação dos pontos da imagem utilizando o operador de Harris(R) Espaço de escala - diferença gaussiana (DoG) Máximos e mínimos de uma imagem com diferença gaussiana Histograma de orientação do SIFT Descritor local do SIFT Janela de correlação do CS Representação da geometria epipolar iv

10 LISTA DE FIGURAS v 2.20 Comparativo entre os três métodos, Harris, KLT e SIFT na detecção de características Variância à escala apresentada pelos métodos KLT e Harris Movimentos representados pela matriz de homografia Mapa do ambiente para gerar grafo de visibilidade Grafo de visibilidade com a escolha do melhor caminho entre origem e destino Diagrama de Voronoi Decomposição do mapa em células Grafo de conectividade criado a partir das células Caminho escolhido entre origem e destino através das bordas das células Mapa em forma de grids. Na esquerda, uma distribuição uniforme e à direita uma distribuição quadtree A partir do mapa, à esquerda, gera-se dois campos potenciais, um a partir dos obstáculos e outro dos pontos de origem e destino, gerando como resultado o gradiente de campo potencial do mapa, à direita Interação lateral nos neurônios corticais nos primatas 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 Overview do sistema proposto Imagem com distorção, à esquerda, e com distorção corrigida, à direita, utilizando a metodologia proposta Orientação do robô Interface principal do sistema desenvolvido com as janelas de ajuste de vídeo e de mapeamento Interface principal com a aba comandos e janela de vídeo Câmeras de vídeo utilizadas nos testes Plataforma de teste utilizando braço robótico Plataforma de teste utilizando veículo subaquático Imagens subaquáticas artificiais geradas através da aplicação de filtros... 88

11 LISTA DE FIGURAS vi 5.7 Imagens subaquáticas reais geradas com a aplicação de filtros Imagem utilizada para calibração, em sua forma original, à esquerda, e com correção radial corrigida, à direita Comparativo KLT x SIFT utilizando imagens reais a uma taxa de 2fps Comparativo KLT x SIFT utilizando imagens reais a uma taxa de 30fps Comparativo KLT x SIFT utilizando imagens reais em tempo online de execução Comparativo KLT x SIFT utilizando imagens artificiais a uma taxa de 2fps Comparativo KLT x SIFT utilizando imagens artificiais a uma taxa de 30fps Comparativo KLT x SIFT utilizando imagens artificiais em tempo online de execução Pontos de interesse e correlações detectadas em imagens reais pelo sistema proposto Pontos de interesse e correlações detectadas em imagens artificiais com distorção 5 pelo sistema proposto Deslocamento nos eixos cartesianos x e y determinado pelo sistema proposto, em relação a odometria do robô Número de pontos de interesse detectados nas imagens e número de correlações corretas no tempo Velocidade do braço robótico por um período superior a três minutos, pela odometria e pelo sistema proposto Mapeamento topológico treinado a partir de 39 frames, à esquerda, e 586 frames, à direita. Navegando sobre a mesma área Mapeamento topológico treinado a partir de 27 frames. com imagens artificiais naturais, acima, e imagens artificiais com distorção 5, abaixo

12 Lista de Tabelas 5.1 Características subaquáticas para cada distorção Parâmetros de calibração das duas câmeras utilizadas nos testes Taxa de frames por segundos média dos algoritmos KLT e SIFT em dois computadores distintos, utilizando imagens reais e com filtros Taxa de frames por segundos média dos algoritmos KLT e SIFT em dois computadores distintos, utilizando imagens artificiais com filtros vii

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 viii

14 LISTA DE TABELAS ix 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 UUV Unmanned Underwater Vehicle

15 Resumo Atualmente, os avanços tecnológicos em software, hardware e instrumentação têm permitido 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 objetivo 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 extraçã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, simultaneamente, 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. x

16 Abstract 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. xi

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 atrativa [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 utilizados são os chamados veículos operados 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 1

18 CAPÍTULO 1. INTRODUÇÃO 2 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 estruturas 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 tempos 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 subaquá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 Networks (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 CAPÍTULO 1. INTRODUÇÃO Objetivos O principal objetivo deste trabalho é o desenvolvimento de um sistema visual para localizaçã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ôs 1. 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 principais, 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 necessidades de exploração de determinados locais e também a correção de erros cumulativos 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 subaquática na FURG. Cabe salientar que, embora o foco deste trabalho seja a robótica subaquática, a proposta 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 trabalho fará referência principalmente à robótica subaquática, mas que pode ser estendida para outras áreas. 1 Na 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 CAPÍTULO 1. INTRODUÇÃO Estrutura do Trabalho Os capítulos seguintes mostram como foi desenvolvida a arquitetura proposta, focalizandose na estratégia para determinação da localização do robô e para o mapeamento do ambiente 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 detalhes 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 estimativa 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 utilizados 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: 5

22 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 6 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 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, principalmente, 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 diferente (principalmente calor). Conseqüentemente, 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 subaquá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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 8 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 perdem 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 9 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 imperfeiçõ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 A distorção causada pelas lentes da câmera pode ser modelada por uma componente radial e tangencial. Como a componente radial causa a maior distorção, a maioria dos trabalhos desenvolvidos corrigem apenas este problema [Gracias and Santos-Victor, 1998][Garcia, 2001] 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 m 0, 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 m 0, este conhecido como sistema de coordenadas da câmera. O segundo sistema de coordenada tem como centro o ponto m 0, chamado de sistema de coordenadas da imagem.

26 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 10 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 = fx/z e v = fy/z, logo o ponto m pode ser representado como mostra a equação 2.1. m = fx/z fy/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ímbolo é 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 11 fx fy Z = f f X Y Z 1 (2.2) m A[I 0]M (2.3) A matriz A mostrada na equação 2.3 é conhecida como matriz de parâmetros intrí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. Primeiramente, considera-se o ponto central m 0, com coordenadas (u 0, v 0 ). 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 consideração essa diferença. Por fim, considera-se que o ângulo formado entre os eixos pode ser diferente de 90 o, logo isso causa uma distorção representada por γ. α γ u 0 A = 0 β v [ m A R t (2.4) ] M (2.5) Um fator a ser considerado é a estimação do ponto m 0, este muito sensível a ruídos. Alguns autores assumem que m 0 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 R t 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 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étricas e ópticas 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 passar 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 conhecido 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 exatamente 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: Aquisição dos dados;

29 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 13 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ística 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 = (fx/z, fy/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. superfície plana. [ C m = A [ Considerando-se a homografia H = O padrão deve estar sobre uma ] M (2.6) r 1 r 2 t ] h 1 h 2 h 3 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 r 1 e r 2 são ortogonais.

30 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 14 Figura 2.5: Exemplo de padrão de calibração sobre uma superfície plana, proposto por Zhang. [ H = λ A r 1 r 2 t ] (2.7) h 1 A T A 1 h 2 = 0 (2.8) h 1 A T A 1 h 1 = h 2 A T A 1 h 2 (2.9) [ Seja B = A T A 1, representada pelo vetor b = B 11 B 12 B 22 B 12 B 23 B 33 ], [ ] T h i = h i1 h i2 h i3, a i-nésima coluna de H, e vij = [ h i1 h j1 h i1 h j2 + h i2 h j1 h i2 h j2 h i3 h j1 + h i1 h j3 h i3 h j2 + h i2 h j3 h i3 h j3 ], determina-se a equação h T i Bh j = vijb T (2.10) Desta forma, as equações 2.8 e 2.9 podem ser reescritas, conforme mostra a equação T v 12 (v 11 v 22 ) T b = 0 (2.11) Observando n imagens do padrão de calibração, são obtidas n equações iguais a Assim, a equação 2.12 pode ser determinada, com V sendo uma matriz do tipo 2n x 6.

31 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 15 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, [ ] b = 0, sendo possível, então, solucionar o sistema apresentado na equação 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 V T V 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) v 0 = B 12B 13 B 11 B23 B 11 B 22 B 12 2 λ = B 33 [B v 0 (B 12 B 13 B 11 B 23 )] B 11 λ α = B 11 λb 11 β = 2 B 11 B 22 B 12 γ = B 12α 2 β λ u 0 = γv 0 β B 13α 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 = r 1 r 2 r 3 e t. r 1 = λa 1 h 1 r 2 = λa 1 h 2 r 3 = r 1 r 2 t = λa 1 h 3 (2.14)

32 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 16 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 resultados, 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 m 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 Assim, os pontos M, em centímetros e sem distorção, e o ponto M, com distorção e também em centímetro, podem ser representados pela equação 2.15, onde k 1 e k 2 são os coeficientes de distorção radial. M x = M x + M x [k 1 (M 2 x + M 2 y ) + k 2 (M 2 x + M 2 y ) 2 ) M y = M y + M y [k 1 (M 2 x + M 2 y ) + k 2 (M 2 x + M 2 y ) 2 ) (2.15) Considerando que o centro da distorção é o mesmo centro da imagem (u 0, v 0 ), então a equação 2.16 fornece o valor de m, com γ = 0. m x = u 0 + αm x + γm y m x = u 0 + αm x + γm y m y = v 0 + βm y m y = v 0 + βm y m x = m x + m x u 0 [k 1 (m 2 x + m 2 y ) + k 2 (m 2 x + m 2 y ) 2 ) m y = m y + m y v 0 [k 1 (m 2 x + m 2 y ) + k 2 (m 2 x + m 2 y ) 2 ) (2.16) Zhang sugere a estimação, para obtenção dos parâmetros k 1 e k 2, da matriz de parâ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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 17 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 m X mij f (A, k1, k2, Rj, tj, Mij ) 2 (2.17) i=1 j=1 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. Assim, após ter-se feito a correção da distorção radial, se aplica a equação Sendo m = (mx, my ), o ponto já sem distorção radial, e m0 o novo ponto, sem distorção adip cional. O valor de R = mx 2 + my 2 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]. R0 (mx u0 ) R R0 m0 y = my + (my v0 ) R m0 x = mx + R0 = f tan (sin 1 (1.33 sin(tan 1 R ))) f (2.18) (2.19) A figura 2.6 mostra o resultado da correção da distorção radial e da difração proposta por Xu, com a listra branca apenas para ilustrar o efeito causado pelas distorções [Garcia, 2001]. Figura 2.6: Imagem com distorções, à esquerda, e com as distorções corrigidas, à direita.

34 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 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 (x 1, x 2,..., x n, x n+1 ) T R n+1 é um conjunto de pontos de tamanho n + 1 chamado de Espaço de Projeção P n, se e somente se, pelo menos uma das n+1 coordenadas do vetor é diferente de zero e dois vetores (x 1, x 2,..., x n, x n+1 ) T e (ex 1, ex 2,..., ex n, ex n+1 ) T representam o mesmo ponto para qualquer e 0 [Gracias and Santos-Victor, 2000]. Uma transformação no espaço projetivo P n é conhecida como colineação ou transformação projetiva. Essa transformação é importante para a visão computacional por representar duas vistas de cenas no espaço 3D como uma transformação projetiva em P 2, 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 (x 1, x 2, x 3 ) T R 3 representa um ponto (x 1 /x 3, x 2 /x 3 ) T R 2, 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 19 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 20 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 melhores 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 21 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 Técnicas Não Baseadas em Características Esse tipo de técnica não necessita encontrar correspondência entre características de imagens. 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 I k (x k i, y k i ) e no intervalo de tempo k+1 como I k+1 (x k+1 i, y k i ). ɛ = i [I k+1 (x i k+1, y i k+1 ) I k (x i k, y i k )] 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 carac-

38 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 22 terística, muito propensa a erros. Porém esse método precisa de uma boa inicialização para convergir para uma solução, embora sem a certeza da solução fornecida ser a solução ótima, pois esta é muito sensível a mínimos locais. Mesmo assim, essa é a técnica 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 (I u, I v, I t ) = ( I x, I, I y 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 correspondê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] Técnicas Baseadas em Características Este grupo de técnicas trabalha com a idéia de encontrar características iguais entre imagens, assim estas características podem ser correlacionadas, permitindo definir o movimento 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 contornos, 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. Métodos baseados em características tentam resolver o problema de correlação, de-

39 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 23 Figura 2.10: Problema da abertura. tectando quinas ou fragmentos altamente texturados na imagem I k no tempo k e na imagem I k+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 , e , respectivamente.

40 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO Detector de Harris O detector de extremidades de Harris-Stephens [Harris and Stephens, 1988], também conhecido 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 repetibilidade 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 imagem, 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 R 1 para imagens preto e branco e I R 3 para imagens coloridas. A equação 2.21 define a mudanç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,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 Maiores detalhes sobre essa aproximação podem ser encontrados em [Derpanis, 2004]. E(u, v) [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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 25 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 I 2 x 2 x y I 2 y x I 2 y 2. (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 em uma direção, representando uma borda. Por fim, caso λ 1 e λ 1 tiverem altos valores,

42 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 26 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 detectadas 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 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 características. O problema de determinação do deslocamento entre imagens, será detalhado na seção 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 (p x, p y ), do tamanho da janela de busca (ω x, ω y ), com valores típicos variando de 2 até 7 pixeis [Bouguet, 2000]. I(x + 1, y) I(x 1, y) I x (x, y) = 2 I(x, y + 1) I(x, y 1) I y (x, y) = 2 p x+ω x p y+ω y I 2 G = x (x, y) I x (x, y)i y (x, y) (2.25) I y (x, y)i x (x, y) I 2 y (x, y) x=p x ω x y=p y ω y

44 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 28 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 selecionar 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 complexos que simplesmente rotação e translação 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 29 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 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 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 x 2 +y 2 2πσ 2 e 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, separadas 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 σ 2 2 G [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) σ 2 2 G = 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 Procuram-se pontos com valores

47 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 31 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 é equivalente 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 Localização de Pontos-Chave Os pontos encontrados como extremos devem ser filtrados para retirar aqueles que possuem pouco contraste (sendo sensíveis a

48 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 32 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 deslocada, 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 + DT x x xt 2 D x 2 x (2.31) ˆx = 2 D 1 x 2 D x (2.32) D(ˆx) = D + 1 D T ˆx (2.33) 2 x 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 = D xx D xy D xy D yy (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, oferecendo uma medida de distinção dos autovalores. Eliminam-se pontos próximos r a extremidades e descartando-se pontos abaixo de um determinado limiar, conforme a equação 2.36, Lowe utilizou r = 10 [Lowe, 2004].

49 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 33 (λ 1 + λ 2 ) 2 λ 1 λ 2 = (rλ 2 + λ 2 ) 2 rλ 2 2 = (λ 1 + λ 2 ) 2 λ 1 λ 2 < (r + 1)2 r (r + 1)2 r (2.35) (2.36) 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 caracterí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 m(x, y) = (L(x + 1, y) L(x 1, y)) 2 + (L(x, y + 1) L(x, y 1)) ( ) 2 L(x, y + 1) L(x, y 1) θ(x, y) = tan 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 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 34 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 Descritores dos Pontos-Chave Após escolhidos os pontos-chave, invariantes a rotação e escala, um descritor para cada um desses pontos, baseados nos histogramas 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 , 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. Figura 2.17: Descritor local do SIFT

51 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 35 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áticas, 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] 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 problema, 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 correspondê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.

52 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 36 Porém, se forem utilizadas imagens coloridas, essa medida de correlação produz melhores resultados utilizando a banda azul da imagem em ambiente subaquático [Garcia, 2001], isto se deve ao fato da variação das propriedades ópticas de diferentes corpos dentro da água, ou seja, da interação da água com o meio. Para a obtenção do CS de cada ponto, é necessário considerar uma janela nxn pixeis, ou seja, uma vizinhança em torno do ponto m e do ponto m na imagem consecutiva. Este cálculo pode consumir muito tempo de processamento, dependendo do número de pontos de interesse detectados, logo a janela considera apenas alguns pixeis a cada q existentes, gerando uma janela de correlação efetiva de m m pixeis, sendo m = ((n 1)/q) + 1. A figura 2.18 mostra uma janela de pixeis, à direita, enquanto à esquerda, considera-se a janela efetivamente utilizada com q = 4. A precisão dessa janela reduzida é praticamente a mesma da janela completa [Giachetti, 2000]. Figura 2.18: Janela de correlação do CS. Considerando ponto m e o ponto m na imagem consecutiva, com coordenadas (x, y) e (x, y ), respectivamente, I e I, duas imagens consecutivas, o CS pode ser calculado conforme equação 2.40 [Zhang et al., 1995], considerando α = ((n 1)q) 2 e sendo I(x, y) a média da janela de correlação, conforme equação 2.38, e σ 2 (I) a variância da janela de correlação, conforme equação I(x, y) = α i= α α j= α I(x + i q, y + j q)2 α 2 (2.38)

53 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 37 σ 2 (I) = α α i= α j= α I(x + i q, y + j q)2 I(x, y) 2 (2.39) α 2 CS(m, m ) = α i= α α j= α (I(x + iq, y + jq) I(x, y))(i (x + iq, y + jq) I (x, y )) α 2 σ 2 (I)σ 2 (I ) (2.40) Os valores de CS estão em um intervalo [ 1, 1], no qual 1 significa nenhuma similaridade e 1 significa que as vizinhanças dos dois pontos são idênticas. Garcia propõe valores maiores que 0.7 sejam considerados como valores válidos [Garcia, 2001], já em outra abordagem, propõem-se a utilização de 0.8, ou seja, uma semelhança superior a 90% [Neves, 2006]. As técnicas baseadas em análise de textura para a determinação de correspondência entre pontos são muito utilizadas [Garcia, 2001], diversos operados de textura são citados na bibliografia, como Co-ocurrence Matrix [S. Aksoy and Haralick, 1998], Energy Filter [Randen and Husoy, 1999], Local Binary Pattern [He and Wang, 1991][Ojala et al., 1996], Contrast Features [Ojala and Pietikäinen, 1997], Symmetric Covariances [Harwood et al., 1995], entre outros. A partir desses operadores, vetores de caracterização de pontos de interesse são gerados. Esses vetores são utilizados para permitir a correlação entre pontos, para isso são utilizadas medidas de similaridade, como distância média, desvio padrão e distância euclidiana, embora existam diversas outras [Garcia, 2001]. Sendo v = [v 1, v 2,..., v n ] o vetor de caracterização do ponto m e v = [v 1, v 2,..., v n] o vetor de caracterização do ponto m, com n = l timesl definindo o tamanho do vetor de caracterização, com valores típicos de l de 7, 9 ou 11 [Garcia, 2001], as equações abaixo que mostram como determinar essas medidas de similaridade. (Distância Média -) Sendo µ = n i=1 v i n a média dos valores armazenados no vetor de caracterização, é obtida a medida de similaridade d n,m dada pela equação 2.41, sendo µ a distância média da imagem I e µ a distância média da imagem consecutiva I. d n,m = µ n,m µ n,m (2.41)

54 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 38 n (v (Desvio Padrão -) Sendo σ = + i µ) 2 i=1 o desvio padrão dos valores armazena- n dos no vetor de caracterização, é obtida a medida de similaridade d n,m pela equação d n,m = σ n,m σ n,m (2.42) (Distância Euclidiana -) A medida de similaridade d(v, v ) é dada pela equação d(v, v ) = n (v i v i ) 2 (2.43) Uma abordagem diferente é a adotada pelo KLT [Tomasi and Kanade, 1991], no qual não se busca pontos em duas imagens consecutivas e, posteriormente, se faz a correlação entre pontos. Nessa abordagem, faz-se um tracking das características baseado no modelo do fluxo ótico, o critério de similaridade para localização de pontos correlatos é baseado no método de Newton para minimização da soma das diferenças quadráticas(ssd) dentro de uma janela de busca ao redor da posição da característica(ponto de interesse) buscada na próxima imagem, assumindo um modelo de movimento translacional entre imagens subseqüentes. Shi e Tomasi [Shi and Tomasi, 1994] estenderam o algoritmo considerando também deslocamentos mais complexos, utilizando um modelo de movimento afim. A qualidade das características rastreadas é monitorada, visando identificar erros acumulados do rastreamento. Enquanto o modelo translacional é mais adequado para rastreamento entre quadros adjacentes, o modelo afim deve ser utilizado para rastreamento entre quadros distantes. Para se determinar o movimento da imagens, o método KLT utiliza a seguinte abordagem, considerando I(x, y, t) a imagem no tempo t, δ = (ξ, η) representando o deslocamento do ponto (x, y) na imagem e τ o intervalo de tempo entre cada imagem, é obtida a equação 2.44, que representa o deslocamento sofrido pela imagem com o passar do tempo, porém mesmo em ambientes controlados, a propriedade descrita pode não ser válida em muitas situações. Nas bordas, os pontos podem sair e voltar a imagem, por exemplo. Além disso, os pontos podem sofrer variações de iluminação, que influenciam na intensidade. i=1

55 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 39 I(x, y, t + τ) = I(x + ξ, y + η, t) (2.44) Para o modelo afim é definido δ = Dx + d, enquanto para o movimento translacional, que tem D = 0, δ = d, onde d é a translação do centro da janela e D é a matriz de deformação [Shi and Tomasi, 1994]. Considerando J(x) = I(x, y, t + τ) e I(x δ) = I(x + ξ, y + η, t), pode ser obtida a equação 2.45, sendo que n(x) é a função que modela o ruído, para uma melhor aproximação da realidade [Shi and Tomasi, 1994]. J(x) = I(x δ) + n(x) (2.45) A função d é obtida através da minimização da equação 2.46, que representa o erro residual, sendo definida através de uma integral dupla sobre uma janela W, sendo w(x) a função peso, definida usualmente por uma gaussiana ou, simplesmente, por uma constante 1 [Tomasi and Kanade, 1991]. O resultado da minimização é definido por Gd = e, considerando g = ( I, I x y ), obtêm-se a equação 2.47 para pequenos deslocamentos, para maiores detalhes[tomasi and Kanade, 1991][Shi and Tomasi, 1994]. ɛ = [I(x δ) J(x)] 2 w(x)dx (2.46) W ɛ = W G = gg T w(x)da W (I(x) J(x))gw(x)dA (2.47) Uma abordagem piramidal pode ser utilizado para dar maior robustez, assim o método apresentado acima é aplicado a cada nível da pirâmide construída a partir da imagem original, produzindo novas imagens em diferentes escalas. O deslocamento total é dado pela soma dos deslocamentos estimados em cada nível. Esta abordagem é adequada quando o deslocamento entre correspondências for maior que três pixeis. Outra maneira de se trabalhar com correspondência de imagens é a utilização de descritores locais para se representar pontos de interesse. Descritores são vetores de características de uma imagem ou de determinadas regiões de uma imagem que podem ser

56 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 40 usados para compararem-se regiões em imagens diferentes. Este vetor de características é, normalmente, formado por descritores locais ou globais. Descritores locais computados em pontos de interesse provaram ser bem sucedidos em aplicações como correspondência e reconhecimento de imagens [Mikolajczyk and Schmid, 2005]. Descritores são distintos, robustos à oclusão e não requerem segmentação. O mais simples descritor é um vetor com as intensidades dos pixels da imagem. Porém existem diversas técnicas para a obtenção de descritores [Mikolajczyk and Schmid, 2005], embora, neste trabalho, exista um especial interesse no descritor proposto por Lowe no SIFT [Lowe, 2004]. Para encontrarem-se correspondências entre duas imagens, conhecendo-se os descritores, é necessário localizar os melhores candidatos a serem seus equivalentes na outra imagem. Isto é feito procurando-se o vizinho mais próximo ou nearest neighbor do descritor do ponto entre todos os possíveis candidatos. Quando se procura classificar um ponto em um extenso banco de dados de descritores para vários objetos, a busca exaustiva do vizinho mais próximo pode ser demorada, assim Lowe propõe o uso de uma variação do K-D Tree [Friedman et al., 1977], o BBF [Beis and Lowe, 1997] para acelerar a busca [Lowe, 2004]. Para determinar-se o vizinho mais próximo, é utilizada a mínima distância euclidiana entre os descritores do SIFT. Porém, nem sempre o vizinho mais próximo é o ponto procurado, assim é necessária a utilização da distância euclidiana com o segundo vizinho mais próximo, sendo excluídas correlações que tem a razão entre o vizinho mais próximo e o segundo maior que um determinado limiar, Lowe propõe 0.8, removendo assim 90% de falsos verdadeiros(outliers) e apenas 5% de correlações corretas [Lowe, 2004] Eliminação de Falsas Correspondências (Outliers) Algumas vezes, pode acontecer do par definido pela correlação não se o par correto, assim, o sistema deve ser capaz de identificar e remover essas falsas correlações. Uma solução bem simples se baseia no calculo da média e do desvio padrão das distâncias euclidianas entre todos os pares de pontos, considerados correlatos. A partir dessa medida, os pontos que forem maiores que um número de desvios padrões são considerados outliers.

57 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 41 Outra solução para o problema é através da geometria epipolar, que será explicada brevemente a seguir, visto que a única restrição geométrica entre dois pares de imagens não calibrados que existe é a geometria epipolar. Tal geometria é descrita em diversos trabalhos [Torr and Murray, 1997] [Zhang, 1998] [Salvi et al., 2001]. A geometria epipolar entre duas vistas de uma mesma cena é, essencialmente, a geometria da intersecção dos dois planos de imagem I e I, com os planos que tem como eixo a linha de base, ou seja, a linha que une os dois centros ópticos, C e C. Um ponto M do espaço tem projeções m e m, respectivamente na primeira e segunda imagem, e deseja-se saber a relação entre esses pontos correspondentes. A figura 2.19 ilustra tais pontos. Figura 2.19: Representação da geometria epipolar. As intersecções entre os planos I e I e a linha CC são os chamados epipolos e e e, representando a projeção do centro óptico da outra câmera no plano de imagem. O plano p contendo a linha CC e o ponto M, é o plano epipolar. A intersecção do plano epipolar com os planos de imagem define as linhas l e l, chamadas linhas epipolares. Dessa forma, todas as linhas epipolares de uma imagem passam pelo epipolo da mesma. Para um dado ponto m no plano I, seu correspondente no plano I deve estar sobre a linha l, e vice-versa. A transformação que mapeia os pontos de uma imagem para linhas da outra imagem, e vice-versa, é representada por uma matriz F, chamada matriz fundamental. Sendo, m = [x, y, 1] um ponto sobre o plano imagem I e m = [x, y, 1] um ponto sobre o plano imagem I, assim a equação 2.48 define a matriz fundamental.

58 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 42 m T F m = 0 (2.48) Geometricamente, F m define a reta epipolar do ponto m no plano I. Assim, a equação 2.48 afirma que o ponto correspondente de m, m, está sobre a sua reta epipolar F m. Diversos métodos para estimação da matriz fundamental são encontrados na bibliografia [Zhang, 1998] [Torr and Murray, 1997] [Salvi et al., 2001]. Contudo, o método mais conhecido é o algoritmo de 8 pontos [Hartley, 1997], tal método, dado um conjunto com n 8 correspondências, estima a matriz fundamental de forma linear, solucionando a equação n m T i F m i 2 (2.49) i=1 Para a determinação da matriz fundamental na presença de outliers, podese utilizar estimadores robustos como o RANSAC [Fischler and Bolles, 1981], o LMedS [Rousseeuw, 1984] [Stewart, 1999], o MAPSAC [Armangué and Salvi, 2003] [Torr and Murray, 1997] [Torr, 2002], o M-Estimators [Zhang, 1998] [Stewart, 1999], o GANSAC [Rodehorst and Hellwich, 2006], dentre diversos outros. O M-estimators tenta reduzir os efeitos dos outliers pesando o residual de cada ponto, o resíduo é mostrado pela equação 2.50, onde r o resíduo e i o número do par de pontos na lista de pontos correlacionados. Muitas funções peso diferentes foram propostas, cada uma sendo uma nova variação do método. Os resultados obtidos são muito bons na presença de outliers, mas são ruins quando os pontos não estão bem localizados. r i = m i T F m i (2.50) O LMedS e o RANSAC são técnicas muito similares. Ambas as técnicas são baseadas na seleção randômica de um conjunto de pontos que são usados para a estimação linear da matriz fundamental. A diferença entre eles é a forma de determinar a melhor estimação da matriz fundamental. O LMeds calcula a distância entre os pontos e a linha epipolar, para cada estimação de F, para escolher a melhor matriz, o método minimiza a mediana dos valores.

59 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 43 O RANSAC calcula o número de inliers, ou verdadeiras correlações, para cada matriz F e escolhe a que maximiza esse número. Tendo eliminado os outliers, a matriz F é recalculada com o objetivo de obter melhorar a estimação. A principal limitação de ambas as técnicas é a falta de repetitividade devido ao modelo aleatório de seleção dos pontos. O RANSAC precisa da informação do percentual de outliers, que geralmente não se conhece, enquanto o LMedS não precisa dessa informação, porém consome bem mais tempo de processamento. Foram testados diversos estimadores robustos em [Huang et al., 2007], com diversas condições de imagens, porém o estimador que obteve melhores resultados com imagens subaquáticas foi o M-Estimator, com o LmedS e o RANSAC também apresentando ótimos resultados, considerando imagens com baixo percentual de outliers Comparativo Entre Métodos Nas seções anteriores, alguns métodos para estimação de movimento foram detalhados, com destaque para os métodos no domínio espacial, baseados em características. Dentre eles, o detector de Harris, o algoritmo de rastreamento de Kanade-Lucas-Tomasi (KLT) e o SIFT foram abordados com mais detalhes. Um comparativo entre eles faz-se necessários, definindo as vantagens e desvantagens de cada um dos métodos. Um fator a ser considerado, como comparativo, é a quantidade de pontos de interesse encontrados em uma imagem. Tanto o detector de Harris, quando o KLT enfatizam as variações de intensidade em uma janela, utilizando uma medida muito similar. O detector de Harris utiliza um operador R, definido na equação 2.24, para determinar bons pontos a partir da matriz H, enquanto no método KLT essa matriz é denominada G, sendo definida similarmente a matriz H na equação 2.25, os bons pontos são definidos diretamente pelos autovalores da matriz G. Essas duas matrizes, H e G, também são conhecidas como matriz Hessiana, cujos autovalores permitem encontrar os pontos de máximos e mínimos de uma função, no caso a imagem uma função 2D. Na prática, ambos os métodos encontram quase os mesmos pontos, a única diferença é que o KLT impõe uma restrição quanto à distância espacial entre pontos de interesse detectados [Yilmaz et al., 2006]. O SIFT tem uma abordagem diferente para detectar pontos, utilizando várias escalas e

60 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 44 detectando pontos de máximo e mínimo comparando com seus vizinhos em escala superior e inferior, conforme mostra figura Por conseqüência, o SIFT localiza muitos pontos, porém ele faz restrições a esses pontos, como mostrado na seção , dentre estas restrições, está a utilização das curvaturas principais através da matriz H. A figura 2.20 mostra um comparativo do número de pontos detectados pelas três principais abordagens exploradas nesse trabalho, pode-se notar que o SIFT detecta um número superior de pontos, em relação as outras duas outras abordagens. O KLT detecta mais pontos que o Harris, devido a esta implementação utilizada buscar pontos em várias escalas, ou seja, utiliza uma abordagem piramidal. Na teoria, a matriz H é invariante a rotação e translação, porém não é invariante à escala, como mostra figura Sendo assim, o KLT e o Harris tem problemas em correlacionar pontos que realizam movimentos desse tipo. O SIFT, por outro lado, é invariante à escala e, parcialmente, invariante à transformações afim e de iluminação. Ele também apresenta uma relativa robustez a ruído e a oclusão, devido a utilização de descritores locais, sendo a oclusão um problema típico de ambientes dinâmicos. Figura 2.20: Comparativo entre os três métodos, Harris, KLT e SIFT na detecção de características. Quanto ao matching, sendo detector de Harris um método apenas para detecção de

61 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 45 Figura 2.21: Variância à escala apresentada pelos métodos KLT e Harris. pontos, é necessário um método a parte para fazer a correlação entre os pontos, como os citados na seção 2.5.3, tendo como problemas principais, a detecção de pontos com movimentos de escala e cisalhamento. Quando o deslocamento relativo entre imagens consecutivas é pequeno, pode-se utilizar o modelo translacional do KLT, tendo boa performance, visto que nesta situação as variações de escala e affine são muito pequenas, não afetando o matching. O problema maior está na variação de iluminação, que cria uma variação de brilho na imagem, sendo o KLT muito sensível a esse tipo de mudança. No caso de deslocamentos maiores, o modelo afim pode ser utilizando no KLT, obtendo assim melhores resultados que o modelo puramente translacional. A correlação entre pontos no SIFT, se dá através de descritores locais, sendo extremamente simples e muito confiável, apresentando características desejáveis como robustez a iluminação e a ruído, como já citado anteriormente. Apesar do SIFT se mostrar um método muito mais robusto que os outros, ele apresenta problemas de performance, sendo muito custoso computacionalmente, o que faz com que a taxa de frames seja baixa, embora o SIFT seja robusto a deslocamentos maiores. Já o Harris acompanhado de um método para matching como o CS, apresenta performance em tempo real. O KLT tem um desempenho intermediário a ambos os métodos.

62 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO Matriz de Estimativa do Movimento Após a determinação dos pares de pontos correlacionados entre duas imagens consecutivas, é necessário determinar o deslocamento do robô, ou da câmera, durante o intervalo de tempo entre a captura destas imagens. Entre os intervalos de tempo t i e t i +1, a câmera se move em uma trajetória indeterminada. O objetivo é determinar o deslocamento realizado D i que leva a câmera de uma posição e orientação no tempo t i para uma nova posição e orientação no tempo t i + 1. Uma das formas de se obter isso é através de geometria epipolar, explicada na seção Nela é determinada a matriz fundamental, porém para determinar o deslocamento é necessária outra matriz, a matriz essencial, sendo ela definida pela equação 2.51, com t e R descrevendo as matrizes que representam o movimento de translação e rotação, respectivamente. Para se obter essas duas matriz, a partir da matriz E é utilizado a fatoração SVD (Single Value Decomposition), mencionado na seção 2.3.2, que gera as matrizes U, S e V. Algumas propriedades das matrizes essenciais são importantes, a matriz S gerada pelo SVD é uma matriz diagonal e as matrizes U e V tem determinante igual a 1. E = tr (2.51) A matriz essencial relaciona-se com a matriz fundamental através da equação 2.52, sendo a matriz A os parâmetros intrínsecos da câmera, explicados em detalhes na seção 2.3.1, e a matriz F a matriz fundamental mostra na seção F = A T EA 1 (2.52) Existem diversas formas de se obter a matriz essencial, dentre elas a mais utilizada é a estimativa linear [Izquierdo and Guerra, 2003]. Um modo de se obter a matriz é através da matriz fundamental e de uma câmera calibrada. Esse método mostra-se muito interessante, visto que já foi determinado, em outras seções, meios de se obter, tanto a matriz fundamental quanto a matriz de parâmetros intrínsecos. Para maiores detalhes sobre a matriz essencial [Choset et al., 2005]. Outra forma de obter-se o deslocamento da câmera é através da matriz de homografia,

63 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 47 visto que ela fornece uma projeção plana de duas vistas da imagem, logo é possível determinar o deslocamento da câmera, pela diferença entre o ponto central na imagem I no tempo t e no tempo t + 1, também é possível determinar-se a orientação da câmera, isto se respeitadas as premissas da seção 2.1 de que o terreno subaquático é plano, ou aproximadamente plano. A matriz homográfica baseia-se na geometria projetiva, explicada na seção sec:transformacao, conforme mostra a equação 2.53, considerando m um ponto homogêneo na imagem e m seu correspondente na imagem consecutiva. Sendo a matriz H uma matriz 3 3, com até oito DOF, mostrada na equação 2.54, tal matriz H diferente da matriz Hessiana descrita na seção m = Hm (2.53) h 11 h 12 h 13 H = h 21 h 22 h 23 (2.54) h 31 h 32 1 A matriz de homografia é uma transformação projetiva 2D linear, cujos seus parâmetros podem representar translação, rotação, escala, cisalhamento(shear) e deformações perspectivas. A figura 2.22 [Neves, 2006] mostra os modelos de movimento que descrevem uma transformação planar [Garcia, 2001]. A matriz de homografia com 8 DOF representa o movimento mais complexo, porém ela não é mais adequada para qualquer movimento, a matriz mais adequada depende do movimento da câmera, ou seja, do veículo. Com um conhecimento prévio dos movimentos realizados pelo veículo, pode-se determinar qual a melhor matriz de homografia para ele, ou seja, a que melhor estimará seu movimento, visto que modelos mais complexos podem determinar erroneamente, movimentos do veículo. Para a determinação da matriz de homografia a partir de um conjunto de pares de pontos correlatos, no mínimo quatro, se utiliza da equação 2.55, também podendo ser definida como A h = b. Essa equação pode ser resolvida através do método pseudoinverse least squares, mostrado na equação Esse método envolve a inversão da matriz (A T A) 1, o que pode falhar caso a matriz seja singular ou muito próxima da

64 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 48 Figura 2.22: Movimentos representados pela matriz de homografia. singularidade [Garcia, 2001], por este motivo é utilizado o método SVD [Stewart, 1992]. Assim a solução utilizando SVD para a equação 2.55 é determinada pela equação 2.57, sendo m o número de linhas da matriz A, U (i) e V (i) representam vetores das colunas i da matriz A e W (i,i) representa o valor da posição (i, i), ou seja, o valor da diagonal da matriz A. A equação 2.57 tem como solução a matriz de homografia normalizada [Garcia, 2001]. x 1 0 x n 0 y 1 0 y n x 1 0 x n 0 y 1 0 y n x 1.x 1 y 1.x 1 x n.x n y n.x n x 1.y 1 y 1.y 1 x n.y n y n.y n T h 11 h 12 h 13 h 21 h 22 h 23 h 31 h 32 x 1 y 2 =. x n y n (2.55) h = (A T A) 1 A T b (2.56)

65 CAPÍTULO 2. SISTEMAS VISUAIS PARA LOCALIZAÇÃO 49 h = m i=1 U (i) b W (i,i) V (i) (2.57) Essa matriz normalizada precisa ser desnormalizada. Isto ocorre através de uma matriz de transformação T, demonstrada na equação 2.58, maiores detalhes podem ser encontrados em [Garcia, 2001], d é o distância média dos pontos até o centróide e (x, y) representa o centróide da imagem. Com a matriz T, representando a matriz de transformação da imagem, e T, representando a matriz de transformação da imagem consecutiva, na equação 2.59 se obtém a matriz de homografia desnormalizada. T = 0 ( 2 x) d 0 2 ( 2 y) d d d (2.58) H = T 1 H norm T (2.59)

66 Capítulo 3 Mapeamento de Ambientes Conhecer o ambiente sob o qual o robô está inserido é parte importante para realização a localização além de permitir a navegação. Nesse capitulo será feita uma introdução ao mapeamento robótico, a partir de uma abordagem quantitativa e qualitativa, demonstrando vantagens e desvantagens de cada abordagem. 3.1 Introdução Um aspecto importante na robótica é mapear ambientes, isto significa conhecer o espaço de configuração livre do robô e estabelecer referências, ou marcos, para que o robô seja capaz de calcular sua posição no ambiente[latombe, 1991]. O espaço de configuração de um robô é o espaço vetorial constituídos das variáveis de configuração. Em robôs rígidos, trabalhando em um espaço 2D, estas variáveis são as coordenadas de posição X e Y, além da orientação θ, tendo assim três graus de liberdade. Já um robô subaquático típico trabalhando em um espaço 3D, tem seis graus de liberdade, conforme mostrado na seção 2.5. Embora como citado anteriormente, a grande maioria dos trabalhos consideram rolamento e arfagem como medidas estáveis e sem necessidade de controle, tendo assim quatro graus de liberdade [Garcia, 2001]. Assim, o espaço de configuração livre é o subconjunto do espaço de configuração, compreendendo as tuplas desse espaço no qual o robô não está em contato com nenhum objeto (obstáculo), nem se encontra sobreposto ao mesmo. Vale lembrar que esse espaço tem como dimensão o número de graus de liberdade do robô, e não do espaço de trabalho, do 50

67 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 51 mesmo modo para o espaço de configuração semi-livre. O chamado espaço de configuração semi-livre é quando o robô não está sobreposto a nenhum obstáculo, embora passa estar em contato com o mesmo [Choset et al., 2005]. Para conhecer o espaço de configuração de um robô, não basta apenas conhecer o ambiente, deve-se ter um conhecimento, além da geometria do robô, da geometria dos obstáculos. Esta pode ser conhecida através de informação sensorial, ou por algum conhecimento prévio sobre os mesmos. 3.2 Modelagem Geométrica Exata Algumas abordagens para a navegação de um robô, ou seja, para o planejamento de trajetórias, dependem do conhecimento da geometria exata do ambiente e esta somente pode ser percebida através de sensores de alta precisão, alto custo e larga banda passante de informação, demandando alto poder computacional para seu processamento. Tais requisitos sensoriais podem ser preenchidos com o uso de radares, sonares, visão binocular, dentre outros. Em geral, é necessário avaliar com precisão à distância até os obstáculos. Em todos esses casos, torna-se necessário um complexo e custoso processamento dos sinais recebidos, mas, como resultado, é possível aplicar métodos bastante eficientes de navegação baseando-se no mapa obtido. Entretanto, sistemas de planejamento de trajetórias baseados em geometria exata podem ser facilmente aplicados quando o ambiente é conhecido à priori, tornando os requisitos sensoriais e de processamento muito mais flexíveis [Pinto, 2005] Roadmaps Um dos métodos mais utilizados para modelagem exata é o método de roadmap, que consiste em criar uma série de linhas contínuas no espaço de configuração sobre as quais é possível a navegação livre de colisões com os obstáculos, semelhante a um mapa rodoviário do ambiente. Assim, todos os pontos do roadmap devem pertencer, obviamente, ao espaço de configuração semi-livre [Latombe, 1991]. Assim como as pessoas usam as rodovias enquanto dirigem seus automóveis, robôs utilizam os roadmaps. No lugar de planejarem todos os possíveis caminhos secundários

68 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 52 até o seu destino, as pessoas costumam planejar pegar uma rua que leve a uma rodovia, e finalmente quando chegam próximo ao seu destino, pegam uma rua que leve até lá. Assim o maior tráfego ocorre nas rodovias que levam o motorista de um lugar próximo ao inicio do trajeto até a proximidade de seu destino [Choset et al., 2005]. Nessa abordagem pode-se facilmente se utilizar um algoritmo de Dijkstra [Dijkstra, 1959], ou algum outro algoritmo probabilístico como o A [Dechter and Pearl, 1985] para determinar o melhor caminho do ponto origem ao destino. Os principais métodos de roadmap são os diagramas de Voronoi e os grafos de visibilidade [Latombe, 1991], embora existam diversos como, por exemplo, silhouettes que pode ser vistos em detalhes em [Choset et al., 2005]. Os grafos de visibilidade é o conjunto de segmentos de reta entre os pares de vértices dos obstáculos e os pontos de origem e destino do caminho. Todo segmento de reta que estiver em uma região livre é adicionado ao grafo de visibilidade, ou seja, as arestas do grafo são todas as linhas retas que podem ligar dois nodos sem interceptar obstáculos. As principais vantagens desse método são o algoritmo simples para gerar o grafo de visibilidade e, o grafo gerado, é completo, pois encontra todos os caminhos além de permitir a escolha do caminho ótimo, em termos de distância. Porém ele apresenta algumas desvantagens como gerar um grande número de caminhos possíveis a cada novo obstáculo encontrado, o que pode inviabilizar seu uso em tempo real, e também passar muito próximo aos obstáculos, o que pode gerar colisões. Esse tipo de mapa não se aplica à ambientes dinâmicos nem quando os obstáculos não têm uma geometria polinomial. Na figura 3.1 pode-se ver um exemplo de ambiente a ser mapeado, enquanto na figura 3.2 tem-se o grafo de visibilidade gerado, além de ter-se o menor caminho entre a origem e o destino definido. Os diagramas de Voronoi aplicam-se a qualquer geometria de obstáculos. Nesse tipo de roadmaps, as rodovias são os conjuntos de retas e parábolas do espaço de configuração semi-livre eqüidistantes dos dois, ou mais, obstáculos próximos. Os diagramas de Voronoi não permitem ao robô encontrar a distância ótima entre os pontos de origem e de destino, porém eles dificultam a colisão com os obstáculos, visto que o robô fica o mais distante possível dos mesmos. Ele permite que o robô tenha maior confiabilidade de movimento, porém os algoritmos para sua geração não são tão simples e eficiente como os que geram

69 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 53 Figura 3.1: Mapa do ambiente para gerar grafo de visibilidade. os grafos de visibilidade. A figura 3.3 mostra um diagrama de Voronoi para um mapa com três obstáculos, além de um ponto de origem(start) e um ponto de destino(goal). A linha mais grossa representa o caminho escolhido para ser percorrido Decomposição Celular Uma abordagem bastante conveniente no planejamento de trajetórias é a decomposição celular do espaço de configuração livre [Latombe, 1991]. Esta abordagem consiste em decompor o espaço de configuração livre em células dentro das quais a navegação do robô é trivial. Por exemplo, uma forma poligonal convexa onde é possível transitar entre dois pontos quaisquer do interior desta em linha reta. O espaço de configuração livre do robô é, então, descrito sob a forma de células e vizinhanças entre estas. Uma vizinhança existe quando duas células têm uma conexão, ou seja, são adjacentes. O planejamento de trajetórias pode ser feito pela busca em um grafo onde as células são os nodos e as vizinhanças são as arestas, obtendo uma seqüência de células a serem percorridas, desde a célula onde o robô inicialmente está localizado, até a célula onde se encontra sua posiçãoobjetivo. Como dito anteriormente, a navegação dentro de uma célula é trivial. É possível transitar entre células adjacentes de maneira segura guiando o robô, por exemplo, pelo

70 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 54 Figura 3.2: Grafo de visibilidade com a escolha do melhor caminho entre origem e destino. ponto médio da adjacência entre as células [Pinto, 2005]. A decomposição pode ser de dois tipos: decomposição exata ou aproximada [Latombe, 1991]. A decomposição celular exata exige uma geometria poligonal para os obstáculos e é executada traçando-se linhas paralelas cruzando cada um dos vértices de todos os obstáculos. Considerando tais linhas e as arestas dos obstáculos como delimitadores, obtém-se diversas células de geometria poligonal convexa que correspondem a áreas totalmente contidas no espaço de configuração semi-livre ou áreas totalmente excluídas deste espaço. Obviamente são de interesse apenas as células contidas no espaço de configuração semi-livre. [Choset et al., 2005] chama esse método de trapezoidal e dá maiores detalhes sobre ele. A partir das células, se cria um grafo de conectividade de acordo com as adjacências das células, as figuras 3.4, 3.5 e 3.6 mostram todo o processo de determinação de uma trajetória a partir do método de decomposição celular exata. A decomposição celular aproximada, ou decomposição em grids, não exige geometria poligonal e é realizada decompondo recursivamente o espaço de configuração livre em porções retangulares até que estas porções sejam suficientemente pequenas (grids). Cada porção é dividida em outras menores toda vez que não estiver totalmente contida no espaço de configuração livre e não for pequena demais, segundo critérios previamente estabelecidos. Chega-se, então, a um ponto em que o espaço de configuração livre está

71 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 55 Figura 3.3: Diagrama de Voronoi. suficientemente bem detalhado, porém este dificilmente será totalmente conhecido, devido ao critério de parada do algoritmo. O espaço de configuração livre é aproximadamente descrito por um conjunto de células de diferentes tamanhos e suas relações de vizinhança, permitindo um planejamento de trajetória através de busca em grafo. Entre as células obtidas, são de interesse apenas as que estiverem totalmente contidas do espaço de configuração livre [Pinto, 2005]. Existem dois métodos predominantes de decomposição em grids, o método uniforme no qual todas as células tem o mesmo tamanho e o quadtree no qual as células próximas a obstáculos são menores. A figura 3.7 ilustra esses dois métodos Gradiente de Campo Potencial Latombe propõe ainda uma terceira abordagem, o gradiente de campo potencial [Latombe, 1991], no qual faz uma analogia com uma carga elétrica submetida a potenciais elétricos. Uma carga positiva, por exemplo, é atraída por potenciais negativos e repelida por potenciais positivos. A carga tende a se mover no sentido oposto ao do gradiente do campo potencial, ou seja, no sentido em que o potencial mais diminui. O planejamento de trajetória é calculado assumindo que o robô tem potencial positivo, que o ponto-objetivo no espaço de configuração livre tem um potencial negativo que varia linearmente com a distância e que os obstáculos, limites do espaço de configuração

72 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 56 Figura 3.4: Decomposição do mapa em células. livre, têm potencial positivo que varia não-linearmente com a distância, sendo intenso nas proximidades e decaindo rapidamente com a distância. O vetor velocidade pretendido para o robô tem a direção do gradiente do campo potencial estabelecido e o sentido que o leva a um potencial menor. Com isso o robô tende a se aproximar da posição-objetivo, com potencial menor, e se afastar dos obstáculos, com potencial maior. O potencial dos obstáculos deve decair rapidamente com a distância para que estes não influenciem demasiadamente o robô quando este estiver distante. O sucesso desta abordagem é sensível a mínimos locais, podendo falhar, já que o mínimo global é o objetivo. As vantagens da abordagem de campo potencial são a simplicidade e possibilidades de calcular trajetória do robô sem o conhecimento global do ambiente. É necessário apenas conhecer as coordenadas da posição-objetivo e os obstáculos próximos, já que os demais têm influência desprezível [Pinto, 2005]. Essa abordagem além do problema dos mínimos locais e da dificuldade em ultrapassar obstáculos muito próximos, ainda é muito custosa computacionalmente. Para permitir aplicações em tempo real, pode-se utilizar o método VFF (Virtual Force Field - Campo de força virtual), uma adaptação do gradiente de campo potencial [Borenstein and Koren, 1989]. A figura 3.8 mostra como é gerado o gradiente de campo potencial do mapa, primeira-

73 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 57 Figura 3.5: Grafo de conectividade criado a partir das células. mente, se gera o campo potencial a partir dos pontos de origem e destino do robô, e posteriormente o campo potencial dos obstáculos, o somatório destes campos gera o gradiente do campo potencial do mapa. 3.3 Modelagem Topológica Qualitativa Quando não se tem por objetivo extrair a geometria do ambiente diretamente da informação sensorial, pode-se usar outra abordagem, bem diferente do mapeamento geométrico exato, é o mapeamento topológico qualitativo [Kuipers and Byun, 1988]. As informações sensoriais são memorizadas ao longo da navegação, de forma que seja possível identificar situações já conhecidas, apenas comparando as informações sensoriais registradas. Como não existe a necessidade de se extrair significado geométrico das impressões sensoriais, pode-se utilizar sensores bem menos precisos e com custos reduzidos, além de não necessitar de um poder computacional elevado. Apesar disso ainda se tem um mapa com uma boa confiabilidade, embora possa ocorrer inconsistências [Zimmer and von Puttkamer, 1994]. Este tipo de mapeamento pode ser feito utilizando qualquer sensor influenciável por alguma característica relevante do ambiente, ou seja, características que mudam quando o robô muda de posição e permanece constante quando o robô está parado, fazendo com

74 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 58 Figura 3.6: Caminho escolhido entre origem e destino através das bordas das células. Figura 3.7: Mapa em forma de grids. Na esquerda, uma distribuição uniforme e à direita uma distribuição quadtree. que seja possível a localização localmente e globalmente no ambiente. Obviamente, a quantidade de informações sensoriais diferentes, considerando suas pequenas variações é infinita, portanto sendo impossível de representar, sendo assim, é necessário registrar apenas informações relevantes, tais situações devem ser capazes de representar adequadamente, por similaridade, uma quantidade muito maior de impressões sensoriais, de forma que exista uma correspondência de um para muitos entre as situações registradas e as experimentadas [Pinto, 2005]. Essa técnica permite que se conheça uma porção significativa do espaço de configuração livre, embora não seja possível conhecer todo o espaço como no método geométrico exato.

75 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 59 Figura 3.8: A partir do mapa, à esquerda, gera-se dois campos potenciais, um a partir dos obstáculos e outro dos pontos de origem e destino, gerando como resultado o gradiente de campo potencial do mapa, à direita. Para isso é necessário o registro continuo das situações sensoriais experimentadas pelo robô, associado a uma boa estratégia de exploração. Pode ocorrer a existência de situações sensoriais iguais que representam posições distintas. Logo é necessário além acrescentar uma estimativa da posição do robô dentro do ambiente além da informação sensorial. Mesmo que imprecisa como no caso de odometria, sujeita a derrapagem (drift-effect) ou da odometria visual, sujeita as mais diversas dificuldades como mencionado anteriormente no capítulo 2. Para uma melhor estimativa da posição se utiliza as impressões sensoriais, visto que a estimativa de posição apresenta erros cumulativos, logo impressões sensoriais anteriores, normalmente, apresentam erros menores, tornando possível a localização do robô, mesmo decorrido um longo espaço de tempo. Escolher as situações sensoriais a serem registradas é muito importante no mapeamento topológico. Assume-se que situações sensoriais semelhantes correspondem a posições semelhantes no ambiente, entre as quais o robô pode transitar. A semelhança entre duas situações é representada por relações de vizinhança a serem também registradas. As relações de vizinhança, correspondendo a possíveis transições entre situações sensoriais, bem como as próprias situações registradas, constituem um grafo que mapeia o ambiente. O mapeamento, ou seja, a escolha das impressões sensoriais relevantes, pode ser realizado através de regras explícitas [Kuipers and Byun, 1988], ou com o uso de mapas auto-organizáveis, que são estruturas de células e arestas utilizadas para o mapeamento

76 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 60 muitos para um, auto-ajustável, de pontos de um espaço vetorial para um número reduzido de pontos desse mesmo espaço. Tal processo também pode ser chamado de redução dimensional [Verbeek et al., 2002]. Mapas auto-organizáveis têm a característica de eleger automaticamente pontos representativos desse espaço e estabelecer relações de vizinhança entre eles, baseando-se em semelhanças, segundo um critério pré-definido, como distância euclidiana [Pinto, 2005]. O espaço vetorial mapeado é composto pelo produto cartesiano das variáveis sensoriais: posição e informações sensoriais. Cada situação sensorial registrada é uma célula do mapa e o planejamento de trajetória resume-se a uma busca por um caminho no grafo, podem-se utilizar os mesmos métodos citados na seção o algoritmo de Dijkstra [Dijkstra, 1959], ou algum outro algoritmo probabilístico como o A [Dechter and Pearl, 1985] para determinar o melhor caminho entre a origem e o destino do robô Mapas Auto-Organizáveis Os mapas auto-organizáveis são grades neurais baseadas na aprendizagem competitiva e não-supervisionada. Os neurônios são dispostos em nós de uma grade, geralmente 1D ou 2D, embora sejam possíveis dimensões maiores, elas não são usuais. Esses neurônios são capazes de realizar mapeamentos de pontos de um espaço vetorial para um conjunto limitado de pontos deste mesmo espaço. Este mapeamento muitos para um é feito associando um conjunto de pontos semelhantes, para um ponto eleito como representante deste conjunto, também chamado de classe [Freeman and Skapura, 1991]. Os SOM (Self Organizing Maps) têm por característica serem ideais para detecção de agrupamento (clusters), ou seja, pode-se afirmar que um mapa auto-organizável é capaz de classificar, por semelhança, pontos de um espaço vetorial em um número limitado de classes. Cada classe é composta por um vetor de informações, quando se adiciona uma nova informação ao mapa é eleito um vetor como representante de uma classe, que tende a ser o caso médio entre a informação adicionada e o vetor da classe escolhida, e fica armazenado em uma célula do mapa. Uma característica importante dos SOMs é as relações de vizinhança entre as células do mapa que acrescentam informações úteis, como semelhança entre classes. Através das relações de vizinhança é possível, também, extrair indicações aproximadas sobre

77 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 61 a densidade de probabilidade da distribuição de pontos do espaço vetorial mapeado [Freeman and Skapura, 1991]. Mapas auto-organizáveis são capazes de aprendizado, encontrando automaticamente uma boa maneira de mapear os pontos apresentados a ele. Este processo se chama treinamento e consiste em apresentar repetidamente ao mapa os pontos a serem mapeados. Como resultado, os vetores representantes de classe são eleitos e, dependendo da estratégia de atualização destes vetores, também chamados pesos, classes semelhantes tendem a ser vizinhas. O treinamento é um processo iterativo que gradualmente produz convergência até que o mapa possa ser considerado estável. As células do mapa inicialmente têm pesos aleatórios dentro de um intervalo e estes gradualmente migram para os valores apropriados conforme os casos de treinamento são repetidamente apresentados [Pinto, 2005] Redes de Kohonen As redes de Kohonen representam um modelo de rede neural com aprendizado não supervisionado largamente conhecido e utilizado [Lippmann, 1987]. Elas foram propostas inicialmente em 1982 pro Teuvo Kohonen [Kohonen, 1982] e utilizadas nas mais diferentes aplicações [Kohonen, 2001] é um tipo de SOM com topologia fixa de células com relação de vizinhança entre elas, formando uma grade n-dimensional, sendo 2D e 3D as mais comuns. O treinamento da rede se dá iterativamente, a partir de uma inicialização aleatória dos vetores das células, também conhecidos como pesos. Para cada novo vetor apresentado a rede, é eleita uma célula vencedora, também conhecida como neurônio vencedor. O neurônio escolhido como vencedor é aquele que mais se assemelha ao peso apresentado a rede, normalmente se utiliza como medida a distancia euclidiana [Kohonen, 2001]. O vetor associado à célula vencedora, assim como os associados às células vizinhas, é deslocado em direção ao vetor apresentado segundo uma fração que é função da taxa de aprendizado e da função de vizinhança. A taxa de aprendizado é um parâmetro que define a rapidez com que o mapa se adapta aos pesos apresentados, porém é necessário um compromisso entre a rapidez e a facilidade de convergência. Este processo de ajuste dos pesos das células vizinhas, além do ajuste da célula vencedora, tem inspiração biológica nas células nervosas corticais, pois existem evidências, tanto

78 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 62 anatômicas quanto fisiológicas, de que existe uma interação lateral entre esses neurônios. Existe uma excitação lateral de curto alcance, cerca de 50 a 100 µ m, já em um raio de 200 a 500 µ m existe uma região inibitória. Uma ação excitadora mais fraca ocorre após a área de inibição e pode alcançar até vários centímetros [Kohonen, 1982]. A figura 3.9 mostra essa interação lateral nos neurônios corticais. Maiores detalhes sobre as redes de Kohonen podem ser encontrados em [Freeman and Skapura, 1991]. Figura 3.9: Interação lateral nos neurônios corticais nos primatas Estruturas Celulares Crescentes As estruturas celulares crescentes (GCS) foram propostas por Bernd Fritzke [Fritzke, 1993a], buscando resolver a maior limitação das redes de Kohonen, a topologia fixa, visto que para definir o tamanho ótimo da rede é necessário ter algum conhecimento a priori, o que normalmente não está disponível [Fritzke, 1993b]. Sem esse conhecimento pode-se limitar a capacidade da rede. Esse tipo de SOM com topologia variável permite que a rede cresça a partir de uma topologia inicial mínima n-dimensional. Independentemente da dimensão da topologia inicial, cada célula contêm um vetor da dimensão do espaço mapeado. O treinamento ocorre de maneira muito semelhante às redes de Kohonen, para cada caso apresentado para a rede uma célula vencedora é eleita, deslocando o vetor da célula vencedora e das vizinhas uma fração em relação ao caso apresentado.

79 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 63 Porém, essas estruturas são capazes de crescer frente à necessidade de melhor classificação dos pontos do espaço. A cada certo número de erros de classificação, uma nova célula é criada. Esse erro de classificação é definido pela distância do vetor apresentado com o melhor vetor encontrado no mapa, caso seja maior que um determinado valor é definido como um erro de classificação. Criar uma célula nas GCS significa eliminar uma aresta e introduzir uma célula que terá como vizinhos, as células ligada pela aresta eliminada e os vizinhos em comum da célula. A aresta a ser eliminada é a maior aresta que parte da célula com maior número de erros de classificação acumulado, ou seja, a aresta que liga as duas células com vetores mais distantes entre si. O vetor da nova célula criada tem como valor, o valor médio entre os vetores das células ligadas pela aresta eliminada. Cada célula desse mapa tem associado ao seu vetor, um número que define a quantidade de vezes que ocorreu erro de classificação, ou seja, quantas vezes essa célula foi declarada como vencedora, mas sua distância ao caso apresentado era maior que um limiar. Assim quando uma célula nova é criada, esse valor é inicializado com o valor médio dos erros de classificação dos vizinhos ligados a ela. Além disso, os vizinhos dessa nova célula têm seus erros de classificação reduzidos. As GCS apresentam melhores taxas de classificação e clusterização que as redes de Kohonen [Fritzke, 1993b], porém sua implementação é bem mais complicada devido as suas características dinâmicas. A figura 3.10 mostra um comparativo entre mapas gerados por redes de Kohonen e pelas estruturas células crescentes de Fritzke, pode-se notar que as GCS apresentam uma melhor representação. 3.4 Comparativo Entre as Abordagens Todo robô para poder seguir uma trajetória, precisa de um bom controle em malha fechada, para isso ser realizado, uma medida de posição e orientação do robô confiável é necessária. Visto que existem erros de estimação dessas variáveis, elas precisam estar sendo corrigidas constantemente de forma a se ter um controle efetivo do robô. Na abordagem geométrica exata, tal correção é bastante complexa, sendo necessário comparar o fragmento do ambiente percebido em cada momento com o mapa anterior-

80 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 64 Figura 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. mente construído, procurando correspondências geométricas entre dois diagramas possivelmente defasados angularmente e linearmente [Pinto, 2005]. Já na abordagem topológica essa correção acontece de uma maneira bem mais simples. Considerando que o erro nas coordenadas de posição encontra-se dentro de um limite previsível, a célula do mapa que contém, em seu vetor de informação sensorial, as coordenadas de posição mais corretas é vizinha próxima da célula cuja informação sensorial mais se assemelha à informação sensorial correntemente captada pelo robô. Como o erro em posição e orientação é sempre acumulativo, as informações anteriores, já registradas no mapa, são sempre mais corretas que as informações atuais estimadas pelo robô. Tomando-se a célula com vetor sensorial mais semelhante à situação corrente e suas vizinhas próximas, pode ser obtida uma correspondência entre as coordenadas de

81 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 65 posição registradas nas células e o restante da informação sensorial também registrada nestas [Zimmer and von Puttkamer, 1994]. Outra vantagem da abordagem topológica, em relação à exata, é o poder computacional necessário para a construção do mapa, além dos requisitos de processamento da informação sensorial serem reduzidos, o treinamento de mapas auto-organizáveis é pouco custoso. Os algoritmos envolvidos no mapeamento topológico qualitativo são também de mais simples implementação que os algoritmos utilizados no mapeamento geométrico exato [Zimmer and von Puttkamer, 1994]. O mapeamento topológico ainda mostra-se mais robusto a imprecisões sensoriais. No mapeamento geométrico exato, um erro ou ruído na informação sensorial pode comprometer completamente o mapa e a percepção do ambiente, enquanto que no mapeamento topológico, um erro sensorial apenas distorce suavemente e localmente o mapa obtido, que tende a ser esquecido ao longo do reconhecimento do ambiente, estabilizando com os valores corretos. Porém essa tolerância a erros causa um problema, citado em [Zimmer and von Puttkamer, 1994], a possibilidade de inconsistência, que podem reduzir a confiabilidade do mapa. Essas inconsistências tendem a serem pequenas, visto que a abordagem topológica prevê erros e imprecisões sensoriais, advindas de sensores de baixa qualidade ou ruídos. Um fato que pode gerar inconsistência é que de apenas uma porção finita do espaço está sendo mapeado, logo existe sempre mais de uma trajetória para o robô transitar entre duas impressões sensoriais, o que torna difíceis garantias sobre a segurança de transito do robô. Outras fontes de inconsistência são previstas, como o fato de que as impressões sensoriais eleitas como relevantes podem não existir no ambiente, mas apenas representar um conjunto de informações sensoriais captadas, ou seja, a informação por si só não existe, embora esteja no mapa. Também o fato de impressões sensoriais distantes serem rotuladas como adjacentes visto que podem ser semelhantes [Zimmer and von Puttkamer, 1994]. No mapeamento topológico a percepção do ambiente é muito mais lenta que no geométrico exato, pois como não há uma interpretação geométrica dos dados sensoriais, o robô não é capaz de identificar como navegável, ou não, uma região que ainda não esteve [Pinto, 2005].

82 CAPÍTULO 3. MAPEAMENTO DE AMBIENTES 66 Por fim, pode-se afirmar que o custo (computacional, sensorial, etc.) e a aplicação irão determinar qual a abordagem melhor se adapta ao sistema. Se colisões são criticas e a rapidez de reação ao ambiente é fundamental, a abordagem geométrica exata leva vantagem, mas quando a robustez e simplicidade forem necessárias, é conveniente utilizar o mapeamento topológico, principalmente se o ambiente for dinâmico.

83 Capítulo 4 Metodologia - SLAM Visual 4.1 Introdução O presente trabalho visa o desenvolvimento de um sistema visual, que permita a localização e o mapeamento simultâneos de um robô, para inspeção de um ambiente subaquático. A proposta apresentada nesse trabalho é inovadora, embora existam diversos trabalhos para localização e mapeamento visual em ambiente subaquático, a grande maioria deles baseia-se na utilização de mosaicos [Garcia et al., 2001] [Gracias and Santos-Victor, 2000] utilizando diversos métodos de extração de movimento, porém não foi encontrado na bibliografia nenhum método que utiliza o SIFT para extração de características visuais subaquáticas e, tão pouco, que utilize mapas topológicos para o mapeamento. Algumas abordagens utilizando SIFT para SLAM visual foram propostas por Se e Lowe [Se et al., 2002] [Se et al., 2005]. Estas utilizam o método SIFT em um sistema visual estéreo para determinação de marcos visuais, juntamente com odometria, utilizando estimação ego-motion e filtro de Kalman, realizando SLAM. Mahon e Williams [Mahon and Williams, 2004] propõem um sistema visual para SLAM subaquático utilizando filtro ótico de Lucas-Kanade e filtro de Kalman estendido para tal, com o auxílio de um sonar. Booij et al. [Booij et al., 2007] têm a abordagem mais semelhante à apresentada neste trabalho. Tais autores realizam SLAM visual em mapas topológicos baseados em aparência, no qual não se tem a intenção de determinar posição no espaço. Para isso, o método SIFT é utilizado em imagens omnidimensionais, capturadas de uma câmera voltada para 67

84 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 68 um espelho hiperbólico. Na abordagem proposta nesse trabalho, mostrada pela figura 4.1, primeiramente é feita a captura da imagem, através de uma câmera de vídeo previamente calibrada, essa imagem então é pré-processada, sendo corrigidas as distorções do sistema óptico. Com a imagem corrigida, é utilizado o algoritmo SIFT para realizar a detecção de características, ou seja, pontos de interesse na imagem. Também nessa etapa são criados os descritores locais de cada ponto, sendo estes ordenados pela medida do gradiente. Com a lista de pontos, e seus descritores associados, da imagem atual e da imagem anterior é realizada a correlação através da distância euclidiana, sendo removidas possíveis falsas correlações (outliers) através de geometria epipolar, com a estimação robusta da matriz fundamental pelos métodos RANSAC e LMedS. A lista de pontos correlacionados permite a determinação da matriz homográfica do movimento realizado pela câmera, determinando assim o deslocamento de robô. Com essa matriz homográfica, também se pode determinar a posição aproximada dos melhores pontos de interesse no espaço. O mapeamento topológico, baseado em estruturas celulares crescentes e redes de Kohonen, recebe os melhores pontos, com suas posições e orientações no espaço, realizando o mapeamento destes, corrigindo suas coordenadas de posição, quando encontradas, bem como as coordenadas do robô. Na implementação foi utilizada, em diversas etapas, a biblioteca OpenCV, maiores detalhes podem ser encontrados no apêndice A. 4.2 Pré-Processamento Foi utilizada nesse trabalho uma implementação do método de Zhang [Zhang, 2000] através da biblioteca OpenCV [Intel, 1999], para calibração da câmera, ou seja, para a determinação dos parâmetros intrínsecos, com objetivo de determinar as constantes k de distorção da imagem. Antes de executar a calibração propriamente dita, é necessário realizar alguns passos. Primeiro, o método requer que a câmara observe um padrão planar com diferentes (pelo menos três) orientações/posições. Assim é necessário se obter uma seqüencia de imagens

85 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 69 Figura 4.1: Overview do sistema proposto. desse padrão. Nesse trabalho foi utilizado o formato quadriculado, semelhante ao utilizado em tabuleiros de xadrez, com 13 9 quadrados. Depois de adquiridas as imagens do padrão de calibração, se detectam intersecções entre os quadrados. Inicialmente é utilizada morfologia matemática, através de um método de dilatação seguido por uma limiarização para eliminação de ruídos. Após esse processo são detectados contornos e, posteriormente, polígonos, utilizando o método Douglas- Peucker [Douglas and Peucker, 1973], a intersecção dos vértices desses polígonos são os pontos de interesse para a calibração. Através do método para determinação da intersecção dos pontos se consegue uma precisão de meio pixel, porém para a determinação precisa da localização, utilizou-se de uma técnica de sub-pixel, que permite uma precisão de 0.1 pixel na localização, através de um método iterativo que tenta minimizar o erro de posição do ponto através de interpolação com a vizinhança do mesmo, utilizando o gradiente [Bouguet, 2000] [Achard et al., 2000]. Com a localização precisa dos corners do padrão quadriculado, é então realizado o processo de calibração, propriamente dito. O método proposto consiste em determinar uma solução analítica, que permite obter uma aproximação inicial dos parâmetros intrínsecos

86 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 70 e extrínsecos da câmara, descrito em detalhes na seção 2.3.2, seguida de um refinamento não-linear baseado no critério de máxima verossimilhança. Ao final, é incluído no modelo a distorção radial da lente, dadas as soluções analítica e não-linear. Com os coeficientes de distorção radial, é determinada a nova localização do ponto, através de equação 4.1 truncada em seu termo quadrático, onde o ponto m = (x, y) representa as coordenadas distorcidas, o ponto m = (x, y ) as coordenadas corrigidas, além de k 1 e k 2 serem os coeficientes de distorção adquiridos durante o processo de calibração. x = x + x [k 1 (x 2 + y 2 ) + k 2 (x 2 + y 2 ) 2 ] y = y + y [k 1 (x 2 + y 2 ) + k 2 (x 2 + y 2 ) 2 ] (4.1) Com as coordenadas corrigidas de cada ponto, criou-se uma LUT, ou seja, uma tabela associativa computada offline, que define para cada pixel da imagem sua nova posição, gerando assim a imagem corrigida. A figura 4.2 mostra um exemplo de correção da distorção radial, utilizando a implementação da metodologia proposta acima, tendo na imagem da esquerda o padrão planar utilizado, com suas coordenadas distorcidas, e à direita, o mesmo padrão quadriculado com suas coordenadas corrigidas. Figura 4.2: Imagem com distorção, à esquerda, e com distorção corrigida, à direita, utilizando a metodologia proposta.

87 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL SIFT A partir da imagem do ambiente, já corrigida, são buscadas características, que permitam, além de realizar correlação com a imagem sucessiva, também determinar marcos naturais para o mapeamento. Para essa etapa do sistema, propõem-se a utilização do método SIFT, descrito em detalhes na seção , visando à invariância a escala e a iluminação, dois fenômenos críticos quando se trata de robótica subaquática. A implementação proposta nesse trabalho foi baseada no desenvolvimento do SIFT realizado por Hess[Hess, 2007]. Neste, é implementado todos os quatro passos do método SIFT: Detecção de extremos no espaço de escala Localização de pontos chave Definição de orientação Descritor dos pontos-chave Duas funções importantes realizadas pelo método podem ser vistas nessas etapas, a primeira é a detecção de pontos de interesse, invariantes a escala, com precisão de sub-pixel, nos três primeiros passos, definindo posição espacial do ponto e orientação do gradiente. A outra função importante é a criação de descritores locais, invariantes a rotação, e com boa imunidade a variação de iluminação, através de uma normalização que o descritor sofre. Muitas funções da biblioteca OpenCV foram utilizadas pela implementação de Hess, e por conseqüência, neste trabalho também, pois além de facilidade de desenvolvimento, ainda apresentam um desempenho satisfatório, principalmente se executando em processadores Intel. No SIFT existem alguns parâmetros que devem ser definidos, Lowe propôs valores para todos eles, e demonstrou o motivo de sua utilização. Na implementação deste trabalho, utilizou-se praticamente os mesmos parâmetros, com exceção do D(ˆx), que Lowe utilizou 0, 03, porém esse valor se tornou muito restritivo para a aplicação subaquática, na qual o

88 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 72 pró-espalhamento causa blurring na imagem, maiores detalhes na seção 2.2, degradando muito os contornos, assim uma solução seria aplicação de filtros realçadores de bordas, o que poderia degradar ainda mais a performance, então, foi utilizado um valor de D(ˆx) = 0.02, gerando bons resultados, mostrados o capítulo seguinte. Através dos valores de D(ˆx), determina-se outra função importante desta parte do sistema, a ordenação dos pontos. Eles são ordenados através de um algoritmo de ordenação Quicksort, que apresenta uma complexidade temporal média Θ(nlogn) e complexidade espacial média Θ(logn). Na ordenação é considerada, ainda, uma distância mínima entre os melhores pontos, na metodologia proposta é utilizado 10 pixeis. 4.4 Correspondência (Matching) A abordagem de matching utilizada neste trabalho para determinar as correlações, foi a menor distância euclidiana entre os descritos locais dos pontos, visto que foi utilizado o método SIFT, que já fornece descritores para cada ponto de interesse detectado na imagem. Cada descritor por se representado pela equação 4.2, sendo d i e d j como os descritores locais do ponto i na imagem I e o ponto j na imagem I. Tendo cada posição do vetor representada pela sua magnitude, com tamanho do vetor igual a 128, proposto por Lowe [Lowe, 2004]. d i = (m i1, m i2,..., m i128 ) d j = (m j1, m j2,..., m j128 ) (4.2) Para a determinação da distância euclidiana entre cada ponto é utilizada a equação 4.3, sendo possível então determinar qual o nearest neighbor, ou seja, o vizinho mais próximo. Porém nem sempre o vizinho mais próximo é o ponto procurado, pois o ponto correlato pode não ter sido detectado na imagem subseqüente por diversos motivos, como variação brusca de iluminação ou até mesmo porque saiu da imagem. Assim, é possível a utilização de um limiar, para definir o que seriam boas correlações. Porém alguns descritores podem ser mais descritivos que outros, o que poderia fazer o limiar não funcionar corretamente

89 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 73 [Lowe, 2004]. Neste trabalho foi utilizado o método proposto por Lowe da relação da distância com o segundo vizinho mais próximo, caso esta relação for maior que um valor pré-definido, no caso 0, 49, a correlação não é válida. Este valor é menor que o proposto por Lowe, tornando ainda mais restritivo. d i d j = (m i1 m j1 ) 2 + (m i2 m j2 ) (m i128 m j128 ) 2 (4.3) Com base na proposta de Lowe, foi utilizado o método BBF [Arya et al., 1998] para realizar a busca pelo vizinho mais próximo entre os descritores dos pontos disponíveis. Esta busca requer o uso de uma fila de prioridade baseada em heaps para a determinação eficiente da ordem de busca, assim uma resposta aproximada pode ser dada com baixo custo. Na implementação proposta neste trabalho, a busca acaba depois de verificar os 200 primeiros candidatos, assim como na proposta de Lowe. Essa abordagem permite uma melhora de desempenho razoável, quando o número de pontos detectados for grande. Uma razão para o método funcionar bem para este problema é a consideração apenas das distâncias nas quais o mais próximo vizinho é menos que 0, 49 vezes à distância para o segundo mais próximo vizinho, com isso não há necessidade de resolver os casos mais difíceis, nos quais muitos vizinhos estão a distâncias bem parecidas. Para a remoção de falsas correlações, utilizou-se a geometria epipolar, através da matriz fundamental. Neste trabalho, são estimadas duas matrizes fundamentais, através do método LMedS e através do método RANSAC, descritos na seção Em ambos os métodos a matriz fundamental é estimada linearmente através do método dos oito pontos [Hartley, 1997], descrito pela equação 2.49 na seção 2.5.4, assim, tendo oito pontos correlacionados, resolve-se o sistema de oito equações e oito incógnitas, como mostra a equação 4.4 na qual é definida a matriz F, na equação 4.5 é definido o sistema de equações lineares, sendo m i = (x i, y i, 1) e m i = (x i, y i, 1) o par de pontos correlacionados i, na imagem I e na sucessiva I. Sendo f o vetor dos parâmetros da matriz F, obtêm-se que Af = 0, sendo A a matriz contendo os oito pontos descritos pela equação 4.5, ou seja, i variando de um até oito. x i x i f 11 + y i x i f 12 + x i f 13 + x i y i f 21 + y i y i f 22 + y i f 23 + x i f 31 + y i f = 0 (4.4)

90 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 74 f 11 f 12 f 13 F = f 21 f 22 f 23 (4.5) f 31 f 32 1 Esse sistema é resolvido através do método SVD. Aplicando o SVD na matriz A, é realizada a decomposição em três matrizes, U, S, V, conforme descrito na seção Sendo S a matriz diagonal contendo valores singulares, estes valores singulares σ i são positivos e em ordem decrescente. Conseqüentemente, em nosso caso, σ 9 é zero e, então, a última coluna da matriz V é a solução, considerando que as oito equações sejam linearmente independentes, o que é equivalente a todos os outros valores singulares serem diferente de zero. O Método RANSAC [Fischler and Bolles, 1981] implementado neste trabalho, utilizando a OpenCV, pode ser descrito basicamente como: Selecionar randomicamente um subconjunto de oito pontos de correlacionados, retirados do conjunto total de pontos correlacionados. Para cada subconjunto, indexado por j, calcular a matriz fundamental F j através do algoritmo dos oito pontos citado anteriormente. Para cada matriz F j computada, determinar o número de pontos com distância até a linha epipolar, ou residual, menor que um limiar, definido neste trabalho como 0.5. Selecionar a matriz F que apresenta o maior número de pontos com residual inferior ao máximo definido. Recalcular a matriz F considerando todos os pontos inliers. Normalmente, assume-se que porcentagem de pontos outliers é conhecida para o conjunto de pontos correlacionados, sendo denominado de ɛ. Conseqüentemente, o número mínimo de subconjuntos randômicos que se deve testar, para se ter uma probabilidade P de não existir outliers no conjunto, é dada pela equação 4.6. Sendo q o número de pontos necessários para calcular a matriz fundamental, no caso oito.

91 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 75 N = log(1 P ) log[1 (1 ɛ) q ] (4.6) Nesse trabalho, visto que não se conhece a porcentagem de outliers, se utiliza um N = 500, inicialmente. Sendo N calculado a cada passo iterativo do algoritmo e o ɛ do passo computado. O valor de ɛ só pode diminuir, nunca aumentar. A probabilidade P utilizada neste trabalho foi de 0.95, o que representa 95% de chance de não haver outliers no conjunto de pontos. O Método LMedS [Rousseeuw, 1984], também calculado nesse trabalho, é muito semelhante ao RANSAC, porém a diferença está na maneira como é determinada uma melhor matriz Fundamental. Ela é definida a partir da equação 4.7, que define o resíduo de cada par de pontos, então é ordenado o vetor contendo esses valores e, a mediana do vetor define o quão boa é essa estimação, a melhor mediana define a melhor matriz fundamental. r 2 ji = d( m i, F j m i ) 2 + d( m i, F jt m i ) 2 (4.7) A partir do resultado dos métodos, têm-se duas listas de pontos, supostamente, inliers e outliers definidas pelos métodos descritos acima. Nesta abordagem definiu-se, empiricamente, a seguinte metodologia: se o número de pontos for maior que um valor limite, no caso 30, só é verdadeira correlação, se for assim definida pelos dois métodos, RANSAC e LMedS. Caso o número de pontos seja menor que 30, é verdadeira correlação se um dos métodos tiver definido assim. 4.5 Matriz de Estimativa do Movimento - Homografia A metodologia proposta para estimação do movimento se baseia na geometria projetiva, descrita na seção 2.4, utilizando a matriz de homografia para determinar o movimento. A matriz de homografia é uma transformação projetiva, sendo uma projeção plana de duas vistas da imagem. Uma homografia pode ter, no máximo, oito graus de liberdade e é representada por uma matriz homogênea não-singular 3 3, conforme mostra a figura A implementação foi baseada na biblioteca homest [Lourakis, 2007a], que implementa uma técnica para estimação de homografia não-linear robusta, a partir de pontos correla-

92 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 76 cionados entre duas imagem, maiores detalhes sobre homografia podem ser encontrados na seção Esta técnica computa uma estimativa de homografia que minimiza uma função de custo, que pode ser: Transferência não-simétrica do erro - transferência do erro para a segunda imagem Transferência simétrica do erro - transferência do erro igual para as duas imagens Erro de Sampson [Sampson, 1982] Reprojeção do erro Na minimização do erro por reprojeção, é necessária a estimação de coordenada do ponto correta nas duas imagens, de forma que a relação homográfica p = H p é satisfeita para o cálculo da homografia H, conseqüentemente, esse é o método ótimo para estimação da matriz H, porém é o mais custoso em termos computacionais. Por outro lado, abordagens como transferência simétrica do erro e erro de Sampson constituem uma ótima relação em termos de precisão e tempo de execução. Foi utiliza neste trabalho a técnica de transferência simétrica do erro, por apresentar a melhor relação entre performance e precisão. Ela é definida através da equação 4.8, sendo os pontos m i (x i, y i ) e m i (x i, y i ), nas duas imagens e a função d a distância euclidiana entre os pontos. (d(x i, H 1 x i ) 2 + d(x i, H 1 x i ) 2 ) (4.8) i O algoritmo de minimização do erro utilizado foi o Levenberg-Marquardt [Marquardt, 1963] através da biblioteca levmar [Lourakis, 2007b], este método é uma técnica iterativa que busca mínimos locais em funções que podem ser expressas como soma de quadrados de funções não-lineares, assim como a transferência simétrica do erro mostrada na equação 4.8. Este algoritmo se tornou a técnica padrão para o problema do least squares, ou minimização de quadrados, e pode ser visto como uma combinação do algoritmo steepest descent, ou descida íngreme, e do método de Gauss-Newton. Quando a solução estiver próxima da correta, ele se torna um algoritmo de Gauss- Newton. Maiores detalhes sobre o método Levenberg-Marquardt podem ser encontrados em [Ranganathan, 2004].

93 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 77 Essa biblioteca ainda inclui técnicas de regressão robustas para detecção de outliers. Porém, estas já estavam implementadas e não foram utilizadas. Após calculada a matriz de homografia, se deseja obter o deslocamento do robô entre as imagens, porém o interesse está na posição global do robô, mesmo que com erro. Essa posição pode ser estimada, a partir da equação 4.9, sendo k H k+1 a matriz de homografia entre a imagem I 1 para a imagem I k + 1. A matriz 1 H 1 é definida pela matriz identidade 3 3, a qual define que na posição inicial não existe nenhum tipo de movimento. 1 H k+1 = k i H i+1 (4.9) Tendo a matriz 1 H 1, para se determinar a posição global do veículo, basta utilizar a equação 2.53, sendo m a posição global do robô e m a posição do centro da imagem, considerando o sistemas de coordenadas do robô no centro da câmera, como mostrado à direita na figura 2.9. A orientação θ do robô pode ser determinada, como mostra figura 4.3, através do ângulo entre duas retas, a reta r é formada pelo vetor diretor u e o ponto do centro da imagem p c1 = (x c1, y c1 ). Já a outra reta, s, é formada pelo vetor diretor v e pelo ponto p ck i=1 = (x ck, y ck ) no centro da imagem I k, além desses outros dois pontos são importantes, os pontos localizados no centro superior de cada imagem, definidos como p s1 = (x s1, y s1 ) e p sk = (x sk, y sk ). A equação 4.10 mostra como determinar o ângulo. Antes de determinar o ângulo, são necessários três testes, de paralelismo e de perpendicularidade entre as retas, e o sinal do ângulo, determinados pela equação u = p s1 p c1 = (x s1 x c1, y s1 y c1 ) v = p sk p ck = (x sk x ck, y sk y ck ) y = ax + b r : a r = y s 1 y c1 x s1 x c1, b r = x s 1 y c1 x c1 y s1 x s1 x c1 s : a s = y s k y ck, b s = x s k y ck x ck y sk x sk x ck x sk x ck θ = tan 1 a s a r (4.10) 1 + a s a r

94 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 78 Figura 4.3: Orientação do robô. P aralelismo : u = m v a r = a s θ = 0 P erpendicularidade : u v = 0 a r a s = 1 θ = π 2 Sinal do Ângulo : u x v (x s 1 x c1 )(y sk y ck ) (y s1 y c1 )(x sk x ck ) Sinal do Ângulo : u x v > 0 θ u x v < 0 θ (4.11) 4.6 Mapas Topológicos A metodologia utilizada neste trabalho para o mapeamento do robô subaquático foi o desenvolvimento de mapas topológicos, utilizando uma variação das GCS, proposta por Zimmer[Zimmer, 1995a]. Visto que existem diversas diferenças entre o mapeamento de distribuição de pontos e de um ambiente, a partir de informações sensoriais. Na proposta de Zimmer, o robô capta constantemente informações sensoriais, durante o seu deslocamento pelo ambiente. Essas informações sensoriais são concatenadas com a posição do robô, constituindo assim, vetores sensoriais, que na abordagem proposta, são constituídos pelo descritor local do ponto e pela posição e orientação global do ponto. Ao mapear um ambiente, os vetores sensoriais apresentados ao mapa não correspondem a uma distribuição aleatória, e sim a uma sucessão de valores com relação topológica importante, afinal enquanto o robô navega no ambiente, ele capta impressões sensoriais

95 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 79 topologicamente adjacentes em seqüencia. Observando esse contexto, a abordagem de Zimmer difere das GCS, principalmente quanto à inserção de células e ao estabelecimento de vizinhança entre células. Nesta abordagem de mapeamento, as arestas(relação de vizinhança) são valoradas, estes valores representam o grau de confiança nessa relação, isto tem importância devido ao fato de mapear ambientes utilizando câmeras de vídeo, no qual se tem baixa precisão na localização, necessitando de uma boa tolerância a falhas sensoriais. A criação de células pode ocorrer de duas formas, considerando o mapa inicialmente sem células. A primeira forma é responsável pela criação da primeira célula, no qual a inserção ocorre de maneira espontânea [Zimmer, 1995b]. Uma inserção deste tipo ocorre quando a impressão sensorial captada tem uma distância até a célula vencedora maior que uma constante pré-definida, a constante DINS utilizada neste trabalho tem valor 60, definida empiricamente. Nesta situação, é criada uma nova célula, associando a esta, o vetor sensorial captado. A célula criada passa a ser a célula vencedora. Outra maneira de inserção de novas células no mapa é a partir de inserção estatística [Zimmer, 1995b], semelhante à inserção de células proposta por Fritzke nas GCS [Fritzke, 1993b]. Quando o número de erros de classificação atinge um valor limite, uma célula nova é criada como caso médio entre a célula com maior erro acumulado e sua vizinha mais distante, neste trabalho denominada de constante MAXMISS. Esta constante foi definida como 100, valor que depende do tempo navegação no mapa, quanto maior o tempo, maior deve ser essa constante. A célula criada, então, tem apenas dois vizinhos e a aresta que ligava as duas células, anteriormente, é eliminada. Arestas podem ser criadas, confirmadas ou eliminadas. Uma aresta é criada, com grau de confiança máximo, ou seja, um. Ela também pode ser confirmada, quando em seu percurso o robô transitar entre dois vetores sensoriais para os quais as células vencedoras são distintas, recebendo assim grau de confiança máximo. Outra forma de se confirmar uma aresta é diretamente quando são inseridas informações sensoriais da mesma imagem, ou seja, apresenta-se a cada imagem, os melhores n pontos detectados pelo SIFT ao mapa, no caso 10, esses pontos tem suas arestas(condição de vizinhança) adicionadas e confirmadas diretamente. Quando uma aresta é criada, ou confirmada, na transição entre vetores sensoriais com vencedores distintos, as demais arestas partindo da célula vencedora, visitada

96 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 80 por último, têm seu grau de confiança diminuindo de um valor diretamente proporcional a um parâmetro, definido como ARED com valor 0, 15 neste trabalho, e inversamente proporcional ao número de vizinhos da célula. Desta forma, arestas provenientes de falhas tendem a sumir com o passar do tempo. Quando uma aresta tem seu grau de confiança menor que zero, ela é eliminada. Uma célula deixa de existir quando não tem arestas, ou seja, quando não têm vizinhos. A eliminação de arestas e células é importante para garantir a consistência do mapa, pois podem ser decorrentes de falhas sensoriais, assim tendem a desaparecer [Zimmer, 1995b]. Para garantir a estabilidade do mapa, depois suficientemente explorado o ambiente, toda vez que não houver erro de classificação, o parâmetro que define a fração de deslocamento do vetor da célula vencedora em direção ao vetor de treinamento apresentado é reduzido, esse parâmetro é chamado de EOPT tendo valores ótimos na faixa de 0, 01 até 0, 03 [Zimmer, 1995a], neste trabalho o valor escolhido foi 0, 01. O parâmetro que define a fração do deslocamento dos vetores sensoriais das células vizinhas é zerado, esse parâmetro é denominada ENEIG, tendo seu valor nesta implementação trinta vezes menor que o EOPT. Ao ocorrer uma falha de classificação no mapa, esses parâmetros retornam aos seus valores normais. Esta abordagem torna o mapa estável, quando suficientemente completo, ou seja, quando passa a apresentar poucos erros de classificação. O mapa topológico criado permite a navegação de duas formas, a primeira através de posições alvos, ou seja, se define uma posição alvo, a partir da posição atual, e através de um algoritmo de busca em grafos como o Dijkstra [Dijkstra, 1959] ou o algoritmo A [Dechter and Pearl, 1985]. Outra forma de navegação é através da utilização das informações visuais, como nos mapas topológicos baseados em aparência utilizados por [Booij et al., 2007]. Assim, com um fragmento de imagem do local de destino, se detectam pontos que serão buscados no mapa, definindo assim uma posição alvo, e com os mesmos algoritmos utilizados anteriormente se daria a navegação. Por fim, um detalhamento da estratégia para correção das coordenadas internas do robô se faz necessária, sendo estas posição e orientação. Essa correção se apóia na informação sensorial menos suscetível a erros, os descritores locais dos pontos detectados pelo SIFT. Durante o processo iterativo de treinamento do mapa é eleita uma célula vencedora, considerando um erro limitado para as coordenadas de posição e orientação. As células

97 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 81 contendo as coordenadas de posição e orientação mais próximas das coordenadas corretas do robô devem ser vizinhas próximas da célula vencedora. Realizando-se assim uma interpolação linear, entre os descritores da célula vencedora e suas vizinhas, determinando-se qual o descritor gerado por interpolação que apresenta menor distância até o descritor de treino, produzindo assim a posição do robô, esta uma média entre a posição da célula vencedora e da vizinha que executou a interpolação vencedora. Tendo a célula vencedora como referência, é feita a estimação da orientação. Esta é estimada comparando a orientação do ponto definido pela célula vencedora, em relação à orientação definida pelo robô quando adicionou a célula, e a orientação do ponto definido para o treinamento, assim é possível realizar tal correção diretamente, com um fator multiplicador, definido como TAXA_CORRECAO_ORIENTACAO com valor 0, 005, visto que o ponto definido pode não ser exatamente o mesmo, devido ao fato de os mapas topológicos fazerem associação muitos para um, assim a medida não é totalmente confiável. A estimação da posição e da orientação robô só é possível quando ele encontra-se em uma região razoavelmente mapeada anteriormente, visto que o mapa se baseia em conhecimentos adquiridos durante a navegação. Não existe sentido em corrigir posição em regiões inexploradas, assim a correção só deve ser feita se o robô encontra-se suficientemente próximo da célula vencedora e esta deve possuir um número mínimo de vizinhos, para garantir um mapeamento adequado da região utilizada na correção [Zimmer, 1996]. Quando estimada as coordenadas corretas de posição e orientação do robô, estas não podem ser adicionadas diretamente ao robô, visto que o mapa não é totalmente confiável, apresentando inconsistências e imprecisões, assim o vetor de coordenadas de posição e orientação internas do robô é apenas deslocado em direção ao valor estimado, de uma fração pré-estabelecida, definido como TAXA_CORRECAO_POSICAO com valor Outro fato importante, é que as coordenadas de posições e orientações, mais antigas ao mapa, são sempre mais confiáveis que novas, por isso é utilizado um buffer de atraso de informação, com tamanho definido pela constante ATRASO_AMOSTRAGEM que nesta abordagem é de 15 dados, porém esse valor pode ser aumentado quando se adiciona mais informações por imagem, no nosso caso, como é realizado treinamento do mapa com apenas 10 pontos por imagem, é utilizado esse valor. Esse buffer faz com que erros

98 CAPÍTULO 4. METODOLOGIA - SLAM VISUAL 82 de posição possam ser corrigidos antes de corromperem o mapa, assim o fornecimento de dados para treinamento do mapa sobre um atraso, mas tal atraso não é aplicado na correção das coordenadas de posição e orientação. O atraso permite que as coordenadas de posição e orientação sejam corrigidas baseando-se em informações mais antigas, logo mais confiáveis, antes que sejam distorcidas por informações mais recentes [Zimmer, 1996]. O mapa topológico baseado na abordagem de Zimmer foi implementado, utilizando-se como referência a implementação proposta por Pinto [Pinto, 2005], porém com algumas mudanças significativas com a finalidade de usar como fonte sensorial os descritores locais do SIFT, essa sendo uma informação confiável, e a posição definida pela homografia, como informação não-confiável. Sendo apresentado os 10 melhores pontos ao mapa, por frame.

99 Capítulo 5 Resultados 5.1 Introdução O objetivo deste capítulo é avaliar a metodologia desenvolvida, aplicando em imagens subaquáticas reais captadas durante o movimento de um veículo subaquático e à imagens subaquáticas artificiais capturadas por um braço robótico do tipo scara, dotado de odometria, que permitiu definir uma referência precisa do movimento realizado, essas imagens são consideradas artificiais devido ao fato de serem capturadas fora da água, porém foram utilizados filtros que permitiram simular um ambiente subaquático. Foi também testado a performance do algoritmo SIFT com relação ao algoritmo KLT, tanto em imagens reais quanto artificiais. Além da realização de testes de mapeamento topológico utilizando a abordagem de Zimmer. Os testes foram efetuados utilizando vídeos gravados, devido a dificuldade se preparar a plataforma de teste para cada vez que fosse necessário efetuar testes, porém o sistema funciona perfeitamente em tempo online. 5.2 Plataforma de Teste A plataforma de testes implementada consiste em um sistema de software para o veículo subaquático. Tal plataforma foi baseada na implementação proposta por Neves [Neves, 2006]. O software foi desenvolvido utilizando-se a linguagem de programação C++, orientada a objetos, juntamente com o Qt, um framework para desenvolvimento de aplicações C++. Para o desenvolvimento da interface gráfica utilizou-se a ferramenta Qt 83

100 CAPÍTULO 5. RESULTADOS 84 Designer, que permite a criação de interfaces gráficas em alto nível. Como já mencionado na metodologia, foi utilizadas várias bibliotecas como a OpenCV [Intel, 1999], homest [Lourakis, 2007a], dentre outras. Na interface gráfica desenvolvida, utilizou-se o conceito de abas, a primeira aba denominada Configurações pode ser vista na janela principal da figura 5.1, que mostra também outras duas janelas do sistema, a janela de configuração da câmera, denominada Configurações de Vídeo, e a janela de desenho do mapa topológico, denominada Kohonen. Na aba Configurações, existe a possibilidade de definir-se alguns parâmetros do sistema, como a fonte do vídeo, se ela é uma câmera ligada ao computador ou um vídeo gravado. No software é possível, também, realizar calibração da câmera, ou carregar um arquivo com os parâmetros de calibração já definidos, além da possibilidade da definição da posição inicial do veículo, a relação centímetros/pixel, a opção de usar correção distorção radial do sistema e mais alguns parâmetros do sistema de visão listados abaixo. Outros parâmetros do sistema não foram definidos em interface, sendo o acesso diretamente no código. MAX KDTREE - Parâmetro citado na seção 4.4, que define o número de vizinhos mais próximos pesquisado pelo método BBF. MAX CORR, - Número máximo de pontos que pode ser correlacionado no caso definido por padrão como 100, este parâmetro tem como finalidade limitar o número de pontos correlacionados para não degradar o desempenho do sistema. FPS - Taxa máxima de frames/s que o sistema pode receber, no caso 30fps. DIST VIZINHO - Parâmetro citado na seção 4.4, que define a razão entre a distância do vizinho mais próximo e o segundo mais próximo, sendo nestre trabalho de, no máximo, Na segunda aba da janela principal, como mostra a figura 5.2, denominada Comandos, existem alguns flags de controle do software como gerar threads para a execução do software, fixar imagem de referência para a correlação, parar o sistema, executar o programa frame a frame, e alguns flags de visualização. Existem, ainda, alguns botões de comando para abrir, salvar e executar um vídeo e dois botões, um para executar a correlação entre frames manualmente e, outro, para mostrar os frames que estão em execução. Na parte

101 CAPÍTULO 5. RESULTADOS 85 Figura 5.1: Interface principal do sistema desenvolvido com as janelas de ajuste de vídeo e de mapeamento. inferior do programa principal, duas imagens podem ser visualizadas, ilustrando o frame atual e o anterior, sendo os pontos em vermelho na imagem anterior, os pontos detectados pelo SIFT na mesma. No canto superior direito da imagem, existe uma janela denominada Câmera Vídeo, esta utilizada para mostrar vídeos ou frames provenientes de uma câmera. Figura 5.2: Interface principal com a aba comandos e janela de vídeo. Para os testes do sistemas, foram utilizados duas plataformas, a primeira composta por um braço robótico com uma câmera de vídeo acoplada. O braço robótico é composto de um atuador do tipo harmonic drive com encoder acoplado, fornecendo uma leitura angular a cada 0, segundos. A câmera de vídeo é uma camcoder Panasonic modelo PV- GS15, conforme a imagem da esquerda da figura 5.3. Maiores detalhes sobre esta câmera

102 CAPÍTULO 5. RESULTADOS 86 podem ser encontrados no manual da mesma [Panasonic, 1999]. Figura 5.3: Câmeras de vídeo utilizadas nos testes. Foi fixada uma estrutura rígida ao atuador robótico, com a câmera na extremidade, conforme mostra figura 5.4. À direita da figura, o atuador robótico com uma estrutura flexível presa a si, enquanto na imagem à esquerda está a plataforma de teste implementada, porém com a câmera presa a um tripé, no caso, utilizou-se o atuador robótico ao invés do tripé. Figura 5.4: Plataforma de teste utilizando braço robótico. A segunda plataforma de testes utilizada foi um veículo subaquático desenvolvido pela FURG [Centeno, 2007], este veículo é dotado de sensores, como altímetro e acelerômetros. Também é dotado de uma câmera de vídeo do modelo Typhoon, produzida pela Tritech International Limited, conforme a imagem à direita da figura 5.3. Maiores detalhes sobre esta câmera podem ser encontrados no manual da mesma [Tritech, 2003]. A figura 5.5 mostra imagens dos testes realizados com o veículo, sendo importante ressaltar que a câmera está em uma configuração down-looking, como mostrado na seção

103 CAPÍTULO 5. RESULTADOS Na imagem à direta, está computador portátil executando o sistema proposto pelo trabalho. Figura 5.5: Plataforma de teste utilizando veículo subaquático. Um aspecto importante à ressaltar é são as imagens capturadas pelo veículo subaquático, tais imagens reais não apresentam problemas típicos de imagens subaquáticos como neve marinha e iluminação não-uniforme, enquanto as imagens capturadas pelo braço robótico não apresentam nenhuma característica subaquática, embora tenha sido utilizado um ambiente aproximadamente monótono, semelhante ao subaquático. Então, se fez necessário o uso de filtros subaquáticos [Arredondo and Lebart, 2005] [Drews et al., 2007], estes realizando distorções na imagem conforme mostra a tabela 5.1. A partir desta tabela, as diversas distorções são numeradas e utilizadas ao longo deste trabalho. Tabela 5.1: Características subaquáticas para cada distorção. Característica Filtro 1 Filtro 2 Filtro 3 Filtro 4 Filtro 5 Distância da Fonte de Luz (m) Atenuação (%) Ruído Gaussiano (σ) Mínimo Nível de Cinza Núm. de Flocos de Neve Marinha Uma seqüencia de imagens artificiais geradas pela utilização destes filtros pode ser vista na figura 5.6. Sendo a imagem no canto superior esquerdo sem filtragem, enquanto

104 CAPÍTULO 5. RESULTADOS 88 a imagem à direita desta possui distorção 1, definida na tabela 5.1, e assim sucessivamente até a imagem com distorção 5, no canto inferior direito. Figura 5.6: Imagens subaquáticas artificiais geradas através da aplicação de filtros. Estes filtros também foram aplicados em imagens reais, fornecendo características subaquáticas que as imagens não continham, além de realçar as já existentes. A figura 5.7 mostra essa adição de filtros, porém com a aplicação de distorção 1 e 2, imagem do centro e à direita, respectivamente, embora tenham sido aplicados os cinco tipos de distorções. Figura 5.7: Imagens subaquáticas reais geradas com a aplicação de filtros. Para a maioria dos testes, foi utilizado um notebook Acer, com processador Intel Core Duo de 1, 66Mhz de freqüência de clock e 2 Mb de cache L2, com 1 Gb de memória RAM do tipo DDR Para alguns testes, foi utilizado um desktop Intel Core 2 Quad Q6600 de 2.4Mhz de freqüência de clock e 8 Mb de cache L2, com 2 Gb de memória RAM do tipo DDR É importante ainda ressaltar, que ambas as câmeras foram utilizadas no padrão NTSC, que permite uma taxa máxima de 29, 97 fps e tamanho da imagem de pixeis.

105 CAPÍTULO 5. RESULTADOS 89 Tabela 5.2: Parâmetros de calibração das duas câmeras utilizadas nos testes. Modelo da Câmera α β u0 v0 k1 k2 Panasonic PV-GS Tritech Typhoon Porém, neste trabalho pelas restrições temporais e impostas, foram utilizados frames de pixeis. 5.3 Resultados Experimentais Utilizando as plataformas descritas na seção anterior, foram desenvolvidos diversos testes com a finalidade de validar o sistema proposto. A primeira etapa a ser validada é o pré-processamento, validando assim o processo de calibração proposto. As duas câmeras foram calibradas e seus parâmetros mostrados na tabela 5.2. A figura 5.8 valida a calibração e o processo de correção da distorção radial. Figura 5.8: Imagem utilizada para calibração, em sua forma original, à esquerda, e com correção radial corrigida, à direita Sistema de Visão Diversos testes foram realizados para validar o sistema de visão. Primeiramente, foi verificada a validade da utilização do método SIFT frente ao método KLT, detalhado na seção Para os testes com KLT foi utilizada a implementação de Birchfield

106 CAPÍTULO 5. RESULTADOS 90 [Birchfield, 2007], com algumas modificações, como a busca por pontos a cada 5 imagens, visto que a KLT é um método que utiliza fluxo ótico para buscar pontos em uma janela de busca, assim, buscando pontos apenas no início do processo, depois apenas localiza estes pontos nas imagens consecutivas. Porém para aplicações subaquáticas, essa abordagem não apresentou bons resultados devido as constantes perdas de características, assim foi necessário fazer um refresh nos pontos de interesse. Também utilizou-se a matriz fundamental com estimadores robustos, citados na seção 4.4, para remoção de outliers e a matriz de homografia para determinar a posição do robô. Os resultados obtidos com imagens reais sem adição de filtro subaquático, capturadas a partir do veículo subaquático, são apresentados nas figuras 5.9, 5.10 e Sendo as figuras à esquerda das imagens sem remoção de outliers utilizando matriz fundamental com estimação robusta, e as figuras à direita fazendo uso desta técnica. Visto que os sensores embarcados no robô, não definem a posição real em cada período de tempo, com precisão melhor que a gerada através de visão computacional, não se pode comparar a trajetória estimada pelo robô, embora seja possível se determinar a posição final real do robô, esta sendo aproximadamente [ 151, 1054] em pixeis. Considerando que o sistema tem performance online, ou seja, as imagens não são computadas quando estão disponíveis ao sistema mas quando ele está disponível, sendo assim, inúmeras imagens são perdidas. Para comparar a performance dos dois algoritmos, primeiramente supôs-se que ambos executavam com desempenho de 2 fps, os resultados são mostrados na figura 5.9. Nota-se que o SIFT apresentou um desempenho superior, embora com uma defasagem em relação à posição final, enquanto o KLT não correlacionou corretamente os pontos, assim a homografia não pode detectar corretamente o movimento, mesmo com uma remoção robusta de outliers, isto se deve ao fato do erro ser na localização do ponto e não de falsa correlação. Supõem-se também que ambos os algoritmos têm desempenho em tempo real, ou seja, conseguem processar os 30 fps. Este teste é mostrado na figura Nota-se novamente que o SIFT apresentou uma performance superior, embora com uma defasagem grande em relação à posição final, isto deve-se aos pequenos deslocamentos realizados entre cada imagem, sendo muito suscetíveis a imprecisões numéricas. O KLT apresentou uma performance razoável, embora com uma defasagem enorme em relação à posição final,

107 CAPÍTULO 5. RESULTADOS 91 Figura 5.9: Comparativo KLT x SIFT utilizando imagens reais a uma taxa de 2fps. porém pode-se notar que a remoção de outliers melhorou seu desempenho. Figura 5.10: Comparativo KLT x SIFT utilizando imagens reais a uma taxa de 30fps. Por fim, testou-se o taxa de execução real de cada algoritmo em dois computadores diferentes, citados na seção 5.2. A tabela 5.3 mostra essas taxas para imagens reais naturais e com distorções nos dois microcomputadores. Vale notar uma característica interessante, a taxa de frames do KLT diminui à medida que a qualidade da imagem diminui, visto que tal método tem um custo computacional bem maior para procurar pontos em imagens de baixa qualidade e, muitas vezes, não encontra, parando por um critério iterativo limitante, ou seja, número máximo de iterações. Enquanto o SIFT, à medida que a qualidade da imagem diminui, a taxa de frames aumenta, visto que ele não consegue detectar tantos pontos, diminuindo então o número de descritores locais

108 CAPÍTULO 5. RESULTADOS 92 calculados, operação com alto custo computacional. Tabela 5.3: Taxa de frames por segundos média dos algoritmos KLT e SIFT em dois computadores distintos, utilizando imagens reais e com filtros. Imagem Método Taxa em Core Duo Taxa em Core Quad Natural Distorção 1 Distorção 2 Distorção 3 Distorção 4 Distorção 5 KLT SIFT KLT SIFT KLT SIFT KLT SIFT KLT SIFT KLT SIFT A figura 5.11 mostra o desempenho dos algoritmos executando em tempo online com imagens reais no computador mais potente (Core 2 Quad), nesta figura também é mostrado o resultado para imagens reais com a distorção 5, mostrada como Teste 6 no título da imagem, pois se considera a ausência de distorção com 1, neste caso. Vale notar que o KLT teve uma performance superior ao SIFT sem a remoção robusta de outliers, porém com essa estimativa o SIFT localizou quase exatamente o ponto final, enquanto para o KLT essa remoção não obteve bons resultados, determinando um deslocamento maior que o ocorrido realmente, este fato deve-se ao estimador ter removido inliers que descreviam o movimento de forma correta, pois estes representavam a menor parcela dos pontos detectados. Já nas imagens com distorções, o SIFT determinou corretamente a localização, enquanto o KLT teve dificuldades de determinar o movimento. Pode-se notar ainda que ao final do movimento existe uma descontinuidade dos pontos, isso se deve a falta de pontos de interesse no final de imagem com distorção devido ao efeito da iluminação não-uniforme adicionada pelo filtro.

109 CAPÍTULO 5. RESULTADOS 93 Figura 5.11: Comparativo KLT x SIFT utilizando imagens reais em tempo online de execução. Os mesmos testes descritos acima foram realizados, porém com imagens artificiais com movimento de translação e escala. Este movimento foi obtido através da plataforma de teste mostrada na seção 5.2, porém com o braço parado, apenas utilizando o zoom da câmera e o movimento de "puxar"o tapete, mostrado na imagem à esquerda da figura 5.4. Determinou-se a posição final real do tapete, esta sendo aproximadamente[ 322, 0] em pixeis. A figura 5.12 compara o desempenho com taxa de 2 fps dos dois algoritmos com imagens artificiais. São mostradas as estimações de posição do robô em imagens sem distorção, com distorção 1 e distorção 5. Nota-se quem o SIFT chegou bem próximo da posição objetivo em todos os casos, enquanto o KLT apresentou bons resultados na imagem natural do tapete, enquanto que com distorção não conseguiu determinar os pontos corretamente de forma que a matriz de homografia não computou corretamente a posição final.

110 CAPÍTULO 5. RESULTADOS 94 Figura 5.12: Comparativo KLT x SIFT utilizando imagens artificiais a uma taxa de 2fps. Nas figuras 5.13 e 5.14 foram realizados o comparativo na taxa de 30fps e em tempo online com imagens artificiais no computador mais potente(core 2 Quad). A tabela 5.4 mostra essas taxas para imagens artificiais naturais e com distorções nos dois microcomputadores. Para cada uma das imagens são mostrados seis gráficos, representando a imagem natural, com distorção 1 e com distorção 5, com e sem eliminação de outliers através de matriz fundamental. Vale notar que o algoritmo KLT se comportou muito bem na estimação do movimento em imagens naturais, até sendo superior ao SIFT em 30fps. Porém, em imagens com distorção, o algoritmo SIFT foi superior em todos os gráficos. Embora nas imagens com distorção 6, a estimação robusta de outliers não determinou corretamente as falsas correlações, isso ocorreu pelo baixo número de pontos correlacionados devido à baixa qualidade da imagem. Após o comparativo do SIFT com o KLT, testou-se a capacidade do sistema em detectar pontos de interesse e correlacioná-los em imagens reais e artificiais, como mostram as figuras 5.15 e Na primeira figura, à esquerda, foram detectados 151 pontos, enquanto na figura à esquerda foram detectados 148 pontos e correlacionados 85 num tempo de 251 ms, ou seja, uma taxa em torno de 4 fps. Foram, ainda, detectadas 20 falsas correlações, dando um total de 65 pontos correlacionados corretamente. Nas imagens que

111 CAPÍTULO 5. RESULTADOS 95 Tabela 5.4: Taxa de frames por segundos média dos algoritmos KLT e SIFT em dois computadores distintos, utilizando imagens artificiais com filtros. Imagem Método Taxa em Core Duo Taxa em Core Quad Natural Distorção 1 Distorção 2 Distorção 3 Distorção 4 Distorção 5 KLT SIFT KLT SIFT KLT SIFT KLT SIFT KLT SIFT KLT SIFT estão abaixo na figura, existe, em branco, a determinação das correlações corretas e, em amarelo, na imagem à esquerda, as falsas correlações, ou outliers. Tais medidas foram mostradas em imagens diferentes somente para dar maior clareza na análise. Nas imagens pode-se ver ainda que foram removidas 4 falsas correlações, que poderiam fazer com que a estimação do movimento entre as imagens pela homografia fosse muito degradada. Nota-se, também, que foram removidos alguns matches que eram verdadeiras correlações, porém em número reduzido. Foram realizados testes com imagens artificiais, estas com distorção 5, como mostra a figura Na primeira figura, na imagem à esquerda foram detectados 67 pontos, na figura à esquerda foram detectados 67 pontos também, sendo correlacionados 13 pontos num tempo de 136 ms, dando uma taxa em torno de 7, 3 fps. Foram, ainda, detectadas 2 falsas correlações, mostras em amarelo na imagem inferior à esquerda. Assim, existe um total de 11 pontos correlacionados corretamente. Nota-se que a qualidade da imagem é muito ruim, sendo difícil a localização de pontos de interesse, dificultando ainda mais a correlação destes pontos. Embora em número reduzido, as correlações conseguem

112 CAPÍTULO 5. RESULTADOS 96 Figura 5.13: Comparativo KLT x SIFT utilizando imagens artificiais a uma taxa de 30fps. descrever corretamente o movimento Localização Em Braço Robótico Testes de localização exata foram realizados, tendo como plataforma de teste o braço robótico. Nestes testes, foram obtidas imagens, a partir do movimento de rotação da câmera em torno do eixo do atuador robótico, em um braço rigido de 15 cm. A figura 5.17 mostra a posição determinada pelo sistema de visão nos eixos cartesianos x e y, respectivamente, em relação à informação do encoder, convertido para o sistema de coordenadas cartesianas da câmera. A referência é comparada, na figura 5.17, com imagens subaquáticas artificiais com as quatro primeiras distorções, explicadas anteriormente, e com a imagem natural. Vale notar que quando o atuador inverte o movimento (picos na curva), surge um pequeno drift entre a posição retornada pelo sistema de visão e o sistema de referência, isto é resultado da dificuldade do sistema em detectar movimento quando existe uma variação muito pequena, inferior a um pixel. Para o teste de localização, foi determinado o número de keypoints detectado pelo sistema e o número de correlações corretas, conforme mostra a figura Pode-se notar que, apesar de ocorrer uma degradação na qualidade da imagem, o SIFT consegue

113 CAPÍTULO 5. RESULTADOS 97 Figura 5.14: Comparativo KLT x SIFT utilizando imagens artificiais em tempo online de execução. detectar pontos de interesse e fazer correlações, embora o número caia um pouco, o número mantém-se, relativamente, constante para as distorções 1,2 e 3, para a distorção 4 a performance cai bastante, devido a baixa qualidade da imagem. A figura 5.19, mostra a velocidade do braço determinada pelo encoder e pelo sistema de visão proposto utilizando imagens artificiais sem distorção, ou seja, imagem natural. Vale notar que o tempo de navegação foi aumentado consideravelmente, para mais de três minutos Mapeamento Topológico Alguns testes com o sistema de mapeamento foram realizados. As figuras 5.20 e 5.21 mostram os resultados obtidos, considerando a primeira figura um mapa treinado com 39 frames, à esquerda, a uma taxa de, aproximadamente, 2fps e um mapa treinado por 586 frames, aproximadamente 30fps, à direita, descrevendo o mesmo movimento e o mesmo ambiente. Pode-se notar que o mapa no qual foi apresentado menor número de frames apresenta um número de células reduzido, já ao mapa que foi apresentado um grande número de frames, e por conseqüência de descritores locais, apresenta um número muito

114 CAPÍTULO 5. RESULTADOS 98 Figura 5.15: Pontos de interesse e correlações detectadas em imagens reais pelo sistema proposto. grande de células. Na segunda imagem, figura 5.21, foram apresentados ao mapa o mesmo número de casos de treinamento, porém a quantidade de pontos detectados na imagem abaixo é menor devido ao uso da distorção 5, logo existe uma concentração maior de pontos em uma mesma região, fazendo com que a capacidade do mapa fique reduzida, em relação a imagem acima que descreve o movimento sem o uso de distorção subaquática adicional.

115 CAPÍTULO 5. RESULTADOS 99 Figura 5.16: Pontos de interesse e correlações detectadas em imagens artificiais com distorção 5 pelo sistema proposto.

116 CAPÍTULO 5. RESULTADOS 100 Figura 5.17: Deslocamento nos eixos cartesianos x e y determinado pelo sistema proposto, em relação a odometria do robô.

117 CAPÍTULO 5. RESULTADOS 101 Figura 5.18: Número de pontos de interesse detectados nas imagens e número de correlações corretas no tempo.

118 CAPÍTULO 5. RESULTADOS 102 Figura 5.19: Velocidade do braço robótico por um período superior a três minutos, pela odometria e pelo sistema proposto.

119 CAPÍTULO 5. RESULTADOS 103 Figura 5.20: Mapeamento topológico treinado a partir de 39 frames, à esquerda, e 586 frames, à direita. Navegando sobre a mesma área. Figura 5.21: Mapeamento topológico treinado a partir de 27 frames. com imagens artificiais naturais, acima, e imagens artificiais com distorção 5, abaixo.

Occupancy grid based graph-slam using the distance transform, SURF features and SGD

Occupancy grid based graph-slam using the distance transform, SURF features and SGD Occupancy grid based graph-slam using the distance transform, SURF features and SGD Autores: Arturo Gil, Miguel Juliá, Óscar Reinoso Artur Segal Kaim Agenda Introdução Arquitetura Resultados Trabalho futuro

Leia mais

Uma Abordagem Baseada em Visão Computacional para Localização e Mapeamento Simultâneos de Robôs Subaquáticos

Uma Abordagem Baseada em Visão Computacional para Localização e Mapeamento Simultâneos de Robôs Subaquáticos Uma Abordagem Baseada em Visão Computacional para Localização e Mapeamento Simultâneos de Robôs Subaquáticos Paulo Drews Jr 1, Silvia Botelho 1 1 Departamento de Física Fundação Universidade Federal do

Leia mais

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Aluno: Gabriel Malizia Orientador: Professor Marcelo Gattass Co-Orientador: Professor Paulo Cezar Carvalho

Leia mais

SLAM Visual. Fernando Zuher Mohamad Said Cavalcante Orientadora: Profª. Drª. Roseli Romero Mestrado em Computação, ICMC-USP

SLAM Visual. Fernando Zuher Mohamad Said Cavalcante Orientadora: Profª. Drª. Roseli Romero Mestrado em Computação, ICMC-USP SLAM Visual Fernando Zuher Mohamad Said Cavalcante Orientadora: Profª. Drª. Roseli Romero Mestrado em Computação, ICMC-USP Divisão da apresentação 1. Introdução O que é SLAM? Classificação adotada 2. Principais

Leia mais

Descritores de Imagens

Descritores de Imagens Descritores de Imagens André Tavares da Silva PPGCA/UDESC Outubro de 2017 André Tavares da Silva (PPGCA/UDESC) Descritores de Imagens Outubro de 2017 1 / 18 Descritores Locais e Frameworks SIFT SURF Viola-Jones

Leia mais

Detecção de falsas correspondências em pares de imagens estereoscópicas utilizando a transformação projetiva no plano e o algoritmo RANSAC

Detecção de falsas correspondências em pares de imagens estereoscópicas utilizando a transformação projetiva no plano e o algoritmo RANSAC Detecção de falsas correspondências em pares de imagens estereoscópicas utilizando a transformação projetiva no plano e o algoritmo RANSAC André Caceres Carrilho Mauricio Galo Renato César dos Santos Curitiba,

Leia mais

PMR2560 Visão Computacional Visão estéreo. Prof. Eduardo L. L. Cabral

PMR2560 Visão Computacional Visão estéreo. Prof. Eduardo L. L. Cabral PMR2560 Visão Computacional Visão estéreo Prof. Eduardo L. L. Cabral Objetivos Introdução Equações básicas Processo de correspondência Geometria epipolar Retificação de imagens Reconstrução 3D Visão estéreo

Leia mais

TECSUB LOC: Localização e mapeamento baseado em visão para robôs subaquáticos

TECSUB LOC: Localização e mapeamento baseado em visão para robôs subaquáticos TECSUB LOC: Localização e mapeamento baseado em visão para robôs subaquáticos Silvia. S. Botelho, Gabriel. L. Oliveira, Emanuel Estrada Centro de Ciências Computacionais - FURG, Rio Grande, RS silviacb@furg.br

Leia mais

ALGEMIRO A. S. NETO.

ALGEMIRO A. S. NETO. Calibração de Câmeras 1 ALGEMIRO A. S. NETO Pontifícia Universidade Católica do Rio de Janeiro aneto@inf.puc-rio.br Abstract Este trabalho aborda o problema de calibração de câmeras apresentando uma breve

Leia mais

APLICAÇÃO DO FILTRO DE KALMAN A UM SISTEMA DE POSICIONAMENTO DE VEÍCULO AQUÁTICO

APLICAÇÃO DO FILTRO DE KALMAN A UM SISTEMA DE POSICIONAMENTO DE VEÍCULO AQUÁTICO APLICAÇÃO DO FILTRO DE KALMAN A UM SISTEMA DE POSICIONAMENTO DE VEÍCULO AQUÁTICO André TEIXEIRA DE AQUINO; André LUIZ CARNEIRO DE ARAÚJO (1) Instituto Federal de Educação, Ciência e Tecnologia do Ceará,

Leia mais

MouseCam: aplicação de controle do mouse via câmera

MouseCam: aplicação de controle do mouse via câmera MouseCam: aplicação de controle do mouse via câmera Introdução ao Processamento de Imagens COS756 PESC/COPPE/UFRJ 2013 1 Renan Garrot garrot@cos.ufrj.br 1. Introdução O processo de tracking por vídeo consiste

Leia mais

SSC5887 SSC5887. Histórico. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER

SSC5887 SSC5887. Histórico. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER. Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER Grupo de Sistemas Embarcados Evolutivos e Robóticos - SEER Áreas de atuação: SSC5887 Introdução aos Sistemas Robóticos Denis Fernando Wolf 1º semestre 2010 Sistemas embarcados Computação reconfigurável

Leia mais

Descritores de Imagem

Descritores de Imagem Descritores de Imagem André Tavares da Silva 31 de março de 2014 1 Descritores de imagem (continuação) 1.1 Frameworks de detecção de objetos SIFT (scale-invariant features transform) (Lowe, 1999) SIFT

Leia mais

Processamento Digital de Imagens

Processamento Digital de Imagens Ciência da Computação Processamento Digital de Imagens Tópicos Detecção de Pontos Isolados Detecção de Linhas Prof. Sergio Ribeiro 2 Operações lógicas e aritméticas orientadas a vizinhança utilizam o conceito

Leia mais

5 Análise Experimental

5 Análise Experimental 5 Análise Experimental 5.1. Base de dados para testes Foram gravados diversos vídeos que serviram para realizar os testes realizados nesta dissertação. Cada um dos vídeos gerados para medir qualidade da

Leia mais

Local SLAM. Defesa de Dissertação. Mestrado em Informática Lucas Teixeira. Departamento de Informática, PUC-Rio

Local SLAM. Defesa de Dissertação. Mestrado em Informática Lucas Teixeira. Departamento de Informática, PUC-Rio Local SLAM Defesa de Dissertação Mestrado em Informática Lucas Teixeira Departamento de Informática, PUC-Rio Overview Dehnel Consulting Ltd. Use of Commercial Cyclotrons Cyclotron Components Extraction

Leia mais

Processamento de Imagens CPS755

Processamento de Imagens CPS755 Processamento de Imagens CPS755 aula 05 - sistemas lineares - parte 2 Antonio Oliveira Ricardo Marroquim 1 / 27 laboratório de processamento de imagens tópicos métodos lineares mínimos quadrados equações

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Este capítulo apresenta os algoritmos já existentes que são utilizados nesta dissertação para obter pontos homólogos entre duas imagens de um par estéreo. Pode-se classificar essas

Leia mais

Calibração de múltiplas câmeras baseada em um padrão invariante. (Multiple camera calibration based on invariant pattern)

Calibração de múltiplas câmeras baseada em um padrão invariante. (Multiple camera calibration based on invariant pattern) Calibração de múltiplas câmeras baseada em um padrão invariante (Multiple camera calibration based on invariant pattern) Manuel Eduardo Loaiza Fernandez Marcelo Gattass (orientador) Alberto B. Raposo (co-orientador)

Leia mais

Descritores de Imagem (introdução)

Descritores de Imagem (introdução) Descritores de Imagem (introdução) André Tavares da Silva andre.silva@udesc.br Roteiro da aula Definição de descritor de imagem Extração de Característica Tipos Geral x Específico Global (cor, textura,

Leia mais

Rastreamento de Objetos Baseado em Grafos. Casamento Inexato entre Grafos Relacionais com Atributos

Rastreamento de Objetos Baseado em Grafos. Casamento Inexato entre Grafos Relacionais com Atributos Rastreamento de Objetos Baseado em Casamento Inexato entre Grafos Relacionais com Atributos Exame de Qualificação de Mestrado Ana Beatriz Vicentim Graciano Orientador: Roberto M. Cesar Jr. Colaboradora:

Leia mais

Teresa C. S. Azevedo

Teresa C. S. Azevedo Teresa C. S. Azevedo Orientador: Prof. João Manuel R. S. Tavares Co-orientador: Prof. Mário A. P. Vaz Sumário: I. Reconstrução 3D do corpo humano: i. Aplicações; ii. Técnicas; iii. Objectivos; II. utilizadas

Leia mais

Processamento de Imagens COS756 / COC603

Processamento de Imagens COS756 / COC603 Processamento de Imagens COS756 / COC603 aula 13 - Transformada de Hough e SIFT Antonio Oliveira Ricardo Marroquim 1 / 41 aula de hoje descritores Transformada de Hough SIFT 2 / 41 transformada de Hough

Leia mais

Processamento de Imagens Termais Aplicado à Navegação Autônoma. Wanessa da Silva

Processamento de Imagens Termais Aplicado à Navegação Autônoma. Wanessa da Silva Processamento de Imagens Termais Aplicado à Navegação Autônoma Wanessa da Silva Outubro, 2016 Introdução Roteiro Métodos Imagens Utilizadas Resultados Considerações Finais 1. Introdução 2. Métodos 4. Imagens:

Leia mais

2 SIFT (Scale Invariant Feature Transform)

2 SIFT (Scale Invariant Feature Transform) SIFT (Scale Invariant Feature Transform) O SIFT é um algoritmo de visão computacional proposto e publicado pelo pesquisador David Lowe (Lowe, 1999), professor do departamento de Ciência da Computação na

Leia mais

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2. 1 Introdução O termo visualização corresponde, no contexto desta dissertação, aos métodos que permitem a extração de informações relevantes a partir de conjuntos de dados complexos, com o auxílio de técnicas

Leia mais

Robótica Experimental

Robótica Experimental UNVERSDADE FEDERAL DO RO GRANDE DO NORTE Universidade Federal do Rio Grande do Norte Centro de Tecnologia Dept o de Engenharia de Computação e Automação DCA Robótica Eperimental Material didático Adelardo

Leia mais

Dr. Sylvio Barbon Junior. Departamento de Computação - UEL. 1 o Semestre de 2015

Dr. Sylvio Barbon Junior. Departamento de Computação - UEL. 1 o Semestre de 2015 Introdução a Computação Gráfica [5COP100] Dr. Sylvio Barbon Junior Departamento de Computação - UEL 1 o Semestre de 2015 Assunto Aula 8 Descritores de Imagens Digitais 2 of 47 Sumário Descritores e Reconhecimento

Leia mais

Jules Verne Leagues Under the Sea. Tópicos

Jules Verne Leagues Under the Sea. Tópicos Robótica Subaquática The great depths of the ocean are entirely unknown to us. Soundings cannot reach them. What passes in those remote depths we can scarcely conjecture. Jules Verne - 20000 Leagues Under

Leia mais

Exemplo de aplicação

Exemplo de aplicação Exemplo de aplicação Paralaxe O conceito de paralaxe está relacionado com o deslocamento relativo ou aparente dos objetos estacionários, quando um observador em movimento os olha de pontos diferentes.

Leia mais

Mapeamento de ambientes e processamento visual utilizando Kinect

Mapeamento de ambientes e processamento visual utilizando Kinect Mapeamento de ambientes e processamento visual utilizando Kinect Mário Alberto Cecchi Raduan Bolsista PIBIC/UFRJ Orientador: Adriano Joaquim de Oliveira Cruz, PhD Laboratório de Inteligência Computacional

Leia mais

INSTITUTO TECNOLÓGICO DE AERONÁUTICA

INSTITUTO TECNOLÓGICO DE AERONÁUTICA INSTITUTO TECNOLÓGICO DE AERONÁUTICA DIVISÃO DE ENGENHARIA MECÂNICA MP-272: CONTROLE E NAVEGAÇÃO DE MULTICÓPTEROS VI. NAVEGAÇÃO Prof. Davi Antônio dos Santos (davists@ita.br) Departamento de Mecatrônica

Leia mais

Processamento de Imagens CPS755

Processamento de Imagens CPS755 Processamento de Imagens CPS755 aula 07 - modelos de câmera Antonio Oliveira Ricardo Marroquim 1 / 32 laboratório de processamento de imagens tópicos matriz de calibração câmera finita câmera projetiva

Leia mais

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO

PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO PMR2560 ELEMENTOS DE ROBÓTICA 2016 TRABALHO DE VISÃO COMPUTACIONAL CALIBRAÇÃO DE CÂMERAS E VISÃO ESTÉREO Esse trabalho consiste de três partes. Na primeira parte do trabalho você vai calibrar duas câmeras

Leia mais

Assim, a rápida acumulação de erros pequenos pode causar o fracasso de quase todos os métodos para resolver o problema de SLAM.

Assim, a rápida acumulação de erros pequenos pode causar o fracasso de quase todos os métodos para resolver o problema de SLAM. 1 Introdução Avanços significativos têm sido feitos no sentido de criar um robô capaz de realizar tarefas completamente autônomas. As tarefas básicas como planejamento de trajetórias, localização e navegação

Leia mais

Introdução. Introdução. Introdução. Introdução. Introdução. Introdução à Robótica Robótica Móvel Localização. Principais questões na Robótica

Introdução. Introdução. Introdução. Introdução. Introdução. Introdução à Robótica Robótica Móvel Localização. Principais questões na Robótica à Robótica Robótica Móvel Localização Prof. Douglas G. Macharet douglas.macharet@dcc.ufmg.br Principais questões na Robótica Onde estou? (localização) Aonde vou? (objetivo) Como vou? (planejamento)? à

Leia mais

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES

RECONHECIMENTO FACIAL UTILIZANDO EIGENFACES Universidade Federal do Rio de Janeiro Instituto Alberto Luiz Coimbra de Pós-Graduação e Pesquisa de Engenharia Programa de Engenharia de Sistemas e Computação Rio de Janeiro, RJ Brasil RECONHECIMENTO

Leia mais

Desenvolvimento de Algoritmos de Exploração e Mapeamento Visual para Robôs Móveis de Baixo Custo

Desenvolvimento de Algoritmos de Exploração e Mapeamento Visual para Robôs Móveis de Baixo Custo Felipe Augusto Weilemann Belo Desenvolvimento de Algoritmos de Exploração e Mapeamento Visual para Robôs Móveis de Baixo Custo Dissertação de Mestrado Dissertação apresentada como requisito parcial para

Leia mais

Processamento de Imagens CPS755

Processamento de Imagens CPS755 Processamento de Imagens CPS755 aula 06 - sistemas não lineares Antonio Oliveira Ricardo Marroquim 1 / 38 laboratório de processamento de imagens tópicos RANSAC métodos iterativos (não-lineares) gradientes

Leia mais

Processamento digital de imagens

Processamento digital de imagens Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 11 de novembro de 2016 Fluxo óptico Usado para estimar

Leia mais

CARACTERÍSTICAS DE IMAGENS: PONTOS E SUPERFÍCIES

CARACTERÍSTICAS DE IMAGENS: PONTOS E SUPERFÍCIES CARACTERÍSTICAS DE IMAGENS: PONTOS E SUPERFÍCIES O que são? CARACTERÍSTICAS DE IMAGENS (Image Features) o Propriedades Globais de uma imagem, ou de parte dela (característica global). Por exemplo: Médias

Leia mais

NLMAP - Localização e Navegação de Robôs Cooperativos para Inspeção

NLMAP - Localização e Navegação de Robôs Cooperativos para Inspeção NLMAP - Localização e Navegação de Robôs Cooperativos para Inspeção Eder Gonçalves, Emanuel Estrada, Gabriel Leivas, Silvia Botelho Abstract O uso de veículos autônomos para inspeção visual é um promissor

Leia mais

Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais. Prof. Adilson Gonzaga

Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais. Prof. Adilson Gonzaga Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais Prof. Adilson Gonzaga 1 Introdução Objetos ou Segmentos são representados como uma coleção de pixels em uma imagem. Para o reconhecimento

Leia mais

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza INF2608 - Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza Trabalho 02 Visualização de Imagens Sísmicas e Detecção Automática de Horizonte Resumo Este trabalho

Leia mais

DESENVOLVIMENTO DE SISTEMA PARA GERAÇÃO DE MOSAICO DE IMAGENS VISANDO LOCALIZAÇÃO E NAVEGAÇÃO DE ROBÔS MÓVEIS

DESENVOLVIMENTO DE SISTEMA PARA GERAÇÃO DE MOSAICO DE IMAGENS VISANDO LOCALIZAÇÃO E NAVEGAÇÃO DE ROBÔS MÓVEIS DESENVOLVIMENTO DE SISTEMA PARA GERAÇÃO DE MOSAICO DE IMAGENS VISANDO LOCALIZAÇÃO E NAVEGAÇÃO DE ROBÔS MÓVEIS Edson CAVALCANTI Neto (1), Guilherme Costa HOLANDA (1), Antonio Themoteo VARELA (1), André

Leia mais

Detecção Robusta de Movimento de Câmera em Vídeos por Análise de Fluxo Ótico Ponderado

Detecção Robusta de Movimento de Câmera em Vídeos por Análise de Fluxo Ótico Ponderado Detecção Robusta de Movimento de Câmera em Vídeos por Análise de Fluxo Ótico Ponderado Rodrigo Minetto Prof. Dr. Neucimar Jerônimo Leite (Orientador) Prof. Dr. Jorge Stolfi (Co-orientador) Instituto de

Leia mais

Criação de mosaico usadando o SURF e o matcher FLANN

Criação de mosaico usadando o SURF e o matcher FLANN Criação de mosaico usadando o SURF e o matcher FLANN Felipe Jordão Pinheiro de Andrade Universidade Federal do Maranhão, São Luis, BRA Abstract. O trabalho propoe uma metodologia para a criação de um mosaico

Leia mais

6 Aplicações Detalhes da Implementação

6 Aplicações Detalhes da Implementação 6 Aplicações Neste trabalho, é importante implementar aplicações de interação em tempo real para que seja possível avaliar a aplicabilidade das técnicas de Visão Computacional descritas ao longo dos capítulos

Leia mais

Redes Neurais. A Rede RBF. Redes RBF: Função de Base Radial. Prof. Paulo Martins Engel. Regressão não paramétrica. Redes RBF: Radial-Basis Functions

Redes Neurais. A Rede RBF. Redes RBF: Função de Base Radial. Prof. Paulo Martins Engel. Regressão não paramétrica. Redes RBF: Radial-Basis Functions Redes RBF: Função de Base Radial Redes Neurais A Rede RBF O LP é baseado em unidades que calculam uma função não-linear do produto escalar do vetor de entrada e um vetor de peso. A rede RBF pertence a

Leia mais

Reconstrução Geométrica a Partir de Imagens TIC

Reconstrução Geométrica a Partir de Imagens TIC Reconstrução Geométrica a Partir de Imagens TIC-10.073 Aula 1 Conteúdo Apresentação da Disciplina Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2016.1/tic-10.073

Leia mais

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva

Visão computacional. Juliana Patrícia Detroz Orientador: André Tavares Silva Visão computacional Juliana Patrícia Detroz Orientador: André Tavares Silva Visão computacional Tentativa de replicar a habilidade humana da visão através da percepção e entendimento de uma imagem; Fazer

Leia mais

SISTEMAS ROBÓTICOS AUTÓNOMOS

SISTEMAS ROBÓTICOS AUTÓNOMOS SISTEMAS ROBÓTICOS AUTÓNOMOS Mestrado Integrado em Engenharia Eletrotécnica e de Computadores de Faculdade de Engenharia da Universidade do Porto A. Paulo G. M. Moreira Pag. 1 SISTEMAS ROBÓTICOS AUTÓNOMOS

Leia mais

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Visão Computacional. Alessandro L. Koerich. Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Visão Computacional Alessandro L. Koerich Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR) Análise da Imagem Análise da Imagem O algoritmo opera sobre a imagem e extrai

Leia mais

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade

Universidade Federal do Rio de Janeiro. Flávio Henrique Schuindt da Silva. Estimativa de Fluxo Ótico com o método de Lukas-Kanade Universidade Federal do Rio de Janeiro Programa de Engenharia de Sistemas e Computação Introdução ao Processamento de Imagens Flávio Henrique Schuindt da Silva Estimativa de Fluxo Ótico com o método de

Leia mais

2 Trabalhos Relacionados

2 Trabalhos Relacionados 2 Trabalhos Relacionados Nesta seção são expostos os principais trabalhos utilizados como base para esta pesquisa. O objetivo é introduzir os conceitos que foram desenvolvidos nesses trabalhos, usados

Leia mais

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho

1 Introdução. I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho 1 Introdução I know because I must know. It's my purpose. It's the reason I'm here. (The Matrix) 1.1 Objetivos do trabalho Os hardwares gráficos atualmente podem ser considerados como verdadeiros processadores

Leia mais

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres

Processamento de Imagem. A Imagem digital Professora Sheila Cáceres Processamento de Imagem A Imagem digital Professora Sheila Cáceres Visão Humana Processamento de Imagens 2 Semelhança entre o sistema visual humano e uma câmera fotográfica Várias semelhanças podem ser

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO INSTITUTO TÉRCIO PACCITI DE APLICAÇÕES E PESQUISAS COMPUTACIONAIS. Relatório Técnico, 05/06

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO INSTITUTO TÉRCIO PACCITI DE APLICAÇÕES E PESQUISAS COMPUTACIONAIS. Relatório Técnico, 05/06 1 UNIVERSIDADE FEDERAL DO RIO DE JANEIRO INSTITUTO TÉRCIO PACCITI DE APLICAÇÕES E PESQUISAS COMPUTACIONAIS Relatório Técnico, 05/06 DOOR CROSSING AND STATE IDENTIFICATION USING ROBOTIC VISION Eliana Prado

Leia mais

MÉTODO DE DETECÇÃO DE PONTOS DE INTERESSE PARA SENSOR DE TRIANGULAÇÃO LASER APLICADA A SOLDAGEM

MÉTODO DE DETECÇÃO DE PONTOS DE INTERESSE PARA SENSOR DE TRIANGULAÇÃO LASER APLICADA A SOLDAGEM MÉTODO DE DETECÇÃO DE PONTOS DE INTERESSE PARA SENSOR DE TRIANGULAÇÃO LASER APLICADA A SOLDAGEM Autores : Dan Lucio PRADA; Eduardo Bidese PUHL Identificação autores: Aluno da Ciência da Computação, Bolsista

Leia mais

AS MÁQUINAS DE MEDIR POR COORDENADAS (MMC)

AS MÁQUINAS DE MEDIR POR COORDENADAS (MMC) AS MÁQUINAS DE MEDIR POR COORDENADAS (MMC) Tópicos que serão explorados na aula Introdução Tipos de MMCs Sistema de medição (as réguas e apalpadores) Programas computacionais Erros Compensação (Calibração

Leia mais

Reconstrução Geométrica a Partir de Imagens TIC /TCC

Reconstrução Geométrica a Partir de Imagens TIC /TCC Reconstrução Geométrica a Partir de Imagens TIC-00.243/TCC-00.241 Aula 1 Conteúdo Apresentação da Disciplina Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2014.2/tic-00.243

Leia mais

2 PREDIÇÃO NO INTERIOR DAS EDIFICAÇÕES COM O TRANSMISSOR POSICIONADO EM UM AMBIENTE EXTERNO

2 PREDIÇÃO NO INTERIOR DAS EDIFICAÇÕES COM O TRANSMISSOR POSICIONADO EM UM AMBIENTE EXTERNO 2 PREDIÇÃO NO INTERIOR DAS EDIFICAÇÕES COM O TRANSMISSOR POSICIONADO EM UM AMBIENTE EXTERNO 2.1 INTRODUÇÃO Nos dias atuais com alto grau de competitividade entre as operadoras de telefonia celular, busca-se

Leia mais

Sistema de Reconhecimento de Logotipos

Sistema de Reconhecimento de Logotipos Sistema de Reconhecimento de Logotipos Fellipe Duarte, Saulo T. Oliveira {duartefellipe,sto}@cos.ufrj.br Relatório Técnico, Introdução ao Processamento de Imagens Programa de Engenharia de Sistemas e Computação

Leia mais

1 Introdução 1.1. Motivação

1 Introdução 1.1. Motivação 1 Introdução 1.1. Motivação O crescimento e popularização da robótica têm se evidenciado nos últimos anos principalmente com a explosão da automação industrial, comercial e residencial, além do aparecimento

Leia mais

SEL-0339 Introdução à Visão Computacional. Aula 5 Segmentação de Imagens

SEL-0339 Introdução à Visão Computacional. Aula 5 Segmentação de Imagens Departamento de Engenharia Elétrica - EESC-USP SEL-0339 Introdução à Visão Computacional Aula 5 Segmentação de Imagens Prof. Dr. Marcelo Andrade da Costa Vieira Prof. Dr. Adilson Gonzaga Segmentação de

Leia mais

Detecção e Correção Automáticas de Olhos Vermelhos

Detecção e Correção Automáticas de Olhos Vermelhos Setor de Tecnologia da Universidade Federal do Paraná Curso de Engenharia Elétrica TE 072 Processamento Digital de Sinais Detecção e Correção Automáticas de Olhos Vermelhos Trabalho elaborado pelo aluno

Leia mais

José Alberto Quintanilha Mariana Giannotti

José Alberto Quintanilha Mariana Giannotti José Alberto Quintanilha jaquinta@usp.br Mariana Giannotti mariana.giannotti@usp.br Estrutura da Aula Momento Satélite (Apresentação de um novo satélite a cada aula) O que é uma imagem de satélite? O histograma

Leia mais

PROCESSAMENTO DIGITAL DE IMAGENS

PROCESSAMENTO DIGITAL DE IMAGENS UNIVERSIDADE DE SÃO PAULO ESCOLA SUPERIOR DE AGRICULTURA LUIZ DE QUEIROZ DEPARTAMENTO DE ENGENHARIA DE BIOSSISTEMAS DISCIPLINA: LEB450 TOPOGRAFIA E GEOPROCESSAMENTO II PROF. DR. CARLOS ALBERTO VETTORAZZI

Leia mais

APLICAÇÃO DA VISÃO COMPUTACIONAL PARA SEGMENTAÇÃO DE OBJETOS EM IMAGENS CAPTURADAS POR EQUIPAMENTOS MÓVEIS.

APLICAÇÃO DA VISÃO COMPUTACIONAL PARA SEGMENTAÇÃO DE OBJETOS EM IMAGENS CAPTURADAS POR EQUIPAMENTOS MÓVEIS. APLICAÇÃO DA VISÃO COMPUTACIONAL PARA SEGMENTAÇÃO DE OBJETOS EM IMAGENS CAPTURADAS POR EQUIPAMENTOS MÓVEIS. João Marcelo RIBEIRO 1 Heber Rocha MOREIRA 2 Fiama F. S. do AMARAL 3 RESUMO Através da visão

Leia mais

RECONHECIMENTO IDENTIFICAÇÃO BASEADA EM APARÊNCIA

RECONHECIMENTO IDENTIFICAÇÃO BASEADA EM APARÊNCIA RECONHECIMENTO IDENTIFICAÇÃO BASEADA EM APARÊNCIA Envolve a pergunta: É esta parte da imagem uma parte do objeto X? (modelo dado, região da imagem dada) Utiliza imagens ao invés de características como

Leia mais

5 Implementação da Metodologia

5 Implementação da Metodologia 5 Implementação da Metodologia A implementação da metodologia proposta no Capítulo 4 é possível devido ao importante avanço que os métodos numéricos e a capacidade de processamento computacional atuais

Leia mais

Processamento de Imagens CPS755

Processamento de Imagens CPS755 Processamento de Imagens CPS755 aula 01 - geometria projetiva e transformações 2D Antonio Oliveira Ricardo Marroquim 1 / 44 laboratório de processamento de imagens tópicos geometria projetiva transformações

Leia mais

Sensoriamento remoto 1. Prof. Dr. Jorge Antonio Silva Centeno Universidade Federal do Paraná 2016

Sensoriamento remoto 1. Prof. Dr. Jorge Antonio Silva Centeno Universidade Federal do Paraná 2016 Sensoriamento remoto 1 correções geométricas Prof. Dr. Jorge Antonio Silva Centeno Universidade Federal do Paraná 2016 Correções geométricas Uma imagem digital de sensoriamento remoto é uma representação

Leia mais

5 Equacionamento do Filtro de Kalman

5 Equacionamento do Filtro de Kalman 5 Equacionamento do Filtro de Kalman As implementações do filtro de Kalman para a fusão do GPS com o sensor inercial são classificadas na literatura principalmente como: acopladas, utilizando como informação

Leia mais

Desenvolvido por: Prof. Dr. Fernando Osório* Farlei Heinen* (Mestrando em Computação Aplicada - PIP/CA)

Desenvolvido por: Prof. Dr. Fernando Osório* Farlei Heinen* (Mestrando em Computação Aplicada - PIP/CA) Seminário de Pesquisa - Mestrado em Computação Aplicada Robótica Autônoma: Projeto de Sistemas Inteligentes usando Aprendizado de Máquinas Desenvolvido por: Prof. Dr. Fernando Osório* Farlei Heinen* (Mestrando

Leia mais

Estimativa de Posição 3D de Obstáculos para VANTs

Estimativa de Posição 3D de Obstáculos para VANTs Estimativa de Posição 3D de Obstáculos para VANTs Rodolfo Barros Chiaramonte, Kalinka Regina Lucas Jaquie Castelo Branco Institute of Mathematics and Computing Sciences (ICMC) University of São Paulo (USP),

Leia mais

Problemas Inversos em Transferência Radiativa - Uma Formulação Implícita

Problemas Inversos em Transferência Radiativa - Uma Formulação Implícita Capítulo 3 Problemas Inversos em Transferência Radiativa - Uma Formulação Implícita AntônioJosédaSilvaNeto Haroldo Fraga de Campos Velho 3.1 O Que é um Problema Inverso? Em primeiro lugar vamos definir

Leia mais

7 Conclusões e desenvolvimentos futuros

7 Conclusões e desenvolvimentos futuros 7 Conclusões e desenvolvimentos futuros 7.1 Conclusões Este trabalho apresentou novas soluções para a determinação da posição de terminais de comunicações móveis com base em medidas de ToA. Nos métodos

Leia mais

Sistema de Localização Visual da Equipe de Futebol de Robôs POTI-UFRN (versão 2008) na Categoria Very Small Size

Sistema de Localização Visual da Equipe de Futebol de Robôs POTI-UFRN (versão 2008) na Categoria Very Small Size Sistema de Localização Visual da Equipe de Futebol de Robôs POTI-UFRN versão 2008) na Categoria Very Small Size Ellon P Mendes, Adelardo AD Medeiros UFRN-CT-DCA 59072-900 Natal RN Email: [ellonpaiva,adelardo]@dcaufrnbr

Leia mais

Trabalho Final de Processamento de Imagens: Panografia

Trabalho Final de Processamento de Imagens: Panografia Trabalho Final de Processamento de Imagens: Panografia 1. Introdução Vítor Silva Sousa 1 1 Escola Politécnica Universidade Federal do Rio de Janeiro (UFRJ) Rio de Janeiro RJ Brasil vitor.silva.sousa@gmail.com

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Niterói 2008 Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Trabalho de Conclusão

Leia mais

CAPÍTULO 2 OPERADORES DE CASAMENTO DE PADRÕES

CAPÍTULO 2 OPERADORES DE CASAMENTO DE PADRÕES CAPÍTULO 2 OPERADORES DE CASAMENTO DE PADRÕES 2.1 INTRODUÇÃO Neste capítulo são apresentados os principais operadores de casamento de padrões encontrados na literatura. No Apêndice A, encontram se mais

Leia mais

Processamento de Malhas Poligonais

Processamento de Malhas Poligonais Processamento de Malhas Poligonais Tópicos Avançados em Computação Visual e Interfaces I Prof.: Marcos Lage www.ic.uff.br/~mlage mlage@ic.uff.br Conteúdo: Notas de Aula Curvas 06/09/2015 Processamento

Leia mais

4 Estado da Arte do Kernel PCA

4 Estado da Arte do Kernel PCA 4 Estado da Arte do Kernel PCA Conforme apresentado no Capítulo 1, o Kernel PCA é uma técnica promissora para auxiliar no processo de ajuste de histórico, devido a sua capacidade de extrair parte da estatística

Leia mais

Cinemática Inversa de Manipuladores

Cinemática Inversa de Manipuladores Cinemática Inversa de Manipuladores 1998Mario Campos 1 Introdução Cinemática Inversa Como calcular os valores das variáveis de junta que produzirão a posição e orientação desejadas do órgão terminal? 1998Mario

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade 1) Analise as alternativas abaixo e marque V para verdadeiro e F para falso. No segundo caso, explique como as tornaria verdadeiras: ( ) O método das secantes é utilizado para solucionar um problema de

Leia mais

Processamento digital de. Distorções

Processamento digital de. Distorções Processamento digital de imagens Distorções Distorções radiométricas No processo de aquisição, o verdadeiro valor da energia é distorcido por diferentes fatores entre os quais podem ser citados: calibração

Leia mais

SIFT - Scale Invariant Feature Transform

SIFT - Scale Invariant Feature Transform SIFT - Scale Invariant Feature Transform Daniel Pinto Coutinho Prof. Ricardo Marroquim 1 Introdução A detecção de pontos de interesse em uma figura é uma tarefa muito comum no campo de processamento de

Leia mais

Processamento de Imagens COS756 / COC603

Processamento de Imagens COS756 / COC603 Processamento de Imagens COS756 / COC603 aula 15 - Fluxo Ótico - parte I Antonio Oliveira Ricardo Marroquim 1 / 1 aula de hoje fluxo ótico estimando movimentos em imagens 2 / 1 motivação para que serve?

Leia mais

ESTUDO DA RESPOSTA DE PROPULSORES DE VEÍCULOS SUBAQUÁTICOS NÃO-TRIPULADOS (ROV s)

ESTUDO DA RESPOSTA DE PROPULSORES DE VEÍCULOS SUBAQUÁTICOS NÃO-TRIPULADOS (ROV s) ESTUDO DA RESPOSTA DE PROPULSORES DE VEÍCULOS SUBAQUÁTICOS NÃO-TRIPULADOS (ROV s) Diogo Marujo (ICV/PRPPG-UNIOESTE), Samir de Oliveira Ferreira (ICV/PRPPG-UNIOESTE), Carlos Henrique dos Santos Farias (Orientador),

Leia mais

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

Universidade Federal do Rio de Janeiro - IM/DCC & NCE Universidade Federal do Rio de Janeiro - IM/DCC & NCE Processamento de Imagens Segmentação Antonio G. Thomé thome@nce.ufrj.br Sala AEP/133 Conceituação Segmentação é uma tarefa básica no processo de análise

Leia mais

Processamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres

Processamento de Imagem. Filtragem no Domínio Espacial Professora Sheila Cáceres Processamento de Imagem Filtragem no Domínio Espacial Professora Sheila Cáceres Filtragem A filtragem de imagens pode ser realizada no domínio do espaço e da frequência Operadores de filtragem são classificados

Leia mais

Disciplina de Mecânica Geral II. CINEMÁTICA e DINÂMICA de CORPOS RÍGIDOS

Disciplina de Mecânica Geral II. CINEMÁTICA e DINÂMICA de CORPOS RÍGIDOS isciplina de Mecânica Geral II CINEMÁTIC e INÂMIC de CORPOS RÍGIOS CINEMÁTIC é o estudo da geometria em movimento, utilizada para relacionar as grandezas de deslocamento, velocidade, aceleração e tempo.

Leia mais

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO

INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO INTRODUÇÃO AO PROCESSAMENTO DIGITAL DE IMAGENS SENSORIAMENTO REMOTO PROCESSAMENTO DE IMAGENS Introdução Conceitos básicos Pré-processamento Realce Classificação PROCESSAMENTO DE IMAGENS Extração de Informações

Leia mais

EEC1515 Visão computacional. Formação das imagens

EEC1515 Visão computacional. Formação das imagens EEC1515 Visão computacional Formação das imagens Revisão aula passada Imagem Imagem Desejamos obter informações a partir de imagens de forma computacional O que é uma imagem? Etimologia da palavra: latim

Leia mais

Introdução. Introdução Exemplo. Introdução. Representação do Ambiente Exemplo. Representação do Ambiente. Mapeamento e Localização Simultâneos

Introdução. Introdução Exemplo. Introdução. Representação do Ambiente Exemplo. Representação do Ambiente. Mapeamento e Localização Simultâneos Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade de São Paulo USP/São Carlos e Localização Simultâneos Giampaolo Luiz Libralon Professora Roseli Aparecida Francelin Romero Introdução

Leia mais

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica

Computaçã. Visão Geral. Sistema Gráfico. Computação Gráfica. Pixels. Sistema Gráfico e o Frame Buffer. Introdução à Computação Gráfica Visão Geral Computaçã ção o Gráfica Introduçã ção, conceitos básicosb sicos, áreas relacionadas Introdução à Computação Gráfica Como funciona um sistema gráfico Como imagens são representadas Áreas relacionadas,

Leia mais

Processamento digital de imagens

Processamento digital de imagens Processamento digital de imagens Agostinho Brito Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte 6 de outubro de 2016 Segmentação de imagens A segmentação

Leia mais

Detecção de características. Fabíola Alvares R. de Souza Maffra Orientador: Marcelo Gattass

Detecção de características. Fabíola Alvares R. de Souza Maffra Orientador: Marcelo Gattass Detecção de características faciais utilizando FERNS Fabíola Alvares R. de Souza Maffra Orientador: Marcelo Gattass Dissertação de mestrado 20 de agosto de 2009 Agenda Motivação e objetivo Desafios Contribuições

Leia mais