摄像机和结构的3D重构
重构的任务是求摄像机矩阵
P
P
P和
P
′
P'
P′,以及3D中的点
X
i
X_i
Xi,使得对所有
i
i
i,有:
x
i
=
P
X
i
x
i
′
=
P
′
X
i
x_i=PX_i\;\;\;\;\;\;\;x'_i=P'X_i
xi=PXixi′=P′Xi
1.重构方法概述
由两视图重构的一种方法:
- (1)由点对应计算基本矩阵。
- (2)由基本矩阵计算摄像机矩阵。
- (3)针对每组对应点 x i ↔ x i ′ x_i\leftrightarrow x'_i xi↔xi′,计算空间中映射到这两个图像点的点。
2.重构的多义性
若没有最物在某个3D 坐标系下位置的信息,一般不可能从一对视图(或事实上从任意数目的视图)重构该景物的绝对位置和朝向。仅由图像来确定景物就要相差一个相似变换(旋转、平移和缩放)。
射影多义性
如果既不知道任何一个摄像机的标定,也不知道一个摄像机与另一个的相对位置,那么重构的多义性由一个任意射影变换表示。
- (1)如果两个摄像机之间有平移运动,但标定不变,则可在相差一个仿射变换下重构。
- (2)如果两个摄像机除了焦距外都已标定,则仍然可在相差一个相似变换下重构。
3.射影重构定理
如果两幅视图的一个点对应集唯一地确定了基本矩阵, 则景物和摄像机可以仅由这些对应重构,而且由这些对应产生的任何两个重构都是射影等价的。
定理1(射影重构定理) : 假定
x
i
↔
x
i
′
x_i\leftrightarrow x'_i
xi↔xi′是两幅图像点之间对应的集合而且基本矩阵
F
F
F由条件
x
i
′
T
F
x
i
=
0
x_i^{'T}Fx_i=0
xi′TFxi=0( 对所有
i
i
i成立)唯一地确定。令
(
P
1
,
P
1
′
,
{
X
1
i
}
)
(P_1,P'_1,\left \{ X_{1i} \right \})
(P1,P1′,{X1i}) 和
(
P
2
,
P
2
′
,
{
X
2
i
}
)
(P_2,P'_2,\left \{ X_{2i} \right \})
(P2,P2′,{X2i})为对应
x
i
↔
x
i
′
x_i\leftrightarrow x'_i
xi↔xi′的两个重构,则存在一个非奇异矩阵
H
H
H使得
P
2
=
P
1
H
−
1
,
P
2
′
=
P
1
′
H
−
1
P_2=P_1H^{-1},P'_2=P'_1H^{-1}
P2=P1H−1,P2′=P1′H−1并且除了使得
F
x
i
=
F
T
x
i
′
=
0
Fx_i=F^Tx'_i=0
Fxi=FTxi′=0的那些
t
t
t外,对其余每个
i
i
i都有
X
2
i
=
H
X
1
i
X_{2i}=HX_{1i}
X2i=HX1i。
4.分层重构
4.1仿射重构
仿射重构的本质是用某些方法定位无穷远平面,因为定位无穷远平面等价于仿射重构。寻找使
π
π
π映射到
(
0
,
0
,
0
,
1
)
T
(0,0,0,1 )^T
(0,0,0,1)T的射影变换。即求
H
H
H使得
H
−
T
π
=
(
0
,
0
,
0
,
1
)
T
H^{-T}\pi =(0,0,0,1)^T
H−Tπ=(0,0,0,1)T,可以把
H
−
T
H^{-T}
H−T作为Houscholder 矩阵来计算。
4.1.1平移运动
摄像机作纯平移运动时,可以由两幅视图实现仿射重构。无穷远平面上一点
X
X
X在由摄像机平移所产生的两幅图像上的像是同一点。给定一个射影重构,可以重构对应予匹配
x
i
↔
x
i
′
x_i\leftrightarrow x'_i
xi↔xi′的点
X
i
X_i
Xi。点
X
i
X_i
Xi将在无穷远平面上。从三组这样的点我们可以得到在无穷远平面上的三个点一一足够唯一地把它确定。
结论1: 假设摄像机的运动是没有旋转且内参做保持不变的一个纯平移运动,则
F
=
[
e
]
×
=
[
e
′
]
×
F=[e]_\times=[e']_\times
F=[e]×=[e′]× , 并且作为仿射重构可选的两个摄像机为
P
=
[
I
∣
0
]
P = [I|0 ]
P=[I∣0]和
P
′
=
[
I
∣
e
′
]
P' = [I|e' ]
P′=[I∣e′]。
景物约束
景物约束或条件也可以用来获得仿射重构,只要能够辨认在无穷远平面上的三个点,该平面就可以辨认,并且该重构可以变换到仿射重构。
平行直线
最明显的条件是知道某些3D直线实际是平行的。空间两条平行直线的交点给出无穷远平面上的一个点,该交点的图像是这对平行线的消影点,而且是两条像直线的交点。假设在景物中能够确定三对平行直线。每对相交于无穷远平而上的一点,如果每对有不同的方向,则三点将不同。因为三点确定一张平面,故这个信息足够确定平面
π
π
π 。
直线上的距离比率
运用景物中仿射长度比率不变的知识计算消影点。
无穷单应
结论2: 如果一个仿射重构已得到并且其中的摄像机矩阵是
P
=
[
I
∣
0
]
P = [ I |0 ]
P=[I∣0]和
P
′
=
[
M
′
∣
e
′
]
P'= [M' | e' ]
P′=[M′∣e′], 则无穷单应是
H
∞
=
M
′
H_\infty = M'
H∞=M′。反过来, 如果已得到无穷单应
H
∞
H_\infty
H∞, 则仿射重构的摄像机可以取为
P
=
[
I
∣
0
]
P= [I|0]
P=[I∣0]和
P
′
=
[
H
∞
∣
e
′
]
P' = [H_\infty|e' ]
P′=[H∞∣e′]。
其中一个是仿射摄像机的情形
结论3: 若
(
P
,
P
′
,
{
X
i
}
)
(P,P',\left \{ X_{i} \right \})
(P,P′,{Xi})是从一点对应集得到的射影重构且
P
=
[
I
∣
0
]
P = [ I |0 ]
P=[I∣0]。 若己知
P
P
P事实上是一个仿射摄像机, 则可以通过交换
P
P
P和
P
′
P'
P′的最后两个列和每一个
X
i
X_i
Xi的最后两个坐标而得到一个仿射重构。
4.2度量重构
仿射重构的关键是辨认无穷远平面,而度最重构的关键是辨认绝对二次曲线。
结论4: 若已知绝对二次曲线在某幅图像中的像是
ω
ω
ω, 且已知仿射重构中的摄像机矩阵是
P
=
[
M
∣
m
]
P = [M |m ]
P=[M∣m], 则用形如:
H
=
(
A
−
1
1
)
H=\begin{pmatrix} A^{-1} & \\ & 1 \end{pmatrix}
H=(A−11)
的3D变换,可以把仿射重构变换到度量重构, 其中 A A A由方程 A A T = ( M T ω M ) − 1 AA^T=(M^TωM)^{-1} AAT=(MTωM)−1的Cholesky分解得到。
补充: Cholesky 分解是把一个对称正定的矩阵表示成一个下三角矩阵 L L L和其转置的乘积的分解。它要求矩阵的所有特征值必须大于零,故分解的下三角的对角元也是大于零的。Cholesky分解法又称平方根法,是当 A A A为实对称正定矩阵时, L U LU LU三角分解法的变形。
景物正交性的约束
景物的正交直线的一对消影点
v
1
v_1
v1,
v
2
v_2
v2对
ω
\omega
ω提供一个线性约束:
v
1
T
ω
v
2
=
0
v_1^T\omega v_2=0
v1Tωv2=0
类似地,来自一个方向的消影点
v
v
v和与之垂直的平面的消影直线
l
l
l对
ω
ω
ω提供了两个约束:
l
=
ω
v
l=ωv
l=ωv
一个常用的例子是垂直方向的消影点和水平地平面的消影直线。
已知内参数的约束
如果摄像机矩阵的标定矩阵等于
K
K
K,则绝对二次曲线的像是
ω
=
K
−
T
K
−
1
ω = K^{-T} K^{-1}
ω=K−TK−1。因此包括在
K
K
K中的摄像机内参数信息可以用来约束或确定
ω
ω
ω的元素。在已知
K
K
K的扭曲因子为零(
s
=
0
s = 0
s=0) 时有:
ω
12
=
ω
21
=
0
\omega _{12}=\omega _{21}=0
ω12=ω21=0
若像素还是正方形(零扭曲参数且
α
x
=
α
y
\alpha _x=\alpha _y
αx=αy),则:
ω
11
=
ω
22
\omega _{11}=\omega _{22}
ω11=ω22
同一摄像机在多幅图像中的约束
绝对二次曲线的一个性质是它在图像上的投影只依赖于摄像机的标定矩阵,而不依赖于摄像机的位置和方向。当两个摄像机具有相同的标定矩阵时(通常意味着同一摄像机在不同位置拍摄的两幅图像)则有 ω = ω ′ ω = ω' ω=ω′,即绝对二次曲线在两幅图像上的像是相同的,给定足够多的图像,可以利用这个性质从仿射重构得到度量重构。
利用
ω
ω
ω直接度量重构
最明显的方法是利用IAC(绝对二次曲线)来计算每个摄像机的标定,然后再进行己知标定下的重构。另一个更概念性的方法是运用IAC的信息直接确定无穷远平面和绝对二次曲线。
###5.直接重构一一利用地面知识
在射影重构下,控制点
{
X
i
}
\left \{ X_i \right \}
{Xi}的3D位置可以由它们图像对应点
x
i
↔
x
i
′
x_i\leftrightarrow x'_i
xi↔xi′来计算。因为该射影重构通过一个单应联系于真正的重构:
X
E
i
=
H
X
i
,
i
=
1
,
.
.
.
,
n
X_{Ei}=HX_i,\;\;i=1,...,n
XEi=HXi,i=1,...,n
每组点对应提供关于 H H H元素的三个独立线性方程。因 H H H有15 个自由度,故若提供 n ⩾ 5 n\geqslant 5 n⩾5组(且没有四个控制点是共面的)点对应,便可以得到一个线性解。
另一种方法可以不计算
X
i
X_i
Xi而通过把已知的地面控制点直接与图像的度量相联系的途径来计算
H
H
H.。因此类似于计算摄像机矩阵的DLT 算法:
x
i
=
P
H
−
1
X
E
i
x_i=PH^{-1}X_{Ei}
xi=PH−1XEi