zoukankan      html  css  js  c++  java
  • LR:HDMI-Loc

    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} ight) ]

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

    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_{ ext {particle}}=min left(n_{min } frac{l_{max }}{n_{ ext {patch}} cdot l_{ ext {patch}}}, n_{max } ight) ]

    2. Partical Prediction

    3. Candidate Tileset Creation

    4. Particle Weight Update

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

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

    [hat{I}_{p_{i}}=tleft(mathbf{c}_{p_{i}} ight) rleft(hat{ heta}_{p_{i}}- heta_{p_{i}} ight) tleft(-mathbf{c}_{p_{i}} ight) 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}} ight) ]

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

    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} ight} ]

    [$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)} ight)$ ]

    3. Experimental Results

    ..

    4. Conclusion

    没啥.

  • 相关阅读:
    webuploader之大文件分段上传、断点续传
    人民币数字金额转大写金额
    发现个delphi调用vc写的Dll中包括pchar參数报错奇怪现象
    HTML5 CSS3 专题 : 拖放 (Drag and Drop)
    Cts框架解析(6)-任务的运行
    vector draw 试用期结束的 激活方法
    15_Android中任务栈
    Android之——AIDL深入
    FZU 2155 盟国
    十分简洁的手机浏览器 lydiabox
  • 原文地址:https://www.cnblogs.com/tweed/p/13653909.html
Copyright © 2011-2022 走看看