I am learning structure from motion by myself and have read many materials.
即使我有相机的内在参数,也会获得度量重建并生成缩放模型。从一个材料度量 3D 重建意味着两个捕获之间的距离是未知的。为什么我不能使用点对应和内在参数得到距离?如果我使用两张以上的图像,我可以得到带有物理测量的模型吗?
提前致谢。
问候慢跑
I am learning structure from motion by myself and have read many materials.
即使我有相机的内在参数,也会获得度量重建并生成缩放模型。从一个材料度量 3D 重建意味着两个捕获之间的距离是未知的。为什么我不能使用点对应和内在参数得到距离?如果我使用两张以上的图像,我可以得到带有物理测量的模型吗?
提前致谢。
问候慢跑
如果相机和场景都进行了相应的缩放,则在捕获的图像中将无法辨别变化。这就是 SfM 中比例因子未知的原因。为了获得它,通常需要对场景或相机运动进行一些物理测量。
如果你不相信,只需做数学:
让(P1 p1)
和(P2 p2)
是两个摄像机 1 和 2 的 3x4 投影矩阵(P1
是一个 3x3 矩阵和p1
一个列向量),M
场景中的一个点,以及m1
摄像机1 和 2 中m2
的相应投影M
。我们有 (~=
表示“与",因为透视分割):
m1 ~= P1 M + p1
m2 ~= P2 M + p2
介绍相机中心C1 = -P1^-1 p1
,C2 = -P2^-1 p2
以及相机之间的转换T = C2 - C1
,可以这样写:
m1 ~= P1 (M - C1)
m2 ~= P2 (M - C2) = P2 (M - (C1 + T))
现在将整个场景缩放一个因子s
并将其原点转换为o
: M' = s M + o
。介绍两个相机 1' 和 2',它们是 1 和 2 的版本,具有反比例因子,即P1' = 1/s P1
和 P2' = 1/s P2
。缩放和偏移它们的中心C1' = s C1 + o
和C2' = s (C1 + T) + o
。两台相机之间的相对平移现在是:C2' - C1' = s T
. M'
在 1' 和 2'的投影是:
m1' ~= P1' (M' - C1') = 1/s P1 (s M + o - s C1 - o) = P1 (M - C1)
~= m1
m2' ~= P2' (M' - C2') = 1/s P2 (s M + o - s (C1 + T) - o) = P2 (M - C2)
~= m2
因此,最后,您会得到相同的投影(您在 SfM 问题中的输入),但场景具有不同的比例和原点以及相应的缩放和平移相机。这可以推广到两个以上的相机。
如果您只有图像,而没有关于场景中对象物理尺寸的其他信息,则无法仅从图像中恢复这些尺寸 - 最多只能将场景重建到未知的比例因子。这意味着,例如,您可能能够分辨出两条线彼此垂直。您可能还能够计算矩形瓷砖的宽/高比,但无法分辨出高度和宽度的各个值是什么。
例如,如果将场景中的所有对象缩小一个因子 S,然后将其移近相机相同的量,您可以说服自己确实是这种情况。这就是允许使用微型模型(如这些)在电影中制作一些老式特殊效果的原因,并且无论相机是固定还是相对于场景移动,它都可以工作 - 即它也适用于多图像情况。