从5个经典工作开始看语义SLAM

2020 年 3 月 11 日 CVer

点击上方“CVer”,选择加"星标"或“置顶”

重磅干货,第一时间送达

本文授权转载自:小林同学的脑回路
本文试图概括语义(Semantic) SLAM的主要思路和近年工作,⻓期更新。
但因水平有限,若有错漏,感谢指正。
本文有以下结构:
  • 简介

  • 发展方向

    • 方向一:Semantic Mapping

    • 方向二:Real Semantic SLAM

Semantic SLAM

简介

至今为止,主流的 SLAM 方案 [1] 多是基于处于像素层级的 特征点,更具体地,它们往往只能用 角点或边缘来提取路标。与之不同的是,人类 通过物体在图像中的运动来推测相机的运动,而 非特定像素点
Semantic SLAM 是研究者试图利用物体信息的方案,其在Deep Learning的推动下有了较大的发展,成为了相对独立的分支,其在整个SLAM领域所处位置如下图:
目前而言,所谓 Semantic 是将基于神经网络的 语义分割、目标检测、实例分割等技术用于 SLAM 中,多用于特征点选取、相机位姿估计,更广泛地说,端到端的图像到位姿、从分割结果建标记点云、场景识别、提特征、做回环检测等 使用了神经网络的方法都可称为 Semantic SLAM [2]
语义和 SLAM 的结合的体现有以下两点 [3]
  • SLAM 帮助语义。
检测和分割任务都需要大量的训练数据,在 SLAM 中,由于我们可以估计相机的运动,那么各个物体在图像中位置的变化也可以被预测出来, 产生大量的新数据为语义任务提供更多优化条件,且节省人工标定的成本。
  • 语义帮助 SLAM。
一方面,语义分割把运动过程中的每一张图片都带上语义标签,随后传统 SLAM 将带标签的像素映射到3D空间中,就能得到一个带有标签的地图。 这提供了高层次的地图,有利于机器人自主理解和人机交互
另一方面,语义信息亦可为回环检测、Bundle Adjustment 带来更多的优化条件,提高定位精度
仅实现前者的工作往往称为 Semantic Mapping,后者才认为是真正的 Semantic SLAM。

发展方向

分别从 Semantic Mapping 和 Real Semantic SLAM 两方面,介绍一些主要思路。

方向一:Semantic Mapping

这类工作要求特征点是 dense 或 semi-dense 的(否则 Mapping 无意义),因此往往用 RGB-D 的 SLAM 方案,亦或是单目相机的 semi-dense LSD-SLAM 方案 [4]
有两种 Mapping 方式:
  • 将2D图像的语义分割结果,即 带标签的像素,映射到3D点云中
研究人员尝试让 SLAM 所得的信息(特别是相机位姿),能够提高语义分割的性能。其中一种是使用 SemanticFusion [5] 的 Recursive Bayes 方法:根据 SLAM 对像素点运动的估计,当前帧的 像素的语义分类概率 与 前一帧 旧位置上的分类概率相乘作为最终概率,即像素的概率会沿着各帧累乘,因而增强语义分割的结果。
这一方法被基于单目相机的工作 [6] 沿用,整体框架描述如下。
LSD-SLAM + DeepLab-v2 (语义分割)
流程:输入 -> 选关键帧并 refine(非关键帧用于增强深度估计)-> 2D语义分割 -> 语义优化+3D重建
① 为保证速度,仅对关键帧来进行语义分割,
② 其他帧用 small-baseline stereo comparisons [7] 对关键帧做深度估计的优化
使用 Recursive Bayes 增强语义分割
④ 3D重建的优化使用条件随机场(CRF),同 SemanticFusion
  • 第二种 Mapping 方式则 以 Object 为单位构建地图 [8] [9]。相比于一堆标记了类别的 voxel,包含一个个物体的语义地图,将更有价值。
此部分的重点在于如何做 数据关联(Data Association),即 跟踪已识别 Object 和发现新 Object,以 [10] 为例描述如下。
使用 RGB-D 和 ORB-SLAM2 可构建一个 dense 的点云。
对于关键帧,SSD 检测出多个 Object,应用无监督的3D分割方法 [11] 为每一个 Object 分配点云序列,并存储起来
数据关联:得到一组分割结果(Object, 对应点云)后,据点云重心的欧式距离,在找出最接近的一组候选 Object,如果 超过 50% 的点对的距离小于一个阈值(文中 2cm),就认为是匹配到的 Object,否则认为是新 Object,存储下来。
匹配为同一 Object 的两个点云,直接 累加分类概率(置信度)。这和上文提到的 Recursive Bayes 方法很像, 即利用 SLAM 提供的物体多角度信息,增强分割结果。
(注:本文的 Related Work 写得很好)

方向二:Real Semantic SLAM

此部分为本文的重点。相对来说,真正的 Semantic SLAM (即语义建图和 SLAM 定位相互促进)发展较晚(基本是2017年后)。
在 Bundle Adjustment (BA) 方法中,我们同时优化相机位姿和 3D 坐标位置,使得 重投影到 2D 图像的像素点与实际观测(多个相机,多个特征点)的总误差最小
那么如何将语义信息融合进来呢?
  • 思路一: 同个 3D 点重投影之后,应保持语义一致
这又是重投影优化问题,可以加入到 BA 公式中 加强优化目标,关键是如何 量化重投影误差,就好像传统 BA 的重投影误差通过与实际观测的像素距离来量化。
ICRA 2017 的著名工作 Probabilistic Data Association for Semantic SLAM [12] 使用了此思路,其量化重投影误差的方法在于:使用概率模型计算出来的 物体中心,重投影到图像上,应该接近检测框的中心。而数据关联(到底要接近哪个检测框中心),由一组权重决定,最后 “BA” 和 “权重更新” 通过 EM 算法交替优化。
ECCV 2018 上的工作 VSO [13] 与之类似,重投影误差通过 与目标类别的语义区域的远近来量化。有几个细节比较巧妙,下面展开说明。
如上图所示,(a) 为语义分割图,(b) 为类别 “Car” 的区域,在(c) (d) 中,根据与 Car 区域的距离,概率值从1 (红) 变为 0 (蓝)。其他类别如Tree,也会产生此概率分布图。
其中 距离 到 概率 的转化,利用了下方的高斯分布,(c) (d) 的不同是方差  导致的。这是在为量化重投影误差做准备。对于一个空间点P(拥有坐标  )来说,重投影之后计算得到一个概率:
其中  计算了重投影的结果  与类别 c 区域的 最近距离,最后得到的  用于 计算重投影误差
权重  的存在是为了解决数据关联,即空间点P应该以哪一个类别的区域为目标, 。其由多个相机下的  值累乘,即多个角度观测投票决定。
会加到普通的 BA 优化公式中,使用 EM 算法进行优化,E 步更新权重  ,而 M 步优化三维点P坐标和相机位姿(普通的 BA 过程)。
个人理解,之所以使用高斯分布,是因为其函数有“骤降”之处,那么方差  可以起到决定阈值的作用,让 距离超过阈值的类别区域更快得到一个小权重  ,多个相机的投票下,数据关联很快就能稳定下来,可以加速优化。
(为简化说明,上述公式已被简化,去除了对于多个相机、空间点的索引,详见原文)
  • 思路二: 从语义信息可以推断出动态区域
传统 SLAM 方法几乎都是 假设当前场景是静态的,当面对含有运动物体的场景时,运动物体上的特征点将对相机位姿估计产生巨大的偏差。面对这一困难的主要 解决方式是去掉这些动态的特征点,而语义分割十分适合找出这些动态区域。
语义分割有两个特点,一是把平面区域的许多像素点联系起来,二是给区域带上了分类标签。
前者有利于确定物体是否真的在运动,因为单个特征点的偏移并不能确定运动的发生(可能是 SLAM 系统一直存在的观测噪声),若是 一群有关联的特征点普遍发生了较大的偏移,就可以断定为是动态的
后者有利于 预判物体是否会运动,比如标签是人的区域几乎是动态的,而墙壁则可断定是静态的(甚至不用去计算偏移)。
IROS 2018 的 DS-SLAM [14] 基于第一个特点,以区域为单位判断是否动态,而一些工作如 [15] 仅利用了第二个特点,较为暴力地直接排除某些区域(天空,车)的特征点。
把这两个特点都用上的是 ICRA 2019 的工作 [16], 简述如下。
利用语义分割,将一些类别( )区域定义为背景(绿色),其他类别( )区域定义为可移动物体。
接下来使用 运动判定,以区分可移动物体当前是静止(蓝色)还是运动(红色)的。
运动判定的规则如下:对于某一语义区域内,过往估计的特征点的 3D 位置,投影到当前的新图像上, 重投影位置若和对应特征点的欧式距离大于一定阈值,则定义为移动点,如果该区域 移动点的比例大于一定阈值则判定为移动区域。
  • 思路三: 语义信息提供的物体级别的描述,拥有季节(光线)不变性
这一思路可以用在如何 用已有的 3D 地图定位
传统的特征点(拥有描述子),在多变的环境下十分不鲁棒,容易跟丢。而语义分割的结果,相对而言是稳定的,此外,若以物体级别来做定位(拿语义标签来匹配地图),更符合人类直觉。
ICRA 2018 和 2019 的工作 [17] [18] 使用了本思路。
  • 思路四:待总结

参考资料

[1]

ORB-SLAM2.

[2]

也来谈语义SLAM/语义地图.

[3]

视觉SLAM十四讲.

[4]

lsd-SLAM.

[5]

SemanticFusion: Dense 3D Semantic Mapping with Convolutional Neural Networks.

[6]

Semi-Dense 3D Semantic Mapping from Monocular SLAM.

[7]

Semi-dense Visual Odometry for a Monocular Camera - IEEE Conference Publication.

[8]

Meaningful Maps With Object-Oriented Semantic Mapping.

[9]

MaskFusion: Real-Time Recognition, Tracking and Reconstruction of Multiple Moving Objects.

[10]

Meaningful Maps With Object-Oriented Semantic Mapping.

[11]

Geometrically consistent plane extraction for dense indoor 3D maps segmentation - IEEE Conference Publication.

[12]

Probabilistic Data Association for Semantic SLAM.

[13]

VSO: Visual Semantic Odometry.

[14]

DS-SLAM: A Semantic Visual SLAM towards Dynamic Environments.

[15]

Mask-SLAM: Robust feature-based monocular SLAM by masking using semantic segmentation.

[16]

A Unified Framework for Mutual Improvement of SLAM and Semantic Segmentation.

[17]

Long-term Visual Localization using Semantically Segmented Images.

[18]

Global Localization with Object-Level Semantics and Topology - IEEE Conference Publication.


推荐阅读


2020年AI算法岗求职群来了(含准备攻略、面试经验、内推和学习资料等)


重磅!CVer-SLAM 交流群已成立


扫码添加CVer助手,可申请加入CVer-SLAM 微信交流群,目前已满500+人,旨在SLAM相关等内容。


一定要备注:研究方向+地点+学校/公司+昵称(如SLAM+上海+上交+卡卡),根据格式备注,可更快被通过且邀请进群

▲长按加群


▲长按关注我们

麻烦给我一个在看!

登录查看更多
0

相关内容

即时定位与地图构建(SLAM或Simultaneouslocalizationandmapping)是这样一种技术:使得机器人和自动驾驶汽车等设备能在未知环境(没有先验知识的前提下)建立地图,或者在已知环境(已给出该地图的先验知识)中能更新地图,并保证这些设备能在同时追踪它们的当前位置。
专知会员服务
161+阅读 · 2020年7月26日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
111+阅读 · 2020年6月5日
基于深度学习的表面缺陷检测方法综述
专知会员服务
87+阅读 · 2020年5月31日
基于视觉的三维重建关键技术研究综述
专知会员服务
165+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
193+阅读 · 2020年4月24日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
44+阅读 · 2020年4月17日
【CVPR2020-谷歌】多目标(车辆)跟踪与检测框架 RetinaTrack
专知会员服务
45+阅读 · 2020年4月10日
专知会员服务
87+阅读 · 2019年12月13日
高翔:谈谈语义SLAM/地图
计算机视觉life
36+阅读 · 2019年3月26日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
21+阅读 · 2019年3月12日
最近一年语义SLAM有哪些代表性工作?
计算机视觉life
6+阅读 · 2019年1月7日
【泡泡机器人原创专栏】语义SLAM论文阅读精华提炼
泡泡机器人SLAM
6+阅读 · 2018年10月8日
从零开始一起学习SLAM | SLAM有什么用?
计算机视觉life
18+阅读 · 2018年9月17日
【泡泡机器人】一文带你入门语义SLAM
泡泡机器人SLAM
29+阅读 · 2017年11月29日
专栏|语义SLAM的重要性,你造吗?
智东西
7+阅读 · 2017年9月5日
视觉里程计:特征点法之全面梳理
计算机视觉life
12+阅读 · 2017年8月2日
SLAM初识
计算机视觉life
5+阅读 · 2017年6月4日
VIP会员
相关VIP内容
专知会员服务
161+阅读 · 2020年7月26日
【开放书】SLAM 中的几何与学习方法,62页pdf
专知会员服务
111+阅读 · 2020年6月5日
基于深度学习的表面缺陷检测方法综述
专知会员服务
87+阅读 · 2020年5月31日
基于视觉的三维重建关键技术研究综述
专知会员服务
165+阅读 · 2020年5月1日
3D目标检测进展综述
专知会员服务
193+阅读 · 2020年4月24日
CVPR2020 | 商汤-港中文等提出PV-RCNN:3D目标检测新网络
专知会员服务
44+阅读 · 2020年4月17日
【CVPR2020-谷歌】多目标(车辆)跟踪与检测框架 RetinaTrack
专知会员服务
45+阅读 · 2020年4月10日
专知会员服务
87+阅读 · 2019年12月13日
相关资讯
高翔:谈谈语义SLAM/地图
计算机视觉life
36+阅读 · 2019年3月26日
【泡泡机器人】也来谈语义SLAM/语义地图
泡泡机器人SLAM
21+阅读 · 2019年3月12日
最近一年语义SLAM有哪些代表性工作?
计算机视觉life
6+阅读 · 2019年1月7日
【泡泡机器人原创专栏】语义SLAM论文阅读精华提炼
泡泡机器人SLAM
6+阅读 · 2018年10月8日
从零开始一起学习SLAM | SLAM有什么用?
计算机视觉life
18+阅读 · 2018年9月17日
【泡泡机器人】一文带你入门语义SLAM
泡泡机器人SLAM
29+阅读 · 2017年11月29日
专栏|语义SLAM的重要性,你造吗?
智东西
7+阅读 · 2017年9月5日
视觉里程计:特征点法之全面梳理
计算机视觉life
12+阅读 · 2017年8月2日
SLAM初识
计算机视觉life
5+阅读 · 2017年6月4日
Top
微信扫码咨询专知VIP会员