菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
227
0

LR:HDMI-Loc

原创
05/13 14:22
阅读数 20654

Abstract

HDMap: 矢量的地图

我们用立体相机roadmark.

我们引入了路信息8-bit 表示.

现状 现存的方法没有完全的利用地图信息, 只是估计了部分pose.

我们展现了6DOF的定位, 用了立体相机.

我们利用了粒子滤波和一个6DOF的优化器. 平均误差在 - 0.3m,.

1. Introduction

A. 2D Digital Map-based Localization

低精度的航拍图向量的2D图.

[3] 用航拍图提取的roadmark和poles作为路标. Pole状的特征从LiDAR点云中提取, roadmark像箭头, 停止线和人行道用图像检测. 然后用这些估计位姿.

[4] 用SVM(Support Vector Machine) 来定义车道线像素, marking是用canny edge来检测, 然后估计了每个marking的中心, 最后通过匹配车道线和航拍图的中心来估计位姿.

[6] 用了航拍图提取的墙的方向来修正航向角.

[7] 用了2D数字地图来存储建筑

B. 3D Pointcloud Map-Based Localization

[9] 用点云的广度信息来估计位姿.

[10] 用NMI(Normalized互信息).

[11] 用立体相机和3D地图来定位.

C. HD Map-based Localization

Naver Labs 的地图11x11km的需要17Mbyte.

2. Proposed Method

用了[13]的矢量地图.

  1. 从立体相机获得视差图语义label.

  2. 把hdmap从shapefiles转船成8-bit图.

  3. 用粒子滤波估计4DOF(3DOF和平移和yaw)的位姿. 通过图像匹配和全局HDmap图. query的patch和全局HDMap图都是8-bit图, 所以可以用与计算. 最后在非线性优化在算6DOF.

B. Pre-processing and 8-bit Representation

在匹配前, 我们把HDMap向量数据->8-bit表示, 叫做tile, 保存在图像.

1. HDMap -> 8 bit image tile

我们把上图的shapefile进行转化. 第1/2/3 bit表示lane, stop lines, 和signs.

上图一个块就是一个tile. 每个像素都是以8-bit表示, 每个bit表示一个label.

2. Search Tree for HD Map Tiles

有一个HDMap中心树, 这个中心数是由每个tile的中心组成的.

3. Stereo Image to Labeled Pointcloud

4. Labeled Pointcloud to Subpatch

我们通过投影有类别的点云(从立体相机)到z平面(鸟瞰投影). 这个8-bit图像表示叫做subpatch, 最后会组合成一个patch.

一个patch有 \(l_{patch}\) (5) 个序列的 subpatch.

C. Patch Maintenance

1. Patch Update

投影方程:

\[^{p_{0}} P=\pi_{0}\left({ }^{G} P_{S, t}\right) \]

它把全局坐标系里的点云投影到了图像坐标(z-plane). 投影的结果包含图像坐标和label信息: \(^{p_{0}} P^{(k)}=\left\{u^{(k)}, v^{(k)}, l^{(k)}\right\}\)

2. Patch Selection

...

D. Bitwise Particle Filter

\(\overline{\mathbf{T}}_{V}^{G}\) : 表示最终优化的位姿

\(\mathbf{T}_{V}^{G}\) : 里程计的推算位姿

粒子滤波 有三个状态量(\(t_x, t_y, r_z\)).

1. Partical Re-sampling

\[n_{\text {particle}}=\min \left(n_{\min } \frac{l_{\max }}{n_{\text {patch}} \cdot l_{\text {patch}}}, n_{\max }\right) \]

2. Partical Prediction

3. Candidate Tileset Creation

4. Particle Weight Update

粒子权重会根据bit-wise的匹配分数来更新.

对于匹配, patch图像 (\(I_{p_i}\))是通过 粒子位姿\(\hat{\theta}_{p_{i}}\)和里程计位姿\(\theta_{p_i}\) 来旋转的 ---- 绕着 patch图的中心点 \(c_{p_i}\)

\[\hat{I}_{p_{i}}=t\left(\mathbf{c}_{p_{i}}\right) r\left(\hat{\theta}_{p_{i}}-\theta_{p_{i}}\right) t\left(-\mathbf{c}_{p_{i}}\right) I_{p_{i}} \]

给定global HDMap tile图\(I_G\) 和 patch图 \(\hat{I_{p_I}}\) , 我们做了AND操作:

\[I_{M, p_{i}}=\operatorname{AND}\left(I_{G}, \hat{I}_{p_{i}}\right) \]

粒子的权重是用上式更新的.

5. Pose and Height Estimation

在更新粒子的权重之后, 最后的车辆位姿是用更新后的权重估计的. top 3% 的粒子的平均pose是最终的pose估计.

因为粒子滤波使用里2D图像匹配, 只有 \(t_x, t_y, r_z\) 可以用这个方法计算. 全局高度(\(t_z\))是用HDMap的高度信息更新的.

E. Optimization

最后的优化处理了roll和pitch.

从点云获得平面方程会被转换到车辆坐标, 用RANSAC算法.

\[V_{\mathbf{n}_{t}}=\left\{{ }^{V} n_{t, x},{ }^{V} n_{t, y},{ }^{V} n_{t, z},{ }^{V} d_{t}\right\} \]

\[$r_{x}^{*}, r_{y}^{*}=\underset{r_{x}, r_{y}}{\operatorname{argmin}} \sum_{k=0}^{N}\left({ }^{V} \mathbf{n}_{t} \cdot{ }^{V} P_{m a p}^{(k)}\right)$ \]

3. Experimental Results

..

4. Conclusion

没啥.

发表评论

0/200
227 点赞
0 评论
收藏