目录
相机成像模型
在学习计算机视觉的过程中,少不了接触针孔相机的成像模型,这是基础也是容易让人混淆的东西,特别是其中参数的概念,对应的物理意义是什么。其实,相机的成像模型无非就是几个坐标系的转换,其中涉及到的坐标系有:世界坐标系(world frame)、相机坐标系(camera frame)、图像坐标系(image frame)、像素坐标系(pixel frame)。其中,图像坐标系与像素坐标系为二维坐标系,像素坐标系通常以图像的左上角为坐标原点。
下面我将会分为4个部分讲述他们的关系。
1.世界坐标系与相机坐标系的转换
所谓世界坐标系就是世界上任意一个地方都可以成为一个坐标系。假设在空间中存在一个点称为,那么世界坐标系在不同的位置,
的坐标自然也就不同。
现在固定一个世界坐标系,的坐标自然也就固定不变了。比如,在相机标定的过程中,就是假设世界坐标系在标定板(棋盘格)的左上顶点处;在视觉测量的过程中,通常以被测物体作为世界坐标系,有时也被称为物体坐标系。
下面涉及到一些刚体变换的知识。设、
分别为世界坐标系到相机坐标系的旋转变换和平移变换,
为相机坐标系下的坐标。那么
到
的转换关系为:
注意,这里和
都变为齐次坐标,也就是多加了一个1,例如:
表现形式为
。
2.相机坐标系与图像坐标系的转换
将世界坐标系转换到相机坐标系后,原来的也就变为
了。在拍摄过程中,
会投影到CCD或CMOS传感器上,成为一个像素点,该像素点在图像坐标系下的坐标为
,下图可以简述其中的关系。
而投影也是一种比例关系或者说是相似关系,如下:
和
矩阵化之后为:
3.图像坐标系与像素坐标系的转换
完成上面两个关系后,只需要获得图像坐标系与像素坐标系的转换关系,就可以将世界坐标系下的点投影转换为像素坐标系下了(为什么要转换到像素坐标系呢?因为通常像素点的坐标指的就是像素坐标系下的坐标,而不是图像坐标系下的坐标)。而图像坐标系与像素坐标系均为二维平面,将两个二维平面平铺之后,它们之间的关系如下图所示:
设点在像素坐标系下的坐标为
,这两个点通常也被成为主点坐标(principal point),也就是相机坐标系的Z轴与图像平面的交点。由于CCD或CMOS的传感器通常不为正方形,故设像元的横向尺寸和纵向尺寸分别为
和
,其单位则为
。
将实际的空间点离散化为相机的像素值(在实际编程的时候和
可能为小数,需要取整),有:(注意:在部分参考资料中还加入了倾斜因子,该值通常较小,这里就省略了)
将上面的等式转换为矩阵形式并且升一个维度变为齐次形式,有:
4.成像模型
将上面三个矩阵依次相乘,则有:
其中,坐标两个矩阵只与相机的参数相关,故也被称为相机内参矩阵。中间包含
、
的矩阵是世界坐标系到相机坐标系的变换矩阵,也被称为外参矩阵。
则是一个很重要,也很神奇的参数,在部分参考资料会将它写成
,称为尺度因子。这个参数在三维重建、视觉测量等领域都非常重要。
根据上面的解释,我们可以把上式简化成:
其中
在部分资料中会将,改写为
。故也写作
则有
在相机标定结束后,相机内参始终只有一个,而每一张标定板的图像都会对应着一个外参矩阵。(注意:这里仅描述了成像模型,通常除了要标定出内外参之外,还需要标定相机的畸变参数,这里就不做论述了。)