基于亲疏度矩阵的点云置换不变特征提取方法

2022-06-16 05:24许嘉麟张蕊华
计算机工程 2022年6期
关键词:邻域准确率卷积

许嘉麟,姚 双,张蕊华,许 浩,沈 洋,

(1.宁波大学 信息科学与工程学院,浙江 宁波 325211;2.丽水学院 工学院,浙江 丽水 323000)

0 概述

三维点云模型研究是计算机图形学、计算机视觉与模式识别领域共同关注的热点话题之一。二维图像丢失了现实世界中2 个或多个物体间的深度信息,不适用于需要深度信息和定位信息的领域,如机器人、自主驾驶等。为了用深度信息捕捉三维世界,早期常见的方法是使用立体视觉技术,即用2 个或更多校准的数码相机来提取三维信息。点云是围绕场景中物体曲面采样的三维数据点集,可以由点的X、Y、Z坐标表示,也可以加入诸如曲面法线、RGB 值等附加特性,可见点云是一种用于表示三维几何体的基础数据结构。

保证特征旋转不变是计算机视觉与模式识别领域的重要技术之一,例如在处理图像时提取的特征要保证旋转不变。不同于图像的二维平面结构,点云的结构为三维空间,进行点云数据处理要保证其绕X、Y、Z这3 个坐标轴旋转时所提取的特征不变,因此点云空间旋转不变性的实现比二维图像实现旋转不变性更具挑战。点云数据是一个包含三维坐标信息的无序点集合,对数据顺序不敏感,相同的一个点云数据模型完全可以有多种不同的存储顺序,这意味着处理点云数据时需要保持数据的不同排列不变性,即点云的置换不变性。处理点云无序性的一般方法包括用对称函数来保证置换不变性、将无序的数据进行重新排序及对数据的所有排列进行数据增强后使用RNN 模型。

本文提出一种基于亲疏度矩阵的点云置换不变特征提取方法,在M-Conv 模型第1 层输入时将点坐标映射到曲率特征空间以实现空间旋转不变性。基于欧式内积构建K邻域内的亲疏度矩阵,以反映点之间的亲疏关系。根据亲疏度矩阵计算得到变换矩阵,对输入的数据进行变换以实现置换不变性。此外,采用代数计算的方式获取变换矩阵,提高模型训练的效率,并在常规卷积神经网络的基础上,设计一套用于处理点云空间旋转不变性和置换不变性问题的框架。

1 相关工作

针对点云空间旋转不变性和置换不变性问题,研究人员已提出诸多方法,总体而言可以分为基于多视图的方法[1-3]、基于体素的方法[4-5]和基于点的深度学习方法。基于多视图的方法将点云投影到多视图表示来学习特征,基于体素的方法将点云放入体素网格中进行处理,但这些方法的计算量和内存占用非常庞大,无法很好地应用到密集的3D 数据中。基于点的深度学习方法包括点对点MLP 网络[6-8]、基于卷积的网络[9-11]、基于图的网络[12-13]及基于数据索引的网络[14-15],这些方法会对点进行特征学习。除此之外,还有一些方法如基于径向基函数的DeepRBFNet[16]、将胶囊网络引入到点云中的3DPointCapsNet[17]、使用自注意力模块的RMFPDNN[18]等。

1.1 点云空间旋转不变性

针对点云空间旋转不变性问题,PointNet[6]通过训练T-Net 得到K×K矩阵,并对输入进行空间对齐以保证空间旋转不变性。文献[9]提出3D 球面卷积神经网络Spherical CNN 来学习3D 形状的旋转不变性,其以多值球面函数为输入,通过在球形谐波域中使用锚点对频谱进行参数化来获得局部卷积滤波器。借鉴于Spherical CNN,文献[10]介绍了构建球面CNN 的基本要素,其卷积定义为在球形互相关上使用通用快速傅里叶变换算法实现。SRINet[19]首先投影1 个点云以获得旋转不变表示,然后利用基于PointNet 的主干来提取全局特征,并利用基于图的聚合来提取局部特征,但先进行投影的方式会大幅增加计算量。文献[20]提出张量场网络,将点卷积运算定义为可学习的径向函数和球谐函数的乘积,其局部等价于点的3D 旋转、平移和置换。SPHNet[21]通过在体积函数的卷积过程中合并球形谐波核来实现旋转不变性。ConvPoint[22]将卷积核分为空间和特征两部分,从单位球体中随机选择空间部分的位置,并使其通过简单的MLP 学习加权函数。这些基于球形卷积的方法同样会增加计算量,其学习方式也无法很好地被应用于非监督性方法中。本文方法将点坐标映射到曲率特征空间,以实现空间旋转不变性。

1.2 点云置换不变性

关于如何解决点云置换不变性问题,PointNet 使用最大池化对称函数来提取数据的特征,但基于最大池化的方法忽略了点之间的局部结构信息。QI等[7]在PointNet 的基础上提出层次网络PointNet++来捕获每个点附近的几何结构,取得了更好的结果。ZAHEER 等[8]从理论上证明实现置换不变性的关键是对所有表示求和的应用进行非线性变换,他们还为包括形状分类在内的各种应用设计了一种基本架构DeepSets。PointCNN[11]通过学习的方式获得一个变换矩阵,对无序的数据进行变换使之转变为有序输入。文献[17]提出一种无监督的自动编码器3DPointCapsNet 用于3D 点云的通用表示,使用逐点MLP 和卷积层学习点独立特征,并使用多个最大池化层提取全局特征。文献[23]提出的RS-CNN 以RS-Conv 为核心层,将某个点周围的局部点子集作为输入,然后通过学习映射并使用MLP 进行卷积,将低级关系(例如欧氏距离和相对位置)转换为局部子集中点之间的高级关系来获得变换矩阵。PointConv[24]中的卷积定义为蒙特卡洛估计,这是一个关于重要性采样的连续3D 卷积,卷积核由权重函数(通过MLP 层学习)和密度函数(通过核化密度估计和MLP 层学习)组成。WU 等[25]提出的RCNet 利用标准的RNN 和2D CNN 来构建用于3D 点云处理的置换不变网络,先将点云划分为平行波束,并沿特定维度进行分类,然后将每个波束送入共享的RNN中进行处理,再将所学习的特征进一步反馈并送到2D CNN 中进行分层特征聚合。本文方法将基于点与点之间的欧式内积构建亲疏度矩阵,计算并得到相应的变换矩阵,对输入进行变换,使之从无序状态转变为有序状态。

2 基于亲疏度矩阵的M-Conv

本文将基于点与点之间的欧式内积构建K邻域内的亲疏度矩阵,并计算亲疏度矩阵特征值,对其进行排序后将对应的特征向量矩阵作为变换矩阵M,对输入的数据进行变换使无序输入转变为有序输入。此外,进行M-Conv 操作,即通过卷积操作提取置换不变的特征,通过代数计算获取变换矩阵,减少额外的参数,并加快模型的迭代及训练。

2.1 分层卷积

本文方法的输入是一系列点与特征的集合F1={(p1,i,f1,i):i=1,2,…,N1},其中:{p1,i}是点的集合;{f1,i:f1,i∈C1}是每个点对应的特征;N1是点与对应特征数量;C1为特征通道数量。和基于网格卷积神经网络相同,本文对F1使用M-Conv 操作获得更高级的表示:F2={(p2,i,f2,i):f2,i∈C2,i=1,2,…,N2},其中{p2,i}是{p1,i}的一系列代表点,F2与F1相比,代表点数量减少,但是特征通道数量增大,即N2C1。M-Conv的应用是一个递推的过程,能够使每层输入在被卷积之前先进行变换以实现置换不变性,即:

其中:Q是卷积核;M是变换矩阵。输入的点与特征的集合被M-Conv 处理,点的数量变少(9→5→2),但是特征却越来越丰富(如图1 所示)。

图1 M-Conv 分层卷积Fig.1 Hierarchical convolution of M-Conv

通过M-Conv 的处理,代表点{p2,i}成为系列信息更丰富的点。在本文实验中,它们通过最远点采样从{p1,i}中采样而来,该采样方法能使采样点均匀分布在数据模型的各个角落,以保证每次M-Conv 操作均能获取充足的特征信息。

2.2 亲疏度矩阵

为保证置换不变性的实现,本文通过找出与代表点最近的K个点形成K邻域,根据K邻域内点的相对关系构建1 个K×K的亲疏度矩阵L,再计算亲疏度矩阵L的特征值,对其进行排序后将对应的特征向量矩阵作为变换矩阵,并对输入的数据进行变换来解决置换不变性问题。在亲疏度矩阵L的构建过程中,本文采用两点之间的欧氏内积来反映点之间的亲疏关系,定义亲疏度矩阵L的表达式如式(2)所示:

其中:p1,p2,…,pK是K邻域中的各个点;*代表内积运算;K是邻域大小。可以看到,亲疏度矩阵L依赖于点之间的内积关系,与各点之间的位置状态没有关系,因此亲疏度矩阵L是空间旋转不变的。

2.3 变换矩阵

交换点与点之间的存储顺序是点云无序性的重要体现,但并不改变其本质归属。2.2 节基于欧式内积构建了K×K的亲疏度矩阵L,并取亲疏度矩阵L的绝对值得到矩阵L',以此来计算特征值与特征向量。特征值及特征向量的计算式如式(3)所示:

计算矩阵L'的K个特征值(λ1,λ2,…,λK)及对应的K个特征向量(x1,x2,…,xK),将特征值从小到大进行排序,同时将每个特征值对应的特征向量按对应顺序排列组成变换矩阵M。例如某三阶矩阵L'的3 个特征值分别为λ1、λ2、λ3,其对应的特征向量为x1、x2、x3,且λ2<λ3<λ1,则对应的特征向量组合而成的变换矩阵为:

根据亲疏度矩阵计算得到的变换矩阵M是空间旋转不变的,同时也是置换不变的,证明如下:

在式(2)中交换pi与pj的位置顺序,亲疏度矩阵L变为L1,如式(5)所示:

交换L1的第i行和第j行得到,交换的第i列和第j列得到,且有,即:

L1可由矩阵初等变换转变为L,则L1与L的特征值与特征向量相同,因此在K邻域内交换点之间的顺序,始终会得到相同的变换矩阵M。对特征值按照从小到大的顺序进行排序,并将对应的特征向量组成变换矩阵M,在卷积之前对输入数据进行变换,如式(1)所示,以此来获得置换不变的特征。

2.4 M-Conv 操作

M-Conv 是本文处理点云数据方法的核心操作。本小节将介绍M-Conv 操作的整体算法流程,并解释其基本原理。

在算法1 中:Q是卷积核;p是代表点;P是无序的点集;Fp是P对应的特征集合。和基于网格的卷积神经网络类似,为利用空间局部相关性,在局部区域内进行M-Conv 操作。由于其输出的特征与代表点{p2,i}相关联,M-Conv 将它们在点{p1,i}(即P)中的邻域点及相关特征作为输入进行卷积操作。代表点{p2,i}是从上一层的代表点{p1,i}采样而来,以{p2,i}中的每一个点为中心,找出其在{p1,i}中最邻近的K个点形成K邻域,在卷积K邻域内的点及相关特征中得到输出,采用一般化的公式来表示M-Conv 操作,如式(7)所示:

进一步可得:

其中:MLPα()是一个多层感知机,与PointCNN 类似,将多层感知机应用于每个点;Cal_L()是构建亲疏度矩阵的操作;Cal_M()是计算变换矩阵的操作。值得注意的是,M-Conv 的第1 层输入与后面不相同,因为第1 层无法拼接来自上一层的特征。为保证点云的空间旋转不变性,第1 层输入时将点坐标映射到曲率特征空间,且不用变换矩阵M对其进行变换,第1 层的M-Conv 操作可以表示为:

其中:Cal_C()是将点坐标映射到曲率特征空间的操作,详细过程请参考2.6 节细节补充。

算法1 的第3 行~第5 行是M-Conv 的关键操作,能够保证其实现置换不变的特性。M-Conv 是在局部区域工作的,其输出不需要依赖于p及邻域点的绝对位置,仅依赖于其相对位置。图2 所示为局部坐标系建立,本文将局部坐标系的原点定位在每个代表点处,将邻域点的信息汇聚到代表点处,其局部坐标及相关特征定义了代表点的输出特征。

图2 局部坐标系建立Fig.2 Establishment of local coordinate system

本文参考PointCNN,通过逐点MLPα()将点坐标提升为特征要素。不同的是,PointCNN 通过监督学习的方式获得变换矩阵,并对输入进行变换。而本文方法通过M-Conv 操作完成这一过程,M-Conv会根据输入点的顺序计算并得到变换矩阵M及排列Fβ,将无序的数据进行变换从而解决点云置换不变性问题。对于没有任何附加特征的输入(即Fp为空),为保证实现点云空间旋转不变性,在第1 层输入时将点坐标映射到曲率特征空间,仅使用MLPα()对其进行处理且不拼接来自上一层的特征,如式(9)所示。因此,本文的方法可以稳健有效地处理附带有或不附带有特征的点云。关于MLPα()及Cal_C(),可参考2.6 节的细节补充。

2.5 M-Conv 网络模型结构

基于网格的卷积神经网络的Conv 层和M-Conv层在特征提取的局部区域(K×K的局部块和代表点周围的K邻域)以及局部区域特征学习方式(Conv 和M-Conv)2 个方面有所不同。总体来说,使用M-Conv 搭建深度网络的过程与使用卷积神经网络搭建网络模型的过程非常相似。

图3 所示为一个简单的由M-Conv 组成的网络模型,其中:H代表点数量;C是输出特征通道数量。该模型能够将输入点(附带有或不附带有特征)转换为更少的代表点,每个代表点都将聚合来自上一层自身邻域点的特征,因此自身所附带的特征会变得更加丰富,感受野也逐步扩大。由最后一层M-Conv 处理得到的特征F依旧是无序的,本文方法将对其使用变换矩阵M进行变换,使之转变为有序状态。随后连接完全连接层,然后是计算损失并优化,用于训练网络模型。在完全连接层之后,应用Dropout 层以减少过拟合现象的产生。测试时,来自多个代表点的输出在softmax 之前被平均化,以进行稳定的预测,该设计类似于Network in Network[26]。

图3 M-Conv 网络模型的结构Fig.3 M-Conv network model structure

2.6 细节补充

在训练模型时,对于特定的代表点,以相同的顺序连续使用相同的一组邻近点显然没有任何好处,因此随机采样并打乱点的输入顺序,代表点的邻近点集和顺序就会因批次而异,如此可以加强模型稳定性。实验发现,经最后一层M-Conv 处理所得到的特征依旧是无序的,因此连接完全连接层之前,将最后一层的特征进行变换,可以得到更好的结果。算法1 的第1 行实现了MLPα(),它由2 个完全连接层组成,每一个完全连接层后面都连接ELU 激活函数和批归一化(Batch Normalization,BN),即FC(3,Cα)→ELU→BN→FC(Cα,Cα)→ELU→BN。式(9)实现了Cal_C(),具体步骤如下:

1)在代表点K邻域内组成K×3 的矩阵A;

2)对矩阵A进行中心化,减去每一列的均值得到矩阵;

4)计算协方差矩阵C的特征根。

使用MLPα()对协方差矩阵C的特征根进行处理,并获取特征要素,将其作为第1 层的输入,使点坐标映射到曲率特征空间中实现空间旋转不变性。

3 实验结果与分析

3.1 ModelNet40 数据集分类实验

经过实验研究,得到M-Conv 模型最优参数如表1 所示,其中K、P、C分别表示邻域大小、代表点数量及输出特征通道数量。本文采用表1 所示的M-Conv 最优参数模型结构,在公开的数据集ModelNet40 上进行分类实验,并与其他方法所得结果进行比较。ModelNet40 数据集是一个包含40 个类别三维点云模型数据集,共9 840 个训练模型,2 468 个测试模型。实验平台为搭载GeForce RTX 3090 GPU 的服务器,配置环境为Python3.8 及Tensorflow2.4-GPU。

表1 M-Conv 最优参数模型结构Table 1 M-Conv optimal parameter model structure

使用ModelNet40 数据集及M-Conv 最优参数模型结构进行实验,使用总体准确率和类别平均准确率两大指标进行表征,结果如表2 所示,本文方法在这2 个指标上均有一定提高。总体准确率虽只略高于PointCNN 及RS-CNN,但与其他方法相比有较大提升。在类别平均准确率的比较上,本文方法有明显提升,可见该方法在每个类别的识别上均具有较强的能力,针对不同类别物体所提取的特征更准确,能更好地区分与识别不同物体所带有的不同特征信息。

表2 ModelNet40 数据集实验结果对比Table 2 Comparison of experimental results of ModelNet40 dataset %

与其他现有的方法相比,本文方法具有其独特的优势。现有方法在变换矩阵的获取上一般采用监督学习的方式,例如PointCNN、RS-CNN 等,其采用学习的方式得到变换矩阵,因此产生额外的参数,并占用大量资源如CPU、GPU 等。本文方法不需要通过学习获得变换矩阵,而是直接根据所构建的亲疏度矩阵计算得到所需要的变换矩阵,这种方式不会产生额外的参数,因此在同等情况下,本文方法的参数更少,占用资源更少,训练更快捷迅速且达到相同准确率所需的迭代次数更少。设置数据集批次大小128,在GeForceRTX 3090 GPU 上进行实验时,本文的方法训练一个批次只需0.33 s,明显快于PointCNN 训练一个批次所需的0.43 s。

3.2 MNIST 和CIFAR10 数据集实验

为进一步证明M-Conv 方法的有效性及稳定性,本文在MNIST 和CIFAR10 数据集上进行实验验证,实验结果如表3 所示。在总体准确率的比较上,本文方法展现出了与其他方法相当的能力,可见该方法不仅适用于点云的识别与分类,而且适用于图像处理。

表3 MNIST 和CIFAR10 数据集实验结果比较Table 3 Comparison of experimental results between MNIST and CIFAR10 datasets %

3.3 对比实验研究

3.3.1 参数K,P,C对实验结果的影响

本文旨在保持网络结构深度的同时,使更深的代表点能表达整个形状的更大部分。为探究各参数对实验结果造成的影响,本文在ModelNet40 数据集上进行了一系列对比实验。

保持M-Conv 模型前5 层最优参数值及第6 层P、C值不变,设置第6 层的K值分别为8、10、12、14、16 进行对比实验,结果如图4 所示。研究发现,当第6 层K值为12 时会取得最好的实验结果。当K值选取小于12 的值时,总体准确率和类别平均准确率均呈现上升趋势,当K值选取大于12 的值时,总体准确率和类别平均准确率均呈现下降趋势。因此最终选取12 作为本层K值,前5 层K值亦通过此方法得出,第1 层~第5 层的K值分别为8、16、8、8、8。

图4 M-Conv 模型第6 层参数K 值对实验结果的影响Fig.4 Influence of the K value of the sixth layer of M-Conv model on experimental results

保持M-Conv 模型前5 层最优参数值及第6 层K、C值不变,设置第6 层P值分别为12、18、24、30、36进行对比实验,结果如图5 所示。研究发现,当第6 层P值为24 时会取得最好的实验结果。当P值选取小于24 的值时,总体准确率呈现上升趋势,类别平均准确率在P值为12~18 时呈下降趋势,在P值为18~24 处呈上升趋势,但总体呈现上升趋势。当P值选取小于24 的值时,总体准确率和类别平均准确率均呈现下降趋势。最终选取24 作为本层P值,前5 层的P值亦通过此方法得出,第1 层~第5 层的P值分别为1 024、512、256、128、72。

图5 M-Conv 模型第6 层参数P 值对实验结果的影响Fig.5 Influence of the P value of the sixth layer of M-Conv model on experimental results

保持M-Conv 模型前5 层最优参数值及第6 层K、P值不变,设置第6 层的C值分别为384×3、448×3、512×3、576×3、640×3 进行对比实验,结果如图6 所示。研究发现,当第6 层的C值为512×3 时会取得最好的实验结果。当C值选取小于512×3 的值时,总体准确率和类别平均准确率均呈现上升趋势;当C值选取大于512×3 的值时,总体准确率呈现下降趋势,类别平均准确率在576×3~640×3 处略微上升,但总体呈现下降趋势。最终选取512×3作为本层C值,前5层的C值亦通过此方法得出,第1 层~第5 层的C值分别为16×3、64×3、96×3、128×3、256×3。

图6 M-Conv 模型第6 层参数C 值对实验结果的影响Fig.6 Influence of the C value of the sixth layer of M-Conv model on experimental results

3.3.2 模型调整

为解决点云空间旋转不变的问题,本文方法在第1 层输入时将点坐标映射到曲率特征空间,这会比单纯地将X、Y、Z坐标作为输入更有效。最后一层M-Conv 处理所得到的特征依旧是无序的,现有的方法不会在连接完全连接层之前将卷积得到的特征进行变换,而本文方法在连接完全连接层之前会对最后一层的特征再做一次变换,使之由无序状态转变为有序状态。表4 所示为模型调整实验结果,表4 中的M代表输入时将点坐标映射到曲率特征空间,X代表输入时使用点云三维坐标,T代表对最后一层M-Conv 处理后得到的特征进行变换。在使用本文核心方法M-Conv 的基础上,在输入时将点坐标映射到曲率特征空间,并对最后一层M-Conv 处理得到的特征进行变换,以取得更好的效果。若直接将点云X、Y、Z坐标作为输入,总体准确率和类别平均准确率均有小幅下降。若输入时将点坐标映射到曲率特征空间,但不对最后一层M-Conv 处理得到的特征进行变换,总体准确率和类别平均准确率均有较大幅度的下降,类别平均准确率更是下降1 个百分点以上,可见对最后一层的特征进行变换可以使准确率得到有效提升。

表4 模型调整实验结果Table 4 Experimental results of model adjustment %

3.4 ShapeNet 数据集分割实验

零部件分割是点云形状分析中一项具有挑战性的任务,为验证M-Conv 模型针对分割任务的有效性及可行性,本文在ShapeNet 数据集上进行了分割实验。ShapeNet 数据集是点云零部件分割数据集,包含16 个类别和50 个分割实例,每个对象有2~6 个零部件标签,例如飞机的机翼。在16 881 个点云模型中,将14 007 个模型用于训练,另外2 874 个模型用于测试。

使用ShapeNet 数据集进行零部件分割实验,结果如表5 所示,其中IoU 代表总体交并比。由表5 可知,M-Conv 模型的实验结果与其他方法的水平相当,甚至在某些类别上实现了超越。表5 列举了每个类别的交并比,M-Conv 模型在帽子、耳机、刀、电脑、杯子、火箭及滑板7 个类别上均取得了最佳结果。图7 展示了上述7 个类别的分割效果,其中第1行为M-Conv 模型分割预测结果的可视化图,第2 行为真实结果可视化图

表5 ShapeNet 数据集实验结果对比Table 5 Comparison of experimental results of ShapeNet dataset %

图7 ShapeNet 数据集分割实例Fig.7 ShapeNet dataset segmentation example

3.5 M-Conv 模型复杂度

表6 总结了M-Conv 模型的时间复杂度和空间复杂度。M-Conv 模型的参数数量略多于其他方法,但浮点运算数指标远胜于其他方法,展示了其巨大的优势及潜力。

表6 不同方法的复杂度对比Table 6 Complexity comparison of different methods

4 结束语

本文提出一种基于卷积神经网络的模型,利用点云数据的空间局部相关性,将点云坐标映射到曲率特征空间以提取旋转不变的特征。使用K邻域内的点集合构建基于欧式内积的亲疏度矩阵,对亲疏度矩阵特征值进行排序后,将对应的特征向量组成变换矩阵,从而对特征进行变换,以实现置换不变性。实验结果表明,该方法在分类任务和分割任务上均取得了较好的结果。但该方法在邻域点的选择上采用了KNN 算法,并不能很好地计算三维物体表面点与点之间的真实距离。下一步考虑把一些在几何处理上表现良好的方法如Deep Points[28]、Deep Geodesic Networks[29]等与本文方法相结合,并在邻域点的选择上进行优化,从而得到更好的分类及分割效果。

猜你喜欢
邻域准确率卷积
基于混合变邻域的自动化滴灌轮灌分组算法
基于3D-Winograd的快速卷积算法设计及FPGA实现
含例邻域逻辑的萨奎斯特对应理论
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察
卷积神经网络的分析与设计
从滤波器理解卷积
尖锐特征曲面点云模型各向异性邻域搜索