浙江大学学报(工学版), 2024, 58(2): 349-359 doi: 10.3785/j.issn.1008-973X.2024.02.013

机械工程

基于图神经网络的零件机加工特征识别方法

姚鑫骅,, 于涛, 封森文, 马梓健, 栾丛丛, 沈洪垚

浙江大学 机械工程学院,浙江省三维打印工艺与装备重点实验室,流体动力基础件与机电系统全国重点实验室,浙江 杭州 310027

Recognition method of parts machining features based on graph neural network

YAO Xinhua,, YU Tao, FENG Senwen, MA Zijian, LUAN Congcong, SHEN Hongyao

School of Mechanical Engineering, Key Laboratory of 3D Printing Process and Equipment of Zhejiang Province, State Key Laboratory of Fluid Power and Mechatronic Systems, Zhejiang University, Hangzhou 310027, China

收稿日期: 2023-07-3  

基金资助: 浙江省重点研发计划资助项目 (2021C01096);浙江省杰出青年科学基金资助项目(LR22E050002).

Received: 2023-07-3  

Fund supported: 浙江省重点研发计划资助项目(2021C01096);浙江省杰出青年科学基金资助项目(LR22E050002).

作者简介 About authors

姚鑫骅(1978—),男,副教授,博士,从事智能制造的研究.orcid.org/0000-0003-0261-3938.E-mail:yaoxinhuame@zju.edu.cn , E-mail:yaoxinhuame@zju.edu.cn

摘要

针对现有基于深度学习的方法存在的难以识别相交特征、无法精确确定加工特征面的问题,提出基于图神经网络的加工特征识别方法. 通过压缩激励模块提取节点与邻接边的特征,构建节点级与邻接边级的双层注意力网络,分割每个节点对应的加工特征. 该方法充分利用了零件模型的面特征与边特征,结合零件模型的拓扑结构,基于注意力机制对特征信息进行深度学习,可以有效地解决非面合并相交特征的识别问题. 在多加工特征零件数据集上,将该方法与其他3种特征识别方法进行实验对比,在准确率、平均类准确率和交并比3项指标上均取得最优结果,识别准确率高于95%.

关键词: 加工特征 ; 属性邻接图 ; 图神经网络 ; 注意力机制 ; 深度学习

Abstract

A method for recognizing machining features based on graph neural networks was proposed in order to address the difficulties in identifying intersecting features and accurately determining machining feature surfaces in existing deep learning-based approaches. Features of nodes and adjacent edges were extracted through a compression activation module, and a dual-layer attention network at the node and adjacent edge levels was constructed in order to segment the machining features corresponding to each node. The surface features and edge features of the part model were fully used combined with the topological structure of the part model. The recognition problem of non-face merged intersecting features was effectively addressed by employing attention mechanisms for deep learning on the feature information. The proposed method was experimentally compared with three other feature recognition methods on a dataset of parts with multiple machining features. The optimal results were obtained in terms of accuracy, average class accuracy and intersection-over-union metrics. The recognition accuracy exceeded 95%.

Keywords: machining feature ; attribute adjacency graph ; graph neural network ; attention mechanism ; deep learning

PDF (2518KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

姚鑫骅, 于涛, 封森文, 马梓健, 栾丛丛, 沈洪垚. 基于图神经网络的零件机加工特征识别方法. 浙江大学学报(工学版)[J], 2024, 58(2): 349-359 doi:10.3785/j.issn.1008-973X.2024.02.013

YAO Xinhua, YU Tao, FENG Senwen, MA Zijian, LUAN Congcong, SHEN Hongyao. Recognition method of parts machining features based on graph neural network. Journal of Zhejiang University(Engineering Science)[J], 2024, 58(2): 349-359 doi:10.3785/j.issn.1008-973X.2024.02.013

零部件加工特征识别是衔接机加工零件设计过程与制造过程的关键技术. 特征识别中的基本问题是识别高层次信息,即从明确几何实体表示的对象中找到隐含模式. 在这个领域,研究人员提出了基于痕迹[1-2]、基于图[3-5]、基于体积分解[6]等多种特征识别方法. 在传统的特征识别方法中,研究人员必须在充分理解各种加工特征结构的基础上开发可靠的识别规则. 随着深度学习技术的不断发展,应用多层神经网络技术来识别加工特征的研究正在不断深入. 利用多层卷积神经网络模型,可以自动地从原始数据中学习到复杂的特征表示,能够高效地对加工特征进行解析.

深度学习特征识别方法输入数据的类型可以大致分为体素、多视图、点云、图. Zhang等[7]将深度学习应用到加工特征识别中,提出三维卷积神经网络FeatureNet,通过binvox网格体素库将边界表示模型转化为体素模型,对网络进行训练,以学习加工特征的形状与分布. 在多视图神经网络的启发下,Shi等[8]提出基于多截面视图表示的特征识别深度学习框架MsvNet. MsvNet使用三维模型的截面视图作为神经网络的输入,通过神经网络组合不同视图获得的信息以用于识别. 与二维图像相比,三维点云能够获得更多的空间信息. Ma等[9]通过模型转换和特征采样,构建用于学习三维点云数据的样本库. 基于PointNet[10]对单特征模型进行识别,对点云噪声表现出较好的鲁棒性. 高玉龙[11]提出基于加工面点云深度学习的加工特征识别方法,通过对点云进行随机破坏来模拟特征相交造成的边界破坏. Yao等[12]提出基于层次神经网络的加工特征识别方法,该方法基于聚类和面片重组的多特征分割技术,将复杂的多特征点云模型分割为单特征点云模型进行识别.

基于体素的方法随着体素分辨率的增加,计算复杂度呈3次方增长,导致计算成本高昂. 与基于体素的方法相比,利用基于多视图的方法提高了计算效率与对相交特征的识别能力. 这类方法使用二维图像来表示三维模型,可能会导致几何和拓扑信息的丢失. 这类方法通过预测加工特征的长方体包围盒来粗略定位加工特征,无法精确确定加工特征面. 基于点云的方法在识别复杂零件的加工特征时,往往需要密集的采样点,零件模型的点云表示难以保留拓扑结构信息.

与上述离散化表示方法相比,三维模型的边界表示具有更高的准确性与适用性,能够反映模型的拓扑结构,然而很少有神经网络能够直接读取边界表示模型的信息. 为了解决该问题,Cao等[13]将边界表示模型转化为属性邻接图,通过图神经网络对特征进行识别,这是首次将深度学习应用于三维模型的图表示. 该方法使用平面方程的系数作为节点特征来描述几何形状,无法处理含有曲面的模型.

本文针对复杂结构零部件中相交特征难以识别、无法精确确定加工特征面的问题,基于压缩激励网络和图注意力网络构建神经网络模型,提出零部件加工特征识别网络,在多加工特征零件模型上验证了本文方法的有效性.

1. 基于属性邻接图的零件模型表征

1.1. 属性邻接图的理论基础

1.1.1. 边的凹凸性

三维实体模型中的边是2个相邻面的相交边界,边的凹凸性在一定程度上反映了2个面之间的几何特征. 边的凹凸性定义如下:当边的两相邻面外侧(面法向量的方向)夹角小于180°时,该边为凹边;当边的两相邻面外侧夹角大于180°时,该边为凸边;当边的两相邻面外侧夹角等于180°时,该边为切边.

当边的2个相邻面之中的任意一个不是平面时,无法通过直接计算面法向量夹角的方法来判断边的凹凸性,因为非平面的法向量可能随面内位置的变动而变化. 采用如下方法来判断边的凹凸性:假设面Fi与面Fj的公共边为E,公共边E上的任意一点为P,面Fi与面Fj在点P的法向量分别为NiNj,则判断边E凹凸性的具体步骤如下.

1)判断边E和点P在面Fi中的方向,其定义为当沿着边E的方向前进时面Fi始终在其左侧,点P的方向为P在其所处位置的切线方向,记为TP,如图1所示. 图中,虚线为边在各面中的方向.

图 1

图 1   相交边凹凸性算法的示意图

Fig.1   Diagram of intersection edge convexity algorithm


2)计算面法向量NiNj的矢量积V

$ {\boldsymbol{V}} = {{\boldsymbol{N}}_i} \times {{\boldsymbol{N}}_j}. $

3)计算TPV的数量积CE. 若CE < 0,则边E为凹边;若CE > 0,则边E为凸边;若CE = 0,则边E为切边,面Fi与面Fj光滑连接.

$ {C_E} = {{\boldsymbol{T}}_P} \cdot {\boldsymbol{V}} . $

1.1.2. 节点与邻接边的属性定义

通过对零部件模型的面与边进行采样,构建其特征矩阵作为属性邻接图节点与邻接边的属性,具体的定义方式如下.

1)节点的属性定义.

a) 节点序号:使用唯一的整数来表示属性邻接图中的一个节点,标识零件模型中对应的面.

b) 面采样点的坐标:使用浮点型变量,标识面上采样点的xyz坐标.

面采样点法向量:使用浮点型变量,标识面上采样点的法向量NxNyNz.

面的凹凸性:使用浮点型变量,标识面上采样点的高斯曲率K.

2)邻接边的属性定义.

a) 邻接边序号:使用唯一的整数来表示属性邻接图中的一条邻接边,标识零件模型中对应的公共边.

b) 邻接边的起点和终点:使用2个整型变量分别存储邻接边的起始节点序号和终止节点序号,由机械零件模型构建成的属性邻接图本质上是无向图,因此零件模型中的一条公共边对应属性邻接图中的2条有向邻接边,它们的方向相反,这2条有向邻接边对应边界表示模型拓扑结构环中的2条有向边.

c)边采样点的坐标:使用浮点型变量,标识边上采样点的xyz坐标.

d) 边采样点切向量:使用浮点型变量,标识面上采样点的法向量TxTyTz.

e) 邻接边的凹凸性:使用浮点型变量,标识公共边上采样点的凹凸性.

1.2. 属性邻接图的构建
1.2.1. 边与面的采样算法

为了更好地反映曲线曲率变化明显处的几何特征,满足后续使用的神经网络结构对输入数据尺寸的一致性要求,提出如下的曲线采样算法,具体流程如下.

1)判断模型边的类型,当边为直线时,直接使用等参数采样获得n个采样点返回. 当边为非直线类型时,对曲线进行密集的等参数采样,将采样点数设置为曲线弧长的10倍.

2)计算曲线上相邻点之间的距离,对距离进行累加并归一化,得到曲线的累计距离分布. 计算曲线在各点处的曲率,对曲率进行累加并归一化,得到曲线上的累计曲率分布. 将累计距离分布和累计曲率分布相加并归一化,得到混合分布.

3)生成n个在[0, 1.0]上均匀分布的采样点p,根据混合分布找到离p最近的点的索引,得到索引集合p_index,去除p_index中重复的索引.

4)若p_index中的索引数小于n,则需要添加更多的采样点.

a) 计算每个区间的长度,其中区间由2个相邻的索引p_index[i−1]和p_index[i]之间的点组成.

b) 计算每个区间的平均曲率,找到平均曲率最大的区间. 在该区间内进一步细分采样,得到新的采样点的索引.

c) 将新的索引添加到索引集合p_index中,对索引集合进行排序.

d) 重复步骤a)~c),直至p_index中的索引数等于n.

5)根据p_index中的索引,返回曲线上对应的n个采样点.

n = 30的情况下,上述曲线采样算法与等参数采样、等弧长采样在同一段曲线上的采样结果如图2所示. 可以看出,本文方法在曲线曲率变化明显的位置采样密集,在曲线平坦的位置会设置一定数量的采样点.

图 2

图 2   曲线采样结果的对比

Fig.2   Comparison of curve sampling results


为了使不同曲面上的采样点数一致,尽可能表征曲面的形状,使用边缘样本交叉积曲面采样算法[14]. 利用下式依次计算曲面在节点方向上的边际累积面积:

$ {C_{{u}}}\left( {{u}} \right) = \int_{{u_1}}^u {\mathrm{d}} s\int_{{v_1}}^{{v_{m+1}}} {\left\| {{{\boldsymbol{r}}_s}\left( {s,{{v}}} \right) \times {{\boldsymbol{r}}_v}\left( {s,{{v}}} \right)} \right\|} {\mathrm{d}}{{v}} , $

$ {C_{{v}}}\left( {{v}} \right) = \int_{{v_1}}^v {\mathrm{d}} v\int_{{{{u}}_1}}^{{{{u}}_{n+1}}} {\left\| {{{\boldsymbol{r}}_{\boldsymbol{s}}}\left( {{{s}},v} \right) \times {{\boldsymbol{r}}_v}\left( {{{s}},v} \right)} \right\|} {\mathrm{d}}{{s}} . $

式中:${{\boldsymbol{r}}_{{s}}}\left( {{{s}},v} \right) $${{\boldsymbol{r}}_v}\left( {{{s}},v} \right) $分别为自由曲面${{\boldsymbol{r}}}\left( {{{s}},v} \right) $$ {{s}}$方向、$ {{v}}$方向的求导向量. 将曲面上的采样表示为2个边缘样本的交叉积.

图3所示为零件模型及对应的采样点分布. 图中,面上的采样点和边上的采样点均用点表示出来. 在采样点处边的切向量方向与面的法向量方向均使用短线表示.

图 3

图 3   零件模型及对应的采样点分布

Fig.3   Part model and its sampling point distribution


1.2.2. 点采样曲面高斯曲率的计算

面的凹凸性通常根据曲面在某一位置处高斯曲率的正、负来判断,胡盼旺[15]通过计算曲面上某点处的法向量与曲率圆的位置关系来判断高斯曲率的正负性. 对于凹凸性随位置而变化的自由曲面,利用该方法无法判断整体的凹凸性,因此直接计算曲面上各采样点处的高斯曲率.

Meyer等[16]基于三角网格模型提出Voronoi曲率估算方法,通过一簇三角网格来线性逼近光滑曲面,将网格顶点处的度量定义为该顶点邻域的空间平均值. 在局部有限体积区域内,由高斯-博涅定理可得

$ \iint_{{A_{\mathrm{M}}}} {{K_{\mathrm{G}}}{\mathrm{d}}A = 2{\text{{{π}}}} - }\sum\limits_{j = 1}^f {{\theta _j}} . $

式中:$ {K_{\mathrm{G}}}$为高斯曲率,θj为第j个面在顶点pi处的角度,f为该顶点周围的面数,AM为顶点pi所在Voronoi区域的面积.

利用边缘样本交叉积曲面采样算法对曲面进行采样,获得曲面的点集模型. 与三角形网格模型相比,点集模型不标识某点pi的邻接点集合N(pi),因此使用K近邻算法确定邻接点集合N(pi). Pauly等[17]证明密集的点采样可以替代三角形网格的连通性信息,不会显著降低简化曲面的质量.

直接使用线性扫描计算可知,K近邻中2点之间的距离的时间复杂度为O(n2). 为了提高搜索效率,使用基于k-d树的K近邻算法.

k-d树是空间分区数据结构,用于组织k维空间中的点,k-d树本质上是二叉搜索树,其中每个节点均为k维点. k-d树搜索可以在时间复杂度为O(log2 n)的情况下找出距离输入点pi最近的k个点,具体步骤如下.

1)从根节点开始,递归地向下访问树,直至到达叶子节点.

2)将该叶子节点视为当前最近点,计算该叶子节点与输入点pi的欧氏距离dmin.

3)从叶子节点开始进行回溯,对遍历到的当前点开展如下操作.

a) 计算当前点到输入点pi的距离dcur, 若dcur < dmin,则将当前点作为当前最近点.

b) 检查以输入点pi为球心、dmin为半径的超球体是否与另一子树节点相交. 若相交,则从另一子树节点开始向下搜索;若不相交,则继续向上进行回溯.

4)当回溯至根节点时,当前最近点为距离输入点pi最近的点,将其添加至近邻点集合中. 重复步骤1)~3) K次,即可完成搜索.

通过基于k-d树的K近邻算法获取点pi的近邻点集合N(pi),分别计算点pi与其近邻点形成的夹角之和与点pi处的Voronoi区域面积AM,代入式(6),可以计算得到该点处的高斯曲率.

1.2.3. 属性邻接图的构建算法

在对节点与邻接边属性定义的基础上,属性邻接图构建算法的具体步骤如下.

1)使用NetworkX开源库构建没有节点与邻接边的空图,读取零件边界表示模型与标签文件,对零件模型进行解析.依次遍历模型中的所有面、边与点,构建Map类,将面、边、顶点对象的哈希值映射至整型索引.

2)遍历零件模型中的所有面,对于面Fi,将面对象与其序号作为节点参数添加至步骤1)的空图中. 遍历零件模型中的所有边,对于边Ej,将边对象、边序号与相邻面序号作为邻接边参数添加至图中,完成邻接图表达结构的创建.

3)创建节点属性列表,遍历图中的节点,依次计算节点面对象上采样点的坐标、法向量与凹凸性,合并后添加至节点属性列表中. 创建邻接边属性列表,遍历图中的邻接边,依次计算边对象上采样点的坐标、切向量与凹凸性,合并后添加至邻接边属性列表. 完成零件模型属性邻接图的构建.

假设构建的属性邻接图中节点个数为num_nodes,邻接边条数为num_edges,曲面在各方向上的采样点数均为m,曲线上的采样点数为n,则节点面的特征矩阵尺寸为[num_nodes,mm,7],邻接边的特征矩阵尺寸为[num_edges,n,7].

2. 基于双层注意力机制的加工特征识别网络

2.1. 加工特征识别网络架构的设计

构建的加工特征识别网络整体架构如图4所示,网络整体上可以分为基于压缩激励网络的特征提取部分与基于图注意力网络的节点分割部分. 节点与邻接边的特征矩阵分别经过对应的特征提取网络. 压缩激励网络部分的输出,作为图注意力网络的输入,在图注意力网络中使用节点级与邻接边级的双层注意力机制,在学习节点嵌入的同时学习边的嵌入,在每个注意力层进行更新. 将学习到的节点嵌入经过多层感知机与Softmax函数,输出每个节点所属各加工特征类别的概率.

图 4

图 4   加工特征识别网络的整体架构

Fig.4   Framework of machining feature recognition network


2.2. 基于压缩激励网络的特征提取

在SENet[18]中引入关注信道的压缩激励模块,通过显式地建模信道之间的相互依赖性,自适应地重新校准信道的特征响应. 构建的基于压缩激励网络的特征提取部分主要由压缩激励模块、激活层、池化层组成,其中压缩激励模块主要包括卷积层与压缩激励层,如图5所示.

图 5

图 5   基于压缩激励网络的特征提取

Fig.5   Feature extraction based on SENet


节点特征提取部分与边特征提取部分均设计了3级压缩激励模块,各层网络的参数细节如表12所示. 表中,Nv、Ne分别为节点特征提取网络和边特征提取网络中的批量数. 在每一级的压缩激励模块中,特征首先进行一次卷积运算,以Conv(64,128,3,1,2)为例,输入的特征矩阵信道数为64,输出的特征矩阵信道数为128,卷积核的尺寸为3,1表示在输入矩阵的四周进行1层填充,2表示卷积移动的步长.

表 1   节点特征提取网络的参数

Tab.1  Parameters of node feature extraction network

节点特征提取网络各层输入特征尺寸输出特征尺寸
Conv2d(7,64,3,1,1)(Nv,7,10,10)(Nv,64,10,10)
SE(16)(Nv,64,10,10)(Nv,64,10,10)
Conv2d(64,128,3,1,2)(Nv,64,10,10)(Nv,128,5,5)
SE(16)(Nv,128,5,5)(Nv,128,5,5)
Conv2d(128,256,3,1,2)(Nv,128,5,5)(Nv,256,3,3)
SE(16)(Nv,256,3,3)(Nv,256,3,3)
MixPool(Nv,256,3,3)(Nv,256,1,1)
Reshape(Nv,256,1,1)(Nv,256)
Linear(Nv,256)(Nv,64)

新窗口打开| 下载CSV


在每一层卷积运算后,均开展了批量规范化处理. 即对所有批次中同一个信道的数据进行规范化处理,使得每一层神经网络的特征能够保持相同的分布.

表 2   边特征提取网络的参数

Tab.2  Parameters of edge feature extraction network

边特征提取网络各层输入特征尺寸输出特征尺寸
Conv1d(7,64,3,1,1)(Ne,7,10)(Ne,64,10)
SE(16)(Ne,64,10)(Ne,64,10)
Conv1d(64,128,3,1,2)(Ne,64,10)(Ne,128,5)
SE(16)(Ne,128,5)(Ne,128,5)
Conv1d(128,256,3,1,2)(Ne,128,5)(Ne,256,3)
SE(16)(Ne,256,3)(Ne,256,3)
MixPool(Ne,256,3)(Ne,256,1)
Reshape(Ne,256,1)(Ne,256)
Linear(Ne,256)(Ne,64)

新窗口打开| 下载CSV


规范化后的特征进入压缩激励层,在该层中会执行压缩和激励2步操作. 压缩操作通过全局平均池化将全局的空间特征编码为信道描述器,生成信道维度特征响应的全局分布描述. 在压缩操作后的激励操作用来获取信道之间的相关性,为了提升泛化能力及降低模型复杂度,使用2个线性层分别进行降维与升维,将各信道的激活值与原始特征相乘,得到压缩激励层的输出.

在经过压缩激励层后,使用混合自适应池化对特征矩阵进行降维处理,去除冗余信息. 混合池化将平均池化与最大池化相结合,可以表示为

$ s_{i}=\frac{\lambda}{\left|R_{i}\right|} \sum_{j \neq R_{i}} x_{j}+(1-\lambda) \max _{j \neq R_{i}} x_{j} . $

在使用的混合池化中,$ \lambda $选为0.5,与单一的平均池化或最大池化相比,混合池化在无须对任何超参数进行调整的情况下有着更好的性能,有利于防止过拟合情况的产生.

在卷积网络预处理部分的最后,通过一组线性变换将每个节点与每条邻接边的特征转换为64维特征向量,通过LeakyRelu函数进行激活. 处理后的节点与邻接边特征矩阵与图结构信息一并传入图注意力网络中,学习节点与邻接边嵌入.

2.3. 基于图注意力网络的节点分割

2.3.1. 节点注意力模块

图注意力网络部分使用2级节点注意力模块,单个模块的构造如图6所示. 为了提高注意力机制的泛化能力,每个模块中均使用多头注意力层.

图 6

图 6   节点注意力模块

Fig.6   Node attention module


在每个单头注意力层需要生成目标节点与每个邻域节点之间的注意力系数. 注意力系数不仅包括2个节点的特征,还包括连接它们的边的特征. 假设当前为第l级节点注意力模块,邻域节点vj与边eij对节点vi的相对重要性εij可以表示为

$ {\varepsilon }_{ij}=\mathrm{exp}\left(\text{LeakyReLU}\left({{\boldsymbol{a}}}^{{\mathrm{T}} }\left[{{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{i}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{j}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{e}}}}}{{\boldsymbol{x}}}_{{{ij}}}\right]\right)\right) . $

式中:WnWe分别为对输入节点特征与输入边特征进行线性转换的可学习权重矩阵;a为共享的自注意力机制,在本文中为单层前馈网络. 利用Softmax函数对εij进行归一化,得到注意力系数αij.

$ {\alpha }_{ij} =\frac{\mathrm{exp}\left(\text{LeakyReLU}\left({{\boldsymbol{a}}}^{{\mathrm{T}} }\left[{{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{i}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{j}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{e}}}}}{{\boldsymbol{x}}}_{{{ij}}}\right]\right)\right)}{{\displaystyle \sum _{k\in {N}\left(i\right)\cup \left\{i\right\}} \mathrm{exp}}\left(\text{LeakyReLU}\left({{\boldsymbol{a}}}^{{\mathrm{T}} }\left[{{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{i}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{k}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{e}}}}}{{\boldsymbol{x}}}_{{{ik}}}\right]\right)\right)} . $

聚合的节点特征中不仅包含目标节点vi一阶邻域的节点特征,还包括目标节点vi本身的特征,这意味着式(9)中会出现自环eii的特征xii. 由零件模型构建成的属性邻接图中通常不会出现自环,也没有自环特征xii. 为了解决该问题,特征矩阵在输入模型之前,每个节点均添加一个自环,自环特征xii计算为所有与节点vi相连的边特征的平均值,可以表示为

$ {{\boldsymbol{x}}_{{{ii}}}} = \frac{1}{{\left| {{N}\left( i \right)} \right|}}\sum\limits_{k \in {N}\left( i \right)} {{{\boldsymbol{x}}_{{{ik}}}}} . $

在得到每个邻域节点的注意力系数αij后,通过对这些邻域节点特征进行加权求和,得到第k个单头注意力层的输出特征${{{\boldsymbol{x}}}}_{{i}}^{{k}} $.

$ {\boldsymbol{x}}_{{i}}^{{k}} = \sigma \left( {\alpha _{ii}^k{\boldsymbol{W}}_{{{\mathrm{n}}}}^{{k}}{{\boldsymbol{x}}_{{i}}}+\sum\limits_{j \in {N}\left( i \right)} {\alpha _{ij}^k{\boldsymbol{W}}_{{{\mathrm{n}}}}^{{k}}{{\boldsymbol{x}}_{{j}}}} } \right) . $

在多头注意力机制下,可以对各单头的输出进行多维拼接或者取平均,在2级节点注意力模块中均对单头输出的特征进行拼接. 拼接后的特征经过由2层全连接层组成的多层感知机后,即为单个节点注意力模块的输出.

$ {\boldsymbol{x}}_{{i}}^{{{l}}+{{1}}} = {\mathrm{MLP}}\left( {\mathop {||}\limits_{k = 1}^K {\boldsymbol{x}}_{{i}}^{{k}}} \right) . $

从式(12)可以看出,生成新的节点特征时只聚合了节点特征,边的特征仅在权重计算这一过程中起作用. 这样设计的原因在于后续生成边特征时,将节点特征作为其中一部分,若在每次迭代节点特征时将边特征合并进去,则可能会使整个网络变得更加混乱.

2.3.2. 边注意力模块

图注意力网络部分使用了2级边注意力模块,在每个边注意力模块中通过融合节点特征来生成新的边特征,因此需要学习边上节点相对于边的注意力系数.

边上的节点vp对于边eij的归一化注意力系数可以表示为

$ {\beta }_{ijp}=\frac{\mathrm{exp}\left(\text{LeakyReLU}\left({{\boldsymbol{b}}}^{{\mathrm{T}} }\left[{{\boldsymbol{W}}}_{{{{\mathrm{e}}}}}{{\boldsymbol{x}}}_{{{ij}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{p}}}\right]\right)\right)}{{\displaystyle \sum _{h\in \left\{i,j\right\}}\mathrm{exp}}\left(\text{LeakyReLU}\left({{\boldsymbol{b}}}^{{\mathrm{T}} }\left[{{\boldsymbol{W}}}_{{{{\mathrm{e}}}}}{{\boldsymbol{x}}}_{{{ij}}}\Vert {{\boldsymbol{W}}}_{{{{\mathrm{n}}}}}{{\boldsymbol{x}}}_{{{h}}}\right]\right)\right)} . $

在得到每个边上节点的注意力系数βijp后,对这些节点特征进行加权求和,再与边特征xij相加,可得第k个单头注意力层的边输出特征${\boldsymbol{x}}_{{ij}}^{{k}} $. 对各单头输出特征进行多维拼接并经过多层感知机,得到边注意力模块的输出${\boldsymbol{x}}_{{ij}}^{{{l}}+{{1}}} $.

$ {\boldsymbol{x}}_{{{ij}}}^{{{l}}+{{1}}} = {\mathrm{MLP}}\left( {\mathop {||}\limits_{k = 1}^K \sigma \left( {{\boldsymbol{W}}_{{{\mathrm{e}}}}^{{k}}{{\boldsymbol{x}}_{{{ij}}}}+\sum\limits_{{{p}} \in \{ {{i}},{{j}}\} } {\beta _{ijp}^k{\boldsymbol{W}}_{{{\mathrm{n}}}}^{{k}}{{\boldsymbol{x}}_{{k}}}} } \right)} \right) . $

每一级节点注意力模块输出的节点特征在传递给下一级模块的同时,也会传递到最后一级的合并层中进行拼接. 拼接后的特征经过由3层线性层组成的多层感知机与Softmax后,输出归一化概率. 该概率为面节点属于不同加工特征标签的概率,其中最大概率确定为该面节点所属的加工特征.

3. 实验结果与分析

3.1. 实验设置

基于pythonocc[19]开源库创建零件多加工特征数据集,与Cao等 [13]创建的MFCAD数据集的不同之处在于MFCAD数据集只选择在正方体基体的平面和直线边上生成一系列加工特征,本文使用的多加工特征数据集在长方体与圆柱体基体上生成了含有曲线曲面的加工特征. 整个数据集的特征类型如图7所示,共28种加工特征. 数据集模型的示例如图8所示,共包含5万个模型,其中基于长方体基体构建的模型与基于圆柱体基体构建的模型各2.5万个,按照3∶1∶1的比例划分为训练集、验证集与测试集. 数据集中的特征面分布如图9所示,特征序号与图7中一致. 图中,Nm为每种特征或每种特征面对应的模型数量.

图 7

图 7   多加工特征数据集的特征类型

Fig.7   Feature type of multi-machining feature dataset


图 8

图 8   多加工特征数据集模型的示例

Fig.8   Example of models in multi-machining feature dataset


图 9

图 9   多加工特征数据集特征与特征面分布

Fig.9   Feature and feature surface distribution of multi-machining feature dataset


将提出的加工特征识别网络与UV-Net[20]、PointNet[10]、DGCNN[21]在多加工特征数据集上进行结果对比. 优化算法选择为带动量的SGD优化器,学习率策略使用余弦模拟退火,初始学习率为1×10−2,最小学习率为1×10−4. 损失函数选择为交叉熵损失函数. 所有模型均训练了200个周期,训练的批尺寸设置为64,实验结果为5次重复实验的平均值.

由于PointNet与DGCNN均为基于点云的深度学习模型,将上述3种数据集中的零件模型转化为具有固定数量的点云数据. 对零件模型进行三角剖分转化为三角网格模型,以每个三角形的表面积为权重,在每个三角形内进行均匀采样,以生成固定数量的点,同时需要存储零件模型面与点云中单个点之间的映射,以方便比较不同网络模型在每个面上的识别结果. 数据集中的每个零件模型均被转化为含有2 048个点的点云数据.

3.2. 加工特征识别

为了对不同模型的加工特征识别效果进行评价,选取准确率、平均类准确率与交并比3种指标. 准确率是正确分类的样本数占总样本数的比例,可以计算为

$ A = \frac{{\displaystyle \sum\limits_{i = 1}^N {\mathrm{T}} {{\mathrm{P}}_i}}}{{\displaystyle \sum\limits_{i = 1}^N {\left( {{\mathrm{T}}{{\mathrm{P}}_i}+{\mathrm{F}}{{\mathrm{P}}_i}} \right)} }} . $

式中:N为类别数,TPi为第$ i $类正确分类的样本数,FPi为第$ i $类错误分类的样本数.

平均类准确率是指所有类别准确率的平均值,计算公式为

$ A_{\mathrm{pc}}= \frac{1}{N}\sum\limits_{i = 1}^N {\frac{{{\mathrm{T}}{{\mathrm{P}}_i}}}{{{\mathrm{T}}{{\mathrm{P}}_i}+{\mathrm{F}}{{\mathrm{P}}_i}}}} . $

交并比IoU是指预测结果和真实结果的交集与并集的比值,可以量化预测结果与真实结果之间的重叠度.

在本文方法与UV-Net上计算每个模型面的识别结果,在PointNet与DGCNN 2种基于点云的模型上分别计算每个模型面与每个点的识别结果.

4种模型在多加工特征数据集上验证阶段的准确率曲线与交并比曲线如图10所示,测试集上的实验对比结果如表3所示. 本文方法在3种指标上均取得了最优结果. 基于点云的方法中,DGCNN的表现明显优于PointNet. DGCNN与PointNet在基于点的指标与基于面的指标上表现出了较大的差异,可能的原因是在复杂零件模型转换成的点云数据中,大量的点落在了非加工特征面上,在部分加工特征面上采样的点数过少,难以对每个模型面上的加工特征进行有效地识别.

图 10

图 10   多加工特征数据集验证集的准确率与交并比曲线

Fig.10   Accuracy and IoU curves of multi-machining feature validation set


表 3   多加工特征数据集的不同模型实验结果比较

Tab.3  Comparison of experimental results of different models in multi-machining feature dataset %

模型AApcIoU
基于面基于点基于面基于点基于面基于点
本文
模型
97.3595.1592.16
PointNet38.8575.5232.0435.4920.4527.53
UV-Net94.6591.2586.31
DGCNN51.4485.6546.0654.0831.9940.95

新窗口打开| 下载CSV


为了验证本文方法的特征识别效果,在示例零件模型上开展特征识别实验. 示例零件包含通孔、盲孔、台阶、槽等特征,零件中既有独立特征,又有相交特征. 特征识别结果如图11所示,除图11(a)中的台阶特征由于在28种加工特征中未被定义,导致模型泛化识别错误,将台阶特征误判为梯形通槽特征外,其余示例零件中的加工特征均得到了准确识别.

图 11

图 11   零件模型特征的识别结果

Fig.11   Recognition results of part model feature


3.3. 消融实验

为了验证输入特征及加工特征识别网络中各部分组件对最终识别效果的影响,设置如下3种参数状态与完整网络进行对比.

去除邻接边特征:该组设置去除了输入特征中的邻接边特征,只保留了节点特征,还去除了压缩激励网络中的边特征提取部分与图注意力网络中的边特征部分.

去除图注意力网络结构:该组设置去除了图注意力网络部分,将其替换为同等参数的多层感知机.

只保留零件拓扑结构特征:该组设置中去除了压缩激励特征提取部分,将图中的节点和边特征设置为从正态分布中随机采样的噪声,使得网络仅使用零件的拓扑结构特征来进行特征识别.

利用上述4种模型,在多加工特征数据集上进行消融实验,实验结果如表4所示. 与完整网络模型相比,去除邻接边特征的模型在3种指标上略有下降,表明邻接边特征对特定特征模式的识别效果的贡献更明显. 去除图注意力网络的模型的3种指标均显著下降,相较于多层感知机,图注意力网络能够更好地捕捉特征组合的内在模式,减少图中噪声信息的干扰. 只保留拓扑结构的网络模型对加工特征的识别效果较差,与传统子图同构方法难以识别复杂特征的局限性相符合.

表 4   消融实验不同参数结果的比较

Tab.4  Comparison of different parameters in ablation experiment %

模型AApcIoU
完整网络模型97.3595.1592.16
去除邻接边特征96.3693.4689.60
去除图注意力网络85.7186.6578.52
只保留拓扑结构40.2527.1117.12

新窗口打开| 下载CSV


消融实验的结果可以进一步说明本文方法的优势. 本文方法利用了零件模型的面特征与边特征,结合了零件模型的拓扑结构,应用图注意力网络对特征信息进行更好地捕捉. 这3个方面有机地结合在一起,形成高效、准确的加工特征识别框架,表现出优异的识别效果和泛化能力.

4. 结 语

本文提出基于双层注意力机制的加工特征识别网络,通过压缩激励模块提取节点与邻接边的特征,提取后的特征经过节点级与邻接边级的双层注意力网络后输出每个节点对应的加工特征. 本文方法在多加工特征零件数据集上与其他3种特征识别方法进行实验对比,在3种指标上均取得了最优结果. 通过消融实验,研究各部分组件对特征识别效果的影响. 利用本文所提的加工特征识别方法,可以部分地解决相交特征的识别问题,但对于存在面合并的相交特征,尚未能解决公用面的特征归属问题,需要在下一阶段的研究工作中继续探索.

参考文献

VANDENBRANDE J H, REQUICHA A G

Spatial reasoning for the automatic recognition of machinable features in solid models

[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1993, 15 (12): 1269- 1285

DOI:10.1109/34.250845      [本文引用: 1]

VERMA A K, RAJOTIA S

A hint-based machining feature recognition system for 2.5 D parts

[J]. International Journal of Production Research, 2008, 46 (6): 1515- 1537

DOI:10.1080/00207540600919373      [本文引用: 1]

WU J, LEI R, PENG Y. Manufacturing feature recognition method based on subgraph decomposition [C]// International Conference on Frontiers of Artificial Intelligence and Machine Learning . Hangzhou: IEEE, 2022: 120–126.

[本文引用: 1]

YAN H, YAN C, YAN P, et al

Manufacturing feature recognition method based on graph and minimum non-intersection feature volume suppression

[J]. The International Journal of Advanced Manufacturing Technology, 2023, 125 (11/12): 5713- 5732

易晗. 基于图和规则的钣金件特征识别方法研究[D]. 武汉: 华中科技大学, 2019.

[本文引用: 1]

YI Han. Research on feature recognition method of sheet metal parts based on graphs and rules [D]. Wuhan: Huazhong University of Science and Technology, 2019.

[本文引用: 1]

WOO Y, SAKURAI H

Recognition of maximal features by volume decomposition

[J]. Computer-Aided Design, 2002, 34 (3): 195- 207

DOI:10.1016/S0010-4485(01)00080-X      [本文引用: 1]

ZHANG Z, JAISWAL P, RAI R

Featurenet: machining feature recognition based on 3d convolution neural network

[J]. Computer-Aided Design, 2018, 101: 12- 22

DOI:10.1016/j.cad.2018.03.006      [本文引用: 1]

SHI P, QI Q, QIN Y, et al

A novel learning-based feature recognition method using multiple sectional view representation

[J]. Journal of Intelligent Manufacturing, 2020, (31): 1291- 1309

[本文引用: 1]

MA Y, ZHANG Y, LUO X. Automatic recognition of machining features based on point cloud data using convolution neural networks [C]// Proceedings of the 2019 International Conference on Artificial Intelligence and Computer Science . Wuhan: ACM, 2019: 229-235.

[本文引用: 1]

QI C R, SU H, MO K, et al. Pointnet: deep learning on point sets for 3d classification and segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition . Hawaii: IEEE, 2017: 652-660.

[本文引用: 2]

高玉龙. 基于加工面点云数据深度学习的加工特征自动识别[D]. 大连: 大连理工大学, 2021.

[本文引用: 1]

GAO Yulong. Automatic recognition of machining features based on deep learning for machining surface point cloud data [D]. Dalian: Dalian University of Technology, 2021.

[本文引用: 1]

YAO X, WANG D, YU T, et al

A machining feature recognition approach based on hierarchical neural network for multi-feature point cloud models

[J]. Journal of Intelligent Manufacturing, 2023, 34 (6): 2599- 2610

DOI:10.1007/s10845-022-01939-8      [本文引用: 1]

CAO W, ROBINSON T, HUA Y, et al. Graph representation of 3d CAD models for machining feature recognition with deep learning [C]// International Design Engineering Technical Conferences and Computers and Information in Engineering Conference . [S. 1. ]: ASME, 2020, 84003: 202-212.

[本文引用: 2]

PAGANI L, SCOTT P J

Curvature based sampling of curves and surfaces

[J]. Computer Aided Geometric Design, 2018, (59): 32- 48

[本文引用: 1]

胡盼旺. 复杂回转类零件自动特征识别算法研究[D]. 武汉: 华中科技大学, 2019.

[本文引用: 1]

HU Panwang. Feature recognition based on graphs and rules for rotational parts [D]. Wuhan: Huazhong University of Science and Technology, 2019.

[本文引用: 1]

MEYER M, DESBRUN M, SCHRÖDER P, et al. Discrete differential-geometry operators for triangulated 2-manifolds [C]// Visualization and Mathematics III . [S. 1. ]: Springer-Verlag, 2003: 35-57.

[本文引用: 1]

PAULY M, GROSS M, KOBBELT L P. Efficient simplification of point-sampled surfaces [C]// I EEE Visualization . Boston: IEEE, 2002: 163-170.

[本文引用: 1]

HU J, SHEN L, SUN G. Squeeze-and-excitation networks [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Beijing: IEEE, 2018: 7132-7141.

[本文引用: 1]

PAVIOT T. Pythonocc (7.7. 0) [EB/OL]. (2022-10-05)[2023-04-05].https://doi.org/10.5281/zenodo.3605364.

[本文引用: 1]

JAYARAMAN P K, SANGHI A, LAMBOURNE J G, et al. Uv-net: learning from boundary representations [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. [S. 1. ]: IEEE, 2021: 11703-11712.

[本文引用: 1]

WANG Y, SUN Y, LIU Z, et al

Dynamic graph CNN for learning on point clouds

[J]. ACM Transactions on Graphics, 2019, 38 (5): 1- 12

[本文引用: 1]

/