太实用了! 20分钟彻底理解【Pointpillars论文】,妥妥的!

PointPillars: Fast Encoders for Object Detection from Point Clouds

PointPillars:快就对了

摘要(可跳过):

这帮人提出了PointPillars,一种新颖的编码器,它利用PointNets来学习以垂直列组织的点云(柱体点云)的表示。PointPillars在速度和准确性方面都明显优于先前的编码器。尽管仅使用激光雷达,他们的完整检测流程在3D和鸟瞰视图的KITTI基准测试中明显优于现有技术,甚至在融合方法中也是如此。这种检测性能在每秒运行62次的情况下实现:该方法的更快版本在每秒105次的情况下达到了现有技术的水平。这些基准测试结果表明,PointPillars是适用于点云物体检测的适当编码方法。

简介(可跳过):

在城市环境中部署自动驾驶车辆构成了一个困难的技术挑战。自动驾驶车辆依赖于多个传感器,其中激光雷达可以说是最重要的。激光雷达使用激光扫描仪来测量到环境的距离,从而生成了一个稀疏的点云表示。

1)点云是一种稀疏表示,而图像是密集的;
2)点云是3D的,而图像是2D的。

因此,从点云进行目标检测并不直接适用于标准的图像卷积流程。
在这项工作中,我们提出了PointPillars:一种用于3D目标检测的方法,只使用2D卷积层进行端到端学习。
PointPillars使用一种新编码器,学习点云的柱(垂直列)上的特征,以预测车辆的3D定向框。

优点:
1)通过学习特征而不是依赖固定的编码器,PointPillars可以利用点云所表示的全部信息。
2)通过在柱上操作而不是体素上,无需手动调整垂直方向的分割。
3)柱体非常高效,因为所有关键操作都可以表述为在GPU上计算非常高效的2D卷积。

学习特征的额外好处是PointPillars不需要手动调整以适应不同的点云配置。例如,它可以轻松地合并多个激光雷达扫描,甚至是雷达点云。

PointPillars 网络

PointPillars接受点云作为输入,并估计车辆、行人和骑自行车者的定向3D包围框。它由三个主要阶段组成

  1. 特征编码网络:将点云PointCloud转换为稀疏伪图像Pillars的网络。这个阶段的任务是将点云数据编码成适合进一步处理的形式。
  2. 2D卷积骨干网络:将伪图像处理成高级表示的2D卷积网络。这个阶段通过卷积操作将伪图像转化为更高层次的特征表示。
  3. 检测器头部:用于检测和回归3D包围框的部分。这个阶段负责识别目标物体并估计其3D包围框的位置和方向。

这三个阶段协同工作,使PointPillars能够从点云中准确地检测和定位车辆、行人和骑自行车的人。

在这里插入图片描述

点云转伪图像

为了应用2D卷积,我们首先将点云转换为伪图像。我们用 I c I_c Ic表示点云中的一个点,其具有坐标x、y、z和反射率r。首先,将点云在x-y平面中均匀离散化,就是平均切分点云,于是创建了一堆柱状体 P c P_c Pc,这个切分操作需要用超参数控制,需要注意的是,在z维度上,由于不进行切分,所以不需要用来控制的超参数。

然后,将每个柱状体中的点用 x c x_c xc y c y_c yc z c z_c zc x p x_p xp y p y_p yp进行扩充,其中下标 c c c表示该点与柱状体中所有点云的虚拟中心 I v i r t u a l I_{virtual} Ivirtual的平均距离,注意这个 c c c意味着是个三维数据,而下标 p p p表示该点与柱状体在2D平面x-y上的中心 P v i r t u a l P_{virtual} Pvirtual的偏移,这个 p p p意味是个二维数据。这样,扩充后的每个激光点云 I c I_c Ic就具有9个维度=( x x x y y y z z z x c x_c xc y c y_c yc z c z_c zc x p x_p xp y p y_p yp),注:激光点云的9个维度的值都是小数。

由于点云的稀疏性,柱状体集合将主要为空,通常只有少量点位于非空的柱状体中。例如,在0.162平方米的箱子中,来自HDL-64E Velodyne激光雷达的点云在通常用于KITTI数据集的范围内有6,000-9,000个非空的柱状体,稀疏度约为97%。通过对每个样本(P)和每个柱状体(N)中非空柱状体的数量施加限制,利用了这种稀疏性,以创建尺寸为(D,P,N)的密集张量,这里的张量是经过筛选后的非空点云集合。置换不变性:点的排序不影响物体的性质

其中,D表示每个点云的维度,D=9;P表示提取到的Pillar数量,P=30000,P的选取是根据激光雷达的硬件来选的是个超参数,N表示每个Pillar存储的最大点云数量,如果一个Pillar包含的点云数量太大,那么将被随机采样。相反,如果数据太少,将应用零填充。

因此,产生的伪2D张量:(30000 x 20 x 9) =(D,P,N)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对KITTI数据集的结果进行定性分析。我们展示了激光雷达点云的鸟瞰视图(顶部),以及为了更清晰的可视化而投影到图像中的3D包围盒。请注意,我们的方法仅使用了激光雷达数据。我们展示了汽车(橙色)、骑自行车者(红色)和行人(蓝色)的预测包围盒。地面真值包围盒以灰色显示。包围盒的方向由连接底部中心和前部的线表示。

接下来,我们使用了PointNet的简化版本( M L P s i m p l e = L i n e a r + B a t c h N o r m + R e L U MLP_{simple}=Linear+BatchNorm+ReLU MLPsimple=Linear+BatchNorm+ReLU ),对于每个点使用 M L P s i m p l e MLP_{simple} MLPsimple,以生成一个尺寸为(C,P,N)的张量。也就是,伪2D张量(D,P,N),通过 M L P s i m p l e MLP_{simple} MLPsimple,转变为了可以用来分类的张量(C,P,N),这里C也是个超参数,C=64。简单来说,就是D=9所包含的维度少,很容易被后续的卷积卷没了,所以要做个维度上升:
在这里插入图片描述
在这里插入图片描述

有关PointNet的理解,点击这里

(D,P,N)-> M L P s i m p l e MLP_{simple} MLPsimple->(C,P,N)
(9 x 30000 x 20)->(64 x 30000 x 20)

然后,在N这个维度,对30000个pillar中的每个pillar中的20个激光点,进行Max pool操作,该操作来自Pointnet论文,通过对称函数用于选定的所有点,提取这个pillar中点云的surface信息,并聚合到一个特征值,范围在[0,1]。注意,Linear可以用1x1卷积代替,从而产生非常有效的计算。一旦编码完成,特征将被散回原始的柱状体位置,以创建一个尺寸为(C,H,W)的伪图像,其中H和W表示画布的高度和宽度。

主干网络

我们使用了类似于Voxelnet的骨干网络结构,其结构如图2所示。这个骨干网络包括两个子网络:
在这里插入图片描述

  1. 一个自上而下的网络,以逐渐减小空间分辨率的方式生成特征。
  2. 一个拼接网络,负责进行上采样和连接自上而下的特征。

自上而下的网络可以用一系列块卷积块Block(S, L, F)来描述,每个Block是2D卷积层构成,每个卷积层输出F个通道,然后接着BatchNorm和ReLU激活函数。

拼接网络,通过Deconv来放大分辨率,然后Concat。

检测头

在本文中,我们使用单击检测器(SSD)[18]设置来执行3D目标检测。与SSD类似,我们使用2D联合交叉(IoU)[4]将先验框与真值相匹配。边界框高度和标高未用于匹配;而不是给定2D匹配,高度和高程成为额外的回归目标。

损失

我们使用SECOND[28]中介绍的相同损失函数。真值框和锚由( x , y , z , w , l , h , θ ) (x,y,z,w,l,h,θ)(x,y,z,w,l,h,θ)定义。真值和锚之间的定位回归残差定义如下:

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

标题:探寻电大搜题,广东开放大学的智慧之旅

随着信息技术的快速发展和互联网的普及,越来越多的人开始选择通过电大学习。作为知名的广东开放大学,一直致力于提供高质量的教育资源,让更多人实现自己的梦想。在这个过程中,电大搜题微信公众号成为了学生们的得力助手&#xff0…

Arduino PLC IDE

Arduino PLC IDE MCU单片机进入全新的PLC领域概述需要的硬件和软件下一步操作1. Arduino PLC IDE Tool Setup2. Arduino PLC IDE Setup3. Project Setup4. Download the Runtime5. Connect to the Device6. License Activation with Product Key (Portenta Machine Control) 结…

【小笔记】fasttext文本分类问题分析

【学而不思则罔,思维不学则怠】 2023.9.28 关于fasttext的原理及实战文章很多,我也尝试在自己的任务中进行使用,是一个典型的短文本分类任务,对知识图谱抽取的实体进行校验,判断实体类别是否正确,我构建了…

解决Spring Boot 2.7.16 在服务器显示启动成功无法访问问题:从本地到服务器的部署坑

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

定义豪车新理念 远航汽车亮相2023中国(天津)国际汽车展览会

近年来,随着汽车行业竞争持续加剧,老品牌面临积极转型,新势力则经验不足、实力欠佳,到底是难抵市场的风云变幻。在此背景下,有着“老品牌 新势力”双重基因的远航汽车可谓底气十足。作为大运集团携手博世、华为、阿里斑…

陪诊系统|陪诊软件医疗陪护的创新之路

陪诊服务系统源码功能及解决方案,在一对一专属服务,就医经验丰富的专业陪诊师的陪伴下,就医体验得以优化,就医全程无须自行探究和寻找,就医过程更加省心,同时减轻了家属时间精力的负担。陪诊服务系统提供的…

城市智慧公厕:引领科技创新的新时代

城市智慧公厕已经成为当下社会治理模式的升级范式,催生了无限的科技创新。如智慧公厕源头厂家广州中期科技有限公司,所推出的智慧公厕整体解决方案,除基本的厕位监测与引导、环境监测与调节、安全防范与管理、保洁考勤管理、多媒体交互、综合…

【Verilog 教程】6.2Verilog任务

关键词:任务 任务与函数的区别 和函数一样,任务(task)可以用来描述共同的代码段,并在模块内任意位置被调用,让代码更加的直观易读。函数一般用于组合逻辑的各种转换和计算,而任务更像一个过程&a…

高防服务器给企业带来的优势有哪些?

高防服务器主要指的是能够提供给网络安全提供高防护的服务器,通过流量清洗、负载均衡等手段来抵御DDoS攻击、CC攻击这一类流量攻击,为企业提供了强大的数据保障,互联网时代数据安全是放在第一位的,数据泄漏的话不论对于企业还是对…

google的日志glog安装及使用

1.glog glog是google出的一个轻量级的c日志库 2.下载及编译 下载或克隆库,我选择的是V0.6.0版本: github.com/goolge/glog/releases/tag/v0.6.0 我用cmake编译(参考:github.com/google/glog#cmake) 按照说明步骤进…

Python入门自学进阶-Web框架——42、Web框架了解-bottle、flask

WEB框架的三大组件:路由系统、控制器(含模板渲染)、数据库操作 微型框架:依赖第三方写的socket,WSGI, 本身功能少 安装: pip install bottle pip install flask 安装flask,同时安…

力扣每日一题(+日常水题|树型dp)

740. 删除并获得点数 - 力扣(LeetCode) 简单分析一下: 每一个数字其实只有2个状态选 or 不 可得预处理每一个数初始状态(不选为0,选为所有x的个数 * x)累加即可 for(auto &x : nums)dp[x][1] x;每选一个树 i 删去 i 1 和 i - 1 故我们可以将 i…

【笔记】离线Ubuntu20.04+mysql 5.7.36 + xtrabackup定时增量备份脚本

一、环境 ● Ubuntu版本查看 lsb_release -a● mysql 版本查看 mysql --version我的是ubuntu 20.04,mysql是5.7.36,所以要用 install_percona-xtrabackup-24 二、原理 备份 通过ubuntu自带的定时器运行增量备份脚本备份文件可以存储在映射后的其他…

26593-2011 无损检测仪器 工业用X射线CT装置性能测试方法

声明 本文是学习GB-T 26593-2011 无损检测仪器 工业用X射线CT装置性能测试方法. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了工业用X 射线CT 装置(以下简称CT 装置)性能测试的术语、定义、缩略语以及空间 分辨力、密度分辨率…

#硬件电路设计VL817-Q7(B0)芯片拓展USB3.0一转四调试心得

供电电路 基于XL4005的电源供电电路 SS34肖特基二极管 ZMM5V1稳压二极管 SMAJ15A TVS (注意这个封装搞错5V会短接) Vout0.8*[1(R2R3)/R1] D14 SR05静电防护器件 一路稳压两路TVS 共模电感 : 型号: SDCW2012-2-900TF 品牌&#…

Mac 苹果系统使用nvm use 切换node版本号

windows在使用 nvm 管理并切换 node 时,通过 nvm use 切换node版本会全局切换。也就是node版本号切换后只要不手动更改就会一直保持当前版本号不变。 但博主最近换了苹果系统后,发现苹果系统不能全局更改node版本。我在 vscode中使用nvm use x.x.x之后&…

Midjourney 生成油画技巧

基本 prompt oil painting, a cute corgi dog surrounded with colorful flowers技法 Pointillism 点描绘法 笔刷比较细,图像更精细 oil painting, a cute corgi dog surrounded with colorful flowers, pontillismImpasto 厚涂绘法 笔刷比较粗,图像…

Prometheus-监控Mysql进阶用法(1)(安装配置)

阿丹: 在开发和生产环境中有可能会出现慢mysql等问题,那么这里就需要我们优秀的程序员来进行监控和解决,那么如何借助云原生的监控系统来完成这个操作呢? 环境描述: 使用一台空白的阿里云服务器2核4G。 服务器基本安装…

Python:使用PySimpleGUI中sg.Input控件获取数据plot导致yticks错乱

sg.Input获取y轴数据代码 sg.Text(First Read:, font("Times New Roman", 9)),sg.Input(key-first_read-, size(25, 1), default_text0,0,0, justificationcenter, font("Times New Roman", 9), expand_xTrue), sg.Text(Second Read:, font("Times Ne…

PHP8中的构造方法和析构方法-PHP8知识详解

今日分享的内容是php8中的构造方法和析构方法,我们把构造方法和析构方法这两个方法分开来讲: 1、构造方法 构造方法存在于每个声明的类中,主要作用是执行一些初始化任务。如果类中没有直接声明构造方法,那么类会默认地生成一个没…