本发明属于三维点云数据处理,尤其涉及一种基于pointnet++神经网络的三维点云分类方法。
背景技术:
1、无序零件的识别技术背景涉及到计算机视觉、机器学习、深度学习和3d点云处理等多个领域。传统方法依赖于手工提取的特征和经典的机器学习分类器,而近年来,深度学习尤其是卷积神经网络和点云专用的神经网络(如pointnet)在这一任务上展现了卓越的性能。这些技术能够处理从3d扫描仪或其他传感器获得的无序、不完整且可能带有噪声的点云数据,通过网络学习直接从数据中提取特征,并进行有效的分类和识别。
2、在关于pointnet++的讨论中,pointnet++被介绍为一种用于3d目标分类的深度学习网络结构。尽管其在任务中取得了显著的成果,但仍然存在过拟合和特征冗余的问题。深度网络结构容易导致过拟合,而随着网络深度的增加,特征表达可能会变得冗余,因此需要进一步的改进和优化,以克服这些问题。
技术实现思路
1、为解决上述背景技术中存在的问题,本发明提出一种基于pointnet++网络的无序零件识别方法,不仅可以提高pointnet++对无序零件的分类性能,还可以提高模型训练的速度。
2、本发明解决上述问题的技术方案是:一种基于pointnet++网络的无序零件识别方法,包括以下步骤:
3、步骤一:进行点云数据预处理,包括缩放,抖动,旋转和归一化等操作;
4、步骤二:将点云输入到集合抽象层,提取局部特征;
5、步骤三:重复步骤二,逐层下采样提取点云特征;
6、步骤四:训练pointnet神经网络,提取点云特征,并且使用带有标签平滑,余弦衰减的损失函数和adamw优化器优化模型;
7、步骤五:将得到的点云特征输入到maxpooling层中;
8、步骤六:采用全连接层实现对点云的分类。
9、在上述的一种基于pointnet++网络的无序零件识别方法中,步骤二具体是:将点云输入到集合抽象层,提取局部特征:
10、(1)采样层:在此层,输入是待分类的三维点云数据,具有n个点,每个点具有(d+c)维特征,其中d表示坐标信息,c表示额外的特征。采样层的任务是通过最远点采样法(fps)来选取n1个中心点,这些中心点将代表局部区域。
11、(2)分组层:在此阶段,每个选取的中心点被用作圆心,半径为r,以寻找其规模内的k个邻点,这些邻点一起构成一个局部区域。此过程将输出n1个中心点,每个中心点的周围具有k个邻点,每个点特征的维度为(d+c)。为了捕获更多丰富的邻域特征,r的半径被扩大一倍,以增加规模内的邻点数量,从而加强点云之间的联系。
12、(3)pointnet层:这一步骤的输入是n1个中心点,每个点周围有k个邻点,每个点的特征维度为(d+c),输出是n1个点,每个点具有c1维卷积后的局部特征。在pointnet层内,点坐标被转化为相对于质心的坐标,然后结合相对坐标和点特征,以捕捉局部区域内点与点之间的关系。
13、(4)集合抽象层sa模块的公式:
14、
15、其中r是reduction层,它从点i的邻居({j:(i,j)∈n})中聚合特征,分别为第lth层的输入坐标,输入特征,以及点i的第j个邻居的特征,hθ表示共享的mlps,它的输入是和相对坐标在特征维度的级联。
16、在上述的一种基于pointnet++网络的无序零件识别方法中,步骤四具体是:训练pointnet神经网络,提取点云特征矩阵:
17、(1)点的mlp操作:每个输入点经历了多层感知器(mlp)操作,其中初始输入维度为3,而输出维度增加到c1,这一操作旨在将每个点的特征映射到更高维度,从原始3维到c1维,这个操作逐一应用于点云中的每个点,形成一个n*c1的特征矩阵;
18、(2)maxpooling操作:maxpooling的目的在于确保pointnet网络的输入点的排列顺序不会影响最终的输出结果,mlp操作后得到的n*c1特征矩阵在maxpooling层经过处理,该层对n*c1矩阵中的每一列执行max操作,生成一个1*c1的特征矩阵,这有助于维护点云特征的不变性,使其不受点的输入排列次序的影响。
19、在上述的一种基于pointnet++网络的无序零件识别方法中,步骤五具体是:得到的点云特征输入到maxpooling层中:将pointnet层中得到的点云特征输入到maxpooling层中,这一过程的主要目的在于对点云数据进行降维和精炼,去除冗余特征,以减小特征维度,同时保留最显著的信息,通过maxpooling操作,实现了对点云的空间不变性,确保无论点的输入排列顺序如何,最终的特征表示都能保持一致;
20、此外,为了进一步提高模型的性能,采用了带有标签平滑和余弦衰减的损失函数,这有助于模型训练时减小过拟合的可能性,并使用adamw优化器来有效地调整模型参数,损失函数公式为:
21、
22、是平滑标签的交叉熵损失:
23、
24、cosine_decay是余弦衰减:
25、
26、其中y表示真实的标签分布,表示模型的预测分布,i表示类别索引,smooth_tgsi是真实标签的类别索引,global_step表示当前的全局步数,cosine_decay_steps表示余弦衰减的总步数。
27、在上述的一种基于pointnet++网络的无序零件识别方法中,步骤六具体是:采用全连接层实现对点云的分类:将最终优化完的点云特征输入全连接层,实现点云的分类,全连接层用于对点云的特征表示进行线性组合和非线性映射,以实现点云的分类,其中每个节点输出表示点云属于各个类别的概率得分,这一步骤是整个流程的最后一环,它通过学习到的特征将点云分配到适当的分类。
28、结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明通过一种基于pointnet++网络的无序零件识别方法,通过扩大sa(集合抽象)层的采样半径,以丰富点云的局部特征信息。引入maxpooling层,有力地提高了点云数据的特征优化和冗余降维处理,从而增强了模型的性能。同时,采用了一系列鲁棒的训练策略,包括标签平滑和余弦衰减的损失函数,以及adamw优化器,这些措施共同使模型更具稳定性,有助于提高点云分类的精确度。综合而言,这一发明方法在无序零件分类任务中具备更强的表现和鲁棒性。
1.一种基于pointnet++网络的无序零件识别方法,其特征在于,所述基于神经网络的三维点云分类方法包括:
2.根据权利要求1所述的一种基于pointnet++网络的无序零件识别方法,其特征在于,步骤二中,所述将点云输入到集合抽象层,提取局部特征:
3.根据权利要求1所述的一种基于pointnet++网络的无序零件识别方法,其特征在于,步骤四中,所述训练pointnet神经网络,提取点云特征矩阵:
4.根据权利要求1所述的一种基于pointnet++网络的无序零件识别方法,其特征在于,步骤五中,所述将得到的点云特征输入到maxpooling层中:将pointnet层中得到的点云特征输入到maxpooling层中,这一过程的主要目的在于对点云数据进行降维和精炼,去除冗余特征,以减小特征维度,同时保留最显著的信息,通过maxpooling操作,实现了对点云的空间不变性,确保无论点的输入排列顺序如何,最终的特征表示都能保持一致;
5.根据权利要求1所述的一种基于pointnet++网络的无序零件识别方法,其特征在于,步骤六中,所述采用全连接层实现对点云的分类:将最终优化完的点云特征输入全连接层,实现点云的分类,全连接层用于对点云的特征表示进行线性组合和非线性映射,以实现点云的分类,其中每个节点输出表示点云属于各个类别的概率得分,这一步骤是整个流程的最后一环,它通过学习到的特征将点云分配到适当的分类。