1.基于深度学习的点云数据分类方法,其特征在于,包括以下步骤:
S1、选用Princeton ModelNet的ModelNet10和ModelNet40数据集,从官网选取所需数量的数据作为训练数据和测试数据,生成训练集和数据集;
S2、对输入的点云数据进行数据增广;
S3、构建一种多尺度点云分类网络,该网络由3个不同的尺度网络构成,分别是低级尺度网络、中级尺度网络和高级尺度网络;所述低级尺度网络包含点云数据仿射变换模块、局部区域划分模块、单尺度特征提取模块和低层次特征聚合模块,所述中级尺度网络包含局部区域划分模块、单尺度特征提取模块和低层次特征聚合模块,所述高级尺度网络包含局部区域划分模块和单尺度特征提取模块;最终的分类结果由上述三个网络获取的特征向量聚合后通过特征聚合模块获得;
S4、提出了一种点云数据局部区域划分算法,对增广后的点云数据使用该算法获取每个点的领域信息,送入点云数据仿射变换模块,保证输入数据的仿射变换不变性;
S5、对经过仿射变换模块后的点云数据再使用步骤S4提出的点云数据局部区域划分算法,形成多尺度局部数据并分别送入每个尺度网络形成多个单尺度特征向量;
S6、对不同尺度的单尺度特征送入特征聚合模块进行特征聚合,将聚合后的特征通过全连接层送入分类器实现对点云数据的分类。为了避免深度学习网络训练中出现过拟合,每个全连接层后有一个dropout层。
2.根据权利要求1所述的基于深度学习的点云数据分类方法,其特征在于:在步骤S1中,选用Princeton ModelNet数据集,采用官网数据,针对ModelNet10和ModelNet40分别选取3991、9843个数据作为训练数据,908、2468个数据作为测试数据,库内所有数据均按照Z轴方向正确摆放;数据集中的三维数据数据表面进行均匀采样,每个数据均包含10000个点,且坐标预先被归一化至单位球[-1,1]区间内。
3.根据权利要求1所述的基于深度学习的点云数据分类方法,其特征在于:在步骤S2中,对于原始数据采用随机抽取的方式构建包含1024个点的低分辨率采样,并通过随机旋转、[0.8,1.2]尺度范围内随机缩放、(-0.1,0.1)区间内随机抖动、添加(0.01,0.05)高斯噪声这些方式实现数据扩增。
4.根据权利要求1所述的基于深度学习的点云数据分类方法,其特征在于:在步骤S3中,所述低级尺度网络,其第一层为输入层,第二层为仿射变换层,第三至五层为单尺度特征提取层,各层结构如下:第一层,输入层:将通过数据增广获得的增广点云数据通过局部区域划分模块,划分成符合网络要求的点云数据,将其作为训练样本输入到网络;
第二层,仿射变换层:将输入层输入的数据送入对齐层实现数据对仿射变换的不变,通过该层的数据再次通过局部区域划分模块,划分成符合网络要求的点云数据;
第三层,单尺度特征提取层:包含一个卷积层和一个激活函数层,该单尺度特征提取层得到的数据将同时送入下一个单尺度特征提取层与低层次特征聚合,低层次特征聚合通过一个池化函数,得到下一尺度的输入;
第四层,单尺度特征提取层:包含一个卷积层、一个激活函数层和一个池化层;
第五层,单尺度特征提取层:包含一个卷积层、一个激活函数层和一个池化层;
所述中级尺度网络,其第一层为输入层,第二至三层为单尺度特征提取层,各层结构如下:
第一层,输入层:将通过低级尺度网络的第三层中低层次特征聚合的特征向量通过局部区域划分模块,划分成符合网络要求的点云数据,将其作为训练样本输入到网络;
第二层,单尺度特征提取层:包含一个卷积层、一个激活函数层和一个池化层,该单尺度特征提取层得到的数据将同时送入下一个单尺度特征提取层与低层次特征聚合,低层次特征聚合通过一个池化函数,得到下一尺度的输入;
第三层,单尺度特征提取层:包含一个卷积层、一个激活函数层和一个池化层;
所述高级尺度网络,其第一层为输入层,第二层为单尺度特征提取层,各层结构如下:
第一层,输入层:将通过中级尺度网络的第二层中层次特征聚合的特征向量通过局部区域划分模块,划分成符合网络要求的点云数据,将其作为训练样本输入到网络;
第二层,单尺度特征提取层:包含一个卷积层、一个激活函数层和两个个池化层;
所述特征聚合模块,其第一、二层为隐藏层,第三层为输出层,各层结构如下:
第一层,隐藏层:包含一个全连接层、一个激活函数层和一个DropOut层;
第二层,隐藏层:包含一个全连接层、一个激活函数层和一个DropOut层;
第三层,输出层:包含一个全连接层和一个Softmax层。
5.根据权利要求1所述的基于深度学习的点云数据分类方法,其特征在于:在步骤S4中,由于三维点云数据仅包含一组离散的三维点集,缺乏关联信息,因此无明显的结构特征,在数据信息有限的情况下,如何形成鲁棒且合理的局部区域划分将影响分类任务的最终效果,一个好的局部区域划分应该满足以下三条原则:a、点云覆盖的完备性;
b、空间分布的自适应性;
c、区域之间的重叠性;
同时,根据多尺度的思想,设计的划分方法还应该满足局部区域尺寸及局部区域数可控这一基本要求;
针对以上局部区域划分原则,构建了一种点云数据局部区域划分算法,具体如下:
输入:点云集合P={xi,i=1,...,n},局部区域的划分数目st=(s1,s2,s3)及每个局部区域内所包含的点云数目k;其中,n为点云集合所包含的点云数目; 为第i个点所对应的特征向量,m为特征数目,因为不同的局部区域的划分数目sl(l=1,2,3)间接地体现了局部区域的尺度大小,所以st亦称为局部区域尺度,局部区域尺度种类为3,依次为低级尺度s1=1024、中级尺度s2=256、高级尺度s3=32;
输出:st个当前尺度下的局部区域及其中心{(Rj,οj),1≤j≤st},其中Rj为该尺度st下的第j个局部区域,oj为该局部区域中心;
Step1、局部区域的初始划分:基于欧式距离,利用凝聚层次聚类将点云集合P划分成st个局部点云簇;
Step2、局部点云簇簇中心的选取:依据局部区域内到其它点的距离和最小为基准,选取局部点云簇的簇中心;相对于求均值,这样的选取具有免受噪声点干扰且更加接近真实聚类中心的优点;
Step3、多尺度局部区域的形成:以st个局部点云簇簇中心{οj,1≤j≤st}为各个类的中心,利用K-NN算法寻找到该簇中心最近的k个点,完成聚类,形成st个包含k个点的局部区域Rj;
以上步骤中,初始簇中心的选取确保了局部区域划分的稳定性;K-NN算法则确保了点云覆盖的完整性和自适应性;此外,通过调整局部区域尺度st和每个局部区域内所包含的点云数目k,使得st×k大于点云聚合所包含的点云数目n,则进一步保证区域之间的重叠性;
同时,为了保证输入数据的仿射变换不变性,设置了点云数据仿射变换模块,该模块引入了仿射变换不变空间,目的是为了使输入数据对仿射变换不变;
在步骤S5中,输入仿射变换模块后的点云数据,送入低级尺度网络,给定尺度s1和每个局部区域内所包含的点云数目k,送入局部区域划分模块,该模块利用步骤S4的局部区域划分算法得到s1个局部区域划分,其中每个局部区域表示为k个点的集合,点为空间点云的三维坐标;
对局部区域Rj中的每一个点 利用 对其进行归一化,形成以区域中心oj为原点的局部空间,并将其与oj合并,形成六元组集合 其中oj表示归一化后的点在全局空间中的位置, 表示归一化后的点在局部空间中的位置;
输入归一化后的局部区域集合 被送入单尺度特征提取模块;对于低级
尺度网络,该模块由三个单尺度特征提取层组成,每个单尺度特征提取层的核为[1,1],步长为1;其中,第一、二个单尺度特征提取层的输出特征维度均为64,对通过第一、二个单尺度特征提取层所得到的特征向量使用最大池化函数Maxpooling,形成s1个64维局部特征;
再次送入输出特征维度为896的第三个单尺度特征提取层和最大池化函数Maxpooling,形成896维的低尺度全局特征;这里,Maxpooling函数的使用保证了所形成的特征对数据内点云顺序的无关性;其中,第一个最大池化函数的作用是将局部区域内的点特征聚合,第二个最大池化函数的作用是将全局特征进行聚合;
对于低级尺度s1,在数据通过首个单尺度特征提取层时,其特征同时被传入低层次特征提取模块,该模块旨在为中级尺度的特征提取网络提供输入:通过与单尺度特征提取模块共享首个单尺度特征提取层提取各局部的低层次特征,并通过最大池化函数Maxpooling聚合形成s1×64的特征向量送入更高尺度特征提取网络;
由低级尺度网络的低层次特征提取模块获得的特征向量通过与低级尺度网络相同的局部划分和归一化方法得到 作为中级尺度网络的输入被送入单尺度特征提取模块,该模块由两个单尺度特征提取层组成,每个单尺度特征提取层的核为[1,1],步长为1;其中,第一个单尺度特征提取层的输出特征维度均为128,对通过第一个单尺度特征提取层所得到的特征向量使用最大池化函数Maxpooling,形成s2个128维局部特征;再次送入输出特征维度为896的第二个单尺度特征提取层和最大池化函数Maxpooling,形成896维的中尺度全局特征;这里,Maxpooling函数的使用保证了所形成的特征对数据内点云顺序的无关性;其中,第一个最大池化函数的作用是将局部区域内的点特征聚合,第二个最大池化函数的作用是将全局特征进行聚合;
对于中级尺度s2,在数据通过首个单尺度特征提取层时,其特征同时被传入低层次特征提取模块,该模块旨在为高级尺度的特征提取网络提供输入:通过与单尺度特征提取模块共享首个单尺度特征提取层提取各局部的中层次特征,并通过最大池化函数Maxpooling聚合形成s2×128的特征向量送入更高尺度特征提取网络;
由中级尺度网络的低层次特征提取模块获得的特征向量通过与低级尺度网络相同的局部划分和归一化方法得到 作为高级尺度网络的输入被送入单尺度特征提取模块,该模块由一个单尺度特征提取层组成,单尺度特征提取层的核为[1,1],步长为
1,输出特征维度为896,并通过两个形成896维的高尺度全局特征;这里,最大池化函数Maxpooling的使用保证了所形成的特征对数据内点云顺序的无关性;其中,第一个最大池化函数的作用是将局部区域内的点特征聚合,第二个最大池化函数的作用是将全局特征进行聚合。
6.根据权利要求1所述的基于深度学习的点云数据分类方法,其特征在于:在步骤S6中,对于每个单尺度网络输出的特征向量在进入全连接层之前还将进行一次特征聚合,这里使用concat函数完成特征聚合操作,聚合形成的特征是包含了不同尺度局部信息的全局特征向量;再将其送入两层全连接,经由softmax层得到分类结果。