点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

作者丨Mr Qin

来源丨古月居

1. 语义slam中的时间效率问题

针对动态场景下的SLAM问题,解决方法大致可以分为两大类,一类是使用多视图几何或者其他传统方法检测外点或者残差较大的动态区域,另一类是使用深度学习的方法,包括目标检测和实例分割的一些网络,将一些先验的运动的物体分割出来进行剔除。在特定使用的场景下,后者能够高效的剔除动态物体上的特征点,大大提升定位精度,将其与传统方法结合将是未来的趋势。

但是很多神经网络融合进SLAM后并不能实时运行,而且分割精度与准确度通常和时间效率成反比,要想得到更快的分割速度,往往需要以牺牲精度为代价。所以,在使用深度学习方法解决动态环境下的SLAM问题时,如何提高系统运行效率是一个亟待解决问题。

2. 解决方法探讨

2.1 方案一:将分割网络放在单独的线程

清华大学的论文《DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments》中,提出将语义分割网络放在一个单独运行的线程之中,这样语义分割可以和ORB特征提取、运动一致性检测并行运行,可以提高系统运行的效率。这种做法得到了之后很多人的采纳,但是在这里运动一致性检测不再能使用语义分割结果,而且所使用的语义网络运行速度也需要足够高,否则还是会成为提升性能的瓶颈所在。

2.2 方案二:目标检测与语义分割网络之间的切换

首先要知道目标检测是用方框将将图像中的每一个检测到的物体框起来,语义分割是像素级别的将图像中每一类物体进行分类,实例分割是像素级将图像中每一个物体进行分类。由此可见语义分割与实例分割的分割结果要优于目标检测,所以一般来说分割所需要的时间也更长一些。故可以在特征点丰富的情况下,使用目标检测网络以提高系统运行的效率,而在特征点较少的情况下,使用像素级别的语义分割以提高分割精度来得到更多背景上的静态的特征点。

例如,为了解决平衡计算速度和mask准确度,如论文《STEREO CAMERA VISUAL SLAM WITH HIERARCHICAL MASKING AND MOTION-STATE CLASSIFICATION AT OUTDOOR CONSTRUCTION SITES CONTAINING LARGE DYNAMIC OBJECTS》中提出了一种分层对象去除(Hierarchical Object Masking)的策略。具体的,首先使用EfficientDet网络进行目标检测,如果车辆检测框占图像面积比例超过一定的阈值,则认为背景上的特征点过少,需要使用像素级别的分割网络Mask-Rcnn得到更加精细的分割结果,从而得到更多的背景上的特征点。

2.3 方案三:只在关键帧上进行目标检测

既然不能实时的在SLAM系统中运行神经网络,那就只在关键帧上进行检测,然后将结果传播到其他帧上去。2018年北京大学发表在WCACV的论文《Detect-SLAM: Making Object Detection and SLAM Mutually Beneficial》提出了一个在GPU加速的情况的可以实时运行的开源动态SLAM系统Detect-SLAM。具体的文中介绍到,将SLAM与目标检测算法相结合可以很好的弥补二者的不足,利用目标检测算法去除运动目标上的特征,可以提高动态环境下的SLAM系统定位性能,而利用SLAM系统建立的语义地图又可以帮助改善在具有挑战性条件下的目标检测效果。下面我们只讨论我们关心的部分,如何让融合目标检测网络实的SLAM系统实时运行?

Detect-SLAM提出了两种策略克服时间效率问题:1.只在关键帧中进行目标检测(SSD网络),然后对局部地图中地图点的更新运动概率2. 通过特征点匹配和匹配点传播来传播运动概率,之后使用移动概率小的特征点进行跟踪。

更新运动概率

对关键帧In的RGB图像进行目标检测,由于目标检测需要较长时间,此时其他图像Tn+i通过上一帧图像的概率传播获得移动概率。当目标检测完成后(移动物体比如人上的特征点设为1,背景上的特征点设为0),对局部地图中对应特征点的概率进行更新,具体方法为:

传播运动概率

对于除了关键帧以外的普通帧,需要通过帧与帧之间的概率传播得到当前帧各个特征点的运动概率,具体包括特征匹配和匹配点扩散两种形式。1. 将当前帧的特征点与上一帧和局部地图中的特征点进行匹配,若匹配成功,则之间将其运动概率拷贝过来。2. 对于匹配失败的特征点,利用特征点的空间一致性得到运动概率。对于置信度高(分数过低或过高)的特征点设置影响半径,向影响到的未匹配到的特征点传播运动概率。

2.3 方案三:只在关键帧上进行目标检测

论文《RDS-SLAM: Real-Time Dynamic SLAM Using Semantic Segmentation Methods》以及后续的论文《RDMO-SLAM: Real-Time Visual SLAM for Dynamic Environments Using Semantic Label Prediction With Optical Flow》新增了语义线程,只在关键帧中进行语义分割,并根据分割结果更新特征点的运动概率。其详细分析和对比了各种关键帧选择方案的语义延时,并给出了一种关键帧的选择策略,适用于各种速率的分割网络,可以最大限度的降低语义延迟、挖掘语义信息的潜力。

假设每两帧选择一帧关键帧,使用Mask-Rcnn进行分割(每分割一张图片,slam可以处理10帧)。下面具体分析三种关键帧的选择策略所产生的语义延迟:

方法1,按顺序对每一帧关键帧进行分割:首先对关键帧KF0(F0)进行分割,则10帧后F10得到分割结果,语义延迟为10。KF1(F2)在第11帧开始分割,20帧得到结果,此时F20的语义延迟为18。按此规律F30延迟为26,F40为34…语义延迟随时间呈线性增长。

方法2,使用两个网络对图像按顺序同时进行分割:F12的语义延迟为10,F22的延迟为16。以次类推,语义延迟仍然随时间呈线性增长,故通过增加语义分割的线程数不能从根本上解决问题。

方法3,使用两个网络,从队列的头和尾部进行分割,一个网络分割最近的关键帧。语义延迟为常数10。

论文采用方法3进行分割,丢队列头部的关键帧进行语义分割的目的在于,语义线程是在跟踪线程之后的,导致前几帧是没有语义信息进行参考的(Mask-Rcnn为10),前期可能会积累很大误差,需要语义信息进行修正。

以后新分割的语义信息通过贝叶斯理论融合到地图点中去,以更新移动概率,移动概率以权重的方式融合到位姿优化之中。

3. 分析与总结

方案一将分割网络放在一个单独的线程运行,通过系统并行运行提高效率,但是这种方案需要网络分割速度足够快,否则还是会成为提高性能的瓶颈。

方案二在两个网络间切换的策略容易实现,一定程度上可以提高系统运行速度,但是受算法原理的限制,速度不可能提高到快,即最快情况下等于目标检测网络的速度,没有从根本上解决问题。

方案三在关键帧中进行目标检测,能够保证系统高效的运行。但是关键帧的插入是由环境决定的,即关键帧之间的间隔是不稳定的,可能会因为关键帧间隔过大导致目标检测的能力没有充分发挥出来,也可能会因关键帧间隔过短导致目标检测速度跟不上。(Detect-SLAM想法还是非常非常巧妙和强大的)。

方案四将创建了一个队列用来存储关键帧,同时分割队列头部和尾部的关键帧,适用于不同速率的网络,在极大缩短语义时延的同时,对前几帧没有语义信息的图像进行分割,一定程度上弥补了初始阶段的误差累积。

本文仅做学术分享,如有侵权,请联系删文。

3D视觉精品课程推荐:

1.面向自动驾驶领域的多传感器数据融合技术

2.面向自动驾驶领域的3D点云目标检测全栈学习路线!(单模态+多模态/数据+代码)
3.彻底搞透视觉三维重建:原理剖析、代码讲解、及优化改进
4.国内首个面向工业级实战的点云处理课程
5.激光-视觉-IMU-GPS融合SLAM算法梳理和代码讲解
6.彻底搞懂视觉-惯性SLAM:基于VINS-Fusion正式开课啦
7.彻底搞懂基于LOAM框架的3D激光SLAM: 源码剖析到算法优化
8.彻底剖析室内、室外激光SLAM关键算法原理、代码和实战(cartographer+LOAM +LIO-SAM)

9.从零搭建一套结构光3D重建系统[理论+源码+实践]

10.单目深度估计方法:算法梳理与代码实现

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、多传感器融合、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的视频课程(三维重建系列、三维点云系列、结构光系列、手眼标定、相机标定、激光/视觉SLAM自动驾驶等)、知识点汇总、入门进阶学习路线、最新paper分享、疑问解答五个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近4000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

圈里有高质量教程资料、答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

动态SLAM:关于语义分割时间效率的讨论相关推荐

  1. 动态场景下基于实例分割的SLAM(毕业设计开题及语义分割部分)

    动态场景下基于实例分割的SLAM(毕业论文设计思路及流水) 前言 今年选了个比较难的毕设题目,这里记录一下自己思路和流程,为之后的学弟学妹(划掉)铺个方向.会按日期不定期的更新. 一.开题 2019. ...

  2. 【NIPS2018】实时联合目标检测与语义分割网络

    本文发表于第32届神经信息处理系统会议(NIPS 2018),是法国汽车零部件供应商法雷奥集团(Valeo)研究提出的一种用于自动驾驶领域的多任务神经网络,可同时执行目标检测与语义分割任务. 代码开源 ...

  3. 基于语义分割的矸石充填捣实机构防碰撞系统

    对研一时候做的一个项目进行简短的总结~ 背景:为某煤矿公司智能研究中心做一个智能检测:矸(gān)石充填防碰撞的检测和预警.矸石充填就是捣实机不断把传动带送过来的细碎矸石给往后捣实.以往都是矿工手动操 ...

  4. 据我所知,这是第一个完整实现运动分割、动态目标追踪等的「开源」动态SLAM系统!...

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 今天给大家分享一篇最新文章,VDO-SLAM :一种动态目标感知的视觉SLAM系统,原文名称 VDO- ...

  5. 论文翻译 | Mask-SLAM:基于语义分割掩模的鲁棒特征单目SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 1 摘要 本文提出了一种将单目视觉SLAM与基于深度学习的语义分割相结合的新方法.为了稳定运行,vSL ...

  6. Dynamic Routing-中科院西交旷视(孙剑团队)提出用于语义分割的动态路由网络,精确感知多尺度目标,代码已开源!...

    关注公众号,发现CV技术之美 ▊ 写在前面 近年来,大量手工设计和基于搜索的网络被用于语义分割.然而,以前的工作(如FCN.U-Net和DeepLab系列)希望在预定义的静态网络结构中处理不同规模的输 ...

  7. Mask-SLAM:基于语义分割掩模的鲁棒特征单目SLAM

    摘要 本文提出了一种将单目视觉SLAM与基于深度学习的语义分割相结合的新方法.为了稳定运行,vSLAM需要静态对象上的特征点.在传统的vSLAM中,随机样本一致性(RANSAC) 用于选择那些特征点. ...

  8. MaskFusion:惊艳的结合实例感知、语义分割、动态追踪的SLAM系统

    (关注"我爱计算机视觉"公众号,一个有价值有深度的公众号~) 继ECCV2018将于9月份在德国慕尼黑开幕,增强现实领域盛会ISMAR2018也将于10月下旬在慕尼黑召开,与ECC ...

  9. 用于RGB-D语义分割的全局-局部传播网络

    点击上方"小白学视觉",选择加"星标"或"置顶"重磅干货,第一时间送达 小白导读 论文是学术研究的精华和未来发展的明灯.小白决心每天为大家带 ...

最新文章

  1. 有关eigen库的一些基本使用方法
  2. java api 1.6 下载_Java JDK API
  3. SaaS 产品设计的原则
  4. Java Web学习总结(1)——JavaWeb开发入门
  5. 超好用的开源 IP 地址管理系统,告别传统 Excel 统计方式!
  6. 全国首个NB-IoT规模化商用 - BC95模块
  7. 如何把大写金额变为小写数字_excel表格技巧:怎么快速把阿拉伯数字小写金额转换成大写金额...
  8. 清理C盘垃圾文件的方法
  9. 企业转型遇到这些难题,就可以考虑一款APS生产计划排产软件了
  10. NET Reflector
  11. Pixelmator for mac(图片编辑处理工具) v3.8.1激活版
  12. 视频文案合并,清除原视频声音让文案转语音
  13. QQ Tim另存为文件时闪退,错误模块ntdll.dll
  14. 虚拟机Ubuntu安装vmtools
  15. 数据库连接超时的处理
  16. 设置openwrt,使wifi路由器既可以连接到外网wifi路由器,并且还能够让无线设备来连接。
  17. 应试教育中的孩子长不好
  18. Google Android SDK开发范例大全
  19. 励志:98岁老爷爷用Windows系统自带画图软件制作的神作
  20. 2021年山东省安全员C证考试及山东省安全员C证试题及解析

热门文章

  1. Java 代理(proxy)模式
  2. 我国自主研发手机操作系统 960 OS 发布
  3. Arrays.asList问题
  4. vim编辑器----常用命令
  5. delphi处理消息的几种方式
  6. [转载]SQL Server行列转换实现
  7. 天龙源码分析 - 选择角色流程
  8. 年后准备跳槽可以看看
  9. 经典智力面试题:一家人过桥
  10. 图解|什么是高并发利器NoSQL