基于深度图像的三维部件相似度计算方法转让专利

申请号 : CN202210399323.7

文献号 : CN114882496B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 易平朱凌穹胡建平

申请人 : 武汉益模科技股份有限公司

摘要 :

本发明公开了一种基于深度图像的三维部件相似度计算方法,该方法通过获取部件的表面深度图、背面深度图以及倒扣区域深度图,进而基于深度图分割特征,包括:凸台特征、槽位特征、孔位特征和倒扣特征:将局部表面深度图与背面深度图中灰度值差值大于第一阈值的区域,定义为凸台特征;将局部表面深度图与背面深度图中灰度值差值小于第二阈值的区域,定义为槽位特征;将图像灰度值等于0的区域,定义为孔位特征;在倒扣区域深度图中,将所有灰度值不为0的点通过聚类算法进行分组,分组后的各连续区域即为倒扣特征;然后分别计算各个特征的相似度,最终获取部件相似度。

权利要求 :

1.一种基于深度图像的三维部件相似度计算方法,其特征在于,包括以下步骤:获取三维部件的网格模型,得到网格模型的三角面顶点坐标,并存储为顶点文件;

根据顶点文件最小包络盒子尺寸,创建八叉树;

对八叉树单元格中的各三角网格进行并行射线运算,求解单位步距下各x、y坐标位置的深度方向坐标,以获取部件的表面深度图、背面深度图以及倒扣区域深度图;其中倒扣区域为三角网格受到其他网格遮挡,而无法被正向发射的射线直接穿透的区域,在计算时,三角网格的法向与射线方向相反,则被认定为倒扣区域;深度图中,无碰撞点的像素灰度值记为0,深度至最小点记灰度值为A,且满足A>0;

基于表面深度图和背面深度图提取部件轮廓,并在部件轮廓的内部区域分割特征,包括凸台特征、槽位特征和孔位特征:①将局部表面深度图与背面深度图中灰度值差值大于第一阈值的区域,定义为凸台特征;

②将局部表面深度图与背面深度图中灰度值差值小于第二阈值的区域,定义为槽位特征;

③将图像灰度值等于0的区域,定义为孔位特征;

基于倒扣区域深度图,分割倒扣特征:

在倒扣区域深度图中,将所有灰度值不为0的点通过聚类算法进行分组,分组后的各连续区域即为倒扣特征;

利用分类模型分别识别凸台特征、槽位特征和孔位特征的类型;

对于凸台特征,计算当前部件与对比部件相同类型的特征的数量差值C;将相同类型的特征提取至一特征图中,通过图片的余弦距离计算当前部件与对比部件关于该类型的特征的相似度T,进而计算该类型的特征的相似度Q=1/min(1,C)+T;最后将凸台特征所有类型的特征的相似度相加,得到凸台特征的相似度Q凸;

同理,得到槽位特征和孔位特征的相似度Q槽和Q孔;

对于倒扣特征,计算当前部件与对比部件中倒扣特征的数量差值C’;将倒扣特征提取至一特征图中,通过图片的余弦距离计算当前部件与对比部件关于倒扣特征的相似度T’,进而计算倒扣特征的相似度Q扣=1/min(1,C’)+T’;此外,计算厚度相似度H=max(H1,H2)/|H1‑H2|,H1和H2分别表示当前部件与对比部件的扣位厚度;

计算外形相似度P,最终计算部件相似度S:

S=λ1*P+λ2*Q凸+λ3*Q槽+λ4*Q孔+λ5*(Q扣+H)式中,λ1、λ2、λ3、λ4和λ5均为权重。

2.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,获取三维部件的网格模型包括:获取三维部件的几何体;

设置网格化参数,得到几何体所对应的网格模型。

3.根据权利要求2所述的基于深度图像的三维部件相似度计算方法,其特征在于,网格化参数满足以下要求:产品尺寸:误差<0.5mm,角度误差<1°;

零件尺寸:误差<0.2mm,角度误差<0.5°。

4.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,基于CUDA对八叉树单元中的各三角网格进行并行射线运算,以获取部件的深度图。

5.根据权利要求1或4所述的基于深度图像的三维部件相似度计算方法,其特征在于,进行并行射线运算之前,计算八叉树各单元格所包含的三角网格:计算三角网格的最小包络盒顶点坐标,判断顶点坐标是否存在于八叉树单元格中;若存在,则该三角网格属于该八叉树单元格。

6.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,基于表面深度图和背面深度图提取部件轮廓包括:选取表面深度图和背面深度图角点像素作为迭代起始点;

查找像素四周所有像素灰度值为0的点;

重复上一步骤,直至找到灰度值不为0的点,将其像素坐标予以保存;

迭代完成后,提取所有灰度值不为0的点,得到部件轮廓图。

7.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,第一阈值大于第二阈值。

8.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,聚类算法包括k‑means聚类算法。

9.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,计算外形相似度P包括:通过哈希值、汉明距离计算对比部件与当前部件的相似度,记为P1;

通过图片的余弦距离计算对比部件与当前部件的相似度,记为P2;

通过感知哈希算法计算对比部件与当前部件的相似度,记为P3;

最后,计算零件外形相似度:P=(P1+P2+P3)/3。

10.根据权利要求1所述的基于深度图像的三维部件相似度计算方法,其特征在于,当部件为产品时,部件相似度S计算公式如下:S=0.4*P+0.1*Q槽+0.1*Q孔+0.4*(Q扣+H)当部件为工件时,部件相似度S计算公式如下:

S=0.4*P+0.4*Q槽+0.2*Q孔。

说明书 :

基于深度图像的三维部件相似度计算方法

技术领域

[0001] 本发明属于三维部件相似度计算技术领域,具体涉及一种基于深度图像的三维部件相似度计算方法。

背景技术

[0002] 模具企业在模具生产过程中,储存了大量数字化数据,包括模具设计数模图档、模具物料BOM、零件工艺流程、零件加工工时、模具成本统计信息。由于同类产品通常具有相同或相似的典型结构特征,因此用来制作产品的模具也有明显的同质性。这种特点使得在模具制造过程中可以对历史数据进行重用。例如:
[0003] 1、模具报价阶段:在系统中筛选同类型产品、并查看图片与尺寸后选择多个相似性较高的产品,综合参考多个产品的设计、加工、材料费用并结合当前模具特点给出预估费用。
[0004] 2、模具设计阶段:按照产品类型通过文件夹分类储存来管理模具设计图档,在模具设计时,打开过去设计的同类产品模具图档,对比后筛选出一套结构相似度最高的模具,以此套模具为蓝本进行修改复用。
[0005] 3、工艺设计阶段:通常会将零件典型工艺设计成模板,并按照工件类型及尺寸予以分类;在工艺设计阶段,设计师通过零件类型及尺寸选择一个工艺模板作为参考,并根据零件的实际特征在选定工艺模板上进行调整。
[0006] 4、加工工时预估阶段:根据零件特征的复杂度,凭经验判断各类加工工艺的大概耗时。
[0007] 然而,模具历史数据量大且3D数字化模型复杂,依靠人工检索、筛选效率低下,且存在检索及访问困难的问题。此外,人工进行检索对比时,需要辨识的关键信息较多,容易出现遗漏的情况,且主观判断因素使得对比结果可能存在较大偏差。单纯通过产品类型进行分类管理并不完全可靠,同类型产品的外形、尺寸可能存在差异,不同产品也可能存在相似的结构,故基于产品分类进行检索存在检索不够全面的问题。

发明内容

[0008] 本发明的目的在于,提供一种基于深度图像的三维部件相似度计算方法,解决三维部件相似度计算问题。
[0009] 为实现上述目的,本发明提供了一种基于深度图像的三维部件相似度计算方法,包括以下步骤:
[0010] 获取三维部件的网格模型,得到网格模型的三角面顶点坐标,并存储为顶点文件;
[0011] 根据顶点文件最小包络盒子尺寸,创建八叉树;
[0012] 对八叉树单元格中的各三角网格进行并行射线运算,求解单位步距下各x、y坐标位置的深度方向坐标,以获取部件的表面深度图、背面深度图以及倒扣区域深度图;其中倒扣区域为三角网格受到其他网格遮挡,而无法被正向发射的射线直接穿透的区域,在计算时,三角网格的法向与射线方向相反,则被认定为倒扣区域;深度图中,无碰撞点的像素灰度值记为0,深度至最小点记灰度值为A,且满足A>0;
[0013] 基于表面深度图和背面深度图提取部件轮廓,并在部件轮廓的内部区域分割特征,包括凸台特征、槽位特征和孔位特征:
[0014] ①将局部表面深度图与背面深度图中灰度值差值大于第一阈值的区域,定义为凸台特征;
[0015] ②将局部表面深度图与背面深度图中灰度值差值小于第二阈值的区域,定义为槽位特征;
[0016] ③将图像灰度值等于0的区域,定义为孔位特征;
[0017] 基于倒扣区域深度图,分割倒扣特征:
[0018] 在倒扣区域深度图中,将所有灰度值不为0的点通过聚类算法进行分组,分组后的各连续区域即为倒扣特征;
[0019] 利用分类模型分别识别凸台特征、槽位特征和孔位特征的类型;
[0020] 对于凸台特征,计算当前部件与对比部件相同类型的特征的数量差值C;将相同类型的特征提取至一特征图中,通过图片的余弦距离计算当前部件与对比部件关于该类型的特征的相似度T,进而计算该类型的特征的相似度Q=1/min(1,C)+T;最后将凸台特征所有类型的特征的相似度相加,得到凸台特征的相似度Q凸;
[0021] 同理,得到槽位特征和孔位特征的相似度Q槽和Q孔;
[0022] 对于倒扣特征,计算当前部件与对比部件中倒扣特征的数量差值C’;将倒扣特征提取至一特征图中,通过图片的余弦距离计算当前部件与对比部件关于倒扣特征的相似度T’,进而计算倒扣特征的相似度Q扣=1/min(1,C’)+T’;此外,计算厚度相似度H=max(H1,H2)/|H1‑H2|,H1和H2分别表示当前部件与对比部件的扣位厚度;
[0023] 计算外形相似度P,最终计算部件相似度S:
[0024] S=λ1*P+λ2*Q凸+λ3*Q槽+λ4*Q孔+λ5*(Q扣+H)
[0025] 式中,λ1、λ2、λ3、λ4和λ5均为权重。
[0026] 进一步,获取三维部件的网格模型包括:
[0027] 获取三维部件的几何体;
[0028] 设置网格化参数,得到几何体所对应的网格模型。
[0029] 进一步,网格化参数满足以下要求:
[0030] 产品尺寸:误差<0.5mm,角度误差<1°;
[0031] 零件尺寸:误差<0.2mm,角度误差<0.5°。
[0032] 进一步,基于CUDA对八叉树单元中的各三角网格进行并行射线运算,以获取部件的深度图。
[0033] 进一步,进行并行射线运算之前,计算八叉树各单元格所包含的三角网格:
[0034] 计算三角网格的最小包络盒顶点坐标,判断顶点坐标是否存在于八叉树单元格中;若存在,则该三角网格属于该八叉树单元格。
[0035] 进一步,基于表面深度图和背面深度图提取部件轮廓包括:
[0036] 选取表面深度图和背面深度图角点像素作为迭代起始点;
[0037] 查找像素四周所有像素灰度值为0的点;
[0038] 重复上一步骤,直至找到灰度值不为0的点,将其像素坐标予以保存;
[0039] 迭代完成后,提取所有灰度值不为0的点,得到部件轮廓图。
[0040] 进一步,第一阈值大于第二阈值。
[0041] 进一步,聚类算法包括k‑means聚类算法。
[0042] 进一步,计算外形相似度P包括:
[0043] 通过哈希值、汉明距离计算对比部件与当前部件的相似度,记为P1;
[0044] 通过图片的余弦距离计算对比部件与当前部件的相似度,记为P2;
[0045] 通过感知哈希算法计算对比部件与当前部件的相似度,记为P3;
[0046] 最后,计算零件外形相似度:P=(P1+P2+P3)/3。
[0047] 进一步,当部件为产品时,部件相似度S计算公式如下:
[0048] S=0.4*P+0.1*Q槽+0.1*Q孔+0.4*(Q扣+H)
[0049] 当部件为工件时,部件相似度S计算公式如下:
[0050] S=0.4*P+0.4*Q槽+0.2*Q孔。
[0051] 本发明与现有技术相比,具有以下优点及有益效果:
[0052] 本发明通过获取部件的深度图,进而基于深度图分割特征,包括:凸台特征、槽位特征、孔位特征和倒扣特征,并分别计算各个特征的相似度,最终获取部件相似度。本发明可用于模具报价时检索相似产品并参考报价数据,模具设计中相似模具的检索与数据复用,工件工艺设计时检索相似工件并套用历史工艺,工件加工时评估时检索相似工件并参考历史工时。

附图说明

[0053] 图1为相似度计算方法流程图;
[0054] 图2为最小包络盒示意图;
[0055] 图3为八叉树示意图;
[0056] 图4为倒扣区域示意图;
[0057] 图5为模型深度图。

具体实施方式

[0058] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0059] 本发明解决的技术问题包括:1、提取三维几何模型的深度图:基于加工主视角计算三维几何模型在该视角上的包含深度信息的平面图像;2、基于CUDA的图像处理加速技术:获取高分辨率的深度图像需要对三角网格模型进行大规模碰撞计算,采用CPU编程运算时长太久;3、深度图像的局部特征提取:通过梯度法分割平面图像特征区域,并检索历史数据中该特征的典型工艺、加工工时等信息。
[0060] 本发明实施例的基于深度图像的三维部件相似度计算方法,如图1所示,包括以下步骤:
[0061] 1、深度图计算
[0062] 1.1、网格模型导出
[0063] 本实施例基于NX ufun二次开发平台实现数模导出功能:
[0064] 步骤1、调用UF_OBJ_cycle_objs_in_part API遍历部件文件中的几何体;
[0065] 步骤2、基于经验公式设置网格化参数:
[0066] 产品尺寸:误差<0.5mm,角度误差<1°;
[0067] 零件尺寸:误差小于<0.2mm,角度误差<0.5°;
[0068] 步骤3、调用UF_FACET_facet_solid API获取几何体所对应的网格模型;
[0069] 步骤4、循环调用UF_FACET_ask_n_facets_in_model API得到网格模型的三角面顶点坐标;
[0070] 步骤5、压缩顶点坐标并存储为二进制文件。
[0071] 1.2、射线法计算模型深度图
[0072] 步骤1、加载模型顶点坐标二进制文件,并解压顶点数据。
[0073] 步骤2、根据顶点文件最小包络盒子尺寸,创建八叉树,八叉树的最小深度需要满足模型计算精度。
[0074] 最小包络盒是指能够正好把工件包裹起来的最小长方体,如图2所示。如图3所示,八叉树(Octree)是一种用于描述三维空间的树状数据结构。八叉树的每个节点表示一个正方体的体积元素,每个节点有八个子节点,这八个子节点所表示的体积元素加在一起就等于父节点的体积。一般中心点作为节点的分叉中心。八叉树若不为空树的话,树中任一节点的子节点恰好只会有八个,或零个,也就是子节点不会有0与8以外的数目。八叉树叶子节点代表了分辨率最高的情况。例如分辨率设成0.1cm,那么每个叶子就是一个1mm的小方块。
[0075] 步骤3、将三角网格顶点数据通过CUDA API cudaMalloc+cudaMemcpy展开至显存中。CUDA是一种由NVIDIA推出的通用并行计算架构,经实验论证,GPU计算效率要比CPU计算效率高出20~120倍。
[0076] 步骤4、计算八叉树各单元可能包含的三角网格,用于降低射线计算过程总体计算量。
[0077] 计算三角网格的最小包络盒顶点坐标,判断顶点坐标是否存在于八叉树单元格中。若存在,则三角网格可能属于该八叉树单元格。
[0078] 步骤5、采用CUDA并行计算格式Ray2MeshDistance<<>>对八叉树单元中的各三角网格进行并行射线运算,求解单位步距下各x、y坐标位置的深度方向坐标。
[0079] 步骤6、倒扣区域计算:
[0080] 倒扣部分的定义是三角网格受到其他网格遮挡,无法被正向发射的射线直接穿透;计算时,三角网格的法向与射线方向相反时,被认定为倒扣区域。倒扣区域样例见图4。
[0081] 步骤7、分别储存零件表面深度图与零件背面深度图以及倒扣部分深度图至灰度图像,见图5。深度至最小点记灰度值为10,深度最大点记灰度为255,无碰撞点的像素记灰度值为0。
[0082] 2、三维零件几何特征分割
[0083] 2.1、零件轮廓提取
[0084] 步骤1、选取表面和背面深度图角点像素作为迭代起始点;
[0085] 步骤2、查找像素四周所有像素灰度值为0的点并予以记录;
[0086] 步骤3、重复步骤2,直至找到灰度值不为0的点,将其像素坐标予以保存;
[0087] 步骤4、迭代完成后提取所有灰度值不为0的像素坐标,存储至外部轮廓图中。
[0088] 2.2、凸台、槽位、孔位特征分割
[0089] 采用基于灰度阈值的方式将轮廓内部区域进行二次划分:
[0090] 凸台特征的厚度高于工件的平均厚度,因此可以此为依据,将局部表面深度图像与背面深度图像灰度值差值大的区域,定义为凸台特征。
[0091] 槽位特征的厚度低于工件平均厚度,因此可以此为依据,将局部表面深度图像与背面深度图像灰度值差值小的区域,定义为槽位特征。
[0092] 孔特征与轮廓外部区域类似,在进行射线碰撞计算时无碰撞点,因此灰度值为0。即所有外轮廓内部图像灰度值等于0的区域,记做孔位特征。
[0093] 2.3、倒扣特征分割
[0094] 步骤1、选取倒扣深度图角点像素作为迭代起始点;
[0095] 步骤2、查找像素四周所有像素灰度值为0的点并予以记录;
[0096] 步骤3、重复步骤2,直至找到灰度值不为0的点,将其像素坐标予以保存;
[0097] 步骤4、迭代完成后提取所有灰度值不为0的像素坐标,通过k‑means聚类算法将连续的区域进行分组;
[0098] 步骤5、将各连续区域像素坐标存储至内部轮廓图中。
[0099] 3、三维零件相似度计算
[0100] 3.1、外形相似度计算
[0101] 步骤1、通过哈希值,汉明距离计算数据库中已有工件与当前工件的相似度,记P1;
[0102] 步骤2、通过图片的余弦距离计算数据库中已有工件与当前工件的相似度,记P2;
[0103] 步骤3、通过感知哈希算法计算数据库中已有工件与当前工件的相似度,记P3;
[0104] 步骤4、零件外形综合相似度计算:P=(P1+P2+P3)/3。
[0105] 3.2、凸台、槽、孔倒扣特征相似度计算
[0106] 步骤1、凸台、槽位、孔数属于标准化结构,通过执行特征分割后步骤后,由用户对分割后的凸台、槽特征进行分类定义,典型类型如,槽类包括U型槽、T型槽,孔类包括波斯柱、圆孔、方孔等类型,并将结果记录至数据库中。
[0107] 步骤2、采用深度学习技术中的ResNet网络对凸台、槽类、孔类特征进行分类训练。
[0108] 步骤3、调参并迭代步骤2,直至验证集中准确率满足要求,保存训练完成的分类模型至数据库。
[0109] 步骤4、使用步骤3中分类模型对当前凸台、槽、孔的类型进行预测。
[0110] 步骤5、统计当前工件与历史工件各类型凸台、槽、孔的数量差值,记C=|Ci‑Ci’|,Ci是指当前工件某个特征中某类型的特征的数量,Ci’是指历史工件某个特征中某类型的特征的数量。
[0111] 步骤6、将某一特征,如凸台特征中相同类型的特征提取至同一特征图中,通过图片的余弦距离计算历史工件与当前工件的关于该特征图相似度,记为Ti。
[0112] 步骤7、计算凸台特征某一类型相似度:Q=1/min(1,C)+Ti,将凸台特征各类型相似度相加即为凸台特征相似度Q凸。槽类、孔类特征同理。
[0113] 比如槽位特征,槽类包括U型槽、T型槽,先计算U型槽相似度,再计算T型槽相似度,相加即为槽位特征相似度。
[0114] 步骤8、倒扣特征比凸台、槽和孔特征多出一项扣位厚度参数,相似度计算时增加厚度相似情况比较:H=max(H1,H2)/|H1‑H2|,H1和H2表示历史工件与当前工件的扣位厚度。
[0115] 4、相似性检索
[0116] 4.1、相似产品检索
[0117] 产品差异部分对加工、报价影响最大的部分是外形、倒扣特征的差异,因此这部分相似度权重初始设置较大,总相似度S初始计算规则如下:
[0118] S=0.4*P+0.1*Q槽+0.1*Q孔+0.4*(Q扣+H)
[0119] 4.2、相似工件检索
[0120] 工件加工成本对外形、槽位敏感度更高,因此这部分相似度权重初始设置较大。工件不存在倒扣情况,因此倒扣特征权重设置为0。工件的总相似度S初始计算规则如下:
[0121] S=0.4*P+0.4*Q槽+0.2*Q孔。
[0122] 本发明可以达到如下效果:
[0123] 用户导入产品/工件模型,计算模型深度图后自动检索相似历史数据,将TOP5数据提供给用户进行参考,用户根据判断选择出最优结果后自动导出历史数据。
[0124] 报价阶段选择产品模型,系统分析后列举出相似产品的外形及报价信息,选定参考数据后自动根据特征细节差异报价并导出报价结果。
[0125] 设计阶段选择产品模型,系统分析后列举相似产品外形及历史产品的设计方案与设计变更历程;用户选定参考模具后将模型自动导入CAD软件并自动进行编码更新。
[0126] 工艺设计阶段选择零件,系统综合零件类型、公差及几何特征后检索相似零件的工艺路线;用户选定一个参考工件后,系统基于细节特征的有无,自动删除、追加部分工艺信息,并自动填充工艺信息至当前工件。
[0127] 工件加工排程阶段,根据零件与历史数据相似度TOP5的零件实际加工工时按照权重进行累加,求出预期加工工时,用于系统排程的输入。
[0128] 需要指出,根据实施的需要,可将本申请中描述的各个步骤/部件拆分为更多步骤/部件,也可将两个或多个步骤/部件或者步骤/部件的部分操作组合成新的步骤/部件,以实现本发明的目的。
[0129] 本领域的技术人员容易理解,以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。