PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
1. Motivation
现在存在的3D目标检测方法可以分为两种,一种是基于point-based,一种是基于grid-based(也就是voxel-based)。point-based可以获得更大的感受野,但是计算成本过高;voxel-based计算效率高,但是信息的损失较大。
因此本论文提出一种新的方法,结合两种不同方法的优点,从而来进一步提高目标检测性能。
2. Contribution
- 提出PV-RCNN框架,有效结合voxel-based和point-based的有点,在内存消耗可控的情况下提高了3D对象检测的性能;
- 提出voxel-to-keypoint方案,在多尺度下将体素特征编码到一个关键点集中,不仅保持了准确的位置,而且丰富了场景特征信息;
- 提出多尺度ROI特征提取,聚集更丰富信息,从而实现准确的proposal refinement和置信度预测;
3. 正文
3.1 网络框架
从网络架构可以看出,本论文提出的PV-RCNN框架包含两个stage。首先采用稀疏卷积方法生成高质量的proposals,并且同时采用pointnet方法对每个尺度的输出进行特征提取并且最后进行拼接,然后根据该特征信息对生成的proposals进行细化操作。
3.2 3D Voxel CNN for Efficient Feature Encoding and Proposal Generation
3.2.1 3D voxel CNN
3D稀疏voxel CNN是目前性能较好的3D目标检测器,具有高效率和准确性,因此论文将其作为特征提取和3D proposal的backbone。
首先将输入点云分割成L x W x H个voxel,并对非空voxel进行平均处理。接着采用3x3x3进行1x,2x,4x,8x的下采样处理。
3.2.2 3D proposal generation
对下采样结果的3D特征向量转化为2D的鸟瞰图,并生成proposals。对于鸟瞰图,采用poinpillar进行2D鸟瞰图的投影,论文采用了L8×W8\frac L8\times\frac W88L×8W的grid大小进行pointpillar。并且每个类有2×L8×W82 \times \frac L8\times\frac W82×8L×8W个3D proposals,头偏角分别为0度和90度。
3.3 Voxel-to-keypoint Scene Encoding via Voxel Set Abstraction
3.3.1 Keypoints Sampling
论文使用FPS进行点云采样得到包含n个点的点集{p1,p2,…,pn}\left\{p_1,\;p_2,\;\dots,\;p_n\right\}{p1,p2,…,pn}。对于不同的数据集,kitti的n=2048,Waymo的n=4096。
3.3.2 Voxel Set Abstraction Module
论文提出一个新的模块VSA(Voxel Set Abstraction),将多尺度下的特征向量进行特征编码。相对于之前PointNet只学习到相邻点特征,该模块可以学习多尺度下得数据特征,能获取更多特征信息。
假定F(lk)={f1(lk),⋯,fNk(lk)}F_{}^{(l_k)}=\left\{f_1^{(l_k)},\;\cdots,\;f_{N_k}^{(l_k)}\right\}F(lk)={f1(lk),⋯,fNk(lk)}是第kkk个3D voxel CNN得每一个voxel得特征向量,V(lk)={v1(lk),⋯,vNk(lk)}V_{}^{(l_k)}=\left\{v_1^{(l_k)},\;\cdots,\;v_{N_k}^{(l_k)}\right\}V(lk)={v1(lk),⋯,vNk(lk)}为对应的3D坐标(可以通过voxel的坐标和实际的voxel的大小来计算得出)。NkN_kNk为不为空的voxel的第k个voxel块。
对于每一个点pip_ipi,在第k个voxel CNN上,设定采样半径为rkr_krk,即可以计算出每个voxel的特征向量为:
其中vj(lk)−piv_j^{(l_k)}-p_i^{}vj(lk)−pi为点云的point位置相对于voxel中心的偏移值,论文把该值接到后面,于是变形成了一个通过voxel的特征向量集合。接着通过PointNet-block(PointNet++模块)来对集合信息进行进一步提取:
其中M(⋅)M\left(\cdot\right)M(⋅)函数在Si(lk)S_i^{(l_k)}Si(lk)中随机采样TkT_kTk个点,G(⋅)G\left(\cdot\right)G(⋅)函数为一个多层感知机对采样点信息进行特征编码。因为每个体素上的关键点的数量是不同的,因此在最外层加上max()max\left(\right)max()进行max-pooling处理,对提取到的特征向量进行信息聚合。这样便可以得到一个点的特征信息。论文为了获取更加丰富的多尺度上下文信息,通常设置不同大小的半径进行局部体素信息获取。
因此经过上面对多尺度的卷积信息获取并进行拼接,便可以得到关键点pip_ipi的多尺度语义特征:
3.3.3 Extened VSA Module
论文对特征进行再一次的丰富,补充了原始点云和8x的下采样的鸟瞰图信息。原始点云数据弥补了点云体素化的量化损失,鸟瞰图信息包含了原始信息在z轴上的很大感受野。
对于原始点云特征fi(raw)f_i^{(raw)}fi(raw),则按照3.3.2中计算fi(pv)f_i^{(pv)}fi(pv)的方法一样,对于鸟瞰图特征fi(bev)f_i^{(bev)}fi(bev)则通过对原始bev map进行双线性插值。因此最终得到的每个点的特征向量为:
3.3.4 Predictd Keypoint Weighting
论文接着利用已有的关键点信息进行proposal的细化。由于部分关键点可能是背景区域,而对于proposal而言,前景点对于proposal的贡献是较大的,背景点权重应该进行缩小。
因此论文从该点出发,提出一个PKM框架对关键点的权重进行再次赋值。通过判断关键点是否在3D box中,便可以判断该点是否为前景关键点,因此依据此重新对关键点权重进行再分配:
其中PKW模块采用focal loss进行训练,以来解决样本不均衡问题。
3.4 Keypoint-to-grid RoI Feature Abstraction for Proposal Refinement
通过3.3可以提取到多尺度的语义特征向量,因此本模块根据之前生成的3D proposal,利用关键点特征向量对其进行进一步细化。
3.4.1 RoI-grid Pooling via Set Abstraction
论文提出RoI-grid pooling module模块,对关键点特征信息进行进一步的聚合。首先采用6x6x6的网格在每一个3D proposal进行采样处理,得到集合G={g1,g2,…,g216}G=\left\{g_1,\;g_2,\;\dots,\;g_{216}\right\}G={g1,g2,…,g216}。因此定义网格点gig_igi以半径为r~\widetilde rr进行领域搜索,即可得:
其中pj−gip_j - g_ipj−gi表示相对位置,因此根据之前的PointNet-block方法对集合进行进一步提取,即为:
同时同样设置多个不同大小的半径以来获取多尺度下更加丰富的特征信息。
3.4.2 3D Proposal Refinement and Confidence Prediction
精细化部分论文采用两层MLP结构,并且分出有置信度预测和box细化分支。
对于置信度预测分支,通过计算gt和预测的的3D RoIs的3D iou值来进行置信度预测,并对置信度值yky_kyk进行标准化:
其中IoUkIoU_kIoUk是第k个RoI的iou值,该模块通过二分类交叉损失进行优化。
对于box分支,论文采用传统的residual-based 方法并且使用Smooth-L1 loos进行优化。
PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection相关推荐
- 三维目标检测论文阅读:VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection
VoxelNet: End-to-End Learning for Point Cloud Based 3D Object Detection 理解了PointPillars这篇文章后,看这篇文章就清 ...
- (CVPR 2020) PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection
Abstract 我们提出了一种新颖的高性能3D目标检测框架,名为PointVoxel-RCNN(PV-RCNN),用于从点云进行准确的3D目标检测.我们提出的方法深度集成了3D体素卷积神经网络(CN ...
- 论文阅读:BPFINet: Boundary-aware progressive feature integration network for salient object detection
论文地址:https://doi.org/10.1016/j.neucom.2021.04.078 代码地址:https://github.com/clelouch/BPFINet 发表于:Neuro ...
- 【论文阅读】【三维目标检测】BirdNet: a 3D Object Detection Framework from LiDAR Information
文章目录 BirdNet 数据预处理 处理网络 后处理 实验 评价 BirdNet: a 3D Object Detection Framework from LiDAR Information 西班 ...
- 详解两阶段3D目标检测网络PVRCNN:Point-Voxel Feature Set Abstraction for 3D Object Detection
在<动手学无人驾驶(4):基于激光雷达点云数据3D目标检测>一文中介绍了3D目标检测网络PointRCNN.今天介绍该作者新提出的3D检测模型:PVRCNN,论文已收录于CVPR2020. ...
- PV-RCNN: Point-Voxel Feature Set Abstraction for 3D Object Detection(group的是关键点周围的体素,而不是周围的点)
1.动机 为了学习更区别的点云特征,我们将3D体素卷积网络和基于PointNet的方法提取特征相结合.既可以利用3D体素卷积网络高效的学习和高质量的建议,又利用了基于PointNet的网络的灵活感受野 ...
- 论文精读《OFT: Orthographic Feature Transform for Monocular 3D Object Detection》
OFT: Orthographic Feature Transform for Monocular 3D Object Detection 文章目录 OFT: Orthographic Feature ...
- 【论文翻译】Orthographic Feature Transform for Monocular 3D Object Detection
标题:<Orthographic Feature Transform for Monocular 3D Object Detection> 作者:Thomas Roddick, Alex ...
- 论文精读 ——《BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection》
文章目录 BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection 论文精读 摘要(Abstract·) 1 ...
- 论文精读 《CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection》
CaDNN: Categorical Depth Distribution Network for Monocular 3D Object Detection 文章目录 CaDNN: Categori ...
最新文章
- 【BZOJ 3747】 3747: [POI2015]Kinoman (线段树)
- C#之switch多分支语句
- SpringBoot 序列化与反序列化日期类型参数
- Activity小技巧
- 旭辉集团签约帆软软件,打造地产行业数字化转型新标杆
- 【Keras】从两个实际任务掌握图像分类
- linux ojvm补丁安装,打补丁PSU
- Bailian2996 选课【置换】
- django models 配置
- CoolBlog开发笔记第2课:搭建开发环境
- GetLogicalDrives,GetLogicalDriveStrings,GetDri...
- 怎么用spss做冗余分析_【攻略】手把手教你怎么用SPSS做统计分析
- python 视频 添加字幕_爱剪辑加字幕之经验及Python程序批量加字幕
- 在Windows Server 2003企业版下让移动硬盘自动显示盘符
- MySQL数据库简介
- [转]U盘启动制作工具|大白菜启动制作工具
- 基于 HTML5 WebGL 的 3D 水泥工厂生产线
- windows远程连接mac
- 不换行输出的两种方式
- Themida/WinLicense.V1.8.2.0 的Anit OllyDBG新方法