10.5 使用真实控制点的直接重建
来源:Richard Hartley 与 Andrew Zisserman 的 Multiple View Geometry in Computer Vision,第 10 章 3D Reconstruction of Cameras and Structure,10.5 小节 Direct reconstruction - using ground truth。
10.4 分层重建 的路线是:
projective -> affine -> metric
这一节讲另一条更直接的路线:如果场景中有若干个已知三维坐标的点,就可以直接从射影重建跳到度量重建。
这些已知三维坐标的点称为 ground control points,中文可理解为“地面控制点”或“真实控制点”。
本节核心
假设已经从两张未标定图像得到一个射影重建:
并且场景中有一组真实欧氏坐标已知的控制点:
这些控制点在两张图像中也能找到对应点:
目标是求一个三维单应矩阵 ,把射影重建坐标系中的点变换到真实欧氏坐标系:
一旦 求出来,就能把整个射影重建升级到度量重建:
为什么控制点能直接确定 H
10.3 已经说明,真实欧氏重建和射影重建之间只差一个非奇异 矩阵:
因此,只要有足够多的点同时满足:
- 在射影重建中坐标为
- 在真实欧氏世界中坐标为
就可以直接估计这个 。
每个三维点对应关系:
对 提供 3 个线性独立约束。
而三维射影变换 是 齐次矩阵,去掉整体尺度后有:
个自由度。
所以理论上线性求解至少需要:
个控制点。
控制点不能退化。例如不能有 4 个控制点共面,否则约束不足以稳定确定完整三维射影变换。
方法一:先三角化控制点,再求 H
直接法的第一种实现方式是:
- 先由普通匹配点估计基础矩阵 。
- 由 构造射影相机 。
- 对控制点的图像对应:
三角化出它们在射影重建中的坐标:
- 使用真实坐标和射影坐标之间的对应:
求出 。
- 用 变换所有相机和点。
这个方法的核心是先建立两个三维坐标系之间的对应关系:
射影重建坐标 X_i -> 真实欧氏坐标 X_Ei
然后用三维单应变换把整个重建拉回真实坐标系。
方法二:绕过 Xi,直接从图像测量求 H
也可以不显式计算控制点在射影重建中的三维坐标 。
由于真实控制点 已知,且射影相机 已知,可以直接写:
这里未知量是:
这和相机 resection 中的 DLT 思路类似:已知三维点和图像投影,建立关于未知矩阵元素的线性方程。
单张图中的一个控制点投影关系提供 2 个线性独立约束。
如果同一个控制点在第二张图中也可见,则还能写:
但要注意:同一控制点在两张图中给出的 4 个方程并不全独立,因为两幅图像点之间还满足对极共面约束。
对于同一个控制点,如果两张图都可见,最终只有 3 个独立约束。
控制点不一定要两张图都可见
一个实用细节是:控制点不一定必须同时出现在两张图中。
如果某个控制点只在第一张图中可见,也能提供:
如果只在第二张图中可见,也能提供:
只要总约束足够,就可以估计 。
这对实际工程很有用,因为真实控制点可能被遮挡,或者只出现在部分视图中。
完整流程
使用 ground truth 的直接重建可以概括为:
图像匹配点
-> 估计 F
-> 得到射影相机 P, P'
-> 用真实控制点估计 H
-> P_M = P H^{-1}
-> P'_M = P' H^{-1}
-> X_Mi = H X_i
其中:
- 是度量相机。
- 是度量重建点。
- 把射影坐标系映射到真实欧氏坐标系。
和分层重建的区别
10.4 的分层法依赖几何结构:
- 平行线。
- 消失点。
- 无穷远平面。
- 绝对二次曲线。
- 相机内参约束。
10.5 的直接法依赖真实三维控制点:
- 已知坐标的标定点。
- 已知尺寸和位置的人工标志。
- 测量过的建筑角点。
- 来自其他传感器或地图的三维点。
两者的目标相同,都是把射影重建升级到度量重建,但使用的信息不同。
| 方法 | 额外信息 | 关键未知量 | 特点 |
|---|---|---|---|
| 分层法 | 几何约束、内参约束 | 不一定需要真实三维坐标 | |
| 直接法 | 已知三维控制点 | 概念直接,依赖控制点质量 |
工程理解
从工程角度看,10.5 的方法很像把 SfM 得到的任意坐标系“对齐”到真实世界坐标系。
例如:
- 先用图像匹配做出一个任意尺度、任意坐标系下的重建。
- 找到若干个真实坐标已知的控制点。
- 求一个三维变换,把重建坐标系对齐到真实坐标系。
区别在于,这里未标定两视图的初始结果是射影重建,所以需要求的是三维射影变换 ,而不是简单的相似变换。
本节记忆点
- 如果有 ground control points,可以从 projective reconstruction 直接升级到 metric reconstruction。
- 控制点满足:
- 三维射影变换 有 15 个自由度。
- 每个三维点对应提供 3 个独立约束。
- 至少需要 5 个控制点,且不能出现严重退化。
- 求出 后,用:
得到度量重建。
- 控制点不必全部同时出现在两张图中,只要图像测量提供的总约束足够。
后续问题
进入 10.6 时可以把第 10 章的路线统一起来:
- 没有额外信息时,为什么只能得到 projective reconstruction?
- 有 时,为什么能得到 affine reconstruction?
- 有 或 时,为什么能得到 metric reconstruction?
- 有控制点时,为什么可以直接估计 ?