SLAM技术交流大数据,机器学习,人工智能人工智能/模式识别/机器学习精华专题

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

2020-02-29  本文已影响0人  小林同学的脑回路

本文试图概括Semantic SLAM的主要思路和近年工作,⻓期更新。但因水平有限,若有错漏,感谢指正。
(更好的公式显示效果,可关注文章底部的公众号)

Semantic SLAM

简介

至今为止,主流的 SLAM 方案 [1] 基于处于像素层级的特征点,更具体地,它们往往只能用角点或边缘来提取路标。人类是通过物体在图像中的运动来推测相机的运动,而非特定像素点

Semantic SLAM 是研究者试图利用物体信息的方案,其在Deep Learning的推动下有了较大的发展,成为了相对独立的分支,就方法(非设备)而言,其在整个SLAM领域所处位置如下图:

file

目前而言,所谓 Semantic 是将基于神经网络的语义分割、目标检测、实例分割等技术用于 SLAM 中,多用于特征点选取、相机位姿估计,更广泛地说,端到端的图像到位姿、从分割结果建标记点云、场景识别、提特征、做回环检测等使用了神经网络的方法都可称为 Semantic SLAM [2]

语义和 SLAM 的结合的体现有以下两点 [3]

发展方向

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

Semantic Mapping

这类工作要求特征点是 dense 或 semi-dense 的(否则 Mapping 无意义),因此往往用 RGB-D 的 SLAM 方案,亦或是单目相机的 semi-dense LSD-SLAM 方案 [4]

有两种 Mapping 方式:

file

LSD-SLAM + DeepLab-v2 (语义分割)

流程:输入 -> 选关键帧并 refine(非关键帧用于增强深度估计)-> 2D语义分割 -> 语义优化+3D重建

① 为保证速度,仅对关键帧来进行语义分割,

② 其他帧用 small-baseline stereo comparisons [7] 对关键帧做深度估计的优化

使用 Recursive Bayes 增强语义分割

④ 3D重建的优化使用条件随机场(CRF),同 SemanticFusion

file

使用 RGB-D 和 ORB-SLAM2 可构建一个 dense 的点云。

对于关键帧,SSD 检测出多个 Object,应用无监督的3D分割方法 [10] 为每一个 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 图像的像素点与实际观测(多个相机,多个特征点)的总误差最小

那么如何将语义信息融合进来呢?

file

如上图所示,(a) 为语义分割图,(b) 为类别 “Car” 的区域,在(c) (d) 中,根据与 Car 区域的距离,概率值从1 (红) 变为 0 (蓝)。 其他类别如Tree,也会产生此概率分布图。

其中 距离 到 概率 的转化,利用了下方的高斯分布,(c) (d) 的不同是方差

file 导致的。这是在为量化重投影误差做准备。对于一个空间点P(拥有坐标 file )来说,重投影之后计算得到一个概率: file

其中

file 计算了重投影的结果 file 与类别 c 区域的最近距离,最后得到的 file 用于计算重投影误差 file

权重

file 的存在是为了解决数据关联,即空间点P应该以哪一个类别的区域为目标, file 。其由多个相机下的 file 值累乘,即多个角度观测投票决定。 file 会加到普通的 BA 优化公式中,使用 EM 算法进行优化,E 步更新权重 file

,而 M 步优化三维点P坐标和相机位姿(普通的 BA 过程)。

个人理解,之所以使用高斯分布,是因为其函数有“骤降”之处,那么方差

file 可以起到决定阈值的作用,让距离超过阈值的类别区域更快得到一个小权重 file ,多个相机的投票下,数据关联很快就能稳定下来,可以加速优化。

(为简化说明,上述公式已被简化,去除了对于多个相机、空间点的索引,详见原文)

file
利用语义分割,将一些类别( file )区域定义为背景(绿色),其他类别( file )区域定义为可移动物体。

接下来使用运动判定,以区分可移动物体当前是静止(蓝色)还是运动(红色)的。

运动判定的规则如下:对于某一语义区域内,过往估计的特征点的 3D 位置,投影到当前的新图像上,重投影位置若和对应特征点的欧式距离大于一定阈值,则定义为移动点,如果该区域移动点的比例大于一定阈值则判定为移动区域。


更好的阅读效果、更多相关内容可关注公众号【小林同学的脑回路】 ↓ ↓ ↓

xiaolin_nhl
上一篇下一篇

猜你喜欢

热点阅读