通信作者:
曹飞龙,博士,教授,主要研究方向为深度学习、图像处理等.E-mail:feilongcao@gmail.com.
作者简介:
芦新宇,硕士研究生,主要研究方向为深度学习、点云分析等.E-mail:wylxy328@163.com.
杨冰,博士,讲师,主要研究方向为深度学习、图像处理.E-mail:bingyang0517@163.com.
叶海良,博士,讲师,主要研究方向为深度学习、图像处理.E-mail:yhl575@163.com.
现阶段点云分类研究已被广泛应用于机器人操作、自主驾驶和虚拟现实等多个领域,提取既丰富又具有高判别能力的特征是3D点云分类的关键.为此,文中设计基于局部-非局部交互卷积的3D点云分类算法,改善点云的特征提取.首先,构造局部-非局部交互卷积模块,在获取局部相似特征和非局部相似特征的基础上,采用交互增强,缓解单个邻域在表示封闭区域时存在的冗余问题,增强网络的层次性和稳定性,同时也缓解网络的退化问题.然后,以该模块为基本单元构建卷积神经网络.最后,采用自适应特征融合,充分利用不同层次的特征,实现3D点云的分类.在ModelNet40、ScanObjectNN基准数据集上的实验表明,文中算法性能较优.
Corresponding author:
CAO Feilong, Ph.D., professor. His research interests include deep learning and image processing.
About Author:
LU Xinyu, master student. His research interests include deep learning and point cloud analysis.
YANG Bing, Ph.D., lecturer. His research interests include deep learning and image processing.
YE Hailiang, Ph.D., lecturer. His research interests include deep learning and image processing.
Now 3D point cloud classificaiton is widely applied in many domains, including robot operation, automous driving and virtual reality. Extracting rich features with high discrimination is the key to 3D point cloud classification. Therefore, an algorithm of 3D point cloud classification based on local-nonlocal interactive convolution is designed to improve the feature extraction of point cloud. Firstly, a local-nonlocal interactive convolution module is constructed. After obtaining local and nonlocal similar features, interactive enhancement is employed to alleviate the redundancy problem caused by a single neighborhood representing a closed region. Consequently, the hierarchy and stability of the network are enhanced and the degradation problem of the network is alleviated. Then, the convolution neural network is constructed with the module as the basic unit. Finally, adaptive feature fusion is adopted to make full use of different levels of features to realize 3D point cloud classification. Experimental results on two benchmark datasets, ModelNet40 and ScanObjectNN, show that the proposed method generates better performance.
随着三维传感器和采集技术的快速发展, 以及点云在机器人操作[1]、自主驾驶[2]和虚拟现实[3]等方向的广泛应用, 基于点云分析的各种任务(包括分类[4], 分割[5], 识别[6]和补全[7]等)已成为活跃的研究课题.在点云分析中, 点云分类是一项基本且具有挑战性的任务, 关键在于能否提取到丰富且具有较高判别能力的特征, 这也受到学者们的广泛关注.
事实上, 点云是由一组点构成, 每个点由三维坐标和可能的属性(如颜色和法线等)表示.然而, 由于点云不规则和无序的性质, 现阶段点云分析任务面临如下挑战.1)点云的性质导致常规的卷积神经网络(Convolutional Neural Network, CNN)无法直接对其进行处理.2)点云通常会经历较大的几何变换, 如何满足变换不变性对于处理和分析3D点云也尤为重要.
为了解决上述问题, 学者们提出许多有效方法, 主要分为如下4种.1)基于体素的方法.Maturana等[8]将3D点采样到体素网格中, 再使用3D CNN处理该网络.2)基于投影的方法.Su等[9]将点云投影成80个视图, 转换为规则数据, 再使用2D CNN进行处理.3)基于点的方法.Qi等[4]提出PointNet, 使用逐点多层感知器(Multi-layer Perceptron, MLP)和最大池化操作聚合全局信息, 执行分类任务, 但缺少局部信息.Qi等[5]又提出PointNet++, 针对缺少局部信息的问题应用分层结构, 采用k近邻算法(k-Nearest Neighbor, KNN)分组, 并在特征学习后紧跟着执行最大池化操作, 从而捕获局部区域信息.然而PointNet++仅将局部特征的最大值进行聚合, 未能充分利用局部区域内的信息.针对PointNet中缺少局部信息的问题, 侯向丹等[10]提出基于图卷积网络的三维点云分类分割模型, 融合邻域信息与单个点信息, 解决缺少局部信息的问题, 提高分类与分割的准确率.Xu等[11]提出SpiderCNN, Li等[12]提出PointCNN, 都是基于局部几何信息定义点云上的卷积运算, 而不是使用对称函数进行处理.4)基于图的方法.Simonovsky等[13]提出ECC(Edge-Condi-tioned Convolution), 在点云特征学习的过程中加入图方法, 有效处理非结构化数据.Wang等[14]提出DGCNN(Dynamic Graph CNN), 在保持排列不变性的同时捕获局部几何结构, 并使用每层特征空间中的KNN重构图像.梁振明等[15]提出基于多尺度的动态图卷积网络, 利用最远点采样方法和不同尺度的聚合方式, 降低模型的复杂度和参数量.杜子金等[16]提出基于残差边卷积的模块, 全面考虑点云的局部特征与全局特征的有机结合.
近年来, 人们对有效局部特征的学习也进行大量研究.众所周知, 目前较优的特征学习方法是围绕每个采样点查询局部组, 再构建基于图的学习方式或定义卷积运算, 其中也综合考虑全局结构和局部结构.尽管各种特征学习方法均已取得较优的分类性能, 但它们大多只考虑相邻区域中相似结构点的局部信息交互, 在交互中仅使用最大池化操作保留单一特征.这也说明一个问题, 即在传统方法中忽视远距离相似结构点中的非局部几何信息, 而融合整体的几何信息可有效为分类任务提供辨别线索.
为了解决此问题, 受几何共享网络[17]的启发, 本文提出基于局部-非局部交互卷积的3D点云分类算法.首先, 设计局部-非局部交互卷积模块, 通过两个分支分别捕获采样点的局部特征和非局部特征.同时, 为了缓解单分支邻域在表示封闭区域时存在的冗余问题, 稳定点在高维特征下的泛化能力, 将两个分支进行不同特征的交互增强.再者, 加入残差连接[18], 在层与层之间传输信息, 进行相同特征的交互增强, 训练更深入稳定的网络, 缓解因网络层数加深而产生的网络退化问题.此外, 考虑到原始数据的全局特征在学习过程中会受到损害, 本文针对每个点自适应地融合多层次特征, 获得一个全面表示, 完成点云的分类任务.
本文提出局部-非局部卷积模块为基本单元构成的卷积神经网络, 框架如图1所示.
网络首先通过一个特征图卷积及四个局部-非局部卷积, 分层次地进行特征提取, 并将提取特征记为{Ft
Fout=
其中MLP(· )表示多层感知器.对融合后的特征Fout进行一次MLP, 获得一个全局特征表示:
Fglobal=MLP(Fout).
然后对得到的Fglobal进行最大池化(Max Pooling, Max)和平均池化(Mean Pooling, Mean)操作, 并拼接池化操作后的两个高维特征, 得到最终的形状描述子:
fglobal=[Max(Fglobal)‖ Mean(Fglobal)],
其中‖ 表示矢量拼接操作.最后, 将fglobal输入全连接网络中, 预测最终的分类得分.
给定一个具有N个点的点云X, 记为
X={xi
其中每个点含三维坐标pi=(xi, yi, zi), 并将
F={fi
记为点云中每个点的特征, 其中C为特征维度.对于每个点, 首先按照输入的坐标使用KNN寻找邻域点, 计算两点的距离:
DistanceX(pi, pj)=‖ pi-pj‖ ,
其中‖ · ‖ 表示欧几里得范数.至此可得到坐标空间下每个中心点pi的k个最近邻点的索引idxX.再按照索引idxX找到对应的k个点的特征(f
Mi=(
然后, 根据几何共享网络中的特征图卷积构造3D结构张量
Ci=Mi
对Ci进行特征值分解, 得
Ci=Qiλ i
其中, λ i为对应的特征值, Qi为特征值对应的特征向量.对于得到的特征值, 按从大到小的顺序排列为
DistanceE(pi, pj)=‖ λ i-λ j‖ .
同样地, 也可得到一个关于特征值空间的索引值idxE及对应的特征(f
F1=MLP([pi‖ λ i‖ Re(Qi)]),
其中Re(· )表示Reshape维度打平操作.
由1.2节可知, 经过特征图卷积后得到输入特征F1、坐标空间的索引idxX和特征值空间的索引idxE.如图2所示, 在局部-非局部卷积模块中, 对于第l层中任一个点pi, 始终按照两种索引, 通过两个分支分别对其特征进行拼接, 得到局部特征{H
H
其中, l=2, 3, 4, 5, 表示网络层数.
为了提取更丰富的特征, 传统方法通常会加深网络层数.然而, 简单的堆叠卷积层可能会产生网络退化问题.随着网络加深, 特征的学习也容易出现冗余问题.为了缓解上述问题, 本文采用残差连接[18]对同种特征在相邻层之间传输信息进行交互作用, 得到局部残差特征{
其中+表示逐点相加.当且仅当l=2时,
值得注意地是, 不同于DGCNN[14]等在卷积网络中动态更新图结构, 即每层都生成新的索引构造新图, 但又考虑到每个卷积层都重新构图的复杂性, 本文在保留所有输入点的前提下仅构图一次, 并在之后始终使用已得到两种索引构图, 通过加深网络的方法达到尽可能让每个点包含更多其余点的特征信息的目的, 甚至效果更优.
然而, 此做法可能不足以表示每个邻域, 原因如下:1)三维空间中固定约束下的特征学习会削弱点在高维特征空间中的泛化能力; 2)邻域在表示封闭区域时可能存在冗余问题.
为了解决这些问题并增强特征的泛化能力, 本文通过两分支的交互作用增强每个分支中的特征.具体而言, 首先根据非局部残差特征和局部索引点特征学习得到局部增强特征
并补充到局部残差特征中, 得到局部交互特征{
再根据局部交互特征和非局部索引点特征学习得到非局部增强特征
并补充到非局部残差特征中作为非局部交互特征{
最后, 拼接两组交互后的特征, 实现特征融合.但此时特征表示的依旧是整个邻域的特征, 所以本文使用MLP和Max操作, 将邻域点的特征聚合到中心点上, 同时得到第l层的输出, 作为第l+1层的输入:
Fl=
在深度学习中, 低层次的特征具有较强的几何信息, 而高层次的特征具有较强的语义信息, 较好地融合不同层次的特征, 可获得更丰富且更具有区分度的特征, 进一步提高网络的分类性能.矢量拼接是一种经典的特征融合方法, 但忽略不同层次特征的重要性区别.为了更合理地融合不同层次的特征, 本文设计自适应特征融合方法, 用于点云分类.首先分别为不同层次的特征分配初始影响权重, 然后自适应地调整权重, 使各层次特征可得到更有效的融合, 具体做法如下.
经过之前的操作, 网络通过卷积模块共输出5组特征:F1, F2, F3, F4, F5, 并且具有不同的通道维度.
为了实现多层次特征融合, 首先通过MLP操作将5个不同维度的特征映射到同一通道维度(128)以便于逐点相加.再给定任意权重向量ω ={ω t
其中ω 在训练过程中通过梯度反向传播算法学习.最后, 将权重与对应特征相乘, 得到融合特征:
Fout=
在训练阶段, 本文使用与DGCNN[14]相同的训练策略, 基于标签平滑策略(平滑因子为0.2), 使用交叉熵损失函数计算损失, 并使用整体精度(Overall Accuracy, OA)和类平均精度(mean Accu-racy, mAcc)作为分类的评价指标.
在NVIDIA GeForce RTX 2080Ti GPU上进行实验, 并使用随机梯度下降(Stochastic Gradient De-scent, SGD)优化器进行优化.局部-非局部交互卷积神经网络各层中参数的尺寸如表1所示.训练轮数为500轮, 初始学习率为0.1, 随后通过余弦退火函数衰减到0.001, 批量大小为12, 随机种子数为1, 动量系数为0.9.
本文选择ModelNet40[19]、ScanObjectNN[20]数据集进行实验.ModelNet40数据集是3D形状分类任务中常用的基准数据集, 主要由40个类别的12 311个CAD生成网格组成, 其中9 843个用于训练, 其余2 468个用于测试.此外, 从网格表面均匀采样相应的数据点, 再通过移动到原点并缩放到单位球体进行进一步预处理.对于文中每个点云样本, 只输入1 024个点的三维坐标.
ScanObjectNN数据集是一个新发布的现实世界对象数据集, 包含15个类别约15 000个对象.尽管类别少于ModelNet40数据集, 但由于复杂的背景、缺失的部分和各种变形, 比合成的同类数据集更具有实际挑战性.
为了在训练阶段增加样本数量并提高样本的多样性, 本文采用如下两种数据增强方式:1)在[-0.8, 1.25]范围内对已有数据进行随机各向异性缩放; 2)对已有数据增加服从N(0, 0.01)分布的随机抖动.
本文选取如下对比方法:PointNet[4]、PointNet++[5]、SpiderCNN[11]、PointCNN[12]、ECC[13]、DGCNN[14]、SO-Net(Self-Organizing Network)[21]、Kd-Network[22]、ConvPoint(Continuous Convolutions for Point Cloud Processing)[23]、PCNN(Point CNN)[24]、PointConv[25]、A-CNN(Annularly CNN)[26]、RS-CNN(Relation-Shape CNN)[27]、GAPointNet(Graph Attention Based Point Neural Network for Exploiting Local Feature of Point Cloud)[28]、DRNet(Dense-Resolution Network)[29]、PointASNL(Robust Point Clouds Processing Using Nonlocal Neural Networks with Adaptive Samp-ling)[30]、Geo-CNN(Geometric-Induced CNN)[31]、3DmFV(3D Modified Fisher Vector)[32]、PointGLR(Point Global-Local-Bidirectional Reasoning)[33].
各方法在ModelNet40、ScanObjectNN数据集上的分类精度如表2和表3所示, 表中黑体数字表示最优结果.
由表2可看出, 在ModelNet40数据集上, 本文算法的OA值达到93.4%, 超过大多数方法或与其持平, mAcc值处于对比算法中的次优水平.同时值得注意地是, 本文算法输入仅为1 024个点的坐标信息, 而部分持平或被超越的方法采用输入更多的点数甚至选择输入更多的信息.这在一定程度上也体现本文算法优势.
由表3可看出, 在ScanObjectNN数据集上, 本文算法在采用相同输入格式和点数的情况下, mAcc值和OA值分别超出次优方法0.8%和1.3%, 大幅提高点云分类的性能.
除了对比分类精度之外, 本文也进行复杂性分析.为了公平起见, 在相同的条件(NVIDIA GeForce RTX 2080Ti)下进行测试.各方法的性能对比如表4所示.由表可看出, 本文算法在参数量上处于中等偏高的水平.虽然训练耗时相对较多, 但推理速度较快, 精度也较高.总之, 本文算法在复杂度和性能之间实现良好的权衡.
本文采用T-SNE(T-distributed Stochastic Neigh-bor Embedding)[34]对网络得到的部分形状描述子进行可视化, 更好地展示本文算法得到的形状描述子具有的判别能力, 具体如图3所示.
由图3可看出, 本文算法得到的形状描述子具有良好的判别能力, 能有效地对不同类别进行分类, 即同一类别之间的距离较小, 不同类别之间的距离较大.这也从一定程度上体现局部-非局部交互卷积模块可提取到更丰富且具有更深层次结构的形状特征.
本节主要讨论局部-非局部卷积神经网络中不同组件对分类性能的影响, 结果如表5和表6所示, 在表中, -表示网络中不添加该组件, 表示网络中使用该组件.
由表5可看出, 单独使用局部特征和非局部特征的效果并不如两者结合使用后理想, 而两个不同特征分支之间的交互也提高性能.由表6可看出, 单独使用残差连接和自适应融合对网络的分类性能都有所提升, 同时使用时效果更佳.这也证实本文算法中各组件的可行性和优势性.
为了降低超参数不可控的影响, 本文网络中仅有两个超参数:聚合邻域点的数量k和卷积模块数量t.本节通过两组对比实验, 分析k、t对分类性能的影响, 结果如表7和表8所示.
由表7可见, 在一定范围内, k对性能的影响作用并不大, 即网络本身提取的结构特征已较充分.同时也证实:当k过小时, 会导致特征提取不充分, 分类结果显著降低; 当k过大时, 也会由于信息冗余使分类性能有所降低.因此, 当k=20时, 本文算法的分类性能达到最优.
由表8可知, 只使用一次卷积模块时分类精度最低, 这主要是因为在点云的每个顶点周围只考虑一个小的感受野.所以如果不考虑多个局部-非局部交互卷积模块, 特征信息将无法聚合更大范围的信息, 感受野也会受限.同时可看到, 当局部-非局部交互卷积模块的数量逐渐增加时, 精度会先增加后降低, 并且在t=4时精度达到最优.这可能是因为神经网络太深时, 训练难度会大幅增加, 而当层数特别深时, 网络需要的内存和时间都会大幅增加.
本文提出基于局部-非局部交互卷积的3D点云分类算法.算法关键在于构造局部-非局部交互卷积模块, 通过两个分支分别捕获采样点的局部特征和非局部特征, 并对这两个分支进行不同特征的交互增强, 有效缓解单分支邻域在表示封闭区域时存在的冗余问题, 稳定点在高维特征下的泛化能力.同时, 本文算法在层与层之间加入残差连接, 作为同一分支前后的交互作用, 在改善信息传递的同时能训练更深入、稳定的网络.此外, 自适应特征融合方法合理有效地融合不同层次的特征, 减缓全局特征在学习过程中受到的损害.最后通过最大池化和平均池化操作获得形状描述子, 用于分类任务.大量实验验证本文算法的优越性.本文也通过T-SNE对得到的形状描述子进行可视化, 验证分类性能.
总之, 本文算法具有较优的分类性能, 但在个别种类上的分类性能还较差, 在具有背景的现实数据集上分类精度略有不足, 主要原因是涉及类别的数量较少.所以今后可设计合理的损失, 在保证大多数类别分类能力的前提下, 增强数量较少类别的分类能力.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|
[21] |
|
[22] |
|
[23] |
|
[24] |
|
[25] |
|
[26] |
|
[27] |
|
[28] |
|
[29] |
|
[30] |
|
[31] |
|
[32] |
|
[33] |
|
[34] |
|