Processamento de Imagens CPS755 aula 09 - single-view final Antonio Oliveira Ricardo Marroquim 1 / 25
laboratório de processamento de imagens tópicos pontos e retas de fuga métricas afim em uma foto calibrando a câmera com uma foto 2 / 25
p e l ponto de fuga o ponto de fuga é a interseção do plano de imagem com a reta paralela que passa por C x/ x C v/ v D X 1 X 2 X 3 X 4 X 3 / 25
p e l ponto de fuga reta em coordenadas do mundo X(λ) = A + λd um ponto X(λ) é projetado como onde D = (d T, 0) T x(λ) = PX(λ) = PA + PλD = a + λkd o ponto de fuga v é encontrado fazendo λ v = lim x(λ) = lim (a + λkd) = Kd λ λ note que v depende somente da direção d e não da posição a 4 / 25
p e l ponto de fuga todas retas paralelas possuem o mesmo ponto de fuga v x/ x C v/ v D A d X( λ) C d v X( λ) X 1 X 2 X 3 X 4 X 5 / 25
p e l o que os pontos de fuga nos fornece? suponha que a câmera agora tenha sofrido um rotação e translação, mantendo a matriz de calibração K as imagens dos pontos de fuga não são afetadas por translações logo podemos descobrir a rotação R entre as imagens pontos de fuga e direções nas duas imagens v i e d i v i e d i onde a direção é normalizada d = K 1 v K 1 v as direções são relacionadas por d i = Rd i, representando duas restrições para R com dois pares de direções podemos encontrar a matriz R 6 / 25
p e l o que os pontos de fuga nos fornece? também podemos calcular ângulos de retas diretamente pelos seus pontos de fuga cos θ = v1 Tωv 2 v1 Tωv 1 v2 Tωv 2 onde v 1 e v 2 são os pontos de fuga das duas retas, e ω é a imagem da cônica absoluta (IAC) 7 / 25
p e l estimando pontos de fuga como vimos nos primeiros trabalhos, existem algumas formas de calcular a posição dos pontos de fuga na imagem, ex: retas paralelas intervalos de razão conhecida em retas porém, essas medidas são muitos sensíveis a erro (ex: clique com mouse) dificilmente os pontos de fugas entre várias retas paralelas (em coordenadas do mundo) coincidem por causa deste erro na medida 8 / 25
p e l estimando pontos de fuga uma solução simples e usar várias retas paralelas e computar o centroide dos vários pontos de fuga uma maneira melhor é utilizar métodos de mínimos quadrados para ajustar as retas v 9 / 25
p e l retas de fuga planos paralelos em 3D intersectam π em uma reta comum a imagem desta reta comum é a reta de fuga do plano v 1 2 l v 10 / 25
p e l retas de fuga a reta de fuga depende apenas da orientação do plano π (normal n), e não da sua posição a reta de fuga l é a interseção do plano de imagem com o plano paralelo a π que passa por C n l C n π 11 / 25
p e l retas de fuga se conhecemos a matriz de calibração K e a reta de fuga l do plano podemos 1 determinar a orientação de um plano relativa à câmera: l = K T n 2 retificar o plano realizando uma rotação sintética (ao menos fazer a normal alinhar com o eixo z) repare que H = KRK 1 e H T l = l = (0, 0, 1) T que é equivalente a Rn = (0, 0, 1) T 3 determinar o ângulo entre dois planos com retas de fuga l 1 e l 2 cos θ = l T 1 ω l 2 l T 1 ω l 1 l T 2 ω l 2 12 / 25
p e l encontrando retas de fuga encontrar dois pontos de fuga na reta (conjuntos de retas paralelas ao plano) 13 / 25
p e l ortogonalidade pontos de fuga de retas perpendiculares satisfazem v T 1 ωv 2 = 0 se uma reta é perpendicular a um plano, então o ponto de fuga da reta e a reta de fuga do plano satisfazem l = ωv e v = ω l retas de fuga de dois planos perpendiculares satisfazem l T 1 ω l 2 = 0 14 / 25
medições afim alturas relativas dado a reta de fuga do plano do chão e o ponto de fuga vertical, alturas relativas entre segmentos verticais (com um dos pontos no chão) podem ser computados a ideia é transferir T 1 para o segmento B 2 T 2 no espaço de imagem T 2 T 1 T 01 2 T 1 L 2 T 01 1 d 2 L 1 B 1 B 2 d 1 01 B2 01 B 1 15 / 25
medições afim alturas relativas colocamos todos os pontos na reta l 2 onde u = (b 1 b 2 ) l t 1 = (t 1 u) (b 2 v) v l 1 l 2 l u t2 t 1 t 1 b 2 b 1 image 16 / 25
medições afim alturas relativas parametrizamos os três pontos pela distâncias na reta com origem em b 2 ( t 1 b 2, 1), ( t 2 b 2, 1), ( v b 2, 1) ( t 1, 1), (t 2, 1), (v, 1) transformação projetiva H 2 2 que leva (v, 1) (1, 0) [ ] 1 0 1 v a razão entre as distância pode ser encontrada pelo pontos transformados pela matriz H d 1 = H 2 2( t 1, 1) T d 2 H 2 2 (t 2, 1) T 17 / 25
medições afim 18 / 25
matriz de calibração determinando K com uma imagem podemos combinar várias restrições lineares para resolver o problema 2 condição restrição # restrições pontos de fuga v 1 e v 2 correspondendo a retas ortogonais v1 T ωv 2 = 0 1 ponto de fuga v e reta de fuga l correspondendo a reta e plano l ωv = 0 2 ortogonais imagem de plano com H conhecido (ex de sistema de calibração) h T 1 ωh 1 = h T 2 ωh 2 2 h T 1 ωh 2 = 0 sem cisalhamento ω 12 = ω21 = 0 1 pixels quadrados ω 12 = ω21 = 0 ω 11 = ω 22 19 / 25
matriz de calibração determinando K com uma imagem 1 cada restrição forma linhas no sistema Aω = 0, onde A é uma matriz n 6 para n restrições note que para algumas restrições onde elementos de ω são definidos (ex pixels quadrados) precisamos de menos colunas na matriz, já que precisamos determinar menos elementos 2 a solução do sistema pode ser encontrada com SVD 3 como ω = (KK T ) 1, podemos encontrar K fazendo uma inversão e depois uma fatorização (decomposição) ex. Cholesky (método LLT da Eigen) 20 / 25
matriz de calibração determinando K com uma imagem calibrando a câmera a partir de 3 pontos de fuga supondo que não tenha cisalhamento e os pixels são quadrados com os 3 pontos de fuga teremos as 5 restrições necessárias ω 1 0 ω 2 ω = 0 ω 1 ω 3 ω 2 ω 3 ω 4 21 / 25
matriz de calibração determinando K com uma imagem assumindo pixel quadrados e eixo ótico passando pelo centro da imagem (4 restrições), mais uma nos fornece o último parâmetro (distância focal f) e encontrar K ex. dois pontos de fuga ortogonais com pontos de fuga encontramos a reta de fuga l do plano com l e K podemos retificá-lo sem saber a razão de aspecto do retângulo 22 / 25
reconstrução reconstrução a partir de uma imagem texturizar um modelo planar simples 23 / 25
reconstrução reconstrução a partir de uma imagem restrições para encontrar K pixel quadrado (2) um ponto de fuga por plano (retas horizontais) (3) retificar a fachada da esquerda sabendo que os planos são ortogonais sabemos a orientação relativa entre eles usamos os pontos em comum para encontrar a escala correta 24 / 25
reconstrução reconstrução a partir de uma imagem para os planos não ortogonais (telhado) podemos encontrar a orientação relativa encontrando suas retas de fuga encontrando pontos comuns nos planos (telhado e fachada) podemos retificar a escala 25 / 25