Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 147 / 216
Parâmetros da câmera: Extrínsecos
� �
r11 r12 r13
Matriz de rotação R = r21 r22 r23 ;
r31 r32 r33
Vetor de translação T = [Tx , Ty , Tz ].
Pc = R(Pw − T )
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 148 / 216
Parâmetros da câmera: Intrínsecos
Os parâmetros intrínsecos são:
A distância focal f;
O tamanho do pixel, em milímetros, sx e sy
O centro da imagem (ox , oy )
As coordenadas, em pixels pim = [xim , yim ], são obtidas das coordenadas Pc = [Xc , Yc , Zc ] no
sistema de referência da câmera fazendo
f Xc f Yc
xim = ox − e yim = oy −
sx Zc sy Zc
−f
sx
0 ox
Mint = 0 −f
sy
oy .
0 0 1
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 149 / 216
Parâmetros da câmera
Plugando os parâmetros extrínsecos e intrínsecos, obtemos uma versão
linear para as equações de projeção perspectiva
f Xc Xc
De xim = ox − , obtemos −(xim − ox ).sx = f
sx Zc Zc
f Yc Yc
De yim = oy − , obtemos −(yim − oy ).sy = f
sy Zc Zc
R1T (Pw − T )
−(xim − ox ).sx = f T
R3 (Pw − T )
R2T (Pw − T )
−(yim − oy ).sy = f T
R3 (Pw − T )
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 150 / 216
Parâmetros da câmera
� � −f
r11 r12 r13 −R1T T sx
0 ox
E tomando Mext = r21 r22 r23 −R2T T e Mint = 0 −f
sy
oy .
r31 r32 r33 −R3T T 0 0 1
Podemos escrever
R1T (Pw − T )
� � Xw −f + ox R3T (Pw − T )
x1 sx
Yw = T .
x2 = Mint × Mext R (P − T )
Zw −f 2 w + oy R3 (Pw − T )
T
x3 sy
1
R3T (Pw − T )
x1 x2
Donde, finalmente, xim = e yim =
x3 x3
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 151 / 216
Calibração de câmeras
O
� algorítmo de Calibração
� Direta usa um conjunto n de pontos
(Xw
i , Y w
i , Z w
i ), i = 1..n conhecidos em coordenadas do mundo, e sua
respectivas coordenadas na imagen {(xi , yi ), i = 1..n} para estimar os
parâmetros extrínsecos e intrínsecos.
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 152 / 216
Calibração de câmeras
(X w , Y w , Z w ) ⇒ (X c , Y c , Z c ) ⇒ (x, y)
Em componentes, temos
c
X = r11 X w + r12 Y w + r13 Z w + Tx
Y c = r21 X w + r22 Y w + r23 Z w + Ty
c
Z = r31 X w + r32 Y w + r33 Z w + Tz
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 153 / 216
Calibração de câmeras
f Xc
x =− + ox
sx Zc
f Yc
y =− + oy
sy Zc
f f
Escrevendo fx = e fy = e assumindo (ox , oy ) = (0, 0), temos
sx sy
Xc
x = −fx
Zc
y = −fy Yc
Zc
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 154 / 216
Calibração de câmeras
c X
X = r11 X w + r12 Y w + r13 Z w + Tx x = −fx Zcc
De Y c = r21 X w + r22 Y w + r23 Z w + Ty e
c
Z = r31 X w + r32 Y w + r33 Z w + Tz y = −fy YZcc
r11 X w + r12 Y w + r13 Z w + Tx
x = −fx
r31 X w + r32 Y w + r33 Z w + Tz
r X w
+ r Y w
+ r Z w
+ Ty
y = −fy 21 22 23
r31 X w + r32 Y w + r33 Z w + Tz
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 155 / 216
Calibração de câmeras
w + r Yw + r Zw + T
r11 X 12 13 x
x = −f x w w w
r31 X + r32 Y + r33 Z + Tz
De
r21 X w + r22 Y w + r23 Z w + Ty
y = −fy
w
r31 X w
+ r32 Y w
+ r33 Z + Tz
w + r Yw + r Zw + T
r11 X 12 13 x
xy = −y .fx . w w w
r31 X + r32 Y + r33 Z + Tz
r21 X w + r22 Y w + r23 Z w + Ty
xy = −x.fy .
w
r31 X w
+ r32 Y w
+ r33 Z + Tz
ou
fx
x.(r21 X w + r22 Y w + r23 Z w + Ty ) = y . (r11 X w + r12 Y w + r13 Z w + Tx )
fy
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 156 / 216
Calibração de câmeras
De
fx
x.(r21 X w + r22 Y w + r23 Z w + Ty ) = y. (r11 X w + r12 Y w + r13 Z w + Tx )
fy
fx
e fazendo α = , temos
fy
xX w a + xY w b + xZ w c + xd = yX w e + yY w f + yZ w g + yh
⇒ xX w a + xY w b + xZ w c + xd − yX w e − yY w f − yZ w g − y h = 0
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 157 / 216
Calibração de câmeras
A equação
xX w a + xY w b + xZ w c + xd − yX w e − yY w f − yZ w g − yh = 0
deve ser satisfeita para os n pares de pontos {(Xiw , Yiw , Ziw ), i = 1..n} e {(xi , yi ), i = 1..n}
previamente estabelecidos. Então
x Xwa + x Ywb + x Zwc + x d − y Xwe − y Ywf − y Zwg − y h = 0
1 1 1 1 1 1 1 1
x2 X1w a + x2 Y1w b + x2 Z1w c + x2 d − y2 X1w e − y2 Y1w f − y2 Z1w g − y2 h = 0
2 2 2 2 2 2
.. .. .. .. .. .. .. .. ..
. . . . . . . . .
xn Xnw a + xn Ynw b + xn Znw c + xn d − yn Xnw e − yn Ynw f − yn Znw g − yn h = 0
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 158 / 216
Calibração de câmeras
x Xw x Yw x Zw x − y1 X1w − y1 Y1w − y1 Z1w − y1
a 0
1 1 1 1 1 1 1
b
x2 X2w x2 Y2w x2 Z2w x2 − y2 X2w − y2 Y2w − y2 Z2w − y2 c 0
d
=
. .. .. .. .. .. .. .. e .
.. . . . . . . . f ..
g
xn Xnw xn Ynw xn Znw xn − yn Xnw − yn Ynw − yn Znw − yn h 0
v = (a, b, c, d, e, f, g, h)
A matriz A tem posto 7. Então, se n ≥ 7, o sistema homogêneo Av = 0 tem solução não trivial.
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 159 / 216
Calibração de câmeras
x Xw x Yw x Zw x − y1 X1w − y1 Y1w − y1 Z1w − y1
a 0
1 1 1 1 1 1 1
b
x2 X2w x2 Y2w x2 Z2w x2 − y2 X2w − y2 Y2w − y2 Z2w − y2 c 0
d
=
. .. .. .. .. .. .. .. e .
.. . . . . . . . f ..
g
xn Xnw xn Ynw xn Znw xn − yn Xnw − yn Ynw − yn Znw − yn h 0
Para construir o sistema Av = 0, acima, a partir de n pares de pontos {(Xiw , Yiw , Ziw ), i = 1..n} e
{(xi , yi ), i = 1..n}, é importante observar:
Então obtemos uma solução v = γv = γ(r21 , r22 , r23 , Ty , αr11 , αr12 , αr13 , αTx )
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 160 / 216
Calibração de câmeras
De v = (γr21 , γr22 , γr23 , γTy , γαr11 , γαr12 , γαr13 , γαTx ), temos
2 + r 2 + r 2 = 1, temos que
Sabendo que r21 22 23
� �
v 21 + v 22 + v 23 = 2 + r 2 + r 2 ) = |γ|
γ 2 (r21 22 23
2 + r 2 + r 2 = 1, então
Da mesma forma, r11 12 13
� �
v 25 + v 26 + v 27 = 2 + r 2 + r 2 ) = |γ|α
γ 2 α2 (r11 12 13
Então, temos
� 1 � 1
(r21 , r22 , r23 ) = γ
(v 1 , v 2 , v 3 ) Tx = v
γ 4
e
1 1
(r11 , r12 , r13 ) = (v , v 6 , v 7 )
γα 5
Ty = v
αγ 8
� �
r11 r12 r13
De (r31 , r32 , r32 ) = (r11 , r12 , r13 )∧ (r21 , r22 , r23 ), temos R = r21 r22 r23
r31 r32 r33
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 161 / 216
Calibração de câmeras
� �
r11 r12 r13
Devido a possível ruído, R = r21 r22 r23 obtido pode não ser ortonormal.
r31 r32 r33
Como conhecemos |γ|, não sabemos o sinal de γ. Pra isso, observemos que x na
imagem e X c deve ter sinal contrário, ou seja x.X c < 0
Então, se x.X c = x.(r11 X w + r12 Y w + r13 Z w + Tx ) > 0, deve-se trocar os sinais de (Tx , Ty )
e das linhas R1 e R2 de R.
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 162 / 216
Calibração de câmeras
Xic
Para obter Tz e fx , observamos que, de xi = −fx ⇒ xi Zic = −fx Xic , obtemos para todo
Zic
i = 1 . . . n, que
xi (r31 Xiw + r32 Yiw + r33 Ziw + Tz ) = −fx (r11 Xiw + r 12Yiw + r13 Ziw + Tx )
xi Tz + fx (r11 Xiw + r 12Yiw + r13 Ziw + Tx ) = −xi r31 Xiw − xi r32 Yiw − xi r33 Ziw
�
mi = r11 Xiw + r 12Yiw + r13 Ziw + Tx
Chamando
pi = −xi r31 Xiw − xi r32 Yiw − xi r33 Ziw
x T +f m =p x m p
1 z x 1 1 1 1 � � 1
x2 Tz + fx m2 = p2 x2 m2 Tz p2
temos o sistema
= .
.. .. .. ⇒ .
. .. .
. . . . . fx .
xn Tz + fx mn = pn xn mn pn
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 163 / 216
Calibração de câmeras
fx fx
Finalmente, de α = , temos fy = .
fy α
Com o centro da imagem (ox , oy ) conhecidos, temos todas as informações
para recuperar Mext e Mint
r11 r12 r13 −R1T T
−f
sx 0 ox
Mext = r21 r22 r23 −R2T T e Mint = 0 −f
sy o y .
r31 r32 r33 −R3T T 0 0 1
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 164 / 216
Visão estéreo
Usando duas ou mais câmeras de perspectiva, pode-se obter imagens da mesma
cena de diferentes pontos de vista.
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 165 / 216
Visão estéreo
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 167 / 216
Visão estéreo
Do ponto de vista computacional, a visão estéreo deve resolver dois problemas:
Correspondência: A que ponto, visto pela câmera da esquerda, corresponde cada ponto
visto pela câmera da direita?
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 168 / 216
Visão estéreo
O problema de Correspondência:
Pode-se buscar por elementos conhecidos nas imagens, mas isso requer
conhecimento prévio.
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 169 / 216
Visão estéreo
A estratégia mais conveniente para correspondência é definir janelas de
busca de tamanho N × N pixels.
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 171 / 216
Visão estéreo
Dadas uma janela esquerda L e uma janela direita R para serem comparadas, alguma métrica
deve ser adotada:
�
d(L, R) = |li − ri |
d(L, R) = max |li − ri |
�
d(L, R) = (li − ri )2
�
d(L, R) = − li .ri
Entre os possíveis correspondentes da direita, será escolhido aquele que minimiza o valor de
d(L, R).
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 172 / 216
Visão estéreo
Retorna Disp
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 173 / 216
Visão estéreo
Um código Matlab simples para cálculo da disparidade.
» Disp=disparidade(’left.png’,’right.png’,3);
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 174 / 216
Visão estéreo
» Disp=disparidade(’left.png’,’right.png’,3);
Professor: Antônio Wilson Vieira VISÃO COMPUTACIONAL - Unimontes Março, 2019 175 / 216