邵海瑞,刘伊华,王希阔,王永娟
(1.南京理工大学 机械工程学院, 南京 210094;2.中国兵器工业第208研究所,北京 102202; 3.中国人民解放军63856部队,吉林 白城 137001)
特征识别是连接设计与生产加工之间的桥梁,CAD系统三维建模表达的是底层几何和拓扑信息,而下游应用需要的是高层次的应用特征,例如加工特征信息。因此对加工特征识别的优劣关乎下游的生产加工。目前对于特征识别主要分为基于边界匹配的特征识别、基于立体分解的特征识别和基于神经网络的特征识别。
随着计算机软硬件的快速发展,也为神经网络技术的发展提供了良好的环境,基于神经网络的特征识别也出现越来越多的研究成果。将零件的三维结构转化为三维彩色图片,然后输入给神经网络模型,这一方法给零件加工特征识别注入了新的解决方案。国内外研究学者对其有大量的研究,Google公司提出了Google Net卷积神经网络模型,引入了inception模块;Kaiming等提出了ResNet网络模型,引入Residual结构;Hu等提出了SENet网络模型,能够有效抑制卷积核的通道,以上的研究都对模型进行了优化,从不同方面提高了神经网络的准确率和有效性。Zhang等将深度学习应用到特征识别中,具有较高的识别率。
于洋等通引入解决子图同构问题的VF2算法对加工特征进行识别。唐硕等通过边界表示的方法对孔类零件进行特征识别。王军等提出基于图和痕迹的相交特征识别算法对STEP-NC相交特征进行识别。陆凯等将加工特征识别问题转化为图学习问题,提出一种基于数据驱动的飞机结构件加工特征识别方法。薛晓辉等运用遗传算法对BP神经网络进行优化以解决数控加工特征识别。齐峰等提出一种应用特征构成面及其属性邻接边信息构成特征编码的特征表示模型并结合基于径向基函数的神经网络进行加工特征的识别。吕超凡等用近邻算法构建点云的旋转不变表示,结合融入几何实验知识的点云分类网络进行加工特征识别。高远等通过以遗传算法为主的神经网络对数控加工特征进行识别。张禹等以混沌算法、遗传算法、BP神经网络算法结合BP神经网络中以进行STEP-NC制造特征识别。许如欢提出一种基于几何推理和神经网络相结合的加工特征识别混合算法。部分学者将三维拓扑结构转化为点云数据,然后输入给神经网络模型进行训练,最后对加工特征进行分类识别。
以上学者对特征识别的研究具有显著的成果,但是也存在相交特征和复杂特征不能完全识别、对属性邻接图冗余操作等问题。而枪械关重件外形轮廓较为复杂,多为异形面,因此提出一种基于卷积神经网络的复杂加工特征识别方法,为下游提供加工特征信息。首先对枪械关重件进行复杂加工特征分类,然后将零件的三维几何拓扑结构模型转化为图片格式,并创建各个复杂加工特征图像数据集,建立其基于深度学习的卷积神经网络模型,再次构建复杂加工特征分类器,最后基于UG平台进行实例验证枪械关重件的复杂加工特征识别。
在零件的设计阶段,设计者会有多种方法构建零件的三维模型,其中的特征称之为几何形状特征,但是几何形状特征却不适用于生产加工阶段,因此在生产加工阶段提出加工特征概念。枪械关重件中含有深孔特征,此深孔特征具有超大的深径比,且枪械关重件还有尺寸小,形状较为复杂,形面加工多,加工工序多等特点。结合关重件的加工过程和工艺特点对关重件的几何形状特征进行重新提取、分解、归类、聚合。以某型号的自动武器为例,将其加工特征分成六大类21小类,其中复杂加工特征主要包含深孔、螺纹孔、不规则槽、圆弧面、螺旋槽、螺旋面等特征,如图1所示。
图1 枪械关重件加工特征分类框图Fig.1 Classification of processing characteristics of guns and heavy parts
卷积神经网络是一种包含卷积计算且具有深度结构的前馈神经网络,是深度学习算法之一,一般由输入层、卷积层、池化层、全连接层和输出层组成,如图2所示。其中输入层为特征图像的输入;卷积层通过内部的卷积核和激励函数对特征图像进行提取;池化层通过池化函数对卷积层得到的特征图进行特征选择和信息过滤;全连接层对经过卷积层和池化层提取的特征进行非线性组合以得到输出;输出层使用逻辑函数输出分类标签和结果。
图2 卷积神经网络一般结构框图Fig.2 General structure diagram of convolutional neural network
卷积层主要对输入层的特征图像进行特征提取,其主要包括卷积核、卷积层参数和激励函数。卷积层的主要原理为卷积核沿着该层输入的特征图像以卷积步长进行移动,并在对应位置进行卷积运算。卷积核是卷积层中最重要的组成元素,组成卷积核的每个元素都对应一个权重系数和一个偏差量。卷积层参数主要包含卷积核大小、步长和特征填充方式,卷积核越大,可提取的输入特征越复杂。卷积步长定义了卷积核两次扫过特征图时位置的距离。填充方式主要分为有效填充、相同填充、全填充和任意填充4种。卷积层中采用激励函数来协助其表达复杂特征,表示形式为:
(1)
常用的激励函数主要有sigmoid函数、Tanh函数、ReLU函数,其中应用最多的是ReLU函数(见图3),ReLU函数的表示形式为:
图3 ReLU函数及其导函数曲线Fig.3 ReLU function and its derivative function
(2)
ReLU激励函数当≥0时,梯度为1,不存在梯度饱和问题;当<0时,增加了网络的稀疏性,提高了模型的泛化能力,因此采用ReLU激励函数对卷积层的参数进行激励。
池化层又称下采样层,由卷积层输入的特征图数据传递至池化层进行特征选择和过滤,在保存有用信息的基础上减少数据量,进而会减少卷积神经网络的训练量和提高训练效率。对池化层的操作方式主要有平均池化、最大池化、混合池化和随机池化四种,其主要受池化窗口大小、步长和填充方式控制。最大池化方式进行特征图的提取与处理。表示形式为:
(3)
式中:为填充层数;为卷积步长;为卷积核大小;(,)为特征图的像素。
全连接层位于卷积神经网络隐含层的最后部分,用于对提取到的特征进行分类组合并输出最后的结果。特征图像经过卷积层和池化层的提取、压缩和输出之后,经过最后一个全连接层进行分类识别,一般采用逻辑回归,Softmax回归对样本进行分类,并输出最终的结果。其中Softmax回归函数表示形式为:
(4)
由式(4)可以看出,当输入特征为,预测类别为的概率为,特征的所有类别概率和为1,对于特征值越大的类别,最后该类输出的概率值也就越大。
简单加工特征的识别已经有较多的识别方法,但是对于复杂加工特征却没有行之有效的方法予以识别,因此本文主要研究枪械关重件复杂加工特征的识别。
基于卷积神经网络的复杂加工特征识别主要从复杂加工特征多角度捕捉图像法构建复杂加工特征数据集、建立复杂加工特征卷积神经网络模型和构建复杂加工特征图像分类器等3个方面对枪械关重件的复杂加工特征进行识别。采用复杂加工特征多角度捕捉图像的方法创建数据集,然后将数据集输入给卷积神经网络模型进行训练,之后采用损失函数计算模型的误差值和最小梯度法对模型进行优化,最后采用Softmax分类器对获取的三维拓扑结构图像进行分类识别,最后输出识别结果,其流程如图4所示。
图4 基于CNN的复杂加工特征识别流程框图Fig.4 CNN-based method flow for the identification of complex processing features
复杂加工特征数据集决定复杂加工特征卷积神经网络模型的输入,对复杂加工特征分类器有基础性的意义。采用复杂加工特征多角度捕捉图像方法构建复杂加工特征数据集。
首先使用参数化建模的方法创建若干个形状大小参数不同的三维模型,然后根据复杂加工特征分类对拓扑结构进行抽取,然后对抽取的加工特征从图像背景、视图方向、线框模型、特征颜色、特征平移、特征旋转、特征缩放等方面进行控制变量法操作输出avi格式视频,最后将输出的avi格式视频转化为统一格式的jpg二维彩色图像。下面以枪械关重件中的深孔加工特征为例说明构建深孔加工特征数据集的具体步骤如下:
1) 采用参数化建模方法,创建枪械关重件中深孔的三维模型;
2) 抽取深孔几何特征。对深孔的三维模型进行抽取几何体操作,选择单个面选项;
3) 输出avi格式视频。对抽取出的深孔加工特征进行视图背景、视图方向、线框类型、实体颜色、实体平移、实体旋转、实体缩放等方面进行处理,得到加工特征在不同视图背景、不同视图方向、不同线框类型、不同实体颜色、不同实体位置、不同实体角度、不同实体大小的视频;
4) 输出jpg格式图片。对上一步骤输出的视频通过外部软件转化为每帧输出的jpg格式图片。
根据上述方法,分别建立枪械关重件复杂加工特征数据集,在此列出深孔加工特征数据集和螺旋面加工特征数据集,如图5和图6所示。
图5 深孔加工特征部分数据集示意图Fig.5 Deep hole machining feature part data set
图6 螺旋面加工特征部分数据集示意图Fig.6 Partial data set of spiral surface processing features
根据枪械关重件复杂加工特征分类,并结合枪械关重件的机加工艺特点,对枪械关重件的复杂加工特征识别效果更佳,以卷积神经网络为框架,设计一种包含四层卷积层、四层池化层和三层全连接层的卷积神经网络结构模型,其每层的参数如图7所示。
图7 隐含层参数框图Fig.7 Hidden layer parameters
在对数据集和模型构建完成以后,需要对模型进行评估和优化,然后采用复杂加工特征分类器对其进行加工特征分类。对模型的评估采用交叉熵函数来描述计算结果中真实概率与预测概率的差异,其计算公式为:
(5)
确定损失函数以后,需要根据损失函数计算出的函数值,采用梯度下降法来修正复杂加工特征卷积神经网络模型,从而减小误差,以达到网络预测的结果不断接近真实结果。在优化卷积神经网络的模型之后,采用Softmax的方式对复杂加工特征进行分类。
构建枪械关重件的复杂加工特征数据集和搭建卷积神经网络模型之后,用python程序在PyCharm平台中编写复杂加工特征图像分类算法,算法流程如图8所示。
图8 复杂加工特征图像分类算法流程框图Fig.8 Complex processing feature image classification algorithm flow
具体步骤为:
1) 获取所有加工特征图像数据集,其中包含个加工特征,每个加工特征中含有张加工特征图,循环变量初始值为=1,=1,其中-表示第个加工特征的数据集,-表示第个加工特征数据集中的第一张加工特征图;
2) 依次读取第个特征的第张加工特征图,输入给训练好的复杂加工特征卷积神经网络模型,得到第-张加工特征图的预测概率为-;
3) 然后根据得到的-计算-加工特征图的最大期望值=max{,,,…,};
4) 根据得到的最大期望值,结束复杂加工特征图像识别,输出最终的复杂加工特征类型。
根据本文提出的基于卷积神经网络的复杂加工特征图像识别方法,采用Python语言编写程序,以PyCharm平台结合TensorFlow深度学习框架构建复杂加工特征分类器,并通过UG的API接口建立复杂加工特征识别模块对其进行实例验证。
将枪械关重件训练集输入给复杂加工特征卷积神经网络模型训练参数,如表1所示。训练次数和数据集损失值的函数曲线,如图9所示,训练次数和数据集准确率的函数曲线,如图10所示。
表1 模型训练参数Table 1 Model training parameters
图9 数据集损失函数曲线Fig.9 Data set loss function
图10 数据集识别率函数曲线Fig.10 Data set recognition rate function
在卷积神经网络完成大量的数据训练以后,选择枪械关重件进行复杂加工特征识别验证。其关重件特征在上述六大类加工特征之中,通过抽取几何体、复杂加工特征多角度捕捉图像法以及复杂加工特征图像识别分类等操作,部分加工特征识别结果,如表2所示。
表2 复杂加工特征识别结果Table 2 Partial processing feature recognition results
枪械某关重件复杂加工特征识别结果,如图11所示,从识别结果可以看出,该方法能够识别出复杂加工特征类型。
图11 枪械某关重件复杂加工特征识别结果界面Fig.11 Recognition results of complex processing features of a certain key important part of firearms
1) 神经网络与传统方法
基于边界匹配的加工特征识别方法对特征的定义简单,能准确地描述特征面邻接属性,算法效率高,但是无法识别相交特征;基于立体分解的加工特征识别方法能够识别简单的相交特征,但是识别过程是基于大量的布尔运算,会导致计算量大,效率低。而基于卷积神经网络的复杂加工特征识别方法有较高的效率,能够识别相交特征,并且能够识别尺寸大小不同、视图方向不同的加工特征。
2) 不同神经网络方法
文献[22]中基于多层感知机(multilayer perceptron,MLP)模型,采用改进的NBA算法优化BP神经网络,能识别出孔、盲孔、通槽、台阶、T形槽、盲槽和部分相交特征。文献[23]中基于CNN模型可以识别不同类型的钻孔的可加工制造性。文献[7]中构建孔、槽、台阶等24种常见的简单特征数据集,然后基于CNN对其进行加工特征分类识别。本研究中提出的基于CNN的复杂加工特征识别模型,不仅能够识别孔、槽、台阶等简单加工特征,而且能够识别深孔、枪用螺旋槽等复杂加工特征,是对原有加工特征识别的一种扩展。
1) 提出了复杂加工特征多角度捕捉图像方法,创建了复杂加工特征数据集,建立了复杂加工特征卷积神经网络模型,构建了复杂加工特征分类器;
2) 通过枪械关重件复杂加工特征识别实例验证了基于卷积神经网络的枪械关重件复杂加工特征识别方法有效、可行。