三维点云具有非常强的空间表达能力,完美保留了原始空间几何结构,能够很好地刻画物体的表面特征及深度信息,但同时也具有空间分布不均,数据散乱无序的特点,给三维点云数据的处理带来一定挑战。三维点云分类是重要的研究方向之一,分类方法主要有3类:第一类方法通过手工提取特征[1]实现点云分类,合适特征的设计和选取很大程度上依靠经验和运气,这种方式无法充分利用点云数据相关性,极大依赖于先验知识,精度一般;第二类方法通过将点云数据投影到二维平面[2]或转换成三维体素[3]的方式以实现点云数据的规则化,并作为传统卷积方式的输入,这类方法相较于第一类算法的精度有所提高,但忽略了点云数据无序、相关的特性,投影过程中实现了数据降维,不可避免地造成部分原始信息的丢失,同时也会引入额外误差,体素化的编码方式十分依赖内存且受分辨率的限制;第三类方法利用深度神经网络直接处理散乱无序的点云数据,最大限度保留数据原始信息,这种方法能够充分利用点云数据自身特性,在保持置换不变性的同时也具有良好的分类精度。
文献[4]开创性地提出了直接处理散乱点云的深度神经网络PointNet,将点云数据表示为N×D(N表示点的数量,D表示点的纬度)的形式并引入两个可学习的空间旋转矩阵对齐输入数据和特征,特征的学习利用多层感知机(Multi-Layer-Perceptron,MLP),采用maxpooling对称函数实现点云置换不变性,PointNet网络取得了89.2%的分类精度。文献[5]为捕获点云的局部特征,基于最远点采样的方式,将点云数据划分为重叠的局部区域,在局部区域上应用PointNet,提出了PointNet++模型。该模型通过以距离为度量增强点与点之间的相关性构造局部特征,提高了点云分类精度。文献[6]受到点云配准相似性技术的启发,根据核相关性测量的几何关系生成一组可学习的点集内核,将局部高维特征在邻域点构成的图上重复聚合,基于一种核关联+图池化的方式提出了KCNet,增强了特征的鲁棒性,聚合了点云的局部特征,提高了分类精度。文献[7]基于图卷积在特征空间中构造图,并在网络的每一层之后动态更新,采用一种动态的方式提取局部特征。网络的核心结构EdgeConv模块利用MLP学习边特征,采用maxpooling对称函数对边特征进行聚合。文献[8]通过引入X-conv算子提出了PointCNN,类似于空间变换网络,从前一层的数据中取K个点,预测一个K×K大小的变换矩阵(X-transformation),用X矩阵前一层的特征做变换,然后对变换后的特征卷积,实现了置换不变性。文献[9]通过构建自组织映射模拟点云空间分布,提出了SO-Net网络模型,提取了点云的层次化特征。文献[10]利用权重函数+核密度估计的方式生成卷积核,提出了PointConv网络模型,同时实现了卷积的平移不变性和排列不变性,其改进网络将PointConv分解为矩阵相乘和1×1的卷积,运行高效且效果良好。文献[11]基于PointNet提出一种多源数据融合的多尺度PointNet网络模型,同时考虑了点云的局部特征及颜色特征。文献[12]通过改变每个点邻域的大小建立不同的尺度空间,提出了一种多尺度特征与PointNet结合的网络模型,对点云的局部特征进行了有效提取。文献[13]采用图卷积的方式,在PointNet中的两个旋转矩阵处插入KNNgraph层,实现对点云局部特征的提取,实验表明,K取20时精度最好。文献[14]设计了多尺度局部区域划分算法,提出了MSP-Net,提取了不同层次的点云特征。
上述模型在PointNet模型的基础上进行了扩展,对点云数据的不同特征提取方法进行了研究,但是,对点云邻域中的局部特征并没有充分挖掘,在处理局部区域点时为了保证置换不变性使得点过于独立,忽视了点与点之间存在的几何相关性。本研究在对图卷积模型进行邻域信息提取的基础上对PointNet模型进行了改进,捕获层次化的K邻域特征。
一、算法描述
1.1PointNet
PointNet是一种可以直接处理无序点云数据的深度神经网络,形式化表示如式(1)所示。
1.2图卷积模型
本文讨论的图模型是基于空间的图卷积网络[15]。传统的卷积神经网络将研究对象限制在欧式空间中,规则的数据使得网络运行高效。然而点云数据不全是规则的,这时候就要考虑到数据与数据之间的相关性,即数据的结构信息。图卷积模型如图2所示。
1.3 本文的深度学习分类网络
为弥补PointNet缺乏对局部特征提取的缺陷,利用图模型在原有网络基础上层次化构造邻域图,顾及点云的局部特征,从而更有效的提高分类精度。网络结构如图4所示。
二、实验及分析
2.1实验数据
本文选用普林斯顿大学的标准公开数据集ModelNet40,共包含12 311个刚性三维CAD模型,来自40个人工对象,其中9 843个模型作为训练数据,2468个模型作为测试数据。先对数据集做预处理,在每个模型上随机采样1024个点降低其分辨率并将点坐标归化到单位球区间[-1,1]内,部分原始数据模型如图6所示,部分原始数据模型对应的降采样模型如图7所示。
2.2 实验环境
本文分类实验硬件环境为Inter Core I7-9700 + GTX1660 Ti 6G显存 + 16G RAM联想GeekPro台式机,软件环境为 Windows1064 + CUDA8.0 + cuDNN5.1 + TensorFlow1.0 + Python3.5。
2.3 实验参数
为了让网络学习到平移不变性、旋转不变性、缩放不变性的多种姿态特征,同时对抖动和噪声具有一定的抗干扰能力,通过随机旋转数据、添加(0.01,0.05)的高斯噪声、在[0.8, 1.25]尺度内随机缩放、在(0.06, 0.18)内随机抖动、在[-0.1, 0.1]尺度内随机平移这5种方式对点云进行数据扩增,增强网络的鲁棒性。本文的分类网络中图卷积部分K取值20。为了防止模型过拟合与梯度弥散问题的出现,本文分类网络全连接层中除最后一层生成C类别分数外其余各层均设置比例为0.5的dropout层,每一层卷积之后均进行归一化,网络的激活函数选用线性整流单元ReLU。对于精度衡量,损失函数采用交叉熵,优化算法使用自适应矩估计优化器ADAM,各参数设置如表1所示。
2.4 实验结果
训练数据集产生的精度和损失称为训练精度和训练损失,测试数据集产生的精度和损失称为测试精度和测试损失。精度又包含总体精度()和每一类别精度(),数据量较大,采用分批次处理的形式,两种精度和损失的计算公式一致,相应计算如式(7)所示。
表2 40个人工对象各自的样本数及在两种分类网络中的测试精度
本文的分类实验在ModelNet40数据集上取得了91.2%的测试总体精度,比PointNet分类实验高出2.0%,表2中列举了40个人工对象各自的样本数及在两种分类网络中的测试精度,图7中展示了两种网络在不同样本数量下的表现,高于横轴的点代表在本文分类网络中效果更好,横轴上的点代表两种网络分类精度一致,低于横轴的点表示在PointNet分类网络中精度更高,从图7可以看出,有23个人工对象在本文的分类网络中取得了更高的识别精度,9个人工对象在PointNet分类网络中识别效果更好,8个人工对象在两种分类网络中分类精度一致。其中在本文分类网络取得较低识别精度的9个人工对象,样本数量均小于300,而本文的分类网络在各个数量级别的样本下识别效果均优于PointNet。利用深度网络进行点云分类,分类精度一方面取决于训练样本数量的大小,另一方面取决于待分类样本的复杂程度,故图8中出现了一些在大样本数量下的单精度差值小于小样本数量下单精度差值和相同数量样本下单精度差值不一致的情况。
本文的测试精度变化图如下图9(a)所示,测试损失变化图如下图9(b)所示。由图9(a)可以看出,PointNet分类网络的测试精度变化曲线在epoch小于30时出现了大幅度震荡后又逐渐趋于平稳,而本文设计的分类网络测试过程中未出现高幅度震荡,随着迭代次数的增加逐渐收敛,且测试精度一直高于PointNet网络。图9(b)中PointNet的网络在epoch小于30时出现了高幅度震荡,epoch次数在50到100之间又出现了小幅度震荡,最后逐渐趋于平稳,而本文的网络未出现大幅度震荡,随着迭代次数的增加逐渐收敛,且整个过程的测试损失一直小于PointNet网络。结合测试过程中的精度变化和损失变化可以看出本文提出的点云分类模型从精度和稳定性两方面均优于PointNet,说明了本文方法在三维点云数据的分类工作中的可行性,具有一定的价值。
不同的分类网络在Modelnet40数据集上所取得的分类总体精度如表3所示,统计结果来自于原作者发表的论文。通过对比发现,本文设计的分类网络在Modelnet40数据集上取得了良好的精度,比精度较好的DGCNN分类网络低1.7%,仔细研究发现,DGCNN分类网络在使用图模型时,引入了一种动态的思想,即对每一层的输出特征图在进入下一层时重新计算K邻域图模型,在局部特征的提取上具有更深层次的感受野,所以总体效果更好,分类精度更高。但是动态更新的的代价是更长的计算时间,其网络收敛速度小于本文的网络结构。
以上对比实验的结果表明,本文通过构造层次化的K邻域图引入局部特征的点云分类网络,测试总体精度和每一类别精度均优于独立点卷积的PointNet网络,且训练过程中训练精度和训练损失的变化效果比PointNet更好,说明了引入局部特征对点云特征提取的有效性,有助于提高点云分类的精度。
三、结束语
针对PointNet模型缺少对点云数据局部特征的提取问题,结合图卷积模型,在PointNet网络结构每一层输出的特征图上构造K邻域图模型,形成一种层次化的网络结构,扩大了分类网络的局部感受野,有效提取了点云的局部特征,分类实验在ModelNet40数据集上进行,给出了每一类样本的测试精度对比,本文方法取得了91.2%的分类精度,分类精度和网络的稳定性均优于PointNet分类网络,证明了本文方法在点云分类工作中的有效性。
转载自网络,文中观点仅供分享交流,不代表本号立场,如涉及版权等问题,请您告知,我们将及时处理。