1

我正在尝试了解 3D 重建的基本原理,并选择使用OpenMVG但是,我已经看到证据表明我所询问的以下概念适用于所有/大多数SfM/MVS 工具,而不仅仅是 OpenMVG。因此,我怀疑任何计算机视觉工程师都应该能够回答这些问题,即使他们没有直接的 OpenMVG 经验。


我试图完全理解相机内在参数,或者它们似乎被称为“相机内在参数”或“内在参数”。根据 OpenMVG 的文档,相机内部函数取决于用于拍摄照片的相机类型(例如,相机型号),其中,OpenMVG 支持五种型号:

  • 针孔:3个内在参数(焦点、主点x、主点y)
  • 针孔径向 1:4 个内在参数(焦点、主点 x、主点 y、一个径向畸变因子)
  • 针孔径向 3:6 个参数(焦点、主点 x、主点 y、3 个径向畸变因子)
  • 针孔棕色:8 个参数(焦点、主点 x、主点 y、5 个失真因子(3 个径向+2 个切向))
  • 带鱼眼失真的针孔:7 个参数(焦点、主点 x、主点 y、4 个失真因子)

这一切都在他们的wiki 页面上进行了解释,该页面解释了他们的相机型号,这是我的问题的主题。

在该页面上,我需要澄清几个核心概念:

  • 焦平面:它是什么以及它与图像平面有何不同(如该页顶部的图表所示)?
  • 焦距/长度:它是什么?
  • 主要观点:它是什么,为什么理想情况下它应该是图像的中心?
  • 比例因子:这只是对相机离图像平面多远的估计吗?
  • 失真:它是什么以及它的各种子类型之间的区别是什么:
    • 径向
    • 切线
    • 鱼眼

在此先感谢您的任何澄清/更正!

4

1 回答 1

1

我不确定焦平面,所以在我写完你提到的其他概念后我会回来讨论它。假设您有一个具有矩形像素的针孔相机模型,并让P=[XYZ]^T是相机空间中的一个点,^T表示转置。在这种情况下(假设Z是相机轴),该点可以投影为p=KP,其中K(校准矩阵)为

f_x  0   c_x
0   f_y  c_y
0    0    1 

(当然,在那之后,您需要将p除以其第三个坐标)。

焦距,我会注意到f是相机中心和图像平面之间的距离。变量

f_x=s_x*f 
f_y=s_y*f

在上面的矩阵中分别用像素宽度和高度来表示这个值。变量s_xs_y是您引用的页面上提到的比例因子。比例因子是像素大小(宽度或高度)与您在相机空间中使用的单位之间的比率。因此,例如,如果您的像素宽度是您在相机空间的x轴上使用的单位大小的一半,那么您将拥有s_x =2。

我见过人们使用术语“ 主要点”来指代不同的事物。虽然有些人将其定义为相机轴和图像平面之间的交点(维基百科似乎这样做),但其他人将其定义为[c_x c_y]^T给出的点。为了清楚起见,让我们将整个投影过程分开:

等式右边的两项做不同的事情。第一个缩放点并将其放入图像平面。第二项( [c_x c_y 1]^T)将结果从另一项移出。因此,[-c_x ,-c_y]^T是图像坐标系的中心。

至于切向/径向畸变之间的区别:通常在校正畸变时,我们假设图像的中心o保持不畸变。在失真的影响下,像素p将“远离”其真实位置q 。如果该运动沿矢量qo进行,则畸变是径向的,但如果该运动具有不同方向的分量,则称它(也)具有切向畸变。

正如我所说,我有点不确定他们在图中显示的焦平面是什么意思,但我认为这个术语通常指的是在物理针孔相机中形成倒置图像的平面。图像平面上的点P(以世界坐标表示)将只是焦平面上的 -P 。

于 2016-11-16T18:22:33.893 回答