详解3D物体检测模型:Focal Sparse Convolutional Networks for 3D Object Detection

用于3D目标检测的焦点稀疏卷积神经网络【CVPR2022】【3D检测】

本文介绍一篇新的 3D 物体检测模型:Focals Conv,论文收录于 CVPR2022。在 3D 检测任务中,点云或体素数据不均匀地分布在3维空间中,不同位置的数据对物体检测的贡献是不同的。然而目前主流的 3D 检测网络(稀疏卷积网络)却使用同样的方式处理所有的数据,无论是常规的稀疏卷积,还是流形稀疏卷积 (Submanifold Sparse Conv)

在本文中,作者提出了两个模块来提高稀疏卷积网络的能力,这两个模块都是基于位置重要性预测使特征稀疏可学习。两个模块是 焦点稀疏卷积 (Focal Sparse Conv)多模态版本焦点稀疏卷积(Focals Conv-F)。两个模块可以很容易地替换现有稀疏卷积网络中的模块,并以端到端的方式进行联合训练。

本文首次证明了稀疏卷积中空间可学习的稀疏性对于复杂的 3D 物体检测是必不可少的。在 KITTI、nuScenesWaymo 数据集上的大量实验验证了本文提出的方法的有效性。值得一提的是,在 nuScenes 数据集上本文提出的方法取得了单一模型的最好结果

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

项目链接为:https://github.com/dvlab-research/FocalsConv


文章目录

      • Introduction
      • Focal Sparse Convolutional Networks
        • Review of Sparse Convolution
        • Focal Sparse Convolution
      • Experiments

Introduction

首先是论文引言部分。3D 物体检测主要有两种方式,一种是直接使用 PointNet++ 网络学习点云特征,但是这种直接处理点云的方法非常耗时;另一种是将点云转换为 voxel,然后再使用 3D 稀疏卷积网络提取特征,3D 稀疏卷积网络通常由常规的稀疏卷积流形稀疏卷积组成。

尽管这两种卷积都已经得到了广泛地使用,但是它们都有各自的局限性。常规的稀疏卷积计算量很大(中间图所示,输入特征被扩展到其卷积核大小的相邻特征,最终增加了特征密度);而流形稀疏卷积则限制了输出特征位置(左图所示,只有当输入特征位于卷积核中间位置时,才有特征输出),会丢弃必要的信息。

以上限制来源于传统的卷积模式:所有的输入特征在卷积过程中被平等地对待。这对于 2D 卷积来说是很自然的,但对于 3D 稀疏特征却是不合适的。2D 卷积是为结构化数据设计的,同一层中的所有像素通常有个固定大小的感受野。但三维稀疏数据在空间上具有不同的稀疏性和重要性。 用统一的处理方式处理不一致的数据并不是最优的。

  • 在稀疏性方面,在距离激光雷达传感器的距离上,目标呈现出较大的稀疏性变化
  • 在重要性方面,对于 3D 物体检测,特征的贡献因位置不同而不同(如前景点和背景点)

在这里插入图片描述
本文提出了新的稀疏卷积一般形式。在三维物体检测中,本文引入了两个新的模块来提高稀疏卷积的表示能力。

  • 第一种是焦点稀疏卷积(Focals Conv)。卷积的输出模式中会预测重要性立方图,预测为重要特征的特征被扩展为可变形的输出形状(如上图右图所示);重要性是通过附加的卷积层来学习的,该卷积层是动态的,取决于输入特征。该模块提高了有价值的信息在所有特征中的比例
  • 第二种是它的多模态改进版的焦点稀疏卷积融合(Focals Conv-F)。由于图像特征通常包含丰富的外观信息和较大的接受范围,因此本文融合了RGB特征来增强重要性预测。

所提出的模块的创新点为:

  • Focals Conv 提出了一种学习特征空间稀疏性的动态机制。它使学习过程集中在更有价值的前景数据上。随着下采样操作的进行,有价值的信息会逐步增加。同时,移除了大量的背景体素。下图展示了包括常见、拥挤和远距离物体的可学习特征稀疏性(左边为普通的卷积方法,右边为本文提出的卷积方法,这里将 voxel 中心坐标投影到图像上),可以看到 Focals Conv 在前景上丰富了所学习的体素特征,而没有在其他区域中添加冗余体素。
  • 其次,这两个模块都是轻量级的。重要性预测需要很小的开销和计算。
    在这里插入图片描述

在研究工作部分,作者介绍了卷积动态机制3D物体检测研究现状,这里就不一一介绍了。其实,从上面的图就可以看出本文的主要贡献是:对稀疏卷积进行了改进,提出了位置重要性预测。下面我们来看看是如何实现的。


Focal Sparse Convolutional Networks

Review of Sparse Convolution

首先回顾下稀疏卷积公式,在 ddd 维空间位置 ppp,输入特征为 xp\mathbf{x}_pxp,其通道数量为 cinc_{in}cin,卷积核权重为 W∈RKd×cin×cout\mathrm{W} \in \mathbb{R}^{K^{d} \times c_{\mathrm{in}} \times c_{\mathrm{out}}}WRKd×cin×cout,在三维空间中 Kd=33{K^{d}}=3^3Kd=33。则卷积过程可以表示为:
yp=∑k∈KdWk⋅xpˉk(1)\mathrm{y}_{p}=\sum_{k \in K^{d}} \mathrm{~W}_{k} \cdot \mathrm{x}_{\bar{p}_{k}} \tag{1} yp=kKd Wkxpˉk(1)

这里,kkk 枚举卷积核空间 Kd{K^{d}}Kd 中所有离散位置,pˉk=p+k\bar{p}_{k}=p+kpˉk=p+k 为对应特征位置,kkk 为相对位置 ppp 的偏移距离。对上面的公式进行简单修改就可以得到大多数卷积类型。例如 pˉk\bar{p}_{k}pˉk 加上一个可学习的偏移距离 Δpˉk\Delta \bar{p}_kΔpˉk 就是一个可变形卷积,权重改为注意力形式就变成了动态卷积。

对于稀疏数据,定义输入和输出特征空间分别为 PinP_{in}PinPoutP_{out}Pout。公式(1)就可以写为:
yp∈Pout=∑k∈Kd(p,Pin)Wk⋅Xpˉk(2)\mathrm{y}_{p \in P_{\mathrm{out}}}=\sum_{k \in K^{d}\left(p, P_{\mathrm{in}}\right)} \mathrm{W}_{k} \cdot \mathrm{X}_{\bar{p}_{k}} \tag{2} ypPout=kKd(p,Pin)WkXpˉk(2)

其中 Kd(p,Pin)K^{d}\left(p, P_{\mathrm{in}}\right)Kd(p,Pin)KdK^{d}Kd 的子集,取决于位置 ppp 和输入特征空间 PinP_{in}Pin,形式为:
Kd(p,Pin)={k∣p+k∈Pin,k∈Kd}(3)K^{d}\left(p, P_{\mathrm{in}}\right)=\left\{k \mid p+k \in P_{\mathrm{in}}, k \in K^{d}\right\} \tag{3} Kd(p,Pin)={kp+kPin,kKd}(3)

如果 PoutP_{out}Pout 包含 PinP_{in}Pin 相邻周围 KdK_dKd 内的所有扩展位置,则该过程被表示为:
Pout=⋃p∈PinP(p,Kd)(4)P_{\mathrm{out}}=\bigcup_{p \in P_{\mathrm{in}}} P\left(p, K^{d}\right) \tag{4} Pout=pPinP(p,Kd)(4)

其中:
P(p,Kd)={p+k∣k∈Kd}(5)P\left(p,K^d\right)=\left\{p+k \mid k \in K^{d}\right\} \tag{5} P(p,Kd)={p+kkKd}(5)

在此条件下,该公式成为常规稀疏卷积。它在其核空间中存在任何体素的所有位置起作用。这一策略有两个缺点:

  • 它引入了相当大的计算代价。稀疏特征的数量变为二倍甚至三倍,增加了后续层的负担。
  • 经验发现,不断增加稀疏特征的数量可能会损害 3D 物体检测。因为这可能会模糊有价值的信息,它降低了前景特征,并进一步降低了 3D 物体检测器的特征辨别能力。

Pin=PoutP_{in}=P_{out}Pin=Pout 时,变成了 流形稀疏卷积。只有当卷积核中心位于输入端时才会发生这种情况。这种方式避免了计算负担,但放弃了要素之间的必要信息流。在不规则的点云数据中,这种信息流是常见的。因此,有效的感受野大小受到特征分离的限制,降低了模型的能力。


Focal Sparse Convolution

可以看到,无论是哪一种卷积形式,输出位置 PoutP_{out}Pout 都是静态的(不会动态变化)。这不是我们想要的,我们根据稀疏特征动态确定输出位置。在我们的公式中,输出位置 PoutP_{out}Pout所有重要位置及其扩展区域其他不重要位置的联合体。公式为:
Pout=(⋃p∈PimP(p,Kimd(p)))∪Pin/im(6)P_{\mathrm{out}}=\left(\bigcup_{p \in P_{\mathrm{im}}} P\left(p, K_{\mathrm{im}}^{d}(p)\right)\right) \cup P_{\mathrm{in} / \mathrm{im}} \tag{6} Pout=pPimP(p,Kimd(p))Pin/im(6)

上述过程包含三步:立方体重要性预测、重要输入选择、动态输出形状生成。

- Cubic importance prediction :立方体重要性图 IpI^pIp 包含位置 ppp 处输入特征周围的候选输出特征的重要性。通过一个附加的流行稀疏卷积sigmoid 函数来预测。
- Important input selection:我们选择 PimP_{im}Pim 为:
Pim={p∣I0p≥τ,p∈Pin}(7)P_{\mathrm{im}}=\left\{p \mid I_{0}^{p} \geq \tau, p \in P_{\mathrm{in}}\right\} \tag{7} Pim={pI0pτ,pPin}(7)

其中 I0pI_{0}^{p}I0p 是立方体重要性图的中心,τ\tauτ 是一个预定义阈值。当 τ\tauτ 为0或1时,就变成了常规稀疏卷积和流形稀疏卷积。
- Dynamic output shape generation:动态输出 Kimd(p)K_{\mathrm{im}}^{d}(p)Kimd(p) 可写为,可以看到可变形输出形状在原始膨胀内被修剪,需满足 Ikp≥τI_{k}^{p} \geq \tauIkpτ

Kimd(p)={k∣p+k∈Pin,Ikp≥τ,k∈Kd}(8)K_{\mathrm{im}}^{d}(p)=\left\{k \mid p+k \in P_{\mathrm{in}}, I_{k}^{p} \geq \tau, k \in K^{d}\right\} \tag{8} Kimd(p)={kp+kPin,Ikpτ,kKd}(8)

这里,作者使用 Focal loss 作为目标损失函数来监督重要性预测,将真值 boxesvoxel 的中心作为目标,损失权重设为1。

下图是本文设计的焦点稀疏卷积和它的多模态版本框架。激光雷达点云特征(实线)首先会经过一个附加的流形稀疏卷积来预测立方体重要图,然后根据设定的阈值确定输出特征的位置;在多模态版本中,图像特征和点云特征相加后进行更好地预测,其次图像特征只和重要的输出稀疏卷积一起融合。
在这里插入图片描述


Experiments

在这里,作者选择了 PV-RCNN、Voxel R-CNN、CenterPoint 三种模型来验证本文提出的方法,阈值 τ=0.5\tau=0.5τ=0.5。首先是 KITTI 数据集上的消融实验,这里选择重新训练后的 PV-RCNN 作为基准。
在这里插入图片描述
然后是和其它方法的比较,这里选择 Voxel R-CNN 作为基准。

下面是在 nuScenes 数据上的试验,这里选择 CenterPoint 作为基准。
在这里插入图片描述

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

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

相关文章

地平线:面向规模化量产的自动驾驶感知研发与实践

导读 4月27日,地平线智能驾驶感知研发部负责人苏治中就 《面向规模化量产的自动驾驶感知研发与实践》 这一主题进行了直播讲解。 本次课程内容分为4个部分: 1、地平线自动驾驶环境感知量产实践 2、软硬协同的自动驾驶感知算法设计 3、实现规模化量产的“…

Power BI与Power Query、Power Pivot 是什么关系?

搞不清楚Power BI与Power Query、Power Pivot是什么关系?看这篇文章就够了。 刚开始学习PowerBI的时候,总是能碰到Power Query和Power Pivot这两个词(下文简称为PQ和PP),现在中文里面学习PowerBI的资源本来就不是很多&#xff0c…

地平线:上帝视角与想象力——自动驾驶感知的新范式

导读 3月28日,在「地平线自动驾驶技术专场」上,地平线自动驾驶系统架构师刘景初博士围绕《上帝视角与想象力——自动驾驶感知的新范式 》这一主题进行了直播讲解。 本次课程主要分为以下4个部分: 1、自动驾驶结构演化提出算法新需求 2、软件2…

详解Class类文件的结构(上)

前言 相信搞Java开发的同学都经常会接触到Class类文件,了解了JVM虚拟机之后也会大量接触到class字节码,那么它到底是什么样的文件?内部由什么构成?虚拟机又是如何去识别它的?这篇文章就来学习一下Class类文件的结构。…

Coursera自动驾驶课程第19讲:Mapping for Planning

在第18讲 《Coursera自动驾驶课程第18讲:The Planning Problem》 我们对自动驾驶中的规划问题有了一个全面的了解,理解了规划问题中的约束和目标;同时我们还讨论了如何分层如解决规划问题(任务规划、行为规划、路径规划和速度曲线…

详解Class类文件的结构(下)

本文继续使用上次的Test.class文件,它是由下面单独的一个类文件编译而成的,没有包。 6. 索引(Index) 索引又分类索引、父类索引和接口索引集合,类索引(this_class)和父类索引(super…

自动驾驶开源软件和算法库

1. Carla(自动驾驶开源仿真软件) github:https://github.com/carla-simulator/carladoc:https://carla.readthedocs.io/en/latest/website:http://carla.org/Bounding boxes:https://carla.readthedocs.io/…

Coursera自动驾驶课程第20讲:Mission Planning in Driving Environments

在第19讲《Coursera自动驾驶课程第19讲:Mapping for Planning》 我们学习了自动驾驶中两种环境建图方法:占用网格图(occupancy grid map) 和 高清地图(high-definition road map)。 在本讲中,我…

Java实例化对象过程中的内存分配

问题引入 这里先定义一个很不标准的“书”类,这里为了方便演示就不对类的属性进行封装了。 class Book{String name; //书名double price; //价格public void getInfo(){System.out.println("name:"name";price:"price);} } 在这个类中定义了两个属…

【Python学习】 - sklearn学习 - KNN

前言: 针对一个完整的机器学习框架目前还没有总结出来,所以目前只能总结每一个单独的算法。由于现在研究的重点是算法,所以对于数据的处理,数据的分析和可视化呈现,在现阶段并不进行展示(这样容易陷入纠结…

重读经典:《End-to-End Object Detection with Transformers》

DETR 论文精读【论文精读】这一次朱毅博士给大家精读的论文是 DETR,是目标检测领域里程碑式的一个工作,文章收录于 ECCV20 。DETR 是 Detection Transformer 的缩写,作者使用 Transformer 简化了目标检测流程,不再需要进行 NMS&am…

Execute SQL Task 参数和变量的映射

Execute SQL Task能够执行带参数的SQL查询语句或存储过程(SP),通过SSIS的变量(Variable)对参数赋值。对于不同的Connection Manager,在Task中需要使用不同的符号(Parameter marker)来…

【Python学习】 - 手写数字识别 - python读入mnist数据集的多种方法

写在前面: 其实网上有很多读入mnist数据的代码,但是都是比较麻烦冗长的函数,本篇文章介绍几种不算很麻烦的,借用库函数读入数据的方法。 方法1: 方法2: 方法3:

Coursera自动驾驶课程第21讲:Dynamic Object Interactions

在第20讲《Coursera自动驾驶课程第20讲:Mission Planning in Driving Environments》 我们学习了任务规划中常用的三种图搜索算法:Breadth First Search、Dijkstra 和 A* 搜索。 在本讲中我们将讨论运动规划器中使用的方法,以处理动态物体和…

sql server 数据库忘记sa账户密码/ 无管理员账户解决办法

一、计算机超级管理员账户有数据库的管理员权限 用管理员账户登录数据库,直接修改sa账户密码即可。 二、数据库中没有管理员权限的账户 SQL Server 2005/2008提供了针对该情况的更好的灾难恢复方法,无需侵入master数据库,不会对master数据库…

机器学习编译第1讲:机器学习编译概述

MLC-机器学习编译-第一讲-机器学习编译概述课程主页:https://mlc.ai/summer22-zh/ 文章目录1.0 概述1.1 什么是机器学习编译1.2 为什么学习机器学习编译1.3 机器学习编译的关键要素1.3.1 备注:抽象和实现1.4 总结1.0 概述 机器学习应用程序已经无处不在…

重读经典:《The Craft of Research(1)》

跟读者建立联系【研究的艺术一】这一次李沐博士给大家精读的是一本关于论文写作的书籍。这本书总共包含四个大的章节,本期视频李沐博士介绍的是第一个章节:Research,Researchers,and Readers。 0. 前言 视频开头,李沐…

机器学习编译第2讲:张量程序抽象

02 张量程序抽象 【MLC-机器学习编译中文版】课程主页:https://mlc.ai/summer22-zh/ 文章目录2.1 元张量函数2.2 张量程序抽象2.2.1 张量程序抽象中的其它结构2.3 张量程序变换实践2.3.1 安装相关的包2.3.2 构造张量程序2.3.3 编译与运行2.3.4 张量程序变换2.3.5 通…

详解自动驾驶仿真数据集 SHIFT:A Synthetic Driving Dataset for Continuous Multi-Task Domain Adaptation

SHIFT:A Synthetic Driving Dataset for Continuous Multi-Task Domain Adaptation本文介绍一个新的自动驾驶仿真数据集:SHIFT,论文收录于 CVPR2022。适应连续变化的环境是自动驾驶系统一直以来要面临的挑战。然而,目前现有的图像…

TFS下的源代码控制

以下主要描述了: TFS源代码控制系统的基本场景如何把一个项目添加到源代码管理中如何与服务器同步如何做Check-In如何做分支与合并什么是上架与下架 我们知道工作项是项目管理的基本元素,但是一个项目的成功,光有工作项还是不够的。工作项说…