CN117557719A - 一种点云中圆柱体的拟合方法及计算机可读存储介质 - Google Patents

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

Info

Publication number
CN117557719A
CN117557719A CN202311407347.3A CN202311407347A CN117557719A CN 117557719 A CN117557719 A CN 117557719A CN 202311407347 A CN202311407347 A CN 202311407347A CN 117557719 A CN117557719 A CN 117557719A
Authority
CN
China
Prior art keywords
fitting
cylinder
point cloud
fitting 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.)
Pending
Application number
CN202311407347.3A
Other languages
English (en)
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 CN202311407347.3A priority Critical patent/CN117557719A/zh
Publication of CN117557719A publication Critical patent/CN117557719A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • 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
    • 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

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Algebra (AREA)
  • Computer Graphics (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本发明提供一种点云中圆柱体的拟合方法,该方法包括:获取原始点云;从原始点云中选取多个点云并对点云进行拟合而得到圆柱体,根据内点的数量是否大于数量阈值,当确定将圆柱体作为初始的拟合圆柱体时,将与初始的拟合圆柱体表面的距离在预设的距离阈值范围内的多个点云作为待拟合点云数据集;对待拟合点云数据集中的点云进行估计以得到拟合圆柱体的参数的初始值;根据上述初始值和迭代方程对上述参数进行迭代更新,直至达到迭代更新停止条件而得到上述参数的最终拟合值。该方法能有效去除异常点(如属于局外点的点云)对用于对待检测工件的三维形状进行拟合的上述参数的最终拟合值的影响,进而提升后续对待检测工件的体积等检测的精度和效率。

Description

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

Claims (15)

1.一种点云中圆柱体的拟合方法,其特征在于,包括:
获取原始点云;从所述原始点云中随机选取多个点云,并对所述多个点云进行拟合而得到圆柱体,根据与所述圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将所述圆柱体作为初始的拟合圆柱体,当确定将所述圆柱体作为所述初始的拟合圆柱体时,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集;
其中,所述原始点云包括用于表征待检测工件的点云;
其中,所述拟合圆柱体用于对所述待检测工件的三维形状进行拟合;
对所述待拟合点云数据集中的点云进行估计,以得到所述拟合圆柱体的参数的初始值;
其中,所述拟合圆柱体的参数包括所述拟合圆柱体的中心轴线的方向向量、所述中心轴线上任意一点的坐标和所述拟合圆柱体的半径;
根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值;其中,所述迭代方程用于表征第i+1次迭代更新后的所述拟合圆柱体的参数与第i次迭代更新后的所述拟合圆柱体的参数的迭代更新关系。
2.如权利要求1所述的拟合方法,其特征在于,所述从所述原始点云中随机选取多个点云,并对所述多个点云进行拟合而得到圆柱体,根据与所述圆柱体所对应的内点的数量是否大于预设的数量阈值,而确定是否将所述圆柱体作为初始的拟合圆柱体,当确定将所述圆柱体作为所述初始的拟合圆柱体时,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集,包括:
选择点云的步骤:从所述原始点云中随机选择一组点云;
生成圆柱体的步骤:对该组点云进行拟合而得到一个所述圆柱体,计算该组点云中各点云分别到所述圆柱体表面的距离;
确定内点的步骤:根据所述预设的距离阈值和该组点云中各点云分别到对应的所述圆柱体表面的距离,确定该组点云中内点的数量;其中,所述内点是指该组点云中到所述圆柱体表面的距离小于所述距离阈值的点云;
确定所述待拟合点云数据集的步骤:
若该组点云中所述内点的数量大于预设的数量阈值,则将所述圆柱体作为所述初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集,并将该组点云从所述原始点云中删除;
若该组点云中所述内点的数量小于所述预设的数量阈值,则继续迭代上述选择点云的步骤、生成圆柱体的步骤、确定内点的步骤,直至所述该组点云中所述内点的数量大于预设的数量阈值或者所述继续迭代后所生成的圆柱体与所述继续迭代前所生成的圆柱体的拟合误差小于预设的误差阈值,将最新得到的所述圆柱体作为所述初始的拟合圆柱体,将所述原始点云中与所述初始的拟合圆柱体表面的距离在预设的距离阈值范围内的所述多个点云作为待拟合点云数据集。
3.如权利要求1所述的拟合方法,其特征在于,所述对所述待拟合点云数据集中与所述初始的拟合圆柱体对应的点云进行估计,以得到所述拟合圆柱体的参数的初始值,包括:
将与一个所述拟合圆柱体对应的点云的重心的坐标作为与所述拟合圆柱体对应的所述中心轴线上任意一点的坐标的初始值;
基于所述待拟合点云数据集中与所述拟合圆柱体对应的点云的协方差矩阵确定所述拟合圆柱体的中心轴线的方向向量的初始值;其中,所述拟合圆柱体的中心轴线的方向向量的初始值为所述协方差矩阵的最大特征值所对应的特征向量;
分别将与所述初始的拟合圆柱体对应的一组所述待拟合点云、所述中心轴线上任意一点的坐标的初始值和所述中心轴线的方向向量的初始值代入拟合圆柱体的参数方程而计算得到多个所述初始的拟合圆柱体的半径;
计算所有所述初始的拟合圆柱体的半径的平均值,将所述平均值作为所述拟合圆柱体的半径的初始值。
4.如权利要求3所述的拟合方法,其特征在于,所述拟合圆柱体的参数方程为:
A2+B2+C2=R2
其中,
其中,(a,b,c)表示所述拟合圆柱体的中心轴线的方向向量,所述R表示所述拟合圆柱体的半径,表示所述中心轴线上任意一点的坐标,所述半径的表达式为:
其中,ui=A,vi=B,wi=C。
5.如权利要求1所述的拟合方法,其特征在于,所述根据所述拟合圆柱体的参数的初始值和预先构建好的所述拟合圆柱体的迭代方程对所述拟合圆柱体的参数进行迭代更新,直至达到预设的迭代更新停止条件,而得到所述拟合圆柱体的参数的最终拟合值,包括:
基于所述拟合圆柱体的参数的初始值,计算所述待拟合点云数据集中各点云分别到对应的所述拟合圆柱体表面的距离,基于所述待拟合点云数据集中各点云分别到对应的所述拟合圆柱体表面的距离,获取所述待拟合点云数据集中各点云的损失值权重;
以所述中心轴线上任意一点的坐标的初始值为坐标原点,以所述中心轴线的方向向量的初始值为轴建立一个新的坐标系,利用预设的坐标变换公式将所述待拟合点云数据集中各点云的坐标转换至所述新的坐标系下;
根据预先构建好的所述拟合圆柱体的迭代方程,计算得到所述拟合圆柱体的参数变化量矩阵;其中,所述参数变化量矩阵包括:所述拟合圆柱体的中心轴线的方向向量的变化量、所述中心轴线上任意一点的坐标的变化量和所述拟合圆柱体的半径的变化量;
迭代更新与计算总体损失值的步骤:基于所述拟合圆柱体的参数变化量矩阵,对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数,计算所述迭代更新后的所述拟合圆柱体的总体损失值和所述迭代更新前的总体损失值;
重复所述迭代更新与计算总体损失值的步骤,直至达到所述预设的迭代更新停止条件,将与所述迭代更新停止条件对应的所述拟合圆柱体的参数的数值作为所述拟合圆柱体的参数的最终拟合值。
6.如权利要求5所述的拟合方法,其特征在于,所述预设的迭代更新停止条件为:所述迭代更新后的总体损失值和所述迭代更新前的总体损失值的差值与所述迭代更新前的总体损失值的比值小于预设比例阈值,或者,达到预设的迭代次数阈值;
所述总体损失值是基于所述各点云的损失值权重而对所述各点云的损失值进行加权而得到的,所述各点云的损失值是基于所述各点云到所述拟合圆柱体表面的距离而得到的,所述各点云的损失值权重与所述各点云分别到对应的所述拟合圆柱体表面的距离成反比;
所述迭代方程是基于所述总体损失值分别相对于所述拟合圆柱体的各参数的变化率的矩阵而得到的。
7.如权利要求5所述的拟合方法,其特征在于,所述预设的坐标变换公式的表达式为:
其中,(x'i,y'i,z'i)表示所述待拟合点云数据集中第i个点云在所述新的坐标系中的坐标,(xi,yi,zi)表示所述待拟合点云数据集中第i个点云在原有的坐标系中的坐标,
其中,当所述中心轴线的方向向量(a,b,c)为(1,0,0)时,s1=0,c1=1,s2=-1,c2=0;
否则,
8.如权利要求5所述的拟合方法,其特征在于,所述迭代方程的表达式为:
(Ji TJi+λdiag(Ji TJi))Pi=Ji TFi
其中,所述Ji表示第i次迭代更新后所述拟合圆柱体的总体损失值相对于所述拟合圆柱体的各参数的变化率的矩阵,所述Ji的表达式为:
其中,所述wi为所述待拟合点云数据集中第i个点云的损失值权重,所述N为所述待拟合点云数据集中点云的数量,所述Pi为由所述第i次迭代更新至所述第i+1次迭代更新而产生的所述参数变化量矩阵,所述Pi作为所述迭代方程的待求解量,
所述Fi表示第i次迭代更新后根据第i个点云而对所述拟合圆柱体的半径进行估计而得到的估计值ri与当前的所述R的差值,
所述λi表示所述迭代方程第i次迭代更新后的学习率,所述学习率用于控制所述拟合圆柱体的各参数进行迭代更新的步长,
所述估计值ri的表达式为:
9.如权利要求8所述的拟合方法,其特征在于,所述Pi的表达式为:
Pi=[dx,dy,da,db,dR]T
所述Fi的表达式为:
Fi=[R-r1,R-r2,…,R-rN]T
10.如权利要求9所述的拟合方法,其特征在于,所述更新后的所述拟合圆柱体的参数的表达式分别为:
R′=R+dR。
11.如权利要求10所述的拟合方法,其特征在于,所述总体损失值的表达式为:
其中,所述εi为所述待拟合点云数据集中第i个点云的损失值。
12.如权利要求11所述的拟合方法,其特征在于,所述εi的表达式为:
或者
其中,所述δi为所述待拟合点云中第i个点云到所述拟合圆柱体表面的距离,所述τ为所述距离阈值。
13.如权利要求12所述的拟合方法,其特征在于,所述τ的表达式为:
所述待拟合点云中第i个点云的损失值权重的表达式为:
或者
14.如权利要求5所述的拟合方法,其特征在于,在所述对所述拟合圆柱体的参数进行迭代更新而得到更新后的所述拟合圆柱体的参数之后,若当次迭代更新后的所述拟合圆柱体的总体损失值与当次迭代更新前的所述拟合圆柱体的总体损失值的比值大于预设的比例阈值,则通过以下表达式对所述学习率进行更新:
λnew=λold/k,
其中,所述k为预设的系数,所述λold为当次迭代更新前的所述学习率,所述λnew为当次迭代更新后的所述学习率。
15.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1至14中任一项所述的方法。
CN202311407347.3A 2023-10-27 2023-10-27 一种点云中圆柱体的拟合方法及计算机可读存储介质 Pending CN117557719A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311407347.3A CN117557719A (zh) 2023-10-27 2023-10-27 一种点云中圆柱体的拟合方法及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311407347.3A CN117557719A (zh) 2023-10-27 2023-10-27 一种点云中圆柱体的拟合方法及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN117557719A true CN117557719A (zh) 2024-02-13

Family

ID=89819423

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311407347.3A Pending CN117557719A (zh) 2023-10-27 2023-10-27 一种点云中圆柱体的拟合方法及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN117557719A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117853666A (zh) * 2024-03-07 2024-04-09 法奥意威(苏州)机器人系统有限公司 基于细分八叉树的点云圆柱体检测方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117853666A (zh) * 2024-03-07 2024-04-09 法奥意威(苏州)机器人系统有限公司 基于细分八叉树的点云圆柱体检测方法和装置

Similar Documents

Publication Publication Date Title
CN112581457B (zh) 一种基于三维点云的管道内表面检测方法及装置
CN107063228B (zh) 基于双目视觉的目标姿态解算方法
EP3006893B1 (en) Methods for improving the accuracy of dimensioning-system measurements
CN107588721A (zh) 一种基于双目视觉的零件多尺寸的测量方法及系统
Radvar-Esfahlan et al. Nonrigid geometric metrology using generalized numerical inspection fixtures
CN117557719A (zh) 一种点云中圆柱体的拟合方法及计算机可读存储介质
JP2011238204A (ja) 3次元シーンにおける3次元物体の認識及び位置姿勢決定方法
CN109101741B (zh) 一种基于三角网格简化的复杂曲面检测自适应采样方法
CN116152306B (zh) 确定砌筑质量的方法、装置、设备和介质
CN113168729B (zh) 一种基于局部参考坐标系的3d形状匹配方法及装置
CN111311651B (zh) 点云配准方法和装置
Pathak et al. Form error evaluation of noncontact scan data using constriction factor particle swarm optimization
CN115311314B (zh) 一种线激光轮廓数据的重采样方法、系统和存储介质
CN114332191A (zh) 三维点云误差补偿方法及装置
CN117152230B (zh) 一种圆柱度的估计方法及计算机可读存储介质
CN112687010A (zh) 一种端框钻模的数字化计量方法
CN115147471A (zh) 一种基于曲率密度特征的激光点云自动配准方法
CN114862816A (zh) 毛刺检测方法、系统和计算机可读存储介质
CN118628671B (zh) 一种面向复杂产品工业设计的关键参数提取方法
CN113033270B (zh) 采用辅助轴的3d物体局部表面描述方法、装置及存储介质
CN113643273B (zh) 一种基于点云数据的缺陷检测方法及装置
CN118297942B (zh) 一种基于图像处理的零件形位误差检测方法及系统
CN118279363B (zh) 薄壁复杂构件在线测量点云的处理及质量评估方法
CN118070434B (zh) 一种汽车零部件的工艺信息模型构建方法及系统
Ni et al. Vision-Based Measurement Method for Internal Riveting of the Joist

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