0. 简介
之前作者在《激光雷达动态障碍物滤除-调研与展望》以及《3D帧间匹配-----剔除动态障碍物》中提到了如何通过各种方法来完成动态障碍物的滤波。而本文也将围绕着如何完成动态障碍物滤波来展开,来介绍《ERASOR: Egocentric Ratio of Pseudo Occupancy-based Dynamic Object Removal for Static 3D Point Cloud Map Building》一文的内容,本文在Github上已经有开源代码以供读者学习。
【ICRA2021】3508-ERASOR:一种基于栅格占据情况之差异的动态物体过滤方法
1. 文章贡献
城市环境的扫描数据通常包括动态对象的表示,如车辆、行人等。然而,当使用扫描数据的连续累积来构建3D点云图时,动态对象通常会在图中留下不必要的痕迹。这些动态物体的痕迹作为障碍,从而阻碍移动车辆取得良好的定位和导航性能。针对这一问题,本文提出了一种新的静态地图生成方法,即基于自我中心比的伪占用的动态对象去除方法(ERASOR),该方法对运动模糊具有快速和鲁棒性。本文的方法将注意力集中在城市环境中大多数动态物体的本质上,它们不可避免地与地面接触。
-
本文提出了一种称为扫描比测试(SRT)的快速而健壮的方法,基于城市环境中大多数动态对象(如地面车辆和行人)不可避免地与地面接触的性质,获取包含动态点的栅格。
-
获取栅格后,我们应用区域地平面拟合(R-GPF),这是一种计算负荷低的新型静态点检索方法。R-GPF克服了基于射线跟踪的方法和基于可见性的方法的潜在局限性,如图2所示。
-
与其他最先进的方法进行验证。本文指出了精度/召回指标的局限性,并提出了适用于静态地图构建任务的替代指标:保存率和拒绝率。
-
本文提出的方法比最先进的方法显示出有前途的性能。特别是,ERASOR以最小的静态点损失去除动态点,比目前最先进的方法快至少10倍。
2. 详细内容
这里我们可以先来看一下无疆WGH博客对这篇文章的解析,红色文字是作者对算法各个环节的注释,下面我们将对这四个部分进行解释
2.1 问题定义与符号系统
先验地图由一帧帧不同时刻的原始点云“拼接”而成,设
P
t
=
{
p
1
,
p
2
,
…
,
p
n
}
P_t = \{p1, p2,…, pn\}
Pt={p1,p2,…,pn}是时间步t时包含n个点的点云集合,其中每个点在笛卡尔坐标下表示为
p
k
=
x
k
,
y
k
,
z
k
p_k = {x_k, y_k, z_k}
pk=xk,yk,zk。设
P
t
Q
P^Q_t
PtQ为查询框架上的查询点云,
Q
W
T
t
^W_QT_t
QWTt为与
P
t
Q
P^Q_t
PtQ相关的SE(3)位姿。本文假设姿态集是经过配准优化或校正后得到的。通过让
Q
W
T
t
∗
P
t
Q
^W_QT_t * P^Q_t
QWTt∗PtQ是世界框架
W
W
W中
P
t
Q
P^Q_t
PtQ的变换表示,用一组原始LiDAR扫描
M
M
M构建的先验地图可以公式如下:
其中
T
T
T是总时间步长,
[
T
]
[T]
[T]等于
{
1
,
2
,
…
,
T
−
1
,
T
}
\{1,2,…, T−1,T\}
{1,2,…,T−1,T}。注意
M
M
M在世界坐标系上,包含了所有测量的动态点
接下来,以位姿点 W Q T t ^Q_W T_t WQTt为中心,在 prior map 中以特定半径圈出一个局部的 submap,记作 P t M P^M_t PtM.即 M M M的子地图通过 W Q T t = Q W T t − 1 ^Q_W T_t = ^W_Q T_{t−1} WQTt=QWTt−1进行转换。在本文中,使用上标 Q Q Q和 M M M分别表示查询和映射。设 M M M坐标系坐标系为估计的静态映射,我们感兴趣的问题定义如下:
ERASOR 的策略中的
M
^
d
y
n
,
t
\hat{M}_{dyn,t}
M^dyn,t指由
P
t
Q
P^Q_t
PtQ和
P
t
M
P^M_t
PtM之间的差异,并将
P
t
M
P^M_t
PtM中动态的点云并标记出来。
在介绍本文的visibility-free方法之前,必须先说明本文的方法将注意力集中在城市环境中大多数动态物体的本质上,例如地面车辆和行人,不可避免地与地面接触。基于这个假设,我们可以构造四种可能的情况:
- 在 P t M P^M_t PtM中有一个物体在地面上,而在 P t Q P^Q_t PtQ中相同位置的地面不受物体的影响。
- 在 P t M P^M_t PtM中,地面不受物体的影响,而在 P t Q P^Q_t PtQ中,地面上有相同位置的物体。
- P t M P^M_t PtM和 P t Q P^Q_t PtQ中都有一个物体在地面上。
- 在 P t M P^M_t PtM和 P t Q P^Q_t PtQ中地面上没有物体。
在这些情况中,表示动态对象的点将被分为第一种情况和第二种情况。但是,我们的目标是改进地图云,因此忽略了第二种情况。为了清晰起见,我们定义了两个术语;第一种情况可能是动态的第三种和第四种情况肯定是静态的。
2.2 栅格划分与占据状态描述子计算(R-POD)
栅格划分与计算栅格内的占据状态描述子,是解决两个子问题的第一步。
不难发现,
P
t
M
P^M_t
PtM和
P
t
Q
P^Q_t
PtQ的原点位置是重叠的,考虑到 query scan 中距离越远的地方点云越稀疏,我们首先要圈定范围:对
P
t
M
P^M_t
PtM和
P
t
Q
P^Q_t
PtQ ,我们均只考虑距离原点 80 米半径范围内 、-1米到+3米高度区间内的空间,这个空间是我们的感兴趣区域 —— Volume of Interest, VOI。
接下来,将 VOI 按照角度和半径划分为一个个栅格,以自我为中心的方式定义了一个垂直容器,用垂直信息的边界差来表示占用,或伪占用。与Scan Context类似,RPOD取
V
t
V_t
Vt,在方位角方向和径向方向的规则间隔(即扇区和环)上对体积进行划分。设
N
r
N_r
Nr和
N
θ
N_θ
Nθ为环数和扇区数。则R-POD记为
S
t
S_t
St,可表示为:
其中
S
(
i
,
j
)
,
t
S_{(i,j),t}
S(i,j),t表示R-POD在时间步长
t
t
t时的
(
i
,
j
)
(i,j)
(i,j)栅格处,令
θ
=
a
r
c
t
a
n
2
(
y
,
x
)
θ = arctan 2(y, x)
θ=arctan2(y,x),则每个
S
(
i
,
j
)
,
t
S_{(i,j),t}
S(i,j),t由满足以下条件的云点组成
其后,单位空间即每个料仓分配一个实数来描述伪占用量
∆
h
(
i
,
j
)
∆h_{(i,j)}
∆h(i,j),t。设
Z
(
i
,
j
)
,
t
=
z
k
∈
p
k
∣
p
k
∈
S
(
i
,
j
)
,
t
Z_{(i,j),t} = {z_k∈p_k|p_k∈S_{(i,j),t}}
Z(i,j),t=zk∈pk∣pk∈S(i,j),t。然后,对每个bin的伪占用进行如下编码:
这个高度差,描述了该 bin 内的点云分布信息。经过该步骤处理后的
P
t
M
P^M_t
PtM和
P
t
Q
P^Q_t
PtQ如下图所示,很容易看出一个个扇区状的 bin 。
2.3 根据描述子对比筛选潜在动态区域(SRT)
针对查询点云和地图点云的 P t M P^M_t PtM和 P t Q P^Q_t PtQ的R-POD,提出了扫描比测试(SRT)来检验伪占用是否存在差异。SRT是由尺度不变特征变换(SIFT)[26]中的Lowe’s Ratio检验驱动的。结果表明,基于比率的方法对基于全局阈值的方法[26]的场景变化具有更强的鲁棒性。
这里我们来对比 S t Q S^Q_t StQ和 S t M S^M_t StM中每对栅格的伪占用率之比,即 ∆ h ( i , j ) , t Q ∆h^Q_{(i,j),t} ∆h(i,j),tQ与 ∆ h ( i , j ) , t M ∆h^M_{(i,j),t} ∆h(i,j),tM之比。然后使用扫描比率将栅格分类到前面提到的情况,并选择属于潜在动态情况的栅格,其中任何一个栅格都包含我们感兴趣的动态点。简单地说,如果两个栅格都没有变化,扫描比必须接近于1,即绝对静态的情况,而属于潜在动态情况的扫描比必须远小于1,这是由地面上存在一个动态物体引起的,如第II.A节所述。