VSLAM基础(二)————相机模型及视觉坐标系

继续上一篇,这篇讲一讲视觉slam里涉及到的相机模型以及用于描述的各种视觉坐标系。由于所学的是单目slam,所以这篇重点在于针孔相机模型及其畸变模型。

一、针孔相机模型

针孔相机模型是一个用来将三维世界坐标点映射到二维图像坐标的有效模型。

 

VSLAM基础(二)————相机模型及视觉坐标系

小孔成像模型是相机成像采用最多的模型。在此模型下,物体的空间坐标和图像坐标之间是线性的关系,因而对相机参数的求解就归结到求解线性方程组上。四个坐标系的关系图如下图所示,其中 M 为三维空间点,m 为 M 在图像平面投影成的像点。

VSLAM基础(二)————相机模型及视觉坐标系

1)四个坐标系:

1、像素坐标系

以 CCD 图像平面的左上角顶点为原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,用(u , v )表示其坐标值。数码相机采集的图像首先是形成标准电信号的形式,然后再通过模数转换变换为数字图像。每幅图像的存储形式是M × N的数组,M 行 N 列的图像中的每一个元素的数值代表的是图像点的灰度。这样的每个元素叫像素,像素坐标系就是以像素为单位的图像坐标系。

2、图像坐标系

以CCD 图像平面的中心为坐标原点,X轴和Y 轴分别平行于图像平面的两条垂直边,用( x , y )表示其坐标值。图像坐标系是用物理单位(例如毫米)表示像素在图像中的位置。

3、相机坐标系(光心坐标系)

以相机的光心为坐标原点,X 轴和Y 轴分别平行于图像坐标系的 X 轴和Y 轴,相机的光轴为Z 轴,用(Xc, Yc, Zc)表示其坐标值。

4、世界坐标系

是客观三维世界的绝对坐标系,也称客观坐标系。因为数码相机安放在三维空间中,我们需要世界坐标系这个基准坐标系来描述数码相机的位置,并且用它来描述安放在此三维环境中的其它任何物体的位置,用(Xw, Yw, Zw)表示其坐标值。

2)四个坐标系坐标之间的转换:

1、图像坐标系到像素坐标系

VSLAM基础(二)————相机模型及视觉坐标系

2、相机坐标系到图像坐标系

VSLAM基础(二)————相机模型及视觉坐标系

3、相机坐标系到像素坐标系

Zc*(u , v ,1)=K*(Xc, Yc, Zc)

4、世界坐标到相机坐标系

VSLAM基础(二)————相机模型及视觉坐标系

5、世界坐标系到像素坐标系:

VSLAM基础(二)————相机模型及视觉坐标系

VSLAM基础(二)————相机模型及视觉坐标系

eg:P=K[R|t]   -->  Zc*(u , v ,1)=P*(Xw, Yw, Zw,1)

P相机矩阵:3*4且自由度为11的矩阵,描述了世界坐标到像素坐标的转换。

二、畸变模型

透镜由于制造精度以及组装工艺的偏差会引入畸变,导致原始图像的失真。镜头的畸变分为径向畸变和切向畸变两类。

1. 径向畸变

顾名思义,径向畸变就是沿着透镜半径方向分布的畸变,产生原因是光线在原理透镜中心的地方比靠近中心的地方更加弯曲,这种畸变在普通廉价的镜头中表现更加明显,径向畸变主要包括桶形畸变和枕形畸变两种。以下分别是枕形和桶形畸变示意图:

VSLAM基础(二)————相机模型及视觉坐标系

成像仪光轴中心的畸变为0,沿着镜头半径方向向边缘移动,畸变越来越严重。畸变的数学模型可以用主点(principle point)周围的泰勒级数展开式的前几项进行描述,通常使用前两项,即k1和k2,对于畸变很大的镜头,如鱼眼镜头,可以增加使用第三项k3来进行描述,成像仪上某点根据其在径向方向上的分布位置,调节公式为:

VSLAM基础(二)————相机模型及视觉坐标系

公式里(x0,y0)是畸变点在成像仪上的原始位置,(x,y)是畸变较真后新的位置,下图是距离光心不同距离上的点经过透镜径向畸变后点位的偏移示意图,可以看到,距离光心越远,径向位移越大,表示畸变也越大,在光心附近,几乎没有偏移。

VSLAM基础(二)————相机模型及视觉坐标系

2. 切向畸变

切向畸变是由于透镜本身与相机传感器平面(成像平面)或图像平面不平行而产生的,这种情况多是由于透镜被粘贴到镜头模组上的安装偏差导致。畸变模型可以用两个额外的参数p1和p2来描述:

VSLAM基础(二)————相机模型及视觉坐标系

下图显示某个透镜的切向畸变示意图,大体上畸变位移相对于左下——右上角的连线是对称的,说明该镜头在垂直于该方向上有一个旋转角度。

VSLAM基础(二)————相机模型及视觉坐标系

而在我们通过提取特征点得到的像素坐标是带有畸变的(上式中的x0,y0),则需要我们根据畸变参数(在slam中一般为已知)去除畸变得到不带畸变的坐标(x,y)。

VSLAM基础(二)————相机模型及视觉坐标系