论文阅读笔记 | 三维目标检测——PointPillars算法

news2025/7/19 0:09:55

如有错误,恳请指出。


文章目录

  • 1. 背景
  • 2. 网络结构
  • 3. 实验结果

paper:《PointPillars: Fast Encoders for Object Detection from Point Clouds》

1. 背景

PointPillars的出发点同样与SECOND一样,希望改进VoxelNet所使用3d卷积计算量太大推理速度太慢的问题。鉴于此,SECOND提出了稀疏卷积来提高普通3d卷积的推理速度,但是任然无法避免3d卷积的庞大计算量,没有从根本上解决这个问题,仍然需要使用计算昂贵的3d卷积操作。这个问题的核心本质是SECOND与VoxelNet将点云量化为三维空间上的一个个Voxel,所以3d卷积是无法避免的。

为了从根本上解决3d卷积的问题,PointPillars提出了一种新颖的量化方法(paper中写到是encoder结构,但本质上是一致的),将点云量化为二维空间上的一个个Pillars(柱),也就是取消了z轴上的bin分区,直接学习垂直列区域的点云表示。不过,这种量化方式直观上感觉会进一步量化损失的产生。


2. 网络结构

PointPillas的结构图如下所示,分为Pillar的特征提取,2d卷积操作以及最后的detection head。可以看见这里没有rpn操作,所以PointPillars属于的是one-stage,anchor-based的网络,具有速度优势,不过由于网络结构比较简单,这里就不分章节进行介绍了。
在这里插入图片描述

对于点云空间的xy平面进行网格划分,这里不对z轴进行切分不产生voxel,而这里的每个网格区域就是一个pillars。对于每个pillars中点具有位置特征xyz以及反射特征r,现在使用pillars的质心位置xc,yc,zc以及每个点离pillars的中心点偏移xp,yp进行特征扩充,所有原本每个点的特征dim=4,现在扩充后的特征维度dim=9。对于整个空间中用最小精度可以量化出P个pillars,每个pillars最多采用N个点,不足N用0进行填充,那么可以组成一个(D,P,N)的数据特征。为了对点特征进行编码,后续会使用MLP-BN-ReLU对D编码成C,生成(C,P,N)大小的张量,随后提取每个Pillars的局部特征,采用max pooling处理获得(C,P)大小的张量,获取到pillars-wise的特征表示。完成编码后,这些特征就会被散射回到原始的柱pillars位置来创建生成(C,H,W)的伪图像。此时的P=HxW,H和W分别表示高宽。

PointPillars通过以上操作将三维点云特征构建成xy平面上的pillar特征表示,这样就可以进行2d卷积处理,如上图的Backbone(2D CNN)所以,一个类似FPN的操作,最后对这些多尺度信息进行融合(网络结构太常见了,比较简单就不细说了),获得最后进行预测前的特征图表示。

PointPillars的anhcor尺寸设置与VoxelNet一样,也只有0°和90°两个方向。需要注意PointPillars本质上也是在xy平面上进行的2d检测(因为量化方式就直接忽视了z轴信息),所有正负样本分配时,是没有使用上框的位置高度以及尺寸高度的,这两个值是后续进回归预测的。损失部分与SECOND中一致,也使用上了SECOND对角度预测的改进。所以这里也有direction方向的分类损失,这里的detection head也包含3个部分:类别损失、位置回归损失、角度分类损失。具体见如下:
在这里插入图片描述

对于数据增强部分,也是copystage、单独对GT进行旋转和平移、以及对全局点进行全局旋转缩放与平移操作。和SECOND与VoxelNet类似,甚至可以说对3d点云检测的数据增强方式都是类似的。


3. 实验结果

很神奇的是,直接进行pillars量化,Pointpillars的精度确并没下降多少,甚至在不少标准上还是sota。而且,这种量化方式速度确实没话说,比SECOND快3x,逼VoxelNet快15x。
在这里插入图片描述

思考:

但是直觉上来说,voxel-based的量化方式保留的信息必然比pillars-based的量化方式要多,后续的损失构建以及数据增强方法基本和SECOND一样,不一样的只有是backbone的提取方式上了。那么,PointPillars这样的实验结果是否说明,3d检测的处理方法并没有充分的挖掘voxel的潜在特征(我觉得可能是64x2x400x362直接reshape为128x400x362导致信息的破坏),导致对三维空间的信息挖掘甚至没有二维信息的量化处理要有效。

那么,如何有效的对voexl-wsie特征进行合理的3d卷积处理,如何设计有效的3d卷积同时不导致太大的计算量,能否反超这种PointPillars的量化方式,这个点子不知道是否值得思考,留存,有想法的朋友可以来讨论讨论。


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

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

相关文章

Docker 安装 mysql5.7

docker拉取镜像命令 docker pull mysql:5.7 docker安装MySQL命令 docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORDroot -d mysql:5.7 修改MySQL的…

SpringBoot2.7.4整合Redis

目录 一、添加maven依赖 二、添加配置项 三、新增配置类 四、编辑实体类 五、编写接口 六、编写业务层 1.编写service层 2.编写service实现层 七、测试接口 一、添加maven依赖 <dependency><groupId>org.springframework.boot</groupId><artif…

@PostConstruct详解

1、 Servlet中增加了两个影响Servlet生命周期的注解&#xff0c;PostConstruct和PreDestroy&#xff0c;这两个注解被用来修饰一个非静态的void&#xff08;&#xff09;方法。写法有如下两种方式&#xff1a; PostConstruct public void someMethod(){} 或者 public PostConst…

第六章:Java内存模型之JMM

有关JMM的面试题&#xff1f;计算机硬件存储体系Java内存模型Java Memory Model概念原则能干什么JMM三大特性原子性可见性有序性JMM规范下&#xff0c;多线程对变量的读写过程JMM规范下&#xff0c;多线程先行发生原则之happens-beforehappens-before 先行发生原则的概念Happen…

CentOS中yum install命令如何找到安装包的下载地址

我们通常用的yum install命令是怎么找到我们想要的下载地址的&#xff0c;这里简单做一下分析 首先&#xff0c;搜索所有/etc/yum.repos.d下所有repo 在每个repo中都有一个baseurl&#xff0c;这里以docker-ce.repo下载containerd.io 的rpm包为例 docker-ce的部分repo为 [do…

怎么去除视频上的文字?一篇教你:视频上的文字水印怎么去除

原创视频更能够吸引人&#xff0c;但是毕竟热点有限&#xff0c;想要随时保持活跃度和吸引力就必须借助更多的视频素材来留住粉丝。但是很多视频素材是有水印、文字、LOGO或者一些图像的&#xff0c;那怎么去除视频上的文字呢&#xff1f;小编一篇简单文章教你怎么去除视频上的…

GEO振弦式钢筋计的组装

&#xff08;1&#xff09;按钢筋直径选配相应的钢筋计&#xff0c;如果规格不符合&#xff0c;应选择尽量接近于结构钢筋直径 的钢筋计&#xff0c;例如&#xff1a;钢筋直径为 35mm&#xff0c;可使用 NZR-36 或 NZR-32 的钢筋计&#xff0c;此时仪器的最小 读数应进行修…

Quarkus 集成 mailer 使用 easyexcel 发送表格邮件

前言 在quarkus 项目开发中,需要实现一个把用户数据写入到excel 表格中,然后发送邮件给到对应的用户邮箱上,在查找了Quarkus 官方文档后发现,Quarkus 对于发送邮箱的服务是天然支持的. 官方文档: https://cn.quarkus.io/guides/mailer 环境配置 首先发送邮箱服务,那么就需要有…

CAS:89485-61-0,mPEG-N3,mPEG-Azide,甲氧基-peg-叠氮试剂供应

mPEG-N3&#xff08;mPEG-Azide&#xff09;中文名为甲氧基-聚乙二醇-叠氮&#xff0c;它所属分类为Azide PEG Methoxy PEG。CAS编号为89485-61-0。 peg试剂的分子量均可定制&#xff0c;有&#xff1a;甲氧基-聚乙二醇-叠氮 5k、甲氧基-PEG-叠氮 10k、mPEG-Azide 2k、甲氧基-…

error20221125--ssm项目用maven打包报错“找不到程序包 java.lang”或者“程序包javax.crypto不存在”,以及解决方案

从svn拉的ssm项目&#xff0c;写完代码准备发测试&#xff1b;结果用maven打war包的时候报错了 这个时候在控制台找到报错信息如下图 说“在类路径或引导类路径中找不到程序包 java.lang”&#xff1b; 我寻思着&#xff0c;java.lang不是jdk中基础的包吗&#xff1f;不应该有…

c盘哪些文件可以删除?正确答案在这里!

当我们使用电脑时&#xff0c;经常下意识把各种文件数据保存在c盘&#xff0c;导致c盘的空间越来越小。想要清理电脑缓存&#xff0c;c盘哪些文件可以删除&#xff1f;注意&#xff0c;清理文件之前&#xff0c;记得要备份好重要的数据&#xff01;下面一起来看看哪些c盘文件可…

PyQt5 QDockWidget

PyQt5 QDockWidget方法描述setWidget()在Dock窗口区域设置QWidgetsetFloating()设置Dock窗口是否可以浮动&#xff0c;如果设置为True&#xff0c;则表示可以浮动setAllowedAreas()设置窗口可以停靠的区域 ●LeftDockWidgetArea:左边停靠区域●RightDockWidgetArea:右边停靠区域…

kafka消息的序列化与反序列化

一、前言 在使用kafka发送消息时&#xff0c;producer端需要序列化&#xff0c;在大多数场景中&#xff0c; 需要传输的是与业务规则相关的复杂类型&#xff0c; 这就需要自定义数据结构。 Avro是一种序列化框架&#xff0c; 使用JSON来定义schema&#xff0c; sh cema由原始类…

若依前后端分离发布富文本框内容 | uni-app微信小程序展示富文本框内容

微信小程序端引入富文本样式 富文本提交图片json error 一、展示示例&#xff1a; 1.PC端前端发布界面 可以设置文字大小&#xff0c;居中&#xff0c;可以插入图片&#xff0c;设置图片大小&#xff0c;居中。 2.小程序端展示 二、基于若依框架踩坑和实现 1.数据库字段设…

RabbitMQ【直连、主题、扇形交换机实战】

目录 1. 直连交换机&#xff08;Direct实战&#xff09; provider生产者&#xff08;publisher&#xff09; consumer消费者 2. 主题交换机&#xff08;Topic实战&#xff09; provider生产者&#xff08;publisher&#xff09; consumer消费者 3. 扇形交换机&#xff08;Fa…

3.71 OrCAD新建原理图时,每一个类目的含义是什么?OrCAD软件怎么显示元器件的封装名称?

笔者电子信息专业硕士毕业&#xff0c;获得过多次电子设计大赛、大学生智能车、数学建模国奖&#xff0c;现就职于南京某半导体芯片公司&#xff0c;从事硬件研发&#xff0c;电路设计研究。对于学电子的小伙伴&#xff0c;深知入门的不易&#xff0c;特开次博客交流分享经验&a…

第四章:Java琐事

乐观锁和悲观锁悲观锁乐观锁八种案例演示synchronized到底锁的是什么字节码角度分析 Synchronizedsynchronized 同步代码块synchronized 同步方法为什么任意一个对象都可以是锁&#xff1f;公平锁和非公平锁为什么会有公平锁/非公平锁的设计&#xff1f;为什么默认是非公平&…

计算机毕业设计jspKTV点歌系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP KTV点歌系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开 发&#xff0c;数据库为Mysql&#xff0c;使用jav…

Transformer Fusion for Indoor RGB-D Semantic Segmentation非官方自己实现的代码

声明&#xff1a;文章没有官方的代码&#xff0c;这里自己浅显的分析一下。 首先看一下encoder&#xff0c;就是swin transformer&#xff0c;假设RGB的维度为(1,3,480,480),Depth维度为(1,1,480,480)。维度分别变为**(1,64,120,120)—>(1,64,120,120)—>(1,128,60,60)—…

关于conda、虚拟环境、镜像通道、pip、pycharm解释器配置的一些总结

目录conda与虚拟环境相关命令查看当前存在哪些虚拟环境创建虚拟环境克隆虚拟环境删除指定虚拟环境删除指定虚拟环境中某个包设置国内镜像添加Anaconda的TUNA镜像添加USTC仓库镜像设置搜索时显示通道地址Conda 附加库查看channels恢复默认镜像&#xff08;即删除手动配置的全部镜…