两阶段3D目标检测网络 SIENet: Spatial Information Enhancement Network for 3D Object Detection from Point Cloud


本文介绍一篇两阶段的3D目标检测网络:SIENet。 这里重点是理解本文提出的 Hybrid-Paradigm Region Proposal NetworkSpatial Information Enhancement module

论文链接为:https://arxiv.org/abs/2103.15396

项目链接为:https://github.com/Liz66666/SIENet


0. Abstract

这里先给出本文摘要:

基于LiDAR的3D目标检测对自动驾驶汽车产生了巨大影响。由于LiDAR固有特性限制,距离LiDAR较远的物体收集到的点数相对较少。点云的这种密度不平衡往往会降低检测准确率,但是在之前的研究中都忽略了这一点

为了解决这一挑战,本文提出了一种新的两阶段3D目标检测网络:SIENet。具体来说,本文设计了 Spatial Information Enhancement(SIE) 模块,用来预测proposals中前景点的空间形状,并提取结构信息进行特征学习进一步优化。预测的空间形状是完整且密集的点集,因此提取的结构信息包含更多的语义表示。此外,本文还设计了 Hybrid-Paradigm Region Proposal Network(HP-RPN),该网络包括多个网络分支,进行特征学习并为SIE模块生成准确的proposals。在KITTI数据集上的实验表明,本文精心设计的SIENet网络取得了目前最好的检测准确率。


1. Introduction & Related Work

( 本文的引言部分和第二部分研究现状这里就不详细介绍了,大家可以查看原文,我在这里大致总结下。)

从下面左边这张图可以看到,现有的3D目标检测算法在近距离(20米以内)的检测准确率都很高(90%左右),但是在远距离(超过40米)它们的准确率下降到了30%~40%左右。

右边这张图说明了点云密度的不平衡性,这里以汽车为例,在近距离内点云数量超过了1000,而在中等距离内点云数量仍然在200个以上,远距离处点云数量只有20个左右。因此需要找到一个办法来解决点云密度不平衡性。

下面介绍研究现状:

  • 3D Object Detection Based on Multi-modality Fusion
    多模态融合的3D目标检测方法有MV3D,AVOD,Frustum PointNet,EPNet,3D-CVF。以上方法需要同时使用图像和点云数据,且需要进行数据对齐和投影。
  • 3D Object Detection Based on LiDAR Only
    基于LiDAR的检测方法有VoxelNet,SECOND,Part-A2,PointRCNN,3DSSD,STD。但是这些研究都忽视了点云密度不平衡性的问题。
  • 3D Shape Completion
    在本文中选择Pcn (Point completion network)算法进行物体空间形状的预测,生成完整且密集的点集。
Detection performance at different distance rangesIllustration of the point cloud with imbalanced density on the KITTI dataset
在这里插入图片描述在这里插入图片描述

2. Our Framework (重点)

下图是SIENet网络整体框架,由HP-RPNSIE module组成。下面首先介绍HP-RPN,然后介绍SIE module
在这里插入图片描述

2.1 Hybrid-Paradigm RPN

如下图所示,HP-RPN包含三个分支:SPConv Branch,Auxiliary Branch,Keypoint Branch。首先对点云进行体素化处理,使用SPConv Branch学习voxel特征,然后Keypoint Branch使用注意力机制动态编码voxel 特征Auxiliary Branch用于学习结构信息。
在这里插入图片描述
下面详解介绍这三个网络分支:

  • SPConv branch
    SECOND一样,这里将点云划分为一个个相等大小的voxel,堆叠4个稀疏卷积块对输入的体素特征进行8倍下采样,最后使用和SECOND一样的RPN Head生成候选方案。
  • Auxiliary branch
    这里使用了SA-SSD网络中的Auxiliary Network将voxel坐标转换为真实场景坐标,同时使用PointNet++中的特征传播层进行插值,将每一块得到的特征进行结合用以学习结构信息。
  • Keypoint branch
    PVRCNN中的VSA模块进行voxel特征融合相似,但是由于点云密度不平衡,每个keypoint权重并不一样,使用了Deformable pv-rcnn中的context fusion方法分配关键点权重。

2.2 Spatial Information Enhancement Module

这里有三个问题需要考虑:如何预测空间形状?如何提取结构信息?如何进行特征融合和box优化?

  • Spatial shape prediction
    空间形状预测如下图所示,这里选择PCN作为主干网来进行预测。假设输入点集为:{Pi∣i=1,…,N}\left\{\boldsymbol{P}_{i} \mid i=1, \ldots, N\right\}{Pii=1,,N},其中Pi\boldsymbol{P}_{i}Pi是坐标向量,NNN为点的个数。为了减少干扰,这里先使用了Part-A2中的RoI-aware pooling进行点集变换;然后使用一个PointNet得到一个256维的全局特征向量vvv,特征结合得到512维的特征,然后再使用一个PointNet得到1024维的全局特征向量,最后再使用全连接层网络得到新的点集P^\hat{\boldsymbol{P}}P^
    在这里插入图片描述

  • Structure information extraction
    现在我们已经有了预测的形状点集{P^i∣i=1,…,1024}\left\{\hat{\boldsymbol{P}}_{i} \mid i=1, \ldots, 1024\right\}{P^ii=1,,1024},我们使用FPS采样mmm个点得到点集{Si∣i=1,…,m}\left\{\boldsymbol{S}_{i} \mid i=1, \ldots, m\right\}{Sii=1,,m}。对每一个采样点,有TTT个近邻点。使用MSG方法进行多尺度的特征提取得到m×(C1+C1)m \times\left(C_{1}+C_{1}\right)m×(C1+C1),最后使用全连接层网络得到全局信息Fs∈RC1\boldsymbol{F}^{s} \in \mathbb{R}^{C_{1}}FsRC1

  • Feature fusion and box refinement
    特征融合如下图所示。首先使用了PV-RCNN中的RoI-grid pooling捕获网格点近邻 keypoint 的 context 信息,表示为:Fg={f1g,f2g,…,f216g}∈R216×C2\boldsymbol{F}^{g}=\left\{\boldsymbol{f}_{1}^{g}, \boldsymbol{f}_{2}^{g}, \ldots, \boldsymbol{f}_{216}^{g}\right\} \in \mathbb{R}^{216 \times C_{2}}Fg={f1g,f2g,,f216g}R216×C2。然后网格点特征和结构特征进行结合得到新的特征:Fc=[Fg,Fs]∈R216×(C2+C1)\boldsymbol{F}^{c}=\left[\boldsymbol{F}^{g}, \boldsymbol{F}^{s}\right] \in \mathbb{R}^{216 \times\left(C_{2}+C_{1}\right)}Fc=[Fg,Fs]R216×(C2+C1),这里在结合时使用了Perspective-Channel Attention分配特征权重,最后得到增强权重Fe∈R216×(C2+C1)\boldsymbol{F}^{e} \in \mathbb{R}^{216 \times\left(C_{2}+C_{1}\right)}FeR216×(C2+C1)
    在这里插入图片描述


3. Experiments

实验部分,作者在KITTI数据集上进行了验证,实验细节这里不介绍了,可以查看代码和论文,下面几张表是实验结果。

Comparison with the state-of-the-art methods on KITTI test setComparison with the state-of-the-art methods on KITTI val split - Moderate Car (R11)
在这里插入图片描述在这里插入图片描述

下面两张表是本文提出的HP-RPNSIE对检测准确率的影响。

Effects of auxiliary branch and context fusion for HP-RPNEffects of SIE module
在这里插入图片描述在这里插入图片描述

下面这张表是在验证集上对Moderate difficulty在不同距离上的检测准确率。
在这里插入图片描述
最后是本文提出的物体形状预测的可视化效果。
在这里插入图片描述

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

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

相关文章

java容器类3:set/HastSet/MapSet深入解读

介绍 Set:集合,是一个不包含重复数据的集合。(A collection that contains no duplicate elements. ) set中最多包含一个null元素,否者包含了两个相同的元素,不符合定义。 上一篇学习了Java中的容器类的一…

Bandit算法原理及Python实战

目录 1)什么是Bandit算法 为选择而生。 Bandit算法与推荐系统 怎么选择Bandit算法? 2)常用Bandit算法 Thompson sampling算法 UCB算法 Epsilon-Greedy算法 Greedy算法 3)Bandit算法Python实战 参考资料: 推荐系统里面有…

ava容器类4:Queue深入解读

Collection的其它两大分支:List和Set在前面已近分析过,这篇来分析一下Queue的底层实现。 前三篇关于Java容器类的文章: java容器类1:Collection,List,ArrayList,LinkedList深入解读 java容器类2:Map及HashMap深入解…

Waymo离线点云序列3D物体检测网络 (3D Auto Labeling): Offboard 3D Object Detection from Point Cloud Sequences

本文介绍一篇Waymo基于点云序列的3D物体检测网络:3D Auto Labeling,论文已收录于CVPR 2021。 这里重点是理解本文提出的 Object-centric Auto Labeling。 论文链接为:https://arxiv.org/abs/2103.05073 2021-09-02补充:本文作者…

Waymo自动驾驶数据集介绍与使用教程

本文将对Waymo自动驾驶数据集(Waymo Open Dataset)进行介绍。 论文链接为:https://arxiv.org/abs/1912.04838v7 项目链接为:https://github.com/waymo-research/waymo-open-dataset 数据集链接为:https://waymo.com…

Java 并发基础——线程安全性

线程安全:多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协调,这个类都能表现出正确的行为,那么久称这个类是线程安全的。 在线程安全类中封…

详解一阶段3D物体检测网络 SE-SSD: Self-Ensembling Single-Stage Object Detector From Point Cloud

本文介绍一篇一阶段的3D物体检测网络:SE-SSD,论文已收录于 CVPR 2021。 这里重点是理解本文提出的 Consistency Loss 、Orientation-Aware Distance-IoU Loss、Shape-Aware Data Augmentation。 论文链接为:https://arxiv.org/pdf/2104.0980…

详解3D点云分割网络 Cylindrical and Asymmetrical 3D Convolution Networksfor LiDAR Segmentation

本文介绍一篇3D点云分割网络:Cylinder3D,论文已收录于 CVPR 2021。 这里重点是理解本文提出的 Cylindrical Partition 和 Asymmetrical 3D Convolution Network。 论文链接为:https://arxiv.org/pdf/2011.10033.pdf 项目链接为:…

自动驾驶3D物体检测研究综述 3D Object Detection for Autonomous Driving: A Survey

本文介绍一篇最新的自动驾驶3D物体检测研究综述(2021年6月份发布),来源于中国人民大学,论文共26页,99篇参考文献。 论文链接为:https://arxiv.org/pdf/2106.10823.pdf 0. Abstract 自动驾驶被看作是避免人…

Java中接口的多继承

我们知道Java的类只能继承一个类,但可以实现多个接口。但是你知道么?Java中的接口却可以继承多个接口。本文就来说一说Java中接口的多继承。 进入主题之前,先扩展一下。Java为什么只支持单继承呢? 我们不妨假设Java支持多继承&a…

详解基于IMU/GPS的行人定位: IMU/GPS Based Pedestrian Localization

本文介绍一篇使用 IMU/GPS 数据融合的行人定位论文,这里重点是理解本文提出的 Stop Detection 和 GPS Correction。 论文地址为:https://www.researchgate.net/publication/261452498_IMUGPS_based_pedestrian_localization 1. Introduction 低成本的 …

每次maven刷新jdk都要重新设置

pom.xml <java.version>17</java.version> 改为<java.version>1.8</java.version>

【CodeForces - 706D】Vasiliy's Multiset(01字典树)

题干&#xff1a; Author has gone out of the stories about Vasiliy, so here is just a formal task description. You are given q queries and a multiset A, initially containing only integer 0. There are three types of queries: " x" — add integer …

详解自动驾驶仿真框架OpenCDA: An Open Cooperative Driving Automation Framework Integrated with Co-Simulation

本文介绍一款同时支持协同驾驶开发与测试、自动驾驶全栈开发 和 CARLA-SUMO联合仿真的开源框架 OpenCDA&#xff0c;论文已收录于 ITSC 2021。主要feature有&#xff1a; 支持CARLA-SUMO联合仿真&#xff0c;CARLA端主管环境渲染、传感器模拟、车辆动力&#xff0c;Sumo端主管…

JavaMonitor 监视器

为什么wait(), notify()和notifyAll()必须在同步方法或者同步块中被调用&#xff1f; 当一个线程需要调用对象的wait()方法的时候&#xff0c;这个线程必须拥有该对象的锁&#xff0c;接着它就会释放这个对象锁并进入等待状态直到其他线程调用这个对象上的notify()方法。同样的…

KITTI自动驾驶数据集可视化教程

本文介绍关于自动驾驶数据集KITTI的基本操作&#xff0c;包括Camera和LiDAR可视化教程&#xff0c;源码已上传&#xff1a;https://download.csdn.net/download/cg129054036/20907604 1. 数据准备 将 KITTI 数据 (calib, image_2, label_2, velodyne) 添加到 dataset/KITTI/ob…

重读经典《Quaternion kinematics for the error-state Kalman filter》

本文将介绍一篇关于 四元数运动学的误差卡尔曼滤波 经典论文。本文结构如下&#xff1a; 第1章四元数定义和性质介绍&#xff0c;包括&#xff1a;加法、减法、乘法&#xff08;矩阵表示&#xff09;、模、幂数、指数运算等。第2章旋转群定义和性质介绍&#xff0c;包括&#…

【CodeForces - 789C】Functions again(最大子段和变形,dp,思维)

题干&#xff1a; Something happened in Uzhlyandia again... There are riots on the streets... Famous Uzhlyandian superheroes Shean the Sheep and Stas the Giraffe were called in order to save the situation. Upon the arriving, they found that citizens are wo…

一步步编写操作系统 55 CPL和DPL入门2

接上节。 图中第132行的jmp指令&#xff0c;段选择子为SELECTOR_CODE&#xff0c;其RPL的值为RPL0&#xff0c;RPL0定义在include/boot.inc中&#xff0c;其值为0。选择子的索引部分值为1&#xff0c;表示对应GDT中第1个段描述符&#xff0c;该描述符的DPL为0&#xff0c;&…

详解停车位检测算法 Vision-Based Parking-Slot Detection: A DCNN-Based Approach and a Large-Scale Benchmark

本文介绍一篇基于深度学习的停车位检测论文&#xff1a;DeepPS&#xff0c;作者同时公开了数据集ps2.0&#xff0c;工作很扎实&#xff0c;对于入门停车位检测很有帮助&#xff0c;论文发表在 IEEE T-IP 2018。 项目链接为&#xff1a;https://cslinzhang.github.io/deepps/ 0…