首页 > 移动平台 > 详细

3D Mapping with an RGB-D Camera(RGBD SLAM V2 )论文笔记

时间:2017-06-16 14:11:02      阅读:9881      评论:0      收藏:0      [点我收藏+]

标签:fp3   dpi   job   dpm   sdm   srs   ppr   respond   margin   

 

这篇文章即是Felix Endres等人12年完成的RGB-D SLAM V2,是最早的为kinect风格传感器设计的SLAM系统之一

在Github上可找到开源代码,工程配置与运行参考http://www.cnblogs.com/voyagee/p/6898278.html

 

系统流程:

 

技术分享

 

 

 

 

 

 

 

 

 

 

 

 

 

 

        系统分为前后端。前端就是视觉里程记。从每一帧的RGB图像提取特征,计算描述符,RANSAC+ICP计算两帧之间的motion estimation,

  并提出了一个EMM(Environment Measurement Model)模型来判断estimate motion是否可接受。后端回环检测,基于g2o优化库的位姿图(pose graph)优化,

      得到优化后的轨迹,用于建立地   图。建图采用八叉树地图octomap的方式。

 

特征提取

在源码中可选择 SIFT \ SURF \ORB 特征,其中SIFT要在GPU上运行,ORB和SURF都在CPU上用Opencv实现

不同特征比较:

技术分享

 其中,ATE为Absolute Trajectory Error,轨迹的误差,就是系统估计的轨迹和真实轨迹(GroundTruth)之间的欧式距离,RMSE就是均方根

可以看出,有GPU时SIFT综合表现最好。 综合实时性、硬件成本和准确率来看,ORB较好。

 

运动估计

三对特征快速计算RANSAC的初始值,在每一轮迭代中,最小二乘correspondences之间的马氏距离 。

马氏距离与欧式距离的差别:http://www.cnblogs.com/likai198981/p/3167928.html,简单说就是计算距离时考虑到了各项异性,多乘了一个协方差矩阵

 

EMM:Environment Measurement Model

 一个传统的判断motion estimate是否可接受的方法就是看inlier的比例,小于设定阈值就reject motion estimate。

然而,motion blur(运动模糊),缺少纹理信息的环境都很容易出现inlier较少的情况。

并且有一些点,在一帧中可以看到,另一帧可能就被其他点挡住了。  作者提出使用这个EMM来更鲁棒的判断是否reject estimate 

 

先看一个假设:实施transformation之后,空间上对应的深度测量值应该来自于同一个表面位置之下:

after applying transformation estimate,spatially corresponding depth measurement stem from the same underlying surface location.

 

 论文中作者证明了观测yi和yj(不同与下图的yi,yj)之间的差满足高斯分布,方差为表示噪音的协方差矩阵(计算方法由论文 Accuracy and Resolution of Kinect Depth Data给出)

这样,就可以用概率学里的p值检验来判断是否reject estimate,然而,发现p值检验 有点神经衰弱 ,对于微小的误差太过敏感,

因此使用另一种方法

 技术分享

将相机A观测到的点投影到相机B,在observed points中找出inlier,outlier,occluded:

 上图中yi和yj应该是同一个点,算作inlier。yk不再A的视场内,所以被忽视,不看作“observed points”。

投影之后的yq在相机B 的市场中被yk挡住,看不到,因此算作occluded。

至于yp,落在了yq和相机A光心的连线上,算作outlier(注意,yp与yk不同,yp在相机A的视场内,但是相机A在这里观测到的是yq的深度)

因此,在上图中,inlier有俩,outlier一个,occluded