visão computacional visãoestereoscópicaeduardo/imgproc_dell-emc_2017/... · anaglifos →duas...
TRANSCRIPT
Visão Computacional
Visão EstereoscópicaEduardo A. B. da Silva
Programa de Engenharia Elétrica - COPPE/UFRJLaboratório de Sinais, Multimídia e Telecomunicações
Sergio L. NettoPrograma de Engenharia Elétrica - COPPE/UFRJ
Laboratório de Sinais, Multimídia e Telecomunicaçõ[email protected]
Julho de 2017
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 1 / 55
Sumário
Sumário
1 Visão EstereoscópicaVisão EstereoscópicaGeometria EstéreoMatriz EssencialMatriz FundamentalCasamento Estéreo e Mapas de DisparidadeVisualizando 3DAnaglifosPolarizaçãoÓculos Ativos
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 2 / 55
Visão Estereoscópica Visão Estereoscópica
Introdução
Problema: Reconstruir modelo do mundo a partir de uma imagem
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 3 / 55
Visão Estereoscópica Visão Estereoscópica
Uma vista basta?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 4 / 55
Visão Estereoscópica Visão Estereoscópica
Estrutura e profundidade são ambíguos a partir de uma única vista!
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 5 / 55
Visão Estereoscópica Visão Estereoscópica
⇒ Qualquer ponto no raio OP tem imagem p;
⇒ Conhecemos as disparidades a priori?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 6 / 55
Visão Estereoscópica Visão Estereoscópica
Uma câmera calibrada basta?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 7 / 55
Visão Estereoscópica Visão Estereoscópica
Nossa solução:
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 8 / 55
Visão Estereoscópica Visão Estereoscópica
Triangulação: uma segunda câmera nos permite distinguir os pontos no raio OP ecalcular sua profundidade.
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 9 / 55
Visão Estereoscópica Visão Estereoscópica
Solução: encontrar X que minimiza ‖ x1 − P1X ‖2 + ‖ x2 − P2X ‖2
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 10 / 55
Visão Estereoscópica Geometria Estéreo
Geometria Estéreo: Câmeras com Eixos ParalelosAssuma eixos paralelos e câmeras conhecidas;
⇒ Como relacionar pontos no espaço e nas câmeras?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 11 / 55
Visão Estereoscópica Geometria Estéreo
Como calcular a profundidade (Z) do ponto P a partir das duas imagens?
Triângulos semelhantes plPpr e OlPOr :
T + xl − xr
Z − f = TZ
Z = f Txr − xl
= f Td
→ d = disparidade;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 12 / 55
Visão Estereoscópica Geometria Estéreo
Profundidade a partir da disparidade:
→ Então, se pudermos encontrar pontos correspondentes, podemos estimar suaprofundidade relativa.
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 13 / 55
Visão Estereoscópica Geometria Estéreo
Geometria Estéreo: Caso Geral, Câmeras Calibradas
Eixos não precisam ser paralelos;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 14 / 55
Visão Estereoscópica Geometria Estéreo
Dado o ponto p na imagem da esquerda, quais são suas possíveis posições naimagem da direita?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 15 / 55
Visão Estereoscópica Geometria Estéreo
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 16 / 55
Visão Estereoscópica Geometria Estéreo
Que reta é essa?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 17 / 55
Visão Estereoscópica Geometria Estéreo
Geometria EpipolarA geometria de duas vistas nos permite restringir as possíveis localizações de umpixel numa segunda imagem a partir de sua posição numa primeira imagem;
→ Elas devem estar em uma linha definida pelo plano que contém o ponto noespaço 3D e os centro óticos das câmeras;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 18 / 55
Visão Estereoscópica Geometria Estéreo
http://www.ai.sri.com/~luong/research/Meta3DViewer/EpipolarGeo.html
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 19 / 55
Visão Estereoscópica Geometria Estéreo
Geometria Epipolar: Definições
• Linha Base: Linha que conecta os centros óticos das duas câmeras;
• Epipolo: Ponto de interseção da linha base e o plano da imagem;→ Qual seu significado geométrico?
• Plano Epipolar: Plano que contéma linha base e o ponto no espaço 3D;
• Linha Epipolar: Interseção do plano epipolar e o plano da imagem;
⇒ Todas as linhas epipolares se interceptam no epipolo;⇒ Planos epipolares interceptam as imagens em linhas epipolares;
⇒ Qual a utilidade da restrição epipolar?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 20 / 55
Visão Estereoscópica Geometria Estéreo
Busco candidatos apenas na linha epipolar
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 21 / 55
Visão Estereoscópica Geometria Estéreo
Como linhas epipolares são vistas nas imagens?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 22 / 55
Visão Estereoscópica Geometria Estéreo
Câmeras convergentes
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 23 / 55
Visão Estereoscópica Geometria Estéreo
Câmeras paralelas
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 24 / 55
Visão Estereoscópica Geometria Estéreo
⇒ Busca por pontos correspondentes pode se restringir apenas à linha epipolar;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 25 / 55
Visão Estereoscópica Matriz Essencial
Geometria Epipolar: Câmeras Calibradas
Se o sistema estéreo está calibrado:⇒ Sabemos como girar e deslocar o frame de referência 1 para o frame dereferência 2:
X′c = RXc + t
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 26 / 55
Visão Estereoscópica Matriz Essencial
Relembrando: Produto Externo
Se a× b = c então:a · c = 0b · c = 0
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 27 / 55
Visão Estereoscópica Matriz Essencial
Introduzindo a notação:
a× b =
0 −a3 a2a3 0 −a1−a2 a1 0
b1b2b3
= c
Podemos ver o produto externo como uma multiplicação de matrizes:
[a×] =
0 −a3 a2a3 0 −a1−a2 a1 0
⇒ a× b = [a×]b
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 28 / 55
Visão Estereoscópica Matriz Essencial
Voltando:
X′ = RX + tt× X′ = t× RX + t× t
= t× RX
⇒ X′ · (t× X′) = X′ · (t× RX)= 0
⇒ Os vetores X′, t e RX são coplanares;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 29 / 55
Visão Estereoscópica Matriz Essencial
Matriz Essencial:
X′ · (t× RX) = 0X′ · ([t×]RX) = 0
Seja E = [t×]R
⇒ X′TEX = 0
⇒ E é chamada matriz essencial e relaciona pontos correspondentes entre as duascâmeras, dadas a rotação e translação do sistema⇒ E mapeia pontos em uma imagem em linhas epipolares na outra!
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 30 / 55
Visão Estereoscópica Matriz Essencial
Propriedades da Matriz Essencial:
→ EX é a linha epipolar associada com X (l ′ = EX);→ ETX′ é a linha epipolar associada com X′ (l = ETX′);→ Ee = 0 e ET e ′ = 0;→ E é singular (rank 2);→ E tem 5 graus de liberdade (3 para rotação e 2 para translação);
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 31 / 55
Visão Estereoscópica Matriz Fundamental
Câmeras Não Calibradas: Matriz Fundamental
Se o sistema estéreo não está calibrado (não conheço matrizes K e K′:⇒ X′ = K′−1x ′; X = K−1x⇒ X′TEX = (K′−1x ′)TEK−1x = x ′T K′−1TEK−1︸ ︷︷ ︸
F
x = x ′TFx
⇒ F é chamada matriz fundamental ;(SMT – COPPE/UFRJ) UFRJ Julho de 2017 32 / 55
Visão Estereoscópica Matriz Fundamental
Propriedades da Matriz Fundamental:
→ Fx é a linha epipolar associada com x (l ′ = Fx);→ FT x ′ é a linha epipolar associada com x ′ (l = FT x ′);→ Fe = 0 e FT e ′ = 0;→ F é singular (rank 2);→ F tem 7 graus de liberdade;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 33 / 55
Visão Estereoscópica Matriz Fundamental
Estimando F
Se não conhecemos K, K′, R e t, é possível estimar F?
⇒ Sim, desde que tenhamos correspondências suficientes.
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 34 / 55
Visão Estereoscópica Matriz Fundamental
Estimando F: Algoritmo de 8 pontos
F é definida tal que
x ′TFx = 0
para quaisquer pontos correspondentes x e x ′ em duas imagens;
Sejam x = (x , y , 1)T e x′ = (x ′, y ′, 1)T dois pontos correspondentes nas imagens e
F′ =
f11 f12 f13f21 f22 f23f31 f32 f33
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 35 / 55
Visão Estereoscópica Matriz Fundamental
Passo1: Normalize os pontos para cada imagem
• Encontre centróides dos pontos, subtraia-o das coordenadas;
• Determine a faixa dinâmica das coordenadas, normalize-as entre 0 e 1;
uv1
= T
xy1
u′v ′1
= T′x ′y ′1
T =
ax 0 dx0 ay dy0 0 1
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 36 / 55
Visão Estereoscópica Matriz Fundamental
Passo 2:
Cada correspondência gera uma equação linear:
uu′f11 + vu′f12 + u′f13 + uv ′f21 + vv ′f22 + v ′f23 + uf31 + vf32 + f33 = 0
u1u′1 v1u′1 u′1 u1v ′1 v1v ′1 v ′1 u1 v1 1u2u′2 v2u′2 u′2 u2v ′2 v2v ′2 v ′2 u2 v2 1... ... ... ... ... ... ... ... ...
unu′n vnu′n u′n unv ′n vnv ′n v ′n un vn 1
f11f12f13f21f22f23f31f32f33
= 0
⇒ Encontre a solução por mínimos quadrados/ Decomposição SVD.(Problemas?)
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 37 / 55
Visão Estereoscópica Matriz Fundamental
Passo 3:
Normalize
F′ =
f11 f12 f13f21 f22 f23f31 f32 f33
F′ = F′‖ F′ ‖
Decomponha F′:
F′ = U
λ1 0 00 λ2 00 0 λ3
VT λ1 ≥ λ2 ≥ λ3
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 38 / 55
Visão Estereoscópica Matriz Fundamental
Matriz fundamental deve ser singular (rank 2)
⇒ Solução SVD: linhas epipolares não coincidentes;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 39 / 55
Visão Estereoscópica Matriz Fundamental
Passo 4: Force a condição de posto 2 para F′;
F̃ = U
λ1 0 00 λ2 00 0 0
VT λ3 → 0
Passo 5:
F = T′T F̃T
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 40 / 55
Visão Estereoscópica Matriz Fundamental
Forçando posto 2 para F:
⇒ Linhas epipolares a partir da matriz F corrigida;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 41 / 55
Visão Estereoscópica Matriz Fundamental
Usando F na prática:
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 42 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Casamento Estéreo
De volta ao problema original: dado um par de câmeras calibradas, queremos gerarseu mapa de diparidades;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 43 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Algoritmo básico:
1 Para cada ponto caracteristico na primeira imagem, encontre a linha epipolarcorrespondente da segunda imagem;
2 Examine os pontos na segunda imagem e encontre o melhor casamento;
3 Triangule para descobrir a informação de disparidade;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 44 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Caso simples: imagens paralelas
• Câmeras paralelas entre si e emrelação à linha base;
• Centros estão na mesma altura;
• Distâncias focais são as mesmas;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 45 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Caso simples: imagens paralelas
• Câmeras paralelas entre si e emrelação à linha base;
• Centros estão na mesma altura;
• Distâncias focais são as mesmas;
⇒ Linhas epipolares estão em uma mesma linha horizontal conectando as imagens
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 46 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Restrição epipolar:
x′Ex = 0
E = [tx ]R
R = I t = (T , 0, 0)
E = [tx ]R =
0 0 00 0 −T0 T 0
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 47 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Já conhecemos a solução:
T + xl − xr
Z − f = TZ
Z = f Txr − xl
= f Td
d = f TZ
→ d = disparidade;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 48 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Caso geral:
• Câmeras possuem qualquerorientação relativa;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 49 / 55
Visão Estereoscópica Casamento Estéreo e Mapas de Disparidade
Caso geral:
• Câmeras possuem qualquerorientação relativa;
� Reprojeto cada imagem para um planoparalelo à linha que liga os centros óticosdas câmeras (duas homografias sãonecessárias);
� Agora o problema é o mesmo que o casode câmeras alinhadas;
E se as câmeras não estão calibradas?
⇒ Estimo F, continuo como antes;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 50 / 55
Visão Estereoscópica Visualizando 3D
Visualizando 3DVisão estereoscópica humana: disparidades;
d = l − r
⇒ Profundidade é inversamente proporcional à disparidade;
⇒ Como funcionam os displays 3D?
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 51 / 55
Visão Estereoscópica Visualizando 3D
Como entregar imagens diferentes para cada olho?
Visualização 3D:
• Passiva:� Anaglifos;
� Óculos Passivos (polarizados);
• Ativa:� Obturador ativo;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 52 / 55
Visão Estereoscópica Visualizando 3D
Anaglifos
→ Duas imagens em cores diferentes(vermelho e azul) são mostradas simul-taneamente;
→ Filtros permitem a passagem de so-mente uma delas para cada olho;
→ Problema: distorção de cores;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 53 / 55
Visão Estereoscópica Visualizando 3D
Polarização
→ Dois projetores sincronizados projetamvistas com polarizações diferentes;
→ Cada lente dos óculos permite a passa-gem somente do sinal com a polarizaçãocorrespondente;
→ Problema: requer tela especial;
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 54 / 55
Visão Estereoscópica Visualizando 3D
Óculos Ativos
(SMT – COPPE/UFRJ) UFRJ Julho de 2017 55 / 55