[2018]Detect-SLAM_ Making Object Detection and SLAM Mutually Beneficial
[2018]Detect-SLAM: Making Object Detection and SLAM Mutually Beneficial
1.作者
Fangwei Zhong, Sheng Wang, Ziqi Zhang, Chen Zhou, Yizhou Wang
2.时间
2018
3.整体结构
解决的问题:
- SLAM系统在动态环境下失效;
- 目标检测对视角变换敏感。
是否能够将两者整合在一起,共享几何和语义信息,对两者来说都有利呢?
解决的方法:
- 利用语义信息消除动态目标在SLAM中的影响。
- 提出了一种实时传播每个特征点动态可能性的方法,解决语义信息传递时延的问题。
- 建立一个目标级的地图,由所有静止的目标组成。
应用ORB_SLAM和SSD组成Detect-SLAM.
在Detect-SLAM中,我们利用语义信息来消除SLAM中移动对象所带来的负面影响。为了克服目标检测线程的延迟,提出了一种实时传播关键点运动概率的方法。我们还构建了一个目标级的地图,一个由建图线程中检测到的所有静态对象组成的语义地图,这种对象图可以看作是一个包含对象类和位置信息的数据库。系统的流程图如图一所示:
Detect-SLAM建立在ORB-SLAM2基础上,它有三个主要的并行线程:跟踪、局部建图和闭环检测。与ORB-SLAM2相比,Detect-SLAM包括三个新的处理过程:
• 运动对象剔除
• 对象建图
• SLAM增强型目标检测
4.提出的方法
1.运动目标移除
在SLAM的跟踪线程和局部地图线程消除运动目标,一旦检测到运动目标,比如:人,车,狗,不管他是运动的,还是不运动的,都将其视为潜在运动的,移除这个目标所在区域的特征点。
一个关键的问题:目标检测的效率很低,3FPS。
为了克服效率的问题,提出了两个有效策略:
- 只在关键帧检测运动目标,然后在局部地图更新点运动的可能性,加速跟踪线程。
- 通过特征匹配,匹配点扩张,传递运动可能性,在位姿估计之前移除运动目标上的特征点。
1)运动可能性
按照运动可能性将特征点分为四类:高概率静止,低概率静止,第概率运动,高概率运动。两种高置信度的点都是用于匹配点扩张,以将运动概率传播到那些相邻的未被匹配的点。在每个点通过传播得到运动概率后,移除所有运动的点,使用RANSAC滤除其他异常点用于位姿估计。
2)更新运动可能性
通过深度学习处理关键帧的彩色图像,同时跟踪线程传播帧与帧之间的运动概率,一旦目标检测的结果获得,插入关键帧到局部地图,更新局部地图的运动可能性。
如果地图点在关键帧中找到了对应的特征点,那么根据如下公式更新它的运动概率:
公式第一项表示在上一个关键帧更新之后的地图点运动的概率,如果该地图点是一个新的地图点,我们设置该项为0.5。地图点匹配到的关键点的运动状态为St(xi),如果关键点位于运动物体的检测框内,St(xi)=1,否则为0。a为影响因子,代表更相信之前的运动状态,还是更相信新的检测结果。本文设置为0.3。
3)运动概率传播
在跟踪线程,对于帧与帧之间特征点的运动概率估计,主要通过两种方式:
- 特征匹配
- 匹配点扩张
特征匹配
- 使用ORB特征,如果当前帧的特征点匹配上了前一帧的特征点,描述子距离足够小,则运动概率传递。
- 如果关键点和地图点匹配,也会传递相应的运动概率,在此情况下,如果上一帧的特征点和局部地图点都和匹配点构成匹配关系,则局部地图优先。
- 如果特征点没有找到匹配点,设置其运动概率为0.5.
匹配点扩张
高置信度的关键点传播到周围其他没有匹配关系的关键点,基于假设:在大多数情况下,一个领域内的运动状态保持一致性。
所以在特征匹配运动概率传递以后,选取高置信度的点,包括静止的、运动的,然后在高置信度点的领域内寻找未匹配的点,通过如下公式更新运动概率:
Pinit表示初始的运动概率,如果一个关键点周围存在多于一个高概率的关键点,则对所有点的影响进行加权求和。权值为到关键点的距离,误差设置为两种的运动概率之差。
2.建立对象级地图
1)区域ID预测
该部分实际是数据关联,即对每个检测的区域(对象)寻找和地图中已知的对象的关联还是建立新的对象。数据关联基于一个几何假设:如果是同一个物体,那么地图中该物体在当前帧的投影和检测结果应该是重合的,所以我们计算两个区域的交并比:其中。R1为检测区域,R2为投影区域。
如果交并比超过0.5,那么继续计算两个区域的深度投影误差:区域中每个像素的深度投影误差之和/区域的像素数量。深度似然高于阈值,则将匹配区域的物体ID赋予当前区域,否则赋予当前区域一个新的ID。
2)背景剔除和重建
因为检测框会包含很多背景点,所以利用Grad-cut算法剔除背景点,投影到检测框内的点作为前景,投影到检测框外的点作为背景。利用物体mask,计算物体的点云并根据估计的相机位姿将其转到世界坐标系中插入到地图中。
3)SLAM增强型目标检测
与传统的逐帧的目标检测方法相比,机器人在环境中多次从不同的角度观察同一个对象。通过将重建后的三维环境中的几何信息提供给目标检测,提高了目标检测的性能,保证了目标检测在空间上的一致性。如图所示:
我们将地图中的物体通过估计的相机位姿投影到当前帧形成一个Region Proposal,作为可能包含物体的候选区域。由于地图中的物体地图点都包含一个物体ID,所以投影到图像上也具有相同ID,我们通过物体ID的聚类实现候选区域选取。同时需要滤除一些由噪声产生的小区域。
5.实验
运行环境: Intel Core i7-4700 laptop with 16GB RAM and Nvidia GPU GTX960M (GPU只用于目标检测)
1)提高在动态环境下的定位精度和鲁棒性。
如图所示,第一行分别是我们的系统(红色)、RGB-D ORB SLAM(蓝色)和groundtruth(绿色)在fr3/w/xyz、fr3/w/half和fr2/flower中的估计轨迹。第二行是运行时关键点状态的显示。红色点代表动态关键点,绿色点代表静态关键点,每个关键点的半径反映每个状态的置信度。这些图像表明,我们的方法可以将大部分关键点逐帧精确地分为动态或静态两种状态。
为了评估系统的性能,将每种方法在数据集上运行5次然后取中位数,结果如Table 1所示。其中Ours1为本文方法没有上一关键帧匹配,Ours2为本文完整的方法,MR为一种运动目标移除的方法。
**MR:**Y. Sun, M. Liu, and M. Q.-H. Meng. Improving RGB-D SLAM in dynamic environments: A motion removal approach. Robotics and Autonomous Systems, (December):1–13, 2016
结论:可以看出本文的方法不仅能够通过语义信息使得基于特征的SLAM方法更加鲁棒,而且在处理一些具有挑战性的动态场景时,也具有可用性和有效性。
表二反映了运动目标移除每一步的运行时间:
2)SLAM增强型目标检测算法
本文提出的SLAM增强型目标检测算法的测试结果如图6所示,通过SLAM构建的对象地图,帮助提高目标检测在复杂条件下的识别效果。
[2018]Detect-SLAM_ Making Object Detection and SLAM Mutually Beneficial相关推荐
- CVPR 2018 paper ---object detection
转载:https://blog.csdn.net/qq_34848537/article/details/82968217 参考链接 CVPR 2018 论文解读集锦(9月27日更新) CVPR 20 ...
- 2018_Semantic SLAM Based on Object Detection and Improved Octomap_note
注释 (2022/4/15 上午9:14:24) "ABSTRACT" (Zhang 等., 2018, p. 1) (pdf) 提出了什么: "In this pape ...
- CVPR,2018,THP-Towards High Performance Video Object Detection面向高性能的视频目标检测
CVPR是IEEE Conference on Computer Vision and Pattern Recognition的缩写,IEEE国际计算机视觉与模式识别会议.该会议是由IEEE举办的计算 ...
- [Relation Network]Realtion Networks for Object Detection (CVPR. 2018)
文章目录 1. Motivation 2. Contribution 3. Object Relation Moudle 4. Relation Networks For Object Detecti ...
- Object Detection(目标检测神文)
目标检测神文,非常全而且持续在更新.转发自:https://handong1587.github.io/deep_learning/2015/10/09/object-detection.html,如 ...
- YOLO_ Real-Time Object Detection 实时目标检测
YOLO: Real-Time Object Detection 实时目标检测 You only look once(YOLO)是一种先进的实时目标检测系统.在Pascal Titan X上,它以每秒 ...
- Tensorflow object detection API 搭建自己的目标检测模型并迁移到Android上
参考链接:https://blog.csdn.net/dy_guox/article/details/79111949 之前参考上述一系列博客在Windows10下面成功运行了TensorFlow A ...
- Object Detection经典代码与文章
转载自Object Detection Papers Deep Neural Networks for Object Detection paper: http://papers.nips.cc/pa ...
- Expanding Low-Density Latent Regions for Open-Set Object Detection
Expanding Low-Density Latent Regions for Open-Set Object Detection CVPR2022 Code: https://github.com ...
最新文章
- AttributeError: ‘dict‘ object has no attribute ‘append‘
- js入门·循环与判断/利用函数的简单实例/使用对象/列举对象属性的名称
- Redis+keepalived 主从搭建
- httpservletrequest_了解HttpServletRequest 对象 基本应用
- VS2012 编译 boost1.53/ boost1.49
- 谈谈分布式事务(Distributed Transaction)[共5篇]
- 修改了xml要不要重新起服务器,关于设置:Eclipse每次运行项目时都会修改server.xml(运行-在服务器上运行)...
- 支持千万人次毫秒级交易,360金融的系统性能如何做到?
- AI大牛发起神秘字母接龙,起因竟然是……
- 数字盲打怎么练_数字键盘区的功能及指法技巧
- 【work】输出日期为那一年的第几天
- 小D课堂 - 新版本微服务springcloud+Docker教程_4-01 常用的服务间调用方式讲解
- 无线怎么测试软件,WiFi分析仪软件
- 咸鱼前端—html常用标签
- NLP句子表征,NLP 的巨人肩膀(下):从 CoVe 到 BERT (转载)
- Maven依赖冲突详解
- AD在PCB设计中导入LOGO
- opencore amr android,苹果手机amr文件用什么打开,opencore框架进行语音
- php import mdf,mdf文件用什么打开 mdf是什么文件
- 【Java】算法之矩阵的加减乘除运算