IROS 2020 文章链接
结合语义信息的自动驾驶停车场场景下的视觉SLAM
1 速读
1.1 论文试图解决什么问题?这是否是一个新的问题?
试图解决传统视觉SLAM方法在某些更严苛的特定环境下(停车场)不再能够满足使用需求的问题,不是一个新问题,感觉自动驾驶领域的很多问题都不是新问题,而是老问题+不断提出的新方法。
1.2 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员?
Road-based feature方法中提到一些论文,比较老,基本来自一个会议IEEE Symposium on Intelligent Vehicle
和文章工作类似的SLAM系统肯定有,但是作者的数据来自实际车辆采集,只跟传统的ORB-SLAM做了对比。
1.3 文章的贡献是什么?
给出了结合语义的视觉SLAM停车场场景建图方案;
最大的贡献应该是配置到了实车上,有实际应用价值;
1.4 文章解决方案的关键是什么?
四相机构建BEV+神经网络检测其中语义信息
1.5 实验如何设计?实验结果足够论证其效果吗?
由于数据集是用车辆平台采集所以不便和其他方法进行对比,只对比了传统的ORB-SLAM(是否说服力不够?)
①地图精度使用具有较好GPS环境的室外停车场采集对比,比ORB-SLAM好一点点;
②在地下停车场进行实验,比较Recall Rate验证对环境变化的适应能力;比较Map Size论证地图简洁高效;比较Localization Accuracy证明定位效果和实际效果相近
🌂配置在实车上证明实际可用性
1.6 数据集是什么?
来自自己的一辆车辆平台,数据采集装置为安装在四周的4个相机(频率30Hz+分辨率1280*720),轮速计+IMU。
1.7 还会存在什么问题
作者自己conclution:
①仅在停车场景有效,应用场景可以更加广泛。
我觉得:
②停车场景一般为低速情况,在速度增大的情况下是否仍然有效?
③地图未生成的时候需要跑遍停车场建好图后才能在后续使用此方法定位,在实际使用时存在问题,不可能每个来到这里的车都扫描一次。
以下是精读部分
2 系统框架
环绕汽车的四个相机构建语义地图,搭载的IMU和轮速计提供里程信息,所有内参外参都是离线标定。
分为两部分:
①建图mapping:相机提取图片构建BEV,神经网络在BEV中提取特征,根据odemetry的结果构建地图,需要回环修正得到全局地图
②定位localization:汽车实时采集的图片构建BEV,将BEV中元素和地图匹配,通过EKF将匹配结果和odemetry结构融合得到定位结果
3 各个部分
3.1 IPM(Inverse Perspective Mapping)
四个相机拍摄的画面如图:
相机拍摄画面投影到IPM(vehicle center坐标系下的z=0平面)可分为两步:
①像素坐标转换到vehicle center坐标系:
1
λ
[
x
v
y
v
1
]
=
[
R
c
t
c
]
c
o
l
:
1
,
2
,
4
−
1
π
c
−
1
(
[
u
v
1
]
)
\frac{1}{\lambda}\begin{bmatrix} x^v \\ y^v \\ 1 \end{bmatrix} = \begin{bmatrix}R_c & t_c\end{bmatrix}_{col:1,2,4}^{-1}\pi_c^{-1}( \begin{bmatrix}u \\ v \\ 1\end{bmatrix})
λ1
xvyv1
=[Rctc]col:1,2,4−1πc−1(
uv1
)②通过内参投影到IPM面:
[
u
i
p
m
v
i
p
m
1
]
=
K
i
p
m
[
x
v
y
v
1
]
\begin{bmatrix}u_{ipm} \\ v_{ipm} \\ 1\end{bmatrix} = K_{ipm}\begin{bmatrix}x^v \\ y^v \\ 1\end{bmatrix}
uipmvipm1
=Kipm
xvyv1
投影后IPM如图:
3.2 Feature Detection
对U-Net做出改进,用停车场数据训练,用于分割车道线、停车线、指路标识、减速带、自由空间、障碍物和墙面。分割结果如下:
3.3 Local Mapping
分割后有用的结果通过odometry的结果投影到3D空间构建地图,分为两步:
①IPM平面转换到vehicle center坐标系:
[
x
v
y
v
1
]
=
K
i
p
m
−
1
[
u
i
p
m
v
i
p
m
1
]
\begin{bmatrix}x^v \\ y^v \\ 1\end{bmatrix} = K_{ipm}^{-1}\begin{bmatrix}u_{ipm} \\ v_{ipm} \\ 1\end{bmatrix}
xvyv1
=Kipm−1
uipmvipm1
②vehicle center坐标系转换到世界坐标系:
[
x
w
y
w
z
w
]
=
R
o
[
x
v
y
v
0
]
+
t
0
\begin{bmatrix}x^w \\ y^w \\ z^w\end{bmatrix} = R_o\begin{bmatrix}x^v \\ y^v \\ 0\end{bmatrix}+t_0
xwywzw
=Ro
xvyv0
+t0注:这里
x
v
,
y
v
,
0
x^v, y^v, 0
xv,yv,0我想是因为这是真实坐标,和之前算的不是一个概念,之前只是为了得到
x
v
,
y
v
x^v, y^v
xv,yv
作者每隔30m保存一张局部地图,如下图所示:
3.4 Loop Detection
在局部地图之间通过ICP (Iterative Closest Point)检测回环,对检测到回环的局部地图进行融合,以修正drift。融合结果如下:
3.5 Global Optimization
地图优化,优化图的节点为每个局部地图的位姿:旋转
r
=
[
r
x
,
r
y
,
r
z
]
T
r=[r_x, r_y, r_z]^T
r=[rx,ry,rz]T+平移
t
=
[
t
x
,
t
y
,
t
z
]
T
t=[t_x, t_y, t_z]^T
t=[tx,ty,tz]T,边由两部分组成:
①连续局部地图间的相对位姿组成的边;
②构成回环的局部地图点间的相对位姿构成的边;
最后需要优化的cost函数:
X
∗
=
a
X
r
g
m
i
n
∑
t
∣
∣
f
(
r
t
+
1
,
t
t
+
1
,
r
t
,
t
t
)
−
z
t
,
t
+
1
o
∣
∣
2
+
∑
i
,
j
∈
L
∣
∣
f
(
r
i
,
t
i
,
r
j
,
t
j
)
−
z
i
,
j
l
∣
∣
2
\mathcal{X}^* = \underset{\mathcal{X}}argmin\ \sum_{t}||f(r_{t+1}, t_{t+1}, r_t, t_t)-z_{t, t+1}^o||^2+\sum_{i, j\in{\mathcal{L}}}||f(r_i, t_i, r_j, t_j)-z_{i, j}^l||^2
X∗=Xargmin t∑∣∣f(rt+1,tt+1,rt,tt)−zt,t+1o∣∣2+i,j∈L∑∣∣f(ri,ti,rj,tj)−zi,jl∣∣2
m
a
t
h
c
a
l
X
mathcal{X}
mathcalX表示局部地图集合,f(.)用于计算相对位姿,z表示odometry计算的相对位姿。左边是①,右边是②。
3.6 Localization
在建完图后,汽车下次来到这里即可通过语义地图定位。在定位前需要知道汽车的初始位置,两种方法;
①标注停车场入口,然汽车在进入时根据入口可以有一个好的初始位置;
②GPS辅助初始位置,后续不再使用;
有了初始位置后,将当前车辆BEV图像的语义特征和地图进行匹配,使用ICP方法定位,即求解:
r
∗
,
t
∗
=
a
r
,
t
r
g
m
i
n
∑
k
∈
S
∣
∣
R
(
r
)
[
x
k
v
y
k
v
0
]
+
t
−
[
x
k
w
y
k
w
z
k
w
]
∣
∣
2
r^*, t^* = \underset{r, t}argmin \sum_{k\in \mathcal{S}}||R(r)\begin{bmatrix}x_k^v \\ y_k^v \\ 0\end{bmatrix} + t - \begin{bmatrix}x_k^w \\ y_k^w\\z_k^w\end{bmatrix}||^2
r∗,t∗=r,targmink∈S∑∣∣R(r)
xkvykv0
+t−
xkwykwzkw
∣∣2
为了考虑极度严苛下的视觉失灵,用EKF结合了odometry
特征匹配的情况如图所示:
3.7 Parking Spot Detection
语义结果给出了停车线和停车位的角点,用其可以很简单地恢复出停车位及其分布,如图;
问题
1、语义SLAM中是不是对摄像机像素要求升高了?
2、IPM中四张图片的重叠区域怎么办?