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

      大家好,最近在研究 使用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回环有点问题,不知道是不是好的那部分代码没有开源出来把,有时候测数据集闭环效果也不是特别好。

----------------------------------------------------------------------

原创内容,商业行为、转载、转发请注明出处》》》》》》》

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值