Parâmetros Geométricos de Câmeras Realidade Aumentada Cooperativa Marcelo Gattass.
Transcript of Parâmetros Geométricos de Câmeras Realidade Aumentada Cooperativa Marcelo Gattass.
Parâmetros Geométricos de Câmeras
Realidade Aumentada CooperativaMarcelo Gattass
Parâmetros da câmera• Extrínsecos ou externos
– Localização e orientação da câmera
• Intrínsecos ou internos– Definem a relação entre um ponto em coordenadas
da câmera e o pixel
Calibração de câmeras:
estimativas destes parâmetros.
Câmera segue um modelo simples
plano de projeção
centro de projeção
Projeção cônica
caixa
filme
objetopinhole
raios de luz
imagem
Câmera
Objetos distantes aparecem pequenos
Linhas paralelas se encontram
Notação
Z
Yfy
Z
Xfx ,
xc
yc
zcp’
Z
Y
X
P
y'
x'
Z
Yfy
Z
Xfx ,
'
'
y
xp
ZY
ZX
f
(X,Y,Z)T (x’,y’)T(xim,yim)T
yim
f xim
yc
vista lateral
oczc
f
fovy oy
xim
yim
h pi
xels
ox
oc
eixo óptico
x0
y0
yc
xc
zc
Z
Y
X
P
y'
x'
w pixels
x'
y'
(xim,yim)T (x’,y’)T
xim
yim
x’
y’
01 3 4
1
2
0
3
2
sx
sy
p'
ooy
ox
y
x
y
x
yimy
ximx
s
s
s
s
oys
oxs
y
x
1
3
)13(
)25(
)(
)(
'
'
5
ximx
oxs
x
'yim
y
oys
y
'
)(
)(
yimy
ximx
oys
oxs
y
xp
Verificando:
(X,Y,Z)T (xim,yim)T
Z
Y
X
osf
osf
w
y
x
yy
xx
h
h
100
0
0
yy
im
xx
im
oZ
Y
s
fy
oZ
X
s
fx
wy
wx
y
x
h
h
im
im
)(
)(
yimy
ximx
oys
oxs
y
xp
ZY
ZX
f
Parâmetros intrínsecos com cisalhamento
10100
0010
0001
100
0Z
Y
X
of
osf
w
y
x
yy
xhx
h
h
P0IKp 3
yy
xx
sff
sff
][ yxhyx oosff
Parâmetros intrínsecos com distorção radial
• Projeção cônica, distância focal: f
)('
)('
yimy
ximx
oysy
oxsx
][ 1koosff yxhyx
•Transformação câmera para imagem:
•Deformação radial:
22
42
21
42
21
)1('
)1('
ddd
ddd
ddd
yxr
rkrkyy
rkrkxx
02
12
k
kk
Um caso mais simples
Z
Yfy
Z
Xfx ,
Z valor médio
20Z
Z
Projeçãoortigráficaseguida de
escala
Parâmetros extrínsecosxc
yc
zc
yw
xw
zw
w
w
w
cwcwcw
cwcwcw
cwcwcw
c
c
c
cw
Z
Y
X
Z
Y
X
kkkjki
jkjjji
ikijii
P
Pw
Pc t
tPP wc
1w
w
w
z
y
x
cwcwcw
cwcwcw
cwcwcw
c
c
c
cZ
Y
X
t
t
t
Z
Y
X
kkkjki
jkjjji
ikijii
P
wc PtRP
c
c
c
yy
xx
h
h
Z
Y
X
of
of
w
y
x
100
0
0
PtRKp
PTIKRp 3
MPm
Outras notações:
Parâmetros extrínsecos
• Translação –Tx, Ty, Tz (3 g.l.)
• Rotação (3 g.l.)
333231
332221
131211
rrr
rrr
rrr
w
w
w
k
j
i
1
0
wwwwww
wwwwww
kkjjii
jkkiji
Formulações para rotação
90°
+ 90°
Velocidade de rotação
)()()()( tttt BAAB pvv
e
BAp
p
||p
pv
t
A
B
B’
e
rv
t
p B
B’
p
p sinp
Re-escrevendo de forma matricial
xaya
zaxa
yaza
zyx
aaa
yx
xz
zy
zyx
kji
pa
z
y
x
aa
aa
aa
xaya
zaxa
yaza
xy
xz
yz
yx
xz
zy
0
0
0
pa
0
0
0
xy
xz
yz
aa
aa
aa
a
)()()()( tttt BAAB pvv
z
y
x
xy
xz
yz
0
0
0
p
Produto vetorial aplicado 2 vezes
z
y
x
aa
aa
aa
a
a
a
xy
xz
yz
z
y
x
0
0
0
paa
z
y
x
aa
aa
aa
aa
aa
aa
xy
xz
yz
xy
xz
yz
0
0
0
0
0
0
paa
22
22
22
yxzyzx
zyzxyx
zxyxzy
aaaaaa
aaaaaa
aaaaaa
aa
22
22
22
a
a
a
aa
zzyzx
zyyyx
zxyxx
aaaaa
aaaaa
aaaaa
a ppa
paa
x
y
x
zyzxz
zyyxy
zxyxx
22
22
22
p
Rotações finitas em torno dos eixos cartesianos
x
y
z
x
y
z
11000
0cossin0
0sincos0
0001
1
'
'
'
z
y
x
z
y
x
xx
xx
11000
0cos0sin
0010
0sin0cos
1
'
'
'
z
y
x
z
y
x
yy
yy
11000
0100
00cossin
00sincos
1
'
'
'
z
y
x
z
y
x
zz
zz
ox 90o
z 90
ox 90 o
z 90o
y 90
Rotações não comutam.
Yaw-Pitch-Rol
cos0sin
010
sin0cos
R
cossin0
sincos0
001
R
100
0cossin
0sincos
R
coscoscossinsinsincossinsincossincos
sincoscoscossinsinsinsincoscossinsin
sinsincoscoscos
R
x
z y
Ângulos de Euler• Transforma x-y-z em x’-y’-z’ em 3 passos
( , , )x y z
( , , ) ( , , )
( , , )x y z
z
x
y
z
x
y
z
x
y
z
x
y
x
Dx
CDx
Ax BCDx
Rotação de em torno eixo z
Rotação de em torno do eixo
Rotação de em torno do eixo ’
Ângulos de Euler• Transforma x-y-z em x’-y’-z’ em 3 passos
( , , )x y z
( , , )
( , , )
( , , )x y z
Rotação de em torno eixo z
Rotação de em torno do eixo
Rotação de em torno do eixo ’
x
Dx
CDx
Ax BCDx
cos sin 0
sin cos 0
0 0 1
D1 0 0
0 cos sin
0 sin cos
Ccos sin 0
sin cos 0
0 0 1
B
cos cos cos sin sin cos sin cos cos sin sin sin
sin cos cos sin cos sin sin cos cos cos cos sin
sin sin sin cos cos
A
cos0sin
010
sin0cos
R
cossin0
sincos0
001
R
100
0cossin
0sincos
R
coscoscossinsinsincossinsincossincos
sincoscoscossinsinsinsincoscossinsin
sinsincoscoscos
R
x
z y
z
x
y
z
x
y
z
x
y
z
x
y
cos sin 0
sin cos 0
0 0 1
D1 0 0
0 cos sin
0 sin cos
C
cos sin 0
sin cos 0
0 0 1
B
cos cos cos sin sin cos sin cos cos sin sin sin
sin cos cos sin cos sin sin cos cos cos cos sin
sin sin sin cos cos
A
Composição com sistema local móvel
xy L
x
y
x LR
x,xL
y,yL
x L
y L
TL
x
y
p2 = R T pp1= T p e p2 = R p1
x
TR
y
x
y
xp
x
y y
1
11 y
xp
2
22 y
xp
p3= R p e p2 = TL p3 p2 = R T R-1 R p p2 = R T pou
p2
Ângulos de Euler na ordem x,y,z
1000
0
0
0
),,(yxzxzyxzxzyx
yxzxzyxzxzyx
yzyzy
zyx cccssscsscsc
csccssssccss
ssccc
R
xx
y
z
y
x
y
z
z
x
y
z
Problemas com ângulos de Euler: Gimbal lock
Ângulos de EulerGimbal lock
1000
00
00
0100
),90,(zxzxzxzx
zxzxzxzxz
ox csscsscc
ccsssccsR
xx
y
z
y=90o
x
y
z
z
x
y
z
1000
00)sin()cos(
00)cos()sin(
0100
zxzx
zxzx
1000
0
0
0
),,(yxzxzyxzxzyx
yxzxzyxzxzyx
yzyzy
zyx cccssscsscsc
csccssssccss
ssccc
R
Interpolação não gera posições “entre”
Algebra da rotação em torno de um eixo unitário êe
pp
||p
v
'p
x
y
z pev ˆ
)()(' || pppp RR
)()(' || ppp RR
vppp )()(cos' || sen
p
p
'pv
)ˆ)(()ˆ)ˆ()((cosˆ)ˆ(' peepepepep sen
Rotação em torno de um eixo ê
))(())((cos)(cos)(' pêêpêpêpêp sen
))(())(cos1()(cos' pêêpêpp sen
e
pp
||p
v
'p
x
y
z pev ˆ
p
p
'pv
)ˆ)(()ˆ)ˆ()((cosˆ)ˆ(' peepepepep sen
A coluna da matriz é a transformada dos vetores da base
sin)cos1(
sin)cos1(
)cos1(cos0
sin)cos1(
0
0
1
cos
2
22
21
11
yzx
zyx
x
y
z
z
y
x
x
eee
eee
e
e
e
e
e
e
e
m
m
m
sin)cos1(
)cos1(cos
sin)cos1(
0sin)cos1(
0
1
0
cos 2
32
22
12
xzy
y
zxy
x
z
z
y
x
y
eee
e
eee
e
e
e
e
e
e
m
m
m
233
23
13
)cos1(cos
sin)cos1(
sin)cos1(
0
sin)cos1(
1
0
0
cos
z
xyz
yxz
x
y
z
y
x
z
e
eee
eee
e
e
e
e
e
e
m
m
m
11000
0
0
0
'
'
'
333231
232221
131211
z
y
x
mmm
mmm
mmm
w
z
y
x
Matriz da rotação em torno de um eixo ê
1000
0)cos1(cossin)cos1(sin)cos1(
0sin)cos1()cos1(cossin)cos1(
0sin)cos1(sin)cos1()cos1(cos
2
2
2
zxzyyzx
xyzyzyx
yxzzxyx
eeeeeee
eeeeeee
eeeeeee
M
11000
0
0
0
'
'
'
333231
232221
131211
z
y
x
mmm
mmm
mmm
w
z
y
x
x
y
z
z
y
x
e
e
e
ê
Matriz de rotação em torno de um eixo
))(())(cos1()(cos' pêêpêpp sen
z
y
x
ee
ee
ee
xy
xz
yz
0
0
0
sinsin pê
z
y
x
100
010
001
coscos p
z
y
x
eee
e
e
e
zyx
z
y
x
)cos1()()cos1( pêê
pêêêIp )()cos1()(cos' 3 senT
êêêIR )()cos1()(cos 3 senT
Demonstração de:
z
y
x
eeeee
eeeee
eeeee
zeeyeexee
zeeyeexee
zeeyeexee
zyzxz
zyyxy
zxyxx
zzyzxz
zyyyxy
zxyxxx
2
2
2
)( êpê
)(
)(
)(
)(
zeyexee
zeyexee
zeyexee
e
e
e
zeyexe
zyxz
zyxy
zyxx
z
y
x
zyxêpê
z
y
x
eee
e
e
e
zyx
z
y
x
êpê )(
pêêêpê T )(
Transformações em 3D(rotação em torno de um eixo qualquer)
x’
y’
z’
1
m12
m22
m32
0
m13
m23
m33
0
0
0
0
1
y
z
1
x
=
m11
m21
m31
0
x
y
z
m11 = ex2 + cos (1- ex
2)
m12 = exey(1-cos) - ez sen
m13 = ezex(1-cos) + ey sen
m21 = exey(1-cos) + ez sen
m22 = ey2 + cos (1- ey
2)
m23 = eyez(1-cos) - ex sen
m31 = exez (1-cos) - ey sen
m32 = eyez(1-cos)+ ex sen
m22 = ez2 + cos (1- ez
2)
z
y
x
e
e
e
ê
Fórmula de Rodrigues 1
êêêIR )()cos1()(cos 3 senT
ee
p
e
'p
Tsen
23
)cos1()()(cos
IR
2
2
2
2
)cos1(
0
0
0)(
100
010
001
)(cos
zyzxz
zyyxy
zxyxx
xy
xz
yzsen
R
Fórmula de Rodrigues 2e
p
e
'p
2
2
2
2
)cos1(
0
0
0)(
100
010
001
)(cos
zyzxz
zyyxy
zxyxx
xy
xz
yzsen
R
32
2
2
2
22
22
222
0
0
0
I
zyzxz
zyyxy
zxyxx
zyzxz
zyyxy
zxyxx
xy
xz
yz
223
)cos1()(
sen
IR
Quatérnios e rotações
Dada uma rotação definida por um eixo ê e um ângulo construímos o quatérnio unitário:
êq
2sin,
2cosˆ
Dado um ponto qualquer p do R3 construímos o quatérnio:
pp ,0
Calculamos o produto:1ˆˆ' qpqp
',0' pp
Demonstração
êpêp
2sin,
2cos,0
2sin,
2cos)',0(
))(())(cos1()(cos' pêêpêpp sen
…
Modelo de câmera do livro
PTIKRp 3
yy
im
xx
im
oZ
Y
s
fy
oZ
X
s
fx
Linearização do problema
extMM ,int
1
intw
w
w
exth
h
Z
Y
X
MM
w
y
x•Neglecting radial distortion
wy
wx
y
x
h
h
im
im
Casos particulares
Problema
ycvista lateral
oczc
1000
fovy oy
xim
yim
480
oxw pixels
x'
y'
ofovy 271000
240tan2 1