• Nenhum resultado encontrado

Processador de correspondências entre imagens estéreo em tempo real

N/A
N/A
Protected

Academic year: 2021

Share "Processador de correspondências entre imagens estéreo em tempo real"

Copied!
88
0
0

Texto

(1)

F

ACULDADE DE

E

NGENHARIA DA

U

NIVERSIDADE DO

P

ORTO

Processador de Correspondências Entre

Imagens Estéreo em Tempo Real

Carlos Alexandre Teixeira do Amaral Resende

Mestrado Integrado em Engenharia Electrotécnica e de Computadores Supervisor: João Canas Ferreira

(2)

c

(3)
(4)
(5)

Resumo

A visão estéreo é uma área de investigação tecnológica muito vasta, que engloba diferentes conceitos e é utilizada em diferentes áreas de aplicação, tão diversas como saúde e entretenimento. Dentro da visão estéreo é estudado o cálculo de disparidades utilizando imagens estéreo, o qual apesar dos avanços verificados nas últimas décadas apresenta alguns problemas.

A maior dificuldade no cálculo de informação de disparidade é a determinação de correspon-dência entre imagens. Dos vários erros que resultam deste passo intermédio são estudados neste relatório, aqueles que surgem em pixéis de transição e em áreas de grande dimensão, onde a in-tensidade dos pixéis é constante.

Para resolver estes problemas são utilizados métodos densos de procura local, nos quais a correspondência para cada pixel é feita por aglomeração destes em janelas. Estas procuram por correspondência apenas nas janelas da imagem candidata com a mesma posição horizontal e mo-dificam o seu tamanho de modo a refinarem a correspondência dos vários pixéis da imagem.

A arquitectura desenvolvida por Hariyama et al [1] usa os métodos referidos no parágrafo anterior, tendo sido utilizada como referência para o desenvolvimento do processador de cálculo de disparidades.

O processador foi implementado na FPGA Virtex-4 LX60 da Xilinx e processa imagens de dimensão 208 × 480 em tempo real (25 frames por segundo). A arquitectura de implementação é completamente escalável, sendo possível aumentar o tamanho da imagem mantendo a frame rate. Para tal é necessário que a arquitectura reconfigurável possua recursos que permitam aumentar o paralelismo no cálculo de disparidade, deste modo, utilizando a FPGA Virtex-5 LX330 foram realizados testes funcionais para imagem de dimensão 640 × 480.

Quando comparada com a implementação de referência, a arquitectura desenvolvida apre-senta uma igualdade na qualidade dos resultados obtidos e uma melhoria nas características do sistema. Enquanto a aplicação de referência apenas é capaz de processar imagens de dimensão 64 × 64 a uma frequência de 86 MHz (correspondentes a um tempo de processamento de 0.19 ms), a implementação realizada permite processar imagens de dimensão 208 × 480 a 100 MHz (corres-pondentes a um tempo máximo de processamento de 0.246 ms), sendo esta arquitectura escalável para imagens de maior dimensão.

Relativamente à quantidade de recursos utilizados também se verificam diferenças nas duas implementações. O processador de referência utiliza 42508 LEs (cada um constituída por uma LUT de 4 entradas e um flip-flop) numa FPGA APEX20KE da Altera, enquanto o processador desenvolvido utiliza 19,978 slices (cada uma constituída por duas LUTs de quatro entradas e dois flip-flops) numa FPGA Virtex-4 da Xilinx. O que significa que a arquitectura implementada apresenta uma menor utilização de recursos do que a de referência para processar imagens de maior dimensão.

A menor utilização de recursos deve-se à simplificação efectuada ao algoritmo de cálculo de correspondências. Enquanto na implementação de referência o algoritmo utiliza a informação de vizinhança dos pixéis ao longo de toda a imagem, na arquitectura desenvolvida o algoritmo é

(6)

ii

aplicado individualmente a secções de oito linhas, reduzindo assim a quantidade de informação a processar e como tal a quantidade de recursos utilizados.

(7)

Abstract

Stereo vision is an area of vast technological research covering various concepts and is em-ployed to several areas of application, as diverse as health and entertainment. This subject also addresses the calculation of disparities using stereo images which, despite advances made in recent decades, have shown to experience some problems.

The calculation of correspondence between stereo images is the main difficulty of this subject. Attention is focused on the inherent problems of correspondence calculation, which result from errors in transition pixels and large areas where pixel intensity remains constant.

Dense methods with local search, using windows with variable size are used to solve the explained problems. The correspondence of each pixel is determined by this set of windows that search for correspondence along the candidate windows with the same vertical position, the value of correspondence obtained in each step is refined reducing the size of the correspondence window. The architecture used to implement this methods is based on the one proposed by Masanori Hariyama, Yasuhiro Kobayashi, Haruka Sasaki and Mitchitaka Kameyama in [1].

The real time processor was implemented on a Virtex-4 LX60 from Xilinx and analyses 25 frames of 208×480 per second. The developed architecture is completely scalable, so it is possible to expand the dimensions of the images keeping the frame rate of 25 frames per second. The only requirement is the capacity of the reconfigurable hardware, since it needs to have enough resources to implement the parallelism necessary to increase the image dimension keeping the frame rate. An additional implementation was made on a Virtex-5 LX330, which allowed to process images of 640 × 480 pixels with a frame rate of 25 frames per second.

Comparing the implemented architecture with the one used as reference, it is verified that the disparity map has the same quality, but the system characteristics is improved. Whereas the reference application is only capable of processing images with 64 × 64 pixels at a frequency of 86 MHz (with a correspondent processing time of 0.19 ms), the implemented design allows to process 208 × 480 at 100 MHz frequency (with a maximum processing time of 0.246 ms).

Concerning to resources utilization, the reference application uses 42508 LEs (each one contai-ning a 4 input LUT and a flip-flop) of APEX20KE (a FPGA from Altera) and this thesis imple-mented design uses 19,978 slices (each one containing two LUTs of 4 inputs and two flip-flops) of Virtex-4 LX60 (a FPGA from Xilinx). Concluding, the implemented architecture uses fewer resources to processes images with a bigger size when comparing to the reference architecture. This is the result of the simplification made to the disparity algorithm; while the reference al-gorithm uses the neighborhood information from the entire image, the implemented alal-gorithm is applied individually to sections of 8 lines, reducing the quantity of information processed and consequently the resources utilization.

(8)
(9)

Agradecimentos

Por toda a ajuda e apoio demonstrados durante a realização deste trabalho gostaria de agra-decer ao meu orientador, professor João Canas Ferreira; aos meus colegas de laboratório, João Santos, Pedro Salgueiro, João Pereira, João Rodrigues e Nuno Pinto; e aos meus pais e irmãos.

Carlos Resende

(10)
(11)

Conteúdo

1 Introdução 1

1.1 Objectivos . . . 2

1.2 Estrutura da Tese . . . 2

2 Aspectos Básicos do Cálculo de Correspondências 5 2.1 Geometria Epipolar . . . 6

2.2 Erros Intrínsecos ao Cálculo de Correspondência . . . 8

2.3 Interpretação e Cálculo dos Parâmetros de Profundidade . . . 9

2.4 Fases do Cálculo de Disparidades . . . 10

2.4.1 Custo de Correspondência entre Pixéis . . . 10

2.4.2 Agregação do Custo de correspondência . . . 10

2.4.3 Determinação da Melhor Disparidade . . . 11

2.4.4 Refinamento da Estimativa de Disparidade . . . 12

2.5 Cálculo de Correspondências entre Imagens Estéreo Usando Métodos Densos . . 13

2.6 Técnicas não Paramétricas (Census e Rank) . . . 14

2.7 O Problema da Definição do Tamanho da Janela . . . 16

2.7.1 Teoria Associada aos Erros Resultantes do Tamanho da Janela . . . 16

2.7.2 Influência de Vizinhança na Resolução de Erros de Correspondência . . . 17

3 Cálculo de Disparidade com Janelas de Tamanho Variável 21 3.1 Descrição de Algoritmos . . . 21

3.1.1 Janela Inicial de Tamanho Máximo . . . 21

3.1.2 Janela Inicial de Tamanho Mínimo . . . 23

3.1.3 Cálculo de Disparidades por Estimativas do seu Incremento . . . 25

3.2 Implementação Física . . . 27

3.2.1 Window-Parallel and Pixel-Parallel Architecture . . . 28

3.2.2 Pixel-Serial and Window-Parallel Architecture . . . 30

4 Arquitectura do Processador de Correspondências 33 4.1 Fluxo de Projecto . . . 33

4.2 Dispositivos Utilizados . . . 34

4.2.1 Câmaras CMOS . . . 34

4.2.2 Placa de Desenvolvimento . . . 35

4.2.3 Circuito de Interface VGA . . . 36

4.3 Arquitectura Geral do Sistema . . . 36

4.4 Implementação do Processador na Virtex-4 LX60 . . . 39

4.4.1 Sincronismo com as Câmaras . . . 40

4.4.2 Cálculo de Disparidade . . . 44

(12)

viii CONTEÚDO

4.4.3 Sincronismo com a Placa VGA . . . 47

4.5 Comparação com Implementação de Referência . . . 49

4.6 Expansão do Tamanho da Imagem . . . 50

5 Avaliação Funcional 53 5.1 Determinação da Informação de Vizinhança . . . 53

5.2 Desenvolvimento de Sequências de Testes Funcionais . . . 56

5.2.1 Testes Funcionais . . . 56

5.2.2 Resultados Obtidos . . . 60

5.3 Testes após Implementação Física . . . 63

5.4 Testes Funcionais em Imagens de 640 × 480 . . . 64

5.5 Utilização de recursos . . . 65

6 Conclusões e Trabalho Futuro 67 6.1 Conclusão . . . 67

6.2 Trabalho Futuro . . . 68

(13)

Lista de Figuras

2.1 Cálculo de disparidades. . . 6

2.2 Cálculo de profundidade. . . 6

2.3 Ponto x e respectiva projecção (segundo [2]). . . 7

2.4 Determinação da projecção do ponto x (segundo [2]). . . 7

2.5 Oclusão de pixéis em geometria epipolar (segundo [3]). . . 8

2.6 Diferentes perspectivas do mesmo objecto nos planos de observação. . . 8

2.7 Visibilidade e ordem de pixéis em diferentes projecções (segundo [4]). . . 12

2.8 Procura pela janela correspondente. . . 13

2.9 Procura de janela correspondente em imagens com o mesmo offset horizontal (de [5]). . . 14

2.10 Mapa de disparidade obtido pelo método correlação normalizada, transformada rank e pela transformada census (de [6]). . . 15

2.11 Erros resultantes do tamanho da janela (de [1]). . . 16

2.12 Influência de pixéis vizinhos no cálculo de correspondência(segundo [7]). . . 18

3.1 Espaço de janelas de referência e janelas candidatas (segundo [1]). . . 22

3.2 Matriz de disparidades para a imagem de referência após cálculo de correspon-dência (segundo [1]). . . 23

3.3 Espaço de janelas de referência de tamanho w/2 e de janelas candidatas (se-gundo [1]). . . 24

3.4 Separação dos mínimos da função de correspondência por aumento do tamanho da janela (de [8]). . . 24

3.5 Expansão da janela (segundo [7]). . . 26

3.6 Paralelismo ao nível da janela (segundo [8]). . . 28

3.7 Paralelismo ao nível do pixel (segundo [8]). . . 28

3.8 Razão de utilização de circuitos quando é utilizado elevado paralelismo (de [8]). . 29

3.9 Fluxo de dados para arquitecturas WPPP (de [1]). . . 29

3.10 Paralelismo ao nível da janela candidata em arquitecturas WPPP (segundo [1]). . 31

3.11 Paralelismo ao nível da janela candidata e de referência em arquitecturas WPPP (segundo [1]). . . 32

3.12 Fluxo de dados para arquitecturas PSWP (segundo [8]). . . 32

4.1 Sistema e dispositivos utilizados. . . 36

4.2 Estrutura do sistema. . . 37

4.3 Sequência de instruções dentro de cada secção. . . 38

4.4 Arquitectura do sistema. . . 39

4.5 Sincronismo nos acessos à memória. . . 42

4.6 Arquitectura geral de cálculo de SAD . . . 45

(14)

x LISTA DE FIGURAS

4.7 Redução da área de procura por correspondência. . . 46

5.1 Resultados de teste do algoritmo utilizando informação de vizinhança de toda a imagem ou apenas de uma secção de 208 × 8, teste 1. . . 54

5.2 Diferenças de resultados entre a implementação proposta em [1] e o algoritmo desenvolvido, teste 1. . . 54

5.3 Resultados de teste do algoritmo utilizando informação de vizinhança de toda a imagem ou apenas de uma secção de 208 × 8, teste 2. . . 55

5.4 Diferenças de resultados entre a implementação proposta em [1] e o algoritmo desenvolvido, teste 2. . . 55

5.5 Mapa de disparidade obtido com plano de fundo variável. . . 61

5.6 Cálculo de disparidade (boneco). . . 62

5.7 Cálculo de disparidade (cena de bowling). . . 62

(15)

Lista de Tabelas

2.1 Expressões de cálculo de correspondência (segundo [5]). . . 14

5.1 Ocupação dos recursos da FPGA Virtex-4 LX60 . . . 65

5.2 Ocupação dos recursos da FPGA Virtex-5 LX330 . . . 66

(16)
(17)

Lista de abreviaturas

AD Diferenças Absolutas

DDR SDRAM Double-Data-Rate Synchronous Dynamic Random Access Memory DSP Digital Signal Processor

EEPROM Electrically-Erasable Programmable Read-Only Memory EPROM Erasable Programmable Read-Only Memory

FPGA Field Programmable Gate Array

HAM Hamming

IO Input - Output

NCC Normalized Cross Correlation OLED Organic Light Emitting Diode PLD Programmable Logic Device

PSWP Pixel-serial and Window-parallel Architecture RAM Random Access Memory

SAD Sum of Absolute Differences SRAM Static Random Access Memory SSD Sum of Squared Differences

WPPP Window-parallel and Pixel-parallel Architecture DP Dynamic Programming

CMOS Complementary Metal-Oxide-Semiconductor VGA Video Graphics Array

PGM Portable Gray Map WTA Winner Take All

(18)
(19)

Capítulo 1

Introdução

O interesse do ser humano na compreensão da visão humana e reprodução computacional da mesma verifica-se há algumas décadas.

No entanto, apesar dos avanços conseguidos nesta área, a visão computacional apresenta-se como um processo difícil e ainda com alguns erros, por oposição à visão humana, onde a informação visual é processada de um modo rápido e eficaz (à excepção dos raros casos de ilusão óptica).

Devido à complexidade e à quantidade de informação associada a este processo, a visão com-putacional encontra-se segmentada em várias áreas de investigação, cada uma focada na obtenção de informação específica. Assim pode ser identificada investigação na área do cálculo de profun-didades, reconhecimento de objectos, faces ou movimentos.

O grande interesse verificado nesta área tecnológica justifica-se não só pela natural curiosidade humana, mas também pela sua vasta área de aplicações. Estas englobam mercados tão distintos como o da saúde ou entretenimento.

Deste modo, a visão computacional é utilizada em instrumentos que servem de auxílio em ci-rurgias, ao detectarem pontos específicos e actuarem neles com elevada precisão, como ferramenta auxiliar em diagnósticos e em investigações ao nível de aplicações biomédicas. Nas aplicações in-dustriais possibilitam o aumento de automação e rapidez no processo produtivo. Em aplicações de segurança optimizam o armazenamento e inspecção de informação proveniente de câmaras de vigilância, ao reduzirem o número de frames armazenadas para aquelas que detectaram uma possível ameaça ao objecto ou edifício que está a ser protegido. ([9], [10] e [11]).

Adicionalmente pode ser referido o desenvolvimento feito na área dos veículos autónomos e veículos de orientação (robôs onde é necessária a determinação de tempos de colisão a obstáculos e o desvio dos mesmos), na área do entretenimento (onde, através da detecção de objectos e movimentos, é dado ao utilizador a possibilidade de interagir com o computador) e na reconstrução de modelos 3D a aplicar em vídeos de realidade virtual ([9] e [10]).

A grande diversidade de resultados e aplicações da visão computacional é acompanhada por uma diversidade nos seus métodos de cálculo, estando cada um optimizado para a resolução de um ou vários problemas inerentes a esta área tecnológica.

(20)

2 Introdução

Este projecto tem como objectivo a obtenção de informação de profundidade utilizando ima-gens estéreo. Nesta, a informação tridimensional é obtida através do cálculo da correspondên-cia entre as imagens fornecidas. Obtida a informação de correspondêncorrespondên-cia é feito o cálculo das disparidades (diferença de posição entre os pontos correspondentes das imagens recebidas, ver Capítulo2) dos vários pixéis da imagem. Este último resultado pode ser utilizado para representar a informação tridimensional da imagem, indicando apenas a relação entre os objectos (quais os que estão mais próximos e mais distantes do ponto de observação), ou pode ser realizada uma transformação que determina o valor exacto de profundidade (ver Capítulo2).

O cálculo de informação de profundidade tem como aplicações alvo a segurança, veículos autónomos e de orientação e entretenimento. Estas, como a maioria das aplicações alvo, interagem directamente com o ambiente que as rodeia e como tal, é essencial que os dados necessários para o seu funcionamento, incluindo a informação de profundidade, estejam disponíveis em tempo útil. É este requisito de tempo real dos algoritmos de cálculo de profundidades que despoletou o seu desenvolvimento em Hardware, em detrimento de uma solução, inerentemente mais lenta, em Software.

1.1

Objectivos

O trabalho desenvolvido tem como objectivo o desenvolvimento de um processador que cal-cule eficazmente (com um reduzido número de erros) e em tempo real, o mapa de disparidades de imagens com 640 × 480 pixéis. A sua implementação é feita em Hardware, mais concretamente em arquitecturas reconfiguráveis.

Adicionalmente e como verificação da funcionalidade do processador desenvolvido, é feita a sua integração num sistema de comunicação com um monitor VGA e câmaras CMOS.

1.2

Estrutura da Tese

O presente relatório de tese é constituído por um conjunto de dois capítulos onde é feita uma descrição do estado da arte, um onde é apresentada a arquitectura implementada e um onde são discutidos os resultados experimentais.

Deste modo, no capítulo2 é feita a descrição geral do problema de cálculo de informação tridimensional e de todos os parâmetros nele envolvidos. Adicionalmente, é apresentada de uma forma breve as bases da teoria epipolar e alguns dos métodos de cálculo de correspondência e disparidades, sendo dado particular ênfase ao cálculo feito com imagens estéreo através de mé-todos densos. São também descritos alguns dos erros inerentes ao cálculo de correspondências e analisado o problema da definição da janela para o seu cálculo com métodos densos. No capí-tulo 3, são descritos alguns algoritmos que alterando dinamicamente as dimensões da janela de correspondência, solucionam os problemas anteriormente referidos e são apresentadas algumas arquitecturas gerais de implementação desta classe de algoritmos.

(21)

1.2 Estrutura da Tese 3

A secção de implementação é constituída pelo capítulo 4, no qual é apresentado o algoritmo e a implementação efectuada.

Os resultados obtidos experimentalmente são apresentados no capítulo 5. Nesta é feita uma análise dos resultados obtidos por testes funcionais e por testes físicos.

Para finalizar a descrição do projecto, o capítulo 6apresentada sugestões para trabalho futuro e as conclusões do trabalho desenvolvido.

(22)
(23)

Capítulo 2

Aspectos Básicos do Cálculo de

Correspondências

Antes de ser iniciada uma descrição mais pormenorizada do trabalho desenvolvido neste jecto, é apresentada neste capítulo uma visão geral do processo de cálculo de informação de pro-fundidade, incluindo: diferentes metodologias para diferentes resultados pretendidos, diferentes problemas associados e resolvidos por cada uma dessas metodologias e definição dos parâmetros envolvidos nos cálculos.

O cálculo de informação tridimensional está sempre associado a três passos fundamentais: determinação da correspondência entre imagens, cálculo de disparidade aquando da obtenção da correspondência e cálculo da profundidade após obtenção da disparidade.

A correspondência entre imagens é obtida através do cálculo de similaridade entre os vários pixéis das imagens fornecidas e selecção do melhor resultado. Para este cálculo é necessário identificar qual a imagem de referência e qual a candidata, ou seja, é necessário identificar qual a imagem sobre a qual se pretende determinar a informação de profundidade e qual vai ser per-corrida em busca de correspondências. Este é o passo mais complexo no cálculo de informação tridimensional e pode ser realizado de várias formas, como é estudado na secção2.3.

Obtida a correspondência entre imagens é possível, através da determinação da diferença de posição entre os vários pontos correspondentes, calcular o mapa de disparidades da imagem alvo (na Figura 2.1é apresentado um exemplo para correspondência estéreo entre imagens rectificadas, isto é, com a mesma posição horizontal).

Este resultado fornece informação relativamente à profundidade dos objectos da imagem, pois quanto mais distantes os objectos se encontram das câmaras menor será a sua diferença de posição no processo de correspondência e logo menor a sua disparidade, ou seja, a disparidade pode ser encarada como representando o inverso da profundidade. No entanto, se o objectivo for determinar o valor exacto de profundidade é necessário efectuar um último cálculo, a triangulação.

Analisando a Figura2.2, onde o valor de Z corresponde à profundidade do pixel x, f a distância focal (distância entre o centro óptico e o ponto focal) e B a distância entre os centros ópticos. O

(24)

6 Aspectos Básicos do Cálculo de Correspondências

Figura 2.1: Cálculo de disparidades.

Figura 2.2: Cálculo de profundidade.

cálculo de triangulação pode ser descrito pela seguinte equação:

Z= B

tan(α) + tan(β )

A qual por aplicação de relações trigonométricas resulta na seguinte equação:

Z=B× f d Onde d é a disparidade e é igual a sin(α) − sin(β ).

A secção2.1sobre geometria epipolar analisa estes parâmetros com maior rigor.

2.1

Geometria Epipolar

Uma importante base teórica no cálculo de informação de profundidade é a geometria epipolar. Através desta é possível reduzir a complexidade, mais concretamente a quantidade de cálculos necessários, na determinação de correspondências.

A geometria epipolar pode ser interpretada como a intersecção do plano de observação das duas câmaras (planos a branco na Figura2.3) com o plano epipolar (plano Π na Figura2.3). Este é definido pela interseção de três linhas: a linha que intersecta os dois pontos de observação (c

(25)

2.1 Geometria Epipolar 7

e c’ na Figura2.3), baseline, e as linhas que partem desses ponto de referência das câmaras e intersectam o pixel em análise (x e x’ na Figura2.3).

Figura 2.3: Ponto x e respectiva projecção (segundo [2]).

Sabendo a posição do pixel x e conhecida a baseline, o cálculo de correspondência pode ser definido como a determinação dos dois pontos que faltam para fechar o plano epipolar, ou seja, a determinação da projecção do ponto x na imagem candidata. A Figura2.4apresenta uma descrição gráfica deste problema.

Figura 2.4: Determinação da projecção do ponto x (segundo [2]).

Do referido no primeiro parágrafo sobre a teoria epipolar, conclui-se que essa procura fica reduzida a uma linha da imagem, linha epipolar (I’ na Figura2.4), uma vez que o plano epipolar apenas pode ser fechado pela linha constituída pelo ponto de observação, c’, e um dos pixéis que representam a linha epipolar.

A teoria de geometria epipolar permite justificar e determinar a existência de pixéis ocultos. Isto acontece quando dois pixéis distintos têm a sua projecção no mesmo ponto da janela candi-data, ou visto de outra perspectiva, o fenómeno de oclusão acontece quando os pontos X , Y e c0 são colineares e o ponto X se encontra entre os pontos Y e c0 (no caso de ser X a esconder Y ) ou o ponto Y se encontra entre X e c0(no caso de ser Y a esconder X ), ver Figura2.5 [3].

A análise feita anteriormente para um pixel pode ser alargada para qualquer pixel da imagem, tendo em consideração que ao ser alterada a posição vertical do pixel em estudo a linha epipolar se altera.

(26)

8 Aspectos Básicos do Cálculo de Correspondências

Figura 2.5: Oclusão de pixéis em geometria epipolar (segundo [3]).

Neste projecto, a procura por correspondência é feita através de janelas que aglomeram um conjunto de pixéis. Neste caso, onde é feita a projecção não de um pixel mas de um conjunto, a teoria epipolar é igualmente aplicável.

2.2

Erros Intrínsecos ao Cálculo de Correspondência

O cálculo de correspondência entre imagens estéreo encontra-se sempre associada a quatro tipo de erros comuns a qualquer algoritmo e abordagem. Um dos problemas no cálculo de corres-pondências é a existência de objectos escondidos, que como referido na secção2.1correspondem a conjuntos de pixéis que apenas têm representação em uma das imagens. Tal deve-se ao facto de na imagem candidata a totalidade ou parte dos objectos constituídos por esses pixéis, se encontrarem escondidos por um objecto que se encontra mais próximo da objectiva.

Figura 2.6: Diferentes perspectivas do mesmo objecto nos planos de observação.

A segunda fonte de erros corresponde ao facto de os objectos não possuírem uma forma constante, o que resulta em diferenças nas perspectivas dos objectos captados pelas câmaras. O cubo da Figura2.6é representado de formas diferentes na imagem de referência e na candidata, isto resulta em erros de correspondência, pois alguns dos pixéis que formam o cubo representado na imagem de referência não possuem correspondente na imagem candidata.

Outro erro comum ocorre em pixéis que representam objectos da região fronteira do plano de observação. Este erro surge, pois os pixéis da região fronteira apenas se encontram representados na imagem de referência e, como tal, não possuem correspondente na imagem candidata.

(27)

2.3 Interpretação e Cálculo dos Parâmetros de Profundidade 9

Por fim falta referir os erros decorrentes da reflexão especular, a qual ocorre quando existem objectos que se encontram espelhados em alguma região da imagem, o que resulta em erros no processo de correspondência, ao ser considerada como correspondente a reflexão e não o objecto.

2.3

Interpretação e Cálculo dos Parâmetros de Profundidade

Apresentados os dois passos fundamentais para o cálculo de informação tridimensional (cor-respondência e disparidade, já que o cálculo da distância real entre objectos é um passo opcional) e feita uma análise dos erros e teoria inerentes ao cálculo de correspondências, é apresentada nesta secção e nas seguintes uma visão geral de alguns dos métodos de cálculo de correspondência e disparidade, e das condições em que estes processos estão inseridos.

Na realização de correspondência entre imagens é necessário estabelecer algumas considera-ções iniciais em relação ao ambiente em que estas estão inseridas e às câmaras utilizadas, conside-rações que afectam directamente a qualidade dos resultados obtidos, ao serem desprezados alguns factores que influenciam o cálculo de correspondências.

As câmaras utilizadas para a captação das imagens estéreo não são exactamente iguais, po-dendo apresentar valores de ganho e ruído diferentes, como tal o mesmo pixel não apresenta um valor de intensidade igual em ambas as imagens, o que afecta a correspondência entre elas caso o algoritmo utilizado não seja insensível a estas diferenças. Além desse facto as câmaras não se encontram com o mesmo offset horizontal (as linhas epipolares não se encontram na mesma po-sição e orientação nos dois planos de observação), sendo necessário rectificá-las ou construir o algoritmo considerando esse factor.

Para simplificar o processo de correspondências entre imagens são ignorados alguns dos condi-cionamentos que afectam o seu cálculo, isto se tal assunção permitir obter resultados aceitáveis para a aplicação alvo. Uma assunção normalmente feita, é considerar que os objectos e ambiente em análise são constituídos por superfícies lisas onde pode ser aplicada a teoria de Lambert, na qual as superfícies não alteram o seu aspecto com o ângulo de visão. Ou seja, é considerado que a mesma superfície não apresenta elevadas variações de intensidade, pois os seus pixéis encontram-se todos mais ou menos à mesma profundidade, e que os vários níveis de profundidade não encontram-se alteram com o ângulo de visão [12]. Por outras palavras, é considerado que a correspondência não sofre dos problemas representados na Figura2.6.

Estas são algumas das condicionantes externas ao cálculo de correspondências. Definido o modo como são tratadas, a determinação de correspondência pode ser feito de diversas formas.

A correspondência entre pixéis pode ser calculada utilizando métodos densos ou métodos es-parsos. Os métodos densos calculam a similaridade para todos os pixéis da imagem, enquanto nos esparsos o cálculo é feito para uma determinada região previamente definida (as regiões de interesse deste método normalmente são definidas determinando os contornos dos objectos, e cal-culando a similaridade apenas para o interior destes) [13] [14]. Dentro destes métodos ainda pode ser feita uma pesquisa global, em que a procura é feita em toda a imagem, ou local, que reduz a

(28)

10 Aspectos Básicos do Cálculo de Correspondências

área de procura a uma região na qual existe uma grande probabilidade de encontrar correspondên-cia.

Adicionalmente é possível efectuar o cálculo de correspondência utilizando mais do que duas câmaras, permitindo obter mais informação do que o cálculo através de imagens estéreo.

Dependendo do método escolhido para o cálculo de correspondência o mapa de disparidade obtido é diferente. Quando são utilizados métodos esparsos obtêm-se mapas de disparidade 1D, úteis para determinar apenas movimentações na imagem, à semelhança do que acontece com so-nars e scanners laser. Com métodos densos o mapa de disparidade resultante é um mapa 2D muito mais informativo, no qual é possível saber a profundidade relativa de cada pixel da imagem [13] [14]. Se forem utilizadas múltiplas câmaras é possível efectuar a reconstrução de objectos 3D [12].

2.4

Fases do Cálculo de Disparidades

O cálculo de disparidades pode ser dividido em quatro fases: custo de correspondência entre pixéis; agregação desse custo numa área; cálculo da melhor disparidade; refinamento da estimativa de disparidade. Alguns algoritmos, como os locais, podem ser facilmente descritos por estas quatro fases, enquanto outros, como os globais, normalmente não incluem o passo de agregação mas antes minimizam uma função global. [12]

Nas próximas secções são apresentadas algumas possibilidades para os cálculos efectuados em cada fase.

2.4.1 Custo de Correspondência entre Pixéis

O custo de correspondência entre pixéis ou determinação da sua similaridade pode ser feita aplicando vários tipos de funções, apresentando cada uma características diferentes no resultado final.

O cálculo pode ser efectuado por simples diferença absoluta entre pixéis, diferenças quadradas ou pela correlação cruzada normalizada dos pixéis (três primeiras funções da Tabela2.1 apesen-tada na página14). Podem ser utilizadas também técnicas mais complexas, como as técnicas não paramétricas (Census e Rank, explicadas na secção2.6).

2.4.2 Agregação do Custo de correspondência

Os resultados obtidos na fase anterior podem ser agregados sobre uma dada região de suporte. Os métodos locais realizam essa tarefa definindo uma janela como região de suporte e somando os custos de correspondência dos pixéis dessa janela.

A região de suporte para a agregação dos custos de correspondência poder ser bidimensional, numa disparidade fixa (favorecendo imagens com superfícies fronto-paralelas) ou tridimensional, x-y-d, em que a terceira dimensão é referente à disparidade (suportando imagens com superfícies obliquas, estas resolvem o problema apresentado na Figura2.6).

(29)

2.4 Fases do Cálculo de Disparidades 11

As funções de agregação para espaços bidimensionais usam janelas quadradas que se deslocam ao longo da imagem e janelas de tamanho adaptativo.

Nas regiões de suporte tridimensional o cálculo da correspondência correcta de um pixel é feito utilizando a informação das várias disparidades candidatas, ou seja, a região de suporte além de uma variação ∆x e ∆y em torno do pixel em análise, possui uma variação ∆d em torno da dis-paridade considerada [15]. A quantidade de informação de disparidade utilizada pode ser definida pelo limite da sua diferença ou pelo limite do seu gradiente.

2.4.3 Determinação da Melhor Disparidade

Obtido o espaço de disparidades é necessário determinar a função que melhor representa as duas imagens. Esse cálculo pode ser feito de vários modos, dependendo se são utilizados métodos locais ou globais.

No caso de serem utilizados métodos locais a ênfase é dada ao cálculo de correspondência e agregação, sendo a disparidade final obtida por uma simples escolha da função que apresenta menor custo de correspondência (método WTA - Winner Take All). Uma limitação deste método é que apenas estabelece uma correspondência única para a imagem de referência, mantendo a imagem candidata com várias possibilidades.

Quando são utilizados métodos globais a maior ênfase é dada à fase de cálculo de disparidade. A maior parte destes métodos calculam a sua disparidade minimizando uma função global de energia, ou seja, o objectivo é encontrar o valor de disparidade que minimiza a energia global.

A função de energia a minimizar pode ser obtida por

E(d) = Edata(d) + λ Esmooth(d)

onde d representa a disparidade, Edata(d) o quão bem as imagens correspondem para essa

dis-paridade e Esmooth(d) o modo como é analisada a imagem em termos de suavidade. O valor de

Edata(d) é obtido por

Edata(d) =

(x,y)

C(x, y, d(x, y))

em que C é a função de custo de correspondência, a qual é somada ao longo de toda a imagem, ∑(x,y) (dai a minimização ser global).

Esmooth(d) pode ser obtido considerando apenas a diferença de disparidades dos pixéis vizinhos

através de

Esmooth(d) =

(x,y)

ρ (d(x, y) − d(x + 1, y)) + ρ (d(x, y) − d(x, y + 1))

onde ρ e uma função crescente que representa a diferenca de disparidade. Ou considerando também a diferença de intensidades

(30)

12 Aspectos Básicos do Cálculo de Correspondências

Esmooth(d) = ρd(d(x, y) − d(x + 1, y)) · ρI(kI(x, y) − I(x + 1, y)k)

onde ρd é a função de diferença de disparidades, ρI é uma função decrescente que representa

a diferença de intensidades, d(x, y) é a disparidade do pixel (x, y) e I(x, y) a sua intensidade. Este método (minimização da energia) apesar de bons resultados é bastante complexo. Um modo de manter a qualidade dos resultados minimizando a complexidade no cálculo, é a utilização de programação dinâmica, a qual através do cálculo de correspondência da imagem da esquerda na direita e da direita na esquerda consegue, por um processo de optimização global, determinar o mapa de disparidades com um menor custo que o método de minimização de energia, mas com a mesma qualidade de resultados.

No entanto, este método necessita que os pixéis se encontrem pela mesma ordem nas duas imagens, pelo que não é possível aplicar em cenários em que os objectos alterem a ordem dos pixéis na projecção. A Figura2.7apresenta um caso onde a programação dinâmica não é aplicável, nesta observa-se que na imagem da direita a ordem dos pixéis é diferente da ordem na imagem da esquerda, tal ocorre devido à forma e disposição dos objectos. [4]

Figura 2.7: Visibilidade e ordem de pixéis em diferentes projecções (segundo [4]).

2.4.4 Refinamento da Estimativa de Disparidade

Os resultados obtidos pelos passos anteriores não são suficientemente precisos para aplicações mais exigentes, necessitando por isso de um último passo de optimização. Isso pode ser feito atra-vés de cross checking, onde é feita a procura de correspondências da imagem da esquerda na direita e da direita na esquerda, e por comparação dos mapas de disparidades obtidos para cada imagem. Isto permite detectar erros de correspondência devido a pixéis escondidos e minimiza-los, por aplicação de filtros de média ou de outra metodologia que introduza informação de vizinhança

(31)

2.5 Cálculo de Correspondências entre Imagens Estéreo Usando Métodos Densos 13

nessas regiões.

O processador implementado utiliza apenas os três primeiros passos no cálculo de dispari-dades. Uma vez que são utilizados métodos locais não existe qualquer função de energia a mini-mizar. Os restantes subcapítulos abordam os métodos utilizados na implementação do processador (métodos densos de procura local) e analisam os seus problemas.

2.5

Cálculo de Correspondências entre Imagens Estéreo Usando

Mé-todos Densos

O cálculo de correspondência dos pixéis de uma dada imagem utilizando métodos densos exige que seja definida uma janela de um dado tamanho (W, L), a qual é utilizada para determinar a correspondência entre os dois pares de imagens do seguinte modo:

Para cada janela na imagem de referência procura-se pela janela candidata correspondente em toda a imagem candidata (ver Figura 2.8). Essa procura é feita determinado o mínimo da função de correspondência, que pode ser obtida por uma das expressões apresentadas na tabela 2.1ou na subsecção 2.6. A informação de profundidade obtém-se determinando a diferença de posição entre a janela de referência e a sua correspondente.

Figura 2.8: Procura pela janela correspondente.

Do referido no parágrafo anterior conclui-se que, grande parte do processamento no cálculo de informação tridimensional encontra-se na determinação da correspondência entre janelas de referência e janelas candidatas. Um modo de reduzir parte deste processamento é diminuir a área de procura por janelas candidatas, aplicando métodos de procura locais. Para tal é considerada a teoria de geometria epipolar, a qual permite reduzir a procura à linha epipolar. Para facilitar a pro-cura de correspondências ao longo dessa linha as imagens são rectificadas, ou seja, são utilizadas imagens com o mesmo offset horizontal, permitindo assim nivelar as linhas epipolares de modo a ficarem com a mesma posição e orientação (ver Figura 2.9) [5].

A Tabela 2.1apresenta algumas das funções disponíveis para o cálculo de correspondência entre janelas de tamanho w. Nestas equações I1 e I2 representam a intensidades dos pixéis na janela de referência e na janela candidata, respectivamente, u e v representam o pixel em análise,

(32)

14 Aspectos Básicos do Cálculo de Correspondências

Figura 2.9: Procura de janela correspondente em imagens com o mesmo offset horizontal (de [5]).

x e y o desvio da janela candidata relativamente à de referência e ∑(u,v)∈wrepresenta a soma ao

longo da janela.

A função de Hamming faz o cálculo do número de bits diferentes entre os vectores I01 e I02 (a construção desses vectores é explicada no subsecção 2.6).

Função de correspondência Abreviatura Expressão

Soma das diferenças absolutas SAD ∑(u,v)∈w|I1(u, v) − I2(u + x, v + y)|

Soma das diferenças quadradas SSD ∑(u,v)∈w(I1(u, v) − I2(u + x, v + y))2

Correlação normalizada NCC ∑(u,v)∈w(I1(u,v)×I2(u+x,v+y))

∑(u,v)∈w(I12(u,v)×I22(u+x,v+y))

Census HAM ∑(u,v)∈wHAMMING(I

0

1(u, v), I02(u + x, v + y)) Tabela 2.1: Expressões de cálculo de correspondência (segundo [5]).

2.6

Técnicas não Paramétricas (Census e Rank)

Nesta secção serão apresentadas as técnicas não paramétricas de cálculo de correspondência. Estas diferem dos cálculos paramétricos definidos anteriormente na forma como abordam a ima-gem.

Enquanto os métodos paramétricos aplicam directamente as funções da tabela 2.1às imagens em análise, os métodos não paramétricos alteram as imagens de modo a introduzir informação sobre a vizinhança dos pixéis no cálculo.

A diferença em termos de resultados entre estas duas abordagens é que, os cálculos não para-métricos apresentam alguns erros nos pontos limite dos objectos, ou seja, o cálculo de profundi-dade para os pixéis que fazem a ligação entre superfícies apresenta erros, resultando normalmente num mapa de disparidade distorcido nessa região. As técnicas não paramétricas melhoram os resultados desses cálculos através da introdução de informação de vizinhança ( [5], [6]). Na Fi-gura 2.10, que representa um quadrado sobre uma superfície, pode ser verificada essa melhoria de resultados.

(33)

2.6 Técnicas não Paramétricas (Census e Rank) 15

Figura 2.10: Mapa de disparidade obtido pelo método correlação normalizada, transformada rank e pela transformada census, respectivamente (de [6]).

Na transformada rank a intensidade dos pixéis é substituída por um número inteiro, o qual representa o número de pixéis na vizinhança do pixel em análise que têm uma intensidade inferior à do pixel central.

Na transformada census cada pixel é substituído por um vector de bits, o qual representa a vizinhança do pixel. Se a intensidade de um dado pixel é menor que a do pixel central a sua posição no vector de bits é colocada a um, caso contrario é colocada a zero.

Normalmente após ser aplicada a técnica de transformada rank é calculada a disparidade uti-lizando a função SAD ou SSD. No caso da transformada census é calculada a distância Hamming entre os dois vectores de bits.

Analisando implementações paramétricas e não paramétricas verifica-se que realizando uma das transformações referidas obtêm-se, para além de melhores resultados em pixéis de transição, circuitos com menor área (porque os cálculos da função correspondência vão passar a ser feitos com um menor número de bits), isto quando os valores de disparidade são suficientemente ele-vados para tornarem o custo de transformação pequeno quando comparado com o custo total de implementação. No entanto tornam o processo de correspondência mais lento, pois necessitam de tempo para mais uma unidade de processamento [5].

Para finalizar este capítulo é apresentado um resumo dos passos a seguir para o cálculo de correspondências entre imagens estéreo utilizando métodos densos de procura local:

• Define-se uma janela de um dado tamanho;

• Antes da aplicação das funções de correspondência a imagem pode ser alterada através das técnicas não paramétricas (ponto opcional);

• Para essa janela procura-se pela janela correspondente com a mesma posição horizontal, aplicando uma das equações expressas na tabela 2.1e determinando a que apresenta menor valor;

A definição da janela para o cálculo de correspondência é um ponto de grande importância, pois se o seu tamanho não for definido correctamente o resultado final conterá erros. Como tal a secção2.7identifica os erros que ocorrem nesse caso e apresenta uma solução.

(34)

16 Aspectos Básicos do Cálculo de Correspondências

2.7

O Problema da Definição do Tamanho da Janela

Um dos principais problemas no cálculo de correspondência entre janelas utilizando méto-dos densos é a definição do seu tamanho, pois este cálculo apresenta erros tanto para janelas de tamanho reduzido como para janelas de tamanho grande.

Se a janela for muito pequena a função de cálculo de correspondência vai possuir vários mí-nimos locais, pois deste modo a variação de intensidade dos pixéis dessa janela é tão reduzida que os cálculos efectuados são bastante afectados de ruído. Assim existem várias janelas com um comportamento semelhante, o que se traduz em várias soluções credíveis para a correspondência. Se a janela for muito grande e existirem pixéis de diferentes objectos com diferentes profun-didades, ocorrerão erros associados ao facto de estarem a ser realizadas comparações entre janelas que possuem muita variação de intensidade, pois aglomeram secções de vários objectos.

Analisando a Figura 2.11(b) verifica-se que nesta a função foi calculada com uma janela grande, pois apesar de possuir um único mínimo este não representa a verdadeira correspondência entre as imagens, a qual é representada pela linha tracejada.

Por outro lado, a função de correspondência na Figura2.11(a)possuí vários mínimos locais, representados pelas linhas a tracejado, tornando-se difícil definir qual deles representa a verdadeira correspondência entre as janelas, pois a diferença entre os mínimos é ínfima. Isto ocorre porque a janela possui um tamanho inferior ao devido.

(a) Janela pequena. (b) Janela grande.

Figura 2.11: Erros resultantes do tamanho da janela (de [1])

As afirmações dos parágrafos anteriores podem ser justificadas analisando as considerações teóricas que são feitas sobre as imagens. Estas considerações definem um modelo estatístico que pretende simular, da melhor maneira possível, o comportamento das imagens. A subsecção2.7.1

apresenta essa justificação.

2.7.1 Teoria Associada aos Erros Resultantes do Tamanho da Janela

Os erros de correspondência inerentes ao tamanho da janela utilizada são intuitivamente com-preendidos, no entanto torna-se necessário justificá-los teoricamente. Nesta secção é apresentado um modelo estatístico que explica esse comportamento.

O modelo estatístico estudado considera uma distribuição Gaussiana de média nula para o comportamento da disparidade dentro de uma janela e para a diferença de intensidade de pixéis

(35)

2.7 O Problema da Definição do Tamanho da Janela 17

entre a janela de referência e a candidata. A única diferença nas distribuições Gaussianas encontra-se na variância, a qual para a disparidade é apenas dependente da distância entre os pixéis (Dis-tância entre pixéis× Flutuação de disparidade) e para a intensidade é dependente da disparidade, ruído da imagem e de um parâmetro que indica a flutuação de intensidade na imagem (ruído+ Flutuação de intensidade× Variância da disparidade) [7].

Das distribuições Gaussianas apresentadas no parágrafo anterior, facilmente se consegue com-preender a variabilidade dos pixéis e o porquê dos erros inerentes a janelas pequenas e janelas grandes.

Se a janela for demasiado pequena a diferença de intensidade entre o pixel da imagem candi-data e de referência será principalmente afectado de ruído e, como tal, o cálculo de SAD, ou de outra função de correspondência, apresentará valores idênticos para diferentes janelas (resultado da equação é constante e igual a ruído), que se traduzem nos vários mínimos locais apresentados na Figura2.11(a). Por outro lado, se a janela for muito grande a variância associada à disparidade e as flutuações de intensidade também o vão ser (pixéis dentro da janela têm profundidades e in-tensidades distintas), a qual afecta a diferença de inin-tensidades, logo o cálculo de correspondência virá afectada de grandes diferenças de disparidade o que origina os erros referidos representados na Figura2.11(b).

Para resolução deste problema foram desenvolvidos algoritmos que modificam dinamicamente o tamanho da janela e utilizam a informação dos pixéis vizinhos à janela considerada. O modo como os pixéis vizinhos influenciam a correspondência é analisada em2.7.2e os algoritmos que variam dinamicamente o tamanho da sua janela são apresentados no capítulo3.

2.7.2 Influência de Vizinhança na Resolução de Erros de Correspondência

A optimização de resultados considerando a influência da vizinhança dos pixéis em análise já foi demonstrada em2.6. No entanto, para além dos métodos e melhorias de resultados referidos em2.6, a informação de vizinhança pode ser utilizada de outras formas e aplicada para resolver o problema de definição do tamanho da janela.

A questão que se coloca na utilização de informação de vizinhança é saber quais os pixéis a considerar. A resposta a essa questão depende do algoritmo utilizado e das considerações feitas sobre a imagem, existindo quatro possibilidades [7]:

• Podem ser considerados apenas os pixéis que se encontram dentro de uma dada vizinhança do pixel central e que tem a mesma disparidade deste (critério de Marr-Poggio representado na Figura2.12(a)).

• A restrição de disparidade pode ser levantada e podem ser considerados também os pixéis dessa vizinhança que possuem disparidades dentro de um dado limite (Critério de Grimson representado na Figura2.12(b)).

• Pode ser considerado que os únicos pixéis que devem influenciar o cálculo de correspon-dência são aqueles que apresentam uma dada razão disparidade/distância do pixel central.

(36)

18 Aspectos Básicos do Cálculo de Correspondências

Sendo que os pixéis numa vizinhança mais próxima e com melhor correspondência influen-ciam mais o cálculo (Critério de Pollard-Mayhew-Frisby representado na Figura2.12(c)).

• A última hipótese considera que a disparidade de pixéis que se encontram sobre o mesmo objecto deve ser idêntica. Ou seja, pixéis com disparidades idênticas devem influenciar-se uns aos outros, enquanto pixéis com disparidades distintas não devem interagir (influência provém apenas dos pixéis do mesmo objecto). Neste caso a influência é inversamente pro-porcional à diferença de disparidades e quanto mais distante estão os pixéis do pixel central menos influência têm (Critério de Prazdny representado na Figura2.12(d)).

(a) Critério de Marr-Poggio. (b) Critério de Grimson.

(c) Critério de Pollard-Mayhew-Frisby.

(d) Critério de Prazdny.

Figura 2.12: Influência de pixéis vizinhos no cálculo de correspondência(segundo [7])

A figura2.12resume os quatro modos de como pode ser considerada a influência dos pixéis vizinhos no cálculo de correspondências. A Figura2.12(a)representa o caso em que apenas pixéis dentro de uma dada distância e com disparidade igual à do pixel central são considerados, linha da figura; a Figura 2.12(b)representa o segundo caso verificando-se que pixéis com disparidade diferente do pixel central, desde que dentro de um certo limite, são considerados, rectângulo; a Figura 2.12(c) representa o caso em que são considerados pixéis com um certo gradiente dis-paridade/distância, sendo esse gradiente representado pelo declive dos triângulos; por fim a Fi-gura2.12(d)representa o caso em que se considera que pixéis correspondentes ao mesmo objecto têm disparidades idênticas e, como tal, têm que ser considerados, nesta verifica-se que quanto mais distantes estão os pixéis menos são tidos em consideração (a partir de uma certa distância entre pixéis a diferença de disparidade em relação ao pixel central torna-se mais restrita, ou seja, para distâncias maiores a diferença de disparidades em relação ao pixel central têm que ser menor, para que esses pixéis possam ser tidos em consideração).

(37)

2.7 O Problema da Definição do Tamanho da Janela 19

Das quatro possibilidades referidas para a determinação da influência dos pixéis no cálculo de correspondências, o critério de Prazdny é o que melhores resultados proporciona, se for conside-rado que os vários pixéis que pertencem a um objecto possuem a mesma disparidade. Na realidade esta é uma situação comum e nenhum dos outros critérios tem esse factor em consideração, sendo bastante dependentes da distância entre pixéis e, como tal, expostos a erros que resultam da utiliza-ção no cálculo de correspondências da informautiliza-ção de pixéis vizinhos com disparidades diferentes da do pixel em análise.

No processador implementado é utilizada uma simplificação do critério de Prazny, uma vez que é tido em consideração que os pixéis que influenciam o cálculo de correspondências pertencem ao mesmo objecto do pixel em análise.

(38)
(39)

Capítulo 3

Cálculo de Disparidade com Janelas de

Tamanho Variável

Neste capítulo são estudados vários algoritmos que dinamicamente alteram o tamanho da ja-nela de correspondência, de modo a resolver os problemas discutidos na secção 2.7. Adicio-nalmente são apresentadas duas arquitecturas de implementação desta classe de algoritmos em Hardware.

3.1

Descrição de Algoritmos

Os algoritmos de cálculo de correspondências que variam dinamicamente o tamanho da sua janela diferem entre si na definição do estado inicial da janela, que pode ser definida com o ta-manho máximo e depois diminuída, ou com um tata-manho mínimo e iterativamente aumentada. Outros aspectos diferenciadores destes algoritmos são a função de custo utilizada e a condição de paragem.

Nesta secção são apresentados algoritmos que diferem entre si nestes três factores. O primeiro, descrito em [1], inicia o seu cálculo com uma janela de tamanho máximo e possui como função de custo a métrica SAD; no segundo a condição inicial é diferente, uma vez que este inicia o cálculo com uma janela de tamanho mínimo, a condição de paragem e métrica utilizada é a mesma do anterior [8]; por fim o terceiro algoritmo difere dos restantes tanto na métrica utilizada, SSD em vez de SAD, como na condição de paragem, confiança na estimativa do incremento da janela e não um tamanho específico [7].

3.1.1 Janela Inicial de Tamanho Máximo

Neste algoritmo a pesquisa é iniciada com uma janela de um dado tamanho, determinado empiricamente, que é iterativamente reduzido. Durante o processo de correspondência entre as duas imagens é tida em consideração a informação dos pixéis vizinhos à janela em análise, de modo a minimizar o número de soluções possíveis.

(40)

22 Cálculo de Disparidade com Janelas de Tamanho Variável

Foram referidas em2.7.2quatro possibilidades na influência de pixéis vizinhos para o cálculo de correspondência. Neste algoritmo é tido em consideração o modo proposto por Prazdny, ou seja, é considerado que pixéis referentes ao mesmo objecto possuem disparidades idênticas e logo devem ser tidos em consideração no cálculo de correspondência.

Os vários passos que constituem o algoritmo são os seguintes:

1. Inicia-se o algoritmo com uma janela de tamanho w (empiricamente determinado) e dividem-se as imagens (candidata e de referência) numa grelha que repredividem-senta as várias janelas de referência e candidatas, representadas pela sigla JR e JC na Figura3.1.

Figura 3.1: Espaço de janelas de referência e janelas candidatas (segundo [1]). Na imagem da es-querda os quadrados representam todas as janelas de referência e na imagem da direita encontram-se os cinco níveis horizontais de procura por janelas candidatas.

2. Calcula-se a correspondência entre a janela de referência e as várias janelas candidatas. Para tal aplica-se a equação3.1às várias janelas candidatas e determina-se a que apresenta menor resultado. j=−(w−1)/2

(w−1)/2 ( i=−(w−1)/2

(w−1)/2

|Ir(Ur + i,V r + j) − Ic(Uc + i,V c + j)|) (3.1)

Ire Ic representam a intensidade dos pixéis na imagem de referência e candidata, respecti-vamente, e U e V representam a posição do pixel central da janela em consideração. 3. Calcula-se a disparidade entre a janela de referência e a janela correspondente (janela

can-didata com menor valor de SAD), obtendo-se a matriz de disparidades representada na Fi-gura3.2.

4. Diminui-se o tamanho da janela para metade, obtendo-se a grelha de janelas de referência presente na imagem da esquerda da Figura 3.3 e calcula-se a correspondência das novas janelas tendo em consideração a influência dos pixéis vizinhos, a qual como foi referido segue o paradigma de Prazdny. Para aplicar este paradigma é necessário verificar que a nova janela de tamanho w/2 vai estar inserida numa janela de tamanho w e possuir outras três

(41)

3.1 Descrição de Algoritmos 23

Figura 3.2: Matriz de disparidades para a imagem de referência após cálculo de correspondência (segundo [1]).

janelas w como vizinhas (quatro janelas de tamanho w e uma de tamanho w/2 delimitadas com uma linha mais densa na imagem da esquerda da Figura3.3) e assumir que a janela de tamanho w/2 se encontra sobre o mesmo objecto que as quatro janelas de tamanho w referidas. Sendo assim, a informação de vizinhança é aplicada considerado que a janela correspondente à de tamanho w/2 se encontra a uma distância da de referência definida por ±d, em que ±d representa uma variação em torno da disparidade das janelas w vizinhas.

A consideração feita no parágrafo anterior pode ser facilmente compreendida, tendo em atenção que se as janelas de tamanho w, que envolvem a janela de tamanho w/2, têm cor-respondência a uma distância definida pela sua disparidade, é muito provável que a nova janela tenha a sua correspondência numa distância próxima dessa (pois a nova janela não é mais que uma porção da anterior).

5. Diminui-se o tamanho da janela e repetem-se os passos 2, 3 e 4 até w = 1.

3.1.2 Janela Inicial de Tamanho Mínimo

Nesta subsecção é apresentada uma versão do algoritmo3.1.1, onde as diferenças se encontram apenas na fase inicial do cálculo. Este é iniciado com uma janela de tamanho mínimo que é iterativamente aumentada, sendo o resultado obtido por este processo melhorado por aplicação do algoritmo3.1.1.

Os vários passos que constituem o algoritmo são os seguintes:

1. Iniciar o algoritmo com a janela de menor tamanho possível.

2. Calcular a correspondência entre a janela de referência e as várias janelas candidatas. Para tal aplica-se a equação3.1às várias janelas candidatas e determina-se a que apresenta menor resultado.

(42)

24 Cálculo de Disparidade com Janelas de Tamanho Variável

Figura 3.3: Espaço de janelas de referência de tamanho w/2 e de janelas candidatas (segundo [1]). Pode-se verificar a influência dos pixéis vizinhos no cálculo de correspondência: As janelas can-didatas consideradas são aquelas que se encontram dentro da distância d da janela de referên-cia (imagem da direita), em que d representa as disparidades das janelas de tamanho w (D1,2; D1,3;D2,2;D2,3 na imagem da esquerda).

Rw+i=

(Fw+i(Q1w+i) − Fw(Q2w+i))

((w + i)2) , (3.2)

onde Fw+irepresenta a função de correspondência da janela de tamanho w + i, Q1w+i

repre-senta o pixel correspondente para a janela de tamanho w + i e Q2w+irepresenta o pixel em que a função possui o seu segundo menor mínimo, como representado na imagem da esquerda da Figura3.4.

Figura 3.4: Separação dos mínimos da função de correspondência por aumento do tamanho da janela (de [8]). Imagem da esquerda representa a função com janelas de tamanho w, imagem da direita representa a função com janelas de tamanho w/2 .

4. Se a confiança na correspondência calculada para a janela actual, for maior do que a confiança calculada para a janela da iteração anterior e o pixel de correspondência na nova janela conti-nuar a ser o mesmo, esse pixel é tido como correspondente. Caso contrário incrementa-se

(43)

3.1 Descrição de Algoritmos 25

o tamanho da janela de duas unidades (w = w + 2) e repetem-se os passos 2-3, até as duas condições referidas serem verificadas.

5. Aplica-se o algoritmo descrito em3.1.1à janela resultante dos passos anteriores.

Este algoritmo permite através do seu processo inicial de incremento da janela afastar os vários mínimos locais da função de correspondência (Figura3.4), o que remove a ambiguidade presente no seu cálculo quando são utilizadas janelas pequenas, e melhorar esse resultado removendo os erros associados a janelas grandes (aplicando o algoritmo descrito em3.1.1). No entanto, em termos de tempo de processamento é mais demorado que o algoritmo3.1.1, pois faz praticamente o dobro dos cálculos de SAD (calcula SAD para a fase inicial de aumento do tamanho da janela e repete esses cálculos na aplicação do algoritmo3.1.1).

3.1.3 Cálculo de Disparidades por Estimativas do seu Incremento

Este algoritmo faz uso das expressões obtidas nas considerações estatísticas feitas sobre a ima-gem em [7]. Estas equações representam a estimativa do incremento de disparidade (equação3.3) e a incerteza dessa estimativa (equação3.4). Os valores de αf e αdnestas equações representam a

variação de intensidade e disparidade dentro da janela considerada, respectivamente, e são obtidas pelas expressões3.5e3.6. ˆ ∆d = ∑i, j∈w f1(xi,yj)− f2(xi+d0(0,0),yj)∂ x∂ f2(xi+d0(0,0),yj) 2σ2 n+αfαd q x2 i+y2j ∑i, j∈w (∂ ∂ xf2(xi+d0(0,0),yj)) 2 2σ2 n+αfαd q x2i+y2 j (3.3) σ∆d2 = 1 ∑i, j∈w (∂ ∂ xf2(xi+d0(0,0),yj)) 2 2σ2 n+αfαd q x2 i+y2j (3.4) ˆ αf = 1 Nwi, j∈w

( ∂ ∂ xf2(xi+ d0(0, 0), yj)) 2 (3.5) ˆ αd= 1 Nwi, j∈w

(d0(xi, yj) − d0(0, 0))2 q x2 i + y2j (3.6)

Uma vez que a dedução destas expressões é bastante complexa e feita à custa de teoremas estatísticos que estão fora do âmbito deste trabalho, os parágrafos seguintes apenas fazem uma apresentação do significado de cada um dos termos que as constituem, encontrando-se em [7] uma explicação mais detalhada da sua dedução.

(44)

26 Cálculo de Disparidade com Janelas de Tamanho Variável

As expressões3.3e3.4são obtidas através do cálculo da média e da variância da probabilidade condicional da disparidade ∆d, dada uma certa diferença entre dois pixéis das imagens. Ou seja,

sabendo que dois pixéis diferem de k qual é a probabilidade da disparidade associada ser ∆d. Assim

as expressões 3.3e3.4 podem ser encaradas como representando a estimativa do incremento de disparidade e a incerteza dessa estimativa, respectivamente.

Relativamente a cada um dos termos presentes nas equações: o termo f1(xi, yj) − f2(xi+

d0(0, 0)), presente na expressão3.3, representa a diferença de intensidade entre os pixéis xi e yi

nas imagens 1 e 2; ∂

∂ xf2(xi+d0(0, 0), yj), presente nas equações3.3a3.4, a variação de intensidade

na imagem 2; 2σn2+ αfαd

q x2

i + y2j, presente em3.5e3.6, a média da diferença de intensidades

entre as duas imagens; Nw, presente nas expressões 3.5e 3.6, representa o número de pixéis da

janela em consideração; por fim ∑i, j∈wrepresenta o somatório ao longo da janela considerada.

Definidas as expressões para o cálculo de estimativas de disparidade, os vários passos do algoritmo são como se segue:

1. Iniciar o cálculo com uma disparidade d0(x, y), obtida por aplicação de SSD a janelas com

a mesma posição horizontal (ou outro método menos sofisticado de correspondência);

2. Calcular a janela de tamanho óptimo, que é aquela que garante um incremento de dispari-dade com menor incerteza. Essa janela é obtida através dos seguintes passos:

(a) Iniciar correspondência com uma janela 3 × 3 centrada no pixel em análise e calcular a incerteza associada a essa janela usando as equações3.4-3.6;

(b) Expandir a janela um pixel numa direcção e calcular a incerteza da janela resultante. Efectuar o mesmo para as restantes direcções (ver Figura3.5).

Figura 3.5: Expansão da janela (segundo [7]).

Se a incerteza obtida por expansão numa das direcções for superior à anterior a ex-pansão nessa direcção deixa de ser permitida;

(c) Comparar o valor de incertezas obtido por expansão em cada direcção e determinar o menor. Expandir a janela um pixel nessa direcção e repetir o passo 2(b) até a expansão em todas as direcções se tornarem proibidas;

(45)

3.2 Implementação Física 27

(d) Calcular o novo valor de disparidade por di+1(x, y) = di(x, y) + ∆d(x, y) e repetir o

ponto 2 até a disparidade convergir, ou ser atingido um determinado número de itera-ções;

O algoritmo referido tem que ser aplicado a todos os pixéis da imagem.

Neste algoritmo a correspondência e disparidade para um pixel é obtida por um processo iterativo, que efectua diferentes saltos de disparidade dependentes da sua incerteza, e utiliza como região de suporte uma janela quadrilátera.

Apesar dos poucos erros presentes no mapa de disparidade obtido, este algoritmo é muito complexo computacionalmente, devido às equações utilizadas para calcular as estimativas de in-crementos de disparidade e a incerteza associada.

3.2

Implementação Física

Devido às necessidade de tempo real das aplicações do cálculo de informação de profundi-dade, torna-se necessário paralelizar o processamento de correspondências, de modo a acelerar o processo de cálculo de disparidades. Para tal é necessário implementar os algoritmos referidos em hardware, pois apenas esta implementação oferece a velocidade de processamento e paralelização necessária.

Em algoritmos de processamento de imagem, como os estudados, o paralelismo pode ser aplicado ao nível da janela e/ou do pixel.

No paralelismo ao nível da janela o cálculo de SAD, ou outra função de correspondência, é feito em paralelo para todas as janelas candidatas com a mesma posição horizontal, como repre-sentado na Figura3.6. Nesta, verifica-se que para as M possíveis janelas candidatas são efectuados simultaneamente M cálculos de SAD.

No paralelismo ao nível do pixel, as diferenças absolutas dos SAD, ou o primeiro passo de outra função de correspondência, é calculado em paralelo para os diferentes pixéis numa janela, por exemplo, para uma janela de 3 × 3 são necessários 9 unidade de cálculo de SAD, um para cada pixel. A Figura3.7representa esta arquitectura, verificando que para cada iteração é iniciado o cálculo de SAD para todos os pixéis das janelas de um novo par correspondente, isto é, constituído pela janela de referência em análise e possível janela correspondente.

Uma vez que o tamanho da janela, nos algoritmos considerados, varia iterativamente ao longo do processamento é necessário ter algum cuidado na determinação do paralelismo a aplicar ao circuito.

Se for aplicado um elevado grau de paralelismo, tendo em consideração apenas o cálculo de correspondências para janelas grandes, ao ser diminuído o tamanho da janelas a maior parte das unidades de processamento deixam de ser utilizadas e, como tal, obtém-se um circuito muito complexo e com elevado paralelismo, mas em que as várias unidades de processamento que o constituem possuem um índice de utilização muito baixo. Sendo assim, deve ser atingido um ponto de equilíbrio entre o grau de paralelismo do circuito e a percentagem de utilização das suas unidades de processamento [1] [8].

(46)

28 Cálculo de Disparidade com Janelas de Tamanho Variável

Figura 3.6: Paralelismo ao nível da janela (segundo [8]).

Figura 3.7: Paralelismo ao nível do pixel (segundo [8]).

A Figura3.8ilustra o problema referido no parágrafo anterior, em que existe uma utilização de 100% dos circuitos para a janela inicial, mas ao ser diminuído o seu tamanho mais de metade dos circuitos deixam de ser utilizados. Na Figura, AD representa a unidade de cálculo de diferenças absolutas do método SAD, Adder1 e Adder2 a soma das diferenças por colunas e Adder3 é o somatório final.

Considerando os dois níveis de paralelismo este pode ser aplicado de dois modos distin-tos: Paralelismo ao nível do pixel e da janela (Window-parallel and Pixel-parallel Architecture, WPPP) [1]; Paralelismo apenas ao nível da janela (Pixel-Serial and Window-Parallel Architecture, PSWP) [8].

Nas secções seguintes é feito a análise destas arquitecturas.

3.2.1 Window-Parallel and Pixel-Parallel Architecture

A arquitectura de SAD desta implementação é exemplificada na Figura3.9, na qual se verifica que para uma janela de tamanho 4 são utilizados 16 AD e 15 ADD. Diminuindo o tamanho da

(47)

3.2 Implementação Física 29

Figura 3.8: Razão de utilização de circuitos quando é utilizado elevado paralelismo (de [8]). Na imagem da esquerda todos os circuitos são utilizados, ao diminuir o tamanho da janela (imagem da direita) grande parte dos circuitos fica inutilizado.

janela para metade o número de módulos de cálculo AD mantém-se, alterando apenas o número de módulos ADD. Ou seja, nesta arquitectura a utilização de AD (diferenças absolutas) é mantida constante.

A eficiência na utilização de recursos desta arquitectura é conseguida através da aplicação de paralelismo no cálculo de SAD. Analisando com mais cuidado a Figura3.9, verifica-se que para a janela de tamanho 4 é calculado um SAD de cada vez, enquanto para a janela com metade do tamanho são calculados quatro SAD simultaneamente. Deste modo, aproveitando os recur-sos já existentes para o cálculo de um SAD de janelas grandes, calculam-se vários SAD quando o tamanho desta diminui para metade, garantindo que todas as unidades de cálculo estão a ser utilizadas permanentemente.

(a) SAD da janela de correspondência de tamanho 4.

(b) SAD da janela de correspondência de tamanho 2.

Figura 3.9: Fluxo de dados para arquitecturas WPPP (de [1]).

O principal problema em implementações WPPP é a complexidade das interconexões entre os módulos de memória e as unidades funcionais: quanto maior for o nível de paralelismo mais complexas serão as interconexões. Para resolução deste problema surgem duas arquitecturas de

Referências

Documentos relacionados

2 - OBJETIVOS O objetivo geral deste trabalho é avaliar o tratamento biológico anaeróbio de substrato sintético contendo feno!, sob condições mesofilicas, em um Reator

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

¾ Segundo nível • Terceiro nível – Quarto nível A FAMÍLIA PROFIBUS A FAMÍLIA PROFIBUS PROFIBUS-FMS PROFIBUS-FMS é a solução de propósito geral para comunicação de

• Quando o navegador não tem suporte ao Javascript, para que conteúdo não seja exibido na forma textual, o script deve vir entre as tags de comentário do HTML. <script Language

Conversando com Demo (2008, p. Quando se apreciam as respostas dos universitários, repara-se que a proporção é semelhante aos dados dos professores. Do total

segunda guerra, que ficou marcada pela exigência de um posicionamento político e social diante de dois contextos: a permanência de regimes totalitários, no mundo, e o