• apollo lidar 模块3.0&6.0


    1. 旧版 cnn_segmentation

    百度开源的旧版点云网络是cnn_segmentation,是三维语义分割网络,apollo3.0-apollo5.0一直沿用,由于采用了百度的大规模数据集训练,其检测性能(主要是鲁棒性、边缘拟合度)要胜于基于KITTI训练的神经网络。但该神经网络对GPU的性能要求高,需要GTX1080以上的显卡才能维持10HZ的推理频率。
    因此百度在apollo6.0推出了其新的检测网络模型,在速度上有很大提升。

    (1) 网络模型解析,检测算法解析博客
    (2) 3d_obstacle_perception_cn.md
    (3) 源码阅读解析博客

    cnn_seg对点云的三维数据首先进行鸟瞰图投射,然后采用二维网络进行分割。如下图所示。
    在这里插入图片描述
    点云中的每个点落在了对应的网格中,进而可以用网格中的位置索引到点云的任意点,无序的点云数据从而可以,输入到全卷积神经网络(利用这些网络提取特征)。特征包含:

    1. 单元格中点最大高度
    2. 单元格中最高点的强度
    3. 单元格中点的平均高度
    4. 单元格中点的平均强度
    5. 单元格中的点数
    6. 单元格中心相对原点的角度
    7. 单元格中心相对原点的距离
    8. 二进制表示单元格是否被占用还是空的

    然后,通过进入卷积神经网络FCNN的障碍物检测,cnn_seg获取了每个单元格的4个预测信息。“中心偏移” “对象性” “ 积极性” “对象高度” 。用来进行后续的处理。
    后处理过程详细见网络模型解析。“构建障碍物集群” “集群分类” “障碍物边框构建” 。
    (cnn_seg属于百度自创的网络,由于没有开源其训练,无法获知其LOSS等。网上有一些博客,通过自己写训练代码,可以对KITTI等进行训练)

    2. 新版 pointpillars

    apollo6.0激光雷达,算法库有更新,激光雷达用了新的模型pointpillars。并对其进行了改进,提高了检测性能。详细解析见以下两个链接。
    (1) 源码阅读博客
    (2) 检测模型解析分析博客,含与原版pointpillar的对比

    (由于百度没有开源其训练,所以分析原版的pointpillars 网络)pointpillars是cvpr2019的优秀网络。使用pillar描述点云数据,使用编码器网络学习其特征;整个方法采用2D卷积层。这样的效果就是:pillar的数据表示可以不需要针对具体的雷达做适配,2D卷积的速度较快,此外自学习的特征表示有较好的范化能力。
    网络结构是由以下组成:“Pillar feature net", " Backbone (2D cnn)", “Detection head(ssd)”.

    在这里插入图片描述
    其中,“Pillar feature net"是首先在鸟瞰图上对其进行网络分割,得到(H X W)个柱子分割,即为pillar;然后对每个柱子的每个点取9个维度作为网络的输入(x,y,z,r,xc,yc,zc,xp,yp),x,y,z是位置,r是反射率,xc,yc,zc是点到pillar内点的算数平均值的距离,xp,yp是点相对于网路中心的偏差。
    ”Backbone (2D cnn)",包含了用于采集不同尺度特征信息(卷积、归一、非线性层)的子网络,和用于将不同尺度特征信息融合(反卷积)的子网络。
    “Detection head(ssd)”,采用了SSD做检测网络。
    损失函数采用了类似SECOND的损失函数,由“定位回归损失” “HEADING损失” “分类损失”组成。数据集的ground truth包含(x,y,z,l,w,h,o)即位置、长宽高、heading 。
    在这里插入图片描述

  • 相关阅读:
    Mac终端首行显示特定字符便于查看
    JSON使用
    java中的函数式接口是什么?
    vmware网络负载均衡方式
    GNSS技术在交通运输领域的创新应用
    2022- CSS 函数代码了
    11月5日 OpenCV 实战基础学习笔记——图像金字塔、轮廓、模板匹配
    Damask使用指南-Hcp结构(镁(考虑孪晶))孪晶如何加入
    X-Spider媒体下载工具
    go并发操作且限制数量
  • 原文地址:https://blog.csdn.net/yunqiushuiman/article/details/125614138