自动驾驶感知——激光雷达物体检测算法

news2024/12/27 0:45:39

文章目录

  • 1. 基于激光雷达的物体检测
    • 1.1 物体检测的输入与输出
    • 1.2 点云数据库
    • 1.3 激光雷达物体检测算法
      • 1.3.1 点视图
        • 1.3.1.1 PointNet
        • 1.3.1.2 PointNet++
        • 1.3.1.3 Point-RCNN
        • 1.3.1.4 3D-SSD
        • 1.3.1.5 总结和对比
      • 1.3.2 俯视图
        • 1.3.2.1 VoxelNet
        • 1.3.2.2 SECOND
        • 1.3.2.3 PIXOR
        • 1.3.2.4 AFDet
        • 1.3.2.5 总结与对比
      • 1.3.3 前视图
        • 1.3.3.1 LaserNet
        • 1.3.3.2 RangeDet
      • 1.3.4 多视图融合 (俯视图+点视图)
        • 1.3.4.1 PointPillar
        • 1.3.4.2 SIENet
        • 1.3.4.3 PV-CNN
      • 1.3.5 多视图融合(俯视图+前视图)
        • 1.3.5.1 MV3D
        • 1.3.5.2 RSN
  • 声明

1. 基于激光雷达的物体检测

1.1 物体检测的输入与输出

在这里插入图片描述输入
❖ 点:X, Y, Z和反射强度R
❖ 点云:多个点的集合(无序的,非结构化的数据)
输出
❖ 目标的类别和置信度
❖ 目标的边框(BoundingBox)
中心点3D坐标,长宽高,旋转角度
❖目标的其它信息
速度,加速度等
算法
❖ 点云表示:点视图,俯视图,前视图

1.2 点云数据库

    如下表所示:常见的点云数据库由KITTI、NuScenes、WOD等数据库。
在这里插入图片描述

1.3 激光雷达物体检测算法

    为了直观,先将激光雷达物体检测的一些常用算法列出。

算法类别算法
点视图PointNet/PointNet++,Point-RCNN,3D-SSD
俯视图VoxelNet,SECOND,PIXOR,AFDet
前视图LaserNet,RangeDet
多视图融合 (俯视图+点视图)PointPillar,SIENet,PV-CNN
多视图融合(俯视图+前视图)MV3D,RSN

1.3.1 点视图

1.3.1.1 PointNet

Qi et al., Pointnet: Deep learning on point sets for 3d classification and segmentation, 2017.
论文地址:https://arxiv.org/pdf/1612.00593.pdf

    PointNet有以下的用法:

  • 识别/分类(Classification):对于给定的一帧点云,判断该 点云中物体所属的种类。

  • 分割(segmentation):对于给定的一帧点云,将点云分成 若干个特定的、具有独特性质的区域。

在这里插入图片描述

核心思路:点云特征提取

  • MLP(多个全连接层)提取点特征:n个点,特征由3维提升到1024维
  • MaxPooling得到全局特征:1024维

端对端学习,对点云进行分类/语义分割
物体检测:Clustering得到候选 + PointNet分类

在这里插入图片描述

1.3.1.2 PointNet++

Qi et al., Pointnet++: Deep hierarchical feature learning on point sets in a metric space, 2017.

论文地址:https://papers.nips.cc/paper/2017/file/d8bf84be3800d12f74d8b05e9b89836f-Paper.pdf

在物体检测方向进行扩展:Clustering+PointNet

  • 用聚类的方式来产生多个候选点集,每个候选点集采用PointNet来提取点的特征
  • 上述过程重复多次:上一层的点集经过全局特征提取后看作下一层的点(Set Abstraction,SA)
  • 点特征具有较大的感受野,包含周围环境的上下文信息

在这里插入图片描述

PointNet和PointNet++中存在的问题

  • 无法利用视觉领域成熟的检测框架,比如Faster-RCNN,YOLO等
  • Clustering部分的计算复杂度较高,而且难以并行处理
  • 两个改进方法:Point-RCNN和3D-SSD

1.3.1.3 Point-RCNN

Shi et al., PointRCNN: 3D Object Proposal Generation and Detection from Point Cloud, 2018

论文地址:https://arxiv.org/pdf/1812.04244.pdf

    PointRCNN是一个两步式目标检测网络,该网络第一步进行前景点分割,找出点云中所有的目标点;第二步利用前景点回归目标的准确边界框。该网络同时兼顾了检测的准确(AP@0.7=75.6%)与实时性(10FPS)。

点处理 + Faster RCNN

  • PointNet++提取点特征,同时进行前景分割,以区分物体点和背景点
  • 每个前景点生成一个3D候选框(PointNet++采用聚类生成候选)
  • 对每个候选框内的点进行Pooling,最后输出候选框所属的类别,修正其位置和大小

运行速度瓶颈++中的Feature Propagation

  • PointNet++需要将点集特征映射回原始点云(Feature Propagation), 因为聚类生成的点集无法很好的覆盖所有物体
  • 全局搜索属于每个物体候选的点

在这里插入图片描述

1.3.1.4 3D-SSD

Yang et al., 3dssd: Point-based 3d single stage object detector, 2020
论文地址:https://arxiv.org/pdf/2002.10187.pdf

提高聚类质量

  • 同时考虑点与点之间在几何和特征空间的相似度
  • 聚类的输出可以直接用来生成物体候选

避免重复计算

  • 聚类算法输出每个cluster的中心和邻域点
  • 避免全局搜索物体候选和点之间的匹配关系

在这里插入图片描述

1.3.1.5 总结和对比

❖ PointNet++的主要问题在于运行速度太慢
❖ 速度的瓶颈在于聚类过程中需要将点集特征映射回原始点云
❖ Point RCNN和3D-SSD的改进主要在于提高运行速度

在这里插入图片描述

1.3.2 俯视图

1.3.2.1 VoxelNet

Zhou and Tuzel, Voxelnet: End-to-end learning for point cloud based 3d object detection, 2018

论文地址:https://arxiv.org/pdf/1711.06396.pdf

核心点

  • 特征学习网络(Feature Learning Network)
  • 3D卷积网络 (Convolutional Middle Layers)
  • 区域候选网络(Region Proposal Network)

在这里插入图片描述
在这里插入图片描述

VoxelNet中存在的问题
❖ 数据表示低效,大量空白区域

  • KITTI数据库一般生成5K-8K个Voxel,只有0.5%的Voxel是非空的
  • 改进方法:SECOND(采用稀疏卷积)

❖ 三维卷积计算量巨大

  • 改进方法:PIXOR(3D网格压缩到2D)

1.3.2.2 SECOND

Yan et al., Second: Sparsely embedded convolutional detection, Sensors, 2018.

论文地址:https://www.mdpi.com/1424-8220/18/10/3337

稀疏卷积避免无效计算

  • 中间层采用稀疏卷积
  • 其余模块与VoxelNet类似

在这里插入图片描述

1.3.2.3 PIXOR

Yang et al., Pixor: Real-time 3d object detection from point clouds, CVPR, 2018

论文地址:https://arxiv.org/pdf/1902.06326.pdf

PIXOR (ORiented 3D object detection from PIXel-wise neural network predictions)
❖ 手工设计高度维度的特征
❖ 3D->2D:高度维度变成特征通道
❖ 可以用2D卷积来提取特征
在这里插入图片描述

  • Occupancy:L x W x H(H维度作为特征通道)
  • Intensity:L x W x 1(H方向压缩为1维)
  • In totalLxWx (H+1)

1.3.2.4 AFDet

Ge et al., Real-Time Anchor-Free Single-Stage 3D Detection with IoU-Awareness, 2021
论文地址:https://arxiv.org/pdf/2006.12671.pdf

❖ 单阶段,无Anchor
❖ Waymo 3D物体检测 2021年度的获胜算法
❖ 算法方面的改进

  • 轻量级的点云特征提取
  • 扩大神经网络的感受野
  • 额外的预测分支

在这里插入图片描述

1.3.2.5 总结与对比

❖ 俯视图

  • 输入结构化数据,网络结构简单
  • 对量化参数敏感:粗网格导致较大的信息损失,细网格导致较大的计算量 和内存使用量

❖ 点视图

  • 没有量化损失,数据比较紧致
  • 输入非结构化数据,网络结构复杂,并行处理困难,提取邻域特征困难

在这里插入图片描述

1.3.3 前视图

前视图的特点
❖ 优点

  • 表示更为紧致,而且没有量化损失
  • 每个像素上理论上都会有数据

❖ 问题

  • 不同距离的物体尺度差别很大
  • 2D特征与3D物体信息存在不一致性

1.3.3.1 LaserNet

Meyer et al., LaserNet: An Efficient Probabilistic 3D Object Detector for Autonomous Driving, 2019.
论文地址:https://arxiv.org/pdf/1903.08701.pdf

❖ 输入数据为多通道的前视图图像
❖ 卷积和下采样提取多尺度特征
❖ 每个像素都预测物体边框的分布(均值和方差)
❖ MeanShift聚类+NMS得到最终的输出

在这里插入图片描述

1.3.3.2 RangeDet

Fan et al., RangeDet: In Defense of Range View for LiDAR-based 3D Object Detection, 2021

论文地址:https://arxiv.org/pdf/2103.10039.pdf

核心点:

❖ Meta-Kernel Convolution
❖ Range Conditioned Pyramid

在这里插入图片描述
在这里插入图片描述

1.3.4 多视图融合 (俯视图+点视图)

❖ 基本思路

  • 在较低分辨率的Voxel上提取邻域特征或者生成物体候选
  • 在原始点云上提取点特征,忽略空白区域,保持空间分辨率
  • Voxel特征与点特征结合

❖ 代表性方法

  • PointPillar
  • PV-CNN
  • SIENet

1.3.4.1 PointPillar

Lang et al., PointPillars: Fast Encoders for Object Detection from Point Clouds, 2019.

论文地址:https://openaccess.thecvf.com/content_CVPR_2019/papers/Lang_PointPillars_Fast_Encoders_for_Object_Detection_From_Point_Clouds_CVPR_2019_paper.pdf

❖ 特征: PointNet提取点特征(点视图),然后进行Voxel量化(俯视图)
❖ 主干:Feature Pyramid Network
❖ 检测头:SSD

在这里插入图片描述

1.3.4.2 SIENet

Li et al., SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud, 2021.
论文地址:https://arxiv.org/pdf/2103.15396.pdf

❖ 融合策略与PV-CNN相似
❖ 解决远处物体点云相对稀疏的问题

  • 采用了一个附加分支,将物体候选框中的点集进行扩展

在这里插入图片描述

1.3.4.3 PV-CNN

Liu et al., Point-voxel CNN for efficient 3d deep learning, 2019.
论文地址:https://arxiv.org/pdf/1907.03739.pdf

❖Voxel分支:低分辨率的Voxel提取邻域特征,然后映射回每个点上
❖Point分支:利用MLP来提取点特征,没有量化损失,也避免空白区域的计算
❖两个分支的特征合并用于后续的物体检测

在这里插入图片描述

1.3.5 多视图融合(俯视图+前视图)

❖ 基本思路

  • 融合俯视图和前视图下的特征
  • 尽量避免空白区域的无效计算

❖ 代表性方法

  • MV3D
  • Range Sparse Net (RSN)

1.3.5.1 MV3D

Chen, et al., Multi-view 3d object detection network for autonomous driving, 2017
论文地址:https://openaccess.thecvf.com/content_cvpr_2017/papers/Chen_Multi-View_3D_Object_CVPR_2017_paper.pdf

❖ BEV网格生成3D物体候选,再转换为不同视图下的候选
❖ 不同候选中进行ROI-Pooling
❖ 在候选层级上融合不同视图的特征

在这里插入图片描述

1.3.5.2 RSN

Sun, et al., RSN: Range Sparse Net for Efficient, Accurate LiDAR 3D Object Detection, 2021.
论文地址:https://arxiv.org/pdf/2106.13365.pdf

在这里插入图片描述

两阶段检测器,目的在于提高检测距离的可扩展性

  • 阶段1:前视图上进行前景分割,过滤背景点
  • 阶段2:前景点量化为Voxel,稀疏卷积提取特征,稀疏的Grid上检测物体
  • 稠密的前视图+稀疏的俯视图

声明

本人所有文章仅作为自己的学习记录,若有侵权,联系立删。本系列文章主要参考了清华大学、北京理工大学、深蓝学院、百度Apollo等相关课程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/193409.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023年Java学到什么程度可以找工作了?

不管是过去现在还是未来,任何以就业为目的的学习,参考的就业要求最直接的方式就是直接去搜索目标岗位企业的招聘要求。是不是很简单呢!下面是根据Java不同技术层次列举招聘要求:初级Java开发工程师:中级Java开发工程师…

出现这些症状,说明你的免疫力在走下坡路!

这些年免疫力逐渐成为大家关注的重点。随着身边越来越多的人感染,免疫力的强弱影响着每个人身体的恢复情况,好的免疫力就是最有效的药物。免疫力讲究平衡二字,太强、太弱都不好。太强会让机体过于敏感,对非致病因素也发起攻击&…

网络故障监控某小程序延时分析案例

背景 某港口集疏港系统近期出现故障,在凌晨3-5点时段无法上传疫情通勤卡,对港口货物运输带来影响。 该港口已部署NetInside全流量回溯系统,针对本次故障,进行故障定位和原因分析。 分析简介 操作时间:2022年9月8日星…

【C++】C++入门 命名空间 及输入与输出

前言 C是在C的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式等。熟悉C语言之后,对C学习有一定的帮助。 C补充C语言语法的不足,以及对C语言设计不合理的地方进行优化,比如&#x…

联想昭阳K4e电脑系统错误导致屏幕闪烁怎么重装系统?

联想昭阳K4e电脑系统错误导致屏幕闪烁怎么重装系统?有用户安装的电脑系统有兼容性错误,导致电脑开机之后,屏幕会不断的进行闪烁,无法正常的进行电脑操作。那么这个情况我们如何去进行电脑系统的重装呢?今天教大家U盘重…

项目管理系统

项目要求 1)服务器负责管理所有员工表单(以数据库形式),其他客户端可通过网络连接服务器来查询员工表单。 2)需要账号密码登陆,其中需要区分管理员账号还是普通用户账号。 3)管理员账号可以查…

【数据结构】极致详解:树与二叉树(下)——链式存储实现

目录 🤩前言🤩: 🤯一、链式存储概述🤯: 🤠二、链式结构的遍历🤠: 1.前序、中序与后序遍历: 2.层序遍历: 🥰三、链式存储结构各接…

2023年转行IT互联网:盘点高薪职业岗位!

要问今年转行求职最想进入的行业,那么互联网肯定算其中一个。智联招聘发布的《2022大学生就业力调研报告》显示,IT/通信/电子/互联网行业是应届生最期望就业的行业。中国青年报中青校媒面向全国大学生发起调查,有64.33%希望毕业后能进入互联网…

linux常识及常用命令

一、介绍 一般项目都是部署在linux服务器上的,linux内核起初是由芬兰人林纳斯托瓦兹在上学时出于爱好编写的。它是一套免费试用和自由传播的类Unix操作系统,是一个基于POSIX(可移植)和UNIX的多用户、多任务、多线程和多CPU的操作…

Task10-Excel看板

文章目录一 分析思路二 实现过程1 确定周数2 销售基础整理3 周销售数据变化趋势4 周销售渠道整理5 看板绘制一 分析思路 二 实现过程 1 确定周数 确定日期所在的周数用:【WEEKNUM函数】 WEEKNUM(serial_num,return_type)参数Ser…

简介CSS

目录 一、CSS概述 二 、CSS的语法规则 三、CSS的引入方式 1、内部样式表 2、行内样式表 四、代码风格 1、紧凑风格 2、展开风格 五、选择器 1、基础选择器 标签选择器 类选择器 id选择器 通配符选择器 2、复合选择器 后代选择器 子选择器 并集选择器…

网络设备和常见网络拓扑

目录 集线器 网桥 交换机 路由器 常见网络拓扑 总线型 环形 星型 树型 网状 集线器 集线器的英文称为“Hub”。“Hub”是“中心”的意思,它的主要功能是对接收到的信号进行再生整形放大,以扩大网络的传输距离,同时把所有节点集中在…

threejs 几何图形 相交、差集、并集 插件

目前搜集到的有以下几个 THREE-CSGMeshhttps://github.com/manthrax/THREE-CSGMeshcsg.jshttps://github.com/jscad/csg.jsOctreeCSGhttps://github.com/giladdarshan/OctreeCSG/threeBSP 这个现在已经不更新了【对新版本不支持了geometry新版中移除了】threebsp 【这个是前辈…

Win10系统如何调整分区大小?

在使用Win10系统的过程中,如果电脑分区大小不合适或某个分区已满的问题可以通过调整分区大小来解决。可以缩小其他有闲置空余空间的分区,在得到未分配的空间后,然后将其分配到已满的分区,或者直接合并2个分区。接下来一起看看调整…

Elasticsearch Java入门

Elasticsearch安装 官网下载 下载的时候注意版本,spring boot如果用的是2.2版本就下载6.8的版本就行 下载完成之后解压,运行bin->elasticsearch.bat就可以启动服务了 做出win服务 elasticsearch-service.bat install浏览器输入localhost:9200 Ki…

BandZip cmd调用参数

命令行参数 Bandizip&#xff08;Bandizip.exe&#xff09;及其控制台应用程序&#xff08;bz.exe&#xff09;支持以下命令行参数&#xff1a; 注&#xff1a;推荐使用bz.exe&#xff0c;这个是专门给控制台的&#xff0c;更加稳定一些 # Bandizip.exe <archive> # Ban…

Linux中hosthost.confhost.allowhost.deny作用

可实现应急响应断网&#xff1a;阻止本机对恶意IP的访问链接 /etc/host.conf 为解析库声明的配置信息 /etc/hostname 配置主机名&#xff08;永久生效&#xff09; /etc/hosts 配置ip地址映射 /etc/hosts.allow 配置ip地址白名单 /etc/hosts.deny 配置ip地址黑名单 解…

Centos7安装jdk1.8tomcat

文章目录注意一 jdk1.8下载与安装1.1 JDK下载地址1.2 查看Centos7自带jdk版本1.2.1 第一种方式1.2.2 第二种方式1.2.3 第三种方式1.2.4 下载自带JDK1.2.5 安装JDK1.2.6 补充&#xff1a;查看jdk的安装目录1.2.7 配置环境变量二 tomcat下载与安装三 服务器运行项目模拟3.1 第一步…

EvilSelenium:一款功能强大的Chromium浏览器渗透测试工具

关于EvilSelenium EvilSelenium是一款基于 Selenium的渗透测试工具&#xff0c;该工具基于武器化的Selenium实现其功能&#xff0c;可以帮助广大研究人员针对基于Chromium的浏览器进行安全分析和渗透测试。 功能介绍 1、通过autofill获取存储的凭证信息&#xff1b; 2、获取C…

2023年黑马Java入门到精通教程--Java基础语法

java基础语法 变量详解 二进制 只有0、1&#xff0c;按照逢2进1的方式表示数据&#xff1a; 十进制转二进制的算法 除二取余法。 计算机中的数据的最小单位 其他数据形式是如何存储的 字符在计算机中是如何存储的呢&#xff1f; ASCII编码表&#xff1a;即美国信息交换标准…