摄像机的基本成像模型, 通常称为针孔模型(pinhole model), 由三维空间到像平面的中心投影变换给出.
如上图(a)所示, 空间点Oc是投影中心, 它到平面π的距离为f. 空间点Xc在平面π上的投影(像)是以点Oc为端点并经过Xc的射线与平面π的交点.
平面π称为摄像机的像平面(image plane), 点Oc称为摄像机的光心(optical center), f称为摄像机的焦距(focus),
以点Oc为端点且垂直于像平面的射线称为光轴或主轴(principal axis), 主轴与像平面的交点p称为摄像机的主点(principal
point).
为了从代数上描述这种投影关系, 需要建立摄像机坐标系和图像平面坐标系. 如上图(b)所示, 在图像平面上, 以主点p为图像平面坐标系的原点o, 以水平线和铅直线分别为x轴和y轴, 建立图像坐标系o-xy;
在空间中, 以摄像机光心Oc为摄像机坐标系的原点, 以主轴为zc轴, 以平行于x轴且通过光心Oc的直线为xc轴,
以平行于y轴且通过光心Oc的直线为yc轴,建立摄像机坐标系Oc-xcyczc.
空间点Xc在摄像机坐标系中的欧氏坐标记为,
它的像点m在图像坐标系中的坐标记为. 从上图(b)中, 根据三角形相似原理, 可推知空间点Xc与它的像点m满足下列关系:
(1)
上式可表达为下列矩阵形式:
(2)
其中, , 分别为空间点和图像点的齐次坐标.
它是从空间到像平面的一个齐次线性变换. 如果记
(3)
则这个齐次线性变换可表示为更为简洁的形式:
(4)
其中, 矩阵P是一个3x4矩阵, 通常称为摄像机矩阵(camera matrix). 这就是基本成像模型的代数表示.
注意, (4)是一个齐次等式, 表示在相差一个非零常数因子(zc)的意义下相等.
考虑到主点偏离图像中心的情况
在实际应用中, 事先不知道主点的确切位置, 因此通常都是以图像中心或者图像左上角作为图像坐标系原点来建立图像坐标系(在本文中, 除非特别说明, 都以图像中心作为图像坐标系原点). 在此坐标系下, 由于主点可能不是图像坐标系的原点, 因此摄像机矩阵不再可能具有(3)的形式.
若主点在图像坐标系下的坐标p=(x0, y0, z0)T, 则摄像机的投影关系变为(可自行证明):
(5)
摄像机矩阵的形式为P=K(I, 0), 其中,
(6)
并称它为摄像机内参数矩阵(intrinsic parameters matrix).
考虑到像素不是正方形的情况
用于计算机处理的图像通常都是用CCD摄像机获取的数字图像, 或者由模拟信号摄像机获取的图像再经过特别设备进行数字离散化的数字图像. 一般地, CCD内参数矩阵不再具有(6)的形式. 为了得到CCD摄像机的模型, 必须刻划CCD摄像机的数字离散化过程.
假定CCD摄像机数字离散化后的像素是一个矩形, 矩形的长和宽分别是dx和dy. 设图像点(x, y, 1)T在离散化后的坐标为(u, v, 1)T,
则必有:
(7)
如果离散化后的图像坐标仍用m表示, 则摄像机的投影关系可以写成:
(8)
其中
(9)
矩阵K称为CCD摄像机的内参数矩阵, fx=f/dx, fy=f/dy,
称为CCD摄像机在u轴和v轴上方向上的尺度因子, (u0, v0)T=(x0/dx, y0/dy)T,
称为CCD摄像机的主点.
考虑到像素是平行四边形的情况
由于制造工艺的限制, 一般情况下, CCD摄像机数字离散化后的像素不是一个矩形, 而是一个平行四边形. 平行四边形的一边平行于u轴, 而另一边与u轴形成一个θ角(见下图).
令平行四边形两边长分别为dx, dy, 图像点(x, y, 1)T离散化后的坐标为(u, v, 1)T,
则必有
(10)
结合(5)式, 可得到:
(11)
如果离散化后的图像坐标仍然用m表示, 则上式可写成:
(12)
其中,
(13)
是摄像机内参数矩阵, fx=f/dx, fy= f/sinθdy,
称为一般CCD摄像机在u轴和v轴方向上的尺度因子, (u0, v0)T =(( x0-y0cotθ)/dx, y0/sinθdy)T称为一般CCD摄像机的主点,
而s=-fcotθ/dx称为一般CCD摄像机的倾斜因子(skew factor).
考虑到世界坐标系的情况
上面介绍的摄像机矩阵是在摄像机坐标系下的结果. 由于摄像机的中心和主轴等事先都是未知的, 因此在这个坐标系下不能给出空间点的准确坐标值; 另外摄像机可安放在环境中的任何位置, 所以需要一个基准坐标系来描述空间点和摄像机的位置. 这个基准坐标系通常称为世界坐标系(world coordinate system)或者物体坐标系(object coordinate system).
世界坐标系与摄像机坐标系之间的关系可以用旋转矩阵和平移向量来描述, 如下图所示.
令空间点在世界坐标系和摄像机的坐标分别为X=(x, y, z, 1)T, Xc=(xc, yc, zc,
1)T, 则它们之间的关系为:
(14)
其中, 表示光心在世界坐标系中的非齐次坐标. 以后, 点X的非齐次坐标总用表示.
将(14)式代入(12)式, 则有:
(15)
这样, 得到摄像机矩阵的一般形式:
(16)
矩阵称为摄像机的外参数矩阵(extrinsic parameters matrix). 有时, 也用来描述世界坐标系和摄像机坐标系之间的关系,
此时摄像机矩阵为:
(17)
其中, .
摄像机矩阵是一个秩为3的3x4矩阵. 因为它的前三列所构成的子矩阵是一个可逆矩阵. 另外, 由于摄像机矩阵的齐次性, 所以它仅有11个独立元素.
在经典立体视觉中, 需要在欧氏坐标系下估计摄像机矩阵(camera matrix), 才能完成立体视觉系统的标定. 常用的方法是根据一些空间点在欧氏坐标系下的坐标与其图像坐标之间的对应关系, 建立关于摄像机矩阵的约束方程, 从而确定摄像机矩阵. 在实践中, 为了得到一些空间点的欧氏坐标, 需要制作一个标定参考物, 在标定参考物上经过精确测量的特征点作为估计摄像机矩阵时所需要的空间点.
记摄像机矩阵为
(1)
其中为矩阵P的第j行向量. 令Xj=(xj, yj, zj,
1)T是特征点在世界坐标系下的坐标, 对应的图像点坐标为mj=(uj, vj,
1)T, 于是根据摄像机的投影关系, 得到
(2)
因此, 消去上式中常数因子sj后, 可得到下述方程:
(3)
在这个方程组中, 第三个方程可由前两个方程线性表示, 因此只有两个方程是线性独立的. 因此, 给定N≥6个以上的特征点与其图像点的对应, 可线性求解摄像机矩阵P.
最小二乘解
当图像数据存在测量误差时, 方程组(3)一般不存在非零解. 此时, 通常以它的最小二乘解作为摄像机矩阵的估计. 对每一个点对应, 记
(4)
它是一个3x12的矩阵Aj. 给定n个点对应, 得到n个形如这样的矩阵, 再将这n个矩阵组合起来得到一个3nx12的矩阵,
对A做奇异值分解(SVD), A=UDVT, 则V的最后一个列向量p=v12是方程Ap=0的最小二乘解,
再将p写成矩阵的形式就得到摄像机矩阵P.
注: 由于摄像机矩阵是齐次的, 所以我们只能在相差一个非零常数因子的意义下求解, 即所得到的摄像机矩阵P与它的标准形式K(R, t)相差一个非零常数因子.
正向投影
空间点X通过摄像机P投影到图像平面的图像点m=PX, 这种投影关系称为摄像机的正向投影, 简称投影(projection).
反向投影
反向投影是针对图像平面的基本几何元素而言的. 图像平面点m的反投影(back projection)是指在摄像机P的作用下具有像点m的所有空间点的集合, 即
(1)
在几何上, 不难看出图像点m的反投影是从摄像机中心(光心)出发并通过图像点m的一条射线, 如下图所示.
下面考虑图像点m的反投影lb在在世界坐标系下的方程. 这是非常重要的, 因为在计算机视觉中, 从多幅图像的对应点的反投影射线可以恢复空间点的三维坐标. 由于两点确定一条直线, 所以如果能够确定摄像机中心C和射线lb上另一点的空间坐标,
就可以得到射线lb在空间中的方程. 下边先来计算摄像机中心C在世界坐标系中的坐标. 令C是摄像机中心在世界坐标系中的齐次坐标, 是非齐次坐标,
即, 则
(2)
可知, 摄像机中心C是方程PC=0的一个解. 另一方面, P仅有一维右零空间, 因为它的秩等于3. 于是, 摄像机中心的齐次坐标构成了P的右零空间. 在已知摄像机矩阵P的情况下, 可以通过求解PX=0得到摄像机中心在世界坐标系中的坐标.
事实上, 如果令P=(H, p4), 其中H为P的前三列所构成的3x3矩阵, p4是P的第4个列向量,
则从方程PX=0可得到摄像机中心的世界坐标为
(3)
再考虑射线lb上的另一个空间点. 令P(3x4矩阵)的广义逆P+=PT(PPT)-1,
看看空间点P+m的情况. 将其代入投影公式,P(P+m)= (PPT)(PPT)-1m=m,
因此可以断定P+m必定在射线lb上. 于是, 根据lb上的两个点C和P+m,
就能得到lb的下述参数方程:
(4)