您的位置:首页 > 其它

[置顶] Elastic fusion 与 Kintinous 在线对比效果(奥比中光相机)——实验(一)

2017-03-04 16:22 351 查看
大家好,最近在研究 使用rgbd 相机实时三维重建,使用到大名鼎鼎的efusion 与 Kintinous ,发现在回环测试方便efusion 效果更好,之前看过清华-高翔 做的ORB-SLAM 增加pointcloud 模块 ,可惜是稠密部分没有回环,阴影重叠太过明显。 那个代码我自己做了修改,关键帧上筛选,最后结束时,会做重做一次icp ,效果会好点。

本身github 上的代码测试 klg 格式的,我测试了KinectV2效果,由于他的深度图使用的是512*424 (好像是这个,我忘了),如果使用需要修改这个size ,不然初始话会出问题 。

1、算法原理介绍:

付大神 已经介绍的很消息了,如果有需要的可以关注他的博客:http://blog.csdn.net/fuxingyin/article/details/51436430

我简单说下,回环部分,efusion 有局部回环和全局回环,可能理解有所偏差,请不吝赐教。

局部回环:



其实回环的 非常关键的,如果检测不到回环的话,重建出来的效果就会出现重影,就算后期用点云处理软件处理起来也是非常麻烦的。

如图,当相机向左边移动,当回到以前经过的地方(ii),本文用一个活动区域 和非活动区域 ,可以认为是重建时间先后的关系。当有重叠部分 ,存在回环的话,计算两帧的点云,将这两帧进行配准。


抽取两帧点云, 需要满足下面约束的条件:



H为 活动区域与非活动区域投影的配准计算得到的位置矩阵,Pt为当前帧和surfels之间的位姿,p(u,Dat)表示输入图像(投影得到的图像),Titu(u)和t代表点云的时间。
局部回环有跟局部BA 很像,都是用到投影误差。
全局回环检测:
上图中的(x),当相机从活动区域移动非活动区域,出现漂移,出现没有对准的情况,在(VII)用红色箭头显示等效点,触发全局回环闭合,同样是由活动区域对准非活动区域,非活动区域被激活,回环采用的算法是Randomized Ferns(这部分付大神已经有人介绍过了,这是不多介绍了)。
同样的也有个约束条件:



全局和局部回环的区别:
有人会问既然有局部回环 ,为什么还用使用用全局回环?
全局的目的在与消除之前因为移动过大,角度过大,产生的累计误差,起到消除累计误差的作用。全局情况,也就是大闭环前提不是在因为交叠起作用的,活动区域与非互动区域对应点没有出现交叠,也不能用重投影的方法来消除误差。
光有全局回环,没有局部回环是否可以行呢?
我觉得不太可行,局部回环的目的在于消除重叠,通过投影出的点来计算位姿,如果不使用重定位,就做个做个大闭环,最后通过全局回环检测来消除因漂移过大导致的误差,这个的方式也不太靠谱,全局回环会把误差平均到每个帧上,有些部分是误差很小,最后反而误差变大了。
2、实验效果:
数据测试效果(略)
在线测试效果:
Ubuntu14.04
相机:奥比中光







全局图显示看下:



Kintinous实验效果:
由于 efusion 只能适用小场景,多小算小呢 其实就是一个房间差不多,其实跟你内存有关的。
下面看下kintinous 效果:



总结:
总的来讲,效果还是很不错,efusion 回环效果 更好些,缺点只能是小场景。Kintinous回环有点问题,不知道是不是好的那部分代码没有开源出来把,有时候测数据集闭环效果也不是特别好。
----------------------------------------------------------------------

原创内容,商业行为、转载、转发请注明出处》》》》》》》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: