ICRA 2021 文章链接
提出了轻量级的语义定位地图构建方法,通过云端让低配车辆使用高配车辆所构建的地图
1 速读
1.1 论文试图解决什么问题?这是否是一个新的问题? 试图解决大多车辆搭载的传感器质量难以满足自动驾驶中定位需求的问题。不是新问题。
1.2 有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员? Traditional Visual SLAM:VO, VIO,SLAM; Road-based Localization:构建高精地图(检测有用的信息用于建图,并在定位中使用),有的更进一步地专注于构建道路地图
1.3 文章的贡献是什么? ①一个轻量级定位框架 ②高配车建图+云端保存+用户端应用(有点像高德地图) ③应用于实际验证其效果
1.4 文章解决方案的关键是什么? 建图和定位分开,通过云端连接,实现高精度建图和低成本定位的要求
1.5 实验如何设计?实验结果足够论证其效果吗? 两个实验: ①验证构建地图的大小,在上海浦东新区22km的路段构建原地图16.7MB,压缩后为0.786MB。(个人认为应该对这个容量在实际使用是的情况做出说明,16.7在实际定位使用时对性能影响很大吗?0.786实际使用时有多小?读者并没有概念) ②实车搭载相机+雷达+GPS,GPS作为真值比较视觉和激光的误差(x,y,yaw (heading) directions),得到效果好于激光。(为什么是这三个维度?)
1.6 数据集是什么? 自己的车辆进行数据采集和实验
1.7 还会存在什么问题 作者在conclution中: ①只用到地面上的语义,应该添加更多语义
以下是精读部分
2 系统框架
分为三部分: ①on-vehicle mapping:搭载相机、雷达、GPS的车辆。装在车前的相机采集数据,通过语义网络提取语义特征, 根据相机位姿投影到世界坐标系用于构建语义地图。车辆构建的local语义地图上传到云端等到merge; ②on-cloud mapping:得到来自多台采集车辆的local语义地图,将其merge成一个global语义地图并通过contour extraction压缩,最后将压缩的语义地图发送给用户端; ③the end-user localization:搭载低成本设备(相机、低精度GPS、IMU、轮速计)的车辆解压地图,将前置摄像头的信息和获得的地图匹配,用于定位;
3 各个部分
3.1 ON-VEHICLE MAPPING
①特征提取 直接利用CNN网络提取前置摄像头拍摄图片中的语义特征(图a-图b); ②坐标系转化 a.提取的特征在图像坐标系下,先通过IPM(Inverse Perspective Mapping)转换为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????=[Rc??tc??]col:1,2,4?1?πc?1?(???uv1????)转换后只选择车前感兴趣区域((ROI)Region Of Interest)内的部分,因为太远太偏误差大(图b-图c) b.根据车辆位姿将语义信息转换到世界坐标系:
[
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}
???uipm?vipm?1????=Kipm????xvyv1????🌂分类错误修正 由于网络可能出现误分类,于是将map分为多个小方块(0.1m* 0.1m* 0.1m), 记录被分入当前方块的点的class数目,选择最多的class作为方块的class,最终建的的初始语义图如下: ④位姿计算 GPS信号强的时候使用GPS定位,弱的时候使用odometry定位,位姿优化图如下: 两种边:蓝色的GPS约束只存在与GPS信号强的时候,只影响一个点,绿色的Odometry一直存在并连接两个位姿点。 图优化求解:
m
i
n
S
0
.
.
.
S
n
?
{
∑
i
∈
[
1
,
n
]
∣
∣
r
o
(
s
i
?
1
)
,
s
i
,
m
^
i
?
1
,
i
o
∣
∣
σ
2
+
∑
i
∈
G
∣
∣
r
g
(
s
i
,
m
^
i
g
)
∣
∣
σ
2
}
\underset{S_0...S_n}{min}\ \left\{\sum_{i\in[1, n]}||r_o(s_{i-1}), s_{i}, \hat{m}_{i-1, i}^o||_{\sigma}^2 + \sum_{i\in \mathcal{G}}||r_g(s_i, \hat{m}_i^g)||_{\sigma}^2\right\}
S0?...Sn?min??????i∈[1,n]∑?∣∣ro?(si?1?),si?,m^i?1,io?∣∣σ2?+i∈G∑?∣∣rg?(si?,m^ig?)∣∣σ2?????左边项表示绿色边,右边项表示蓝色边。
3.2 ON-CLOUD MAPPING
①Map Merging / Updating 对上传的多张local 语义地图做3.1中的🌂操作,合并成全局地图; ②Map Compression 使用轮廓线代替点云,先将语义地图转换成俯瞰视角,然后提取轮廓线,如下图所示:
3.3 USER-END LOCALIZATION
①Map Decompression 从云端得到的地图只有轮廓,用户端从俯瞰视角将轮廓内填满对应语义,即得到完整语义地图 有了初始位置后,将当前车辆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,ta?rgmink∈S∑?∣∣R(r)???xkv?ykv?0????+t????xkw?ykw?zkw?????∣∣2定位同时结合了EFK,以提高鲁棒性和位姿计算的平滑度
问题
1.为什么这里的内参少了一个公式?
|