Reference: https://arxiv.org/abs/1802.08275
Author: Hang Su , Varun Jampani , Deqing Sun , Subhransu Maji , Evangelos Kalogerakis , Ming-Hsuan Yang , Jan Kautz
Abstract
本文提出了一个网络架构,来处理在高维点阵中表示为一组稀疏样本的点云。因为点阵的大小在增长,直接在这些点阵上使用卷积会消耗大量的内存和计算资源。所以,本文使用稀疏双边卷积层来作为block构建网络。这些层通过使用索引结构来将卷积运用到被占据的点阵来维持效率,同时允许灵活配置点阵来实现层级架构,空间感知的特征学习和2D到3D的推理。基于点和基于图片的表示都可以被包含在网络层中,实现的模型是端到端的。本文的模型在3D分割任务上有超群的表现。
(= =, 不了解点云看abstract都有点抽象)
Introduction
点云的分析运用对机器人操作和自动驾驶有很大的帮助,所以本文提出了一个能对点云进行分析的神经网络。
点云是由稀疏和不规则的3D点集组成的。所以要在其上运用传统CNN是很困难的。现在对点云的分析都是基于手工特征的。一种使用CNN的方法是先将点云预处理成符合标准空间卷积的形式。通过这类方法大多数3D点云分析的深度结构都是将其预处理成立体像素表示或者二维图片的投影。但这些方法会一些人为因素,或者改变了点云的自然不变性。
本文参考了BCLs(bilateral convolutional layers)在处理点云上的优点双边卷积层提供了一个系统化的过滤无序点的方法来使得进行卷积操作的底层点阵变得灵活规范。
BCL将点映射到稀疏点阵然后将挑选过的信号插入到原来的点里。运用BCL,本文提出了新的网络结构SPLATNet,其在点云处理上有几个优点:
1、SPLATNet将点云作为输入,不需要任何的预处理
2、可以方便地实现像标准CNN一样的邻域操作
3、运用哈希表可以通过卷积处理稀疏的点云
4、SPLATNet实现了使用稀疏高效点阵滤波来处理层级和面向空间的特征
5、实现了2D到3D之间的映射
Related Work
Multi-view and voxel networks
参考了多视角及立体像素网络,但是并没有将点预处理成立体像素,这会产生离散假象和表面信息损失。所以本文将表面信号映射到稀疏点阵,执行卷积后再将滤波器响应插回表面。
Point cloud networks
有方法直接用网络处理点云,这网络会学习每个点的空间特征,,然后点的特征集合成了点集的特征,这样可能会损失表面信息,因为空间分布中的点并没有全部被考虑到(就是说这种方法只考虑了局部,没有考虑全局信息)。本文种,输入点被映射到稀疏点阵,这样可以有效使用卷积,也可以通过灵活的过滤来找到数据的空间关系。
Non-Euclidean networks
一个方法是将输入表面表示成一个图,将图转换成光谱表示。但是,结构不同的物体有不同的光谱表示,因此普遍化有点差。这些非欧网络对表面变形具有不变性的优点。但是这种不变性并不总是能再物体分割和分类任务中出现,因为重大的形变会改变基本的形状和部件的功能语义。
Joint 2D-3D网络
本文中,2D和3D特征表示被映射到相同的点阵上,使得端到端的学习能运用在这两者上。
Bilateral Convolutional Layer
BCL是SPLATNet的基本模块。它提供了一个包含稀疏高维过滤的神经网络。BCL是双边过滤的一种可习得的泛化。双边过滤能将给定的2D图片映射到高维空间而且受限于手工设计的过滤内核。BCL提供了一个在高维空间学习过滤内核的方法。BCL在视频的信息传播上也有用。
Inputs to BCL
设
为BCL的输入特征,n代表输入点的数量,表示每个点的输入特征的维度。对于3D的点云,输入特征可以是低级的特征比如颜色,位置等,也可以是神经网络学到的高级的特征。
BCL一个有趣的特点是它允许点阵空间的灵活表示。这被指定为点阵特征。设
代表了点阵特征,其中为特征空间的维度。举个例子,点阵特征可以提供给BCL的点的位置和颜色(XYZRGB)这样一个6维的过滤空间。对于点云中标准的3D空间过滤,L通常维位置(XYZ)。因此,BCL得到输入点的输入特征F和点阵特征L,并对执行点的维过滤(原谅我不知道是过滤还是滤波= =||)操作。
Processing steps in BCL
如图2所示
BCL有三种操作,splat,convolve和slice。
有点难懂
参考了https://blog.csdn.net/qq_33278989/article/details/80786726
Splat
BCL先通过重心插值将输入特征F映射到点阵特征L定义的维度点阵。为了提高效率,BCL使用permutohedral点阵来代替标准的欧式网格,这种表示方法能把稀疏数据更好地组织起来。网格点之间的点阵的尺寸和点阵的空间的大小是通过调整点阵特征来控制的,其中是的对角线缩放矩阵。
(Splat就是把原本在欧式空间中的稀疏又不均匀的点按照新的形式进行组织,方便后续运算。具体就是将一个点阵中的点的信息放射到周围的三个顶点上,以便后续卷积运算)
Convolve
一旦输入点被映射到维的点阵,BCL通过学到的过滤器内核再splatted(找不到翻译)信号上做维的卷积操作。就像在标准空间CNN中一样,BCL能再维简单实现一个邻域操作。
(按照哈希表做索引,进行卷积操作)
Slice
被过滤地信号会通过重心插值映射回输入点。结果信号会被传到其它BCL做更多的处理。这叫做“slicing”。BCL允许过滤过的信号slicing到和输入点不同的点集
(是Splat的逆过程,把卷积计算后得到的点阵顶点上的信息“汇聚”回原来点的位置上)
所有上述三种操作可以被写成矩阵乘法的形式
其中代表输入特征F的第c个通道,表示对应的过滤过的信号。
Properties of BCL
BCL有些特性非常有利于处理点云。
- 因为输入点通过点阵特征被映射到维的网格上,所以不需要是规律的或者依赖于网格
- 对BCL来说,输入点和输出点可以是不同的
- BCL允许对输入和点阵特征进行分开的实现,输入信号可以被映射到不同的维度空间来进行。比如2D的图片可以被映射到3D的空间
- BCL允许对邻域过滤的简单实现
- 在高维空间信号往往是系数的,BCL可以使用哈希表对其进行编号并进行卷积操作。这对稀疏输入非常有效
SPLATNet for Point Cloud Processing
的输入为3D点云,输出为每个点的预测
Network architecture
的结构如图所示
Lattice spaces and their scales
通过改变点阵规模可以直接影响卷积操作要处理的信号的分辨率。这可以使得我们能直接控制网络层的感受野。图四展示了不同点阵空间和规模的可视化。
使用粗糙的点阵可以增加过滤器的有效感受野。另一个增加过滤器有效域的方法是增加它邻居的大小。但是在高维,这会极大地增加过滤器地参数数量。
本文发现在网络的早期使用细粒度的点阵然后在深的地方使用粗粒度的会挺有效。这与在2D的CNN中得到的观点是一致的:在网络中逐渐增加感受野可以帮助构建不同不同空间内容和抽象的层级表示。
Joint 2D-3D Processing with SPLATNet
通常在获取三维点云的时候也能得到二维图像。为了处理这种2D和3D数据一一对应的情况,SPLATNet也提供了一个结构 。将作为一个组件调用,并增加了一些额外的连接2D和3D的计算模块。
CNN
先将多视角2D图片用2D的CNN来分割一下,即CNN
BCL
CNN分析的图片特征往往和3D点云的位置对不上,所以用一个BCL来校准,如图5所示
2D-3D Fusion
将之前得到的从 CNN处理来的信号和得到的特征进行结合,再提供给softmax。
有时候,也会需要用3D的信息来帮助2D图片进行更好的分割
CNN
再用一个CNN来处理这些信号
Experiments
介绍了网络的效果
Conclusion
本文提出了SPLATNet网络来处理点云。SPLATNet直接将点云作为输入并通过点阵过滤器来计算层级和空间特征。另外SPLATNet 允许结合3D点云和2D图片来获得更好的结果。