Apollo官方课程算法解读笔记——激光雷达感知模块、基于PointPillars的激光雷达点云检测算法、PointPillars模型的部署和优化模型的部署和优化

这篇具有很好参考价值的文章主要介绍了Apollo官方课程算法解读笔记——激光雷达感知模块、基于PointPillars的激光雷达点云检测算法、PointPillars模型的部署和优化模型的部署和优化。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、 Apollo 6.0激光雷达感知模块

1.1 激光雷达简介

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
感知模块检测效果:
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

左边为摄像头拍摄图像,激光雷达感知不依赖左边CAMERA,而是点云数据对应的效果图(黄色上方数字为Tracking ID)
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

主车红灯时的激光点云检测效果图

1.2 激光雷达感知模块

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

车道线给CAMERA提供一个标定参考,使得camera检测出来的障碍物从2维转化为3维的信息,因为此标定的参考,转化将更为精确;最后才做camera的目标跟踪。
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

首先从LIDER拿到点云数据,进行预处理,比如:去掉一些异常值的点(空值点,异常大的值或者截取一定范围内的点云数据);接着对点云做目标检测(输出障碍物,带有位置信息的障碍物);再对障碍物做目标跟踪,结合前几帧的信息根据Tracking ID判断障碍物的速度和朝向;最后再融合其它传感器,障碍物信息结果进行输出。
感知特点:全新算法,检测精准(PointPillars)
毫秒感知,实时可靠(10hz输出)

1.3 3D障碍物检测流程

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

左边为一个点云图,对其编码后转化为算法更容易理解更抽象的特征;再由网络/模型对左边提取出关键特征,再解码为我们需要的障碍物2维框,右图里绿色的框(框包围住了障碍物)。

二 、基于PointPillars的激光雷达点云检测算法

2.1 基于Voxel的3D目标检测

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

先前方法将点云数据转化为BEV(BirdsEyeView)再进行处理,实质是压缩后进行处理(有损压缩,并非原始数据处理),那么为了提升效果就需要结合多传感器共同提高效果;而Voxel则不需要,点云分割为小格子,直接对点云数据做处理,通过LIDAR的数据结合神经网络层提取特征图。

但是Voxel需要进行三维卷积,耗时,占内存。
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

较之VoxelNet,去掉了3维卷积,简化为2维卷积,精度速度都更高效。

最大区别:点云转化为BEV的过程,PointPillars并非分割为小格子,而是按照xy平面网格划分为竖立的柱子,

2.2 PointPillars模型原理讲解

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

PFE是对VFE的一种简化。VFE得到global特征后会再复制一份与原始数据进行拼接。

2.3 PointPillars的改进

2.3.1 损失函数

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

Focal loss提出是为了缓解分类任务正负样本比例不均衡,α和γ为两个超参数,需要预先设定来调整损失函数的效果;但是用加权softmax函数后泛化性更好,检测效果也有所改善(其实就是对不同的类别加不同的权重)

2.3.2. Pillar特征编码

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

即PFE。此处改进在拿到点特征的时候,这个点云包含改点xy坐标和激光雷达反射率,也可以包含其他特征;先对xy做一个radius替换,初步变换,再进行下续操作;

为何用radius替换点特征呢
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

原点即为激光雷达传感器,x为车正前方,y为车正左方。
降了一维。
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

RPN是把点云转化为BEV特征图后的一个网络,用来输出最后的检测框和类别。

通过预先在网格点上设定好初始检测框,然后对应到特征图(通过卷积层得到的特征图)上面,通过后续处理得到候选框包含目标的概率分布值和候选框包含目标其目标对应的类别的概率分数,最后从候选框中选出模型要输出的目标。

Proposals 候选框:anchor, 2维检测里边,同一个目标在不同拍摄角度在图像里的尺寸不一(近则大,远则小),所以设定不同的anchor来进行匹配。
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

对点云做检测,右侧为检测后的图,
点云里边同一种目标经常是大小,甚至长宽高比例相似,比如图例的小轿车大小接近,就可以设定初始大小值为anchor初始值,
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

点云直接的距离是真实物理大小,和图像有区别,不需要考虑multi-direction(图像是因为有不同的像素尺寸)。

在3维的点云目标检测转化为BEV的目标检测任务之后,其实anchor,也就是起初设定的那些框只需要考虑在俯视图视角下目标的朝向即可,但有些目标,比如行人,俯视图下长宽比接近1:1,这种类别只需设定1个anchor即可,不需要多角度,同traffic coin交通锥桶,而卡车就需要2个anchor。但并非多个anchor效果更好,实验表明,结果差不多但耗时计算更多。

2.3.3 Multi-anchor&multi-head

另一个改进:

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

个头较大类别(小轿车、卡车、公交车、工程车)和个头较小类别(行人、自行车、摩托车、交通锥桶、路障)。
神经网络的输出叫做Head,包含:类别概率得分,框本身参数回归值boundingbox(中心点的xy坐标,框的长宽高,以及在xy平面上与x轴正方向的夹角)以及车头朝向(朝前还是朝后)。
随着卷积层的深入,每一层的特征会更加抽象,会包含越来越global的特征,SmallHead利用两个卷积块,LargeHead利用3个卷积块(尺寸较大,需要更为global的特征,也包括需要进行维度调整)。
好处:从local到global的信息都有,包含更为丰富的特征和语义信息,使得最终检测的大小长宽高朝向都更为精确。

三 、PointPillars模型的部署和优化

3.1 PointPillars模型的部署

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

均为现成API。

3.2 实时inference的加速优化

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

6个步骤:
1)点云预处理;
2)去除超过预先设定点云范围;
3)PFE;
4)pillar特征按照原先pillar在xy平面上的位置映射回去;
5)RPN输出障碍物;
6)候选框筛选部分输出(或设定概率分数值阈值,小于该值的不予输出)。

Cuda:英伟达出的并行加速语言,
ONNX-TensorRT
PFE用两个部分:第一层是个转换点(radius)过程,不需要训练,对比会节省掉近乎一般时间。
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

补充:

高精地图
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉
采集车(激光雷达+摄像头,一定时间进行扫描):单张图片和单帧点云拼接为全局3D世界,再转化为俯视图识别车道线等;元素识别;

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

道路上某个时刻几十米范围内的单帧数据;拼接后得到完整3D世界;点云正上方得到俯视图。

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉

左边动态物体先略掉,再进行识别;

apollo雷达适配,自动驾驶,# Apollo,人工智能,算法,目标跟踪,计算机视觉文章来源地址https://www.toymoban.com/news/detail-625443.html

到了这里,关于Apollo官方课程算法解读笔记——激光雷达感知模块、基于PointPillars的激光雷达点云检测算法、PointPillars模型的部署和优化模型的部署和优化的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Autoware1.14-摄像头、激光雷达感知融合

    实现目标: 利用摄像头目标检测结果 vision_darknet_yolo3 (人、车)、利用激光雷达获得目标的几何信息 lidar_euclidean_cluster_detect (大小、距离)、利用感知融合模块融合摄像头和激光雷达信息 range_vision_fusion ,并在三维地图中可视化。 效果展示: 激光雷达-摄像头感知融合展示

    2024年02月05日
    浏览(42)
  • 仿真机器人-深度学习CV和激光雷达感知(项目2)day04【简单例程】

    💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容 🌟 预置知识:基本Python语法,基本linux命令行使用 以下的几个专栏是本人比较满意的专栏 (大部分专栏仍在持续更新

    2024年01月21日
    浏览(44)
  • 仿真机器人-深度学习CV和激光雷达感知(项目2)day5【作业1与答案1】

    💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容 🌟 预置知识:基本Python语法,基本linux命令行使用 以下的几个专栏是本人比较满意的专栏 (大部分专栏仍在持续更新

    2024年01月21日
    浏览(46)
  • 仿真机器人-深度学习CV和激光雷达感知(项目2)day03【机器人简介与ROS基础】

    💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎大家的关注,我的博客主要关注于考研408以及AIoT的内容 🌟 预置知识:基本Python语法,基本linux命令行使用 以下的几个专栏是本人比较满意的专栏 (大部分专栏仍在持续更新

    2024年01月19日
    浏览(48)
  • 3D激光SLAM:LeGO-LOAM论文解读---激光雷达里程计与建图

    激光雷达里程计模块的功能就是 :估计相邻帧之间的位姿变换。 估计的方式 :在相邻帧之间做点到线的约束和点到面的约束 具体的方式和LOAM一样 针对LOAM的改进 1 基于标签的匹配 在特征提取部分提取的特征点都会有个标签(在点云分割时分配的) 因此在找对应点时,标签

    2023年04月09日
    浏览(79)
  • 自动驾驶环境感知之基于深度学习的毫米波雷达感知算法

    (1)基本的数据形式 ADC(数模转换)数据块:由Chirp采样N、每帧内Chirp个数M和天线K组成的三维数据块的中频信号 Range-Azimuth-Doppler数据块:将中频信号数据块分别在距离、速度、角度三个维度上进行FFT操作,得到距离-角度-速度表征的RAD数据块。其中,角度是指水平方向的旋

    2024年01月25日
    浏览(45)
  • Cartographer算法2D激光雷达与IMU融合建图

     上一篇文章讲了cartographer算法手持雷达建图的参数调试,这篇进一步讲如何融合2D雷达与IMU采用cartographer算法进行slam建图。 cartographer算法手持二维激光雷达建图(不使用里程计及IMU) https://blog.csdn.net/wangchuchua/article/details/127268037?spm=1001.2014.3001.5502 思岚s1激光雷达、Tobotics

    2024年02月07日
    浏览(45)
  • mid360激光雷达跑Point-LIO算法

    以下是建图的运行过程及参数配置 mid360激光雷达驱动 安装(ubuntu20.4 ) 配置修改MID360_config.json 192.168.1.5,是本机ip 192.168.1.157是激光ip 57是激光雷达的sn号后两位

    2024年02月11日
    浏览(33)
  • 激光雷达点云基础-点云滤波算法与点云配准算法

    激光雷达点云处理在五年前就做了较多的工作,最近有一些新的接触发现激光雷达代码原理五年前未见重大更新,或许C++与激光雷达结合本身就是比较高的技术门槛。深度学习调包侠在硬核激光雷达技术面前可以说是完全的自愧不如啊。 1、点云滤波 在获取点云数据时,由于

    2024年03月19日
    浏览(44)
  • 自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达

    DBSCAN: Density Based Spatial Clustering of Applications with Noise; DBSCAN是基于密度的聚类方法,对样本分布的适应能力比K-Means更好。 红色的点是核心对象 黑色的点是非核心对象 注意 :距离的度量不限于点的空间距离,还可以是其它点特征,比如速度、反射强度等 基本思路 假定类别可以

    2024年02月11日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包