一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于点云数据集的零件特征识别方法与流程

2021-12-08 00:36:00 来源:中国专利 TAG:


1.本发明属于计算机辅助制造方法技术领域,具体涉及一种基于点云数据集的零件特征识别方法。


背景技术:

2.三维模型被广泛应用于生产制造相关领域,常见表征三维模型的方法有面片、体素和点云三种。点云是一组点数据的集合,相比于面片和体素表示方法,点云无需考虑面片形状和体素分辨率等情况,非常便于计算机的数据读取和处理。
3.在深度学习广泛应用之前,计算机识别三维的特征需要编写手工描述符,但该方法只能识别特定的几类零件,且手工特征的编写对设计者提出了较高的要求,需要对特征有深刻的理解。在深度学习的快速发展广泛应用后,极大的改善了这一现状,通过喂入模型来训练神经网络,能让网络自动对模型数据进行抽象和特征提取,学习到几何特征。
4.但神经网络的训练需要以数据集作为支撑,数据集的好坏往往直接决定神经网络的表现。一般数据集分为用于训练神经网络的训练集和检验神经网络性能的测试集。相较于测试集,训练集要提前得知模型的几何特征并需要人为的对模型进行标注。由于点云表征模型的优点,许多三维模型数据集都采用记录点云数据的方式。此前,研究者通过三维激光扫描技术来获取模型的点云格式的训练集和测试集,再对训练集的特征进行手工标注,但这需要消耗大量的人力,并且数据集受限于实体模型,当实体模型较少时会导致训练集中此类模型数量不足进而可能会使得训练出来的神经网络出现过拟合、泛化性不好等现象。


技术实现要素:

5.本发明的目的在于提供一种基于点云数据集的零件特征识别方法,解决了现有方法存在的实体模型较少与扫描花费时间的问题。
6.本发明所采用的技术方案是:一种基于点云数据集的零件特征识别方法,包括以下步骤:
7.步骤1、制作目标零件的三维模型并提取三维模型的点云数据;
8.步骤2、对步骤1得到的点云数据进行预处理,得到格式统一的数据集;
9.步骤3、将步骤2得到的数据集喂入pointnet神经网络中进行训练,实现零件特征的自动抽象和提取。
10.本发明的特点还在于,
11.步骤1具体包括以下步骤:
12.步骤1.1、确定目标零件相关信息;
13.步骤1.2、基于步骤1.1中确定的信息通过三维建模软件建立目标零件的三维模型并转存为统一的存储数据格式;
14.步骤1.3、通过泊松盘采样法对三维模型进行均匀点云采样。
15.步骤1.3中采用的泊松盘采样法具体为:设定最小距离r和采样次数k,在每一轮的循环中从所有活跃采样点中随机选取一个点,然后以该点为圆心,分别以r和2r为半径作两个同心圆,将半径从0到r的圆形区域记为“禁区”,然后在r与2r之间的环形区域随机生成一些候选采样点,会出现以下三种状况:如果候选采样点落在其它点所生成的“禁区”内表明它与其他点距离小于r,排除该点;如果没有落在“禁区”,就把该候选采样点变为“活跃点”,且原来的“活跃点”状态不变;如果经过k次生成候选采样点都落在“禁区”,默认在r到2r区域内不存在满足距离小于r的点,将此活跃点变为“不活跃点”,重复以上步骤遍历所有“活跃点”,当所有的点都为“不活跃点”时算法停止。
16.步骤2具体包括以下步骤:
17.步骤2.1、遍历所有点云数据,选取最小点数为作为基础点数;
18.步骤2.2、再次遍历点云数据,以基础点数对所有点云数据进行切片,使所有点云数据的点云数目保持相同;
19.步骤2.3、分别读取切片后每个模型的三坐标上最值,计算出几何中心位置,并将模型建立时的坐标原点平移到模型的几何中心位置处;
20.步骤2.4、读取平移后模型的最值,计算出缩放因子,对模型进行等比的放缩,完成模型归一化。
21.步骤3具体包括以下步骤:
22.步骤3.1、读取步骤2中得到的格式统一的数据集;
23.步骤3.2、对每一组点云数据进行升维操作;
24.步骤3.3、对升维后的数据进行最大池化处理;
25.步骤3.4、通过pointnet神经网络的全连接层对经过最大池化处理后的数据进行特征识别,输出分类识别结果。
26.本发明的有益效果是:本发明一种基于点云数据集的零件特征识别方法,通过线上三维模型的绘制、点云转换等操作而非线下激光扫描仪来获取点云,实现任意模型点云的制作。该方法在解决了实际模型不足问题的同时,极大提升了点云模型制作速度。使用该方法可以制作大量的模型库,将制作好的数据集喂入pointnet神经网络中,神经网络通过遍历模型数据集,能自动的对模型特征进行抽样和提取,解决了手工编写特征识别时特征类别单一和难以编写的问题。
附图说明
27.图1是本发明一种基于点云数据集的零件特征识别方法的流程示意图;
28.图2是本发明一种基于点云数据集的零件特征识别方法中步骤1的具体流程示意图;
29.图3是本发明一种基于点云数据集的零件特征识别方法中步骤2的具体流程示意图;
30.图4是本发明一种基于点云数据集的零件特征识别方法中步骤3的具体流程示意图;
31.图5(a)是以弹簧为例建立三维模型示意图;图5(b)是以另一弹簧为例建立三维模型示意图;图5(c)是以螺栓为例建立三维模型示意图;图5(d)是以另一螺栓为例建立三维
模型示意图;
32.图6(a)是以弹簧三维模型另存格式示意图;图6(b)是以另一弹簧三维模型另存格式示意图;图6(c)是以螺栓三维模型另存格式示意图;图6(d)是以另一螺栓三维模型另存格式示意图;
33.图7(a)是制作弹簧的点云集示意图;图7(b)是制作另一弹簧的点云集示意图;图7(c)是制作螺栓的点云集示意图;图7(d)是制作另一螺栓的点云集示意图;
34.图8(a)是对螺栓模型进行泊松盘采样并固定点云数后的结果示意图;图8(b)是对弹簧模型进行泊松盘采样并固定点云数后的结果示意图;
35.图9(a)是对螺栓点云数据进行坐标移动后(将模型的几何中心作为坐标原点)的结果示意图;图9(b)是对弹簧点云数据进行坐标移动后的结果示意图;
36.图10(a)是对螺栓模型进行放缩后(模型被限制在边长为2的立方体中)的结果示意图;图10(b)是对弹簧模型进行放缩后的结果示意图。
具体实施方式
37.下面结合附图以及具体实施方式对本发明进行详细说明。
38.本发明提供了一种基于点云数据集的零件特征识别方法,如图1所示,包括以下步骤:
39.步骤1、制作目标零件的三维模型并提取三维模型的点云数据,包括:
40.1)确定目标数据集所要包含的种类,模型种类的确定是指确定目标数据集共包含几大类别和同一类别中不同的表现形式及对应的数量。以螺栓和弹簧为例,绘制三维螺栓时,需确定螺栓型号和规格,(如gb/t 5785

2000,m6*15);对于弹簧这样的非标准件,在确定类型(如矩形截面弹簧、拉力弹簧等)后,需要确定弹簧外径、节距等信息。为了使得训练出的神经网络有更好泛化性,在保证模型大类的几何特征不变的情况下,可以给模型加入噪声(如放大某一参数)。
41.2)通过相应软件对三维模型进行建模,得到各不同类别、不同型号零件的电子文件并转存为常见的三维模型存储的数据格式,方便模型后续进行采样等批处理操作。
42.3)通过泊松盘采样法对三维模型进行均匀点云采样。泊松盘采样是指一种常见的采样方法。该算法先设定最小距离r和采样次数k,在每一轮的循环中从所有活跃采样点(第一个“活跃点”采样点随机产生)中随机选取一个点,然后以该点为圆心,分别以r和2r为半径作两个同心圆,将半径0到r的圆形区域记为“禁区”(禁区内除了“活跃点”本以外不应存在其他的点)。然后在r与2r之间的环形区域随机生成一些候选采样点,会出现以下三种状况:如果候选采样点落在其它点所生成的“禁区”内表明它与其他点距离小于r,排除该点;如果没有落在“禁区”就把该候选采样点变为“活跃点”,且原来的“活跃点”状态不变;如果经过k次生成候选采样点都落在“禁区”,默认在r到2r区域内不存在满足距离小于r的点,将此活跃点变为“不活跃点”。重复以上内容遍历所有“活跃点”,当所有的点都为“不活跃点”时算法停止。通过该算法对三维模型的表面采样较为均匀,同样的点数下能更好的表征三维模型;
43.具体操作时如图2所示,流程步编码从100开始依次排序。流程从100开始,依次执行101,该步是对零件库的大致构想,即最终零件库所含有的种类和同一类别不同的表达形
式及模型;接着执行步骤102,用相关领域的三维绘图软件如但不限于solidworks、ug对三维模型进行实体建模;然后执行步骤103,在对模型表面进行采样前,需要对不同模型的文件格式进行统一,可以选择obj、stl等常见的三维模型文件存储格式;继续执行步骤104,用泊松盘采样的方法对模型表面进行均匀采样,获得点云数据;接着执行步骤105,判断经过采样后的点云数据是否符合预期,包括点的分布是否均匀、采样点的数量等是否达到事先设定的预期值;若未达到预期,执行步骤106,可调试泊松盘采样方法中的相关参数,进行重新采样。在调整好采样参数后可对采样步骤进行保存,并使用meshlabserver调用脚本文件,以达到对三维模型采样的批处理操作,提升数据集制作的效率;若达到预期,执行步骤107,将采样后的点云文件进行保存;进入步骤108,结束。
44.步骤2、对步骤1得到的点云数据进行预处理,得到格式统一的数据集,使得神经网络能够更快的收敛。即将经过采样后的点云数据进行平移、放缩等操作。不同种类模型点云数据可能有较大的差异,导致神经网络收敛速度较慢,可通过对模型进行归一化操作以改善该问题。具体操作为:先将模型平移到几何中心,再对不同模型进行适当比例的放缩,最终使所有模型均限制在边长为2个单位的立方体中。
45.具体操作时如图3所示,流程从200开始进入后执行步骤201,遍历上一步保存的点云文件,由于泊松盘采样的特性导致模型的点数会有一定程度的波动,需要遍历所有点云文件,选取最小点数为作为基础点数,为下一步切片提供基准;执行步骤202,再次遍历点云文件,以基础点数对所有点云文件进行切片,使所有文件的点云数目保持相同;执行步骤204,三维模型建模和点云采样都是利用默认的坐标系,导致模型数据分布较为杂乱,步骤204将分别读取每个模型三坐标上最值,计算出合适几何中心位置,并将模型的坐标原点平移到模型的几何中心位置处;执行步骤205,读取模型最值,计算出合适的缩放因子,对模型进行等比的放缩,将模型限制在边长为2个单位的立方体中;步骤206,结束。
46.步骤3、将步骤2得到的数据集喂入pointnet神经网络中进行训练,让其自动训练学习数据库的特征,实现零件特征的自动抽象和提取,最终实现模型的分类识别。即网络先对数据进行升维操作以在后续操作中能保留更多信息,之后对数据进行最大池化处理以取消点云无序性所带来的影响,最后通过全连接层实现三维模型的特征识别和分类操作。
47.具体操作时如图4所示,流程从300开始进入执行301,将预处理后的点云数据读入;执行步骤302,对每一组点云数据进行升维操作,使得后续池化操作时尽量保证较完整的几何特征;执行步骤303,数据进行最大池化处理,以取消因点云无序性所带来的影响,池化后的数据已具有全局几何特征的概念;执行步骤304,通过全连接网络对模型进行特征分类和识别得到步骤305的结果;执行步骤306,结束。
48.图5(a)至图5(d)即是利用三维建模软件建立的常见零件螺栓、弹簧的三维模型,该模型是建立用于训练神经网络的第一步,即对应步骤1以及图2

102
49.图6(a)至图6(d)是对图5建立的模型进行格式转化,本例中将存储格式为sldprt的原模型另存为stl格式。该步骤将可能不统一的模型格式转为较为常用的stl储存格式,便于之后模型点云采样的批处理。即对应图2

103。
50.图7(a)至图7(d)是基于泊松采样盘方法对格式为stl的模型进行均匀点采样,采样时需预设采样点数量的预期值,对于大小不同的模型,为保证采样点的均匀,采样后的点数可能会有波动。本例中模型的采样点数量预期值分别设定为2000,采样后,弹簧a的采样
点数为2807,弹簧b采样点数为2301,螺栓c的采样点数为2883,螺栓d的采样点数为2895。即对应图2

104
51.图8(a)和图8(b)是对图7中得到的模型的点云数据集进行预处理得到统一点云数目的数据集,即点云数目固定的点云模型。对应图3

202和203。
52.图9(a)和图9(b)是对模型进行平移处理,将模型的几何中心作为坐标原点,对应图3

204。平移的目的是便于后续训练神经网络能够让网络更快的收敛。
53.图10(a)和图10(b)是对平移后的模型进行放缩处理,在保证模型几何特征的基础上对模型进行放缩处理,将其限制在边长为2的立方体中,提升神经网络的收敛速度。对应图3

205。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献