《Flex-Convolution》阅读笔记
PaperLink: https://arxiv.org/abs/1803.07289
简介
传统二维卷积神经网络(CNN)在组织良好的图像等结构化数据上表现优异。然而,在难以直接应用于3D点云这种无组织的数据时效果欠佳。文章的主要创新在于:第一部分提出了可泛化的卷积层设计方法 flex-convolution layer;第二部分开发了一种内存占用更低、能够高效处理高达700万点左右的点云数据的方法
相关工作
基于体素的方法(Voxel-based):将不规则(Irregular)的点云数据转换为体素格栅的过程被称为离散化(Discretization),调节细粒度(Granularity)至关重要。若设置过高会带来高内存消耗并引发维度诅咒(Curse of Dimensionality),而设置过低可能导致数据失真并产生人工误差(Artifact)。随后将传统3D卷积神经网络应用于该体素网格上。
基于图形方法(Graph-based):源自知识图谱及社交网络领域研究。每个节点由自身至相邻节点的欧氏距离决定其属性特征,在处理具有复杂关系数据时可有效提取关键信息。通过稀疏卷积神经网络对图结构邻接矩阵进行深度学习处理以实现特征提取与模式识别任务。
基于欧几里得空间的方法(Euclidean space-based):直接采用原始点云数据,并由文章中的PointNet对其进行处理。该网络结构使每个输入点独立地被投影到多个不同的特征空间中,并随后经过空间变形模块进行调整。最终通过Max-pooling函数将所有高维特征进行聚合处理以获取整体信息。这种做法虽然能确保内存中存储所有高维特征成为必要步骤(Indispensable),但对于现代硬件系统的计算资源而言却是不现实的选择(Infeasible)。为了克服这一局限性,在后续的研究中提出了PointNet++来有效解决局部区域内的精细粒度特征提取问题(Fine-grained local spatial features)。本文所讨论的内容属于第三种具体实现方法之一
实现细节
基于网格的降采样方法存在局限性,在面对稀疏分布的点云数据时可能会出现相邻点之间的关联性被高分辨率削弱的情况。为了弥补这一缺陷,在实际应用中我们通常采用IDISS(Inverse density importance sub-sampling)算法来实现次采样过程。该算法不仅能够同时保证均匀的空间分布又能维持数据随机特性,在提升模型泛化能力的同时其线性的复杂度(O(n))使得计算负担得以显著降低
在代码部分中开发了Tensorflow中的两个关键组件:flex-convolution层和flex-max-pooling层。
首先需要计算每个数据点对应的邻近点集,并采用高效的Kd-tree算法来实现这一过程。同时,在存储每个数据点的所有K邻近关系时,默认会使用索引列表(indices list)来记录这些关系。
ii. flex-convolution layer:采用传统的卷积核技术,在K近邻点的特征向量上进行处理,并能够借助并行计算技术实现加速;每个特征向量中包含有关因变量位置的信息
iii. flex-max-pooling层:在每个邻近点上执行传统max-pooling操作,在此过程中不包含传统降采样步骤。
iv. Sub-sampling:通过IDISS算法实现次采样,由于所有点集都是静止且已知的,在数据预处理阶段即可计算出邻近点索引。Upsampling则通过复制每个点的特征至更大的尺寸来完成。
网络架构

a为一个用于表示空间像素密度的系数,在当前层中所存储的空间点云数量等于原始点云数量乘以系数a。
df是特征长度,nf个输入特征,nc个种类。
k表示邻点数量。k = 8
上图中的绿色方块代表了点云的位置信息;红色方块代表了邻近点的信息;蓝色方块对应的是flex-convolution层;紫色部分是降采样层(flex-max-pool);每个降采样层不仅独立运行还通过跳跃连接与解码器部分紧密相连。
基础网络架构设计:基于Encoder-Decoder框架构建,在结构上与经典的2D U-Net模型具有相似之处。该模型其输出层采用softmax激活函数进行分类任务。
网络中放弃应用了一些传统方法:例如,在网络中采用Batch Normalization、基于加权软最大值的分类方法以及包括预处理与后处理操作在内的若干传统技术。
编码器层中采用了6个不同阶段的空间分辨率来处理多尺度空间信息,并且每个阶段均包含两个ResNet模块,并且这些模块还并包含一个1x1卷积层以及两组flex-convolution操作
实验结果
该网络在2D-3D-S数据集上的性能:当设置特征值为f=1时,在坐标向量(1,x,y,z)上达到了平均像素准确率(mPA)为0.31的结果;经过对每个坐标点进行归一化处理后,在这一指标上进一步提升至0.39;引入颜色信息后,在新的坐标向量(1,x,y,z,r,g,b)上达到了更高的平均像素准确率为0.50;然而,在beam、圆柱以及门等特定类别的检测精度仍有待提高;通过引入Post-processing处理使最终检测精度有所提高
