Generative Sparse Detection Networks for 3D Single-shot Object Detection
稀疏检测网络(GSDN),这是一种完全卷积的单帧稀疏检测网络,可以有效地生成对对象提议的支持。模型重要组成部分事一个稀疏的张量编码器,使用了转置卷积以及修剪层,丢弃了概率小的对象中心,以减小运行的时间和占用的内存。
Introduction
检测三维物体时遇到两个问题:
- 三维数据需要进行处理和保存较之二维数据更加复杂
- 三维数据是十分稀疏的,采样都来源于物体的表面
提出按层次稀疏张量编码器来解决三次复杂度,采用稀疏张量网络对大场景进行全卷积的有效处理。
边界框的锚点即扫描物体的中心点,但是在扫描过程中智能获得物体的表面无法获得中心点,这使得bounding box的坐标无法定位。
提出生成式稀疏张量解码器,重复的对输入的支持进行上采样 ,丢弃不太可能的中心点,保证较小的运行时间和内存占用。如下图:
GSDN由两部分组成:1. 分层式稀疏张量编码器 2. 生成式稀疏张量编码器
Preliminaries
在本文中,我们将使用小写字母表示可变标量,t;大写字母表示常数,N;小写粗体字母表示向量,v;大写粗体字母表示矩阵,R;稀疏张量,T;表示集合的符号,C
3.1Sparse Tensor
一个d阶稀疏张量,是一个d维的数组,其中大部分元素都为0,可以将稀疏矩阵表示为一组非零坐标C = supp(T),返回令T!=0的坐标,对应的是特征F,返回令T!=0的特征向量。
xid表示的是第d轴的第i个非零元素,fi表示的是第i个非零元素的特征。
这些非零元素的信息即等价于稀疏张量T对于C集合的特征向量F
Generative Sparse Detection Networks
网络主要由两部分组成:一个分层式稀疏张量编码器和一个生成式稀疏张量解码器。
网络的第一部分生成稀疏张量特征映射,能够有效的捕捉到目标的几何特征和特性。
第二部分则根据第一部分生成的特征映射提出支撑。
稀疏张量首先结果一系列卷积池化后,通过几个残差块处理,生成分层的稀疏张量特征,在第二阶段通过使用转置卷积和剪枝对稀疏张量特征映射进行上采样。
Hierarchical Sparse Tensor Encoder
使用ResNet作为backbone,可以被其他backbone替换
首先,网络以高分辨率的稀疏张量T0作为输入,通过一系列下采样和残差块生成T1特征映射,编码器可以被描述为:
将所有层级的特征向量Tl(l∈[1,.....,L])缓存下来,送入稀疏张量解码器。
Generative Sparse Tensor Decoder
网络的后半部分扩展了对分层稀释张量特征映射Tl的支持,以覆盖对bounging box锚点的支持。这个过程类似于一个转置卷积,但是生成的体素不一定包含了bounding box的锚点,通过剪枝的方法将这些多余的体素删除,减少内存和计算成本的消耗。这个过程叫做稀疏剪枝。在稀疏剪枝之后使用转置卷积来提高空间的分辨率。
Transposed Convolution and Sparsity Pruning
使用大小大于2的卷积核进行转置卷积,不仅是上采样,同时拓展了稀疏卷积的张量支持。
在数学形态上,在3d稀疏向量T与supp(T) = C 的转置卷积可以被定义为:
其中
N (x, y, z) = {(i, j, k)||x−i| ≤ K, |y−j| ≤ K, |z−k| <K,(i, j, k) ∈ C}
W是3d卷积和的权重,2K+1是卷积核的大小
转置卷积将稀疏点扩大为一个任意大的密集区域,并且多个区域是可以互相重叠的。如下图:
通过转置卷积将低分辨率的稀疏张量上采样为高分辨率,然后通过稀疏预测Ps剪枝掉一些生成的坐标。
在转置卷积之后,生成的坐标不一定包含了bonding box的锚点,因此引入了一个函数Ps返回每个体素给定特征的概率,将概率Ps小于阈值 τ的体素删除, τ作为稀疏剪枝的信任阈值。
Skip Connection and Sparse Tensor Addition
通过上采样能让神经网络看到更多的信息,但也丢失了很多的分辨率,为了恢复输入的细节,我们跳过了缓存特征映射和编码器之间的连接。
Multi-scale Bounding Box Anchor Prediction
在剪枝后每个体素都可能包含bounding box anchors,预测对每个稀疏张量进行预测。具体的说,就是对于每k个锚定盒,网络预测出一个目标锚定似然得分,6个关于锚定盒的偏执以及c个语义分类得分,每个体素共有(c+7)*k个输出。
对于锚定框,我们使用了不同的长宽高比:
总的来说,我们令k=13,
但仅靠这些变化量不足以覆盖所有的3d目标,因此在每一层构建锚,使前一层的锚的大小增加一倍。
Summary of GSDN Feed Forward
生成稀疏检测网络的前馈过程:
第三行:从先前的特征映射生成了L个级别的分级特征映射。
第四行:通过转置卷积进行上采样
第七行:将上采样的稀疏张量特征加到编码器中对于的稀疏张量特征映射中
第八行至第十二行:在生成阶段提取锚点以及相关的bounding box的信息,预测稀疏性并删除可能性低于阈值的体素,后进行转置卷积。
Losses
生成式稀释检测网络需要预测四个输出:稀疏性预测、描点预测、语义类、bounding box回归
稀疏性和锚点预测式二分类问题,但是大多数的体素是不包含锚点的,因此提出平衡交叉熵损失:
P和N分别是带有正例和反例标签的索引的集合。
IoU大于0.35的锚点定义为正例,小于0.2的定义为反例。
因为稀疏性预测需要包含后续级别的所有锚点,因此若与当前体素相关的所有锚点都是正例,我们定义这个稀疏性为正。在IoU∈(0.2,3.5)之间的锚点,我们不强制其施加损失。
对于正锚点,我们用标准交叉熵训练最高IoU最大的锚点的语义类预测Lcalss。
使用Huber loss计算bounding box的中心以及参数化的大小回归关于不同中心点位置的锚点的大小的损失Lreg
总的损失为:
其中:
Experiment
实验结果图:
P-R曲线:
不同IoU值下的性能: