利用图像序列进行三维重建的过程,相当于把一张张由很多像素组成的二维图像还原到三维空间中的一个过程。通过了解整个投影的过程,就可以很容易理解如何利用图像进行三维重建,以及三维重建中的关键步骤是什么。该小节主要讲述单目相机的投影过程。
A. 小孔成像模型与坐标系
相机拍摄图像的过程可以简化成小孔成像的一种形式,利用这种形式可以很容易得到相机模型的数学表达式。通过相机的成像方式及其数学表达式,可以看出三维场景和图像中每一个像素之间的映射关系。通过这种映射关系,就可以将图像中的像素还原到三维空间中。若把一系列图像的所有像素全部还原到整个三维空间中,就可以将整个场景的表面进行还原。相机的小孔成像模型结构如图2-1所示,为了使其简单化,把成像的平面置于小孔前面,并且拍摄出来的图像也应该是正立的。
图1 小孔成像模型图
在小孔成像模型中,场景从三维空间投影到图片上的整个过程大致可以分解成三个步骤和四个坐标系。具体的流程为:从世界坐标系转换到相机坐标系,再从相机坐标系转换图像坐标系,最后从图像坐标系转换到像素坐标系。将相机镜头前方的场景投影至三维图像的过程,可以被看作是三维场景从世界坐标系到像素坐标系中的一个转化过程,四个坐标系的定义如下。
世界坐标系是一个客观的绝对存在。世界坐标系都需要预先确定,指定其原点与方向。在已经定义好的世界坐标系中,可以放置任意物体。在三维重建或计算机视觉中,通常把摄影相机打开的第一帧图像的相机坐标系预定义为世界坐标系。然后根据定义好的世界坐标系计算相机接下来的移动路径及姿态。世界坐标系下的坐标通常使用(Xw,Yw,Zw) 来进行表示。
相机的坐标系目前通用定义方法是以一台相机的光心或者主点作为坐标系的原点。X轴和Y轴在拍摄画面时分别平行于图像的横轴和纵轴。Z 轴为相机的焦距所指方向。相机坐标系下的坐标通常使用符号(Xc,Yc,Zc) 进行表示。
图像坐标系根据图像进行定义,以图像的中心作为原点,X 轴和Y 轴与相机坐标系的X 轴和Y 轴的方向一致。图像坐标系是使用米、厘米等物理学单位来表示的坐标系。图像坐标系只有两个维度,没有Z 轴。图像坐标系下的坐标通常使用符号(x, y) 来表示。
像素坐标系是以像素为单位的坐标系。像素坐标系也是二维坐标系,其X 轴和Y 轴的方向与图像坐标系一致,坐标系的原点位于二维图像的左上角。像素通用的表示形式为一个方块或者矩形,每个像素里面存放的信息为像素的强度或灰度值。
B. 坐标系转换
在A小节中,已经定义了各个坐标系以及坐标系中点的表示形式,在该小节,通过数学模型的形式,推导小孔成像的整个过程。整个过程分为三个步骤,其中世界坐标系到相机坐标系的变化过程涉及相机的外参,从相机的坐标系转换到图像坐标系再转换到像素坐标系的过程中都涉及到了相机的内参的使用。该小节通过相机内参以及外参的形式推导相机的投影过程。
(1) 相机外参
世界坐标系(Xw,Yw,Zw) 与相机坐标系(Xc,Yc,Zc) 的转换:相机坐标系是一个不稳定的坐标系,因为随着相机的移动会改变原点的位置以及各个坐标轴的方向。在三维重建或者相机定位的过程中需要一个稳定不变的世界坐标系。在世界坐标系中,可以将所有的坐标进行统一。
假设点P是一个三维空间中的点,其在相机坐标系下的位置为Pc ,在世界坐标系下的位置为Pw 。Pw 和Pc 可以通过一个变换矩阵相互转换,该变换矩阵可以细分为旋转矩阵(R) 和平移矩阵(t) 。其数学表达形式为: