Carlos Vinícius Sousa de Oliveira. Mapas de Disparidade utilizando Cortes de Grafo e Multi-Resolução. Dissertação de Mestrado

Documentos relacionados
Carlos Vinícius Sousa de Oliveira rio.br. Orientador: Prof. Marcelo Gattass

Figura 5.1: Resultados do método desenvolvido por Kolmogorov (09).

Iam Vita Jabour. O Impacto de Atributos Estruturais na Identificação de Tabelas e Listas em Documentos HTML. Dissertação de Mestrado

João Paulo de Freitas Araujo. Algoritmos para acelerar a computação de Árvores de corte de Gomory e Hu. Dissertação de Mestrado

Francisco Benjamim Filho. XHITS: Estendendo o Algoritmo HITS para Extração de Tópicos na WWW DISSERTAÇÃO DE MESTRADO

BCC204 - Teoria dos Grafos

CIC 111 Análise e Projeto de Algoritmos II

6 Estudos de Casos Porta Lógica OU de 4 Entradas

Tatiana Waintraub. Modelagem da calçada de Copacabana. Dissertação de Mestrado

Um Estudo Sobre Middlewares Adaptáveis

Mapeamento Automático de Horizontes e Falhas em Dados Sísmicos 3D baseado no algoritmo de Gás Neural Evolutivo

Ricardo Fukasawa. Resolução de problemas de logística ferroviária utilizando programação inteira DISSERTAÇÃO DE MESTRADO

1 Introdução Motivação

4 Implementação Computacional

Buscas Informadas ou Heurísticas - Parte II

Otávio de Pinho Forin Braga. Uma Arquitetura para Síntese de Imagens Fotorrealistas baseada em Técnicas de Monte Carlo DISSERTAÇÃO DE MESTRADO

Otimização Combinatória - Parte 4

Método de restrições ativas para minimização em caixas

Uma abordagem baseada em SPH para animação interativa de águas rasas em jogos

QEEF-G: Execução Paralela Adaptativa de Consultas Iterativas

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

Problemas de otimização

Figura 1.1: Partição do espaço contendo a esfera S.

Pedro Tiago Barbosa do Couto. Resolução de problemas de transporte rodoviário de cargas utilizando programação inteira DISSERTAÇÃO DE MESTRADO

Seminário de Robótica Bruno de Abreu Silva

Mauricio Kreczmarsky Guimarães Meinicke. Opacidade 3D na Visualização Volumétrica de Dados Sísmicos

Criação Automática de Visões Materializadas em SGBDs Relacionais

Elicitação de requisitos de software através da utilização de questionários

Teresa C. S. Azevedo

Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2

PCC173 - Otimização em Redes

5 Qualidade dos Resultados

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

Reconstrução de Geometria a Partir da Conectividade 27

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

6 Experimentos realizados

Controle da Execução e Disponibilização de Dados para Aplicativos sobre Seqüências Biológicas: o Caso BLAST

Uma Introdução à Busca Tabu André Gomes

Uma Proposta de Sistema de Dependência a Distância Usando a Plataforma Moodle

Algoritmo Aproximação. Prof. Anderson Almeida Ferreira [DPV]9.2 [ZIV]9.2.2 e 9.2.3

Renato Figueiró Maia. Um Framework para Sistemas Baseados em Componentes Distribuídos. Informática DEPARTAMENTO DE INFORMÁTICA

3 Metaeurísticas e Resolvedores MIP

PARALELIZAÇÃO DE ALGORITMO DE INSPEÇÃO DE ROTAS UTILIZANDO PERMUTAÇÃO LEXICOGRÁFICA 1

Grafos - Introdução. Pedro Ribeiro 2014/2015 DCC/FCUP. Pedro Ribeiro (DCC/FCUP) Grafos - Introdução 2014/ / 32

Registro de sísmica 3D a dados de poços

Otimização da Paleta de Cores

5 VNS com Filtro e Reconexão por Caminhos

INTERPOLAÇÃO LINEAR E BILINEAR: APLICAÇÃO EM TRANSFORMAÇÕES GEOMÉTRICAS DE IMAGEM INTRODUÇÃO

Marcela Silva Novo. Guias de Onda de Seção Arbitrária: Análise de campos modais e de descontinuidades em guias de diferentes seções

Reconstrução de cenas a partir de imagens através de Escultura do Espaço por Refinamento Adaptativo

O estudo utilizando apenas este material não é suficiente para o entendimento do conteúdo. Recomendamos a leitura das referências no final deste

Apresentação de uma Plataforma Computacional para a Reconstrução e Caracterização da Forma 3D de Objectos

3 Extensões dos modelos matemáticos

2 Definição do Problema

Carlos Roberto da Costa Ferreira. Interpolação Modificada de LSF's. Dissertação de Mestrado

Modelagem em Experimentos Mistura-Processo para Otimização de Processos Industriais

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

A quantidade de informação existente no mundo é grande e cresce a uma taxa exponencial a cada ano. Aplicações como engenhos de busca web, por

3 Métodos de Extração de Malhas a partir de Volumes

Renata Thomaz Lins do Nascimento. Visualização por Imagens Auto-animadas de Campos Vetoriais Baseada na sua Topologia. Dissertação de Mestrado

3 Sistema de Partículas na CPU

Busca em Profundidade e em Largura

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica

4 Cálculo de Equivalentes Dinâmicos

Problemas de Fluxo em Redes

Thomas de Campos Tsuchida. Modelagem da localização de pólos de venda de derivados de petróleo. Dissertação de Mestrado (Opção Profissional)

Projeto e Análise de Algoritmos NP Completude. Prof. Humberto Brandão

5 Resultados Experimentais

Arquitecturas Paralelas I Computação Paralela em Larga Escala LESI - 4º Ano. Desenvolvimento de Aplicações Paralelas

Bruno de Figueiredo Melo e Souza. Modelos de fatoração matricial para recomendação de vídeos. Dissertação de Mestrado

Bruno Siqueira Silva. Workflows dinâmicos em gerência de projetos ágeis. Dissertação de Mestrado

Seleção de Atributos 1

Francisco Eduardo Torres Cursino de Moura. Uma proposta para Rendering Baseado em Imagens em celulares

lnteligência Artificial

Reconstrução e Síntese de Cenários Tridimensionais a partir de Imagens Estereoscópicas

Alocação de Unidades via Relaxação Lagrangeana

Processamento Digital de Imagens

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

Teoria da Computação. Complexidade computacional classes de problemas

Reconhecimento de texturas utilizando padrão binário local e classificador knn.

Algoritmos para o problema da árvore de Steiner com coleta de prêmios

Utilização de uma estratégia para identificação de fontes de informação na fase de elicitação

4 Detecção de Silhueta

Processamento digital de imagens

Otimização da Paleta de Cores

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

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

Introdução. 1 Introdução

RESOLUÇÃO DE PROBLEMAS POR MEIO DE BUSCA (PARTE 1) *Capítulo 3 (Russel & Norvig)

Visualização de terrenos em GPU

Técnicas Inteligência Artificial

Backtracking. Túlio Toffolo Marco Antônio Carvalho BCC402 Aula 10 Algoritmos e Programação Avançada

Sistema para Consultas sobre Banco de Dados Relacional Baseado em Palavras-Chave

Estimadores de Curvaturas para Curvas no R 4

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

2 SIFT (Scale Invariant Feature Transform)

4 Algoritmo de reconstrução de curvas

4 Cálculo de Equivalentes Dinâmicos

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

Adriano Francisco Branco. Um modelo de programação para RSSF com. Dissertação de Mestrado

Transcrição:

Carlos Vinícius Sousa de Oliveira Mapas de Disparidade utilizando Cortes de Grafo e Multi-Resolução Dissertação de Mestrado Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós graduação em Ciências da Computação do Departamento de Informática da PUC Rio Orientador: Prof. Marcelo Gattass Rio de Janeiro Março de 2010

Carlos Vinícius Sousa de Oliveira Mapas de Disparidade utilizando Cortes de Grafo e Multi-Resolução Dissertação apresentada como requisito parcial para obtenção do grau de Mestre pelo Programa de Pós graduação em Ciências da Computação do Departamento de Informática do Centro Técnico Científico da PUC Rio. Aprovada pela Comissão Examinadora abaixo assinada. Prof. Marcelo Gattass Orientador Departamento de Informática PUC Rio Rio de Janeiro, 29 de Março de 2010

Todos os direitos reservados. É proibida a reprodução total ou parcial do trabalho sem autorização da universidade, do autor e do orientador. Carlos Vinícius Sousa de Oliveira Graduou se em Ciência da Computação na Universidade Federal Fluminense (Niterói, Brasil), onde obteve grau de Bacharel em Ciência da Computação. Trabalhou junto à empresa TV Globo como Analista de Sistemas, desenvolvendo sistemas para exibição e manipulação de vídeos em alta definição, e com controle de dispositivos. Oliveira, Carlos Ficha Catalográfica Mapas de Disparidade utilizando Cortes de Grafo e Multi- Resolução / Carlos Vinícius Sousa de Oliveira; orientador: Marcelo Gattass. Rio de Janeiro : PUC Rio, Departamento de Informática, 2010. v., 41 f: il. ; 29,7 cm 1. Dissertação (mestrado) - Pontifícia Universidade Católica do Rio de Janeiro, Departamento de Informática. Inclui referências bibliográficas. 1. Informática Tese. 2. Algoritmo de Estéreo. 3. Cortes de Grafo. 4. Multi-Resolução. 5. Minimização de Energia. I. Gattass, Marcelo. II. Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. III. Título. CDD: 510

Agradecimentos Aos meus orientadores Professores Marcelo Gattas e Cristina Vasconcelos pelo apoio, compreensão e incentivo, imprescindíveis para a realização deste trabalho. À TV Globo e à PUC-Rio pelos auxílios concedidos, sem os quais este trabalho não poderia ter sido realizado. Ao professor Waldemar pelas suas nunca relutantes exortações. A Deus que esteve comigo em todo o tempo, sustentou e me deu sabedoria para conduzir minhas responsabilidades. Aos meus colegas de trabalho Diego Mazala e Algemiro Augusto, pelo apoio e incentivo empenhados durante esta caminhada, essenciais para que eu continuasse até o fim. Aos meus amigos que se importaram e suportaram a ausência sempre que foi necessário.

Resumo Oliveira, Carlos; Gattass, Marcelo. Mapas de Disparidade utilizando Cortes de Grafo e Multi-Resolução. Rio de Janeiro, 2010. 41p. Dissertação de Mestrado Departamento de Informática, Pontifícia Universidade Católica do Rio de Janeiro. Reconstruir a informação 3D de uma cena é uma tarefa bastante comum em Visão Computacional. Uma das técnicas mais utilizadas para realizar esta tarefa é a correspondência por estéreo, que consiste basicamente em, dadas duas imagens referentes a uma mesma cena vista de pontos diferentes, determinar os pontos correspondentes entre essas duas imagens e armazenar essa informação em um mapa de disparidades. Até hoje diversos métodos foram propostos para resolver o problema de estéreo com um esforço computacional viável e mantendo a qualidade dos resultados. Essa, entretanto, é uma tarefa bastante árdua e que dificilmente alcança resultados precisos com pouco esforço computacional. Nesse âmbito, uma técnica que tem sido muito estudada são os Cortes de Grafo (Graph Cuts), que almeja resolver o problema de minimização de energia em tempo polinomial. Nesse caso o problema de estéreo é mapeado como um problema de minimização de energia e desta forma solucionado utilizando cortes de grafo. Neste trabalho estudamos as técnicas de cortes de grafo mais recentes e eficientes e propomos um método para a determinação de correspondências entre duas imagens num contexto de multi-resolução, no qual uma pirâmide Gaussiana para as imagens é construída e a técnica de cortes de grafo é aplicada em níveis menores, otimizando a performance e obtendo resultados mais precisos através da utilização do algoritmo de expansão-α. Serão revisadas as técnicas de cortes de grafo e de multi-resolução e os resultados obtidos são apresentados e avaliados em relação a métodos semelhantes. Palavras chave Algoritmo de Estéreo. Cortes de Grafo. Multi-Resolução. Minimização de Energia.

Abstract Oliveira, Carlos; Gattass, Marcelo. Disparity Maps using Graph Cuts with Multi-Resolution. Rio de Janeiro, 2010. 41p. MsC Thesis Department of Informática, Pontifícia Universidade Católica do Rio de Janeiro. Reconstructing the 3D information of a scene is a common task in Computer Vision. Stereo matching is one of the most investigated techniques used to perform this task, which basically consists of, given two images of a scene seen from different view points, determining corresponding pixels in these two images and store this information in a disparity map. Several methods have been proposed to solve the stereo problem keeping good performance and giving good quality results. This is however a very arduos task which hardly achieves precise results with low computational power. In this context, the Graph Cuts method has been very much considered, which aims to solve the energy minimization problem in polinomial time. In this case the stereo problem can be modelled as an energy minimization problem and, thus solved using the Graph Cuts technique. In this work we investigate the most recent and efficient Graph Cuts methods and propose a method for establishing the correspondences between two images in the context of multi-resolution, in which a Gaussian pyramid for the input images is built and the Graph Cuts methods is applied in coarser levels, optimizing the performance and getting more precise results through the use of the α-expansion algorithm. The Graph Cuts and multiresolution techniques are reviewed and the results of the proposed method are presented and evaluated compared to similar methods. Keywords Stereo Algorithm. Graph Cuts. Multi-Resolution. Energy Minimization.

Sumário 1 Introdução 10 2 Trabalhos Relacionados 13 2.1 Estéreo 13 2.2 Cortes de Grafo e Multi-Resolução 14 3 Estéreo e Cortes de Grafo 15 3.1 Cortes de Grafo 16 3.2 Algoritmos de Expansão e Troca 17 3.3 Minimização de Energia e Corte Mínimo 20 4 Multi-Resolução com Cortes de Grafo para Estéreo 22 4.1 Multi-Resolução para Estéreo 22 4.2 Redução do Espaço de Disparidades 25 5 Resultados 31 6 Conclusões e Trabalhos Futuros 37 Referências Bibliográficas 39

Lista de figuras 1.1 Imagens esquerda e direita e o respectivo mapa de disparidades 11 1.2 Framework do método proposto por Zitnick 11 3.1 Grafo (à esquerda) com 9 pixels a serem classificados e corte em um grafo (à direita). 16 3.2 Tipos de movimento possíveis para uma atribuição de rótulos (a) com três rotulos possíveis: vermelho, verde e azul. De (a) para (b) temos uma troca-αβ e de (a) para (c) temos uma expansão-α. 18 3.3 Exemplo de árvores de busca S (em vermelho) e T (verde) contendo nós ativos A e nós passivos P. Os nós brancos restantes são os nós livres. O caminho encontrado está em preto (reproduzido de (06)). 21 4.1 Fluxograma geral do método de Multi-Resolução com Cortes de Grafo para estéreo. 23 4.2 Exemplo de uma pirâmide de imagens. O nível 0 (l 0 ) representa a imagem original, na escala mais amostrada, enquanto l max a escala menos amostrada. 24 4.3 Reamostragem de um nível menos amostrado l i para um nível mais amostrado l i 1. Pixels com rótulo desconhecido estão em cinza. 25 4.4 Em (b) a vizinhança de rótulos de (a). Os rótulos em questão (present) estão em amarelo. (Reproduzido de (04)) 27 5.1 Resultados do método desenvolvido por Kolmogorov (10). 31 5.2 Resultados obtidos com o método desenvolvido por Worby (04). 32 5.3 Resultados obtidos com nosso método usando o algoritmo LDNR. 33

Lista de tabelas 5.1 Resultados obtidos com o método utilizado por Kolmogorov 32 5.2 Resultados obtidos com o nosso método 32 5.3 Resultados obtidos utilizando o método LDNR 34 5.4 Resultados obtidos utilizando o método EL 35 5.5 Resultados obtidos utilizando o método EAC 35 5.6 Tabela comparativa da acurácia obtida em relação a outros métodos 36

1 Introdução O cálculo de correspondências por estéreo é um problema clássico e que já é estudado há muito tempo. Ele tem atraído grande interesse de pesquisadores, especialmente pela quantidade de aplicações em computação gráfica e processamento de imagens. Ao longo dos anos muitos algoritmos foram propostos para resolver o problema. Entretanto é uma tarefa bastante árdua desenvolver um algoritmo que ao mesmo tempo apresente bons resultados sem comprometer sua performance. Dadas duas imagens capturadas de diferentes pontos de vista (no sistema humano, se referem aos olhos esquerdo e direito), o objetivo de um algoritmo de estéreo é identificar pontos em ambas as imagens que se referem ao mesmo ponto na cena. A idéia é determinar a diferença de localização de pontos correspondentes em ambas as imagens. Em geral os algoritmos de estéreo consideram que as imagens de entrada são retificadas e dessa forma a diferença de localização é calculada apenas pelo deslocamento em x de um pixel na imagem direita em relação à imagem esquerda. Esse deslocamento é chamado de disparidade. Dessa forma a saída de um algoritmo de estéreo consiste em um mapa de disparidades, que é um mapa indicando para cada pixel a diferença de localização deste na imagem direita em relação à imagem esquerda. Através do mapa de disparidades podemos utilizar triangulação para obter o mapa de profundidade. Uma vez que que as correspondências entre pixels sejam conhecidas as coordenadas do mundo de cada ponto da imagem podem ser reconstruídas, a menos de um fator de escala que pode ser conhecido pela calibração do sistema de câmeras. A figura 1.1 mostra duas imagens (esquerda e direita) e o mapa de disparidades da imagem direita em relação à imagem esquerda. A determinação de um mapa de disparidades acurado continua sendo uma tarefa difícil na prática. Isso acontece devido a três problemas principais enfrentados pelos algoritmos de estéreo e que precisam ser levados em consideração quando a acurácia é essencial, a saber: regiões de pouca textura: nesse caso há várias possibilidades de correspondência possíveis;

Capítulo 1. Introdução 11 Figura 1.1: Imagens esquerda e direita e o respectivo mapa de disparidades regiões de oclusão: pixels em regiões de oclusão são aqueles que estão presentes em uma imagem mas não estão presentes na outra, o que pode levar a correspondências incorretas se não levados em consideração; regiões de descontinuidade: trata-se das bordas dos objetos da cena, onde há mudanças bruscas de profundidade/disparidade. A reconstrução 3D de uma cena é motivada por diversas aplicações em visão computacional. Por exemplo, Zitnick et al. apresentam em (13) um framework que implementa a renderização de vídeos de alta qualidade usando interpolação de imagens com uma representação em camadas. A figura 1.2 mostra um diagrama indicando as etapas envolvidas neste processo. Palomo, em seu projeto de mestrado (03), explorou a etapa de renderização com o objetivo de permitir que a mesma seja feita em tempo real, propondo uma implementação em GPU para tal fim. Figura 1.2: Framework do método proposto por Zitnick Como pode ser visto na figura 1.2 uma das etapas deste processo é justamente a obtenção da geometria da cena através do cálculo de correspondências de pixels entre duas imagens de referência para a determinação da imagem referente a uma câmera virtual. Nosso trabalho visa desenvolver um algoritmo de estéreo, que entre outras finalidades, possa ser integrado nesse framework. Em paralelo às técnicas de estéreo, o método de Cortes de Grafo tem se tornado uma ferramenta de otimização bastante poderosa e popular e que tem

Capítulo 1. Introdução 12 sido bastante utilizada nas áreas de segmentação de imagens, visão estéreo, restauração de imagens, etc. É utilizado quando o problema em questão pode ser modelado como um problema de minimização de energia. Nesse caso o problema é mapeado em um grafo de maneira que o corte mínimo do grafo minimize a energia total do sistema. Para realizar o cálculo do corte mínimo algoritmos de Fluxo Máximo (06) em grafos são utilizados. Entretanto a técnica de cortes de grafo pode ser bastante custosa e existem trabalhos que visam reduzir o custo de se utilizar tal algoritmo. Uma possibilidade consiste em reduzir o tamanho do conjunto de rótulos (valores de disparidades) que são usados pelo algoritmo em cada iteraçao, conjunto este denominado espaço de disparidades, utilizado pelo algoritmo, que foi abordada por Veksler (05) e Worby (04). Outra abordagem possível é a técnica de Multi-Resolução, que utiliza o conceito de Pirâmide Gaussiana. Trata-se de uma pirâmide de imagens que é construída na qual cada nível da pirâmide contém uma versão menos amostrada da imagem segundo um fator de escala e um parâmetro de ponderação, denominada Pirâmide Gaussiana. Nesse caso uma pirâmide Gaussiana para cada imagem de entrada é construída e o algoritmo de cortes de grafo é utilizado num conjunto restrito de disparidades e em níveis menores, com um número de pixels reduzido. O propósito desse trabalho é pesquisar e analisar algoritmos de estéreo propostos para o cálculo de correspondências, as técnicas de Graph Cut e Multi-Resolução e desenvolver um novo método de cálculo de correspondências utilizando Cortes de Grafo e Multi-Resolução, de maneira que tenhamos um algoritmo com melhor desempenho que os estudados sem comprometer a acurácia dos resultados produzidos pelos mesmos. Este trabalho está organizado da seguinte maneira: no capítulo 2 apresentamos alguns trabalhos que estão diretamente relacionados ao tema e que se mostraram competitivos na solução do problema de estéreo, relacionando suas principais características e evidenciando nossa escolha por essa direção. No capítulo 3 vamos tratar do problema de minimização de energia e de como este pode ser resolvido utilizando o método de Cortes de Grafo de maneira eficiente. No capítulo 4 vamos abordar o método de Multi-Resolução e da integração da técnica de Cortes de Grafo a este método visando maior qualidade e performance. O capítulo 5 apresenta os resultados obtidos com a aplicação do método proposto utilizando como entrada os dados disponíveis em (20). Por fim, no capítulo 6 apresentamos nossas conclusões a respeito do trabalho desenvolvido e sugerimos possibilidades de aprimoramentos para trabalhos futuros.

2 Trabalhos Relacionados Neste capítulo vamos relacionar alguns trabalhos que obtiveram destaque considerável ao tratar do problema de estéreo e do problema de minimização de energia. A grande maioria dos métodos relacionados na seção 2.1 são discutidos e comparados no artigo de Scharstein & Szeliski (11), onde são realizadas uma taxonomia e comparação dos algoritmos de estéreo mais populares. Na seção 2.2 apresentamos alguns contextos onde a técnica de Cortes de Grafo e Multi-Resolução foram exploradas e que inspiraram o desenvolvimento deste trabalho. 2.1 Estéreo Uma das maiores dificuldades de um algoritmo de estéreo é definir uma metodologia que equilibre a precisão do método e a performance. Yoon & Kweon (14) desenvolveram um método para o cálculo de correspondências que fazia uso do conceito de vizinhanças de pixel de tamanho fixo e de pesos adaptativos para os pixels dessa vizinhança. Os resultados obtidos tinham boa precisão mas o custo do processamento era muito alto dada a natureza das operações realizadas. Posteriormente Wang et al. (16) adaptaram o método de Yoon & Kweon para que as vizinhanças fossem apenas horizontais (scanlines) e implementaram o método na GPU, obtendo um método com performance em tempo real mas com resultados inferiores aos de Yoon & Kweon. Em (18) Wang & Zheng apresentaram um algoritmo de estéreo baseado em otimização cooperativa inter-regional, que utiliza correspondências de regiões e implementa um procedimento de otimização cooperativa para minimizar os custos de correspondência de todas as regiões. Em (19) Klaus et al. propuseram um algoritmo de estéreo que utiliza segmentação de cor na imagem de referência e um método de correspondência auto-adaptativo que maximiza o número de correspondências confiáveis. Yang et al. exploraram bastante o conceito de Belief-Propagation em (17) onde um método para cálculo de correspondências em tempo real utilizando GPU é apresentado. Forstmann et al. (15) também propuseram um

Capítulo 2. Trabalhos Relacionados 14 método de cálculo de correspondências em tempo real utilizando programação dinâmica e que apresentava resultados bastante acurados. Em (12) Gong et al. apresentam os resultados de um estudo realizado a respeito da implementação de vários algoritmos de estéreo em GPU. 2.2 Cortes de Grafo e Multi-Resolução Um dos primeiros trabalhos onde o método de Cortes de Grafo foi explorado nesse contexto foi o desenvolvido por Boykov et al. em (08), onde o método de cortes de grafo é explorado densamente e é aplicado em problemas de estéreo, motion e restauração de imagens. Logo depois Kolmogorov & Zabih (10) aprimoraram o método em (08) para que tratasse também do problema de oclusão e obtiveram resultados promissores tanto em termos de qualidade quanto em performance. Ainda neste contexto Kolmogorov & Zabih realizaram um estudo e apresentaram em (07) uma generalização dos tipos de funções de energia que podem ser minimizadas utilizando cortes de grafo. Proporcionaram também um método genérico e analisaram os diversos aspectos da técnica de cortes de grafo de maneira generalizada. A grande maioria dos trabalhos desenvolvidos utilizando cortes de grafo fazem uso dos resultados obtidos por Boykov & Vladimir em (06) onde um estudo e uma comparação experimental de vários algoritmos de cálculo de Corte Mínimo/Fluxo Máximo em grafos é realizado. Worby & MacLean apresentam em (04) um novo método de cálculo de correspondências e motion baseado em cortes de grafo utilizando Multi-Resolução, que foi exaustivamente explorado por Worby em (02). Em (05) Veksler propõe uma alternativa de otimização do método de cortes de grafo através da redução do espaço de busca para o algoritmo. Entretanto Veksler afirma não ter obtido ganhos consideráveis com a técnica de multi-resolução neste caso. Por fim em (09) Kosov et al. apresentam uma técnica adaptativa de multi-níveis combinada com uma abordagem em multigrid que, segundo o autor, permite ao método atingir performance em tempo real em CPU.

3 Estéreo e Cortes de Grafo Muitos problemas de visão computacional podem ser naturalmente formulados como um problema de minimização de energia. O uso clássico de minimização de energia é para solucionar o problema de atribuição de rótulos (labels). Especificamente o problema de estéreo pode ser visto como um problema de atribuiçao de rotulos onde temos um conjunto de n pixels P e de k disparidades (rótulos) L. O problema consiste em encontrar uma atribuição de rótulos f, ou seja, um mapeamento de P em L, que minimize alguma função de energia. Uma forma típica de função de energia é E(f) = E data (f) + E smooth (f) = D p (f p ) + V p,q (f p, f q ) (3-1) p P p,q N onde N P P é uma vizinhança de pixels do pixel p. D p (f p ) é uma função que mede o custo de se atribuir o rótulo f p a p. V p,q (f p, f q ) define o custo de se atribuir os rótulos f p, f q aos pixels adjacentes p e q e é usado para tratar do problema de suavidade. Nas bordas dos objetos pixels adjacentes em geral têm rótulos muito diferentes e é importante que E não super penalize esses rótulos. Dessa forma é necessário que V seja uma função não convexa de f p f q. Funções de energia como a da equação (3-1) são extremamente difíceis de se minimizar, já que são funções não convexas num espaço com milhares de dimensões. Tradicionalmente essas funções são minimizadas aplicando técnicas de minimização genéricas (como simulated annealing ) que são capazes de minimizar qualquer função de energia. Como consequência da generalidade, essas técnicas possuem custo exponencial e são muito lentas, tornando seu uso inviável na prática. Nos últimos anos vários algoritmos eficientes baseados em Cortes de Grafo têm sido desenvolvidos para solucionar o problema de minimização de energia. Neste capítulo vamos discutir o método de cortes de grafo e sua utilização para resolver problemas de minimização de energia, abordando o

Capítulo 3. Estéreo e Cortes de Grafo 16 algoritmo de expansão-α e troca-αβ. Mostraremos também como o problema de estéreo pode ser mapeado em um problema de minimização de energia, e consequentemente, num problema de atribuição de rótulos, e assim mostrar como resolvê-lo utilizando cortes de grafo. 3.1 Cortes de Grafo A técnica de Cortes de Grafo é um método utilizado para resolver problemas de minimização de energia. Trata-se de utilizar algoritmos específicos para a construção de um grafo de maneira que, ao calcular o corte mínimo neste grafo, estamos também minimizando a energia do sistema. É especialmente útil quando aplicada a problemas que podem ser modelados como um problema de minimização de energia, e.g. o problema de correspondência por estéreo. Seja G = (V, E) um grafo direcionado com arestas de peso não negativos que possui dois vértices especiais (terminais) chamados o s (source) e t (sink). Um corte-s-t, ao qual chamaremos simplesmente de corte, C = S, T é uma partição dos vértices em V em dois conjuntos disjuntos S e T tais que s S e t T. A figura 3.1 ilustra à esquerda o grafo G e à direita, em verde, o que seria um corte em G. O custo total do corte é a soma dos pesos de todas as arestas que vão de S a T e é definido como: c(s, T ) = u S,v T,(u,v) E c(u, v). O problema do corte-s-t mínimo consiste em encontrar um corte C E com o menor custo. Ford & Fulkerson mostram em (22) que encontrar esse corte Figura 3.1: Grafo (à esquerda) com 9 pixels a serem classificados e corte em um grafo (à direita).

Capítulo 3. Estéreo e Cortes de Grafo 17 é equivalente a encontrar o fluxo máximo do nó terminal s ao nó terminal t. Existem vários algoritmos que resolvem o problema do fluxo máximo em tempo polinomial. No nosso trabalho vamos utilizar o algoritmo para fluxo máximo otimizado apresentado por Boykov & Kolmogorov em (06). Vamos convencionar que um corte C = (S, T ) é uma atribuição de rótulos f que mapeia o conjunto de vértices V {s, t} em {0,1}, onde f (v) = 0 implica em v S e f (v) = 1 implica em v T. Deve-se notar que um corte uma partição binária de um grafo vista como uma atribuição de rótulos, ou seja, uma atribuição de rótulos bi-valorada. Existem algumas propostas para resolver o problema do corte mínimo com mais de dois terminais mas todas elas são NP-difíceis. Para minimizar E usando o método de cortes de grafo é necessário criar um grafo específico de maneira que o corte mínimo no grafo também minimize E. A forma do grafo depende da forma exata de V (termo de suavidade), que determina o tipo de algoritmo que pode ou deve ser utilizado, e do número de rótulos a serem atribuídos. Os nós do grafo representam os pixels da imagem enquanto os terminais representam todos os rótulos possíveis de serem atribuídos. Os pesos das arestas entre nós não-terminais (pixels) são definidos pelo termo de suavidade E smooth (f ), enquanto os pesos entre nós terminais e não-terminais são definidos pelo termo de dados E data (f ). Como temos um grafo com vários nós terminais, precisamos dividir o grafo em vários grafos com dois terminais e depois determinar qual configuração tem menor energia. Uma vez que cada pixel está associado a apenas um terminal, atribuímos esse rótulo (ou disparidade) àquele pixel. Para o problema de estéreo os rótulos são disparidades e o termo de dados D p (f p ) é alguma função da diferença de intensidade entre o pixel p na imagem de referência e o pixel p + f p na outra imagem. Nesse tipo de problema especificamente o algoritmo de expansão-α e outros algoritmos de minimização de energia apresentam um desempenho muito bom empiricamente (ainda que não viabilizem a sua execução em tempo real). Na próxima seção vamos discutir os dois grandes movimentos que podem ser utilizados no algoritmo de cortes de grafo de maneira a mudar a atribuição de rótulos, visando a minimização de energia. 3.2 Algoritmos de Expansão e Troca Boykov (08) aborda o problema de minimização de energia com cortes de grafo como a determinação de um mínimo local e apresenta dois algoritmos aproximativos baseados em dois tipos diferentes de movimento: o movimento

Capítulo 3. Estéreo e Cortes de Grafo 18 Figura 3.2: Tipos de movimento possíveis para uma atribuição de rótulos (a) com três rotulos possíveis: vermelho, verde e azul. De (a) para (b) temos uma troca-αβ e de (a) para (c) temos uma expansão-α. de expansão-α e o movimento de troca-αβ. Boykov prova que o algoritmo de expansão-α produz resultados que distam do mínimo global até um fator multiplicativo conhecido, desde que o termo de suavidade V seja uma métrica (veja seção 3.2.2). Esse fator é no mínimo 2 e depende unicamente de V. Por outro lado o algoritmo de troca-αβ não exige que V seja uma métrica e dessa forma, em geral, é utilizado com funções de energia mais genéricas. A figura 3.2 ilustra os possíveis movimentos que podem ser realizados num algoritmo de cortes de grafo. A figura da esquerda mostra a atribuição de rótulos inicial. A figura do meio mostra a nova configuração dos rótulos após um movimento de troca-αβ e a figura da direita mostra a nova configuração dos rótulos após um movimento de expansão-α. Ambos os algoritmos são muito semelhantes na sua estrutura. O algoritmo de troca encontra um mínimo local quando somente movimentos de troca são permitidos e o algoritmo de expansão encontra um mínimo local quando somente movimentos de expansão são permitidos. Neste capítulo vamos nos concentrar nos detalhes do algoritmo de expansão-α, pois é o algoritmo que utilizamos em nosso método. Daremos, entretanto, uma visão geral do algoritmo de troca. Antes de falar dos movimentos, vamos definir o conceito de partição, pois nos será útil ao definir os algoritmos. Qualquer atribuição de rótulos f pode ser representada por uma partição de pixels P = {P l l L}, onde P l = {p P f p = l} é um subconjunto de pixels aos quais o rótulo l foi atribuído. 3.2.1

Capítulo 3. Estéreo e Cortes de Grafo 19 Algoritmo de Troca Dado um par de rótulos α e β, um movimento de uma partição P (atribuição de rótulos f ) para uma partição P (atribuição de rótulos f ) é chamado de uma troca-αβ se P l = P l para qualquer rótulo l α, β. Isto implica em que a única diferença entre P e P é que alguns pixels que tinham o rótulo α em P agora tem rótulo β em P, e alguns pixels que tinham rótulo β em P agora tem rótulo α em P. Um exemplo de um movimento de troca-αβ é mostrado na figura 3.2b. 3.2.2 Algoritmo de Expansão Um dos algoritmos mais eficientes para minimização de energia é o algoritmo de expansão-α, que foi introduzido em (08). Esse algoritmo pode ser usado sempre que V é uma métrica no espaço de rótulos, ou seja, V satisfaz as três condições abaixo: V (α, β) = 0 α = β, V (α, β) = V (β, α) 0, V (α, β) V (α, γ) + V (γ, β), (3-2) para quaisquer rótulos α, β, γ L. Para um determinado rótulo α, um movimento de uma partição P (atribuição de rótulos f ) para uma nova partição P (atribuição de rótulos f ) é chamado de uma expansão-α se P α P α e P P para qualquer rótulo l α, ou seja, f p α implica em f p = f p. Em outras palavras, um movimento de expansão-α permite que qualquer conjunto de pixels da imagem alterem seus rótulos para α. Um exemplo de um movimento de expansão-α é mostrado na figura 3.2c. Em cada ciclo o algoritmo itera sobre todos os rótulos α em uma ordem que pode ser fixa ou randômica, e procura, a partir da atribuição de rótulos atual, a expansão-α de menor energia. Um ciclo é bem sucedido se necessariamente uma atribuição de rótulos melhor é encontrada em qualquer ciclo. Se nenhuma atribuição de rótulos em um mesmo ciclo apresentar energia menor o algoritmo encerra, já que não é possível minimizar ainda mais a energia. No final temos uma atribuição de rótulos que é um mínimo local da função de energia em relação a movimentos de expansão. Dessa forma um ciclo no algoritmo de expansão-α possui L iterações. A técnica descrita aqui é baseada na computação de uma atribuição de rótulos correspondente ao corte mínimo num grafo G α = (V α, E α ). A ideia por

Capítulo 3. Estéreo e Cortes de Grafo 20 trás do algoritmo é que pixels são rotulados tanto como α ou ᾱ. Após encontrar o corte mínimo no grafo, ou os pixels irão continuar com seus rótulos atuais ou alterarão seus rótulos para α, dependendo do que proporcionar a menor quantidade de energia. A estrutura do grafo em cada ciclo é determinada pela partição corrente P e pelo rótulo α. O grafo muda dinamicamente após cada iteração. Boykov em (08) atribui pesos às arestas inserindo nós auxiliares entre pixels vizinhos contendo rótulos diferentes. Essa abordagem foi posteriormente aprimorada por Kolmogorov em (07) que reformulou as equações e fez com que esses nós auxiliares não fossem mais necessários. A construção de grafo utilizada para a implementação do nosso método foi a apresentada por Kolmogorov em (07), utilizando o tratamento para oclusões apresentado em (10). 3.3 Minimização de Energia e Corte Mínimo Em (06) Boykov & Kolmogorov apresentam um novo algoritmo que aprimoram a performance de técnicas padrão de determinação de caminho mais longo em grafos (augumenting path). Algoritmos de caminho mais longo anteriores usavam busca em largura quando todos os caminhos de uma determinada largura já haviam sido pesquisados, requerendo a construção de uma nova árvore de busca. Este processo envolve varrer a maioria dos pixels na imagem, tornando-se computacionalmente caro quando repetido várias vezes. O novo algoritmo resolve este problema construindo duas árvores de busca, uma para o nó terminal s (source) e outra para o nó terminal t (sink), e reutilizando-as. Elas nunca são reconstruídas novamente. O resultado é um algoritmo que é muito mais rápido em todas as aplicações onde grafos consistem em grids 2D. Entretanto existem desvantagens. Não há garantia que o caminho mais longo encontrado é necessariamente o melhor. A ideia por trás do algoritmo é manter duas árvores de busca de nós interconectados por arestas para encontrar um caminho mais longo da raiz da árvore de s para a raiz da árvore de t, como ilustrado na figura 3.3. Na árvore S todas as arestas partindo de um nó para seus filhos não estão saturados, enquanto nas arestas da árvore T os nós dos filhos para um determinado nó é que não estão saturados. O algoritmo possui três tipos de nós: livre, ativo (A) e passivo (P). Nós que não estão na árvore S ou T são nós livrs. Nós ativos são os nós da borda de cada árvore que permitem o crescimento da árvore adquirindo novos filhos de um conjunto de nós livres. Nós passivos são os nós internos que eram nós ativos anteriormente.

Capítulo 3. Estéreo e Cortes de Grafo 21 Figura 3.3: Exemplo de árvores de busca S (em vermelho) e T (verde) contendo nós ativos A e nós passivos P. Os nós brancos restantes são os nós livres. O caminho encontrado está em preto (reproduzido de (06)). O processamento do algoritmo é iterativo e está dividido em três estágios: crescimento, aumento e adoção. Durante o estágio de crescimento, ambas as árvores tentam crescer adquirindo nós de um conjunto de nós livres. O conjunto de nós ativos de uma árvore explora arestas adjacentes não saturadas adquirindo novos filhos do conjunto de nós livres, que se tornam nós ativos. Após ter explorado todos os nós vizinhos, um nó ativo se torna um nó passivo, indicando que não consegue ir mais longe. O estágio de crescimento termina quanto um nó ativo encontra um nó ativo de outra árvore, significando a criação de um caminho mais longo. O estágio de aumento estende o caminho encontrado com o maior fluxo possível, algumas vezes criando arestas saturadas e, subsequentemente, nós órfãos. Enquanto isso, o estágio de adoção encontra pais para cada órfão, garantindo que o pai esteja conectado através de uma aresta não saturada e pertença à mesma árvore que o órfão. Se não conseguimos achar um nó pai, o nó órfão se torna um nó livre. Esse estágio termina quando não há mais nós órfãos. O algoritmo executa até que as árvores de busca S e T não possam mais crescer (não há mais nós ativos) e as árvores estejam separadas por arestas saturadas. Este é o ponto onde o fluxo máximo é atingido. O corte mínimo resultante é a borda entre S e T onde todas as arestas estão saturadas.

4 Multi-Resolução com Cortes de Grafo para Estéreo As abordagens para o problema de estéreo que utilizam algoritmos baseados em cortes de grafo geralmente apresentam excelentes resultados em termos de acurácia. Entretanto, dada a grande quantidade de pixels e rótulos manipulados pelo algoritmo, sua performance quase sempre inviabiliza seu uso num contexto em que o tempo de processamento é um fator que deve ser levado em consideração. Dessa forma, a redução do número de pixels e de rótulos utilizados pelo algoritmo é um fator importante para a implementação de um algoritmo mais eficiente. Worby propõe em (04) e (02) um método de multi-resolução para estéreo e motion com o propósito de reduzir o número de variáveis (nós do grafo) manipuladas pelo algoritmo de cortes de grafo. De maneira semelhante propõe também três algoritmos para reduzir o número de rótulos utilizados. Entretanto seus algoritmos usavam necessariamente o algoritmo de troca-αβ, já que para combinar o uso de estéreo e motion em único algoritmo foi necessário que V (o termo de suavidade) fosse definido como uma função que não é uma métrica (veja seção 3.2.2). Dessa forma a complexidade do algoritmo era O(mn 2 ) (sendo m o número de pixels e n o número de rótulos). Neste capítulo vamos explorar a ideia proposta por Worby visando somente sua aplicação para o uso em estéreo. Dessa forma poderemos alterar o método proposto para que use o algoritmo de expansão-α, obtendo assim um algoritmo mais eficiente com complexidade O(mn). Apresentaremos também os algoritmos LDNR, EL e EAC, propostos por Worby para a redução do número de rótulos, e discutiremos as alterações que são necessárias nos mesmos para fazerem uso do algoritmo de expansão-α. 4.1 Multi-Resolução para Estéreo Nesta seção vamos apresentar a abordagem multi-resolução com cortes de grafo para o problema de estéreo e descrever as etapas envolvidas. A figura 4.1 mostra uma visão geral do método e seus estágios. Primeiramente as imagens de entrada alimentam o algoritmo no estágio de Pré-Processamento, que realiza

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 23 Figura 4.1: Fluxograma geral do método de Multi-Resolução com Cortes de Grafo para estéreo. outras tarefas de inicialização e configuração de parâmetros.. Após o estágio de pré-processamento estão os módulos principais do algoritmo, que são os responsáveis pela implementação de multi-resolução e cortes de grafo. No estágio Pirâmide de Imagens ocorre a criação das pirâmides das imagens de entrada. Em seguida, no estágio Algoritmo de Expansão ocorre a construção do grafo do qual vamos encontrar um corte mínimo, como discutimos no capítulo 3. Na seção 3.2.2 foi discutido que o algoritmo de expansão-α só poderia ser usado se V fosse uma métrica. Worby em (04) utilizou o método de Multi-Resolução com cortes de grafo mas fazendo uso do algoritmo de troca-αβ. Isso era necessário pois Worby propunha um método que envolvia estéreo e motion e desta forma V não era uma métrica. Assim, era mandatório utilizar o algoritmo de troca. No nosso caso, como não temos a pretensão de explorar motion, podemos usar V como métrica e fazer uso do mais eficiente algoritmo de expansão.

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 24 Figura 4.2: Exemplo de uma pirâmide de imagens. O nível 0 (l 0 ) representa a imagem original, na escala mais amostrada, enquanto l max a escala menos amostrada. No estágio Upsampling e Propagação de disparidades nós reamostramos o mapa de disparidades obtido num nível mais fino para que ele sirva de inicialização para os próximos níveis da pirâmide. Finalmente, no estágio de Pós-Processamento o algoritmo encerra, os resultados obtidos são armazenados e os parâmetros são reconfigurados. 4.1.1 Criação da Pirâmide de Imagens O estágio Pirâmide de Imagens calcula pirâmides gaussianas de ambas as imagens de entrada, como mostrado na figura 4.2 (para uma imagem). A imagem original está na parte de baixo da pirâmide, no nível l 0. Cada nível da pirâmide representa uma versão borrada e menos amostrada da imagem abaixo dela. Worby (02) utiliza um filtro gaussiano de duas dimensões, tirando vantagem da separabilidade para aumentar a performance e evitar o efeito de alisasing. Já que estamos escolhendo um fator de amostragem 2, utilizamos um filtro gaussiano com raio mínimo de 2 também. Em todos os casos, escolhemos σ = 2, resultando em um filtro de raio 6. Isso garante que não haverá aliasing na imagem, proporcionando o efeito de suavidade desejado. 4.1.2 Reamostragem e Propagação de Disparidade Para que o algoritmo de multi-resolução funcione corretamente os mapas de disparidade devem ser propagados entre os níveis da pirâmide. Esses mapas inicializam o próximo nível da pirâmide, dando assim um bom ponto de partida para o algoritmo no novo nível. Ao passar de um nível mais grosso para um

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 25 Figura 4.3: Reamostragem de um nível menos amostrado l i para um nível mais amostrado l i 1. Pixels com rótulo desconhecido estão em cinza. nível mais fino na pirâmide, para cada pixel p o algoritmo de reamostragem cria N N pixels, como mostrado na figura 4.3. Os valores de disparidade para os pixels com disparidade conhecidas numa escala menor são então multiplicados pelo fator de amostragem utilizado, ou seja, pixels com rótulos conhecidos no nível l i são multiplicados pelo fator de amostragem (no nosso caso, k = 2) para determinar os rótulos no nível l i 1. Pixels com rótulo desconhecido recebem o mesmo rótulo do pixel vizinho do grupo que o originou. 4.2 Redução do Espaço de Disparidades Um dos grandes conflitos enfrentados pela maioria dos algoritmos de estéreo é estabelecer o equilíbrio entre tempo computacional e acurácia. Uma maneira de melhorar a acurácia é impor condições mais rígidas ao algoritmo e aumentar o número de disparidades possíveis. Entretanto num contexto de cortes de grafo isso pode trazer consequências indesejáveis para o tempo computacional. Por outro lado podemos também reduzir o número de rótulos utilizados ou o número de pixels para reduzir o tempo computacional mas isso reduziria também a acurácia do método. Nesta seção vamos apresentar uma proposta de multi-resolução para o cálculo de correspondências em estéreo que foi primeiramente proposta por Worby (04). Os benefícios de um algoritmo de multi-resolução são: redução no número de pixels manipulados: as dimensões da imagem são reduzidas por um fator de amostragem k em cada nível da pirâmide; redução no número de rótulos manipulados: cada dimensão do espaço de disparidades é reduzido por um fator de amostragem k em cada nível da pirâmide. Dessa forma, para pares de imagem, o número de rótulos decresce de k em cada nível da pirâmide Como cada nível tem um número menor de rótulos e pixels a convergência em cada nível é muito mais rápida. Dessa forma, os mapas de disparidade

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 26 encontrados em cada nível são encontrados mais rapidamente e funcionam como inicialização para a configuração inicial de rótulos do próximo nível, fazendo que o método inicie no novo nível próximo do resultado final. Quando o nível mais amostrado da pirâmide é alcançado a configuração está mais próxima do mínimo global geral do que do que a inicialização normal dos métodos de graph cut. Assim a convergência é alcançada mais rapidamente. A forma geral de um algoritmo de multi-resolução é apresentada no algoritmo 1, chamado de algoritmo de Level Seeding (LS). Dmap i representa o mapa de disparidades obtido no nível i e Dmap final se refere à solução final obtida no nível com mais amostras. Algoritmo 1: Forma geral dos métodos de multi-resolução. 1 2 3 4 5 6 7 8 9 10 11 Criar pirâmide gaussiana das imagens Determinar espaço de disparidades para cada nível da pirâmide for i numlevels 1 to 0 do if i = (numlevels 1) then Dmap i = algoritmo de cortes de grafo normal else Aumente a amostragem do mapa de disparidades Dmap i = EMA(Dmap i+1 ) end end Dmap final = Dmap 0 Para determinar o espaço de disparidades para cada nível Worby (04) propõe que o número máximo de disparidades permitidas em cada nível seja dividido pelo fator de amostragem. Por exemplo, se o espaço de disparidades para o nível mais amostrado (nível 0) é [16,16] ele passa a ser [8,8], [4,4] e [2,2] para os níveis 1, 2 e 3, respectivamentye. O algoritmo de minimização de energia (EMA na linha 8) é o único passo que varia para os algoritmos que serão descritos nessa seção. Vamos agora descrever os três algoritmos propostos por Worby que usam o framework de multi-resolução, os quais visam reduzir o número de rótulos usados durante a etapa EMA (linha 8 do algoritmo 1). Ao propor estes algoritmos Worby se concentrou em criá-los utilizando o algoritmo de troca-αβ, já que lhe era condição necessária por estar usando motion. Como o propósito do nosso trabalho é utilizar o algoritmo mais eficiente e preciso de expansão-α e não estamos interessados em motion, temos que alterar os algoritmos propostos para trabalherem com este novo algoritmo. Isto será descrito em detalhes nas seções 4.2.1, 4.2.2 e 4.2.3.

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 27 4.2.1 LDNR (Label Disparity Neighbourhood Restricted) O principal problema do algoritmo LS descrito anteriormente é que apesar do algoritmo ter uma inicialização de níveis mais eficiente o conjunto de rótulos manipulados pelo algoritmo é muito grande, aumentando o tempo computacional. Para resolver este problema o algoritmo Label Disparity Neighbourhood Restricted (LDNR) usa a noção de vizinhanças de rótulos para restringir o tamanho do espaço de disparidades. A um rótulo só lhe é permitido expandir para um rótulo em sua vizinhança, ou seja, para cada rótulo L presente no mapa reamostrado definimos uma vizinhança a uma distância de ±δ ao redor de L. As vizinhanças são determinadas no início, de maneira que os valores de disparidade possíveis sejam fixos em todas as iterações. A figura 4.4 mostra um exemplo em que δ = 1. Nesse caso a idéia é que os pixels com rótulo z 1 só possam expandir para rótulos que estejam dentro de sua vizinhança, L z 1 N. Figura 4.4: Em (b) a vizinhança de rótulos de (a). Os rótulos em questão (present) estão em amarelo. (Reproduzido de (04)) A justificativa para restringir a vizinhança de rótulos é que os pixels, em cada iteração, já estão bem próximos do seu rótulo ideal, e desta forma, só precisam expandir um pouco mais. Assim realizamos as expansões num conjunto reduzido de rótulos. A implementação deste método é apresentada no algoritmo 2, que é simplesmente o passo EMA (linha 8) do algoritmo 1. A entrada deste algoritmo é um mapa de disparidades reamostrado a partir do nível anterior da pirâmide Dmap up. A condição de convergência simplesmente testa se a energia da iteração atual é menor que a energia da iteração anterior. Se a função não convergiu o algoritmo começa determinando todos os rótulos presentes em L present no mapa de disparidades reamostrado a partir do nível anterior (linha

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 28 Algoritmo 2: Algoritmo de minimização de energia LDNR. 1 2 3 4 5 6 7 8 9 10 11 12 Determinar o conjunto de rótulos L present em Dmap up while E cur < E prev do E cur = E prev for l a L present do Determinar a vizinhança de rótulos L N de l a for l b L N do Dmap cur = expansão(l b ) end Calcular E cur de Dmap cur end end Dmap final = Dmap cur 1). Esse conjunto de rótulos não é alterado no resto do algoritmo. Após isso ele realiza uma iteração de expansão. Uma iteração neste algoritmo itera pelos rótulos em L present. Para cada rótulo l a ele encontra a vizinhança de rótulos L la N e realiza expansões-α para cada rótulo l b em L la N. 4.2.2 EL (Expanding Label Disparity Neighbourhood at Every Iteration) O algoritmo LDNR possui uma grande vantagem que é a redução do número de rótulos manipulados pelo algoritmo. Possui, entretanto, uma desvantagem que é a propagação de erros (valores de disparidade inválidos) entre os níveis da pirâmide, o que diminui a acurácia do método, dada a grande redução que é realizada. Isso acontece devido à combinação das etapas de reamostragem e da restrição dos rótulos só poderem expandir para outros rótulos dentro da sua vizinhança. Nesse âmbito o algoritmo Expanding Label Disparity Neighbourhood at Every Iteration (EL) se propõe a resolver o problema da redução excessiva de rótulos. A ideia é basicamente que o conjunto de rótulos possa crescer dinamicamente em cada iteração do algoritmo. O algoritmo 3 ilustra esse procedimento. No algoritmo 2 a determinação do conjunto de rótulos era feita no início do algoritmo e permanecia estática durante toda a execução, fazendo com que os rótulos só pudessem ser expandidos dentro dessa vizinhança pré-determinada. Agora a determinação desse conjunto é feita a cada iteração, dentro do loop mais externo. Dessa forma o conjunto de rótulos pode crescer aos poucos. As expansões ainda são feitas com os rótulos na vizinhança dos rótulos em L present, mas nesta abordagem os valores de disparidade são aos poucos propagados até seu valor ideal. É importante lembrar que com esse aumento progressivo do conjunto de

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 29 Algoritmo 3: Algoritmo de minimização de energia EL. 1 2 3 4 5 6 7 8 9 10 11 12 13 Dmap cur = Dmap up while E cur < E prev do E cur = E prev Determinar o conjunto de rótulos L present em Dmap cur for l a L present do Determinar a vizinhança de rótulos L N de l a for l b L N do Dmap cur = expansão(l b ) end Calcular E cur de Dmap cur end end Dmap final = Dmap cur rótulos a acurácia do algoritmo melhora bastante. Em contra partida o tempo computacional também aumentou. 4.2.3 EAC (Expand All Combinations) Uma outra maneira de aumentar a acurácia do algoritmo é permitir a expansão em mais rótulos. No algoritmo LDNR as expansões-α só podiam acontecer em rótulos dentro de uma vizinhança de disparidade. Para remover essa restrição propomos um novo algoritmo chamado Expand All Labels(EAC) 1. O algoritmo 4 mostra os passos realizados pelo EAC. O algoritmo EAC, de maneira semelhante à que é feita pelo LDNR, determina os rótulos presentes em L present no mapa de disparidade reamostrado 1 Na verdade o método original proposto por Worby chamava-se SAC (Swap All Combinations), já que o algoritmo utilizado por ele é o algoritmo de troca-αβ (swap). Como não usamos o algoritmo de troca mas sim o de expansão, alteramos o nome do método para que correspondesse de igual maneira ao que ele faz. Algoritmo 4: Algoritmo de minimização de energia EAC. 1 2 3 4 5 6 7 8 9 10 11 Determinar o conjunto de rótulos L present em Dmap up for l i L present do Determinar a vizinhança de rótulos L N de l i Adicionar L N ao conjunto de rótulos L todo end while E cur < E prev do for l a L todo do expansão(l a ) end end Dmap final = configuração atual

Capítulo 4. Multi-Resolução com Cortes de Grafo para Estéreo 30 (linha 2) sem crescer durante o algoritmo. O próximo passo envolve a determinação das vizinhanças de disparidades para cada rótulo presente em L present. Após os rótulos de cada vizinhança serem determinados eles são adicionados ao conjunto de rótulos L todo. Após isso, para cada rótulo presente no conjunto L todo, o algoritmo calcula as expansões-α, permitindo que sejam feitas também de igual maneira para todos os rótulos neste mesmo conjunto. A desvantagem deste método é que o conjunto de rótulos pode, em algum momento, se tornar o conjunto de rótulos completo. No método proposto por Worby havia um grande aumento da acurácia por causa do aumento na quantidade trocas que eram realizadas. Por outro lado, como consequência, também há um aumento considerável no tempo computacional. Como estamos utilizando o algoritmo de expansão esse tempo é reduzido por um fator de n (onde n é o número de rótulos), implicando em um significativo ganho de performance.

5 Resultados Neste capítulo vamos apresentar os resultados obtidos com o método proposto neste trabalho. Para os testes foram utilizados diferentes pares de imagens presentes no conjunto de dados disponível no site do Middlebury (20), de maneira que pudéssemos realizar uma comparação coerente com outros métodos publicados que também utilizam esse conjunto padrão de testes. A aplicação foi testada em ambiente Windows XP SP3, Dual Quad Core 2.5 GHz, 3GB de RAM. Os parâmetros de entrada utilizados são os mesmos indicados em (04) e (10). Os métodos que foram comparados foram o utilizado por Kolmogorov em (10) cujos resultados são mostrados na figura 5.1, o método proposto por Worby em (04) cujos melhores resultados são apresentados na figura 5.2, e o nosso método. A figura 5.3 apresenta os mapas de disparidades obtidos para os pares de imagens Tsukuba, Teddy, Venus e Sawtooth usando o método de multi-resolução LDNR. Figura 5.1: Resultados do método desenvolvido por Kolmogorov (10). Para a realização dos testes utilizamos diferentes espaços de disparidades, a saber, 16, 32, 64 e 128. Para cada um dos três métodos comparados e para cada valor do espaço de disparidades foram realizadas cinco execuções do programa de maneira a se obter uma média do desempenho dos três métodos. A tabela 5.1 mostra o tempo de execução médio observado para o método desenvolvido por Kolmogorov no sistema considerado para calcular o mapa de disparidades de um par de imagens retificadas.

Capítulo 5. Resultados 32 Figura 5.2: Resultados obtidos com o método desenvolvido por Worby (04). No nosso método implementamos um algoritmo de corte de grafos com multi-resolução que utiliza a proposta de Worby para a criação de pirâmides gaussianas para as imagens de entrada, onde o método de corte de grafos é executado em cada nível da pirâmide de imagens geradas e o resultado de cada nível inicializa o passo seguinte, até que alcancemos o mapa de disparidades final (no nível mais refinado). O algoritmo de expansão-α utilizado é o mesmo proposto por Kolmogorov em (10). Tabela 5.1: Resultados obtidos com o método utilizado por Kolmogorov Espaço de Disparidades Tempo Médio de Execução 16 12.54 s 32 29.2 s 64 55.95 s 128 120.01 s No primeiro passo simplesmente implementamos a criação das pirâmides, a definição do espaço de disparidades para cada nível da pirâmide e a execução do algoritmo de cortes de grafo utilizando o resultado de um nível anterior menos refinado. Os resultados obtidos com essa implementação são apresentados na tabela 5.2, onde mostramos o tempo médio de execução para cada espaço de disparidades considerado e o ganho de performance obtido em relação ao método proposto por Kolmogorov. Em seguida implementamos os algoritmos propostos por Worby para Tabela 5.2: Resultados obtidos com o nosso método Disparidades Tempo de Execução Ganho de Desempenho 16 11.48 s 8.5% 32 23.8 s 18.5% 64 46.68 s 16.6% 128 86.84 s 27.6%

Capı tulo 5. Resultados 33 Figura 5.3: Resultados obtidos com nosso me todo usando o algoritmo LDNR. a reduc a o do espac o de disparidades em cada nı vel. Worby propo e em (04) tre s me todos para reduc a o do espac o de disparidades utilizando o algoritmo de troca-αβ. Na nossa abordagem implementamos estes me todos utilizando o algoritmo de expansa o-α apresentado por Kolmogorov. A tabela 5.3 mostra os resultados obtidos utilizando a implementac a o do me todo LDNR para reduzir o espac o de disparidades utilizado pelo algoritmo em cada etapa. Nela sa o apresentados o tempo de execuc a o para cada espac o de disparidade considerado e o ganho de desempenho em relac a o ao me todo original proposto por Kolmogorov. Analisando os resultados, observa-se que para um pequeno espac o de disparidades (16) o algoritmo apresenta performance inferior comparado ao algoritmo original, dado o overhead adicional de determinar e utilizar as vizinhanc as de cada valor de disparidade. Nesse caso, na u ltima etapa, em