A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Disparidades, Correspondências e Corte Mínimo para Estéreo

Apresentações semelhantes


Apresentação em tema: "Disparidades, Correspondências e Corte Mínimo para Estéreo"— Transcrição da apresentação:

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 = {aactive(f) : d(a)  α} A = {aA : 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 a1A0 e a2A ambas envolvendo um pixel p Relacionando: aA0  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA  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
aA0  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA  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: aA0  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA  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: aA0  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA  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: aA0  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA  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 = {aactive(f) | d(a)  α e d(a)  β} A = {aA | d(a) = α}, A = {aA | d(a) = β} A = A  Aβ Vértices: terminais s,t cada atribuição aA Arestas direcionadas: (s,a) e (a,t) entre cada atribuição e os terminais (a1,a2) entre a1A e a2A vizinhas ({a1, a2}N) (a2,a1) entre a1A e a2A ambas envolvendo um pixel p Relacionando: aA  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ  f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) aAβ  f’(a) = f(a) t s 1 1

36 Custo de dados Lembrando: Então: t D(aα) aα aβ D(aβ) s
aA  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ  f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Então: t s D(aα) D(aβ)

37 Custo de oclusão (e unicidade)
Lembrando: aA  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ  f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definições: Então: t s a Docc(aβ) Kocc Docc(a)

38 Custo de (des)continuidade
Lembrando: aA  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aAβ  f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definição: Então: a

39 Custo de (des)continuidade
Lembrando: aA0  f’(a) = 1 se a ficar ligado a s (se (s,a) não for cortada) aA  f’(a) = 1 se a ficar ligado a t (se (a,t) não for cortada) Definição: Então: t s 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


Carregar ppt "Disparidades, Correspondências e Corte Mínimo para Estéreo"

Apresentações semelhantes


Anúncios Google