pointpillars Paper学习总结

news2025/2/28 19:59:30

Pointpillar Paper

  • PointPillars提出了一种新的点云编码方式和3D转2D的方法,用2D卷积的方式实现目标检测而没有采用耗时的3D卷积,在速度和精度上达到了很好的平衡,其速度快、精度高、易于部署的特点使得其在工业界得到了广泛的应用。

  • 处理思路是3d转2d,在2d伪图像上进行目标检测。

  • 主要步骤分三阶段:
    在这里插入图片描述

    1. 将点云转换为稀疏伪图像的特征编码器网络;
      • 首先在俯视图的平面上打网格(H x W)的维度;然后对于每个网格所对应的柱子中的每个点都取(x,y,z,r,x_c,y_c,z_c,x_p,y_p)9个维度。其中前三个为每个点的真实位置坐标,r为反射率,带c下表示该点到柱子中心的偏差,带p下标的是对点相对于网络中心的偏差。每个柱子中点多于N的进行采样,少于N的进行填充0.于是形成(D,N,P)D=9,N为点数(设定值),P=H*W。
      • 然后学习特征,用一个简化的PointNet从D维中学出C个channel来,变为(C,N,P),然后对N进行最大化操作操作变为(C,P),又因为P是H*W的,我们再展开成一个伪图像形式,H,W为宽高,C为通道数。
    2. 2D卷积基础网络,用于将伪图像处理成高维特征表示;
      • 包含两个子网络(1.top-down网络,2.second网络)top-down网络结构为了捕获不同尺度下的特征信息,主要是由卷积层、归一化、非线性层构成的,second网络用于将不同尺度特征信息融合,主要由反卷积来实现(上采样)。由一个2D卷积神经网络组成,其作用是用于在第一部分网络输出的伪图像上提取高维特征。
    3. 检测头部(detection head,SSD),对类别预测和对3D检测框的位置进行回归
      • SSD检测头用于实现3D目标检测,与SSD类似,PointPillars在2D网格中进行目标检测,而Z轴坐标和高度则是通过回归方式得到。
  • 数据增强

    1. 为所有类和这些3D框中的相关点云创建了一个地面真实3D框的查找表。然后对于每个样本,我们分别随机选取汽车、行人和骑自行车的15、0、8个ground truth样本(ground truth: 分类准确性,用于统计模型中验证或推翻某种研究假设),并将其放入当前点云中。
    2. 然后,将所有ground truth box都被单独增强。每个盒子旋转(均匀地从[-\pi/20,\pi/20]绘制)并平移,进一步丰富训练集。
    3. 沿x轴应用随机镜像翻转,然后进行全局旋转和缩放。最后,应用从N(0,0.2)中提取的x,y,z的全局平移来模拟局部化噪声。

输入/输出

在这里插入图片描述

在这里插入图片描述

本文中输入数据集格式为激光雷达点云和图像的样本组成。我们只在激光雷达点云上进行训练,并与同时似乎用激光雷达和图像的融合方法进行比较。
PointPillars,一种新颖的编码器,利用PointNet学习垂直列柱体组织中的点云特征,虽然编码特征可以与任何标准2D卷积检测架构一起使用。

输入

LAS格式作为点云数据的一种,LAS是根据几种规格打包的二进制文件。其常见于自动驾驶、高精度地图制作的使用中。las文件旨在包含激光雷达点云数据记录。
其数据记录格式如下:
在这里插入图片描述

在这里插入图片描述

输出

携带有检测及回归信息的点云数据,仍是LAS格式

loss损失函数(详细说明参考网站)

每个目标的3D框用一个7维向量来表示:(x,y,z,w,l,h,θ),其中x,y,z表示3D框的中心点坐标;w,l,h表示3D框的宽、长、高;θ表示3D框的朝向角,ground truth和anchors的残差定义为:
在这里插入图片描述

其中,xgt和xa分别表示Ground truth和锚框,da=锚框宽平方与锚框长平方和的平方根。
定位损失函数采用Smooth L1函数:
在这里插入图片描述

Smooth L1损失函数为:
在这里插入图片描述

smooth L1损失函数曲线如下图所示,目的是让loss对于离群点更加鲁棒,相比于L2损失函数,其对离群点(距离中心较远的点)、异常值(outlier)不敏感,可控制梯度的量级使训练时不容易跑飞。
在这里插入图片描述

与SECOND一样,PointPillars 采用softmax分类损失来学习目标朝向,该损失函数用Ldir来表示。
对于目标分类任务,PointPillars采用Focal Loss:
在这里插入图片描述

其中Pa表示锚框的类别概率,阿尔法表示0.25,伽马表示2.
总的损失函数如下:
在这里插入图片描述

其中Npos是真阳性锚框的数量,Bloc=2,Bcls=1,Bdir=0.2
在这里插入图片描述

结果分析

  • 前置说明:KITTI数据集中,BEV指的是鸟瞰图,3D指的是三维立体图。
    在这里插入图片描述

在这里插入图片描述

PointPillars与图中所有算法相比,刷新率最高。PointPillars在平均精度(mAP)方面优于所有发布的方法。与仅使用激光雷达的方法相比,PointPillars在所有类和难度层上都取得了更好的结果(除了easy car层)。它还优于基于汽车和自行车的融合方法。
在这里插入图片描述

图中KITTI测试的平均取向相似度(AOS)检测基准。SubCNN是性能最好的图像唯一方法,而AVOD-FPN,SECOND和PointPillars是预测方向的3D对象检测器。Pointpillasr预测的是3D导向的盒子,但BEV和3D中没考虑方向。所以Pointpillars采用AOS算法,将3D方框投影到图像中,进行2D检测匹配,然后评估这些匹配的方向。与仅有的两种预测定向盒体的3D检测方法相比,PointPillars在AOS上的性能在所有层中都显著优于其他方法。

AOS解释:平均方向相似性,Average Orientation Similarity(AOS)。该指标被定义为:
在这里插入图片描述

其中,r代表物体检测的召回率recall()。在因变量r下,方向相似性s属于[0,1]被定义为所有预测样本与ground truth余弦距离的归一化:
在这里插入图片描述

其中D®表示在召回率r下所有预测为正样本的集合,δ及θ表示检出物体i的预测角度与ground truth 的差。为了惩罚多个检出匹配到同一个ground truth ,如果检出i已经匹配到ground truth(IoU至少50%)设置\delta i=1,否则为0。

新的创新点(存在问题)

  • 过分依赖前面的特征提取。SSD是one-stage的方式,只有一次的回归(可以用二阶段例如pointRCNN在后续的RCNN阶段继续对局部特征进行整合)。
  • 针对行人检测效果略差问题,怀疑是空间角度复杂的行人无法准确进行高维转伪图像处理。个人认为可以进行预先标注几种形态下的行人,然后聚类出有相似特征的行人集合,然后在指导高维转伪图像过程。也可以在伪图像中采用行人预测较好的AVOD-FPN进行处理(具体需要考虑将backbone与AVOD-FPN如何融合)。
    • 更正:点云中,因为人的物理特质特殊,相较于汽车等物体,展示效果可能更简单而更容易找到,可能不是空间角度问题导致。

代码运行

  1. 源码下载
  2. 数据集下载

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

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

相关文章

JavaWeb--JDBC

JDBC1 JDBC概述1.1 JDBC概念1.2 JDBC本质1.3 JDBC好处2 JDBC快速入门2.1 编写代码步骤2.2 具体操作3 JDBC API详解3.1 DriverManager3.2 Connection3.2.1 获取执行对象3.2.2 事务管理3.3 Statement3.3.1 概述3.3.2 代码实现3.4 ResultSet3.4.1 概述3.4.2 代码实现3.5 案例3.6 P…

2.Java基础【Java面试第三季】

2.Java基础【Java面试第三季】前言推荐2.Java基础01_字符串常量Java内部加载-上58同城的java字符串常量池面试code讲解intern()方法---源码解释02_字符串常量Java内部加载-下whyOpenJDK8底层源码说明递推步骤总结考查点03_闲聊力扣算法第一题字节跳动两数求和题目说明面试题解法…

rt-thread 移植调试记录

rt-thread 移植调试记录 记录rt-thread移植的过程。这里移植仅仅是利用rt-thread源码目录已经移植好的文件,组建自己的工程,不需要自己编写汇编完成底层移植。 1. 搭建基础工程 这里使用的是正点原子的潘多拉开发板,MCU为stm32l475。需要先…

【c++】类和对象:让你明白“面向一个对象有多重要”:构造函数,析构函数,拷贝构造函数的深入学习

文章目录 什么是面向对象?一:类是什么? 1.类的访问限定符 2.封装 3.类的实例化 4.this指针二:类的6个默认成员函数 1.构造函数 2.析构函数 3.拷贝构造函数什么是面向对象? c语言是面向…

window系统中安装Jupyter Notebook方法记录

1.初步感受Jupyter Notebook Jupyter Notebook 官网地址:Jupyter Notebook Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序&#xf…

Java体系最强干货分享—挑战40天准备Java面试,最快拿到offer!

如何准备java面试,顺利上岸大厂java岗位? 主攻Java的人越来越多,导致行业越来越卷,最开始敲个“hello world”都能进大厂,现在,八股、全家桶、算法等等面试题横行,卷到极致!就拿今年…

聊聊什么是架构,你理解对了吗?

什么是架构?软件有架构?建筑也有架构?它们有什么相同点和不同点? 下面咱们就介绍一下,容易混淆的几个概念 一、系统与子系统 系统 泛指由一群有关联的个体组成,根据某种规则运作,能完成个别元件不能单独完成的工作的群体。它的意思是 “总体”、“整体”或“联盟” 子系…

Java基础常见面试题(二)

面向对象基础 面向对象和面向过程的区别 面向过程 优点: 性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点…

如何做迭代规划

敏捷开发中的迭代规划如同使用需求漏斗,对各方需求定期进行优先级排序并层层拆解或合并,最终把高优先级且细粒度的需求从漏斗进入到研发团队,确保研发团队做对的事(Do Right Things),避免团队跑偏方向或进度…

Netty之EventLoopGroup详解

目录 目标 Netty版本 Netty官方API NioEventLoopGroup和DefaultEventLoop的区别 EventLoopGroup实现对内部EventLoop的轮询 EventLoop对普通任务和定时任务的实现 执行普通任务 执行定时任务 划分EventLoopGroup职责 简言 实现 指定EventLoopGroup操作ChannelHandl…

手机上怎么在线生成gif?1分钟教你手机图片合成gif

怎样通过手机实现在线制作GIF图片的操作呢?接下来,给大家分享两招gif制作(https://www.gif.cn/)小窍门-【GIF中文网】不需要下载任何软件,小白也能轻松上手。支持原画质导出,图片无损处理。一起来看看具体步…

前端教学视频分享(视频内容与市场时刻保持紧密相连,火热更新中。。。)

⚠️获取公众号 本次要想大家推荐一下本人的公众号,在微信中搜索公众号 李帅豪在对话框中输入前端视频四个字即可立即获取所有视频,不收费无广告!!! 本公众号收集了近两年来前端最新最优秀的学习视频,涵盖…

大数据技术架构(组件)30——Spark:Optimize--->Submit

2.1.9、Optimize--->Submit调优工作主要从CPU、内存、网络开销和IO四方面入手2.1.9.0、Spark On Yarn2.1.9.0.1、Jar包管理及本地性调优spark.yarn.jars :将jar包放到hdfs上,避免每次driver启动的时候都要进行jar包的分发。yarn.nodemanager.localizer.cache.cle…

ChatGPT告诉你智能制造

ChatGPT自上线以来,几乎得到了外界的一致好评,上线两个月,获得1亿月活跃用户,成为增长最快的面向消费者的应用。 面对ChatGPT拟人一般的问答能力,很多人认为它代表着AlphaGo之后,人工智能应用的第二次浪潮…

电子技术——MOS差分输入对

电子技术——MOS差分输入对 差分输入系统因其极高的共模抑制能力,差分输入几乎是是构建所有通用模拟IC的基本前级输入,也是现代信号传输理论的基础。本节我们讲解MOS差分输入对。 MOS差分输入对 下图展示了MOS差分输入对的基本原理图: 一个…

数据采集协同架构,集成马扎克、西门子、海德汉、广数、凯恩帝、三菱、海德汉、兄弟、哈斯、宝元、新代、发那科、华中各类数控以及各类PLC数据采集软件

文章目录 前言一、采集协同架构是什么?可以做什么(数控、PLC配置采集)?二、使用步骤 1.打开软件,配置MQTT或者数据库(支持sqlserver、mysql等)存储转发消息规则2.配置数控系统所采集的参数、转…

项目(今日指数)

一 项目架构1.1 今日指数技术选型【1】前端技术【2】后端技术栈【3】整体概览3.2 核心业务介绍1】业务结构预览【2】业务功能简介1.定时任务调度服务XXL-JOB通过RestTemplate多线程动态拉去股票接口数据,刷入数据库; 2.国内指数服务 3.板块指数服务 4.涨…

使用Harbor构建docker私有仓库

一、概述1、什么是HarborHarbor 是VMware公司开源的云本地 registry 仓库,有可视化的Web管理界面,可以方便的管理和储存 Docker 镜像。Harbor 支持在多个仓库直接进行复制镜像,提供用户管理和访问控制和活动审计。2、Harbor的优势基于角色控制…

mysql高级(事务、存储引擎、索引、锁、sql优化、MVCC)

文章目录1.事务1.1 四大特性ACID1.2 并发事务2.存储引擎2.1 InnoDB2.2 MyISAM2.3 Memory2.4 存储引擎特点2.5 存储引擎的选择3.性能分析3.1 查看执行频次3.2 慢查询日志3.3 profile3.4 explain4.索引4.1 索引结构B-TreeBTreeHash面试题4.2 索引分类思考题4.3 语法4.4 使用规则最…

抖音电商-安全带为例分析

为什么来抖音抖音对好货的扶持力度很大好商品对抖音商城至关