一种点云中圆柱体的拟合方法及计算机可读存储介质与流程

文档序号:37066219发布日期:2024-02-20 21:18阅读:19来源:国知局
一种点云中圆柱体的拟合方法及计算机可读存储介质与流程

本发明涉及视觉识别,具体涉及一种点云中圆柱体的拟合方法及计算机可读存储介质。


背景技术:

1、在机器视觉领域,深度图像或者可以反映物体的三维形貌信息的点云数据,在工业质检或者非接触测量,需要获取物体(例如平面、球、圆柱等三维物体)三维的形貌信息,进而将其用于圆柱度、垂直度、圆度等形位公差的非接触式测量。例如,首先对物体(如待检测物体)的全部轮廓或部分轮廓的像素点进行拟合,进而得到对应的拟合图像,然后基于该拟合图像实现待检测物体的工业检测,比如高度测量、体积测量以及其它相关的检测操作。

2、在上述拟合过程中,由于环境、待检测物体本身存在缺陷、局外点等因素影响而导致拟合图像的拟合精度低,无法准确完成形位公差的测量。在拍摄的数据中,内点是指与待检测物体表面之间的距离小于等于误差距离(预设的距离阈值)的像素点,局外点是指与待检测物体表面之间的距离大于误差距离的像素点。然而,对深度图像中待检测物体的全部轮廓或部分轮廓的像素点进行拟合时,若参与拟合的像素点中包括有局外点,则拟合获取的拟合图像会存在较大误差,进而会导致后续对待检测物体的高度及体积等的测量或检测不准确。故需要去除上述拟合过程中的局外点。

3、因此,有必要对上述现有技术进行改进。


技术实现思路

1、本发明主要解决的技术问题是提供一种点云中圆柱体的拟合方法,以有效去除异常点(如属于局外点的点云)对用于对待检测工件的三维形状进行拟合的拟合圆柱体的参数的最终拟合值的影响,进而提升后续对待检测工件的高度及体积等的测量或检测的精度和效率。

2、根据第一方面,一种实施例中提供一种点云中圆柱体的拟合方法。该拟合方法包括:

3、获取原始点云;从所述原始点云中随机选取多个点云,并对所述多个点云进行拟合而得到圆柱体,根据与所述圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将所述圆柱体作为初始的拟合圆柱体,当确定将所述圆柱体作为所述初始的拟合圆柱体时,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集;

4、其中,所述原始点云包括用于表征待检测工件的点云;

5、其中,所述拟合圆柱体用于对所述待检测工件的三维形状进行拟合;

6、对所述待拟合点云数据集中的点云进行估计,以得到所述拟合圆柱体的参数的初始值;

7、其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;

8、根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值;其中,所述迭代方程用于表征第i+1次迭代更新后的所述拟合圆柱体的参数与第i次迭代更新后的所述拟合圆柱体的参数的迭代更新关系。

9、一实施例中,所述从所述原始点云中随机选取多个点云,并对所述多个点云进行拟合而得到圆柱体,根据与所述圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将所述圆柱体作为初始的拟合圆柱体,当确定将所述圆柱体作为所述初始的拟合圆柱体时,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集,包括:

10、选择点云的步骤:从所述原始点云中随机选择一组点云;

11、生成圆柱体的步骤:对该组点云进行拟合而得到一个所述圆柱体,计算该组点云中各点云分别到所述圆柱体表面的距离;

12、确定内点的步骤:根据所述预设的距离阈值和该组点云中各点云分别到对应的所述圆柱体表面的距离,确定该组点云中内点的数量;其中,所述内点是指该组点云中到所述圆柱体表面的距离小于所述距离阈值的点云;

13、确定所述待拟合点云数据集的步骤:

14、若该组点云中所述内点的数量大于预设的数量阈值,则将所述圆柱体作为所述初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集,并将该组点云从所述原始点云中删除;

15、若该组点云中所述内点的数量小于所述预设的数量阈值,则继续迭代上述选择点云的步骤、生成圆柱体的步骤、确定内点的步骤,直至所述该组点云中所述内点的数量大于预设的数量阈值或者所述继续迭代后所生成的圆柱体与所述继续迭代前所生成的圆柱体的拟合误差小于预设的误差阈值,将最新得到的所述圆柱体作为所述初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集。

16、一实施例中,所述对所述待拟合点云数据集中与所述初始的拟合圆柱体对应的点云进行估计,以得到所述拟合圆柱体的参数的初始值,包括:

17、将与一个所述拟合圆柱体对应的点云的重心的坐标作为与所述拟合圆柱体对应的所述中心轴线上任意一点的坐标的初始值;

18、基于所述待拟合点云数据集中与所述拟合圆柱体对应的点云的协方差矩阵确定所述拟合圆柱体的中心轴线的方向向量的初始值;其中,所述拟合圆柱体的中心轴线的方向向量的初始值为所述协方差矩阵的最大特征值所对应的特征向量;

19、分别将与所述初始的拟合圆柱体对应的一组所述待拟合点云、所述中心轴线上任意一点的坐标的初始值和所述中心轴线的方向向量的初始值代入拟合圆柱体的参数方程而计算得到多个所述初始的拟合圆柱体的半径;

20、计算所有所述初始的拟合圆柱体的半径的平均值,将所述平均值作为所述拟合圆柱体的半径的初始值。

21、一实施例中,所述拟合圆柱体的参数方程为:

22、a2+b2+c2=r2,

23、其中,

24、

25、

26、

27、其中,(a,b,c)表示所述拟合圆柱体的中心轴线的方向向量,所述r表示所述拟合圆柱体的半径,表示所述中心轴线上任意一点的坐标,所述半径的表达式为:

28、

29、其中,ui=a,vi=b,wi=c。

30、一实施例中,所述根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值,包括:

31、基于所述拟合圆柱体的参数的初始值,计算所述待拟合点云数据集中各点云分别到对应的所述拟合圆柱体表面的距离,基于所述待拟合点云数据集中各点云分别到对应的所述拟合圆柱体表面的距离,获取所述待拟合点云数据集中各点云的损失值权重;

32、以所述中心轴线上任意一点的坐标的初始值为坐标原点,以所述中心轴线的方向向量的初始值为轴建立一个新的坐标系,利用预设的坐标变换公式将所述待拟合点云数据集中各点云的坐标转换至所述新的坐标系下;

33、根据预先构建好的所述拟合圆柱体的迭代方程,计算得到所述拟合圆柱体的参数变化量矩阵;其中,所述参数变化量矩阵包括:所述拟合圆柱体的中心轴线的方向向量的变化量、所述中心轴线上任意一点的坐标的变化量和所述拟合圆柱体的半径的变化量;

34、迭代更新与计算总体损失值的步骤:基于所述拟合圆柱体的参数变化量矩阵,对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数,计算所述迭代更新后的所述拟合圆柱体的总体损失值和所述迭代更新前的总体损失值;

35、重复所述迭代更新与计算总体损失值的步骤,直至达到所述预设的迭代更新停止条件,将与所述迭代更新停止条件对应的所述拟合圆柱体的参数的数值作为所述拟合圆柱体的参数的最终拟合值。

36、一实施例中,所述预设的迭代更新停止条件为:所述迭代更新后的总体损失值和所述迭代更新前的总体损失值的差值与所述迭代更新前的总体损失值的比值小于预设比例阈值,或者,达到预设的迭代次数阈值;

37、所述总体损失值是基于所述各点云的损失值权重而对所述各点云的损失值进行加权而得到的,所述各点云的损失值是基于所述各点云到所述拟合圆柱体表面的距离而得到的,所述各点云的损失值权重与所述各点云分别到对应的所述拟合圆柱体表面的距离成反比;

38、所述迭代方程是基于所述总体损失值分别相对于所述拟合圆柱体的各参数的变化率的矩阵而得到的。

39、一实施例中,所述预设的坐标变换公式的表达式为:

40、其中,(x'i,y'i,z'i)表示所述待拟合点云数据集中第i个点云在所述新的坐标系中的坐标,(xi,yi,zi)表示所述待拟合点云数据集中第i个点云在原有的坐标系中的坐标,

41、其中,当所述中心轴线的方向向量(a,b,c)为(1,0,0)时,s1=0,c1=1,s2=-1,c2=0;

42、否则,

43、一实施例中,所述迭代方程的表达式为:

44、(jitji+λdiag(jitji))pi=jitfi,

45、其中,所述ji表示第i次迭代更新后所述拟合圆柱体的总体损失值相对于所述拟合圆柱体的各参数的变化率的矩阵,所述ji的表达式为:

46、

47、其中,所述wi为所述待拟合点云数据集中第i个点云的损失值权重,所述n为所述待拟合点云数据集中点云的数量,所述pi为由所述第i次迭代更新至所述第i+1次迭代更新而产生的所述参数变化量矩阵,所述pi作为所述迭代方程的待求解量,

48、所述fi表示第i次迭代更新后根据第i个点云而对所述拟合圆柱体的半径进行估计而得到的估计值ri与当前的所述r的差值,

49、所述λi表示所述迭代方程第i次迭代更新后的学习率,所述学习率用于控制所述拟合圆柱体的各参数进行迭代更新的步长,

50、所述估计值ri的表达式为:

51、

52、一实施例中,所述pi的表达式为:

53、pi=[dx,dy,da,db,dr]t,

54、所述fi的表达式为:

55、fi=[r-r1,r-r2,...,r-rn]t。

56、一实施例中,所述更新后的所述拟合圆柱体的参数的表达式分别为:

57、

58、

59、r'=r+dr。

60、一实施例中,所述总体损失值的表达式为:

61、

62、其中,所述εi为所述待拟合点云数据集中第i个点云的损失值。

63、一实施例中,所述εi的表达式为:

64、或者其中,所述δi为所述待拟合点云中第i个点云到所述拟合圆柱体表面的距离,所述τ为所述距离阈值。

65、一实施例中,所述τ的表达式为:

66、

67、所述待拟合点云中第i个点云的损失值权重的表达式为:

68、或者

69、一实施例中,在所述对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数之后,若当次迭代更新后的所述拟合圆柱体的总体损失值与当次迭代更新前的所述拟合圆柱体的总体损失值的比值大于预设的比例阈值,则通过以下表达式对所述学习率进行更新:

70、λnew=λold/k,

71、其中,所述k为预设的系数,所述λold为当次迭代更新前的所述学习率,所述λnew为当次迭代更新后的所述学习率。

72、根据第二方面,一种实施例中提供一种计算机可读存储介质。该计算机可读存储介质包括程序。所述程序能够被处理器执行以实现如本文中任一实施例所述的方法。

73、本技术的有益效果是:

74、本技术所提供的点云中圆柱体的拟合方法,包括:

75、获取原始点云;从所述原始点云中随机选取多个点云,并对所述多个点云进行拟合而得到圆柱体,根据与所述圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将所述圆柱体作为初始的拟合圆柱体,当确定将所述圆柱体作为所述初始的拟合圆柱体时,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集;其中,所述原始点云包括用于表征待检测工件的点云;所述拟合圆柱体用于对所述待检测工件的三维形状进行拟合;对所述待拟合点云数据集中的点云进行估计,以得到所述拟合圆柱体的参数的初始值;其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值。该方法通过根据与所述圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将所述圆柱体作为初始的拟合圆柱体,当确定将所述圆柱体作为所述初始的拟合圆柱体时,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集,进而可以避免使用异常点(如属于局外点的点云)来进行后续拟合圆柱体的拟合,即,该方法能够有效去除异常点(如属于局外点的点云)对用于对待检测工件的三维形状进行拟合的拟合圆柱体的参数的最终拟合值的不利影响,提升最终拟合值的精度,进而提升后续对待检测工件的高度及体积等的测量或检测的精度和效率。

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