本发明属于机械设计制造及其自动化领域,涉及一种基于三角网格及神经网络的加工特征识别方法。
背景技术:
随着制造业的发展,企业的发展模式从大批量生产向多品种、小批量生产转变,零部件的加工特征类型增加且形状复杂多变,系统需要不断添加新特征。而且不同领域的产品,其加工特征类型往往不同,然而现有技术很难实现多领域,各类加工特征的识别。
加工特征识别技术是智能化设计与制造的关键支撑。在所有借助特征进行分析和决策的计算机辅助设计与制造系统中,特征识别是必不可少的基础组成单元。目前针对加工特征识别的方法有很多。其中比较经典的方法可归纳为基于图的方法、基于体分解的方法、基于规则的方法和基于痕迹的方法。
基于图的方法难以有效地识别相交特征,因为基于体分解的方法仅适用于一定形状要求的零件,且运算量大,对复杂零件会造成特征解释组合爆炸;基于规则的方法对特征规则定义不唯一,不具有完备性,且需进行大量匹配,效率较低;而基于痕迹的方法特征痕迹生成和延拓算法依赖于具体的特征类型,难以添加新的特征类型。
近年来,神经网络在计算机视觉与模式识别中的巨大成功已验证了其强大的识别与分类能力,类比可见神经网络方法在加工特征识别领域也很有发展潜力。神经网络方法的基本思想是借助神经网络的学习能力,通过向网络输入样本特征并依据期望输出结果来反复训练网络,以实现特征识别任务。因此,向神经网络输入何种样本特征数据,即如何对特征进行预处理预编码,使其便于理解和推理成为了首先要解决的问题。
目前,利用神经网络识别加工特征时,常用的特征预处理与编码方法主要有:基于属性邻接图编码、基于面邻接矩阵编码、基于面值向量编码、体素化方法等。基于属性邻接图编码、基于面邻接矩阵编码、基于面值向量编码,这些方法都存在局限性,只能对特定的加工特征进行识别;体素化方法是三维cnn(卷积神经网络)特有的特征预处理与编码方法,专利“一种面向三维加工特征的智能识别与检索方法”(专利申请号:201811594293.5)通过将三维模型划分为体素网格,对体素进行二进制赋值,进而获得cnn的输入数据,但受体素的分辨率影响较大,若分辨率低则会导致边界特征信息丢失,若分辨率高则计算量呈指数上升。
所以,需要一个新的技术方案来解决上述问题。
技术实现要素:
发明目的:为了克服现有技术中存在的不足,提供一种基于三角网格及神经网络的加工特征识别方法,该方法解决了现有特征识别技术识别效率低、不支持用户自定义特征及不能有效地识别不完整特征和相交特征等问题,并且解决了特征数据输入神经网络困难等问题,提高了特征识别的效率以及准确率。
技术方案:为实现上述目的,本发明提供一种基于三角网格及神经网络的加工特征识别方法,包括如下步骤:
s1:导入零件设计模型,通过pmi定位获取加工特征;
s2:将加工特征进行三角网格划分,并导出三角网格数据;
s3:对三角网格数据进行数据提取及处理;
s4:创建自定义加工特征数据集;
s5:将自定义加工特征数据集放入神经网络训练,获得最优神经网络训练模型;
s6:将步骤s3中处理完的数据输入最优神经网络训练模型中进行加工特征识别。
进一步地,所述步骤s1中零件设计模型为mbd设计模型。
进一步地,所述步骤s1中通过pmi定位获取加工特征的方法为:首先获取加工特征特有的pmi标注;然后获得每个pmi关联的面集f={f1,f2,...,fk},其中,k为每个pmi关联面的个数;最后每个pmi关联面集即为组成对应加工特征的面集。
进一步地,所述步骤s1中加工特征特有的pmi标注为表面粗糙度pmi标注,表示为:p={p1,p2,...,pt},其中,t为导入模型上待识别加工特征的个数。
进一步地,所述步骤s2具体为:将加工特征关联面集f转化为片体集合s={s1,s2,...,sk},然后将片体集合进行三角网格划分,并导出三角网格数据。
进一步地,所述步骤s2中导出的三角网格数据包含了每个三角形的法向量和三个顶角的坐标。
进一步地,所述步骤s3中三角网格数据的数据提取及处理方法为:
a1:提取三角网格数据中每个三角形的法向量及三个顶角的坐标;
a2:计算每个三角形的中心坐标;
a3:计算每个三角形的角向量(中心与三个顶角构成的三个向量);
a4:对坐标数据进行归一化处理;
a5:对处理后的每个三角形进行编号,获取每个三角形的三个邻接面编号(不足三个以自身编号补全)。
进一步地,所述步骤s4中自定义加工特征数据集的创建方法为:
b1:自定义加工特征集n={n1,n2,...,ns},其中s为自定义加工特征个数;
b2:对第i个加工特征类型ni∈n,创建不同尺寸的此类加工特征m={m1,m2,...,ml},其中l为每类加工特征所创建的个数,其具体数值对每种特征而言是可变的,执行步骤b3到步骤b7;
b3:对第j个加工特征mj∈m,进行随机旋转,执行步骤b4到步骤b6;
b4:提取加工特征;
b5:对加工特征进行三角网格划分,并导出三角网格数据;
b6:对三角网格数据进行数据提取及处理;
b7:将处理完的数据划分为训练集和测试集。
进一步地,所述步骤s5中放入神经网络训练的自定义加工特征数据集的数据包括每个三角形的中心坐标、法向量、角向量、邻接三角形编号。
本发明的设计原理为:
有益效果:本发明与现有技术相比,具备如下优点:
1、本发明首次提出通过pmi快速定位并获取加工特征,提高了整个特征识别过程的效率及准确率;
2、本发明方法支持用户自定义加工特征,用户可以针对性地创建特征数据集,从容应对随着小批量、多品种的生产模式兴起而引起的零部件加工特征类型增加且形状复杂多变等问题,提高特征识别的效率以及准确率;
3、本发明方法使用三角网格作为数据源,可以有效地保证特征信息的完整性,同时以神经网络作为算法基础,保证了计算效率,提升了特征识别的能力;
4、将神经网络应用到特征识别,神经网络具有很强的自学习以及泛化能力,该方法可以识别相似特征,增强了特征识别的适用性。
附图说明
图1为本发明总体流程图;
图2为本发明中数据提取及处理的方法流程图;
图3为本发明中加工特征数据集创建的方法流程图;
图4为本发明中创建数据集时的数据提取及处理方法流程图;
图5为邻接三角形示意图;
图6为加工特征类型展示图;
图7为加工特征识别展示图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
本发明提供一种基于三角网格及神经网络的加工特征识别方法,包括加工特征识别和神经网络训练两部分。在加工特征识别之前,首先要进行神经网络的训练。训练神经网络所使用的数据集,用户可以根据自己的需求,在确定完加工特征类型后可自行创建。加工特征识别过程主要包括:获取加工特征;将加工特征进行三角网格划分,并导出三角网格数据;对三角网格数据进行数据提取及处理;将处理完的数据放入最优神经网络训练模型中进行加工特征识别。
为了更好的说明本发明方法,如图1所示,本发明方法的具体步骤如下:
步骤一:导入零件mbd设计模型,获取加工特征;
将零件mbd设计模型导入三维cad软件nx中,利用nx二次开发技术,获取模型所有pmi标注。由于表面粗糙度属于加工特征所特有的pmi属性,所以通过筛选出所有的表面粗糙度pmi,可以定位所有加工特征。而且,表面粗糙度pmi所关联的面集,即为组成对应加工特征的面集f={f1,f2,...,fk},其中,k为每个pmi关联面的个数。
步骤二:将加工特征进行三角网格划分,并导出三角网格数据;
由于三维cad软件只可以对体进行三角网格划分,故先将加工特征关联面集f转化为片体集合s={s1,s2,...,sk},然后将片体集合进行三角网格划分,导出stl格式的文件。本实施例中这种stl格式的文件包含了三角网格每个三角形的法向量
步骤三:对三角网格数据进行数据提取及处理;
如图2所示,具体的提取和处理方法如下:
(31)从导出的stl文件中提取三角网格数据中每个三角形的法向量
(32)计算每个三角形的中心坐标co;
(33)计算每个三角形的角向量(中心与三个顶角构成的三个向量);
(34)将上述坐标数据进行归一化处理;
首先计算所有三角形顶角坐标p(x,y,z)距离原点的距离:
(35)对每一个三角形进行编号,并计算每个三角形的三个邻接面编号(不足三个以自身编号补全)。
这里对上述步骤35的编号方式进行说明:如果两个三角形相邻,则这两个三角形共享一条边,即有两个公共顶角。首先,对每一个三角形进行编号;然后对于每个面,通过遍历其它所有面,判断两者是否同时拥有两个相同顶角来确定其是否为邻接面;最后,记录下每个面的邻接面编号。
如图5所示,本实施例中编号为a的三角形,其邻接三角形编号为b,c,d,表示为la={b,c,d}
步骤四:创建自定义加工特征数据集;
如图3所示,其具体的创建方法为:
(41)自定义加工特征类型集n={n1,n2,...,ns},其中,s为自定义加工特征个数;用户根据具体的需求,归纳出所需的特征类型集n={n1,n2,...,ns}。
(42)对第i个加工特征类型ni∈n,创建不同尺寸的此类加工特征m={m1,m2,...,ml},其中,l为每类加工特征所创建的个数,其具体数值对每种特征而言是可变的,执行步骤(43)到步骤(47);
对于加工特征类型集中的每一类加工特征,用户需要准备若干个此类型的加工特征,可以利用三维cad软件创建此类加工特征模型,也可以从已有的模型上获取此类加工特征。具体加工特征的个数没有固定要求。执行步骤(43)到步骤(47)。
(43)对第j个加工特征mj∈m,进行随机旋转,执行步骤(44)到步骤(46);对于某一类的某个加工特征,为了增强数据集,对该加工特征进行随机旋转操作。
本实施例中随机旋转操作以加工特征所在三维模型的坐标原点o为旋转轴的原点p;随机生成一个单位向量
(44)提取加工特征;
为了方便提取加工特征,利用步骤一中获取加工特征的方法,首先将加工特征所包含的面关联在一个表面粗糙度上,然后利用二次开发技术,获取加工特征面集。
(45)对加工特征进行三角网格划分,并导出三角网格数据;
首先将加工特征面集,转化为片体集合,然后将片体集合进行三角网格划分,导出stl格式的文件。本实施例中这种stl格式的文件包含了三角网格每个三角形的法向量
(46)对三角网格数据进行数据提取及处理;
如图4所示,其具体的方法为;
1)从导出的stl文件中提取三角网格数据中每个三角形的法向量
2)计算每个三角形的中心坐标co;
3)计算每个三角形的角向量(中心与三个顶角构成的三个向量);
4)将上述坐标数据进行归一化处理;首先计算所有三角形顶角坐标p(x,y,z)距离原点的距离:
5)对每一个三角形进行编号,并计算每个三角形的三个邻接面编号(不足三个以自身编号补全);如果两个三角形相邻,则这两个三角形共享一条边,即有两个公共顶角。首先,对每一个三角形进行编号;然后对于每个面,通过遍历其它所有面,判断两者是否同时拥有两个相同顶角来确定其是否为邻接面;最后,记录下每个面的邻接面编号。
6)将数据存储于以加工特征类型命名的文件夹中,文件夹中储存处理完的数据,主要指三角形的中心坐标、法向量、角向量、邻接三角形编号,以npz文件格式储存。以特征类型命名是为了在训练的时候用文件夹的名称作为标签。
(47)将处理完的每一类加工特征数据分为训练集和测试集。本实施例中将处理完的数据按照7:3的比例分为训练集和测试集用于神经网络的训练测试。
步骤五:将训练集和测试集放入神经网络训练,获得最优神经网络训练模型。
步骤六:将步骤三中处理完的数据输入步骤五中获得的最优神经网络训练模型中进行加工特征识别。
为了验证上述方法的效果,本实施例中采用上述方法进行试验,具体以船用柴油机关键件为例,共定义了7类加工特征,如图6所示,分别为:平面、通孔、圆弧槽、直槽、平底盲孔、锥底盲孔、阶梯孔。每类特征选取了2~5个加工特征,每个加工特征绕着随机生成的15根旋转轴各旋转10次,每次旋转随机角度,然后导出为三角网格数据,并进行数据处理。如此共生成了2678个文件,根据7:3的比例划分为训练集与测试集。
最后在船用柴油机机架、缸盖、连杆上选取了共32个加工特征进行验证,如图7所示,结果32个加工特征全部识别正确,准确率达到了100%,明显高于现有识别方法。
1.一种基于三角网格及神经网络的加工特征识别方法,其特征在于:包括如下步骤:
s1:导入零件设计模型,通过pmi定位获取加工特征;
s2:将加工特征进行三角网格划分,并导出三角网格数据;
s3:对三角网格数据进行数据提取及处理;
s4:创建自定义加工特征数据集;
s5:将自定义加工特征数据集放入神经网络训练,获得最优神经网络训练模型;
s6:将步骤s3中处理完的数据输入最优神经网络训练模型中进行加工特征识别。
2.根据权利要求1所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s1中零件设计模型为mbd设计模型。
3.根据权利要求1所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s1中通过pmi定位获取加工特征的方法为:首先获取加工特征特有的pmi标注;然后获得每个pmi关联的面集f={f1,f2,...,fk},其中,k为每个pmi关联面的个数;最后每个pmi关联面集即为组成对应加工特征的面集。
4.根据权利要求3所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s1中加工特征特有的pmi标注为表面粗糙度pmi标注,表示为:p={p1,p2,...,pt},其中,t为导入模型上待识别加工特征的个数。
5.根据权利要求3所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s2具体为:将加工特征关联面集f转化为片体集合s={s1,s2,...,sk},然后将片体集合进行三角网格划分,并导出三角网格数据。
6.根据权利要求1或5所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s2中导出的三角网格数据包含了每个三角形的法向量和三个顶角的坐标。
7.根据权利要求6所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s3中三角网格数据的数据提取及处理方法为:
a1:提取三角网格数据中每个三角形的法向量及三个顶角的坐标;
a2:计算每个三角形的中心坐标;
a3:计算每个三角形的角向量;
a4:对坐标数据进行归一化处理;
a5:对处理后的每个三角形进行编号,获取每个三角形的三个邻接面编号。
8.根据权利要求1所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s4中自定义加工特征数据集的创建方法为:
b1:自定义加工特征集n={n1,n2,...,ns},其中s为自定义加工特征个数;
b2:对第i个加工特征类型ni∈n,创建不同尺寸的此类加工特征m={m1,m2,...,ml},其中l为每类加工特征所创建的个数;
b3:对第j个加工特征mj∈m,进行随机旋转;
b4:提取加工特征;
b5:对加工特征进行三角网格划分,并导出三角网格数据;
b6:对三角网格数据进行数据提取及处理;
b7:将处理完的数据划分为训练集和测试集。
9.根据权利要求1所述的一种基于三角网格及神经网络的加工特征识别方法,其特征在于:所述步骤s5中放入神经网络训练的自定义加工特征数据集的数据包括每个三角形的中心坐标、法向量、角向量、邻接三角形编号。
技术总结