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