摘要
为解决多加工特征交叉下的特征定位问题,提高复杂零件加工特征识别性能,提出实例分割框架下的加工特征识别方法Brep3pNet。首先,基于三维模型的边界表示,提取面点云、面邻接图等几何与拓扑数据,构建三维模型的图表示,利用点云学习网络以及图神经网络学习三维模型面级嵌入表示。其次,提出概率位置编码方法,引入位置先验信息将三维模型各面编码为与空间位置相关的三元高斯分布,基于Bhattacharyya核度量面间相似性,以实现加工特征的面级定位,生成候选实例。最后,设计得分网络用于预测实例生成质量,以此指导实例间的非极大抑制,去除冗余特征实例, 获得最终加工特征识别结果。本研究在MFCAD、MFCAD++、MFInstSeg和合成的回转类零件数据集等4个多特征数据集上对所提方法进行评估。研究结果表明:Brep3pNet相较于其他先进方法具有更好的特征定位能力,可以通过轻量的模型参数实现最优的特征识别准确率,展现了所提方法在相交特征识别上的应用潜力。
Abstract
To solve the problem of feature localization with multi-feature intersection and improve the performance of machining feature recognition for complex parts, this paper proposes Brep3pNet, a machining feature recognition method under the framework of instance segmentation. Firstly, based on the boundary representation (B-rep) of 3D models, Brep3pNet extracts geometric and topological data such as face point clouds and face adjacency graphs to construct a graph representation of the 3D model. We utilize point cloud learning networks and graph neural networks to learn surface-level embedding representations of the 3D model. Secondly, a probabilistic positional embedding method is proposed, which introduces spatial position prior information to encode the face into ternary Gaussian distribution, and measures the similarity among those face embeddings by Bhattacharyya kernel for the purpose of locating machining features and generating candidate machining feature instances. Finally, a score network is designed to predict the quality of the instance generated, so as to guide the non-maximum suppression between instances to remove redundant feature instances, thereby obtaining the final machining features. Brep3pNet is evaluated on four multi-feature datasets, including MFCAD, MFCAD++, MFInstSeg and a synthetic dataset of rotary parts. The research results indicate that Brep3pNet outperforms other state-of-the-art methods on feature localization accuracy, and can achieve optimal feature recognition accuracy with lightweight model parameters, demonstrating its potential application in intersecting features recognition.
加工特征识别技术将存储于CAD系统的点、线、面等低级几何与拓扑信息转化到孔、槽等具有明确制造语义的制造特征,被认为是实现自动工艺规划以及CAD、CAPP、CAM系统集成的关键[1-2]。在40年的研究中,研究者们通过归纳各类加工特征的存在模式,提出了多种基于规则的特征识别方法,包含基于图[3]、基于体分解[4]以及基于痕迹[5]的特征识别方法。然而加工特征的多样性以及彼此间的相互交叉,会导致加工特征的破坏与以致分离,不利于制定完备的特征识别规则,因而识别交叉特征一直是加工特征识别领域公认的难题[1-2,6]。此外,伴随特征的增多,整个三维模型的复杂度提高,在规则匹配阶段耗时严重[7]。
利用大量标注样本以端到端的方式学习加工特征的存在模式,基于深度学习的特征识别方式避免了繁琐的规则制定过程并表现出更好的识别效果。该类方法将识别过程分解为特征类型的分类以及特征定位两个任务,根据两个任务的执行顺序可细分为两阶段方法与一阶段方法[8]。两阶段方法采用单一加工特征数据集训练特征分类模型,随后基于预定义的规则将多特征模型分解为多个子模型,最后逐一识别。FeatureNet[9]是第1个基于深度学习的方法,它将3D模型体素化并使用3D卷积网络来分类单特征模型,然后采用分水岭分割算法对三维模型进行分解。Ning等[10]使用了类似的基于体素的方法,利用三维模型的凹边对多特征模型进行分解。Wang等[11]基于B-rep提取面属性与面邻接图,采用图神经网络进行单个特征识别,并基于特征底面的深度信息设计交叉特征分解方法。Yao等[12]采用点云表示具有单个特征的三维模型,并利用PointNet++[13]实现单特征分类,然后利用点云法向量和凹边设计交叉特征分解策略。然而,两阶段方法依赖几何的连续性或者拓扑的邻接性设计启发规则实现特征的定位,仍难处理特征交叉导致的特征分离问题。
一阶段方法将特征定位亦纳入网络的学习过程中,Shi等[8,14]提出了基于多视图方法的一阶段特征识别方式,同步实现特征分类以及特征包围盒预测任务,在多特征模型加工特征识别上表现出比FeatureNet更好的识别准确率。然而,基于包围盒的特征定位方式仅能实现特征的粗略定位,不能准确识别某加工特征具体包含的面,不便于后续的工艺规划与制造过程。Zhang等[7]提出基于实例分割的加工特征识别方法—ASIN(associatively segmenting and identifying network)。ASIN包含语义分割、实例分组、底面识别3个分支,依次实现面的语义类型预测,以是否共加工特征为准则的面-面邻接矩阵预测以及加工特征底面预测。然而,ASIN采用点云数据表示三维模型,忽略了模型的拓扑关系,识别效果有待提高。当前,基于模型边界表示的特征识别方法如CADNet[15]、Hierarchical CADNet[16]以及UV-Net[17],使用图表达三维模型,以面邻接图作为基本的图结构,图的节点用于表示三维模型的面,图的边对应三维模型的边,并赋予相应的面、边属性。这种表达方式储存了模型的拓扑与几何信息,相较于点云、多视图、体素等欠缺拓扑信息的表示方法展示了更高的特征分类精度。然而,该类方法仅实现面级语义分类问题,不能进行特征的定位。
为提高特征交叉下加工特征识别能力,本文受益于基于边界表示的特征识别方法在特征分类任务上表现,提出加工特征实例分割方法Brep3pNet。该方法基于面点云数据与面邻接图等构成三维模型图数据表示,采用图神经网络以及基于度量学习思想的概率位置编码方法进行加工特征实例分割,实现特征的分类与定位。此外,深度学习依赖数据集。尽管当前存在如ABC、MCB等真实CAD零件数据集,但有别于零件分类任务,加工特征以三维模型拓扑面为基本单元,粒度细致,因此标注成本高。基于已有文献,当前用于加工特征识别领域的多特征数据集多为由立方体经过布尔操作而得,形状相对单一。为此,本文合成6 001个带实例标注的回转类零件,用于丰富加工特征领域数据的多样性并验证所提方法的有效性。
1 加工特征实例分割方法
1.1 方法概述
Brep3pNet的命名揭示了所提出方法的特征(B-rep,point cloud,probabilistic positional embedding),总体框架见图1。对于输入的STEP格式的三维模型,首先提取与每个面相关联的点云数据、面几何中心数据,模型的面邻接图(face adjacency graph,FAG)以及每个边的曲线类型和凹凸性信息,构成模型的图数据表示;然后将图数据输入到融合点云学习网络和图神经网络的编码器Brep1pNet中学习几何与拓扑信息,得到三维模型每个面的高维嵌入向量;之后将此嵌入向量分配给语义分割分支和实例分组分支,分别用于确定三维模型每个面的加工特征语义类别,以及每个特征实例中包含的面。为评估实例分组分支生成的实例质量,设计ScoreNet分支预测生成实例与真实实例的重叠度,形成实例质量得分。根据实例质量得分设计了贪心算法对得分较高且重叠度大的实例预测进行非极大抑制(non-maximal suppression,NMS)以得到精简的加工特征实例结果。最后,根据实例中各面的语义概率确定特征类型,实现加工特征的实例分割。

图1Brep3pNet加工特征识别框架
Fig.1Framework of the proposed Brep3pNet for machining feature recognition
1.2 三维模型的图数据表示
边界表示是现代CAD软件主流的三维实体表示方法,它包含了重建此三维模型所需的所有几何和拓扑信息,涉及顶点、边、面、环、实体等多拓扑层次及其关联关系。由于边界表示的复杂性和非结构化,很难直接作为神经网络的输入[8]。
鉴于面和边是加工特征识别任务的核心和关键辅助信息,本文构建了如图2所示的以面邻接图为基本图结构的三维模型图数据表示。面邻接图上的节点对应三维模型的面,以面上采样的点云数据作为其属性;面邻接图上的边对应三维模型的边,以边的几何类型以及凹凸性作为其属性。相关数据的提取流程如下。

图2面点云、边凹凸性与面邻接图
Fig.2Face point cloud, edge concavity and FAG
1.2.1 点云数据提取
点云是三维实体常用的显式表达方式之一,蕴含丰富的几何信息。同时,点云作为计算机视觉领域的热门研究对象之一,积累了很多有益的研究成果,因此本文使用三维模型各面的点云数据作为三维模型几何信息表示的载体。三维曲面由u和v两个参数控制,这两个参数构成了曲面的UV空间。然而,在UV空间内采样点云存在如下两个问题:一是尽管基于B-rep可以方便得到曲面二维UV空间的矩形边界,但它覆盖了额外的区域,需要附加判断来确定采样点是否在表面上;二是由于非线性变换,UV空间内采样的均匀性不能代表三维空间下的均匀性。考虑采样点的有效性与均匀性,本文采取“网格化+下采样”的策略实现三维模型各面的点云采样,前者保证误差允许范围内采样的点在面上,后者进一步引入采样点间的距离约束,保证点云可均匀覆盖模型的面。在实现上,本文采用pythonocc[18]集成的三角剖分算法产生网格数据,并采用Open3d[19]对三角形网格执行泊松盘下采样,最终为每个面采样nP=128个点作为其几何表示,采样的面点云数据见图2(b)。
1.2.2 面属性邻接图与边属性
面邻接图是基于图的特征识别方法的重要数据组成,它以三维模型的边为媒介表示三维模型面间的邻接关系,蕴含三维模型的拓扑信息。通过在B-rep上执行拓扑遍历,可以获得每个面所包含的边以及与每个边关联的面,因此可以方便地构造FAG。
虽然加工特征识别的单位为面,但边对识别起重要作用。本文利用边的两个属性:边的曲线类型以及边的凹凸性。曲线类型包含直线、圆弧等,为几何信息。边的凹凸性则反映共有此边的两个面之间的拓扑连接方式。另外,凹边通常伴随着加工特征的存在,因此边的凹凸性是基于图的方法和一些基于两阶段学习的方法的关键属性。边的几何类型包含在B-rep之中,可直接获取,而凹凸性则是由与之关联两面所张成的二面角判断,若此二面角大于180°则为凸边,小于180°则为凹边。具体可采用如下等价的步骤计算:
1)选择边上一点,并获取该点在两个面上的单位法向量与,方向指向三维模型外部。
2)选定两面中的任一面为参考,根据其法向量(如)与右手定则,确定边的切向量。
3)计算=×,以及 cos=·。
4)若cos>0则判定此边为凹边,否则视为凸边。
图2中直观地总结了上述步骤。图2(c)为上述步骤的计算过程,其中边的切向量由确定,图2(d)为图2(a)所示三维模型的FAG,虚线边表示凹边。此外,还可观察到因水平径向通槽的存在,模型的FAG从仅有两个阶梯孔时的6顶点环形图变得更加复杂。且因与孔相交,该槽在空间上被分成两部分并在拓扑上发生分离,而确定此槽所包含的6个面正是本文所要解决的特征定位问题。
1.3 三维模型编码器
为学习三维模型中几何与拓扑信息,本文提出Brep1pNet充当三维模型面级的编码器,其主要包含面间共享的点云学习主干网络、多层含残差连接的图神经网络以及融合三维模型全局信息的聚合层模块,具体的网络结构见图3。给定含nF个面的三维模型及其图数据表示,Brep1pNet通过点云学习网络将各面点云编码为128维向量,随后通过聚合层对各面的编码向量进行平均池化,获得模型全局几何表示,将其与各面向量拼接,获得更新的图节点向量矩阵Xp;每条边的曲线类型和凹凸性则分别随机初始化为4维的可学习的向量,拼接成边属性E={ei,j}R8。之后采用多层含残差连接的图神经网络进行几何与拓扑信息的融合,实现面编码的更新,经过类似的全局池化与聚合操作得到最终三维模型面级编码Xe,即图的节点向量矩阵。

图3编码器Brep1pNet的网络结构
Fig.3Architecture of Brep1pNet
本文采用点云学习中广泛使用的PointNet++作为默认的主干网络。PointNet++是考虑点云局部信息的层次化模型,采用最远点下采样(farthest point sampling,FPS)选择点云的局部中心,并通过围绕中心的近邻查找构造局部区域,随后采用多层感知机(multilayer perceptron,MLP)和最大池化学习点云置换不变的特征表示。考虑到三维模型各面面积存在较大差异,为获取点的近邻点集,本文部署K-近邻算法(K-nearest neighbor,KNN)代替官方固定半径的球查询方法。由于相邻面可分属相同或不同的加工特征实例,本文采用基于注意力机制的GATv2[20]作为上述图神经网络。GATv2采用式(1)~(3)进行消息传递,不同于另一种广泛使用的GAT[21](不同之处为式(4)),GATv2实现了动态注意力,其所得注意力得分的相对大小与查询向量无关,因而有更好的特征提取能力。
(1)
(2)
(3)
(4)
式中:xi为图3中面邻接图第i个节点的节点向量,以第1层GATv2为例,xi即为Xp的第i行;ei,j为上述8维边属性,W、a分别为待学习的权重矩阵与注意力向量。
表1列举了图3中包含的4层GATv2以及所用PointNet++的3个MLP输入输出维度。其中, MLP由卷积核大小为1×1的二维卷积(Conv2d)、批量归一化层、ReLU层组成。以MLP(3+64,64,64,128)为例说明,该MLP有3个Conv2d层,各Conv2d的输入通道为67、64、64,输出通道为64、64、128,输入通道的前3维表示点的三维(x,y,z)坐标,层与层间含批量归一化与ReLU激活函数;GATv2(256,64,4)则表示其输入通道为256,输出通道为64,注意力头数为4;本文每个面的nP=128,KNN近邻数K=24。
表1编码器Brep1pNet的网络参数
Tab.1 Parameters of Brep1pNet

1.4 语义分割分支
语义分割分支为加工特征分类器,用于预测每个面所属的加工特征类型或概率,本文采用多层感知机对其进行建模,具体网络结构见图4。

图4语义分割与实例分组分支结构
Fig.4Architecture of semantic segmentation and instance grouping branches
考虑到所提出的回转类零件加工特征数据集存在语义类别的不平衡问题,本文采用Focal Loss[22]作为训练阶段损失函数,见式(5)。相比于式(6)的交叉熵损失函数,Focal Loss将模型输出的分类概率加权到损失函数中,相对地提高难分类样本的损失权重,适合处理样本不平衡问题。
(5)
(6)
式中:nC为加工特征的类别总数,yi为属于第i类的真实概率,值为0或1;为属于第i类的概率预测值,γ为折扣因子,用于调节各样本的重要性权重,在本文中设置γ=2。
1.5 基于概率位置编码的实例分组
加工特征由三维模型的面构成。对于一个含nF个面的三维模型,令F={F1,F2,···,FnF}表示三维模型面集合,G={G1,G2,···,Gm}表示模型所含加工特征的集合。对于每个加工特征Gi∈G,Gi为面集F的子集,且G构成F的一个划分,满足如下两个性质:
1) 。
2) 。
实例分组对应加工特征的定位任务,目标是获得三维模型中各加工特征对应的面集,即获得面集F的划分,以实现对G的估计。为方便对应,本文将面Fi所在的加工特征记为G(i)。
1.5.1 概率位置嵌入及相似度度量
深度度量学习是常用且高效的实例分组方法,该方法基于同一实例下表示的相似性学习一个映射函数(在此为神经网络),将组成实例的各基本单元(如图像实例分割中的像素,以及加工特征识别任务中的面)映射到可测成对相似度或距离的嵌入空间中。不同于ASIN与AAG[23]中采用的高维向量,本文受益于文献[24],采用概率位置嵌入策略,将三维模型各面编码为考虑空间位置的三元高斯分布N(μ,Σ),其概率密度如下:
(7)
本文取n=3,μ∈R3。为便于计算,取Σ为正定对角矩阵,由3个正分量决定。
巴氏距离(Bhattacharyya distance)[25]常用于度量两概率分布p(x)、q(x)间距离(式(8)),其计算依赖于式(9)定义的巴氏核,相比于另一常用的概率间距离度量方法——KL散度(Kullback-Leibler divergence)而言,具有对称性。
(8)
(9)
式中:DB为巴氏距离,KB为巴氏核。
考虑到巴氏核取值为[0,1],本文采用原始巴氏距离度量同一实例下的概率嵌入距离,并定义下式度量不同实例下概率嵌入距离为
(10)
给定面Fi,Fj的概率位置嵌入为fi~N(μi,Σi)与fj~N(μj,Σj),其巴氏核的解析表达如下:
(11)
其中:
对于一个加工特征实例Gi,令gi表示此加工实例的对应的概率编码,可将其视为实例Gi内各面概率位置嵌入的平均,即,基于独立性假设,的计算如下:
(12)
(13)
运算符|·|表示集合中元素个数。然而式(13)不能很好表征实例中心的含义。假设一个加工特征实例的每个面都被编码为标准高斯分布N(0,I),显然更希望整个实例的编码仍为标准高斯分布,因此本文实际采用下式计算:
(14)
1.5.2 网络结构与损失
实例分组分支的网络结构见图4所示。考虑到相同实例有相同语义,本文对实例分组任务进行语义关联,将语义特征Xseg投影到实例空间获得X′seg,求和计算实例级的特征向量Xins,随后通过两个独立的MLP(BatchNorm)层得到方差以及融合坐标信息的均值。
为获得高质量的嵌入表示,提高加工特征的定位能力,结合上述巴氏距离,本文基于度量学习思想的Double-Hinge Loss[26]设计实例损失。
(15)
其中:
运算符[x]+=max(x,0)。Lvar、Lpull分别用于拉近相同实例下各面在嵌入空间下的距离,而Lpush负责将不同实例下各面的概率嵌入推远,Lreg则是为了防止方差过大产生无意义的高斯分布而增加的正则项[24]。在本文,设置δ1=δ2=0.3,α=0.001。
1.6 得分网络
通过本文提出的概率位置编码方法,可以获得一个表征面实例嵌入距离的矩阵KB={KB,(i,j)}∈RnF×nF,其中KB,(i,j)=KB(fi,fj)。KB,(i,j)接近于1,表示面Fi,Fj属于同一个实例;若其接近于0,则面Fi,Fj属于不同实例,因此可通过设置阈值Kτ的方式获得实例0-1掩码矩阵Mpre。在模型训练阶段本文设置Kτ为0.3,与δ1一致,在验证与测试阶段将其放松中至0.35。
(16)
式中Mpre的每行代表以面Fi为锚点预测的加工特征实例。由于加工特征不只包含一个面,因而真实的加工特征实例会对应Mpre的某几行,但这几行并不一定相同,因此有必要评估上述冗余实例的预测质量,以指导最终加工特征实例的获得。
令表示以三维模型各面为锚点的加工特征实例预测,其中F。为评估实例质量,本文部署如图5所示的ScoreNet分支为预测分数,并以预测实例同其对应的真实实例G(i)间的集合相似度作为真实分数进行监督学习。图5中的GNN为单层的GATv2,对应的图邻接矩阵为Mpre,以图4中实例成组分支的中间变量Xins作为图的节点向量矩阵。

图5得分网络结构
Fig.5Architecture of ScoreNet
集合相似度采用集合间IoU(intersection over union)值(亦称Jaccard相似系数),对于集合A与B其IoU采用式(17)计算。考虑到每个加工特征的面数有限,如式(18)本文以0.1为间隔离散真实得分,将得分预测任务建模为类别数为11的多分类问题,并采用式(6)所示的交叉熵损失作为该分支损失函数。
(17)
(18)
1.7 推理过程
经过Brep3pNet的前向过程,可获得每个面的加工特征语义类型预测,关联到每个面的特征实例及其得分。本文部署如下的贪心算法步骤去除中冗余实例,获取为最终加工特征预测及其特征类型。
Step1 初始化剩余面集与最终加工特征实例。
Step2 根据得分网络预测结果对各面进行降序排列,获得排列后得分及面索引:。
Step3 选择剩余得分最大的面以及关联的特征面集。
Step4 将特征面集G添加到加工特征实例中,并对G中各面语义概率求和,选择求和后概率最大的特征语义作为此加工特征的类型。
Step5 更新剩余面集及当前得分:。
Step6 遍历剩余所有面j∈I,对于得分的面获取其特征实例,如果IoU(G,G′)>τ2,则对面的得分进行减半抑制:。
Step7 更新得分并进行降序排序:。
Step8 重复Step3~7至,输出最终特征实例。
该方法依照实例得分大小决定最终加工特征实例,对于分数较高且重叠度大的一对实例,本文进行非极大抑制处理,即对其中分数较小者的得分进行减半。在算法中,通过阈值τ1,τ2衡量分数和重叠度的大小以决定是否进行抑制,本文设置τ1=τ2=0.6。
2 结果与讨论
本文使用pytorch 1.10.2以及pytorch geometric 2.0.4搭建Brep3pNet模型,使用搭载AMD EPYC 7543 32-Core CPU及NVIDIA RTX A40 GPU的云服务器进行模型训练,并在搭载Intel(R)i7-8700K CPU的本地计算机上进行识别测试。
2.1 数据集与评价指标
2.1.1 方形零件数据集
加工特征识别领域的多特征数据集主要包含MFCAD、MFCAD++以及MFInstSeg,此三者均基于方形毛坯通过去除部分材料合成。MFCAD由Cao等[15]提出,覆盖16种平面类加工特征,共含15 488个CAD样本,其中每个样本包含1~6个加工特征。由于MFCAD不包含非平面加工特征如常用的孔,Colligan等[16]拓展了MFCAD的生成方式并提出了MFCAD++数据集,此数据集覆盖由FeatureNet所定义的24类加工特征,共有59 655个CAD样本,每个CAD样本包含3~10个加工特征。不过,MFCAD与MFCAD++并不包含加工特征实例标注,仅有CAD模型各面的加工特征类型标注,因此Wu等[23]基于MFCAD++数据集创建工具,提出含实例标注的MFInstSeg数据集,其三维模型类似MFCAD++,覆盖24类加工特征,共约60 000个样本。MFCAD与MFCAD++部分样本见图6。

图6MFCAD与MFCAD++中部分三维模型
Fig.6Partial3D models from MFCAD and MFCAD++ datasets
2.1.2 回转类零件数据集创建
上述加工特征识别的数据集,形状相对单一,制约数据驱动类特征识别方法的应用。本文基于参数化建模思想,以pythonocc作为建模工具构建带加工特征实例标注的回转类零件数据集。基于文献[9]所定义的24类常见加工特征并结合特征在回转类零件的轴向与径向两类位置,本文定义了如图7所示的37类加工特征,涉及4类回转型基体,包含圆柱基体、圆锥基体和球面基体以及由前三者基于布尔加操作合成的多层基体。

图7所提数据集包含的加工特征类型
Fig.7Machining features involved in the proposed dataset
以单基体零件为例,说明CAD样本的生成与标注过程。本文固定基体形状的最大半径为100,并基于此约束随机获得基体与加工特征的几何参数。在确定零件基体后,依次添加1~6个加工特征以形成最终三维模型样本。每添加一个加工特征对应一次布尔减操作,即从当前模型去除相应的形状以形成此特征。pythonocc具有追踪模型构建历史的特性,在每次布尔操作后,可以获得新增的面集,由此可形成当前加工特征的实例标签,即加工特征实例所含面的集合。相应的,可以获得面的删除与变动情况以更新历史加工特征实例。另外,本文采用文献[14]所述的多体检测,以防止3D模型失效。最终,本文生成6 001个三维模型样本,其部分三维模型样本见图8。

图8所提数据集的部分3D模型
Fig.8Partial3D models from the proposed dataset
2.1.3 评价指标
为验证Brep3pNet特征识别效果,本文采用文献[16]定义的面语义分类准确率(记为Asem)评估语义分割分支面语义分类结果;定义GIoU如式(19),表示所有加工特征实例中被正确定位的实例占比,用于表征特征定位准确率。上述两个指标是对Brep3pNet中各分支的独立评估,可细致展示网络各模块的效果。考虑到加工特征识别是分类与定位的统一,使用文献[23]中的方法,以特征定位准确且类别正确的样本作为正阳性样本,计算特征识别的准确率(记为AFR)以及F1 score(记为F1),以此评估模型最终识别结果。本文保留验证集Asem与GIoU之和的最优模型用于测试集测试。
(19)
2.2 对比实验与分析
2.2.1 语义分割任务下实验结果与分析
本文部署Brep3pNet的编码器Brep1pNet 及语义分割分支在加工特征语义分割数据集MFCAD以及MFCAD++上开展识别实验并与其他先进方法比较。为对比公平,两数据集均采用官方的数据划分获得训练集、验证集和测试集。同文献[16],本文使用Adams优化器在MFCAD数据集上模型训练350轮,在MFCAD++数据集上模型训练100轮,批量大小均为128。其中,训练1轮表示训练集全部样本通过神经网络。本文对学习率进行阶梯式衰减,在训练过程的前50轮保持初始学习率为0.001,随后在MFCAD数据集上以50轮为周期减半学习率,在MFCAD++数据上以10轮为周期减半学习率。所提方法在两数据集上的识别结果见表2、3。不同方法使用的三维模型的表示不同,对于DGCNN[27]、PointNet++以及MeshCNN[28]而言,其识别的几何单元分别为点、点以及三角面片,对应的三维模型面级的特征分类结果由面所关联的基本几何单元投票确定。所列举的 PointNet++、Hierarchical CADNet等位于表格第1栏的实验结果摘录于文献[16],表格第2栏是在上述超参数设置下的实验结果。
从表2、3可以看出,由于两数据集模型复杂度不同,各识别方法在MFCAD++数据集上的面分类准确率均有下降。尽管如此,本文方法在MFCAD数据集和MFCAD++数据集上分别以最少的模型参数量实现最高99.99%和99.09%的面分类准确率,表明所提方法具有轻量、高效的优势。
表2MFCAD数据集下不同模型语义分类精度及参数量
Tab.2 Semantic classification accuracy and parameter number of different models in the MFCAD dataset

表3MFCAD++数据集下不同模型语义分类精度及参数量
Tab.3 Semantic classification accuracy and parameter number of different modelsin the MFCAD++ dataset

在用于比较的方法中,UV-Net的表现最接近本文方法。UV-Net同Brep3pNet均采样面的点集学习面几何信息,并使用FAG以及边属性进一步融合三维模型拓扑信息,因此识别结果相近。不过,两种方法在面、边属性的数据表示上存在差异。具体而言,Brep3pNet的点集为无序的点云,利用PointNet,PointNet++等点云学习网络,而UV-Net在面的UV空间等距采点,形成有序的UV网格,利用2D卷积网络学习。本文使用边的几何类型和凹凸性表示边信息,而UV-Net对各边一维参数空间下等距采点,通过1D卷积学习边特征。相较而言,没有融合拓扑信息的ASIN在两个数据集上的识别结果均低于Hierarchical CADNet、UV-Net以及Brep3pNet,特别是在样本更复杂的MFCAD++数据集上仅实现91.62%的面分类准确率,相较于Brep3pNet有7.47%的下降。图9展示了Brep3pNet与ASIN训练过程前50轮验证集下面分类历史最优准确率曲线,可以明显看出融合拓扑信息的Brep3pNet相比于ASIN有更高效的学习能力,表明融合拓扑信息的图方法在加工特征识别上的优越性。

图9训练前50轮内验证集累计最优语义分类准确率曲线
Fig.9Cumulative optimal semantic classification accuracy curve on the validation set for the first 50 epochs of the training phase
2.2.2 MFInstSeg实验结果与分析
本文在MFInstSeg数据集部署完整的Brep3pNet模型用于加工特征实例分割,采用官方默认的数据集划分方式获得训练集、验证集与测试集,损失函数见式(20),并使用Adams优化器进行模型训练。同文献[23],设置训练轮次为100,批量大小为256。在训练过程的前50轮保持初始学习率为0.001,随后以10轮为周期减半学习率。表4展示了Brep3pNet,ASIN以及AAGNet在MFInstSeg数据集上的识别结果,其中ASIN的训练配置同文献[23],AAGNet使用官方公布的模型。
(20)
AAGNet同Brep3pNet类似均为基于模型边界表示的加工特征识别方法,相比于ASIN均使用FAG融合三维模型拓扑信息,因此在模型轻量化与加工特征识别性能上面均优于ASIN。由于MFInstSeg数据集同MFCAD++数据集采用相似的生成方式获得,其中三维模型相近,因而Brep3pNet在MFInstSeg数据集上的语义分类结果与在MFCAD++上的结果相近。AAGNet在三维模型面与边数据表示方面继承自UV-Net,使用二维UV网格与一维点序列表示面与边的几何信息。此外,AAGNet增加面的几何类型(平面、圆柱、锥面等)、中心与面积等几何属性,因而在语义分割任务上实现更高的99.52%分类正确率。基于本文所提概率位置编码以及用于特征评估的ScoreNet,Brep3pNet在特征定位方面获得97.73%的GIoU,高于AAGNet。归功于特征定位上的优势,即使输入信息量少于AAGNet,Brep3pNet实现96.95%的特征识别正确率和96.71%特征识别F1,表现出更好的加工特征识别能力。此外,Brep3pNet无明显增加推理时间,相对于部署Mean shift聚类的ASIN更高效。
表4MFInstSeg数据集下不同模型特征识别结果对比
Tab.4 Comparison of feature recognition results on MFInstSeg dataset

2.2.3 回转类零件数据集模型对比结果
本文依据零件的面数与特征数对生成的回转类零件数据集进行划分,其中训练集、验证集、测试集的样本量分别为5 121、400、480,对应的实例数与面数的统计结果见表5。对于Brep3pNet,本文设置初始学习率为0.000 5,每隔50轮学习率减半,训练损失函数为式(20)。AAGNet与ASIN则采用官方推荐的初始学习率及衰减模式,各模型的训练迭代轮次均为280,批量大小为16,实验结果见表6。
表5面数及加工特征实例数统计
Tab.5 Statistics of faces and machining feature instances

表6回转类零件数据集下不同模型特征识别结果
Tab.6 Comparison of feature recognition results on rotary part dataset

对比MFInstSeg数据集,本文数据集特征类型更多且样本量有所下降,因而识别难度更大,对应的识别表现均有下降。从表6的结果来看,Brep3pNet实现97.21%的GIoU,相较于AAGNet有更好的定位能力,因此最终在特征识别准确率和特征F1两个特征级指标上表现更好,同时两模型识别效率接近,与MFInstSeg数据集的实验结论一致。
ASIN的识别结果显得格外差。除缺少关键的拓扑信息外,一个重要原因是因三维模型面数不同产生的数据不平衡。ASIN以面的点云数据表达三维模型,数据结构为[nF,nP,6]的3维张量,需采用补0的方式引入“缺失面”为所有三维模型统一面数以形成[三维模型数,nF,nP,6]的4维张量,实现小批量训练。这将引入额外的“缺失”特征类型,在三维模型面数差异较大的情况下会产生明显的数据不平衡,进而导致模型训练不稳定最终识别结果差的问题。Brep3pNet和AAGNet使用图结构表示三维模型,多个三维模型的FAG邻接矩阵将按照对角线排列以合成一张大图,以此实现批量训练,因而受面数影响更小。本文合成的数据集因为包含单基体模型和更复杂的多基体两种,数据集面数的均值约为16而最大面数为66,三维模型的面数波动相对于单立方基体的MFInstSeg等数据集更大,因而ASIN的表现力衰减明显。考虑真实零件将更加复杂多样,模型的复杂度差异将更明显,因此基于图的三维模型表示方式可更好适应面级实例分割的零件加工特征识别任务。
2.3 消融实验
2.3.1 整体架构消融
为探究网络输入、网络结构对加工特征识别结果的影响,本文在所提数据集上进行消融实验。其中,所探究的网络输入包含FAG与边属性,以及用于概率位置编码的面中心坐标;网络结构包含点云主干网络以及是否进行语义联合。特别地,为进一步探究概率位置编码的有效性,本文使用与概率位置编码相同变量数的6维向量以及同ASIN采用的64维向量作为对比,分别记为EC-6D 和EC-64D,相应的使用余弦核替换巴氏核,具体公式如下:
(21)
式中:为面Fi经实例分组分支编码得到的6维或64维特征向量。
消融实验结果见表7。表7中结果显示,在没有FAG输入情况下,即未融入拓扑信息及边属性信息,模型的分类精度下降达13%,而不引入概率位置编码,在相同的变量维度下实例分组的表现力下降超过50%,即使增加至ASIN与AAGNet所采用的64维,也仍有约23% 的差距,因此可认为融入从边界表示中的拓扑信息以及部署的概率位置编码策略是Brep3pNet的核心。其次对结果有更重要影响的是边属性信息,亦是增加拓扑信息对改进识别结果的反应。无面位置信息的概率编码与无语义联合下的实例分组结果相近,在GIoU指标上有约0.8%的下降,可以说明面中心坐标与语义信息的融入对特征定位有促进作用。在面几何信息提取方面,本文使用PointNet[29]与PointMLP[30]代替PointNet++进行实验对比。结果表明关注点云局部信息的层次化模型如PointNet++与PointMLP相比于PointNet有更好的特征识别结果。进一步对比上述其他输入或网络结构下的识别结果,可以看出点云主干网络的选择对识别结果的影响更小,但由于PointNet++相比于PointMLP计算效率更高,因此被选为推荐的点云学习主干网络。
表7输入及网络结构消融结果
Tab.7 Input and architecture ablation results

表7(续)

2.3.2 点云分辨率
本文使用点云进行模型的几何表示,因此每个面所采样点云的大小是关联几何信息的重要超参数。由于PointNet++为包含点云下采样且考虑局部信息的层次化模型,因此其层数、点云数nP、KNN的近邻数K会有制约。本文设置PointNet++的层数为2,包含两次点云下采样,使用(nP,K)的组合为(32,8),(64,16)及(128,24)共3组实验以探究点云数对特征识别的影响,其实验结果见表8。实验结果表明,随着点云数的增加,Brep3pNet语义以及实例分割的结果均有所提高,与文献[6]的结论一致。在本文生成的数据集中,点云大小从32增加到128,Brep3pNet的语义分类准确率提高0.41%,实例分组准确率提高0.24%,对比整体架构消融中的边属性、面中心坐标、语义融合以及PointNet等输入或模型结构,点云分辨率的影响相对更小。在MFInstSeg数据集中,点云大小从32增加到128,语义分类准确率提高0.16%,实例分组准确率提高0.32%,同样改善较小。
表8不同点云大小下特征识别结果
Tab.8 Feature recognition results at different point cloud sizes

2.3.3 图神经网络层数
GNN层数对应FAG各节点可用于信息聚合的邻居阶数,是关联拓扑信息的重要超参数,因此本文进一步探究GNN层数对识别表现的影响。本文每2层GNN通过残差连接形成GNN块,因此层数成对递增。实验结果如图10所示,层数从0~2,本质对应拓扑信息由无到有,识别效果特别是面语义分类精度明显提升,可以进一步说明面分类任务相对于定位任务对拓扑信息更敏感;层数由2增大到4并不能明显增加识别结果,这可能与大多数加工特征内部邻接度数小的特点有关;而层数由4增大到6存在识别效果下降的趋势,这或许与三维模型本身,也就是一个面的6阶邻居近乎包含整个模型,以及多层GNN存在的过平滑现象相关联。

图10图神经网络层数对识别结果的影响
Fig.10Impact of GNN depth on feature recognition results
2.4 案例可视化
为进一步验证概率位置编码方法在特征定位任务上的有效性,本文对实例分组分支的输出进行可视化展示。将概率位置编码得到的三元高斯分布表示为3维椭球,椭球中心为高斯分布的均值,椭球的3个轴表示方差。相比于通用的高维向量编码方式而言,无需使用T-SNE或KPCA(ASIN采用的)等降维算法,即可直观反映为何Brep3pNet将某些面视为同一个加工特征。图11为所生成的回转类零件测试集中3个被正确识别(特征类型以及特征定位均正确)的模型可视化案例。这3个案例包含不同形式的特征交叉,存在着同一加工特征在几何空间和拓扑的分离现象如实例Ins.b2、Ins.b5等,但Brep3pNet仍可以将这些分离的面聚成一组。最直观的体现为同一实例内表示面高斯分布编码的椭球彼此重叠,不同实例间椭球分离。加工特征实例Ins.a3包含的两个面的椭球表示虽没有重叠,反映出两个高斯分布的均值存在较大差异,但由于方差接近,Brep3pNet依然可将其正确定位。图12为方形零件的特征识别可视化案例,3个零件来自文献[23],共涉及161个面、20个加工特征实例,均被正确识别。就特征定位而言,同一特征内各面的编码得到的高斯分布高度重合,与其他面明显区分,且存在明显的相对位置关系,可以说明本文所采用的概率位置编码方式可以有效利用加工特征空间位置的先验信息,实现良好的特征定位效果。

图11回转类零件特征识别与定位结果
Fig.11Feature recognition and localization results of rotary parts

图12方形零件特征识别与定位结果
Fig.12Feature recognition and localization results of cuboid parts
最后,本文将所提方法应用于真实喷嘴组件的副喷口、主喷口以及旋流器,其特征识别结果见图13。图13中3个模型共包含69个面(不考虑副喷口圆柱基底上的2个凹陷)以及54个实例,仅有4个面的语义分类错误以及1个实例的定位错误。对于错误预测的实例Ins.a13,其面的高斯分布间的均值差异大但方差差异小,虽类似实例Ins.a3,但由于两个高斯分布间的巴氏核大于本文所定阈值Kτ=0.35,因而识别错误。换言之,适当提高Kτ,可以避免此次错误。此外,可发现4个语义分类错误均与倒角或圆角相关:圆锥面F.a2与F.b1被错误预测为倒角;小圆柱面F.a1被错误预测成圆角;而邻接倒角的面F.a3更为特别,被错误归类为锥盲孔,这或许也导致实例Ins.a13的定位错误。锥孔、外锥面同倒角相比,几何形状上相似均包含圆锥面但几何尺寸不同,可进一步融合几何尺寸信息提高Brep3pNet特征识别能力。面F.a1表示的外圆面特征过小,不符合用于训练Brep3pNet的回转类数据集下的外圆面存在模式,泛化能力有待提高。

图13真实喷嘴组件的特征识别与定位结果
Fig.13Feature recognition and localization results of real nozzle acomponents
3 结论
1)针对特征交叉下的加工特征识别问题,本文提出一种加工特征实例分割方法―Brep3pNet。通过提取面点云、边凹凸性与曲线类型以及面邻接图构建三维模型的结构化图表示,联合点云学习网络与图神经网络抽取模型几何与拓扑信息,同步完成特征分类与特征定位任务。此外,合成了含特征实例级标注回转类零件数据集,缓解了当前加工特征识别领域数据集多由方形零件组成造成的样本模式单一、应用受限问题。
2)利用面邻接图构建三维模型的图表示可有效融合模型的拓扑信息,在MFCAD和MFCAD++数据集上以最少的模型参数量实现99.99%和99.09%的最优面语义分类精度,相对于同样采用面点云作为几何信息的ASIN方法,Brep3pNet收敛更快、识别准确率更高。消融实验可进一步表明,此拓扑信息的重要性高于点云分辨率、点云学习网络的选择。
3)提出概率位置编码的加工特征定位方法在MFInstSeg与所生成的回转类数据集上实现97.73%与97.21%的特征定位准确率,优于ASIN方法与输入信息量更多的AAGNet。在同样网络结构下,对比6维与64维常用的向量式编码方法,可将特征定位准确率提高53.57%与22.99%。概率编码的可视化显示各加工特征实例会保持相对的空间位置关系,说明所提概率位置编码方法可有效利用模型各面的空间位置信息,提高特征定位能力。
4)尽管Brep3pNet在模型轻量化、识别效率以及效果方面展现了最优或接近最优的结果,但仍有局限。后续将进一步融合几何尺寸等信息提高三维模型表示能力,并将研究重心集中于提高模型识别更复杂零件加工特征的泛化能力。