[LiteratureReview]EAO-SLAM: Monocular Semi-Dense Object SLAM Based on Ensemble Data Association

出处:2020IROS,(截止到2022-4-4)目前 Google scholer被引15次;吴艳敏的文章(东北大学硕士,现北大博士在读);

Video:https://www.bilibili.com/video/BV15E411u7za

Code:https://github.com/yanmin-wu/EAO-SLAM

Introduction

如图1所示,半稠密地图中使用cubes 或者 quadrics 表示object以及其locations、poses和scales ;

图1:轻量级和面向对象的语义地图

Object SLAM 的挑战主要来自两个方面:

  • 现有的数据关联方法 [5]-[7] 对于处理包含多个对象实例的复杂环境并不稳健或不准确;
  • 物体poses估计不准确,尤其是对于monocular object SLAM SLAM;

EAO-SLAM主要贡献:

  • 提出了一种ensemble data association strategy (集成数据关联策略),可以有效地聚合对象的不同测量值以提高关联精度;
  • 提出了一个基于iForest的object pose estimation framework,它对outliers具有鲁棒性,可以准确估计物体的位置、poses和scales ;
  • 系统会构建轻量级和object-oriented(通过cubes 或者 quadrics 表示object)的半稠密语义地图;

Related work

A. Data Association

Data association定义:用于判断当前帧中观察到的object是否为地图中已有的object(感觉这和描述子的意思差不多,但是这种方法是否适用于动态物体?);

相关工作如下:

  • Bowman et al. [5] :使用概率方法对数据关联过程进行建模,并利用 EM 算法来查找观察到的地标之间的对应关系;

  • 随后[7]、[11] 进一步扩展了该想法以关联动态对象或进行语义稠密重建;这些方法可以实现很高的关联精度,但只能处理有限数量的对象实例;

  • Object tracking是Data association中另一种常用的方法;[13] 提出将 3D 立方体投影到图像平面,然后利用Hungarian tracking算法使用投影的 2D 边界框进行关联,基于跟踪的方法运行时效率高,但在复杂环境中很容易生成不正确的先验,从而产生不正确的关联结果;

  • Liu et al. [14]:提出了random walk descriptors 来表示对象之间的拓扑关系,将共享描述符数量最多的那些视为同一实例;

  • Cube-slam[8] 直接计算检测到的object上匹配的地图点的数量作为关联标准,从而产生非常有效的性能;

  • Grinvald et al. [2] :提出测量语义标签之间的相似性;Ok et al. [3] 提出利用色调饱和度直方图的相关性;这些方法的主要缺点是设计的特征或描述符通常不够通用或不够鲁棒,很容易导致不正确的关联;

  • Weng et al. [15]:首次提出语义数据关联的非参数统计检验,可以解决统计不服从高斯分布的问题;

  • Iqbal et al. [6]:随后验证了非参数数据关联的有效性;然而,这种方法不能有效地解决遵循高斯分布的统计数据,因此不能充分利用 SLAM 中的不同测量;

总结:基于上述观察,我们将参数和非参数方法结合起来进行模型集成,在存在多类别对象的复杂场景中表现出优异的关联性能;

B. Object SLAM

相关工作如下:

  • [15]、[18]、[19] 将objects视为landmarks以estimate camera poses or for relocalization[13];

  • 一些工作 [20] 利用object size来约束单目 SLAM 的scale,用来提高位姿估计的精度;

  • 一些工作 [7]、[21]通过去除动态object以提高位姿估计的精度;

  • 最近object SLAM 与抓取的结合 [22] 也引起了很多兴趣,促进了自主移动操纵的研究;

  • Object models方面:可以大致分为instance-level models, category-specific models, and general models;instance-level models [9]、[23] (6 Dof形式)依赖于记录所有相关object的完善数据库,object的先验信息为图优化提供了重要的对象-相机约束,由于需要提前知道模型,因此此类方法的应用场景有限; category-specific models侧重于描述category-level 的特征;general models采用简单的几何元素,例如cubes[8]、[13]、quadrics[18]和圆柱体[10]来表示object,这也是最常用的模型;

  • 在相机和物体姿态的联合优化方面:Frost et al. [20] 简单地将object质心作为点云集成到相机位姿估计过程中;Cubeslam[8]提出了一种联合camera-object-point 优化方案来构建用于图优化的位姿和scale约束;Quadricslam[18] 将二次曲线投影到图像平面上,然后计算投影的二维矩形和检测到的边界框之间的比例误差;

总结:本工作同样采用联合优化策略,但采用了新颖的初始化方法,可以显着提高解的最优性;

Methods

EAO-SLAM概述:EAO-SLAM framework如图2所示,其建立在ORB-SLAM2 的基础上,另外还集成了一个 YOLOv3 目标检测线程;ensemble data association 在tracking thread中实现,它结合了边界框、语义标签和点云的信息;之后,利用 iForest 消除异常值,为联合优化过程找到准确的初始化;然后将object pose和scale与相机pose一起优化,以构建轻量级和面向对象的地图;在semi-dense mapping thread中,object map与[25]生成的semi-dense map相结合,得到semi-dense semantic map;

图2:EAO-SLAM系统的架构,这项工作的主要贡献用红色突出显示

ENSEMBLE DATA ASSOCIATION

A. Nonparametric Test:这里使用非高斯点云构造了一个高斯统计;

图3:用于数据关联的不同类型的统计

B. Single-sample and Double-sample T-test:这里利用双样本 t-test通过测试两个object的历史质心(图 3 © 中的星星)来确定是否合并两个object;

OBJECT SLAM

Object Representation:EAO-SLAM利用cubes 和quadrics来表示object;对于具有规则形状的object,例如书籍、键盘和椅子,使用cubes(由其顶点 Po 编码)来表示它们;对于没有明确方向的非常规对象,例如球、瓶子和杯子,quadrics(由其半轴 Qo 编码)表示;在全局地图上表示所需的R和T:

并且假设物体与地面平行放置,即 θr=θp=0,只需要估计立方体的 [θy, t, s] 和二次曲面的 [t, s];

Estimate t and s:假设全局框架中有一个物体点云X,我们按照约定用t表示它的均值,据此可以计算出尺度s = (max(X) − min(X))/2;主要的问题是X通常会有很多异常值,会给 t 和 s 的估计带来很大的偏差,本文中的主要贡献之一是开发了一种基于 iForest [27] 的异常稳健质心和尺度估计算法,以提高估计精度,算法详细过程在下图算法1中所示:

算法1:基于iForest的质心和尺度估计

分析:该算法的关键思想是将数据空间递归地分离成一系列孤立的数据点,然后将容易孤立的数据点作为异常值;其原理是,正常点通常位于更近的位置,因此需要更多的步骤来隔离,而异常值通常分散稀疏,可以用更少的步骤轻松隔离;如算法所示,首先使用object的点云(第 2 行和第 14-33 行)创建 t isolated tree(iForest),然后通过计算每个点 x ∈ X(行3-9),其中评分函数定义如下:

其中C是归一化参数,H是权重系数,h(x)是孤立树中点x的高度;如图 4(d)-(e) 所示,黄点经过四步被隔离,因此其路径长度为 4,而绿点的路径长度为 8。因此,黄点更可能成为异常值;在作者的实现中,得分大于 0.6 的点被删除,剩下的用于计算 t 和 s(第 10-12 行),基于 s,可以初步构造对象框架中的三次方和二次方,如图 4(a)-© 所示, s 将在稍后与对象和相机姿势一起进一步优化;

图4:iForest 的object表示和演示

Estimate θy:θy的估计分为两步,即先为θy找到一个好的初始值,然后根据初始值进行数值优化;由于姿态估计是一个非线性过程,良好的初始化对于帮助提高估计结果的最优性非常重要;位姿初始化算法的细节在算法2中所示;

算法2:object 位姿估计的初始化

分析:error定义如下所示:

e(θ) 的计算演示在图 5 (e)-(g) 中可视化;评分函数定义如下:

图5:线对齐以估计物体方向

Joint Optimization:在获得初始 S 和 θy 后,然后作者联合优化object和相机位姿:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bSnO0ynt-1649382953978)(https://raw.githubusercontent.com/GRF-Sunomikp31/PicBed/master/EA0SLAM_3_4.png)]

其中第一项是 Eq.(13) 中定义的object pose error;尺度误差 e(s) 定义为立方体的投影边缘与其最近的平行 LSD 段之间的距离;第二项 e§ 是传统 SLAM 框架中常见的重投影误差;

Experiment

A. Distributions of Different Statistics

Data association部分测试采用的统计数据包括point clouds 及其object的质心;为了验证关于不同统计量分布的假设,作者分析了大量数据并将它们的分布可视化,如图6所示:

图6:数据关联中不同统计量的分布; (a) 点云在三个方向上的位置分布, (b) 质心的距离误差分布

分析:图6 (a) 显示了fr3 long office序列中data association过程中13个object的点云分布,很明显该统计数据不符合Gaussian distribution,可以看出,分布与对象的特定特征有关,并没有表现出一致的行为;图 6 (b) 显示了object质心在不同帧中的误差分布,通常遵循Gaussian distribution;该结果验证了对点云应用非参 Wilcoxon Rank-Sum 检验和对object质心应用 t 检验的合理性

B. Ensemble Data Association Experiments

作者将其方法与常用的Intersection over Union(IoU) 方法、非参数检验 (NP) 和 t-test进行比较,图 7 显示了这些方法在 TUM fr3 long office sequnc 中的关联结果;

图7:数据关联结果的定性比较;(a) IoU method. (b) IoU and nonparametric test. © IoU and t-test. (d) our ensemble method.

分析:从图7上可以看出来,(a)-©中有些object没有正确关联;EAO-SLAM实现了很高的关联成功率,并且地图中的对象数量更接近GT;

表1:数据关联结果

作者还将其方法与[6]进行了比较,结果如表二所示:

表2:数据关联质量分析

分析:效果比[6]好,特别是在 TUM 数据集中,EAO-SLAM成功关联的object数量几乎是 [6] 的两倍;在 Microsoft RGBD 和 Scenes V2 中,由于object数量有限,优势并不明显;[6]的关联不准确的原因有两个:1)该方法没有利用不同的统计量,只使用了非参数统计量,从而导致许多未关联的对象; 2)利用聚类算法来解决上述问题,它删除了大部分候选对象;

C. Qualitative Assessment of Object Pose Estimation

作者将object的cubes和quadrics叠加在半稠密地图上以进行定性评估;图 8 是键盘的 3D 俯视图(图 5(a)),其中立方体表示其pose;图 8(a) 是具有大尺度误差的初始位姿;图8(b)是使用iForest后的结果;图 8© 是我们联合姿态估计后的最终位姿:

图8:位姿估计可视化

图 9 展示了三个数据集的 14 个序列中object的位姿估计结果,其中object被随机放置在不同的方向上;如图所示,EAO-SLAM使用单目相机取得了有希望的结果,这证明了EAO-SLAM位姿估计算法的有效性:

图9:object位姿估计的结果;奇数列:原始 RGB 图像;偶数列:估计的物体位姿

说明:由于数据集不是专门为object pose estimation而设计的,因此没有用于定量评估这些方法的 groundtruth;在这里,作者比较了初始化前 (BI)、初始化后 (AI) 和联合优化后 (JO) 后的 θy,如表三所示,物体原始方向与全局坐标系平行,存在较大的角度误差;位姿初始化后误差减小,联合优化后误差进一步减小,验证了作者的位姿估计算法的有效性;

表3:物体角度误差的定量分析

D. Object-Oriented Map Building

作者基于鲁棒的数据关联算法、精确的对象位姿估计算法和半稠密地图系统构建了object-oriented的semantic maps;图10展示了 TUM fr3_long_office 和 fr2_desk 的两个示例,其中 (d) 和 (e) 显示了由 EAO-SLAM 构建的半稠密语义地图和object-oriented的地图:

图10:不同的地图表示; (a) RGB 图像, (b) 稀疏地图, © 半稠密地图,(d) 作者的半稠密语义图, (e) 作者的轻量级和object-oriented的地图,(d) 和 (e) 由 EAO-SLAM 构建

EAO-SLAM的半稠密语义地图比ORB-SLAM2的稀疏地图更好的表达环境,在环境理解上比[25]中提出的半稠密地图更好;

TUM、Microsoft RGB-D 和 Scenes V2 datasets其他序列的建图结果如图11所示:

图11:EAO-SLAM 在三个数据集上的结果。顶部:原始图像;底部:simi-dense 面向对象的地图

分析:以看出,EAO-SLAM可以在复杂环境中处理多类不同尺度和方向的物体;不可避免地有一些不准确的估计,例如在fire sequence中,椅子太大而无法被快速移动的摄像机很好地观察到,从而产生不准确的估计;

作者在真实场景进行了实验,效果如图12所示:

图12:EAO-SLAM 在真实场景中的结果;左右:原始图像;中:半稠密的面向对象的地图

分析:可以看出,即使物体被遮挡,也可以准确估计,进一步验证了EAO-SLAM的鲁棒性和准确性;

Conclusion

EAO-SLAM基于 robust ensemble data association 方法和准确的位姿估计框架,目的是构建semi-dense 且 lightweight object-oriented maps;

[LiteratureReview]EAO-SLAM Monocular Semi-Dense Object SLAM Based on Ensemble Data Association相关推荐

  1. EAO-SLAM: Monocular Semi-Dense Object SLAM Based on Ensemble Data Association

    EAO-SLAM: Monocular Semi-Dense Object SLAM Based on Ensemble Data Association EAO-SLAM:集成数据关联的单目半稠密物 ...

  2. [LiteratureReview]CubeSLAM Monocular 3-D Object SLAM

    [LiteratureReview]CubeSLAM: Monocular 3-D Object SLAM 出处:2019 IEEE Transactions on Robotics,(截止到2022 ...

  3. 单目3D物体级SLAM | CubeSLAM: Monocular 3D Object SLAM

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 本文由知乎作者原野寻踪授权转载,不得擅自二次转载.原文链接:https://zhuanlan.zhih ...

  4. CubeSLAM: Monocular 3D Object SLAM 论文笔记

    CubeSLAM: Monocular 3D Object SLAM 论文笔记 摘要 提出了一种静态和动态环境下单幅图像3D长方体目标检测和多视点目标SLAM的方法,并证明了这两个部分是相互促进的. ...

  5. 实时SLAM的未来及与深度学习的比较The Future of Real-Time SLAM and “Deep Learning vs SLAM”

    The Future of Real-Time SLAM and "Deep Learning vs SLAM" Last month's International Confer ...

  6. ORB_SLAM : semi dense code

    2016.9.20 update:添加论文中部分公式推导. 2016.9.9 update:完善部分代码 2016.9.7:初始博客 单目摄像头的Semi Dense 听起来很美,比如有人想用这个结合 ...

  7. 视觉SLAM学习(三)--------SLAM 综述

    SLAM概述 参考资料分享来自本人博客:https://blog.csdn.net/Darlingqiang/article/details/78840931 SLAM一般处理流程包括track和ma ...

  8. 目标检测 | RetinaNet:Focal Loss for Dense Object Detection

    论文分析了 one-stage 网络训练存在的类别不平衡问题,提出能根据 loss 大小自动调节权重的 focal loss,使得模型的训练更专注于困难样本.同时,基于 FPN 设计了 RetinaN ...

  9. SLAM总结(一)- SLAM原理概述与简介

    SLAM总结(一)- SLAM原理概述与简介 SLAM(Simultaneous Localization and Mapping):同时定位和建图,定位是定位机体在世界坐标系下的位姿(pose.tr ...

最新文章

  1. 作业盒子完成1.5亿美元D轮融资,用AI普及教育资源
  2. tomcat依赖导入步骤_Tomcat长生不老之术——嵌入式
  3. TRex 学习(3) -- stateful ( detail )
  4. 【Qt教程】4.1 - Qt5 文件系统 QFile文件读写操作
  5. 假设检验(Hypothesis Testing)
  6. 【C/C++笔记】之显式调用DLL、隐式调用DLL、查看DLL输出函数
  7. wps多出来的页面怎么办?wps怎么删除不要的页
  8. 水平制表符 \t 和 垂直制表符\v的区别
  9. 本人成功续费了。你的支付授权失败。请核对你的信息并重试,或尝试其他支付方式。请联系你的银行了。
  10. 乒乓球侧旋球MATLAB,浅说细谈乒乓球力学(一)
  11. noip2012 pj错题整理
  12. 简单的python抢红包脚本-python+红包
  13. 基于STM32和ESP8266的天气预报系统
  14. 巴别时代php面试题,巴别时代遇到的函数
  15. 这个盛夏,来一场“清凉”的代码雨!
  16. Unity 摄像机切换镜头
  17. TMC2208-LA步进电机驱动芯片
  18. 解决 C# 中 Using ‘UseMvcWithDefaultRoute‘ to configure MVC is not supported while using Endpoint Routin
  19. APK部署手机上出现闪退现象
  20. C语言的二维数组初始化的几种方式介绍(私藏大数组初始化方式)

热门文章

  1. iOS - Icon图标、启动图片、审核图片尺寸
  2. trinity运行原理及常见报错(二)
  3. 2022 年超详细过程步骤讲解 CentOS 7 安装Maven。以及Mavne配置文件的修改
  4. 仿牛客项目(持续更新)
  5. 转:九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
  6. 如何输入多组数据并输出每组数据的和?
  7. java手机一款三国游戏_JAVA热游—富甲三国之雄霸天下原创心得
  8. HashMap源码阅读笔记
  9. idea根据路径找控制器的插件(推荐)
  10. yolo3各部分代码(超详细)