摄像机矩阵 P P P的计算
代数误差
假定 3 D 3D 3D点 X i X_i Xi和 2 D 2D 2D图像点 x i x_i xi之间的对应关系已经给定,与 x i = H x i ′ x_i=Hx_i^\prime xi=Hxi′类似,由 x i = P X i x_i = P X_i xi=PXi可以推导出一个 2 n × 12 2n \times 12 2n×12的矩阵 A A A,投影矩阵通过 A p = 0 A\pmb p = 0 Ap=0算出,其中 p \pmb p p是矩阵 P P P的元素组成的向量。在面对超定解的时候,在某种归一化配置下最小化残差 ∥ A p ∥ \parallel Ap \parallel ∥Ap∥被称为代数误差
几何误差
图像点有误差
x
i
\pmb x_i
xi是被测量的点,
x
^
i
\hat {\pmb x}_i
x^i是
X
i
\pmb X_i
Xi在
P
P
P下的图像点
P
X
i
P\pmb X_i
PXi。假定世界点
X
i
X_i
Xi比图像测量点要准确,几何误差为
∑
i
d
(
x
i
,
x
^
i
)
2
=
∑
i
d
(
x
i
,
P
X
i
)
2
\sum_i d(\pmb x_i,\hat {\pmb x}_i)^2 = \sum_i d(\pmb x_i,P {\pmb X}_i)^2
i∑d(xi,x^i)2=i∑d(xi,PXi)2
世界点有误差
仅考虑世界点有误差,
X
^
i
\hat {\pmb X}_i
X^i是空间最接近
X
i
\pmb X_i
Xi并通过
x
i
=
P
X
^
i
\pmb x_i = P \hat {\pmb X}_i
xi=PX^i准确映射到
x
i
\pmb x_i
xi的点,几何误差为
∑
i
d
(
X
i
,
X
i
^
)
2
\sum_{i} d(\pmb X_i,\hat {\pmb X_i})^2
i∑d(Xi,Xi^)2
一般情况
世界和图像点的误差都考虑,几何误差为
∑
i
=
1
d
M
a
h
(
x
i
,
P
X
^
i
)
2
+
d
M
a
h
(
X
i
,
X
^
i
)
2
\sum_{i=1} d_{Mah}(\pmb x_i,P \hat{\pmb X}_i)^2 + d_{Mah}(\pmb X_i,\hat{\pmb X}_i)^2
i=1∑dMah(xi,PX^i)2+dMah(Xi,X^i)2
代数误差的几何解释
假设
D
L
T
DLT
DLT算法中所有点
X
i
\pmb X_i
Xi已经归一化使得
X
i
=
(
X
i
,
Y
i
,
Z
i
,
1
)
T
\pmb X_i = (X_i,Y_i,Z_i,1)^T
Xi=(Xi,Yi,Zi,1)T且
x
i
=
(
x
i
,
y
i
,
1
)
T
\pmb x_i=(x_i,y_i,1)^T
xi=(xi,yi,1)T。
D
L
T
DLT
DLT算法要最小化的量是
∑
i
(
w
^
i
d
(
x
i
,
x
^
i
)
)
2
\sum_i (\hat w_id(\pmb x_i,\hat{\pmb x}_i))^2
∑i(w^id(xi,x^i))2,其中
w
^
i
(
x
^
i
,
y
^
i
,
1
)
T
=
P
X
i
\hat w_i(\hat x_i,\hat y_i,1)^T = P \pmb X_i
w^i(x^i,y^i,1)T=PXi,根据图像点的深度公式
w
^
i
=
±
∥
p
^
3
∥
d
e
p
t
h
(
X
;
P
)
\hat w_i = \pm \parallel \hat{\pmb p}^3 \parallel depth(\pmb X;P)
w^i=±∥p^3∥depth(X;P)
只要对摄像机归一化使得
∥
p
^
3
∥
2
=
1
\parallel \hat{\pmb p}^3 \parallel^2 = 1
∥p^3∥2=1,
w
^
i
\hat w_i
w^i就可以解释称点
X
i
\pmb X_i
Xi沿主射线方向到摄像机的深度。由图可知,
w
^
i
d
(
x
i
,
x
^
i
)
\hat w_id(\pmb x_i,\hat{\pmb x}_i)
w^id(xi,x^i)正比于
f
d
(
X
i
′
,
X
i
)
fd(\pmb X_i^\prime,\pmb X_i)
fd(Xi′,Xi),其中
f
f
f是焦距,
X
i
′
\pmb X_i^\prime
Xi′是被映射到
x
i
\pmb x_i
xi的点且在过
X
i
\pmb X_i
Xi并平行于摄像机主平面的平面上。因此最小化的代数误差等价于
f
∑
i
d
(
X
i
′
,
X
i
)
2
f\sum_id(\pmb X_i^\prime,\pmb X_i)^2
f∑id(Xi′,Xi)2
距离 d ( X i , X i ′ ) d(\pmb X_i,\pmb X_i^\prime) d(Xi,Xi′)是需要用于所测量 3 D 3D 3D点的校正,使得其与所测量图像点 x i x_i xi准确对应,限制条件是校正是在垂直于摄像机主轴的方向上进行的。由于这个限制, X i ′ \pmb X_i^\prime Xi′不同于映射到 x i \pmb x_i xi并与 X i \pmb X_i Xi最近的点 X ^ i \hat{\pmb X}_i X^i。但当 X i \pmb X_i Xi离主射线不太远的时候可以近似
仿射摄像机的估计
上面有关摄影摄像机的推导可以直接使用。仿射摄像机是投影矩阵的最后一行为 ( 0 , 0 , 0 , 1 ) (0,0,0,1) (0,0,0,1)的摄像机
受限摄像机的估计
有时需要再满足摄像机参数的某些限制条件下寻找最适配的摄像机矩阵
P
P
P,如
s
=
0
,
α
x
=
α
y
s=0,\alpha_x=\alpha_y
s=0,αx=αy。对应的代价函数可改为
∑
i
d
(
x
i
,
P
X
i
)
2
+
w
s
2
+
w
(
α
x
−
α
y
)
2
\sum_i d(\pmb x_i,P \pmb X_i)^2+ws^2+w(\alpha_x-\alpha_y)^2
i∑d(xi,PXi)2+ws2+w(αx−αy)2
这种软约束可能会有更好的效果
径向失真
理论上线性模型是成像过程的精确模型,但实际上会出现直接被映射为非直线。径向失真发生在世界向图像平面的初始投影中,其后标定矩阵反应图像中仿射坐标的一种选取,它把图像平面的物理位置翻译成像素坐标
将
(
x
~
,
y
~
)
T
(\widetilde x ,\widetilde y)^T
(x
,y
)T记为在理想针孔投影下的点
(
x
~
,
y
~
,
1
)
T
=
[
I
∣
0
]
X
c
a
m
(\widetilde x,\widetilde y ,1)^T = [I \mid 0] \pmb X_{cam}
(x
,y
,1)T=[I∣0]Xcam
径向失真的模型是
[
x
d
y
d
]
=
L
(
r
~
)
[
x
~
y
~
]
\begin{bmatrix} x_d \\ y_d \end{bmatrix} = L(\widetilde r) \begin{bmatrix} \widetilde x \\ \widetilde y \end{bmatrix}
[xdyd]=L(r
)[x
y
]
- ( x ~ , y ~ ) (\widetilde x,\widetilde y) (x ,y )是理想图像位置
- ( x d , y d ) (x_d,y_d) (xd,yd)是径向失真后的图像位置
- r ~ \widetilde r r 是到径向失真中心的径向距离$\sqrt{\widetilde x^2 + \widetilde y^2 } $
- L ( r ~ ) L(\widetilde r) L(r )是一个失真因子,它仅仅是半径 r ~ \widetilde r r 的函数
失真校正
x ^ = x c + L ( r ) ( x − x c ) y ^ = y c + L ( r ) ( y − y c ) \hat x = x_c+L(r)(x-x_c) \\ \hat y = y_c+L(r)(y-y_c) \\ x^=xc+L(r)(x−xc)y^=yc+L(r)(y−yc)
其中, ( x , y ) (x,y) (x,y)是测量的坐标, ( x ^ , y ^ ) (\hat x,\hat y) (x^,y^)是校正后的坐标, ( x c , y c ) (x_c,y_c) (xc,yc)是径向失真的中心, r 2 = ( x − x c ) 2 + ( y − y c ) 2 r^2 = (x-x_c)^2+(y-y_c)^2 r2=(x−xc)2+(y−yc)2
失真函数和中心的选择
通过将主点作为径向中心,虽然它们并不一定重合
失真函数仅当 r > 0 r>0 r>0有定义且 L ( 0 ) = 1 L(0)=1 L(0)=1。通过对其泰勒展开式 L ( r ) = 1 + k 1 r + k 2 r 2 + k 3 r 3 L(r) = 1+k_1 r +k_2r^2 +k_3r^3 L(r)=1+k1r+k2r2+k3r3来近似
径向校正系数 { k 1 , k 2 , k 3 , x c , y c } \{k_1,k_2,k_3,x_c,y_c\} {k1,k2,k3,xc,yc}被看成是摄像机内标定的一部分