相机矩阵(camera matrix)
本博文主要介绍camera的参数矩阵
目录
相机小孔模型
针孔模型是相机成像的基础模型,是理解后续相机矩阵内容的基础。下图描述了基本的小孔成像过程:
图中,X坐标系是针孔所在坐标系,Y坐标系为成像平面坐标系,P为空间一点,小孔成像使得P点在图像平面上呈现了一个倒立的像。
这幅图是前一幅图的俯视图,由三角相似关系可以得到:
写成矩阵的形式:
多了一个讨厌的负号(小孔成像上下颠倒,左右也颠倒),为了方便,大家把成像平面移到了和物体(P点)相同的一边,这样相似关系中就没有负号。
上图中Y1’为移动后的成像平面,这与移动前的比例关系是等效的。
写成矩阵形式:
相机矩阵(内参)
成像过程就是三维空间坐标到二维图像坐标的变换,这是一个投影过程(降维打击)。相机矩阵就是建立这种三维到二维的投影关系。
如果我们用[xw yw zw ]来表示一个空间点的坐标,用[x y]来表示对应于成像平面上的一个图像点的坐标(不是像素坐标),那么这两个点肯定是有一种变换关系联系起来的,我们把这个变换关系记为P。
对于空间点:,其在图像上的点为:
那么有如下关系:
其中3x4的矩阵(这是为了满足4X1变换到3X1的要求),该矩阵就被称为相机矩阵(camera matrix ),或者相机投影矩阵(camera projection matrix)。
第一部分说小孔模型时没有使用齐次坐标,现在我们用齐次坐标再来看看小孔模型。
把它写成齐次形式:
在此,我们先暂时舍弃比例因子f/x3,只建立[y1 y2 1]与[x1 x2 x3]的关系,可以得到表达式
由于舍弃了一个比例因子,等式不再成立,因此使用~来表示二者之间的相似关系。
对于,可以建立
与
的关系,用矩阵表示如下:
至此由于,就有
与
的关系,如下所示:
其中,就是相机矩阵,或者乘以一个系数f写为
。
相机矩阵(Intrinsic matrix)
接下来给出像素坐标系的概念。
图像坐标系
以图像左上角为原点建立以像素为单位的直接坐标系u-v。像素的横坐标u与纵坐标v分别是在其图像数组中所在的列数与所在行数。(在OpenCV中u对应x,v对应y)
图像点的表示是长度单位,不是像素,由于我们拿到的图像是以像素来衡量的,因此还需要将图像坐标系转化为像素坐标系。由于(u,v)只代表像素的列数与行数,而像素在图像中的位置并没有用物理单位表示出来,所以,我们还要建立以物理单位(如毫米)表示的图像坐标系x-y。将相机光轴与图像平面的交点(一般位于图像平面的中心处,也称为图像的主点(principal point)定义为该坐标系的原点O1,且x轴与u轴平行,y轴与v轴平行,假设(u0,v0)代表O1在u-v坐标系下的坐标,dx与dy分别表示每个像素在横轴x和纵轴y上的物理尺寸,则图像中的每个像素在u-v坐标系中的坐标和在x-y坐标系中的坐标之间都存在如下的关系:
其中,我们假设物理坐标系中的单位为毫米,那么dx的的单位为:毫米/像素。那么x/dx的单位就是像素了,即和u的单位一样都是像素。为了使用方便,可将上式用齐次坐标与矩阵形式表示为:
于是之前的相机矩阵又得添加一项:
上述推导中有一个假设前提,就是相机的感光元件是正方形的,感光元件的安装也是通过光轴中心的,但这不可能,于是会出现以下两个问题:
1、感光元件的基本单元不是方的,一个方形物体可能最后成像为一个矩形(甚至会有斜切效果,一般可以不考虑斜切因素);
这导致上述表达式中,dx与dy不相等,
2、感光元件的中心与光轴通过的主点不重合,会使得正常投影的图像发生了一点小小的位移。这导致上述表达式中,u0与v0可能并不等于成像传感器长宽尺寸的一半。(理想状态下就是一半)
上述表达式中,等式右边的前三个矩阵合并,得到下式:
其中被称为内参矩阵(Wikipedia)
或者只合并等式右边前两个矩阵,得到下式:
于是也有习惯将称为内参矩阵(少了一列0),都是一个意思。
内参矩阵的参数含义:
f:焦距,单位毫米,dx:像素x方向宽度,单位毫米,1/dx:x方向1毫米内有多少个像素
f/dx:使用像素来描述x轴方向焦距的长度
f/dy:使用像素来描述y轴方向焦距的长度
u0,v0,主点的实际位置,单位也是像素。
内参矩阵反应了相机自身的属性,各个相机是一不一样的,需要标定才能知道这些参数。
相机的外参矩阵(extrinsic matrix)
相机坐标系
相机成像的几何关系可由图2表示。其中O点为摄像机光心(投影中心),Xc轴和Yc轴与成像平面坐标系的x轴和y轴平行,Zc轴为摄像机的光轴,和图像平面垂直。光轴与图像平面的交点为图像的主点O1,由点O与Xc,Yc,Zc轴组成的直角坐标系称为摄像机的坐标系。OO1为摄像机的焦距。
世界坐标系
世界坐标系是为了描述相机的位置而被引入的,如上图中坐标系OwXwYwZw即为世界坐标系。平移向量t和旋转矩阵R可以用来表示相机坐标系与世界坐标系的关系。所以,假设空间点P在世界坐标系下的齐次坐标是(Xw,Yw,Zw,1)T,(这里T是上标转置),在相机坐标下的齐次坐标是(Xc,Yc,Zc,1)T,则存在如下的关系:
其中,R是3×3的正交单位矩阵(也成为旋转矩阵),t是三维的平移向量,矢量 ,M1是4×4矩阵。
外参矩阵是世界坐标系到相机坐标系的变换。既然是变换,我们就能够将其表达为[R t],齐次形式为
空间某个点p,其在世界坐标系下表示为[xw,yw,zw,1],在相机坐标系下表示为[xc,yc,zc,1],那么它们具有如下关系:
带入到相机矩阵表达式中可以得:
合并等式右边2、3两个矩阵:
到此,我们就看到了一个比较常见的内外参数矩阵的写法,等式右边,第一个矩阵为内参矩阵(3x3),第二个矩阵为外参矩阵(3x4),合起来就是相机矩阵,它建立了三维点齐次坐标到二维点齐次坐标的变换。
参考材料