视觉SLAM14讲——相机与图像

前面我们已经说过了视觉SLAM的运动方程和观测方程。

在以相机为主的视觉SLAM中,观测主要是指相机成像的过程。

1、相机模型

 常见的针孔相机模型如上图,在空间中有一点P,点P坐标为,点P经过光心O投影之后落在了物理成像平面O'-x'-y'上,成像点为P',坐标为,设物理成像平面到小孔的距离为f(焦距)。根据相似三角形可以得出:

 公式中的负号表示所成的像是倒立的。由于相机输出的图像并不是倒像,而且为了便于操作,我们可以等价的将成像平面对称的放在相机前方,和三维空间点一同放在相机的同一侧。如下图所示:

 这样我们就可以将公式中的负号去掉:

 将X',Y'放在等式左侧得:

 上式描述了点P和它的像之间的空间关系,X',Y'为所成像的坐标,X,Y,Z为空间坐标。但在相机中,我们最终获得的是像素,我们需要在物理成像平面上固定一个像素平面o-u-v,于是,我们可以在像素平面上得到点P'的像素坐标

像素坐标系的定义为:原点o'位于图像的左上角,u轴向右与x轴平行,v轴向下与y轴平行。像素坐标系与成像平面之间,相差了一个缩放和原点的平移,设像素坐标在u轴上缩放了α倍,v轴上缩放了β倍。同时原点平移了所以P'的坐标和像素坐标的关系为:

 将上面的X',Y'公式代入并简化(fx=αf,fy=βf)可得:

 上式中fx,fy,cx,cy我们称为相机的内参,相机的内参是相机出厂就固定的。

我们将上面的公式写为矩阵的形式,并进行适当的齐次化:

 简单变形:

 从上面的式子中我们可以知道,只要有了矩阵K,就可以计算出在真实世界(P)在相机内投影后的坐标了(u,v)。

有了内参,也有外参,外参就是我们之前说的位姿变化,即旋转和平移,我们便可以表示如何从世界坐标下的一点通过位姿变化转到相机坐标然后再转到像素坐标。

 投影还可以从另一个角度来看,可以先将世界坐标点转换到相机坐标系,再除掉最后一维的数值(即深度),这相当于做了归一化处理,得到点P在相机归一化平面上的投影。

 

我们可以将投影顺序归纳为:

世界——相机——归一化——像素。

再回顾我们之前的观测方程:

 Zk,j就是最终的像素坐标,yi就是点P(x,y,z),Xk代表着位姿变换。

2、畸变模型

为了更好的获得成像效果,我们会在相机中加入透镜,由透镜形状引起的畸变称为径向畸变。径向畸变又分为桶形畸变和枕形畸变。

由于相机在组装中的误差引起的畸变叫做切向畸变。

我们考虑归一化平面上的一点P,坐标为极坐标为r代表点p与坐标系原点间的距离,θ表示与水平轴的夹角。径向畸变可以看作坐标点沿着长度方向发生了变化,也就是距离原点的长度发生了变化,切向畸变可以看作是坐标点沿着切线方向发生了变化,也就是水平夹角发生了变化。

对于径向畸变,我们可以用多项式来表示:

 是未进行纠正的点,而是纠正过后点的坐标,他们都是归一化平面的点,而不是像素平面的点。

对于切向畸变可以这样表示:

 结合上面所说,我们对于相机坐标系中的点P,我们可以通过5个畸变系数来找到这个点对应像素坐标系下正确的位置:

1、将三维空间点投影到归一化平面上,将他的归一化坐标记为

2、对归一化坐标进行去畸变处理:

 3、最后将处理完毕后的归一化坐标投影到像素平面,从而得到正确位置:

 3、单目相机成像过程总结

1、首先世界坐标系下有一固定点P,他的世界坐标为Pw。

2、通过位姿变换将点P的世界坐标转换到相机坐标系下:

3、将相机坐标系坐标进行归一化处理,得到点P的归一化坐标 

4、如果有畸变,将Pc进行去畸变处理,得到去畸变之后的归一化坐标。

5、最终将归一化坐标经过内参后得到像素坐标 

 

 4、双目相机模型

单目相机由于归一化的原因,并没有能够很好的获得深度信息。在SLAM中只有很好的知道深度信息,才能准确的估计位置。

      

 如上图为双目相机的成像原理,Ol和Or为光心的位置,Pl和Pr为左右相机成像的位置,f为焦距,b为基线,表示双目相机中左眼相机与右眼相机的距离,根据上图的几何模型,我们可以根据相似三角形得出以下公式:

 整理之后得:

 d我们称为视差,表示成像坐标之间的差值。可以看出视差和距离成反比,视差越大,距离越近,视差越小,距离越远。视差最小为一个像素,所以理论上距离有一个极限值,这个极限值由fb确定,基线越大,可以测的距离越远,反之亦然。

5、RGB-D相机

相比双目相机采用视差来测量距离,深度相机则是主动测量深度,目前深度相机按照原理可以分为:

1、红外结构光原理测量距离

2、通过飞行时间测量距离

 

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值