CN117152230B - 一种圆柱度的估计方法及计算机可读存储介质 - Google Patents

一种圆柱度的估计方法及计算机可读存储介质 Download PDF

Info

Publication number
CN117152230B
CN117152230B CN202311406814.0A CN202311406814A CN117152230B CN 117152230 B CN117152230 B CN 117152230B CN 202311406814 A CN202311406814 A CN 202311406814A CN 117152230 B CN117152230 B CN 117152230B
Authority
CN
China
Prior art keywords
fitting
point cloud
fitting cylinder
cylinder
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202311406814.0A
Other languages
English (en)
Other versions
CN117152230A (zh
Inventor
杨洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Huahan Weiye Technology Co ltd
Original Assignee
Shenzhen Huahan Weiye Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Huahan Weiye Technology Co ltd filed Critical Shenzhen Huahan Weiye Technology Co ltd
Priority to CN202311406814.0A priority Critical patent/CN117152230B/zh
Publication of CN117152230A publication Critical patent/CN117152230A/zh
Application granted granted Critical
Publication of CN117152230B publication Critical patent/CN117152230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30108Industrial image inspection
    • G06T2207/30164Workpiece; Machine component
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供一种圆柱度的估计方法及计算机可读存储介质。该估计方法包括:获取原始点云;利用原始点云进行圆柱体拟合,获得拟合圆柱体以及拟合圆柱体的参数的最终拟合值;其中,拟合圆柱体用于对待检测工件的三维形状进行拟合;其中,原始点云包括用于表征待检测工件的点云;基于拟合圆柱体的参数的最终拟合值确定基准平面;基于基准平面以及待拟合点云数据集求解拟合圆柱体的圆柱度,进而得到待检测工件的圆柱度。本方法能够在非接触情况下对待检测工件的形位公差进行测量,有效抑制异常数据,并获得前述待检测工件所对应的拟合圆柱体的真实数据,确保圆柱度计算的准确性和稳定性。

Description

一种圆柱度的估计方法及计算机可读存储介质
技术领域
本发明涉及视觉识别技术领域,具体涉及一种圆柱度的估计方法及计算机可读存储介质。
背景技术
在机器视觉领域,深度图像或者可以反映物体的三维形貌信息的点云数据,在工业质检或者非接触测量,需要获取物体(例如平面、球、圆柱等三维物体)三维的形貌信息,进而将其用于圆柱度、垂直度、圆度等形位公差的非接触式测量。例如,首先对物体(如待检测物体)的全部轮廓或部分轮廓的像素点进行拟合,进而得到对应的拟合图像,然后基于该拟合图像实现待检测物体的工业检测,比如高度测量、体积测量以及其它相关的检测操作。
在上述拟合过程中,由于环境、待检测物体本身存在缺陷、局外点等因素影响而导致拟合图像的拟合精度低,无法准确完成形位公差的测量。在拍摄的数据中,内点是指与待检测物体表面之间的距离小于等于误差距离(预设的距离阈值)的像素点,局外点是指与待检测物体表面之间的距离大于误差距离的像素点。然而,对深度图像中待检测物体的全部轮廓或部分轮廓的像素点进行拟合时,若参与拟合的像素点中包括有局外点,则拟合获取的拟合图像会存在较大误差,进而会导致后续对待检测物体的高度及体积等的测量或检测不准确。
因此,有必要对上述现有技术进行改进。
发明内容
本发明主要解决的技术问题是提供一种圆柱度的估计方法及计算机可读存储介质,以通过对包括用于表征待检测工件的点云的原始点云进行处理,而得到上述待检测工件的圆柱度。
根据第一方面,一种实施例中提供一种圆柱度的估计方法。该估计方法包括:
获取原始点云,利用所述原始点云进行圆柱体拟合,获得拟合圆柱体以及所述拟合圆柱体的参数的最终拟合值;其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;其中,所述原始点云包括用于表征待检测工件的点云;
基于所述拟合圆柱体的参数的最终拟合值,确定基准平面;基于所述基准平面以及所述待拟合点云数据集,求解所述拟合圆柱体的圆柱度;其中,所述基准平面经过由所述中心轴线上任意一点的坐标的最终拟合值所确定的一个点,且所述基准平面的法向量与由所述方向向量的最终拟合值所确定的中心轴线的方向向量平行。
一实施例中,所述基于所述拟合圆柱体的参数的最终拟合值,确定基准平面,包括:
利用所述拟合圆柱体的参数的最终拟合值,构建用于表征所述基准平面的平面方程;
其中,所述平面方程的表达式为:
a end x-x end )+b end y-y end )+c end z-z end )=0,
其中,(a end b end c end )为所述方向向量的最终拟合值,(x end y end z end )为所述中心轴线上任意一点的坐标的最终拟合值,(xyz)为所述基准平面上的点的坐标。
一实施例中,所述基于所述基准平面以及所述待拟合点云数据集,求解所述拟合圆柱体的圆柱度,包括:
基于多个与所述基准平面平行的截面,将所述待拟合点云数据集划分为多个子待拟合点云数据集;
将所述子待拟合点云数据集内的点云投影至所述基准平面或所述截面而得到对应的投影点,对所述对应的投影点进行拟合而得到与所述子待拟合点云数据集对应的拟合圆;
分别计算各所述对应的投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离;其中,当所述投影点位于所述对应的拟合圆的外部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为正号;当所述投影点位于所述对应的拟合圆的内部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为负号;
或者,
当所述投影点位于所述对应的拟合圆的外部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为负号;当所述投影点位于所述对应的拟合圆的内部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为正号;
分别确定所述对应的投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的最大距离和最小距离;其中,所述最大距离的符号为正号或负号,所述最小距离的符号为正号或负号;
获取与所述子待拟合点云数据集对应的各所述最大距离和各所述最小距离,若所述最大距离的符号与所述最小距离的符号相同,则将所述最大距离和所述最小距离这两者中绝对值大的一个作为与所述子待拟合点云数据集对应的截面的距离;
若所述最大距离的符号与所述最小距离的符号不同,则取所述最大距离和所述最小距离这两者的差值作为与所述子待拟合点云数据集对应的截面的距离;
将各所述截面的距离的最大值作为所述拟合圆柱体的圆柱度。
一实施例中,获取原始点云,所述原始点云包括用于表征待检测工件的点云;利用所述原始点云进行圆柱体拟合,获得拟合圆柱体以及所述拟合圆柱体的参数的最终拟合值,包括:
获取原始点云;根据所述原始点云确定初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集;其中,所述原始点云包括用于表征待检测工件的点云;其中,所述拟合圆柱体用于对所述待检测工件的三维形状进行拟合;
对所述待拟合点云数据集中与所述初始的拟合圆柱体对应的点云进行估计,以得到所述拟合圆柱体的参数的初始值;其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;
根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值;其中,所述迭代方程用于表征第i+1次迭代更新后的所述拟合圆柱体的参数与第i次迭代更新后的所述拟合圆柱体的参数的迭代更新关系,所述迭代方程是基于总体损失值分别相对于所述拟合圆柱体的各参数的变化率的矩阵而得到的,所述总体损失值是基于各点云的损失值权重而对所述各点云的损失值进行加权而得到的,所述各点云的损失值是基于所述各点云到所述拟合圆柱体表面的距离而得到的,所述各点云的损失值权重与所述各点云分别到对应的所述拟合圆柱体表面的距离成反比。
一实施例中,所述根据所述原始点云确定初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集,包括:
选择点云的步骤:从所述原始点云中随机选择一组点云;
生成圆柱体的步骤:对该组点云进行拟合而得到一个所述圆柱体,计算该组点云中各点云分别到所述圆柱体表面的距离;
其中,该组点云中的部分或全部点云位于对应的所述圆柱体上;
确定内点与外点的步骤:根据所述预设的距离阈值和该组点云中各点云分别到对应的所述圆柱体表面的距离,确定该组点云中内点的数量和外点的数量;其中,所述内点是指该组点云中到所述圆柱体表面的距离小于所述距离阈值的点云,所述外点是指该组点云中到所述圆柱体的距离大于所述预设的距离阈值的点云;
确定所述待拟合点云数据集的步骤:
若该组点云中所述内点的数量大于预设的数量阈值,则将所述圆柱体作为初始的拟合圆柱体,将该组点云作为与所述初始的拟合圆柱体对应的一组待拟合点云,并将该组点云从所述原始点云中删除;
若该组点云中所述内点的数量小于所述预设的数量阈值,则继续迭代上述选择点云的步骤、生成圆柱体的步骤、确定内点与外点的步骤,直至所述该组点云中所述内点的数量大于预设的数量阈值或者所述继续迭代后所生成的圆柱体与所述继续迭代前所生成的圆柱体的拟合误差小于预设的误差阈值,将所有组所述待拟合点云作为所述待拟合点云数据集。
一实施例中,所述对所述待拟合点云数据集中与所述初始的拟合圆柱体对应的点云进行估计,以得到所述拟合圆柱体的参数的初始值,包括:
将与一个所述拟合圆柱体对应的点云的重心的坐标作为与所述拟合圆柱体对应的所述中心轴线上任意一点的坐标的初始值;
基于所述待拟合点云数据集中与所述拟合圆柱体对应的点云的协方差矩阵确定所述拟合圆柱体的中心轴线的方向向量的初始值;其中,所述拟合圆柱体的中心轴线的方向向量的初始值为所述协方差矩阵的最大特征值所对应的特征向量;
获取所述拟合圆柱体的参数方程,分别将与所述初始的拟合圆柱体对应的一组所述待拟合点云、所述中心轴线上任意一点的坐标的初始值和所述中心轴线的方向向量的初始值代入所述拟合圆柱体的参数方程而计算得到多个所述初始的拟合圆柱体的半径;
计算所有所述初始的拟合圆柱体的半径的平均值,将所述平均值作为所述拟合圆柱体的半径的初始值。
一实施例中,所述拟合圆柱体的参数方程为:
A 2 +B 2 +C 2 =R 2
其中,
其中,(abc)表示所述拟合圆柱体的中心轴线的方向向量,所述R表示所述拟合圆柱体的半径,表示所述中心轴线上任意一点的坐标,所述半径的表达式为:
其中,u i =A,v i =Bw i =C
一实施例中,所述根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值,包括:
以所述中心轴线上任意一点的坐标的初始值为坐标原点,以所述中心轴线的方向向量的初始值为轴建立一个新的坐标系,利用预设的坐标变换公式将所述待拟合点云数据集中各点云的坐标转换至所述新的坐标系下;
根据预先构建好的所述拟合圆柱体的迭代方程计算得到所述拟合圆柱体的参数变化量矩阵;其中,所述参数变化量矩阵包括:所述拟合圆柱体的中心轴线的方向向量的变化量、所述中心轴线上任意一点的坐标的变化量和所述拟合圆柱体的半径的变化量;
迭代更新与计算总体损失值的步骤:基于所述拟合圆柱体的参数变化量矩阵,对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数,并基于所述更新后的所述拟合圆柱体的参数计算所述迭代更新后的所述拟合圆柱体的总体损失值,基于所述更新前的所述拟合圆柱体的参数计算所述迭代更新前的总体损失值;
重复所述迭代更新与计算总体损失值的步骤,直至达到所述预设的迭代更新停止条件,将与所述迭代更新停止条件对应的所述拟合圆柱体的参数的数值作为所述拟合圆柱体的参数的最终拟合值;其中,所述预设的迭代更新停止条件为:所述迭代更新后的总体损失值和所述迭代更新前的总体损失值的差值与所述迭代更新前的总体损失值的比值小于预设比例阈值,或者,达到预设的迭代次数阈值。
一实施例中,所述预设的坐标变换公式的表达式为:
其中,(x' i y' i z' i )表示所述待拟合点云数据集中第i个点云在所述新的坐标系中的坐标,(x i y i z i )表示所述待拟合点云数据集中第i个点云在原有的坐标系中的坐标,
其中,当所述中心轴线的方向向量(abc)为(1,0,0)时,s 1=0,c 1=1,s 2=-1,c 2=0;
否则,
一实施例中,所述迭代方程的表达式为:
其中,所述J i 表示第i次迭代更新后所述拟合圆柱体的总体损失值相对于所述拟合圆柱体的各参数的变化率的矩阵,所述J i 的表达式为:
其中,所述w i 为所述待拟合点云数据集中第i个点云的损失值权重,所述N为所述待拟合点云数据集中点云的数量,所述P i 为所述参数变化量矩阵,所述P i 作为所述迭代方程的待求解量,
所述F i 表示第i次迭代更新后根据第i个点云而对所述拟合圆柱体的半径进行估计而得到的估计值r i 与当前的所述R的差值,
所述λ i 表示所述迭代方程第i次迭代更新后的学习率,所述学习率用于控制所述拟合圆柱体的各参数进行迭代更新的步长,
所述估计值r i 的表达式为:
一实施例中,在所述对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数之后,若当次迭代更新后的所述拟合圆柱体的总体损失值与当次迭代更新前的所述拟合圆柱体的总体损失值的比值大于预设的比例阈值,则通过以下表达式对所述学习率进行更新:
其中,所述k为预设的系数,所述λ old 为当次迭代更新前的所述学习率,所述λ new 为当次迭代更新后的所述学习率。
根据第二方面,一种实施例中提供一种计算机可读存储介质。该计算机可读存储介质包括程序。所述程序能够被处理器执行以实现如本文中任一实施例所述的方法。
本申请的有益效果是:
本申请的上述估计方法包括:获取原始点云,利用所述原始点云进行圆柱体拟合,获得拟合圆柱体以及所述拟合圆柱体的参数的最终拟合值;其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;其中,所述原始点云包括用于表征待检测工件的点云;基于所述拟合圆柱体的参数的最终拟合值,确定基准平面;基于所述基准平面以及所述待拟合点云数据集,求解所述拟合圆柱体的圆柱度,进而得到待检测工件的圆柱度;其中,所述基准平面经过由所述中心轴线上任意一点的坐标的最终拟合值所确定的一个点,且所述基准平面的法向量与由所述方向向量的最终拟合值所确定的中心轴线的方向向量平行。本估计方法可以实现在非接触情况下对前述待检测工件的形位公差进行测量,同时通过有效抑制异常数据,进而可以更好地获得前述待检测工件所对应的拟合圆柱体的真实数据,确保所计算得出的前述待检测工件的圆柱度的准确性和稳定性。
附图说明
图1为一种实施例的圆柱度的估计方法的流程示意图;
图2为一种实施例的将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集的流程示意图;
图3为一种实施例的对待拟合点云数据集中与初始的拟合圆柱体对应的点云进行估计以得到拟合圆柱体的参数的初始值的流程示意图;
图4为一种实施例的得到拟合圆柱体的参数的最终拟合值的流程示意图;
图5为一种实施例的基于基准平面以及待拟合点云数据集求解拟合圆柱体的圆柱度的流程示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
当前,主要基于拟合方法来获得物体的三维形状信息,但是,该方法的抗噪声性能较差。本申请提出一种圆柱度的估计方法,该估计方法具有较好抗噪声。该估计方法是基于几何基元进行参数的估计和迭代优化的。几何基元是几何元素的统称,例如,直线、圆、球、圆柱、圆锥等。而圆柱形毛坯件是典型的一类工件,经过机床加工后可生产各种轴类零件。目前圆柱形工件的3D视觉识别方法包括以下几部分:1)获取原始工件的3D点云;2)对原始点云进行滤波,并计算其法向;3)采用传统圆柱拟合工具分割点云中的圆柱体;4)输出圆柱体的识别结果。而在工程实际中,由于原始3D点云中存在噪声点,导致圆柱拟合偏差较大且计算量较大。此外,由于大多数待检测物体的形状由球面、柱面或者锥面等二次曲面构成,若拍摄不同形状的待检测物体,则获得的深度图像也不同,而对于不同的深度图像,需要采用与待检测物体形状对应的去除深度图像中局外点的方法。比如,待检测物体为圆柱状时,现有技术采用针对圆柱的去除局外点的方法,比如,采用坐标变换法、投影法等去除圆柱中的局外点。上述方法将三维运算转换为二维运算,降低了估计的准确性。
本申请所提供的圆柱度的估计方法的技术思路是:
采用与待检测工件相关的全部点云数据进行初始的拟合而得到圆柱体,根据与圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将圆柱体作为初始的拟合圆柱体,当确定将圆柱体作为初始的拟合圆柱体时,将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集;之后,对待拟合点云数据集中的点云进行估计,以得到拟合圆柱体的参数的初始值;之后,根据拟合圆柱体的参数的初始值和预先构建好的拟合圆柱体的迭代方程对拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到拟合圆柱体的参数的最终拟合值;其中,在上述对拟合圆柱体的参数进行迭代更新的过程中,需要计算待拟合点云数据集中的点云到上述初始的拟合圆柱体表面的距离,其中,对距离上述拟合圆柱体表面越远的上述点云而言,与该点云的损失值对应的损失值权重越小,而对距离上述拟合圆柱体表面越近的上述点云而言,与该点云的损失值对应的损失值权重越大;进而有效地降低局外点对上述拟合圆柱体的参数的最终拟合值的影响。即,本申请所提供的圆柱度的估计方法基于物体的几何特征进行参数的估计和迭代优化。
本申请所提供的上述估计方法,是通过对输入的待检测工件的三维点云数据进行处理,以获取用于对待检测工件的三维形状进行拟合的拟合圆柱体的最终拟合值,进而计算得到待检测工件的三维形状信息(如圆柱度),进而可以将计算得到的待检测工件的三维形状信息用于三维空间的形位公差的测量、无序状态姿态估计、机器人抓取等领域。
下面将结合实施例对本申请的技术方案进行详细说明。
请参考图1,本申请所提供的一种圆柱度的估计方法,该估计方法包括:
步骤S100:获取原始点云;利用原始点云进行圆柱体拟合,获得拟合圆柱体以及拟合圆柱体的参数的最终拟合值;其中,拟合圆柱体的参数包括拟合圆柱体的中心轴线的方向向量、中心轴线上任意一点的坐标和拟合圆柱体的半径;
步骤S200:基于拟合圆柱体的参数的最终拟合值,确定基准平面;基于基准平面以及待拟合点云数据集,求解拟合圆柱体的圆柱度;其中,基准平面经过由中心轴线上任意一点的坐标的最终拟合值所确定的一个点,且基准平面的法向量与由方向向量的最终拟合值所确定的中心轴线的方向向量平行。
需要说明的是,本申请所提供的上述估计方法除了适用于呈圆柱体的待检测工件之外,也适用于呈与圆柱体相近的形状(如椭圆柱体、单纯的圆形等)的待检测工件。
上述步骤S100中,原始点云包括用于表征待检测工件的点云。拟合圆柱体用于对待检测工件的三维形状进行拟合。
一些实施例中,上述步骤S100中,可以直接获取与待检测工件相关的三维点云数据,并将上述三维点云数据作为上述原始点云。
一些实施例中,上述步骤S100中,也可以是先采集与待检测工件相关的深度图像,再根据像素分辨率将上述深度图像转化为三维点云数据,进而将经过上述转化而得到的三维点云数据作为上述原始点云。
需要说明的是,上述“根据像素分辨率将上述深度图像转化为三维点云数据”属于本领域的现有技术,故对此不再进行赘述。
上述步骤S100中,拟合圆柱体的参数包括拟合圆柱体的中心轴线的方向向量、中心轴线上任意一点的坐标和拟合圆柱体的半径。
一些实施例中,上述步骤S100中,获取原始点云,原始点云包括用于表征待检测工件的点云;利用原始点云进行圆柱体拟合,获得拟合圆柱体以及拟合圆柱体的参数的最终拟合值,包括:
步骤S110:获取原始点云,根据原始点云确定初始的拟合圆柱体,将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集;其中,原始点云包括用于表征待检测工件的点云;其中,拟合圆柱体用于对待检测工件的三维形状进行拟合;
步骤S120:对待拟合点云数据集中与初始的拟合圆柱体对应的点云进行估计,以得到拟合圆柱体的参数的初始值;
其中,拟合圆柱体的参数包括拟合圆柱体的中心轴线的方向向量、中心轴线上任意一点的坐标和拟合圆柱体的半径;
步骤S130:根据拟合圆柱体的参数的初始值和预先构建好的拟合圆柱体的迭代方程对拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到拟合圆柱体的参数的最终拟合值;其中,迭代方程用于表征第i+1次迭代更新后的拟合圆柱体的参数与第i次迭代更新后的拟合圆柱体的参数的迭代更新关系,迭代方程是基于总体损失值分别相对于拟合圆柱体的各参数的变化率的矩阵而得到的,总体损失值是基于各点云的损失值权重而对各点云的损失值进行加权而得到的,各点云的损失值是基于各点云到拟合圆柱体表面的距离而得到的,各点云的损失值权重与各点云分别到对应的拟合圆柱体表面的距离成反比。
一些实施例中,请参考图2,在步骤S110中,根据原始点云确定初始的拟合圆柱体,将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集,包括:
选择点云的步骤S111:从原始点云中随机选择一组点云;
生成圆柱体的步骤S112:对该组点云进行拟合而得到一个圆柱体,计算该组点云中各点云分别到圆柱体表面的距离;
确定内点的步骤S113:根据预设的距离阈值和该组点云中各点云分别到对应的圆柱体表面的距离,确定该组点云中内点的数量;
确定待拟合点云数据集的步骤S114:若该组点云中内点的数量大于预设的数量阈值,则将圆柱体作为初始的拟合圆柱体,将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集,并将该组点云从原始点云中删除;若该组点云中内点的数量小于预设的数量阈值,则继续迭代上述选择点云的步骤、生成圆柱体的步骤、确定内点的步骤,直至该组点云中内点的数量大于预设的数量阈值或者继续迭代后所生成的圆柱体与继续迭代前所生成的圆柱体的拟合误差小于预设的误差阈值,将最新得到的圆柱体作为初始的拟合圆柱体,将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集。
一些实施例中,在上述选择点云的步骤S111中,可以从原始点云中随机取一定数量的点云(如5个点云)。
一些实施例中,可以直接利用上述一定数量的点云拟合出一个圆柱体,并计算该组点云(即上述一定数量的点云)中各点云分别到该圆柱体表面的距离。可以理解的是,在另一些实施例中,也可以直接计算上述原始点云中各点云分别到该圆柱体表面的距离,以将计算得到的上述距离用于后续的计算。
需要说明的是,上述各点云分别到该圆柱体表面的距离的计算属于本领域的公知常识,故此处不再对此进行赘述。
需要说明的是,上述“计算点云(如待拟合点云数据集中的点云)到拟合圆柱体表面的距离”的目的是为了使得距离拟合圆柱体远的上述点云的损失值权重小一些,距离拟合圆柱体近的上述点云的损失值权重大一些,进而剔除数据(如原始点云数据)中的异常数据(如属于外点的点云数据),进而提升拟合圆柱体的参数的最终拟合值的准确性和稳定性。
需要说明的是,步骤S110可以有效地去除非圆柱体的点云数据(即不属于待检测工件的点云),提升后续对拟合圆柱体进行拟合而最终得到的参数的最终拟合值的精度。
需要说明的是,“对该组点云进行拟合而得到一个圆柱体”的具体流程可以参考下文的步骤S120。例如,“对该组点云进行拟合而得到一个圆柱体”的流程可以为:1)将该组点云的重心的坐标作为与拟合圆柱体对应的中心轴线上任意一点的坐标的初始值;基于该组点云的协方差矩阵确定该圆柱体的中心轴线的方向向量;其中,该圆柱体的中心轴线的方向向量为协方差矩阵的最大特征值所对应的特征向量;2)分别将该组点云、中心轴线上任意一点的坐标和中心轴线的方向向量代入拟合圆柱体的参数方程而计算得到该圆柱体的半径,进而得到该圆柱体。
一些实施例中,在确定内点的步骤S113中,在上述各点云分别到该圆柱体表面的距离已经被计算得出的情况下,可以根据预设的距离阈值和该组点云中各点云分别到对应的圆柱体表面的距离,确定该组点云中内点的数量。其中,内点是指该组点云或上述原始点云中到圆柱体表面的距离小于距离阈值的点云;外点(即,局外点)是指该该组点云或上述原始点云中到初始的拟合圆柱体表面的距离小于距离阈值的点云。
需要说明的是,上述“预设的距离阈值”、“预设的数量阈值”以及“预设的误差阈值”的具体设置属于本领域的公知常识,本领域技术人员可以根据实际需求进行具体地设置,故对此不再赘述。
一些实施例中,在上述步骤S114中,若上述点云到该圆柱体表面的距离小于预设的距离阈值,则可以投票计数加1。当内点的数量(即上述投票计数的最终结果)大于预设的数量阈值时,则可以将上述圆柱体作为初始的拟合圆柱体。将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集,并将该组点云从原始点云中删除。
需要说明的是,上述步骤S114所最终确定与上述原始点云对应的“初始的拟合圆柱体”的数量只有一个。例如,上述步骤S114所最终确定的“初始的拟合圆柱体”是与条件“该组点云中内点的数量大于预设的数量阈值”对应的上述圆柱体,或者是与条件“继续迭代后所生成的圆柱体与继续迭代前所生成的圆柱体的拟合误差小于预设的误差阈值”对应的上述圆柱体(即上述最新得到的圆柱体)。
需要说明的是,上述步骤S110的目的是为了从原始点云中分割得到属于待检测工件的点云,即,剔除异常点云(即上述原始点云中属于上述外点的点云),并利用属于待检测工件的点云(即上述待拟合点云数据集中的点云)去拟合得到上述拟合圆柱体,进而可以使得后续得到的上述拟合圆柱体的参数的最终拟合值的拟合精度较高。请参考图3,图3中大致圆柱体形的一组点云为属于待检测工件或初始的拟合圆柱体的点云,而位于图3中大致圆柱体形的正下方的呈平面状的一组点云为属于平面的点云,这是由于若使用属于平面的点云去拟合得到上述拟合圆柱体,则很可能导致后续得到的上述拟合圆柱体的参数的最终拟合值的拟合精度较差。
一些实施例中,请参考图3,上述步骤S120:对待拟合点云数据集中与初始的拟合圆柱体对应的点云进行估计,以得到拟合圆柱体的参数的初始值,包括:
步骤S121:将与一个拟合圆柱体对应的点云的重心的坐标作为与拟合圆柱体对应的中心轴线上任意一点的坐标的初始值;基于待拟合点云数据集中与拟合圆柱体对应的点云的协方差矩阵确定拟合圆柱体的中心轴线的方向向量的初始值;其中,拟合圆柱体的中心轴线的方向向量的初始值为协方差矩阵的最大特征值所对应的特征向量;
步骤S122:分别将与初始的拟合圆柱体对应的一组待拟合点云、中心轴线上任意一点的坐标的初始值和中心轴线的方向向量的初始值代入拟合圆柱体的参数方程而计算得到多个初始的拟合圆柱体的半径;
步骤S123:计算所有初始的拟合圆柱体的半径的平均值,将平均值作为拟合圆柱体的半径的初始值。
需要说明的是,上述步骤S120中得到拟合圆柱体的参数的初始值的目的是获得拟合圆柱体的参数的初始值,进而采用上述初始值来初步地表征待检测工件或拟合圆柱体的几何特征等三维形貌信息。
一些实施例中,在步骤S121中,与一个拟合圆柱体对应的点云的重心的坐标(def)是通过以下表达式计算得到的:
其中,n表示待拟合点云数据集中与一个拟合圆柱体对应的点云的数量,x i y i z i 分别表示待拟合点云数据集中与上述拟合圆柱体对应的第i个点云分别沿x轴、y轴和z轴的坐标;其中,坐标(def)(即待拟合点云数据集中各点云的重心的坐标)为与拟合圆柱体对应的中心轴线上任意一点的坐标的初始值。
上述步骤S121中的待拟合点云数据集的协方差矩阵的表达式可以为:
其中,此时也表示待拟合点云数据集中各点云的重心的坐标,即,此时是将待拟合点云数据集中各点云的重心的坐标,作为前述与拟合圆柱体对应的中心轴线上任意一点的坐标的初始值。
需要说明的是,上述与一个拟合圆柱体对应的点云的重心的坐标也可以通过其他现有的计算方式直接获取,此处不对上述重心的坐标的具体获取方式进行限制。
上述步骤S122中拟合圆柱体的参数方程为:
A 2 +B 2 +C 2 =R 2
其中,
其中,(abc)表示拟合圆柱体的中心轴线的方向向量,R表示拟合圆柱体的半径,半径的表达式为:
其中,u i =A,v i =Bw i =C。其中,、/>、/>abcR为与上述拟合圆柱体对应的待拟合参数。
需要说明的是,上述u i 、v i w i 为计算半径R的中间变量。
需要说明的是,在上述步骤S121已经获得“拟合圆柱体对应的中心轴线上任意一点的坐标的初始值”和“拟合圆柱体的中心轴线的方向向量的初始值”的情况下,即可分别将与初始的拟合圆柱体对应的一组待拟合点云、中心轴线上任意一点的坐标(如待拟合点云数据集中各点云的重心的坐标)的初始值和中心轴线的方向向量(即(abc))的初始值代入上述步骤S122中拟合圆柱体的参数方程而计算得到多个初始的拟合圆柱体的半径R
需要说明的是,步骤S123中“计算所有初始的拟合圆柱体的半径的平均值,将平均值作为拟合圆柱体的半径的初始值”属于本领域的公知常识,故对此不再赘述。
一些实施例中,请参考图4,在步骤S130中,根据拟合圆柱体的参数的初始值和预先构建好的拟合圆柱体的迭代方程对拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到拟合圆柱体的参数的最终拟合值,包括:
步骤S131:基于拟合圆柱体的参数的初始值,计算待拟合点云数据集中各点云分别到对应的拟合圆柱体表面的距离,基于待拟合点云数据集中各点云分别到对应的拟合圆柱体表面的距离,获取待拟合点云数据集中各点云的损失值权重;
步骤S132:以中心轴线上任意一点的坐标的初始值为坐标原点,以中心轴线的方向向量的初始值为轴建立一个新的坐标系,利用预设的坐标变换公式将待拟合点云数据集中各点云的坐标转换至新的坐标系下;
步骤S133:根据预先构建好的拟合圆柱体的迭代方程计算得到拟合圆柱体的参数变化量矩阵;其中,参数变化量矩阵包括:拟合圆柱体的中心轴线的方向向量的变化量、中心轴线上任意一点的坐标的变化量和拟合圆柱体的半径的变化量;
迭代更新与计算总体损失值的步骤S134:基于拟合圆柱体的参数变化量矩阵,对拟合圆柱体的参数进行迭代更新而得到更新后的拟合圆柱体的参数,计算迭代更新后的拟合圆柱体的总体损失值和迭代更新前的总体损失值;
步骤S135:重复迭代更新与计算总体损失值的步骤,直至达到预设的迭代更新停止条件,将与迭代更新停止条件对应的拟合圆柱体的参数的数值作为拟合圆柱体的参数的最终拟合值。
需要说明的是,步骤S130中“对拟合圆柱体的参数进行迭代更新”的目的是去除异常点数据(如属于外点的点云数据),进而提升拟合圆柱体的参数的最终拟合值的精度和准确性。
需要说明的是,步骤S130中在对拟合圆柱体的参数进行迭代更新的过程中,拟合圆柱体的形状实质上也一直处于迭代更新之中,即,从初始的拟合圆柱体逐步地迭代至基本或完全与待检测工件的形状(如圆柱体)一致的拟合圆柱体。
需要说明的是,步骤S130的目的是估计出拟合圆柱体的参数的最终拟合值,而本申请采用通过逐步迭代更新的方式(即上述迭代方程),以拟合圆柱体的参数的初始值为起点,来逐步地逼近最优值(即拟合圆柱体的参数的最终拟合值),即,基于上述迭代方程,从初始的拟合圆柱体逐步地迭代至基本或完全与待检测工件的形状(如圆柱体)一致的拟合圆柱体。
需要说明的是,上述步骤S131中“计算待拟合点云数据集中各点云分别到对应的拟合圆柱体表面的距离”属于本领域的公知常识,故对此不再赘述。
一些实施例中,上述步骤S132中预设的坐标变换公式的表达式为:
其中,(x' i y' i z' i )表示待拟合点云数据集中第i个点云在新的坐标系中的坐标,(x i y i z i )表示待拟合点云数据集中第i个点云在原有的坐标系中的坐标,
其中,当中心轴线的方向向量(abc)为(1,0,0)时,s 1=0,c 1=1,s 2=-1,c 2=0;否则,
,/>
需要说明的是,本领域技术人员可以根据实际需求而选定原有的坐标系(如直角坐标系等),此处不对“原有的坐标系”进行限制。
一些实施例中,上述步骤S133中,迭代方程的表达式为:
其中,J i 表示第i次迭代更新后拟合圆柱体的总体损失值相对于拟合圆柱体的各参数(如、/>abc)的变化率的矩阵。
J i 的表达式为:
其中,w i 为待拟合点云数据集中第i个点云的损失值权重,N为待拟合点云数据集中点云的数量,J i 的表达式中的x i y i z i 是指通过上述坐标变换公式而变换得到的点云的坐标。P i 为由第i次迭代更新至第i+1次迭代更新而产生的参数变化量矩阵,P i 作为迭代方程的待求解量,F i 表示第i次迭代更新后根据第i个点云而对拟合圆柱体的半径进行估计而得到的估计值r i 与当前的R的差值,λ i 表示迭代方程第i次迭代更新后的学习率,学习率用于控制拟合圆柱体的各参数进行迭代更新的步长。
上述估计值r i 的表达式为:
需要说明的是,上述步骤S133中,可以根据设定的目标函数进行求偏导数得到梯度,而梯度的反方向与参数变化量矩阵的各参数的变化率最大的方向相对应,因此,在上述迭代方程进行迭代更新时,可以把上述梯度的反向作为上述迭代方程进行迭代更新的方向,进而可以使得迭代方程更快地逼近拟合圆柱体的各参数的最优值(即拟合圆柱体的各参数的最终拟合值)。
需要说明的是,上述拟合圆柱体的总体损失值即为上述“设定的目标函数”。目标函数指代的是计算估计值和真实值的误差的加权平方和或者可以表述为待拟合点云数据集中所有点云代入上述圆柱参数方程得到的几何距离的误差平方和加权。
一些实施例中,上述步骤S133中,参数变化量矩阵P i 的表达式为:
P i =[dxdydadbdR] T
F i 的表达式为:
其中,dadb用于表示拟合圆柱体的中心轴线的方向向量的变化量,dxdy用于表示中心轴线上任意一点的坐标的变化量,dR用于表示拟合圆柱体的半径R的变化量。
其中,P i 表示求解出来的参数变化量矩阵,即,可以表示相对于当次迭代更新前的、/>abR的变化量。
一些实施例中,上述步骤S134中,更新后的拟合圆柱体的参数的表达式分别为:
一些实施例中,上述总体损失值的表达式为:
其中,ε i 为待拟合点云数据集中第i个点云的损失值。
一些实施例中,上述ε i 的表达式为:
或者
其中,δ i 为待拟合点云中第i个点云到拟合圆柱体表面的距离,τ为距离阈值。本领域技术人员可以根据实际需求而灵活地设定上述距离阈值。
一些实施例中,上述τ的表达式为:
待拟合点云中第i个点云的损失值权重的表达式为:
或者
需要说明的是,上述损失值权重的表达式可以使到拟合圆柱体表面的距离小于距离阈值的点云的损失值权重为1,而可以使到拟合圆柱体表面的距离大于距离阈值的点云的损失值权重,随着到拟合圆柱体表面的距离增大,其对应的点云的损失值权重减少。
需要说明的是,上述损失值权重的表达式可以使到拟合圆柱体表面的距离小于距离阈值的点云的损失值权重,随着到拟合圆柱体表面的距离增大,其对应的点云的损失值权重减少,而可以使到拟合圆柱体表面的距离大于距离阈值的点云的损失值权重均为0。
一些实施例中,上述步骤S340中,在对拟合圆柱体的参数进行迭代更新而得到更新后的拟合圆柱体的参数之后,若当次迭代更新后的拟合圆柱体的总体损失值与当次迭代更新前的拟合圆柱体的总体损失值的比值大于预设的比例阈值,则通过以下表达式对学习率进行更新:
其中,k为预设的系数,λ old 为当次迭代更新前的学习率,λ new 为当次迭代更新后的学习率。
一些实施例中,k可以取值为20。本领域技术人员可以根据实际需求而选定上述k的具体取值,此处不对k的取值进行限制。
需要说明的是,在对拟合圆柱体的参数进行迭代更新的过程需要更新学习率的原因是:由于对拟合圆柱体的参数所进行的迭代更新是以拟合圆柱体的参数的初始值为起点,来逐步地逼近最优值(即拟合圆柱体的参数的最终拟合值)的过程,即,基于上述迭代方程,从初始的拟合圆柱体逐步地迭代至基本或完全与待检测工件的形状(如圆柱体)一致的拟合圆柱体,而在上述迭代更新刚开始时,拟合圆柱体的参数的拟合值距上述最优值的距离比较远,进而希望迭代更新的步长大一些,以快速地逼近上述最优值;当拟合圆柱体的参数的拟合值距上述最优值的距离比较近时,则希望迭代更新的步长尽可能小一些,以不要跳过上述最优值。
一些实施例中,上述步骤S135中预设的迭代更新停止条件为:迭代更新后的总体损失值和迭代更新前的总体损失值的差值与迭代更新前的总体损失值的比值小于预设比例阈值,或者,达到预设的迭代次数阈值;
总体损失值是基于各点云的损失值权重而对各点云的损失值进行加权而得到的,各点云的损失值是基于各点云到拟合圆柱体表面的距离而得到的,各点云的损失值权重与各点云分别到对应的拟合圆柱体表面的距离成反比;
迭代方程是基于总体损失值分别相对于拟合圆柱体的各参数的变化率的矩阵而得到的。
需要说明的是,上述各点云的损失值指代的是几何距离(即各点云到拟合圆柱体表面的距离)的误差加权平方和。即,误差加权平方和体现了加权和距离的分段表示,相当于是对前述损失值权重和前述几何距离进行积分得到的。
与现有技术相比,本申请所提供的圆柱度的估计方法的优点是:
1)本申请的估计方法具有较好的抗噪声性能;
2)通过本申请的迭代过程可以完成上述学习率的更新和计算;
3)本申请的估计方法可以有效剔除异常点(如属于局外点的点云)对用于对待检测工件的三维形状进行拟合的拟合圆柱体的参数的最终拟合值的不利影响,进而提升后续对待检测工件的高度及体积等的测量或检测的精度和效率。
需要说明的是,此处“本申请的估计方法具有较好的抗噪声性能”是通过前文基于各点云的损失值权重而对各点云的损失值进行加权而得到的总体损失值,以及前文“对拟合圆柱体的参数进行迭代更新”的具体过程来体现的。
需要说明的是,此处需要“通过迭代过程完成学习率的更新和计算”的原因是,本申请希望距离最优值越远时,学习率越大,而距离最优值越近时,学习率越小。而“完成学习率的更新和计算”能够实现技术目的是:为了高精度地逼近最优解,避免出现震荡和耗时过长。
需要说明的是,上述“有效剔除异常点(如属于局外点的点云)对用于对待检测工件的三维形状进行拟合的拟合圆柱体的参数的最终拟合值的不利影响” 主要体现在以下两个方面:
第一,通过根据与圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将圆柱体作为初始的拟合圆柱体,当确定将圆柱体作为初始的拟合圆柱体时,将原始点云中与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集,进而避免使用异常点(如属于局外点的点云)来进行后续拟合圆柱体的拟合,而去除异常点对用于对待检测工件的三维形状进行拟合的拟合圆柱体的参数的最终拟合值的不利影响;
第二,通过基于各点云的损失值权重而对各点云的损失值进行加权而得到的总体损失值、基于各点云到拟合圆柱体表面的距离而得到的各点云的损失值,以及各点云的损失值权重与各点云分别到对应的拟合圆柱体表面的距离成反比的关系来实现的;其中,由于在迭代过程的迭代更新过程中,所拟合的拟合圆柱体也在不断地逼近待检测工件的真实形状,而各对应的点云分别到对应的所述拟合圆柱体表面的距离也在不断地变化,因此,各点云的损失值权重也在同步地变化。
上述步骤S200中,基于拟合圆柱体的参数的最终拟合值,确定基准平面,包括:
利用拟合圆柱体的参数的最终拟合值,构建用于表征基准平面的平面方程;
其中,平面方程的表达式为:
a end x-x end )+b end y-y end )+c end z-z end )=0,
其中,(a end b end c end )为方向向量的最终拟合值,(x end y end z end )为中心轴线上任意一点的坐标的最终拟合值,(xyz)为基准平面上的点的坐标。
请参考图5,上述步骤S200中,基于基准平面以及待拟合点云数据集,求解拟合圆柱体的圆柱度,包括:
步骤S210:基于多个与基准平面平行的截面,将待拟合点云数据集划分为多个子待拟合点云数据集;
步骤S220:将子待拟合点云数据集内的点云投影至基准平面或截面而得到对应的投影点,对对应的投影点进行拟合而得到与子待拟合点云数据集对应的拟合圆;
步骤S230:分别计算各对应的投影点到与子待拟合点云数据集对应的拟合圆的圆心的距离;其中,当投影点位于对应的拟合圆的外部时,投影点到与子待拟合点云数据集对应的拟合圆的圆心的距离的符号为正号;当投影点位于对应的拟合圆的内部时,投影点到与子待拟合点云数据集对应的拟合圆的圆心的距离的符号为负号;或者,当投影点位于对应的拟合圆的外部时,投影点到与子待拟合点云数据集对应的拟合圆的圆心的距离的符号为负号;当投影点位于对应的拟合圆的内部时,投影点到与子待拟合点云数据集对应的拟合圆的圆心的距离的符号为正号;
步骤S240:分别确定对应的投影点到与子待拟合点云数据集对应的拟合圆的圆心的最大距离和最小距离;其中,最大距离的符号为正号或负号,最小距离的符号为正号或负号;
步骤S250:获取与子待拟合点云数据集对应的各最大距离和各最小距离,若最大距离的符号与最小距离的符号相同,则将最大距离和最小距离这两者中绝对值大的一个作为与子待拟合点云数据集对应的截面的距离;若最大距离的符号与最小距离的符号不同,则取最大距离和最小距离这两者的差值作为与子待拟合点云数据集对应的截面的距离;
步骤S260:将各截面的距离的最大值作为拟合圆柱体的圆柱度。
上述步骤S210中,各截面之间的距离可以是等距的。各截面之间的距离也可以是不等距的。本领域技术人员可以根据实际需求来确定各截面之间的距离,进而根据多个与基准平面平行的截面,将待拟合点云数据集划分为多个子待拟合点云数据集。例如,可以根据待拟合点云数据集中点云的空间位置以及两个截面(如截面1和截面2),将待拟合点云数据集的所有点云划分为三个子待拟合点云数据集,而位于上述截面1上方的点云属于第一个子待拟合点云数据集,位于上述截面1和截面2之间的点云属于第二个子待拟合点云数据集,位于上述截面2下方的点云属于第三个子待拟合点云数据集。
需要说明的是,步骤S220中“将子待拟合点云数据集内的点云投影至基准平面或截面而得到对应的投影点,对对应的投影点进行拟合而得到与子待拟合点云数据集对应的拟合圆”的具体过程属于本领域的公知常识,故对此不再赘述。
需要说明的是,步骤S230中“分别计算各对应的投影点到与子待拟合点云数据集对应的拟合圆的圆心的距离”的具体过程也属于本领域的公知常识,故对此不再赘述。
需要说明的是,步骤S240中,每个子待拟合点云数据集均对应一个最大距离和最小距离。其中,“分别确定对应的投影点到与子待拟合点云数据集对应的拟合圆的圆心的最大距离和最小距离”的具体过程也属于本领域的公知常识,故对此不再赘述。
可以看出,本申请所提供的圆柱度的估计方法可以实现在非接触情况下对物体(如前述待检测工件)的形位公差进行测量,同时通过有效抑制异常数据(如原始点云中属于外点的点云数据),进而可以更好地获得前述待检测工件所对应的拟合圆柱体的真实数据表达,从而保证前述待检测工件的圆柱度计算的准确性和稳定性。此外,在前述拟合圆柱体的拟合过程中,本申请所提供的圆柱度的估计方法还剔除了其他几何体,如平面、球等影响,提升了形位公差估计的准确性。
可以看出,本申请所提供的圆柱度的估计方法充分考虑了前述待检测工件所对应的拟合圆柱体的多个截面,并计算每一个截面的圆柱度(如前述与子待拟合点云数据集对应的截面的距离),再通过前述多个截面来模拟圆柱体的圆柱度(如前述将各截面的距离的最大值作为拟合圆柱体的圆柱度)。本估计方法处理速度快,提升了处理的效率和准确性。
需要说明的是,本申请所提供的圆柱度的估计方法不是通过将待拟合点云数据集的点云沿着前述拟合圆柱体的中心轴的方向,向垂直于中心轴的方向的截面做投影,再基于投影所产生的投影点进行圆拟合而获取前述待检测工件所对应的拟合圆柱体的圆柱度。
以上就是关于圆柱度的估计方法的一些说明。本申请一些实施例中还公开了一种计算机可读存储介质。该计算机可读存储介质包括程序,该程序能够被处理器执行以实现如本文中任一项实施例所述的方法。
本文参照了各种示范实施例进行说明。然而,本领域的技术人员将认识到,在不脱离本文范围的情况下,可以对示范性实施例做出改变和修正。例如,各种操作步骤以及用于执行操作步骤的组件,可以根据特定的应用或考虑与系统的操作相关联的任何数量的成本函数以不同的方式实现(例如一个或多个步骤可以被删除、修改或结合到其他步骤中)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。另外,如本领域技术人员所理解的,本文的原理可以反映在计算机可读存储介质上的计算机程序产品中,该可读存储介质预装有计算机可读程序代码。任何有形的、非暂时性的计算机可读存储介质皆可被使用,包括磁存储设备(硬盘、软盘等)、光学存储设备(CD至ROM、DVD、Blu Ray盘等)、闪存和/或诸如此类。这些计算机程序指令可被加载到通用计算机、专用计算机或其他可编程数据处理设备上以形成机器,使得这些在计算机上或其他可编程数据处理装置上执行的指令可以生成实现指定的功能的装置。这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指示计算机或其他可编程数据处理设备以特定的方式运行,这样存储在计算机可读存储器中的指令就可以形成一件制造品,包括实现指定功能的实现装置。计算机程序指令也可以加载到计算机或其他可编程数据处理设备上,从而在计算机或其他可编程设备上执行一系列操作步骤以产生一个计算机实现的进程,使得在计算机或其他可编程设备上执行的指令可以提供用于实现指定功能的步骤。
虽然在各种实施例中已经示出了本文的原理,但是许多特别适用于特定环境和操作要求的结构、布置、比例、元件、材料和部件的修改可以在不脱离本披露的原则和范围内使用。以上修改和其他改变或修正将被包含在本文的范围之内。
前述具体说明已参照各种实施例进行了描述。然而,本领域技术人员将认识到,可以在不脱离本披露的范围的情况下进行各种修正和改变。因此,对于本披露的考虑将是说明性的而非限制性的意义上的,并且所有这些修改都将被包含在其范围内。同样,有关于各种实施例的优点、其他优点和问题的解决方案已如上所述。然而,益处、优点、问题的解决方案以及任何能产生这些的要素,或使其变得更明确的解决方案都不应被解释为关键的、必需的或必要的。本文中所用的术语“包括”和其任何其他变体,皆属于非排他性包含,这样包括要素列表的过程、方法、文章或设备不仅包括这些要素,还包括未明确列出的或不属于该过程、方法、系统、文章或设备的其他要素。此外,本文中所使用的术语“耦合”和其任何其他变体都是指物理连接、电连接、磁连接、光连接、通信连接、功能连接和/或任何其他连接。
具有本领域技术的人将认识到,在不脱离本发明的基本原理的情况下,可以对上述实施例的细节进行许多改变。因此,本发明的范围应仅由权利要求确定。

Claims (11)

1.一种圆柱度的估计方法,其特征在于,包括:
获取原始点云,利用所述原始点云进行圆柱体拟合,获得拟合圆柱体以及所述拟合圆柱体的参数的最终拟合值;其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;其中,所述原始点云包括用于表征待检测工件的点云;
基于所述拟合圆柱体的参数的最终拟合值,确定基准平面;基于所述基准平面以及待拟合点云数据集,求解所述拟合圆柱体的圆柱度;其中,所述基准平面经过由所述中心轴线上任意一点的坐标的最终拟合值所确定的一个点,且所述基准平面的法向量与由所述方向向量的最终拟合值所确定的中心轴线的方向向量平行;
所述基于所述基准平面以及待拟合点云数据集,求解所述拟合圆柱体的圆柱度,包括:
基于多个与所述基准平面平行的截面,将所述待拟合点云数据集划分为多个子待拟合点云数据集;
将所述子待拟合点云数据集内的点云投影至所述基准平面或所述截面而得到对应的投影点,对所述对应的投影点进行拟合而得到与所述子待拟合点云数据集对应的拟合圆;
分别计算各所述对应的投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离;其中,当所述投影点位于所述对应的拟合圆的外部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为正号;当所述投影点位于所述对应的拟合圆的内部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为负号;
或者,
当所述投影点位于所述对应的拟合圆的外部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为负号;当所述投影点位于所述对应的拟合圆的内部时,所述投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的距离的符号为正号;
分别确定所述对应的投影点到与所述子待拟合点云数据集对应的拟合圆的圆心的最大距离和最小距离;其中,所述最大距离的符号为正号或负号,所述最小距离的符号为正号或负号;
获取与所述子待拟合点云数据集对应的各所述最大距离和各所述最小距离,若所述最大距离的符号与所述最小距离的符号相同,则将所述最大距离和所述最小距离这两者中绝对值大的一个作为与所述子待拟合点云数据集对应的截面的距离;
若所述最大距离的符号与所述最小距离的符号不同,则取所述最大距离和所述最小距离这两者的差值作为与所述子待拟合点云数据集对应的截面的距离;
将各所述截面的距离的最大值作为所述拟合圆柱体的圆柱度。
2.如权利要求1所述的估计方法,其特征在于,所述基于所述拟合圆柱体的参数的最终拟合值,确定基准平面,包括:
利用所述拟合圆柱体的参数的最终拟合值,构建用于表征所述基准平面的平面方程;
其中,所述平面方程的表达式为:
a end x-x end )+ b end y-y end )+ c end z-z end )=0,
其中,(a end b end c end )为所述方向向量的最终拟合值,(x end y end z end )为所述中心轴线上任意一点的坐标的最终拟合值,(xyz)为所述基准平面上的点的坐标。
3.如权利要求1所述的估计方法,其特征在于,所述利用所述原始点云进行圆柱体拟合,获得拟合圆柱体以及所述拟合圆柱体的参数的最终拟合值,包括:
根据所述原始点云确定初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集;其中,所述拟合圆柱体用于对所述待检测工件的三维形状进行拟合;
对所述待拟合点云数据集中与所述初始的拟合圆柱体对应的点云进行估计,以得到所述拟合圆柱体的参数的初始值;其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;
根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值;其中,所述迭代方程用于表征第i+1次迭代更新后的所述拟合圆柱体的参数与第i次迭代更新后的所述拟合圆柱体的参数的迭代更新关系,所述迭代方程是基于总体损失值分别相对于所述拟合圆柱体的各参数的变化率的矩阵而得到的,所述总体损失值是基于各点云的损失值权重而对所述各点云的损失值进行加权而得到的,所述各点云的损失值是基于所述各点云到所述拟合圆柱体表面的距离而得到的,所述各点云的损失值权重与所述各点云分别到对应的所述拟合圆柱体表面的距离成反比。
4.如权利要求3所述的估计方法,其特征在于,所述根据所述原始点云确定初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集,包括:
选择点云的步骤:从所述原始点云中随机选择一组点云;
生成圆柱体的步骤:对该组点云进行拟合而得到一个所述圆柱体,计算该组点云中各点云分别到所述圆柱体表面的距离;
其中,该组点云中的部分或全部点云位于对应的所述圆柱体上;
确定内点与外点的步骤:根据所述预设的距离阈值和该组点云中各点云分别到对应的所述圆柱体表面的距离,确定该组点云中内点的数量和外点的数量;其中,所述内点是指该组点云中到所述圆柱体表面的距离小于所述距离阈值的点云,所述外点是指该组点云中到所述圆柱体的距离大于所述预设的距离阈值的点云;
确定所述待拟合点云数据集的步骤:
若该组点云中所述内点的数量大于预设的数量阈值,则将所述圆柱体作为初始的拟合圆柱体,将该组点云作为与所述初始的拟合圆柱体对应的一组待拟合点云,并将该组点云从所述原始点云中删除;
若该组点云中所述内点的数量小于所述预设的数量阈值,则继续迭代上述选择点云的步骤、生成圆柱体的步骤、确定内点与外点的步骤,直至所述该组点云中所述内点的数量大于预设的数量阈值或者所述继续迭代后所生成的圆柱体与所述继续迭代前所生成的圆柱体的拟合误差小于预设的误差阈值,将所有组所述待拟合点云作为所述待拟合点云数据集。
5.如权利要求3所述的估计方法,其特征在于,所述对所述待拟合点云数据集中与所述初始的拟合圆柱体对应的点云进行估计,以得到所述拟合圆柱体的参数的初始值,包括:
将与一个所述拟合圆柱体对应的点云的重心的坐标作为与所述拟合圆柱体对应的所述中心轴线上任意一点的坐标的初始值;
基于所述待拟合点云数据集中与所述拟合圆柱体对应的点云的协方差矩阵确定所述拟合圆柱体的中心轴线的方向向量的初始值;其中,所述拟合圆柱体的中心轴线的方向向量的初始值为所述协方差矩阵的最大特征值所对应的特征向量;
获取所述拟合圆柱体的参数方程,分别将与所述初始的拟合圆柱体对应的一组所述待拟合点云、所述中心轴线上任意一点的坐标的初始值和所述中心轴线的方向向量的初始值代入所述拟合圆柱体的参数方程而计算得到多个所述初始的拟合圆柱体的半径;
计算所有所述初始的拟合圆柱体的半径的平均值,将所述平均值作为所述拟合圆柱体的半径的初始值。
6.如权利要求5所述的估计方法,其特征在于,所述拟合圆柱体的参数方程为:
A 2 +B 2 +C 2 =R 2
其中,
其中,(abc)表示所述拟合圆柱体的中心轴线的方向向量,所述R表示所述拟合圆柱体的半径,表示所述中心轴线上任意一点的坐标,所述半径的表达式为:
其中,u i =A,v i =Bw i =C
所述n表示所述待拟合点云数据集中与一个所述拟合圆柱体对应的点云的数量,所述x i y i z i 分别表示所述待拟合点云数据集中与所述拟合圆柱体对应的第i个点云分别沿x轴、y轴和z轴的坐标。
7.如权利要求5所述的估计方法,其特征在于,所述根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值,包括:
以所述中心轴线上任意一点的坐标的初始值为坐标原点,以所述中心轴线的方向向量的初始值为轴建立一个新的坐标系,利用预设的坐标变换公式将所述待拟合点云数据集中各点云的坐标转换至所述新的坐标系下;
根据预先构建好的所述拟合圆柱体的迭代方程计算得到所述拟合圆柱体的参数变化量矩阵;其中,所述参数变化量矩阵包括:所述拟合圆柱体的中心轴线的方向向量的变化量、所述中心轴线上任意一点的坐标的变化量和所述拟合圆柱体的半径的变化量;
迭代更新与计算总体损失值的步骤:基于所述拟合圆柱体的参数变化量矩阵,对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数,并基于所述更新后的所述拟合圆柱体的参数计算所述迭代更新后的所述拟合圆柱体的总体损失值,基于所述更新前的所述拟合圆柱体的参数计算所述迭代更新前的总体损失值;
重复所述迭代更新与计算总体损失值的步骤,直至达到所述预设的迭代更新停止条件,将与所述迭代更新停止条件对应的所述拟合圆柱体的参数的数值作为所述拟合圆柱体的参数的最终拟合值;其中,所述预设的迭代更新停止条件为:所述迭代更新后的总体损失值和所述迭代更新前的总体损失值的差值与所述迭代更新前的总体损失值的比值小于预设比例阈值,或者,达到预设的迭代次数阈值。
8.如权利要求7所述的估计方法,其特征在于,所述预设的坐标变换公式的表达式为:
其中,(x' i y' i z' i )表示所述待拟合点云数据集中第i个点云在所述新的坐标系中的坐标,(x i y i z i )表示所述待拟合点云数据集中第i个点云在原有的坐标系中的坐标,
所述表示所述中心轴线上任意一点的坐标;
其中,当所述中心轴线的方向向量(abc)为(1,0,0)时,s 1=0,c 1=1,s 2=-1,c 2=0;
否则,
c 1 = c / ((b)2 + (c)2)1/2
s 1 = -b / ((b)2 + (c)2)1/2
c 2 = (cc 1bs 1) / ((a)2 + (cc 1bs 1)2)1/2
s 2 =–a / ((a)2 + (cc 1bs 1)2)1/2
9.如权利要求8所述的估计方法,其特征在于,所述迭代方程的表达式为:
( J i T J i +λ i diag( J i T J i ))P i = J i T F i
其中,所述J i 表示第i次迭代更新后所述拟合圆柱体的总体损失值相对于所述拟合圆柱体的各参数的变化率的矩阵,所述J i 的表达式为:
其中,所述w i 为所述待拟合点云数据集中第i个点云的损失值权重,所述N为所述待拟合点云数据集中点云的数量,所述P i 为所述参数变化量矩阵,所述P i 作为所述迭代方程的待求解量,所述F i 表示第i次迭代更新后根据第i个点云而对所述拟合圆柱体的半径进行估计而得到的估计值r i 与当前的R的差值,所述R表示所述拟合圆柱体的半径,所述λ i 表示所述迭代方程第i次迭代更新后的学习率,所述学习率用于控制所述拟合圆柱体的各参数进行迭代更新的步长,所述估计值r i 的表达式为:
r i = (x i 2+y i 2 )1/2
10.如权利要求9所述的估计方法,其特征在于,在所述对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数之后,若当次迭代更新后的所述拟合圆柱体的总体损失值与当次迭代更新前的所述拟合圆柱体的总体损失值的比值大于预设的比例阈值,则通过以下表达式对所述学习率进行更新:
λ new =λ old / k
其中,所述k为预设的系数,所述λ old 为当次迭代更新前的所述学习率,所述λ new 为当次迭代更新后的所述学习率。
11.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1至10中任一项所述的估计方法。
CN202311406814.0A 2023-10-27 2023-10-27 一种圆柱度的估计方法及计算机可读存储介质 Active CN117152230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311406814.0A CN117152230B (zh) 2023-10-27 2023-10-27 一种圆柱度的估计方法及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311406814.0A CN117152230B (zh) 2023-10-27 2023-10-27 一种圆柱度的估计方法及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN117152230A CN117152230A (zh) 2023-12-01
CN117152230B true CN117152230B (zh) 2024-01-30

Family

ID=88884593

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311406814.0A Active CN117152230B (zh) 2023-10-27 2023-10-27 一种圆柱度的估计方法及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117152230B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007232697A (ja) * 2006-03-03 2007-09-13 Asmo Co Ltd 円筒体の内周真円度検査装置及び円筒体の内周真円度検査方法
CN112163294A (zh) * 2020-09-28 2021-01-01 郑州大学 一种圆柱度误差快速评定方法
CN113251919A (zh) * 2021-04-28 2021-08-13 中铁第四勘察设计院集团有限公司 一种基于坐标变换的圆柱体点云数据拟合方法及装置
CN115205464A (zh) * 2022-07-21 2022-10-18 新疆理工学院 一种休眠期枣树修剪枝点云参数自动提取方法
CN115239620A (zh) * 2022-06-10 2022-10-25 重庆大学 一种基于点云的钢筋网片焊接点自动识别方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007232697A (ja) * 2006-03-03 2007-09-13 Asmo Co Ltd 円筒体の内周真円度検査装置及び円筒体の内周真円度検査方法
CN112163294A (zh) * 2020-09-28 2021-01-01 郑州大学 一种圆柱度误差快速评定方法
CN113251919A (zh) * 2021-04-28 2021-08-13 中铁第四勘察设计院集团有限公司 一种基于坐标变换的圆柱体点云数据拟合方法及装置
CN115239620A (zh) * 2022-06-10 2022-10-25 重庆大学 一种基于点云的钢筋网片焊接点自动识别方法及系统
CN115205464A (zh) * 2022-07-21 2022-10-18 新疆理工学院 一种休眠期枣树修剪枝点云参数自动提取方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于Levenberg-Marquardt算法的圆柱面拟合研究;秦锋等;矿山测量;第49卷(第5期);第44-49页 *
基于水下三维点云的管道检测定位算法研究;刘哲;中国优秀硕士学位论文全文数据库基础科技辑(第5期);第A005-111页 *

Also Published As

Publication number Publication date
CN117152230A (zh) 2023-12-01

Similar Documents

Publication Publication Date Title
CN107063228B (zh) 基于双目视觉的目标姿态解算方法
CN107588721A (zh) 一种基于双目视觉的零件多尺寸的测量方法及系统
Radvar-Esfahlan et al. Nonrigid geometric metrology using generalized numerical inspection fixtures
CN109101741B (zh) 一种基于三角网格简化的复杂曲面检测自适应采样方法
CN111238386B (zh) 发动机管道最小间距测量方法
CN110992427B (zh) 一种形变物体的三维位姿估计方法及定位抓取系统
CN103210417A (zh) 使用连续b样条变形预处理轮胎表面的三维图像的方法
CN117557719A (zh) 一种点云中圆柱体的拟合方法及计算机可读存储介质
CN105654483A (zh) 三维点云全自动配准方法
CN111311651B (zh) 点云配准方法和装置
CN113781561B (zh) 基于自适应高斯权快速点特征直方图的目标位姿估计方法
CN112508895B (zh) 一种基于曲面配准的螺旋桨叶片质量评估方法
CN116402866A (zh) 基于点云的零件数字孪生几何建模与误差评定方法及系统
CN114332191A (zh) 三维点云误差补偿方法及装置
CN113168729B (zh) 一种基于局部参考坐标系的3d形状匹配方法及装置
CN109766903A (zh) 一种基于曲面特征的点云模型曲面匹配方法
CN117152230B (zh) 一种圆柱度的估计方法及计算机可读存储介质
CN111179333A (zh) 一种基于双目立体视觉的散焦模糊核估计方法
Radvar-Esfahlan et al. Robust generalized numerical inspection fixture for the metrology of compliant mechanical parts
CN114022552A (zh) 一种融合激光雷达和相机的目标定位方法及相关装置
CN113155057A (zh) 一种使用非特制靶标的线结构光平面标定方法
CN112525106A (zh) 基于三相机协同激光的3d探测方法及装置
CN115082547B (zh) 一种基于点云数据的轮廓度测量方法、存储介质
CN108595373B (zh) 一种无控制dem配准方法
CN115797414A (zh) 一种考虑测头半径的复杂曲面测量点云数据配准方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant