摄像机和结构的3D重构
重构的多义性
若没有场景在某个
3
D
3D
3D坐标系下的位置信息,一般不可能从一对视图中重构该场景的绝对位置和朝向,甚至不知道场景整体的尺度。仅有图像来确定场景要相差一个相似变换
H
S
H_S
HS
H
S
=
[
R
t
0
T
λ
]
H_S = \begin{bmatrix} R & t \\ 0^T & \lambda \end{bmatrix}
HS=[R0Ttλ]
以
H
S
X
i
H_SX_i
HSXi代替
X
i
X_i
Xi,分别以
P
H
S
−
1
,
P
′
H
S
−
1
PH_S^{-1},P^\prime H_S^{-1}
PHS−1,P′HS−1代替摄像机
P
,
P
′
P,P^\prime
P,P′不会改变被观察的图像点,本质是不会影响标定矩阵
K
K
K
射影重构定理
设 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xi↔xi′是两幅图像之间的一组点对应,而基本矩阵 F F F由条件 x i ′ F x i = 0 x^\prime_i F x_i = 0 xi′Fxi=0唯一定却。令 ( P 1 , P 1 ′ , { X 1 i } ) , ( P 2 , P 2 ′ , { X 2 i } ) (P_1,P_1^\prime,\{X_{1i}\}),(P_2,P_2^\prime,\{X_{2i}\}) (P1,P1′,{X1i}),(P2,P2′,{X2i})分别为对应 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xi↔xi′的两个重构,则存在一个非奇异矩阵 H H H使得 P 2 = P 1 H − 1 , P 2 ′ = P 1 ′ H − 1 , X 2 i = H X 1 i P_2=P_1H^{-1},P_2^\prime =P_1\prime H^{-1},X_{2i}= HX_{1i} P2=P1H−1,P2′=P1′H−1,X2i=HX1i
重构算法
目标
给定两幅未标定的图像,计算摄像机和场景结构的一个度量重构 ( P M , P M ′ , { X M i } ) (P_M,P_M^\prime, \{X_{Mi}\}) (PM,PM′,{XMi}),即与真实摄像机和场景结构仅相差一个相似变换的重构
算法
-
计算一个摄影重构 ( P , P ′ , { X i } ) (P,P^\prime,\{X_i\}) (P,P′,{Xi})
- 计算基本矩阵:由两幅图像之间的点对应 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xi↔xi′
- 摄像机恢复:由基本矩阵计算摄像机矩阵 P , P ′ P,P^\prime P,P′
- 三角测量:对每组点对应 x i ↔ x i ′ x_i \leftrightarrow x_i^\prime xi↔xi′计算投影到这两个图像点的空间点 X i X_i Xi
-
把射影重构矫正到度量重构
-
利用直接方法:由已知其欧氏位置的 5 5 5个或更多的地面控制点 X E i X_{Ei} XEi来计算满足 X E i = H X i X_{Ei}=HX_i XEi=HXi的单应 H H H,则度量重构是
P M = P H − 1 , P M ′ = P ′ H − 1 , X M i = H X i P_M = PH^{-1},P_M^\prime = P^\prime H^{-1},X_{Mi} = HX_i PM=PH−1,PM′=P′H−1,XMi=HXi -
或用分层方法
-
仿射重构:计算无穷远平面 π ∞ \pi_\infty π∞【TODO 补充计算方法,10.4】,然后用单应 H H H把射影重构提升到仿射重构
H = [ I ∣ 0 π ∞ T ] H=\begin{bmatrix} I \mid 0 \\ \pi_\infty^T \end{bmatrix} H=[I∣0π∞T] -
度量重构:计算绝对二次曲线的像 ω \omega ω【TODO 补充计算方法】,然后用单应 H H H把仿射重构提升到度量重构,其中 A A T = ( M T ω M ) − 1 AA^T=(M^T\omega M)^{-1} AAT=(MTωM)−1做 C h o l e s k y Cholesky Cholesky分解得到, M M M是仿射重构中摄像机矩阵左上角 3 × 3 3 \times 3 3×3矩阵
H = [ A − 1 1 ] H = \begin{bmatrix} A^{-1} & \\ & 1 \end{bmatrix} H=[A−11]
-
-