目录
上图显示了一个投影中心为 O 且主轴平行于 Z 轴的相机。 图像平面位于焦点处,因此距 O 的焦距为 f。3D 点 P = (X; Y;Z) 在坐标 = (u; v) 处的相机图像平面上成像。 我们将首先找到将3D P 射到 2D
的相机校准矩阵 C。 正如我们之前所见,我们可以使用相似三角形找到
使用 的齐次坐标,我们可以将其写为
,P 仍然不在齐次坐标系中
接下来,如果 2D 图像坐标系的原点与 Z 轴与图像平面相交的位置不重合,我们需要将 Pc 平移到所需的原点。平移定义为, 则u,v变成
所以写成矩阵的形式可以变成:
现在,在上式中 中,Pc 以英寸为单位。 由于这是一个相机图像,我们需要用英寸来表示它。为此,我们需要知道相机的分辨率(以像素/英寸为单位。如果像素是正方形的,则摄像机图像坐标的 u 和 v 方向的分辨率将相同。 然而,对于更一般的情况,我们假设矩形像素在 u 和 v 方向上分别具有 mu 和 mv 像素/英寸的分辨率。 因此,要以像素为单位测量 ,其 u 和 v 坐标应分别乘以 mu 和 mv。 因此
可以表达为矩阵的形式:
K 仅取决于相机的内在参数,如焦距、主轴,因此定义了相机的内在参数。 有时 K 也有一个偏斜参数 s,K由下式给出
这通常会出现图像坐标轴 u 和 v 彼此不正交。 请注意,K 是一个上三角3*3矩阵.这通常称为相机内参矩阵。现在,如果相机的投影中心不在 (0; 0; 0) 并且以任意方式定向(不一定 z 垂直于图像平面),那么 我们需要旋转和平移以使相机坐标系与图 1 中的配置一致。首先要让相机平移到 XYZ 坐标原点由 给出。 让用于使主轴与 Z 轴重合的旋转由
旋转矩阵R给出。然后通过首先应用平移然后旋转形成的矩阵由
矩阵给出
称为外参数矩阵。 因此,完整的相机变换现在可以表示为
所以
C 是一个 矩阵,通常称为完整的相机校准矩阵。 请注意,由于 C 是
我们需要 P 在 4D 齐次坐标中,而由 CP 导出的
将在 3D 齐次坐标中。 通过将 Pc 的前两个坐标除以第三个坐标,将获得投影在相机图像平面上的精确 2D 位置。
Camera Calibration(相机标定)
在这节中,我们将看到如何找到 C 以及如何将其分解以获取内部和外部参数。这里C是完整的完整的相机校准矩阵。给定C,我们知道
其中。给定
,我们可以找到 M,它是作为 C 的左
子矩阵。使用 RQ 分解将 M 分解为两个 3 3 矩阵
,其中 A 是上三角,B是正交矩阵(即
)。 这个上三角形 A 对应于 K,B 对应于旋转 R。让
表示 C 的最后一列。从前面的等式:
因此,给定 C,我们可以通过这个过程找到内参和外参矩阵。 但是,现在下一个问题是,如何为任何通用相机找到 C? 为此,我们需要找到 3D 点与其在相机图像上的投影之间的对应关系。 如果我们知道3D 点对应的相机图像坐标
,那么
或者:
但是,请注意,我们正在检测的 2D 相机图像坐标是
请注意,找到 C 意味着我们已经找到了 C 的所有 12 个未知量。因此,我们试图解决 12 个未知数。 设 C 的行由 给出,
. 因此
由于我们知道对应 和
,我们知道
这给了我们两个线性方程:
请注意,在这两个方程中,只有、
和
的元素是未知数。 因此,我们发现每个 3D 到 2D 对应生成两个线性方程。 要解决 12 个未知数,我们至少需要 6 个这样的对应关系。 通常为了获得更好的精度,使用多于 6 个对应关系,并且使用奇异值分解(SVD)方法求解由此形成的线性方程组的超定系统以生成 C 的 12 个未知量。一般使用基准的图像处理方法确定对应关系。
3D Depth Estimation
现在我们将看到在给定 和
的情况下,我们如何估计 3D点P 的确切位置。假设我们有一个 3D 点
,其图像在相机上由矩阵
定义的由
给出。 点 P 在齐次坐标中表示为
。 所以,我们知道
再次注意,我们在相机图像中检测到的 2D 点具有坐标,因此,校准矩阵
的行由下式给出
,i=0,1,2,从上式,可以得到两个线性方程:
因此,我们可以从每个相机生成两个线性方程。 我们有 4 个未知数要由解决,X,Y,Z,W。 因此,我们至少需要两个相机(具有不同的校准矩阵C),并且我们需要在这个相机的图像上找到相同 3D 点 P对应图像平面点.在两个不同的相机图像上找到相同 3d 点对应得像素点是一个难题(Finding the image of the same 3D points on two different cameras images is a hard problem.)。这就是人类需要两只眼睛来解决深度的原因。另外,请注意,这个数学只考虑了像视差这样的双目线索。 我们人类仍然可以用一只眼睛在一定程度上分辨深度的原因,是因为我们使用了几种动眼神经和单眼线索。 这些不适用于相机,因此无法使用单个相机进行深度估计。 当然,为了获得更高的精度,通常会使用两个以上的摄像机(称为立体装置),并使用奇异值分解来求解产生的超定线性方程。
Homography(单应性)
如果两个相机看到位于平面上的点,则无需经过显式相机校准即可轻松找到它们之间的关系。 这种关联两个相机的关系称为单应性。 图 2 说明了这种情况。 让我们假设一个点位于平面
上。 让平面的法线由
定义。 因此平面方程公式
,
矩阵由下式给出
P是3D世界中任意一点。两个相机由校准矩阵定义和
,
和
的图像平面分别为
和
故:

这意味着在3D中,点 位于射线
上.然而,比例因子是未知的。 让这个未知的比例因子由
表示。 然后我们得到
又因为位于平面
上,由
得
,因此
注意,I是矩阵,N是
矩阵,所以
是
矩阵。令
,
是
矩阵,
是
向量。
请注意,第一个矩阵是矩阵,第二个矩阵是
矩阵。 因此,这两者相乘将得到一个
矩阵。 这就是我们所说的单应性 H。因此
注意是
矩阵,N是
矩阵,因此,
是
矩阵,所以可以被
所减,得到单应矩阵。因此H是
矩阵,它将一个相机图像与另一个图像相关联并定义单应性。 使用这个矩阵,来自一个相机的图像可以被扭曲到另一个相机的视图。
请注意,相机校准矩阵 C 和单应性 H 都可以矫正一个比例因子(等比例缩小和放大)。因此,我们可以假设右下方的元素为 1。这将找到 C 时的未知数从 12 减少到 11。类似地,在计算 H 时,未知数为 8。所以,为了计算H,不得不从二个相机看向一个平面,必须找到两个相机看到的平面上同一点的图像。所以,简单来说我们需要知道两个相机中的对应点分别为和
。从每个对应关系中,我们可以生成两个线性方程。 要找到 H 中的 8 个未知数,我们只需要 4 个对应关系。 因此,现在无需进行完整的相机校准(为两台相机找到 11 个参数导致 22 个参数)使用这 8 个单应性参数,我们可以将一台相机与另一台相机联系起来。