CC222 – Visão Computacional
Reconstrução por Estéreo
Instituto Tecnológico de Aeronáutica
Prof. Carlos Henrique Q. Forster – Sala 121 IEC
ramal 5981
Tópicos da aula
• Auto-calibração de um par estéreo
• Análise da matriz fundamental
• Reconstrução 3D no caso calibrado
• Reconstrução 3D no caso não calibrado
• Reconstrução densa (shape-from-stereo)
Livro para acompanhar essa aula
Trucco e Verri – cap 7
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-2/15
Calibrando um sistema estéreo
Se não for possível calibrar cada câmera individualmente (por exemplo: o sistema
estéreo pode se tratar de uma câmera em movimento), é ainda possível calibrar o par
estéreo se for conhecida a associação de 8 pontos da imagem esquerda com os 8
pontos correspondentes (homólogos) da imagem direita.
A auto-calibração do sistema estéreo consiste da estimação da matriz fundamental a
partir da associação de 8 pontos. (O algoritmo é conhecido algoritmo dos 8 pontos).
Se forem conhecidos os parâmetros intrínsecos das câmeras, então a matriz essencial
também pode ser obtida.
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-3/15
O algoritmo dos 8 pontos
Uma associação de um ponto pE da imagem esquerda com um ponto pD da imagem
direita cria uma restrição sobre os elementos da matriz fundamental dada pela
equação de Longuet-Higgins
T
~
pD ⋅ F ⋅ ~
pE = 0
T
Expandindo
⎡ xD ⎤ ⎡ f11
⎢y ⎥ ⋅ ⎢ f
⎢ D ⎥ ⎢ 21
⎢⎣ 1 ⎥⎦ ⎢⎣ f 31
f12
f 22
f 32
f13 ⎤ ⎡ xE ⎤
f 23 ⎥⎥ ⋅ ⎢⎢ y E ⎥⎥ = 0
f 33 ⎥⎦ ⎢⎣ 1 ⎥⎦
x D x E f11 + y D x E f 21 + x E f 31 + x D y E f12 + y D y E f 22 + y E f 32 + x D f13 + y D f 23 + f 33 = 0
Sistema de 8 equações e 9 incógnitas Æ Buscar o espaço nulo
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-4/15
Esse método da forma apresentada é numericamente instável, sendo necessárias
normalizações (não definir como 1 as coordenadas homogêneas).
Um outro problema é a possível obtenção da matriz F com rank completo, quando
sabemos que deve ter rank 2. O truque que se utiliza é decompor em SVD e fixar o
menor valor singular em zero, antão recompor a matriz F.
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-5/15
Localização dos epipólos dada matriz fundamental
~
e
Como o epipólo E
~
qualquer ponto p D
T
~
p ⋅ F ⋅ e~ = 0
D
da imagem esquerda pertence a qualquer linha epipolar para
da imagem direita, vale a relação
E
Como F não é identicamente nula, então isto só é possível no caso em que
F ⋅ e~E = 0
Assim, decompondo F em SVD, a coluna de V correspondente ao valor singular nulo
representa o epipólo
representa o epipólo
e~E . A coluna de U correspondente ao valor singular nulo
e~D .
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-6/15
Obtenção da linha de base pela matriz essencial
Lembrando que
E = RS
E T E = S T RT RS
Mas, como R é matriz de rotação, sendo ortonormal
RT R = I
⎡Ty 2 + Tz 2 − TxTy
− TxTz ⎤
⎥
⎢
2
2
T
T
E E = S S = ⎢ − TyTx Tz + Tx
− TyTz ⎥
2
2⎥
⎢ −T T
T
T
T
T
−
+
z x
z y
x
y ⎦
⎣
O tamanho da linha de base é obtido da soma dos elementos da diagonal (traço)
T =
1
2
Traço( E T E )
O vetor T pode ser obtido de qualquer coluna de
se o sinal).
CC222 – Visão Computacional – ITA – IEC
ET E
por substituição (mas, perde-
Reconstrução por Estéreo-7/15
Obtenção da orientação relativa pela matriz essencial
Sejam
Eˆ = E / T
Definimos
e Tˆ = T / T
wi = Eˆ i × Tˆ , i = 1,2,3 , onde Êi
A matriz de rotação é dada por
(1,2,3), (2,3,1) e (3,1,2).
são linhas de
Ri = wi + w j × wk
Ê .
para as triplas (i,jk) iguais a
Problemas na determinação do sinal do vetor T e da matriz R.
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-8/15
Reconstrução – Caso calibrado
PE
PD
P
pE
OE
CC222 – Visão Computacional – ITA – IEC
pD
OD
Reconstrução por Estéreo-9/15
Como nossas medidas são imprecisas, as retas podem não ser concorrentes, mas
reversas. Então é necessário encontrar um ponto de distância mínima às duas retas.
a ⋅ pE
corresponde ao raio
PE
T
T
+
b
⋅
R
pD
e
ao raio
PD .
T
w é um vetor ortogonal às duas retas, portanto, uma escolha seria pE × R pD .
A soma dos 3 vetores deve ser igual ao vetor T
(
)
a ⋅ pE − b ⋅ RT pD + c ⋅ pE × RT pD = T
Resolvemos o sistema linear para (a, b, c) e encontramos o ponto médio do segmento
entre as duas retas.
1
2
(a ⋅ pE + T + b ⋅ R T pD )
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-10/15
Reconstrução – Caso não calibrado
Primeiro caso: Conhecemos os parâmetros intrínsecos das câmeras.
• Calibramos com o algoritmo dos 8 pontos.
• Estimamos a matriz essencial
• Normalizamos a matriz essencial, porque não conhecemos o tamanho da linha de
base
• Estimamos T e R a partir da matriz essencial
• Reconstruir a profundidade dos pontos (testar as 4 possibilidades de sinal)
• O resultado obtido é dependente de um fator de escala
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-11/15
Reconstrução – Caso não calibrado
Segundo caso: não conhecemos os parâmetros intrínsecos.
• Calibramos com o algoritmo dos 8 pontos
• Estimamos as posições dos epipólos a partir da matriz fundamental
• Definimos uma base projetiva padrão (5 pontos) considerando os 5 primeiros
pontos a serem reconstruídos (e que não formam uma configuração degenerada)
como pontos da base
• Encontrar as transformações projetivas planares TE e TD que levam 4 pontos da
imagem esquerda e 4 pontos da direita na base projetiva padrão em 2D. Aplicar as
transformações a todos pontos da imagem e aos epipólos.
• Estimar as coordenadas dos centros de projeção na base projetiva 3D definida e
as matrizes de projeção.
• Efetuar a triangulação, o resultado é dependente do conhecimento da posição de
5 pontos no espaço 3D.
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-12/15
Reconstrução Densa (Horn)
Reconstrução a partir de pares de pontos pode requerer uma interpolação de pontos
intermediários para se obter uma imagem completa da disparidade. Vejamos um
método que computa diretamente o mapa de disparidade baseado nas diferenças de
intensidade pela imagem.
Considerando uma linha do sistema estéreo com coordenadas xE e xD
correspondentes.
xE = f
x+b/2
z
e
xD = f
x−b/2
z
Queremos encontrar z(x) tal que
⎛ x +b/2⎞
⎛ x −b/2⎞
=
E
EE ⎜ f
⎟
⎟
D⎜ f
z ⎠
z ⎠
⎝
⎝
CC222 – Visão Computacional – ITA – IEC
(intensidades dos pixels)
Reconstrução por Estéreo-13/15
Substituindo
x' = fx / z
e
d ( x' ) = bf / z
(mapa de disparidade)
1
1
⎛
⎞
⎛
⎞
E E ⎜ x + d ( x) ⎟ = E D ⎜ x − d ( x) ⎟
2
2
⎠
⎝
⎠
⎝
Restrição de suavidade do mapa de disparidade (a ser minimizada)
(
)
es = ∫∫ ∇ d ( x, y ) dxdy
2
2
Restrição a minimizar para igualar as intensidades das imagens
ei = ∫∫ (EE ( x, y ) − ED ( x, y ) ) dxdy
2
Função objetivo total a ser minimizada
F = es + λei , λ
é o parâmetro de regularização de Tikonov
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-14/15
Solução da minimização é solução da equação de Euler associada:
∂
∂
Fd − Fd x − Fd y = 0
∂x
∂y
Expandindo:
1 ⎛ ∂EE ∂ED ⎞
∇ d = λ ( EE − ED ) ⎜
+
⎟
∂x ⎠
2 ⎝ ∂x
4
O operador bi-harmônico é definido por:
4
4
4
∂
∂
∂
∇4 = 4 + 2 2 2 + 4
∂x
∂x y
∂y
Substituindo por diferenças finitas, construímos o esquema iterativo:
d ij
m+1
= d ij
m
1 ⎛ ∂EE ∂ED ⎞
λ
− ( EE − ED ) ⎜
+
⎟
∂x ⎠
κ
2 ⎝ ∂x
As derivadas de E e de d são obtidas por convolução com um padrão apropriado.
CC222 – Visão Computacional – ITA – IEC
Reconstrução por Estéreo-15/15
Download

CC222 – Visão Computacional Reconstrução por Estéreo