Processamento de Imagens
CPS755
aula 09 - single-view final
Antonio Oliveira Ricardo Marroquim
t´opicos
pontos e retas de fuga m´etricas afim em uma foto
ponto de fuga
o ponto de fuga ´e a interse¸c˜ao do plano de imagem com a reta paralela que passa por C
x v X v x / / D X X X X1 2 3 4 C
ponto de fuga
reta em coordenadas do mundo
X(λ) = A + λD
um ponto X(λ) ´e projetado como
x(λ) = PX(λ) = PA + PλD = a + λKd onde D = (dT, 0)T
o ponto de fuga v ´e encontrado fazendo λ → ∞
v = lim
λ→∞x(λ) = limλ→∞(a + λKd) = Kd
ponto de fuga
todas retas paralelas possuem o mesmo ponto de fuga v
x v X v x / / D X X X X1 2 3 4 C X(λ) v A d d X( )λ C
o que os pontos de fuga nos fornece?
suponha que a cˆamera agora tenha sofrido um rota¸c˜ao e transla¸c˜ao, mantendo a matriz de calibra¸c˜ao K
as imagens dos pontos de fuga n˜ao s˜ao afetadas por transla¸c˜oes
logo podemos descobrir a rota¸c˜ao R entre as imagens
pontos de fuga e dire¸c˜oes nas duas imagens
vi e di
v0i e d0i
onde a dire¸c˜ao ´e normalizada d = kKK−1−1vvk
as dire¸c˜oes s˜ao relacionadas por d0i= Rdi, representando duas restri¸c˜oes para R
o que os pontos de fuga nos fornece?
tamb´em podemos calcular ˆangulos de retas diretamente pelos seus pontos de fuga
cos θ = v T 1ωv2 q vT 1ωv1 q vT 2ωv2
onde v1 e v2 s˜ao os pontos de fuga das duas retas, e ω ´e a imagem da cˆonica absoluta (IAC)
estimando pontos de fuga
como vimos nos primeiros trabalhos, existem algumas formas de calcular a posi¸c˜ao dos pontos de fuga na imagem, ex:
retas paralelas
intervalos de raz˜ao conhecida em retas
por´em, essas medidas s˜ao muitos sens´ıveis a erro (ex: clique com mouse)
dificilmente os pontos de fugas entre v´arias retas paralelas (em coordenadas do mundo) coincidem por causa deste erro na medida
estimando pontos de fuga
uma solu¸c˜ao simples e usar v´arias retas paralelas e computar o centroide dos v´arios pontos de fuga
uma maneira melhor ´e utilizar m´etodos de m´ınimos quadrados para ajustar as retas
retas de fuga
planos paralelos em 3D intersectam π∞ em uma reta comum
a imagem desta reta comum ´e a reta de fuga do plano
l
retas de fuga
a reta de fuga depende apenas da orienta¸c˜ao do plano π (normal n), e n˜ao da sua posi¸c˜ao
a reta de fuga l ´e a interse¸c˜ao do plano de imagem com o plano paralelo a π que passa por C
l C
π n
retas de fuga
se conhecemos a matriz de calibra¸c˜ao K e a reta de fuga l do plano podemos
1 determinar a orienta¸c˜ao de um plano relativa `a cˆamera:
l = K−Tn
2 retificar o plano realizando uma rota¸c˜ao sint´etica (ao menos
fazer a normal alinhar com o eixo z)
repare que H = KRK−1e H−Tl = l∞= (0, 0, 1)T
que ´e equivalente a Rn = (0, 0, 1)T
3 determinar o ˆangulo entre dois planos com retas de fuga l1e l2
cos θ = l T 1ω∗l2 p lT 1ω∗l1 p lT 2ω∗l2
encontrando retas de fuga
encontrar dois pontos de fuga na reta (conjuntos de retas paralelas ao plano)
ortogonalidade
pontos de fuga de retas perpendiculares satisfazem vT1ωv2 = 0
se uma reta ´e perpendicular a um plano, ent˜ao 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 lT1ω∗l2= 0
alturas relativas
dado a reta de fuga do plano do ch˜ao e o ponto de fuga vertical, alturas relativas entre segmentos verticais (com um
dos pontos no ch˜ao) podem ser computados
a ideia ´e transferir T1 para o segmento B2T2 no espa¸co de imagem 01 01 01T2 T1 2 B L2 L1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 01 T1 T2 2 B d d1 2 T1
alturas relativas
colocamos todos os pontos na reta l2 ˜ t1= (t1× u) × (b2× v) onde u = (b1× b2) × l 01 00 11 00 11 00 11 00 11 00 11 01 00 11 t1 2 t t1 l 1 b 2 b l2 l1 u v image
alturas relativas
parametrizamos os trˆes pontos pela distˆancias na reta com origem em b2
(k˜t1− b2k, 1), (kt2− b2k, 1), (kv − b2k, 1)
(˜t1, 1), (t2, 1), (v, 1)
transforma¸c˜ao projetiva H2×2que leva (v, 1) 7→ (1, 0)
1 0
1 −v
a raz˜ao entre as distˆancia pode ser encontrada pelo pontos transformados pela matriz H
d1
= H2×2(˜t1, 1) T
determinando K com uma imagem
podemos combinar v´arias restri¸c˜oes lineares para resolver o problema
condi¸c˜ao restri¸c˜ao # restri¸c˜oes
pontos de fuga v1e v2correspondendo a retas ortogonais v1Tωv2= 0 1
ponto de fuga v e reta de fuga l correspondendo a reta e plano ortogonais
l × ωv = 0 2
imagem de plano com H conhecido (ex de sistema de calibra¸c˜ao) hT
1ωh1 = hT2ωh2 hT1ωh2= 0 2 sem cisalhamento ω12= ω21 = 0 1 pixels quadrados ω12 = ω21 = 0 ω11= ω22 2
determinando K com uma imagem
1 cada restri¸c˜ao forma linhas no sistema Aω = 0, onde A ´e
uma matriz n × 6 para n restri¸c˜oes
note que para algumas restri¸c˜oes onde elementos de ω s˜ao definidos (ex pixels quadrados) precisamos de menos colunas na matriz, j´a que precisamos determinar menos elementos
2 a solu¸c˜ao do sistema pode ser encontrada com SVD
3 como ω = (KKT)−1, podemos encontrar K fazendo uma
invers˜ao e depois uma fatoriza¸c˜ao (decomposi¸c˜ao)
determinando K com uma imagem
calibrando a cˆamera a partir de 3 pontos de fuga
supondo que n˜ao tenha cisalhamento e os pixels s˜ao quadrados
com os 3 pontos de fuga teremos as 5 restri¸c˜oes necess´arias
ω = ω1 0 ω2 0 ω1 ω3 ω2 ω3 ω4
determinando K com uma imagem
assumindo pixel quadrados e eixo ´otico passando pelo centro da imagem (4 restri¸c˜oes), mais uma nos fornece o ´ultimo parˆametro (distˆancia 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´a-lo sem saber a raz˜ao de aspecto do retˆangulo
reconstru¸c˜ao a partir de uma imagem
reconstru¸c˜ao a partir de uma imagem
restri¸c˜oes 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˜ao ortogonais sabemos a orienta¸c˜ao relativa entre eles
reconstru¸c˜ao a partir de uma imagem
para os planos n˜ao ortogonais (telhado) podemos encontrar a orienta¸c˜ao relativa encontrando suas retas de fuga
encontrando pontos comuns nos planos (telhado e fachada) podemos retificar a escala