一种机械零件三维重建方法及系统与流程

文档序号:40946117发布日期:2025-02-18 19:09阅读:4来源:国知局
一种机械零件三维重建方法及系统与流程

本发明涉及三维重建领域,具体为一种机械零件三维重建方法及系统。


背景技术:

1、通过三维重建,可以精确捕捉零件的几何形状、尺寸和结构特征,实现零件的数字化存档和共享,并为零件的改进与优化提供重要的基础数据。此外,三维重建还可以用于检测零件的磨损、缺陷等问题,有助于提高零件的生产质量和使用寿命。一般的做法是通过多角度拍摄机械零部件的二维图像,然后通过sfm等方法得到点云,并基于点云进行三维重建。机械零件的精度要求高,需要三维重建方法具有较高的精度,能够捕捉到零部件的细节,3d高斯溅射(3d gaussian splatting)作为一种有效的三维建模和渲染方法,其在机械零件复杂表面重建中的潜力,但是3d高斯溅射是基于稀疏点云的,而且sfm方法生成的点云也是稀疏的,但是机械零件的结构复杂,边缘和拐角等比较多,在对机械零件进行三维重建时,很可能会出现建模不准确的问题。


技术实现思路

1、基于此,本发明提供一种机械零件三维重建方法及系统,以解决至少一个上述技术问题。

2、为实现上述目的,本发明提供了一种机械零件三维重建方法,所述方法包括以下步骤:

3、步骤1,根据多视角图像得到机械零件的sfm点云,计算点云中每个点的主曲率,并将主曲率中最大曲率和最小曲率中绝对值最大值作为点的曲率;根据点的曲率和点在预设范围内的密度,采用所述多视角图像为sfm点云中的点生成新的邻近点;

4、步骤2,基于sfm点云中点的主曲率确定初始化高斯点时高斯点的形状,当密集化高斯点时,若待密集化的高斯点由sfm点云初始化,且待密集化的高斯点存在没有初始化为高斯点的邻近点,则根据待密集化的高斯点的邻近点对待密集化的高斯点进行密集化;

5、步骤3,当训练结束后,利用训练完成的高斯点完成机械零件的三维重建。

6、优选地,所述根据点的曲率和点在预设范围内的密度,采用所述多视角图像为sfm点云中的点生成新的邻近点,具体为:

7、基于点的曲率和点在预设范围内的密度确定预设数量;

8、获取sfm点云中的点在每个视角图像中的位置,基于像素点的梯度从以所述位置为中心的一定范围内像素点中选取预设数量的目标像素点,将目标像素点变换到三维空间得到三维邻近点;

9、对sfm点云中同一个点在所有视角图像中的三维邻近点进行去重,保留所述预设数量的三维邻近点作为点的新的邻近点。

10、优选地,所述基于sfm点云中点的主曲率确定初始化高斯点时高斯点的形状,具体为:

11、获取sfm点云中待初始化点和sfm点云中其他点的最近距离,并获取待初始化点的所述曲率;

12、若所述曲率小于阈值,则所述高斯点的形状为球,球的半径基于所述最近距离和曲率确定;否则,所述高斯点的形状为椭球,椭球的形状基于所述最近距离和主曲率确定。

13、优选地,所述根据待密集化的高斯点的邻近点对待密集化的高斯点进行密集化,具体为:

14、判断密集化高斯点的类型,若类型为分裂,则获取待密集化的高斯点对应的没有初始化为高斯点的所有邻近点并加入到集合中,将待密集化的高斯点也加入到所述集合中,将集合中的点按照距离聚为两类,找到集合中距离每个所述聚类的中心最近的点,根据所述最近的点的主曲率确定将所述最近的点初始化高斯点时高斯点的形状;

15、若类型为克隆,则获取待密集化的高斯点对应的没有初始化为高斯点的所有邻近点并加入到集合中,获取所述集合中所有点构成区间的质心,找到集合中距离所述质心最近的点,根据所述最近的点的主曲率确定将所述最近的点初始化高斯点时高斯点的形状。

16、优选地,所述步骤2,还包括:

17、若待密集化的高斯点不是由sfm点云初始化,或者待密集化的高斯点不存在没有初始化为高斯点的邻近点,则根据3d高斯溅射中默认方式对待密集化的高斯点进行密集化。

18、此外,本发明提供了一种机械零件三维重建系统,所述系统包括以下模块:

19、点云生成模块,用于根据多视角图像得到机械零件的sfm点云,计算点云中每个点的主曲率,并将主曲率中最大曲率和最小曲率中绝对值最大值作为点的曲率;根据点的曲率和点在预设范围内的密度,采用所述多视角图像为sfm点云中的点生成新的邻近点;

20、高斯点优化模块,用于基于sfm点云中点的主曲率确定初始化高斯点时高斯点的形状,当密集化高斯点时,若待密集化的高斯点由sfm点云初始化,且待密集化的高斯点存在没有初始化为高斯点的邻近点,则根据待密集化的高斯点的邻近点对待密集化的高斯点进行密集化;

21、三维重建模块,用于当训练结束后,利用训练完成的高斯点完成机械零件的三维重建。

22、优选地,所述根据点的曲率和点在预设范围内的密度,采用所述多视角图像为sfm点云中的点生成新的邻近点,具体为:

23、基于点的曲率和点在预设范围内的密度确定预设数量;

24、获取sfm点云中的点在每个视角图像中的位置,基于像素点的梯度从以所述位置为中心的一定范围内像素点中选取预设数量的目标像素点,将目标像素点变换到三维空间得到三维邻近点;

25、对sfm点云中同一个点在所有视角图像中的三维邻近点进行去重,保留所述预设数量的三维邻近点作为点的新的邻近点。

26、优选地,所述基于sfm点云中点的主曲率确定初始化高斯点时高斯点的形状,具体为:

27、获取sfm点云中待初始化点和sfm点云中其他点的最近距离,并获取待初始化点的所述曲率;

28、若所述曲率小于阈值,则所述高斯点的形状为球,球的半径基于所述最近距离和曲率确定;否则,所述高斯点的形状为椭球,椭球的形状基于所述最近距离和主曲率确定。

29、优选地,所述根据待密集化的高斯点的邻近点对待密集化的高斯点进行密集化,具体为:

30、判断密集化高斯点的类型,若类型为分裂,则获取待密集化的高斯点对应的没有初始化为高斯点的所有邻近点并加入到集合中,将待密集化的高斯点也加入到所述集合中,将集合中的点按照距离聚为两类,找到集合中距离每个所述聚类的中心最近的点,根据所述最近的点的主曲率确定将所述最近的点初始化高斯点时高斯点的形状;

31、若类型为克隆,则获取待密集化的高斯点对应的没有初始化为高斯点的所有邻近点并加入到集合中,获取所述集合中所有点构成区间的质心,找到集合中距离所述质心最近的点,根据所述最近的点的主曲率确定将所述最近的点初始化高斯点时高斯点的形状。

32、优选地,所述高斯点优化模块,还用于:

33、若待密集化的高斯点不是由sfm点云初始化,或者待密集化的高斯点不存在没有初始化为高斯点的邻近点,则根据3d高斯溅射中默认方式对待密集化的高斯点进行密集化。

34、最后,本发明提供了一种计算机程序,所述计算机程序在被处理器执行时,实现如前所述的方法。

35、本发明在对机械零件进行三维重建中,基于sfm点云中点的主曲率确定初始化高斯点时高斯点的形状,对于曲率大的点初始化为较小的高斯点,这样能够更好的得到机械零件的细节,对于曲率小的点初始化为较大的高斯点,这样能够减少高斯点数,提高计算速度。

36、此外,本发明在密集化高斯点时,若待密集化的高斯点由sfm点云初始化,且待密集化的高斯点存在没有初始化为高斯点的邻近点,则根据待密集化的高斯点的邻近点对待密集化的高斯点进行密集化,能够提高密集化的适应性,避免了对所有高斯点都采用相同的密集方式,而且能够使得密集化的高斯点更和机械零件结构吻合。

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