RoadMap: A Light-Weight Semantic Map for Visual Localization towards Autonomous Driving
摘要
如何让低成本的量产车受益于传感器丰富的车辆来实现准确定位?本文提出了一种轻量级的定位方案,其依靠低成本的相机与紧凑的语义地图。地图以众包的方式由传感器丰富的车辆产生,包含若干语义元素,如车道线、斑马线、地标线等。整个框架包括车载建图、云端维护、用户端定位。地图数据在车辆端采集并预处理。随后,众包数据被上传到云服务器上,来自多辆车的大量数据在云端被合并,以便于语义地图的及时更新。最后,语义地图被压缩并分发到量产车上,量产车用其实现定位。我们在真实世界中验证了所提出的地图,并于其他算法进行了比较。语义地图的平均大小是36kb/km。我们强调,这一框架对于自动驾驶是可靠且实用的定位方案。
Ⅰ. INTRODUCTION 简介
定位对自动驾驶很重要,高精度的定位依赖于高精度的传感器和高精地图。
RTK-GPS和激光雷达(结合高精地图)是两种常用的厘米及定位方案,然而一些缺点限制了其在量产车上的实用。为了克服这些挑战,要探索低成本传感器与紧凑地图的方案。
本文提出的方案仅依靠相机和紧凑的语义地图。地图包含若干语义要素,如车道线、斑马线、路面标志等。
**大致过程:**地图由传感器丰富的车辆(如Robo-taxis)产生,基于学习的语义分割被用来提取有用的地标。随后,语义地标从2D恢复到3D,并存入局部地图中;局部地图上传到云端服务器,云端合并来自不同车辆的数据,并压缩全局语义地图;最终,紧凑的地图被分发到量产车上用于定位。
本文的贡献:
- 对自动驾驶提出了一种新的轻量级的定位框架
- 提出了一种新方法,让低成本车辆受益于传感器丰富的车辆
- 进行了真实世界的实验可行性
Ⅱ. LITERATURE REVIEW 文献综述
传统视觉定位侧重于在小范围室内环境下同步定位与建图(SLAM),在自动驾驶任务中更关注大氛围室外环境。
A. 传统视觉SLAM
视觉里程计是视觉SLAM领域中一个经典的课题,常用的方法包括相机方法[1]-[5]和视觉惯性方法[6]-[9]。基于几何特征的视觉里程计。
在有地图的情况下,是视觉里程计可以扩展为一个在固定坐标系中定位的问题。通过匹配特征点的描述子来定位(如ORB-SLAM2 )。
传统的基于外观的方法在长期的使用过程中受到了光线、透视和时间的影响。
B. 基于道路的定位
道路特征包括各种路面标记,比如车道线、马路边沿、地面标志,以及3D特征,如交通灯与交通信号。与传统的特征相比,这些特征在道路上丰富而稳定,对时间和光照的变化具有鲁棒性。
总的来说,一个精确地先验地图(高精地图)是必不可少的。
通过检测道路特征的定位方法:……
构建道路地图的方法:……
本文关注一个完备的系统,包含车载建图、云端合并更新、客户端使用
Ⅲ. SYSTEM OVERVIEW 系统概览
**车载建图:**使用配备前景相机、GPS-RTK以及基础导航传感器(IMU和轮子编码器)的车辆。语义特征通过语义网络从前视图像中提取。随后,语义特征被投影到世界坐标系中。一个局部的语义地图在车辆端建立,随后被发送到云端。
**云端建图:**云服务器从多个车辆收集本地地图。本地地图合并成全球地图。然后通过轮廓提取对全局地图进行压缩。最后,将压缩的语义映射发布给最终用户。
**终端用户定位:**下载并解码语义地图。车辆通过予以特征匹配相对语义地图定位。
Ⅳ. ON-VEHICLE MAPPING车辆建图
A. Image Segmentation 图像分割
本文采用基于CNN的图像分割方法,全景相机捕获的图像被分割为多个类别,其中地面、车道线、停止线、路标被用于语义建图。
B. Inverse Perspective Transformation 反向透视变化
在语义分割之后,语义像素从图像平面反向投影到地面的车辆坐标系中。这一过程被称为反向透视变换(Inverse Perspective Mapping , IPM)。相机的内部参数以及相机到车辆中心的外部变换,已经被离线标定。由于投影噪声的存在,场景越远误差就越大,我们仅仅选择感兴趣区域内的像素进行投影,即fig3(a)中红色矩形区域。
反向透视变换,即把图像平面的坐标投影到车辆坐标中,公式如下:
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}\left[\begin{array}{c} x^{v} \\ y^{v} \\ 1 \end{array}\right]=\left[\begin{array}{ll} \mathbf{R}_{c} & \mathbf{t}_{c} \end{array}\right]_{c o l: 1,2,4}^{-1} \pi_{c}^{-1}\left(\left[\begin{array}{l} u \\ v \\ 1 \end{array}\right]\right)
λ1⎣⎡xvyv1⎦⎤=[Rctc]col:1,2,4−1πc−1⎝⎛⎣⎡uv1⎦⎤⎠⎞
C. Pose Graph Optimization 位姿图优化
提供任意时刻可靠的位姿
min
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
}
\min _{\mathbf{s}_{0} \ldots \mathbf{s}_{n}}\left\{\sum_{i \in[1, n]}\left\|\mathbf{r}_{o}\left(\mathbf{s}_{i-1}, \mathbf{s}_{i}, \hat{\mathbf{m}}_{i-1, i}^{o}\right)\right\|_{\sigma}^{2}+\sum_{i \in \mathcal{G}}\left\|\mathbf{r}_{g}\left(\mathbf{s}_{\mathbf{i}}, \hat{\mathbf{m}}_{i}^{g}\right)\right\|_{\sigma}^{2}\right\}
s0…snmin⎩⎨⎧i∈[1,n]∑∥∥ro(si−1,si,m^i−1,io)∥∥σ2+i∈G∑∥rg(si,m^ig)∥σ2⎭⎬⎫
其中
r
o
(
s
i
−
1
,
s
i
,
m
^
i
−
1
,
i
o
)
=
[
R
(
q
i
−
1
)
−
1
(
p
i
−
p
i
−
1
)
−
δ
p
^
i
−
1
,
i
o
[
q
i
−
1
⋅
q
i
−
1
⋅
δ
q
^
i
−
1
,
i
o
]
x
y
z
]
r
g
(
s
i
,
m
^
i
g
)
=
p
i
−
m
^
i
g
\begin{aligned} \mathbf{r}_{o}\left(\mathbf{s}_{i-1}, \mathbf{s}_{i}, \hat{\mathbf{m}}_{i-1, i}^{o}\right) &=\left[\begin{array}{c} \mathbf{R}\left(\mathbf{q}_{i-1}\right)^{-1}\left(\mathbf{p}_{i}-\mathbf{p}_{i-1}\right)-\delta \hat{\mathbf{p}}_{i-1, i}^{o} \\ {\left[\mathbf{q}_{i}{ }^{-1} \cdot \mathbf{q}_{i-1} \cdot \delta \hat{\mathbf{q}}_{i-1, i}^{o}\right]_{x y z}} \end{array}\right] \\ \mathbf{r}_{g}\left(\mathbf{s}_{\mathbf{i}}, \hat{\mathbf{m}}_{i}^{g}\right) &=\mathbf{p}_{i}-\hat{\mathbf{m}}_{i}^{g} \end{aligned}
ro(si−1,si,m^i−1,io)rg(si,m^ig)=[R(qi−1)−1(pi−pi−1)−δp^i−1,io[qi−1⋅qi−1⋅δq^i−1,io]xyz]=pi−m^ig
即最小化残差
D. Local Mapping
根据位姿图优化结果,
i
i
i帧捕获的语义特征由车辆坐标系转化到世界坐标系。
[
x
w
y
w
z
w
]
=
R
(
q
i
)
[
x
v
y
v
0
]
+
p
i
\left[\begin{array}{l} x^{w} \\ y^{w} \\ z^{w} \end{array}\right]=\mathbf{R}\left(\mathbf{q}_{i}\right)\left[\begin{array}{c} x^{v} \\ y^{v} \\ 0 \end{array}\right]+\mathbf{p}_{i}
⎣⎡xwywzw⎦⎤=R(qi)⎣⎡xvyv0⎦⎤+pi
**分割噪声的来源:**多帧中对同一目标的分割结果不同
**分割噪声的解决办法:**统计学方法。将空间分为
0.1
×
0.1
×
0.1
m
0.1 × 0.1 × 0.1m
0.1×0.1×0.1m的块,对不同帧语义分割的结果进行计数,数量多的为最终的语义label。
V. ON-CLOUD MAPPING云端建图
A. Map Merging / Updating 地图合并/更新
云端地图服务器被用来聚合多辆车捕获的大量数据,即实时合并局部地图为保障全局地图是最新的。局部地图的栅格依据其位置被添加到全局地图中。
特别的局部地图栅格的分数也会被添加到相应的全局地图之中,最终有最高分数的label就是栅格的label。
B. Map Compression 地图压缩
语义地图在云端被进一步压缩。首先将每一个语义栅格转化为像素,然后提取每个语义类的边界,最终边界点被存储并发放至量产车中。
VI. USER-END LOCALIZATION
A. Map Decompression 地图解压
用相同的语义标签填充轮廓内部的点
B. ICP Localization
上述语义地图被进一步用于定位。与建图过程相似,语义点由前景图分割得到,并投影到车辆坐标系中。随后,将当前的特征点与地图进行匹配获得车辆的位姿。
![根据语义特征定位](https://i-blog.csdnimg.cn/blog_migrate/9bc6995877b41573a2eb8eeb59cace9a.png)
位姿估计采用迭代最近邻点(ICP)方法,表达为如下等式:
q
∗
,
p
∗
=
arg
min
q
,
p
∑
k
∈
S
∥
R
(
q
)
[
x
k
v
y
k
v
0
]
+
p
−
[
x
k
w
y
k
w
z
k
w
]
∥
2
\mathbf{q}^{*}, \mathbf{p}^{*}=\underset{\mathbf{q}, \mathbf{p}}{\arg \min } \sum_{k \in \mathcal{S}}\left\|\mathbf{R}(\mathbf{q})\left[\begin{array}{c} x_{k}^{v} \\ y_{k}^{v} \\ 0 \end{array}\right]+\mathbf{p}-\left[\begin{array}{c} x_{k}^{w} \\ y_{k}^{w} \\ z_{k}^{w} \end{array}\right]\right\|^{2}
q∗,p∗=q,pargmink∈S∑∥∥∥∥∥∥R(q)⎣⎡xkvykv0⎦⎤+p−⎣⎡xkwykwzkw⎦⎤∥∥∥∥∥∥2
一个EKF框架被用于末端,用来融合里程计与视觉定位的结果。这一滤波器不仅增加了定位结果的鲁棒性,还平滑了估计的轨迹。
VII. EXPERIMENTAL RESULTS 实验结果
第1个实验关注建图性能,第2个实验关注定位精度。
A. Map Production 地图生产
地图压缩性能:22km的路网,原始语义地图16.7MB,压缩后语义地图0.786MB
地图更新过程:
B. Localization Accuracy 定位精度
与基于Lidar的方法进行比较,将GPS-RTK作为真值。
VIII. CONCLUSION & FUTURE WORK
所提出的方法利用到了路面的标志,事实上,在三维空间中更多的元素可用于定位,比如交通灯、交通信号、电线杆等。未来,可以将更多的3D语义元素加入地图中。