Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouÍsis Da Luz Alterado mais de 10 anos atrás
1
Disparidades, Correspondências e Corte Mínimo para Estéreo
INF Visão Computacional e Realidade Aumentada Trabalho Final Disparidades, Correspondências e Corte Mínimo para Estéreo Vitor Barata R. B. Barroso
2
Introdução
3
O Problema de Visão em Estéreo
Duas câmeras capturam a mesma cena simultaneamente A partir das duas seqüências de imagens, queremos: Descobrir pontos, vistos por cada câmera num mesmo instante, que correspondem ao mesmo ponto real Deduzir posições reais dos pontos e gerar um modelo virtual do mundo Cam 2 Cam 1
4
O Problema de Visão em Estéreo
Simplificações comuns: Câmeras sincronizadas, imagens do mesmo instante Modelo das câmeras conhecido, imagens retificadas Deslocamento apenas em um eixo, horizontal nas imagens Distância e ângulo pequenos entre as câmeras Ruído desprezível
5
O Problema das Disparidades
Dadas duas imagens de estéreo: Encontrar os pixels correspondentes e oclusos entre as duas Gerar um mapa indicando, para cada pixel de uma imagem: A distância em relação ao pixel correspondente na outra imagem Um valor especial para indicar oclusão <x2,y2> = <x1,y1> d(x1,y1)
6
O Problema das Disparidades
Modelagem do problema Superfícies lambertianas: a aparência não varia com o ponto- de-vista Semelhança entre pontos individuais medida pela intensidade (luminância) Superfícies suaves por partes Regiões com variação suave de intensidade devem ter variação suave de disparidade Descontinuidades na intensidade indicam bordas e devem poder ser preservadas na disparidade
7
Abordagens Análise local Análise global Análise por scanlines
Correspondência entre dois pixels depende apenas das vizinhanças (janelas) SSD/SAD (“sum of squared/absolute differences”) com janela fixa ou adaptativa Correlação cruzada normalizada Análise global Correspondência entre pares de pixels estabelecida na imagem inteira por meio de um problema de otimização (minimização de função de custo/erro/energia) Têmpera simulada (“Simulated annealing”) Difusão probabilística Corte mínimo de grafos Análise por scanlines Dificuldade de preservar a ordem dos pixels e manter consistência entre scanlines Análise cooperativa Baseada na modelagem computacional da visão estéreo humana Operações locais iterativas resultando numa otimização global
8
Abordagens Refinamento do mapa de disparidades
Estimativas de disparidade sub-pixel Validação cruzada Computam-se disparidades nos dois sentidos entre duas imagens Se o pixel A for mapeado em B e este não for mapeado de volta, marca-se A como ocluso Filtros para eliminar erros espúrios Preenchimento de “buracos” por ajuste de superfícies
9
Algoritmos de Análise Local
Correlação Cruzada
10
SSD com janela fixa Idéia: a vizinhança de pixels correspondentes deve ter alta correlação nas duas imagens -
11
SSD com janela fixa Problema: essa heurística nem sempre funciona, principalmente perto de descontinuidades de oclusão -
12
SSD com janela fixa Erro associado a mapearmos um pixel A (xA,yA) para um pixel B (xB,yB) com disparidade (u,v) Tomamos janelas de tamanho 2W ao redor de ambos pixels Erro de intensidade = ||I2 – I1|| ou (I2 – I1)2 Erro de mapeamento = soma dos erros de intensidade ao longo de toda a janela xB=xA+u yB= yA +v B A yA xA
13
SSD com janela fixa Escolha do mapeamento do pixel A na segunda imagem
(u,v) que minimize a expressão abaixo, dentre todas as opções de disparidade consideradas xB=xA+u yB= yA +v B A yA xA
14
SSD com janela fixa Resultados após validação cruzada
15
Algoritmos de Análise Global
Corte Mínimo de Grafo baseado em Pixels
16
Minimização de Energia
Encaramos a correspondência como um problema de classificação de pixels A imagem é um conjunto P de pixels com um sistema de vizinhança N O rótulo/etiqueta de um pixel p é sua disparidade fp, que pode assumir apenas valores discretos (inteiros ou não) O mapeamento f pode ser associado à seguinte energia (a ser minimizada): Edata mede o erro de intensidade entre pixels correspondentes: Eneighbor penaliza relações indesejadas entre disparidades de pixels vizinhos. Geralmente, é usado para garantir a conservação de regiões suaves ( V(a,a) = 0 ) e descontinuidades:
17
Minimização Local de Energia
Minimizar E(f) para uma imagem é um problema NP-difícil Milhões de mapeamentos possíveis! Muitos mínimos locais ruins! Buscamos um mínimo local forte, próximo ao global Algoritmo iterativo: Começamos com um mapeamento f arbitrário Ciclo: f pode ser alterado por “movimentos”, gerando vários possíveis f’ Para cada f’ que possa ser gerado a partir de f Encontrar f’ que tem a menor energia Se E(f’) < E(f), fazemos f f’ Repetir o ciclo enquanto for possível qualquer atualização de f Crítico: encontrar f’ de menor energia em cada iteração Conseguiremos em tempo polinomial, praticamente linear!
18
Tipos de movimentos Movimentos locais Movimentos globais
Alteração do rótulo (disparidade) de um pixel para um valor qualquer Costuma achar mínimos locais muito distantes do global Movimentos globais Inversões Substituímos, de uma só vez, rótulos por e vice-versa, para qualquer número de pixels Achar mínimos locais muito fortes Expansões Substituímos, de uma só vez, o rótulo de qualquer número de pixels por um rótulo Acha mínimos locais a um fator pequeno e conhecido do global
19
Corte Mínimo de Grafos Solução por Grafos: Corte do grafo:
Um nó para cada pixel da imagem Apenas rótulos ou para inversões Qualquer rótulo para expansões Nós terminais extras: e para inversões e ! para expansões Arestas entre cada pixel e ambos terminais Arestas entre pares de pixels vizinhos Pesos apropriados nas arestas Corte do grafo: Conjunto mínimo de arestas que separa os terminais Partição dos nós em subconjuntos contendo cada terminal Custo do corte é dado pela soma dos pesos das arestas Corte mínimo: aquele com o menor custo possível
20
Corte Mínimo de Grafos Relacionando com o problema:
Corte do grafo mapeamento f’ O corte separa cada pixel de um, e apenas um, dos terminais Os pixels recebem o rótulo do nó terminal que foi separado pelo corte Custo do corte energia de f’ Corte mínimo f’ de menor energia
21
Corte Mínimo de Grafos Construção do grafo:
Pesos das arestas são penalidades pelo corte passar por elas Projetados para casar o custo do corte com a energia do mapeamento Refeita dinamicamente a cada ciclo do algoritmo Pode ser necessário criar vértices auxiliares Para expansões α, aparecem apenas entre vértices com rótulos diferentes em f
22
Grafo para Inversões
23
Grafo para Expansões
24
Comparação Imagem Esquerda Disparidades Verdadeiras Correlação
Corte de Grafo por Pixels Corte de Grafo por Atribuições
25
Algoritmos de Análise Global
Corte Mínimo de Grafo baseado em Atribuições
26
Reformulação do Problema
A formulação anterior trata as imagens de forma assimétrica e não trata: Oclusões – pixels de uma imagem sem correspondente na outra Unicidade – cada pixel só deveria ser mapeado a um único pixel de destino Abordagem alternativa Pixels: Imagem da esquerda L com pixels l L Imagem da direita R com pixels r R União de todos os pixels p P = L R Atribuições Conjunto A de todas as atribuições a = < l , r > que podem ser feitas correspondendo pares de pixels nas duas imagens O rótulo fa de uma atribuição a só pode ser 1 (ativa) ou 0 (inativa) Unicidade: impomos que só pode haver uma (ou nenhuma) atribuição ativa para cada pixel
27
Unicidade e Movimentos
f = configuração de atribuições (ativas e inativas) active(f) = {a : fa = 1} = conjunto de atribuições ativas em f Nl(f) = { <l,x> ativa } = atribuições ativas que envolvem o pixel l Nr(f) = { <x,r> ativa } = atribuições ativas que envolvem o pixel r Pixel ocluso: | Np(f) | = 0 Unicidade: | Np(f) | <= 1, p P Expansão A = todas as atribuições com disparidade α active(f’) (active(f) A) Quaisquer atribuições podem ser desfeitas Atribuições com disparidade α podem ser acrescentadas Inversão A = todas as atribuições com disparidade α ou β (active(f’) A) = (active(f) A) Atribuições com disparidades α ou β podem ser acrescentadas ou removidas
28
Função de Energia Usamos a seguinte função de energia: Penalidades:
Vizinhança: atribuições são vizinhas quando partem ou chegam em pixels vizinhos Inversão: penaliza atribuições ativas próximas com disparidades diferentes Expansão: penaliza a não existência de atribuições ativas próximas com a mesma disparidade
29
Grafo para Expansões Definições: t 1 Vértices: Arestas direcionadas:
A0 = {aactive(f) : d(a) α} A = {aA : d(a) = α} F = (f : active(f) = Ã), à = A0 A Np(F) {0,1,2}, p P Vértices: terminais s,t cada atribuição a à Arestas direcionadas: (s,a) e (a,t) entre cada atribuição e os terminais (a1,a2) e (a2,a1) entre a1 e a2 vizinhas ({a1, a2} N, ambas A0 ou ambas A ) (a1,a2) e (a2,a1) entre a1A0 e a2A ambas envolvendo um pixel p Relacionando: aA0 f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) aà f’(a) = 0 t s a a0 1 1
30
Custo de dados Lembrando: Então: t D(a0) a0 a D(a) s
aA0 f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Então: t s a a0 D(a0) D(a)
31
Custo de oclusão e unicidade
Lembrando: aA0 f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definições: Então: t s a a0 Docc(a) Kocc Docc(a0)
32
Custo de (des)continuidade
Lembrando: aA0 f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definição: Então: a2d a1d a2d a2d a2d
33
Custo de (des)continuidade
Lembrando: aA0 f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definição: Então: t s a a0 Dsmooth(a0)
34
Grafo para Expansões Pesos:
35
Grafo para Inversões Definições: t 1 Vértices: Arestas direcionadas:
A0 = {aactive(f) | d(a) α e d(a) β} A = {aA | d(a) = α}, A = {aA | d(a) = β} A = A Aβ Vértices: terminais s,t cada atribuição aA Arestas direcionadas: (s,a) e (a,t) entre cada atribuição e os terminais (a1,a2) entre a1A e a2A vizinhas ({a1, a2}N) (a2,a1) entre a1A e a2A ambas envolvendo um pixel p Relacionando: aA f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) aAβ f’(a) = f(a) t s aβ aα 1 1
36
Custo de dados Lembrando: Então: t D(aα) aα aβ D(aβ) s
aA f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Então: t s aβ aα D(aα) D(aβ)
37
Custo de oclusão (e unicidade)
Lembrando: aA f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definições: Então: t s aβ a Docc(aβ) Kocc Docc(a)
38
Custo de (des)continuidade
Lembrando: aA f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definição: Então: aβ a aβ aβ aβ
39
Custo de (des)continuidade
Lembrando: aA0 f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definição: Então: t s aβ a Dsmooth(a) Dsmooth(aβ)
40
Grafo para Inversões Pesos:
41
Inversões e Unicidade Unicidade no algoritmo de inversões Vantagens
Não incluir atribuições aαβ=<l,r> se Nl(f) = {a0} ou Nr(f) = {a0} Como a atribuição a0 não será desligada, não podemos ligar aα nem aβ Custo ∞ para ligar simultaneamente aα e aβ envolvendo um mesmo pixel Vantagens Unicidade garantida por construção Implementação mais simples, cada pixel admite apenas uma atribuição ativa em cada instante Problema Inversões ficam restritas demais e perdem poder Atingimos mínimos locais muito ruins
42
Parâmetros Custo de dados Custo de oclusão: Kocc Custo de suavidade:
Fixo ou proporcional à descontinuidade? Rezudido onde há descontinuidade de intensidade?
43
Comparação Imagem Esquerda Disparidades Verdadeiras Correlação
Corte de Grafo por Pixels Corte de Grafo por Atribuições
44
Melhor Resultado Expansão de atribuições
Custo de dados quadrático limitado em 400 Custo de oclusão 15 Custo de continuidade 10 Aumentado para 100 se intensidades diferem menos de 10
45
Referências Y Boykov, O Veksler, R Zabih, Fast Approximate Energy Minimization via Graph Cuts - IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 23, no. 11, pp , November, 2001. V Kolmogorov, R Zabih, Computing Visual Correspondence with Occlusions via Graph Cuts - International Conference on Computer Vision, 2001 D Scharstein, R Szeliski, A taxonomy and evaluation of dense two-frame stereo correspondence algorithms - International Journal of Computer Vision, vol. 47, no. 1-3, pp. 7-42, April, 2002
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.