计算机视觉中的多视图几何(二)

654 阅读6分钟

相机投影

本文的主要主题之一是图像形成的过程,即三维世界的二维表示的形成,以及我们可以推断图像中出现的三维结构。三维世界到二维图像是一个投影过程,在这个过程中我们失去了一个维度。这个过程的通常建模方法是通过中心投影,空间中一点的光线从三维世界点通过空间中的一个固定点,即投影中心被绘制出来。

将投影几何应用到成像过程中,通常将世界建模为一个3D投影空间,等同于IR3IR^3带一些无穷处的点,同理图像模型2D投影平面IR2IR^2,中心投影是从IP3IP^3IP2IP^2的简单映射。考虑IP3IP^3中用齐次坐标(X,Y,Z,T)T(X,Y,Z,T)^T表示其中的点,而投影中心是原点(0,0,0,1)T(0,0,0,1)^T,我们可以看到所有点的集合(X,Y,Z,T)T(X,Y,Z,T)^T中固定的X,Y,ZX,Y,Z和变化的TT形成一条穿过投影点中心的光线,因此都映射到同一个点。因此,该映射可以表示为三维齐次坐标的映射,使用3×43\times 4的矩阵PP表示,块结构为P=[I3×303]P=[I_{3\times 3}|0_3]I3×3I_{3\times 3}为单位矩阵,030_3为3维零向量,PP也被称为相机矩阵(camera matrix)。

综上所述,一个投影相机对空间中动作可以用齐次坐标的线性映射表示为:

image.png

进一步,如果平面上的所有点(选择平面Z=0Z=0)则其线性映射简化为:

image.png

这就是一个投影变换(projective transformation)

相机作为点 Cameras as points

在中心投影中,IP3IP^3中的点映射到IP2IP^2中,通过投影中心的射线中的所有点都投射到图像中的同一点。对于图像投影的而言,可以认为这条射线上的所有点都是相等的,更进一步,把通过投影中心的射线看成是图像点。因此,所有图像点的集合与通过相机中心的光线集合是相同的。

若我们想表示一条从(0,0,0,1)T(0,0,0,1)^T到点(X,Y,Z,T)T(X,Y,Z,T)^T的射线通过其前三个坐标(X,Y,Z)T(X,Y,Z)^T,很简单的可以想到对于任意尝试kk,射线k(X,Y,Z)Tk(X,Y,Z)^T表示的相同的射线。也就是说射线也能用齐次坐标表示,射线集合本身可以看做是图像空间IP2IP^2的表示。在这种图像表示中,重要的是相机中心,因为它本身就决定了形成图像的光线集合。不同的相机矩阵表示的是来自相同投影反射中心的图像成像,只是形成图像的光线的坐标系不同。因此,从空间中的同一点拍摄的两幅图像在投影上是等价的。只有当我们开始测量图像中的点时,才需要为图像指定特定的坐标系。只有这样,才有必要指定一个特定的摄像机矩阵。简而言之,我们现在忽略的模数视场,用相同的相机中心获得的所有图像都是等价的——它们可以通过投影变换相互映射,而不需要任何关于3D点或相机中心位置的信息。

如下图所示,相机中心是本质。(a)图像形成:图像点集xix_i是一个平面与空间点XiX_i通过相机中心CC的交点。(b)若空间点共面,则世界和图像面间存在一个投影变换,即xi=H3×3Xix_i=H_{3\times 3}X_i。(c)所有经过相机中心的图像都通过一个投影变换相关联,即xi=H3×3xix'_i=H'_{3\times 3}x_i。比较(b)和(c) -在两种情况下,平面都是通过一个中心的射线相互映射的。在(b)中的映射是场景和图像平面之间的映射,在(c)中的映射是两个图像平面之间的映射。(d)若相机中心移动则图像大体上是不能通过一个投影变换相关联,除非是(e)中所有空间点共面这种情况。

image.png

校准相机 Calibrated cameras

要充分理解图像与真实世界的欧几里得关系,就必须表达它们的相对欧几里得几何。上文说到,3维世界的欧几里得几何是通过指定IP3IP^3中的一个特定平面为无穷远处的平面,指定该平面中的一个特定圆锥Ω\Omega为绝对圆锥来确定的。对于一个不在无穷远平面上的相机,世界无穷远平面映射到图像平面上。这是因为图像中的任何一点在空间中定义了一条射线,它在无穷远处与平面相交。因此,世界上无限远处的平面并没有告诉我们关于图像的任何新信息。而绝对二次曲线,作为平面上无限远处的二次曲线必然会投影到图像上的二次曲线。由此产生的图像曲线被称为绝对圆锥曲线图像(Image of the Absolute Conic)或IAC,如果在图像中知道了IAC的位置,那么我们就说相机已经校准了(calibrated)

在校准过的相机中,可以确定从图像中的两点向后投射的两条射线之间的角度。我们已经知道,空间中两条直线之间的夹角是由它们在无限远处与平面相交的位置决定的,相对于绝对圆锥曲线。在一个校准相机中,无穷远处平面和绝对圆锥曲线Ω\Omega_\infty被一对一地投影到图像平面和IAC上,定义为ww。两个图像点和ww间的投影关系恰好等于反射光线与平面在无穷远处的交点和Ω\Omega_\infty之间的关系。因此,在已知IAC时,可以通过图像中的直接测量来测量光线之间的角度。对于校准过的相机,可以测量光线之间的角度,计算由图像块表示的视野,或者确定图像中的椭圆是否向后投影到圆锥体。稍后,我们将看到它帮助我们确定重建场景的欧几里德结构。

例子 绘画的三维重建 3D reconstructions from paintings

利用投影几何技术,在许多情况下,从单一图像重建场景是可能的,但需要首先对绘画场景做一些假设。典型的技术包括分析特征,如平行线和消失点,以确定仿射结构的场景,举个例子,确定图像中被观测平面无穷远处的直线。关于场景中观察到的角度的知识(或假设),尤其是正交的直线或平面,可以用来升级仿射重构到欧几里得。

这种技术还不可能完全自动化。然而,投影几何知识可以构建到一个系统中,允许用户引导的单视图重建场景。这些技术已经被用来重建从早期大师的绘画中衍生出来的3D纹理映射图形模型。从文艺复兴时期开始,人们就开始用非常精确的透视法作画。图1.2显示了从这样一幅画进行的重建。

image.png