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 Vitor Barata R. B. Barroso INF 2064 - Visão Computacional e Realidade.

Apresentações semelhantes


Apresentação em tema: "Disparidades, Correspondências e Corte Mínimo para Estéreo Vitor Barata R. B. Barroso INF 2064 - Visão Computacional e Realidade."— Transcrição da apresentação:

1 Disparidades, Correspondências e Corte Mínimo para Estéreo Vitor Barata R. B. Barroso INF Visão Computacional e Realidade Aumentada Trabalho Final

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 = d(x 1,y 1 )

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 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 (x A,y A ) para um pixel B (x B,y B ) com disparidade (u,v) Tomamos janelas de tamanho 2W ao redor de ambos pixels Erro de intensidade = || I 2 – I 1 || ou ( I 2 – I 1 ) 2 Erro de mapeamento = soma dos erros de intensidade ao longo de toda a janela xAxA yAyA x B =x A +u y B = y A +v A B

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 xAxA yAyA x B =x A +u y B = y A +v A B

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 f p, que pode assumir apenas valores discretos (inteiros ou não) O mapeamento f pode ser associado à seguinte energia (a ser minimizada): E data mede o erro de intensidade entre pixels correspondentes: E neighbor 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 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: 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 EsquerdaDisparidades Verdadeiras CorrelaçãoCorte 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 = que podem ser feitas correspondendo pares de pixels nas duas imagens O rótulo f a 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 Unicidade f = configuração de atribuições (ativas e inativas) active(f) = {a : f a = 1} = conjunto de atribuições ativas em f N l (f) = { ativa } = atribuições ativas que envolvem o pixel l N r (f) = { ativa } = atribuições ativas que envolvem o pixel r Pixel ocluso: | N p (f) | = 0 Unicidade: | N p (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 Definições: A 0 = {a active(f) : d(a) α } A = {a A : d(a) = α } F = (f : active(f) = Ã), à = A 0 A N p (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 (a 1,a 2 ) e (a 2,a 1 ) entre a 1 e a 2 vizinhas ({a 1, a 2 } N, ambas A 0 ou ambas A ) (a 1,a 2 ) e (a 2,a 1 ) entre a 1 A 0 e a2 A ambas envolvendo um pixel p Relacionando: a A 0 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 Grafo para Expansões t s a a0a

30 Custo de dados Lembrando: a A 0 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 a0a0 D(a 0 ) D(a )

31 Custo de oclusão e unicidade Lembrando: a A 0 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 a0a0 D occ (a 0 ) D occ (a ) K occ

32 Custo de (des)continuidade Lembrando: a A 0 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: a1da1d a2da2d a2da2d a2da2d a2da2d

33 Custo de (des)continuidade Lembrando: a A 0 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 a0a0 D smooth (a 0 )

34 Grafo para Expansões Pesos:

35 Grafo para Inversões Definições: A 0 = {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 (a 1,a 2 ) entre a 1 A e a 2 A vizinhas ({a 1, a 2 } N) (a 2,a 1 ) entre a 1 A e a 2 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 aβaβ aαaα

36 Custo de dados 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) Então: t s aβaβ aαaα 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βaβ a D occ (a ) D occ (a β ) K occ

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 aβaβ aβaβ aβaβ aβaβ

39 Custo de (des)continuidade Lembrando: a A 0 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βaβ a D smooth (a ) D smooth (a β )

40 Grafo para Inversões Pesos:

41 Inversões e Unicidade Unicidade no algoritmo de inversões Não incluir atribuições a αβ = se N l (f) = {a 0 } ou N r (f) = {a 0 } Como a atribuição a 0 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: K occ Custo de suavidade: Fixo ou proporcional à descontinuidade? Rezudido onde há descontinuidade de intensidade?

43 Comparação Imagem EsquerdaDisparidades Verdadeiras CorrelaçãoCorte 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, 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 Vitor Barata R. B. Barroso INF 2064 - Visão Computacional e Realidade."

Apresentações semelhantes


Anúncios Google