首发于视觉SLAM
[论文笔记]Semantic Monocular SLAM for Highly Dynamic …

[论文笔记]Semantic Monocular SLAM for Highly Dynamic …

Semantic Monocular SLAM for Highly Dynamic Environments

该论文发表于International Conference on Intelligent Robots and Systems (IROS 2018)

来自于宝马和慕尼黑工业大学

摘要

结合了非直接法和直接法

为应对动态环境,提出了概率模型来提取相对静态物体来进行定位与建图。

1、引言

相比于双目和RGBD,单目具有廉价、易标定、没有深度范围限制等优点。

在单目SLMA中分为直接法与基于特征点的非直接法:非直接法对几何误差较为鲁邦,也就是特征点位置的偏移误差,该部分误差来源于相机内参,卷帘快门等。直接法对光度噪声较为鲁邦,该部分来源于运动模糊。

所有方法都是基于静态环境的,为处理动态环境,可以在优化中使用M-estimators (Turkey、Huber)或基于RANSAC。这些方法都要求大多数点是静态的。

现在,基于CNN的物品识别、分割可以帮助检测出可能动态物体,便不再追踪他们。本文中考虑所有帧的语义信息来估计每个地图点的语义。

3、概率语义SLAM

基于ORB-SLAM框架:

对每一帧,提取ORB特征并匹配,匀速运动模型初始化位姿。结合特征点法和直接法优化位姿。三角化计算特征深度。


A、位姿估计与建图

特征点(ORB)可以提高快读可靠的匹配、用于回环检测和重定位等。

直接法中不需要特征提取与匹配,但要求帧率较高或运动较慢。对局部光照变化较为敏感。但可以用在低特征环境,或较大运动模糊时。

所以将两者结合起来,尽量使用特征点,当没有足够特征时使用直接法。

不同于一般特征点法中的3D点描述,本文使用光度特征和逆深度信息。这样对两者可以使用同一个模型,方便联合优化。

B、Probabilistic outlier rejection

对每个地图点,估计一个静态率 \phi ,并在估计静态率时考虑到点的语义信息。

当观测到一个地图点后,估计其深度 d_i 与方差 \tau_i^2 ,匹配正确率 \alpha_i ,语义类概率 CNN(c_K|I_i)

匹配正确率

特征点法: \alpha ^ { \text { descriptive } } : = 1 - \min \left( 1 , \frac { d \left( f _ { i } , f _ { j } \right) } { d _ { \max } } \right)

直接法: \alpha ^ { \text {direct} } : = 1 - \min \left( 1 , \frac { \Delta \Phi \left( x _ { i } , x _ { j } \right) } { \Delta \Phi _ { \max } } \right)

深度测量似然

p \left( d _ { i } | d , \phi \right) : = \alpha _ { i } \left[ \phi \mathcal { N } \left( d _ { i } | d , \tau _ { i } ^ { 2 } \right) + \overline { \phi } \mathcal { U } \left( d _ { i } \right) \right] + \overline { \alpha } _ { i } \mathcal { U } \left( d _ { i } \right)\\

这里的 d 是均值, d_i 是某次观测。其含义是,如果该点是静态的,且匹配正确, \alpha_i \phi 都接近于1,则分布为正态分布。否则为均匀分布,观测不为均值估计提供任何有用信息。所以静态率大的点深度收敛较快,静态率小的点无法计算出方差较小的深度,大概就剔除了。

类似的,对于语义p \left( c _ { k } | I _ { i } \right) : = \alpha _ { i } C N N \left( c _ { k } | I _ { i } \right) + \overline { \alpha } _ { i } \mathcal { U } \left( c _ { k } \right)\\

定义静态率与语义的关系

p ( \phi | c ) = \prod _ { k = 1 } ^ { K } \left( \frac { 1 } { B \left( A _ { k } , B _ { k } \right) } \phi ^ { A _ { k } - 1 } ( 1 - \phi ) ^ { B _ { k } - 1 } \right) ^ { c _ { k } }\\

其中 c 为语义类的独热编码, A_kB_k 反应了某一语义静态或是动态的可能性。这是一个Beta分布,可以用来表示各种情况的先验分布。马同学:如何通俗理解 beta 分布?

一个地图点对应的几个关键量的关系:

现在后验:(=似然×先验)

\begin{array} { r } { p ( d , \phi | D , S ) = \mathcal { N } ( d | \mu , \sigma ^ { 2 } ) \operatorname { Beta } \left( \phi , a _ { o b s } , b _ { o b s } \right) } { \operatorname { Beta } \left( \phi , a _ { s e m } , b _ { s e m } \right) } \end{array}\\

第一项是逆深度的正态分布,第二项是静态率对深度观测量的Beta分布,第三项是静态率对语义的Beta分布。

其中: a _ { s e m } = \sum _ { k = 1 } ^ { K } A _ { k } p \left( c _ { k } | S \right) \\ b _ { s e m } = \sum _ { k = 1 } ^ { K } B _ { k } p \left( c _ { k } | S \right)

最后静态率可以表示为:

\phi = \frac { a _ { o b s } + a _ { s e m } } { a _ { o b s } + a _ { s e m } + b _ { o b s } + b _ { s e m } }\\

发布于 2018-12-10 18:03