《A-CNN:Annularly Convolutional Neural Networks on Point Clouds》,针对点云的ACNN环状卷积神经网络的论文笔记。
ACNN
《A-CNN:Annularly Convolutional Neural Networks on Point Clouds》 CVPR 2019
Artem Komarichev et. al Wayne State University
paper地址:http://www.cs.wayne.edu/zzhong/papers/A-CNN_CVPR2019.pdf
简介
提出了用regular和dilated两种环形卷积,应用到已有的层级神经网络。能够在信号处理级别适应几何多样性和可扩展性。应用到了object classification,part segmentation,和semantic segmentation的大规模场景,并在一系列标准benchmark数据集上得到了SOTA(部分SOTA)。
解决问题
PointNet++中用了MSG方法做grouping分组,利用不同尺度的球去采样点云,这样的采样有重叠的。再对提出的采样方式进行卷积,变成全局特征,Pointnet的特征提取层不能很好地编码点云结构。
贡献点
提出了点云数据上的环卷积(annular convolution),能够在每个局部环形区域定义任意kernel size,能帮助捕获3D形状更好的几何表达。并且对扩张环(dilated rings)提出了新的多级层次方法,有利于闭环卷积和pooling。
思想
PointNet++的多尺度区域可能会有交叠(同样的邻域点可能会被重复包括在不同规模的区域里),导致计算结构的性能下降(为什么这样会导致性能下降?重叠点的信息被包括在不同尺度,造成信息冗余,限制网络学习更重要的特征)。而本文工作更明智地提取了多尺度的邻域点特征,环结构在查询点的邻域没有交叠区域。
常规和扩张环
Regular ring是密集的不同尺寸的圆环,而Dilate ring在环与环之间有一定的空隙,隔一个环、空一圈地去采样。常规环可以看成是空隙为0的扩张环。
优点:
1. kNN查找可以限制搜索区域保证没有交叠
2. 同样的kernel size,环卷积有更大的感受野,而卷积参数量不变。
3. 用最大池化之后,环结构能集合更多重要的特征。
(2维的Dilated Convolution的最大价值是可以不做pooling损失信息,也不改变feature map的大小而增大感受野。而之前的FCN使用pooling下采样来增大感受野,但随后又不得不通过Deconvolution或者upsampling来增大feature map大小,这样的一小一大总会损失很多信息。)
有限制的KNN查找
PointNet++的ball query算法找的是中心点周围一个半径为R的查询球里的前K个邻居,不能保证最近的点都被找到了(为什么)。用Rinner和Router能保证搜索范围里找到的是最近的独一无二的点集。
邻域排序
分为投影和排序两个步骤。
投影:投影点集到查询点qi的法向平面上。用投影是因为点乘对于排序点有限制。
排序:利用点乘和叉乘把邻域点按照顺时针或者逆时针方向排序。
环卷积和池化
环卷积的优势:
- 环形卷积对局部区域有置换不变性。
- 无论顺时针逆时针排序,得到的结果都一样,避免了大规模场景数据集的点云法线方向翻转问题
- 能够用任意的kernel size,而不只是1x1的kernel
网络结构
模型的具体结构如上图,下采样部分基本上就是一直使用Annular Convolution去编码局部点云,最终变成一个全局的特征。encoder结构中的第一层环卷积用regular ring,第二层环卷积用dilated ring。对同一个询问点的不同环进行并行处理。
在解码器部分,该网络并没有模仿PointNet++的FP结构,而是借鉴了PU-Net中的decoder结构,即将不同尺度的点云插值到原始尺度,然后拼接后通过MLP得到分割结果。
网络的参数如下:
Classification中,用了[[0.0, 0.1],[0.1, 0.2]]的regular ring和[[0.1, 0.2], [0.3, 0.4]]的dilated ring。
Segmentation中,用了[[0.0, 0.1],[0.1, 0.2]]的regular ring和[[0.1, 0.2], [0.3, 0.4]]和[[0.2,0.4],[0.6, 0.8]]的dilated ring。
数据集
standard benchmark dataset:: ModelNet10, ModelNet40, ShapeNet-part, S3DIS, ScanNet
结果
1. Classification
在ModelNet40数据集上比Point2Sequence差一点点。
(VRN Ensemble网络结构的性能最好)
2. Segmentation
ShapeNet-part数据集上,evaluation用了两种不同的输入:没有normals作为附加特征和有normals作为附加特征的。前者性能比Point Grid(volumetric方法)和Point CNN差一点,后者达到了SOTA(但是比without normals的PointGrid差)。
S3DIS数据集上用了六折交叉验证。比Point CNN效果稍微差一点,PointCNN用了有padding的non-overlapping block采样策略。
在ScanNet数据集上达到了最好的分割效果。