SLAM中各个坐标系之间的转换

在视觉SLAM中,有几个基本的坐标系

  • 世界坐标系
  • 相机坐标系
  • 成像平面坐标系
  • 图像像素坐标系

如何在各坐标系之间相互转换,把摄像头输出的2D图像和我们所在的三维世界一一对应,是SLAM技术研究的一大重点,从世界坐标系如何在各坐标系之间相互转换,把摄像头输出的2D图像和我们所在的三维世界一一对应,是SLAM技术研究的一大重点SLAM中各个坐标系之间的转换是一个小孔成像的模型,其中:

  [1]O点表示camera centre,即相机的中心点,也是相机坐标系的中心点;
  [2]z轴表示principal axis,即相机的主轴;
  [3]q点所在的平面表示image plane,即相机的像平面,也就是图片坐标系所在的二维平面;
  [4]O1点表示principal point,即主点,主轴与像平面相交的点;
  [5]O点到O1点的距离,也就是右边图中的f,即相机的焦距;
  [6]像平面上的x和y坐标轴是与相机坐标系上的X和Y坐标轴互相平行的;
  [7]相机坐标系是以X,Y,Z(大写)三个轴组成的且原点在O点,度量值为米(m);
  [8]像平面坐标系是以x,y(小写)两个轴组成的且原点在O1点,度量值为米(m);
  [9]像素坐标系一般指图片相对坐标系,在这里可以认为和像平面坐标系在一个平面上,不过原点是在图片的角上,而且度量值为像素的个数(pixel);
2、相机坐标系成像平面坐标系
[1]以O点为原点建立摄像机坐标系。点Q(X,Y,Z)为摄像机坐标系空间中的一点,该点被光线投影到图像平面上的q(x,y,f)点。
图像平面与光轴z轴垂直,和投影中心距离为(f是相机的焦距)。按照三角比例关系可以得出:
x/f = X/Z       y/f = Y/Z   ,即 x = fX/Z       y = fY/Z
以上将坐标为(X,Y,Z)的Q点映射到投影平面上坐标为(x,y)的q点的过程称作投影变换
上述Q点到q点的变换关系用3*3的矩阵可表示为:q = MQ,其中
  SLAM中各个坐标系之间的转换
    最终得出透视投影变换矩阵为:
SLAM中各个坐标系之间的转换(1)
M称为摄像机的内参数矩阵单位均为物理尺寸。

通过上面,可以把相机坐标系转换到像图像坐标系的物理单位[即(X,Y,Z)(x,y)]

3、成像平面坐标系像素坐标系

通过下面,可以把像平面坐标系物理单位到像素单位[即(u,v)]
 
以图像平面的左上角或左下角为原点建立坐标系。假设像平面坐标系原点位于图像左下角,水平向右为u轴,垂直向上为v轴,均以像素为单位。
以图像平面与光轴的交点O1 为原点建立坐标系,水平向右为x轴,垂直向上为y轴。原点O1一般位于图像中心处,O1在以像素为单位的图像坐标系中的坐标为(u0, v0)。
像平面坐标系和像素坐标系虽然在同一个平面上,但是原点并不是同一个。
SLAM中各个坐标系之间的转换

设每个像素的物理尺寸大小为 dx * dy (mm) ( 由于单个像素点投影在图像平面上是矩形而不是正方形,因此可能dx != dy)
图像平面上某点在成像平面坐标系中的坐标为(x, y),在像素坐标系中的坐标为(u, v),则二者满足如下关系:[即(x, y)(u, v)]
u = x / dx + u0            v = y / dy +  v0
用齐次坐标与矩阵形式表示为:
SLAM中各个坐标系之间的转换
 将等式两边都乘以Q(X,Y,Z)坐标中的Z可得:
SLAM中各个坐标系之间的转换
  将摄像机坐标系中的(1)式代入上式可得:
SLAM中各个坐标系之间的转换
  则右边第一个矩阵和第二个矩阵的乘积亦为摄像机的内参数矩阵(单位为像素),相乘后可得:
SLAM中各个坐标系之间的转换(2)
 和(1)式相比,此内参数矩阵中f/dx, f/dy, cx/dx+u0,cy/dy+v0  的单位均为像素。令内参数矩阵为K,则上式可写成:
SLAM中各个坐标系之间的转换(3)