一种基于深度学习的三维网格修补方法

文档序号:36629539发布日期:2024-01-06 23:19阅读:18来源:国知局
一种基于深度学习的三维网格修补方法

本发明属于图像处理,尤其涉及一种基于深度学习的三维网格修补方法。


背景技术:

1、现如今由于低成本三维扫描设备的普及,对现实世界物体进行三维扫描的应用迅速传播。然而,这些3d扫描仪捕获的网格数据通常包括由于自身遮挡、暗色和表面高光反射度而导致的孔洞或缺失区域。因此,如何快速、准确、自动地修复三维网格模型缺陷已成为三维图形处理的重要研究方向之一

2、然而,在基于深度学习的三维网格修补研究中,也存在一些问题和挑战。首先,目前基于深度学习的三维网格修补技术在实际应用中有时会出现一些准确度不高,或修补结果不稳定的情况。因此,如何提高算法的准确性和稳定性,将是今后研究重点之一。此外,基于深度学习的三维网格修补技术的训练数据集需要包含各种模型的信息,数据集质量与多样性直接影响到修补算法的性能和泛化能力,而且对于某些实时性较高的应用场景,有时候需要快速地生成模型。因此,如何构建大规模、高质量、多样性的数据集,并且如何提高算法的实时性,也是一个亟待解决的问题。

3、专利文献cn109615702a公开了一种网格补洞方法、图像处理设备及具有存储功能的装置,该网格补洞方法包括:获取三维网格模型;检测三维网格模型中是否存在孔洞;若存在孔洞,则对孔洞进行补洞操作;对经过补洞操作后的三维网格模型中新增的顶点进行平滑处理;其中,平滑处理是基于拉普拉斯和高斯曲率的平滑移动。

4、专利文献cn113593011a公开了一种孔洞修补方法、电子装置和存储介质,该孔洞修补方法包括:获取标记点在三维网格模型中的中心坐标和标记点的半径;根据标记点的中心坐标和标记点的半径,确定几何体,其中,几何体的中心坐标与标记点的中心坐标相同;在几何体范围内,获取面片各顶点的坐标;根据面片各顶点的坐标,确定待修补孔洞的边界顶点集合;在三维网格模型中,根据边界顶点集合,确定待修补孔洞的边界,并对待修补孔洞的边界进行孔洞修补。

5、专利均采用传统方法进行孔洞修补,基于三维网格的局部几何性质作为先验知识,然后使用插值的方法对孔洞进行填充。这些方法可以很好地修复简单的小孔,但是在面对较大的复杂的孔洞时,这些方法会出现明显的细节丢失问题。


技术实现思路

1、本发明的目的在于提供一种基于深度学习的三维网格修补方法,该方法能够有效还原了孔洞区域的原始细节,从而修补获得更加完整的三维网格数据,而完整的三维网格数据可以重构更加精细的3d几何模型。

2、为了实现本发明的目的,提供了一种基于深度学习的三维网格修补方法,包括以下步骤:

3、步骤1、对待修补的三维网格数据进行预处理,以构建符合二维流形网络拓扑结构的第一数据集,所述第一数据集包括三维网格数据,以及网格中顶点的中心坐标和归一化参数,所述预处理包括缺陷删除、网络修复以及坐标归一化;

4、步骤2、检测所述第一数据集中网格的孔洞区域,并对获取的孔洞区域进行简单填充,以获得对应的第二数据集;

5、对所述第二数据集进行网格平滑操作,以获得对应的第三数据集;

6、步骤3、基于第二数据集与第三数据集进行数据匹配,以生成非孔洞区域的细节修补信息,并将第二数据集和所述细节修补信息进行结合,以结合结果中三维网格的每个面片和指定范围内所有面片的特征信息,以构建对应的补丁集合;

7、步骤4、将所述补丁集合输入至预构建的深度学习网络中消除噪声并生成对应的隐向量,基于所述隐向量计算三维网格中孔洞区域顶点周围所有面片的法向量并作为预测结果输出;

8、步骤5、基于步骤4获得的法向量和第一数据集中所有顶点的中心坐标和归一化参数对第二数据集进行更新修补,以获得修补完成的三维网格数据。

9、本发明通过训练一个深度神经网络,自动恢复三维网格模型的缺损部分,实现对三维网格模型的修复和完善,这个神经网络能够非常快速地进行修复工作,并能更好地保留模型的原有特征,如几何形状、表面纹理和其他几何属性。

10、具体的,在步骤1中,所述网格修复的具体过程如下:

11、步骤1-1、检查三维网格数据中每条边的相邻面:

12、当一条边同时与超过2个面相连,那么它被认为是非流形边;

13、当检测到非流形边时,会直接移除这条边,并将周围的面进行移除或合并工作;

14、步骤1-2、检查三维网格数据中每个顶点的连接边:

15、当一个顶点同时与超过2个边相连,那么它被认为是非流行顶点;

16、当检测到非流形顶点时,根据情况会移除该顶点及其邻边,或是进行边的合并。

17、具体的,在步骤1中,所述坐标归一化的具体过程如下:

18、步骤1-3、计算网格中心点坐标:遍历网格中的所有顶点求平均值,得到网格中心点坐标值,并对于三维网格数据中的每一个顶点,将其坐标值减去中心点的坐标值,以获得每个顶点对应的修正坐标;

19、步骤1-4、对于三维网格数据中的每一个顶点,将其修正坐标值除以对应坐标轴的尺度,以获得每个顶点对应的归一化坐标值。

20、具体的,所述计算网格中心点坐标的表达式如下:

21、

22、式中,(x,y,z)表示顶点的坐标,n表示三维网格顶点的数量。

23、具体的,所述归一化的表达式如下:

24、

25、

26、

27、式中,xmax,xmin,ymax,ymin,zmax,zmin分别表示顶点坐标在x轴,y轴,z轴上的最大值与最小值;xscale,yscale,zscale表示相应坐标轴的比例参数。

28、具体的,在步骤2中对孔洞区域进行简单填充的具体过程如下:

29、步骤2-1、搜索三维网格数据中所有的孔洞区域,得到待修补区域边界;

30、步骤2-2、沿待修补区域边界向孔洞区域内部移动至顶点,根据周围顶点的位置插值计算新顶点的位置,并连接新生成的顶点和已知的顶点,以创建新的三角面片来修补孔洞区域。

31、具体的,在步骤2中网格平滑操作的具体过程如下:

32、步骤2-3、计算孔洞区域中每一个顶点的拉普拉斯坐标,所述拉普拉斯坐标表示一个顶点的位置相对于其周围顶点的偏移量;

33、步骤2-4、根据计算得到的拉普拉斯坐标,以更新对应顶点的位置,所述更新的过程如下:

34、v′i=vi+αδi

35、其中,α为平滑系数,用于控制平滑的力度,vi与vi′分别为原始顶点坐标与修改后的顶点坐标,δi为顶点的拉普拉斯坐标。

36、具体的,在步骤3中补丁集合的构建过程下:

37、步骤2-5、对于每个面片计算对应的补丁半径,选取所有距离给定面片中心点距离小于补丁半径的顶点,并计算选取获得顶点的所有领面作为对应面片的补丁范围;

38、步骤2-6、对于面片对应的补丁,通过提取对应补丁范围内所有面片的特征信息,并建立面片之间的连接关系,以生成补丁的图状特征。

39、具体的,所述拉普拉斯坐标的计算过程如下:

40、

41、式中,δi为顶点的拉普拉斯坐标,vi=(xi,yi,zi)为第i个顶点的坐标,vj=(xj,yj,zj)为第i个顶点的第j个相邻顶点的坐标,e为第i顶点的相邻顶点数,wij为权重参数。

42、具体的,所述补丁半径的计算过程如下:

43、

44、其中a为面片二环领域内所有面片的面积总和,s为比例参数。

45、具体的,在步骤4中采用图卷积神经网络对补丁集合进行数据处理,以获得三维网格中孔洞区域顶点周围所有面片的法向量。

46、具体的,在步骤5中所述更新修补的具体过程如下:

47、步骤5-1、使用双边滤波器对法向量进行处理,以过滤法向量中的一些错误结果;

48、步骤5-2、基于过滤后的法向量,采用顶点更新方法对第二数据集中的顶点进行修补,以获得修补后的第二数据集;

49、步骤5-3、利用第一数据集中所有顶点的中心点坐标和归一化参数,将修补后的第二数据集更新至待修补的三维网格数据,以完成所述三维网格数据的修补工作。

50、与现有技术相比,本发明的有益效果:

51、无需先验知识对网络进行训练,从而支持用户自行选取孔洞区域,并能够快速完成修补工作,同时在修补的同时能够更好的保留三维网格原始的更好地保留模型的原有特征,如几何形状、表面纹理和其他几何属性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1