激光与光电子学进展, 2024, 61 (4): 0415006, 网络出版: 2024-02-26  

三维点云数据的精确快速面图元检测方法

Accurate and Fast Primitive Detection Method for 3D Point Cloud Data
作者单位
1 华北电力大学控制与计算机工程学院,北京 102206
2 太仓中科信息技术研究院,江苏 太仓215400
3 中国科学院计算技术研究所,北京 100190
摘要
目前在零件模型上容易将低曲率圆柱面的局部区域识别为平面,并且只能做到一种图元的快速准确检测。基于此,提出一种能够同时对平面和圆柱面进行精确快速检测的面向点云数据的面图元快速检测方法。该方法分为粗识别和精化两阶段:首先,将点云划分为小粒度基片,计算基片特征,粗识别出平面基片或圆柱面基片;之后,根据过滤条件将圆柱面基片邻近的平面基片过滤,合并具有相同特征的基片得到完整平面和圆柱面。使用5个机械零件数据进行实验验证,并将其与目前流行的两种识别方法进行比较。结果表明,该方法不会出现其他两种方法存在的遗漏和错误识别现象,同时在多圆柱面相连时的准确分割以及曲面参数精度上,优于其他两种方法。
Abstract
Current detection methods for three dimensional (3D) point cloud data easily identify the local area of low-curvature cylindrical surfaces as planes in a model, but these methods can achieve the fast and accurate identification of only a single element. We propose a fast primitive detection method for point cloud data that can quickly and accurately detect both planar and cylindrical surfaces simultaneously. The proposed method is divided into two stages: coarse recognition and refinement. First, the point cloud is divided into small-grained patches, the patch characteristics are calculated, and the planar and cylindrical patches are roughly identified. Next, according to the filter conditions, the planar patches adjacent to the cylindrical patches are filtered, and then the patches with identical characteristics are combined to obtain the complete planar and cylindrical surfaces. Our experiments show that the proposed method is superior to two popular recognition methods when used to analyze data concerning five mechanical components. Moreover, the proposed method does not exhibit the omission and misidentification errors demonstrated by the other two methods, and the proposed method is more accurate in terms of the surface parameter estimation and segmentation when multiple cylindrical surfaces are connected.

1 引言

在智能工业生产中,零件外观几何形状的基本图元识别是自动测量、焊接、零件分拣以及质检等环节的基础。其中,平面和圆柱面是两种最基本且最常见的几何图元1,识别精度和识别效率将直接影响到工艺流程中后续各操作的精确度。基于三维网络模型进行基本图元识别时通常需要将扫描得到的离散点云数据重构为三角网格模型,再从网格模型中识别2,但网格拓扑化需要较大的计算成本。与之相比,从离散点云中直接提取平面和圆柱面会降低计算成本、提高识别效率。然而,由于离散点云中只包含点的位置信息而缺少点对之间的结构信息,因此从离散点云中直接检测平面或者圆柱面图元具有一定的挑战性。

已有一些工作进行了相关研究,如Araújo等3通过细分策略和统计思想进行平面识别,并通过点云投影和连通性检测方式识别圆柱面4,不足之处是不能同时进行平面和圆柱面的识别,且容易将低曲率圆柱面的局部区域误识别为平面。与之相比,高效的随机采样一致性方法(eRANSAC)5能够同时识别平面和圆柱面,但由于该方法是通过反复随机采样进行平面或圆柱面识别的,因此容易将平面误识别为曲率较大的圆柱面。特别是对于机械零件这种特征复杂的点云模型,直接使用已有几何图元识别方法进行识别时容易混淆。比如,当需要同时识别圆柱面和平面时,圆柱面的某些部分会被错误识别为平面,而小平面或者比较窄的长平面会被错误识别为圆柱面。

本文受Araújo平面检测算法的启发,提出一种从点云进行三维图元识别的方法:首先,对整个空间点云进行体素划分,计算每一个最小基片的特征并进行基片类型初判定;然后,对圆柱面基片所邻接的点云基片类型进行迭代求精,修正被误识别为平面的基片类型,进而准确标识出点云中的平面和圆柱面,从而有效解决低曲率圆柱面被误识别为平面的问题。在5个零件数据上进行了实验验证,没有出现漏识别的情况,整体的识别精度比基于连通性的圆柱面检测方法(CbCD)4高20%。

2 相关工作

关于从离散点云模型中识别几何图元的研究大致可分为以下几类:区域增长法、RANSAC法、霍夫变换(HT)法和深度学习方法。

2.1 区域增长法

区域增长法从点云中随机选择一个种子点,从种子点开始进行图搜索,按照区域增长的约束条件迭代地将点云中符合条件的点加入,直到获得最终的聚类结果。但对于稠密点云,逐点搜索与聚类非常耗时。为了降低计算成本,Deschaud等6将点云空间划分为体素,以体素为单位进行图搜索。Farid等7提出一种基于平滑约束的区域增长方法进行平面检测。Maalek等8将鲁棒主成分分析法(R-PCA)应用于每个点周围的邻域区域,通过分析特征值之间的比例以确定该区域是线型、平面或者其他类型。Pham等9和Vo等10采用分区策略提取小平面,所不同的是,前者使用基于图聚类的边缘分割,而后者则使用八叉树将点云空间分割成多个小块进行特征识别。Araújo等3则在文献[10]方法的基础上加入稳健统计的思想,改进方法能够进行平面提取,局限性是容易将低曲率圆柱面的局部区域误识别为平面。

对于圆柱面检测,Tran等11使用主曲率信息选择潜在的圆柱面种子点,通过迭代拟合扩展到完整的圆柱面。然而主曲率的精确估计很难,圆柱面上有多个种子点需要迭代拟合,该算法计算成本高。Nurunnabi等12提出一种基于R-PCA和鲁棒回归的方法,但只适用于包含单个圆柱面的场景。Araújo等4提出一种快速的圆柱检测方法,该方法在单位半球上设置一组均匀分布的方向,每个方向定义一个切平面,将点云投影到切平面上,通过线性时间的圆拟合算法检测切平面上的圆形投影,以快速识别圆柱面。

2.2 RANSAC法

RANSAC是目前最流行的多种图元提取方法。该方法包括两步:首先,从输入点集中随机提取估计平面或圆柱面所需的最小点集并进行拟合;然后,依据点到拟合面之间的距离将剩余点归类为内点和外点。迭代进行上述两步后选择内点个数最大的采样面作为平面或圆柱面的识别结果。

Schnabel等5提出一种高效的RANSAC方法,该方法使用空间信息描述点的邻域,并使用法线信息改进内点函数,能够识别5种基本图元。Li等13引入基于RANSAC的正态分布变换单元,以避免从点云中提取杂散平面。上述两种方法都容易识别到虚假图元。因此,王洋等14提出最小平方中值(LMedS)算法替代RANSAC来检测点云平面,并结合PCA算法进行参数估计。

2.3 霍夫变换法

霍夫变换15是一种探测参数化目标的方法,将点云从原始空间转换到参数空间,并在参数空间中投票来提取特征。由于霍夫变换的计算成本会随着特征空间的维数增加而指数级增长,当对圆柱面进行霍夫变换时特征空间达到五维,直接应用霍夫变换的计算成本非常高。因此,研究者们关注计算的加速问题。

随机霍夫变换(RHT)16是一种加速方法,通过随机选择的3个非共线点定义平面,3点1组进行投票,大大降低了投票成本,实现了加速。但是该方法不能保证所有平面都被检测到,并且多次执行的结果往往不一致。

Leng等17将区域增长和霍夫变换结合起来,利用霍夫变换提取生长单元,通过区域增长提取平面,但该方法对于平面较少的点云容易漏检。

Rabbani等18提出两步霍夫变换方法以降低检测圆柱面所需的特征空间维数。首先,将霍夫变换应用于点法向量的高斯图像,以估计圆柱轴的方向;然后,将与之相关的点投影到与圆柱轴垂直的平面上,再应用霍夫变换检测圆,并估计圆柱半径和中心。但该方法会将第一步的错误传播到第二步,同时由于两步霍夫变换不同,因此需要调整参数才能获得良好的结果。

Ahmed等19通过在坐标轴方向上进行预间隔切片来分割点云,每个间隔内的点投影在相应切片上,通过霍夫变换检测圆,将同一切片且具有相似中心的圆进行合并得到圆柱面,该方法只能提取与坐标轴对齐的圆柱面。

已有方法主要用于外观形状相对简单的三维模型,而对于外观特征复杂的零件点云模型,直接使用已有方法则很容易导致图元识别混淆。

2.4 深度学习方法

在三维点云语义分割上,PointNet20的提出是开创性工作,其直接应用深度学习网络来处理三维点云,但在特征提取过程中并未考虑局部邻域信息。为此,杨晓文等21在PointNet的基础上提出一种结合改进K近邻(KNN)算法的局部特征提取方法。刘友群等22则设计了一种新的图卷积网络架构DGPoint,通过建立查询点的动态图结构,使用边缘卷积以获得强大的局部特征。

对于更进一步的图元分割,Li等23引入有监督的图元拟合网络(SPFN),该网络可以自动预测不同尺度的图元。但是,此方法假定几个图元的种类是已知的,并且对在真实环境中扫描获得的不完整数据敏感。除此之外,Sharma等24提出一种新颖的、端到端的、可训练的深度网络(ParSeNet),将3D点云分解为参数化曲面。然而,该方法的分解模块仍然依赖于给定的图元种类。此外,Huang等25提出一个对抗网络(PrimitiveNet),将全局分割问题分解为局部任务并进行几何图元参数拟合。但是,上述方法仍然需要使用RANSAC来进行图元识别或使用区域增长来确定边界,与此同时,设计的深度神经网络大大增加了图元识别的复杂性。

3 问题描述

本研究需要根据输入的离散点云识别出平面和圆柱面两种类型的三维基本图元。首先,将整个点云空间划分多个体素块,对各体素块内的点云基片进行特征计算,并将同类型相邻的点云基片拼接为完整的图元,进而标识出点云中的完整的平面和圆柱面。该问题可描述为

fS={Pi,iN+}{Cj,jN+}

式中:S为离散点云数据;Pi为识别到的平面;Cj为识别到的圆柱面。

平面由平面上的点和平面法线定义,平面上任意一点pi满足:

(pi-p0)N=0

式中:p0是平面上确定的一点;N是平面法向量,且满足:

N22=1

那么,nn≥3)个点拟合平面的问题即等价于式(4)所示的最小二乘优化问题:

J:mini=1n(pi-p0)N2

圆柱面可用中轴方向向量a、中轴上一点p0以及圆柱半径R0表示。任意点pi到中轴的垂直距离记为RiR0Ri两者误差可以用式(5)求得:

vi=Ri-R0Ri=||pi-p0||22-(pi-p0)a2

对于n(n6)个点,引入最小二乘约束:

J:mini=1nvist:||a||22=1

4 点云基片特征参数

为了识别三维点云中的平面和圆柱面,定义了两个基片特征参数:平面度和法向偏差。

4.1 平面度

平面度是指点云基片具有的宏观凹凸高度相对理想平面的偏差,用来控制被测实际平面的形状误差。

点云基片的平面度可以通过求基片上各点到已拟合平面的距离近似估计,距离在一定阈值范围之内,便认为是平面。对于不同基片,需要设定不同的距离阈值,基片越大,设定的阈值也应越大。

通过计算向量F和拟合平面法向N之间的夹角θ来估计平面度3

θ=arccosFNF=12lU+lMDPN

式中:N为点云基片拟合所得平面的法向;U为经过平面上的点且与平面法向N垂直的单位向量;lMDP表示基片上的点到平面的最大距离;l是基片有向包围盒的长边。θ角越大越趋于平面,如图1所示。

图 1. 相同大小的平面(图中黑色实线为基片在向量NF所在平面上的投影)在不同曲率下的lMDP以及向量F与平面法向N的夹角θ,从左到右曲率越小,lMDP越小,夹角越大

Fig. 1. The lMDP of the same size plane (the black solid line in the figure is the projection of the plane block on the plane where vector N and F are located) at different curvatures, as well as the angle between vector F and plane normal N, the smaller the curvature from left to right, the smaller the lMDP, the greater the angle

下载图片 查看所有图片

为了求得向量F,首先需要计算lMDP。基片上的点pi到拟合平面的距离记为di,则所有距离构成的集合D={di|di=|(pi-p0)N|,1in},则lMDP的表达式为

lMDP=median(D)+αMAD(D)MAD(D)=k×median(|di-median(D)|),

式中:median为中值函数;MAD为绝对偏差中值函数,取k=1.4826使得MAD和标准差一致。当α=3时, 置信度可达99.7%。

4.2 法向偏差

法向偏差为点法线和平面法线的夹角。首先通过点云微切平面估计法26估算每点的法向量,平面基片上的点应当具有一致的法线方向,各点之间的法向偏差较小,而曲面基片上的法向偏差较大。因此,计算基片每个点法线和平面法向之间的夹角,各夹角构成集合Φ={φ1,φ2,,φn},其中,φi式(13)计算得到。

φi=arccos(|niN|)

式中:ni为第i个点的法向量。则最大法向偏差(DMND)为

DMND=median(Φ)+αMAD(Φ)MAD(Φ)=k×median(|φi-median(Φ)|)

4.3 基片特征参数计算

点云基片可能是平面基片、圆柱面基片或者两者都不是。首先估计点云基片的平面参数。由于平面上各点法向量方向一致,因此将式(4)的最小化问题近似为式(16)式(17)。对平面参数中的p0取点云基片中所有点的坐标分量的中值,平面法向N为归一化向量,其方向由所有点法向量的坐标分量的中值求出:

p0=[median(Px),median(Py),median(Pz)]TN=median(Pnx),median(Pny),median(Pnz)Tmedian(Pnx),median(Pny),median(Pnz)T

式中:PxPyPz分别是基片中所有点坐标的x分量、y分量、z分量构成的集合;PnxPnyPnz则是基片中所有点法向量的xyz分量构成的集合。

对于圆柱面拟合,根据圆柱面上各点法向量和中轴向量垂直的情况可知,圆柱中轴方向为所有点法向量分布最少的方向。因此使用所有点法向量构建协方差矩阵C,如式(18)所示。由主成分分析可知,协方差矩阵C的最小特征值对应的方向即为所有点法向量分布最少的方向。

C=i=1nniTni

将矩阵C的3个特征向量单位化,其中,最小特征值对应的特征向量为中轴方向向量a,其余两个特征向量即为投影基底uv。将所有点投影在以中轴a为法向量、 uv为基底的平面上,形成投影圆。因此,式(8)定义的最小化问题可简化为所有投影点的拟合圆问题。基片中第i个点坐标pi的投影点坐标p˜i式(19)给出:

p˜i=(piu,piv)

由于投影平面垂直于中轴,因此圆柱半径等于投影圆半径,中轴上的点即为圆心坐标(cx,cy)对应的空间坐标,即p0=cx·u+cy·v。采用式(20)进行代数拟合27,计算拟合圆半径r和圆心c=(cx,cy)

[cx,cy,r2-cx2-cy2]T=(ATA)-1ATbA=a1,a2,,anTai=(2pix̃,2piỹ,1)T,i=1,,n,b=(p122,p222,,pn22)T

5 平面和圆柱面检测

基于第3节中描述的特征表示,对每一体素包含的点云进行特征计算,生成平面基片或者圆柱面基片,之后合并同类基片并精化平面基片,最后得到完整曲面。总体流程如图2所示。

图 2. 总体流程图

Fig. 2. Overall flowchart

下载图片 查看所有图片

5.1 点云数据八叉树存储

采用八叉树存储点云,如图3所示。对包含整个三维点云的体素空间进行递归迭代分割,上一层每个体素空间分割为下一层八个均匀子体素空间,直到体素空间包含的点云基片中包含的点数小于给定阈值。

图 3. 八叉树存储点云

Fig. 3. The octree structure storing point cloud

下载图片 查看所有图片

在三维点云空间的划分中,分割得到的最小体素的大小依赖于基片包含点密度的大小,点密度越大,分割的体素越小,以此保证单位体素中包含的点数稳定。同时,为了避免存储空间浪费,对分割得到的不包含点云的空闲体素进行剪枝。

八叉树的叶子体素节点构成了分割整个点云空间所构成的初始基片集。通过遍历八叉树叶子节点,便可以计算所有点云基片特征参数。在遍历过程中,如果与父节点相关联的所有八个叶子体素都不是平面基片或圆柱面基片,则父节点本身成为新的叶子节点,对父节点所包含的点云基片的特征参数进行重新计算以及类型判定。

5.2 点云基片类型粗识别

根据第3.1节求出基片的平面度和法向偏差,将平面度大于阈值且DMND小于阈值的基片粗判定为平面基片,将平面度小于阈值且DMND大于阈值的基片粗判定为圆柱面基片,其他则视为两者都不是。

对于粗定的平面基片,保留其平面参数。而粗定的圆柱面基片需要进行圆柱面参数估计。对于基片中不满足其参数的点称为外点,需要从该基片中去除,因此要确定每个基片的外点。

对于平面基片,计算点到拟合平面的距离和法向偏差,将满足约束式(24)的点视为外点。

di<lMDP or ϕi<DMND

对于圆柱面基片,将远离圆柱面的点以及法向量与圆柱中轴方向靠近的点视为外点,即满足约束式(25)

vi>R0γ or Δni<βΔni=(pi-p0)-(pi-p00)·aα·ni(pi-p0)-(pi-p0)·aα

式中:ni为点pi的法向量ni和圆柱中轴a的矢量夹角余弦;参数γβ分别是距离阈值和法向偏差阈值。

当基片的外点数超过基片点数一半时,平面参数或者圆柱面参数不可信,丢弃该基片。反之,去除外点生成平面基片或者圆柱面基片。如此,可以确保每个基片中只包含一个平面区域或者圆柱面区域。

5.3 边界空隙区域的参数再拟合

分割得到的点云基片,在初始阶段有可能未被正确识别到,或者在点云基片进行参数拟合过程中,会有部分点被当作外点丢弃,甚至当基片中的外点数超过基片点数一半时,整个基片都被抛弃,这都可能导致原本应该相邻且属于同一类型的两个基片之间出现未被正确参数化拟合的点,形成空隙区域,如图4所示。因此,需要以识别到的基片作为种子面进行区域增长,以此来将空隙区域中的点正确划分到对应的基片中。

图 4. 空隙示意图,图中带颜色的区域为识别出的基片

Fig. 4. Void schematic, the colored areas in the figure are the identified surface blocks

下载图片 查看所有图片

为此,对所有的基片进行区域增长,将满足内点约束的邻域点合并到相应基片中。平面的内点满足两个约束条件:1)点p到平面P的距离应小于平面P对应的lMDP;(2)点p对应的法向量n与平面法向N之间的夹角偏差应小于DMND

圆柱面的内点约束则取约束条件式(25)的否定情况。

5.4 基片合并与识别类型精化

通过基片区域增长可以将未识别到的点正确划分,消除边界空隙。但一个完整曲面通常会被分割为几个相邻的基片,因此需要将相邻的特征相同的基片合并,以保证识别的曲面的完整性。

当两个平面基片PAPB同时满足以下3个约束条件时可进行合并:1)平面基片PAPB是相邻的;2)2个平面基片平面法线的夹角小于给定阈值;3)平面基片PA存在至少1点满足平面基片PB在欧氏距离上的内点约束,同时平面基片PB也存在至少1个点满足平面基片PA在欧氏距离上的内点约束。其中,前两个约束条件保证了基片空间相邻性和方向一致性,第3个约束条件避免平行基片的误合并。

圆柱面基片合并条件除了上述3个约束之外,还包含下述2条约束:4)将圆柱面基片CACB的圆柱中轴上的一点同时投影在垂直于圆柱面基片CA的中轴的平面上,计算两个投影圆心的欧氏距离d。对于需要合并的两个圆柱面基片应满足d小于阈值。5)在半径的相似性上,对于需要合并的两个圆柱面基片应当满足两者半径的最小值和最大值之比大于ηη<1)。

约束条件4)、5)确保两个圆柱面基片的中轴相似以及两个圆柱面基片具有相似半径。

由于基片中只包含小部分点云,因此对于低曲率圆柱面上的基片容易误识别为平面基片。因此,对于所有的圆柱面基片,将其邻近的平面基片视为圆柱面基片,重新计算圆柱面参数,之后根据圆柱面基片合并约束条件进行合并,形成新的圆柱面基片。对于不能合并的基片则保留为正确识别的平面基片。每次迭代精化后,对于修正基片重新估计参数,如此可以修正被误识别为平面的圆柱面基片。

6 实验及结果分析

6.1 测试数据

为了验证所提方法的有效性,选择3个零件模型以及ABC数据集28中2个复杂模型的点云数据进行实验,这2组点云数据包含多个平面和不同参数的圆柱面。

图5中:第1个BASE模型的显著特征是包含多个同心圆柱面;第2个BLOCK模型的显著特征是圆柱面分布在2个垂直的方向上;第3个MOOV模型的显著特征是由多个圆柱面以及平面共同组成一个复杂曲面。图6中:第1个ABC_03模型的显著特征是两个圆柱面出现交叉情况;第2个ABC_27模型的显著特征是圆柱面存在多种不完整情况。

图 5. 机械零件模型。(a)(b)(c)3种机械零件的mesh模型;(d)(e)(f)从mesh模型泊松采样得到的点云模型

Fig. 5. Mechanical part model. (a) (b) (c) The mesh model of three mechanical parts; (d) (e) (f) point cloud model obtained from Poisson sampling of mesh model

下载图片 查看所有图片

图 6. ABC数据集中的2个模型。(a)(b)mesh模型;(c)(d)点云模型

Fig. 6. Two models in the ABC dataset.(a) (b) The mesh model; (c) (d) the point cloud model

下载图片 查看所有图片

实验所使用的离散点云均是在mesh模型上进行泊松采样得到的,如表1所示。

表 1. 机械零件数据参数及特征

Table 1. Data parameters and characteristics

DataPointsPlanesCylindersFeatures
BASE14771253542Concentric
BLOCK7378431413Different orientations
MOOV9999842214Multi-cylindrical surface combinations
ABC_037321168Crossover
ABC_272930982220Incomplete

查看所有表

6.2 评价指标

使用Eigen作为线性代数库在C++中实现算法,同时所有实验均在Intel(R)Core(TM)i7-10700F 2.9 GHz、内存16 GB的电脑上进行。

对圆柱面识别性能的评价指标包括:平均半径偏差(DARD)、最大半径偏差(DMRD)、未识别圆柱面的平均半径偏差(DSC)、召回率和精确率的加权调和平均(F1)、错误识别数(NM)以及漏检(Nmiss)。其中,前3个指标衡量识别算法提取出的圆柱面参数与真值的相似性,偏差越小越接近真值。对于DARD,其表达式为

DARD=i=1n|rreali-rmi|n

式中:rrealirmi分别为第i个圆柱面的底面半径真值和测量值;n为识别出的圆柱面总数。评价指标DSCDARD的计算方式相似,F1的计算方式与异常检测中的一致。使用DARD作为未正确识别圆柱面的半径偏差。错误识别的圆柱面则不纳入半径偏差的相关计算中。

同时,拐角处的小半径圆柱面在工业生产中是不需要进行识别的。因此,对于圆柱面的统计中不包含拐角处的小半径圆柱面。

6.3 定量分析

由于机械零件点云密度较高,面与面之间衔接紧密。将平面度阈值设为75°,即θ>75°,最大法向偏差限制在5°以内,即DMND<5°

在机械零件数据上的平面识别结果如图7所示。优化前的结果为Araújo等3的平面检测结果,可以明显看到,大半径即低曲率圆柱面被误识别为平面,如图7(a)~(c)中红色圆框所示。通过圆柱特征过滤平面特征方法有效去除掉这些误识别平面,优化后结果如图7(d)~(f)所示。

图 7. 平面检测优化。(a)(b)(c)优化前;(d)(e)(f)优化后

Fig. 7. Plane detection optimization. (a) (b) (c) Before optimization; (d) (e) (f) after optimization

下载图片 查看所有图片

对于圆柱面的识别,在3个机械零件数据的基础上,新增2个由ABC数据集中的复杂模型采样得到的数据。在5个数据上,分别和CbCD方法以及eRANSAC方法进行对比。3种方法的参数设置如表2所示。

表 2. 各方法的参数设置

Table 2. Parameter settings for each method

MethodThresholdValue
CbCDα3
θ /(°)75
φ /(°)15
eRANSACε0.1
β0.9
α /(°)25
τ300
ρ0.01
Proposed methodε0.0001
βcos15°
γ50
K50
η0.95
θ /(°)75
σ /(°)5
σc /(°)25

查看所有表

其中,CbCD和eRANSAC的参数说明见文献[4]和文献[5]。所提方法中:ε为最小体素包含的点在点云中的占比;βγ为圆柱面内点条件的法向阈值和距离阈值;K为点云中每点邻域包含的点数;θ为平面度阈值;σ为法向偏差阈值。圆柱面要求为平面度小于θ,最大法向偏差大于σc。每次实验计算10次执行所用时间的平均值,各数据上的实验结果如表3所示。

表 3. 不同方法在每个数据上的性能

Table 3. Performance of different methods on each data

DatasetMethodF1NmissNMDARD /mmDMRD /mmDSC /mmT /ms
BASECbCD0.83331200.02160.04240.027518439
eRANSAC0.66672020.03640.13170.08182258
Proposed method1.0000000.01690.02980.01692681
BLOCKCbCD1.0000000.00680.02080.00678906
eRANSAC0.9286020.01180.03760.01181003
Proposed method0.9286020.00430.02290.00438149
MOOVCbCD0.6667700.02790.10420.06615528
eRANSAC0.8235060.04120.17160.04121572
Proposed method0.9333020.01610.0520.01615899
ABC_03CbCD0.7692300.03720.04850.0372957
eRANSAC0.8889020.04470.07470.0447208
Proposed method0.8421030.02570.05650.02571071
ABC_27CbCD0.5714630.00610.00790.006411572
eRANSAC0.9231020.10380.69820.1038640
Proposed method0.9600010.01460.00740.01463870

查看所有表

在正确识别方面,所提方法在两组测试数据上均表现出优异的性能,没有出现漏识别的情况。eRANSAC方法在BASE数据上出现漏检,CbCD方法在BASE、MOOV、ABC_03和ABC_27数据上均出现漏检。在误识别方面,所提方法出现的误识别最少,集中表现在将自由曲面局部区域误识别为圆柱面。CbCD方法出现的误识别表现在圆柱面和相邻平面没有正确分割。eRANSAC方法出现的误识别表现在两个方面:平面误识别为圆柱面和自由曲面局部区域误识别为圆柱面。

DARD上,所提方法在两组测试数据上最佳,仅在ABC_27数据上低于CbCD方法,这是由于DARD的计算只包括正确识别的圆柱面,不包含漏识别的圆柱面。同时与CbCD方法相比,所提方法在3个零件测试数据上均有20%以上的提升。对于DMRD,所提方法在BASE、MOOV和ABC_27数据上取得最佳效果,且偏差显著低于其他两种方法,同时在BLOCK数据上也与最佳效果仅相差0.0021。显而易见,所提方法在两组数据上的识别结果优于其他两种,同时仍然保持了有竞争力的运行时间。

6.4 定性评价

分别对5个数据采用不同方法进行圆柱面识别结果的定性分析,具体如图8所示。

图 8. 各方法在BASE数据上的圆柱面识别结果。(a)(c)(e)识别到的圆柱面在点云上的渲染结果;(b)(d)(f)不同颜色区分的圆柱面识别结果和虚线区域的放大图

Fig. 8. Cylindrical recognition results of each method on the BASE. (a) (c) (e) The render result of the recognized cylinder on the point cloud; (b) (d) (f) the color-distinguished cylinder recognition result and enlarged view of the dotted area

下载图片 查看所有图片

BASE数据的特点是包含多个同心圆柱面。中心部分有2个显著的同心圆柱面,4条斜槽的两端有2个同心半圆柱面,同时在12个小的圆柱面上有突起部分,如图9所示。Schnabel方法将2个平面错误识别成圆柱面,如图7(d)中2个实线方框部分所示。这是由于基于RANSAC的算法倾向于将平面检测为大半径不完整圆柱面。此外,遗漏了8个半圆柱面和1个小的完整圆柱面的识别。对于图10中红色方框所示的凹槽两端的圆柱面,所提方法和eRANSAC方法都能够正确检测到两端的圆柱面,而Araújo方法漏检了其中一端的圆柱面。这是由于通过点云投影和连通图查找的方法将整个槽视为1个连通组件,因此在该组件上拟合圆柱面时只会提取到一端的圆柱面,缺失了另外一端的圆柱面以及两者的连接部分。同时由于突起打断了圆柱面的连通性,因此该方法将含有突起的圆柱面识别成为了2个不同圆柱面,如图8放大部分所示。

图 9. 圆柱突起,红色为突起部分

Fig. 9. Cylindrical protrusions, red is the protrusion part

下载图片 查看所有图片

图 10. 凹槽,如图中红色部分

Fig. 10. Grooves, as shown in red in the figure

下载图片 查看所有图片

BLOCK数据中圆柱面的方向分布在两个垂直的方向上。在该数据上,eRANSAC、CbCD 和所提方法均能够完整识别出所有圆柱面,圆柱面识别结果如图11所示。

图 11. 各方法在BLOCK数据上的圆柱识别结果。(a)(d)(g)提取出的圆柱面点云渲染结果;(b)(e)(h)识别到的圆柱面在点云上的渲染结果;(c)(f)(i)不同颜色区分的圆柱面识别结果

Fig. 11. Cylindrical recognition results of each method on the BLOCK. (a) (d) (g) The render results of the extracted cylinder; (b) (e) (h) the render results of the recognized cylinder; (c) (f) (i) the color-distinguished cylindrical face recognition results

下载图片 查看所有图片

MOOV数据存在多个圆柱面以及平面共同组成一个复杂曲面的情况,是最难识别的数据。eRANSAC方法误将6个平面错误识别为圆柱面,如图12(d)中的4个圆框所示,同时对于如图12(d)实线方框所示的相邻圆柱面,较小的圆柱面则被遗漏识别。CbCD方法在该数据集上表现较差,只识别到4个完整圆柱面和1个半圆柱面,这是由于当圆柱面只存在一部分并且该部分的投影形成的弧小于90°,CbCD方法无法成功检测。

图 12. 各方法在MOOV数据上的圆柱识别结果。(a)(c)(e)识别到的圆柱面在点云上的渲染结果;(b)(d)(f)不同颜色区分的圆柱面识别结果和虚线区域的放大图

Fig. 12. Cylindrical recognition results of each method on the MOOV. (a)(c)(e) The render results of the recognized cylindrical face on point cloud; (b)(d)(f) the color-distinguished cylindrical face recognition results, and enlarged view of the dotted area

下载图片 查看所有图片

所提方法在圆柱面相邻的情况下做出了正确的分割,如图12(f)椭圆框所示,同时识别出了所有的圆柱面,包括拐角处的小半径圆柱面。由于完整度低的圆柱面在误差允许范围内的前后两次半径拟合结果可能相差较大,因此两个来自同一个完整度低圆柱面的圆柱基片可能无法合并,从而出现了错误分割的情况,如图12(f)实线方框所示。

ABC_03数据中出现了两个圆柱面交叉的情况,其中,一个圆柱面露出部分较少,被分割为4个半圆柱面,如图13(d)椭圆框中所示。3种方法的实验结果如图13所示,所提方法正确识别出了所有的圆柱面,但在面之间的交接处误识别出了圆柱面基元,这是由于面之间的平滑过渡区域是一个自由曲面,而自由曲面在分为小块之后,会被识别为圆柱面基元。CbCD方法虽然没有出现误识别,但只识别出1个半圆柱面,漏掉了其他3个。RANSAC方法与所提方法一致,在自由曲面上出现了误识别的圆柱面基元。

图 13. 各方法在ABC_03数据上的圆柱识别结果。(a)(d)(g)识别到的圆柱面结果;(b)(e)(h)不同颜色区分的圆柱面正面识别结果;(c)(f)(i)背面

Fig. 13. Cylindrical recognition results of each method on the ABC_03. (a) (d) (g) The recognized cylindrical faces on point cloud; (b) (e) (h) the color-distinguished cylindrical face front recognition results; (c) (f) (i) back

下载图片 查看所有图片

ABC_27数据的特征主要表现在圆柱面的不完整性,如图15(a)所示,该圆柱面被分为4个部分,而每个部分又连接不同曲面。3种方法的实验结果如图14所示,所提方法将图15(b)所示的圆柱面识别为了4个部分,这是由于这4个部分相隔较远,在合并阶段中并不会合并。所提方法对于不完整圆柱面和面与面过渡区域的圆柱面均正确识别出来,尽管产生了在图14(g)虚线框中所示的圆柱面分裂为3部分的情况。该情况是由于所提方法对过渡区域敏感所导致的,图14(g)虚线方框所示的圆柱面,上半部分出现拐角,导致其圆柱参数发生改变,无法与相邻圆柱面合并。

图 14. 各方法在ABC_27数据上的圆柱识别结果。(a)(d)(g)识别到的圆柱面结果;(b)(e)(h)不同颜色区分的圆柱面正面识别结果;(c)(f)(i)背面

Fig. 14. Cylindrical recognition results of each method on the ABC_27. (a) (d) (g) The recognized cylindrical faces on the full point cloud; (b) (e) (h) the color-distinguished cylindrical face front recognition results; (c) (f) (i) back

下载图片 查看所有图片

图 15. eRANSAC和所提方法对放大部分圆柱面的识别结果。(a)eRANSAC方法识别到结果;(b)所提方法识别结果

Fig. 15. The recognition results of proposed method and eRANSAC on the enlarged cylindrical surface. (a) Results identified by the eRANSAC method; (b) results identified by proposed method

下载图片 查看所有图片

eRANSAC由于识别平面或圆柱面时在整个点云中寻找内点,因此可以将分割开的圆柱面识别为一个,如图15(a)所示。同时,该方法倾向于将平面识别为圆柱面,出现了如图14(e)、(f)椭圆框所示的误识别。CbCD方法对于完整圆柱面能正确识别,对于不完整的圆柱面容易将其与相邻的平面识别为一个整体,如图14(a)所示,该方法将两个同心圆柱面以及与其相连的平面识别为了一个整体。同时对于图15放大部分所示的圆柱面,从图14(b)、(c)可以明显看出其被分割成了两半。

从上述零件数据的几何图元识别结果来看,所提方法获得了最佳的识别结果,在精度上优于其他两种方法。

6.5 不同参数下对识别精度的影响

识别精度主要体现在圆柱面半径的计算上,而参数βγ影响着圆柱面内点的选取,不同的βγ阈值会导致不同的识别精度。因此,在ABC_03数据上测试了不同βγ下的识别精度,实验结果如表4所示。在保证不出现漏检的情况下,实验过程中设置β=cos15°、γ=50。

表 4. 不同参数设置对识别精度的影响

Table 4. The influence of different parameter settings on recognition accuracy

DatesetβγDARD /mmDMRD/mmNmiss
ABC_03cos25°700.02830.05630
cos25°500.02780.04451
cos25°300.04560.13560
cos20°700.02630.04461
cos20°500.02870.05630
cos20°300.02820.05620
cos15°700.02120.04461
cos15°500.02570.05650
cos15°300.02030.04461
cos10°700.02830.04461
cos10°500.03000.04461
cos10°300.03320.05690
cos5°700.03490.04461
cos5°500.03510.04461
cos5°300.03520.04461

查看所有表

7 结论

在智能工业生产中,机械零件的自动化测量是自动焊接、零件智能分拣以及质检等环节的关键技术。自动化测量需要识别图元参数信息和位置信息。

提出一种从点云进行三维图元识别的方法:首先,进行点云基片的平面特征计算和类型粗判定;然后,通过圆柱面特征过滤被误识别为平面的点云基片,有效解决了低曲率圆柱面被误识别为平面的问题。在5个测试数据上进行了实验,与CbCD和eRANSAC这两种比较流行的方法比较中,所提方法取得了最佳效果。

所提方法的局限性在于,执行局部曲面特征计算有可能导致部分圆柱面基片无法正确合并到完整圆柱面上,同时会在自由曲面上产生圆柱面基片,这是该类方法的特点所导致的问题,应用全局信息指导错误基元的去除或许会解决这个问题。下一步将在点云小圆柱基片的精确拟合以及点云包含的球面、圆环面等其他基础图元的提取上进一步研究。

本研究基于传统方法进行三维点云数据上的平面和圆柱面识别,取得了不错的效果。随着大量数据的产生和多样化图元的识别,深度神经网络在多种图元识别上优势更加突出,但对于边界点的分割比较困难,无法得到清晰的边界。下一步将通过所提方法指导深度神经网络进行精确的边界处理。

参考文献

[1] Petitjean S. A survey of methods for recovering quadrics in triangle meshes[J]. ACM Computing Surveys, 2002, 34(2): 211-262.

[2] 何荣, 李际军. 逆向工程中特征曲面的识别方法[J]. 计算机应用, 2007, 27(8): 2018-2020, 2024.

    He R, Li J J. Feature surface recognition in reverse engineering[J]. Journal of Computer Applications, 2007, 27(8): 2018-2020, 2024.

[3] Araújo A M, Oliveira M M. A robust statistics approach for plane detection in unorganized point clouds[J]. Pattern Recognition, 2020, 100: 107115.

[4] Araújo A M C, Oliveira M M. Connectivity-based cylinder detection in unorganized point clouds[J]. Pattern Recognition, 2020, 100: 107161.

[5] Schnabel R, Wahl R, Klein R. Efficient RANSAC for point-cloud shape detection[J]. Computer Graphics Forum, 2007, 26(2): 214-226.

[6] DeschaudJ E, GouletteF. A fast and accurate plane detection algorithm for large noisy point clouds using filtered normals and voxel growing[EB/OL]. [2022-11-09]. https://hal-mines-paristech.archives-ouvertes.fr/hal-01097361/file/3DPVT_2010.pdf.

[7] FaridR. Region-growing planar segmentation for robot action planning[M]∥Pfahringer B, Renz J. AI 2015: advances in artificial intelligence. Lecture notes in computer science. Cham: Springer, 2015, 9457: 179-191.

[8] Maalek R, Lichti D D, Ruwanpura J Y. Robust segmentation of planar and linear features of terrestrial laser scanner point clouds acquired from construction sites[J]. Sensors, 2018, 18(3): 819.

[9] PhamT T, EichM, ReidI, et al. Geometrically consistent plane extraction for dense indoor 3D maps segmentation[C]∥2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), New York: ACM, 2016: 4199–4204.

[10] Vo A V, Truong-Hong L, Laefer D F, et al. Octree-based region growing for point cloud segmentation[J]. ISPRS Journal of Photogrammetry and Remote Sensing, 2015, 104: 88-100.

[11] Tran T T, Cao V T, Laurendeau D. Extraction of cylinders and estimation of their parameters from point clouds[J]. Computers & Graphics, 2015, 46: 345-357.

[12] Nurunnabi A, Sadahiro Y, Lindenbergh R. Robust cylinder fitting in three-dimensional point cloud data[J]. The International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, 2017, 1: 63-70.

[13] Li L, Yang F, Zhu H H, et al. An improved RANSAC for 3D point cloud plane segmentation based on normal distribution transformation cells[J]. Remote Sensing, 2017, 9(5): 433.

[14] 王洋, 王俊元, 杜文华, 等. 基于最小平方中值的点云平面拟合算法[J]. 激光与光电子学进展, 2023, 60(4): 0410019.

    Wang Y, Wang J Y, Du W H, et al. Point cloud plane fitting algorithm based on least square median[J]. Laser & Optoelectronics Progress, 2023, 60(4): 0410019.

[15] HoughP. Method and means for recognizing complex patterns: US3069654[P]. 1962-12-18.

[16] Xu L, Oja E, Kultanen P. A new curve detection method: Randomized Hough transform (RHT)[J]. Pattern Recognition Letters, 1990, 11(5): 331-338.

[17] Leng X X, Xiao J, Wang Y. A multi-scale plane-detection method based on the Hough transform and region growing[J]. The Photogrammetric Record, 2016, 31(154): 166-192.

[18] Rabbani T, Heuvel F V D. Efficient Hough transform for automatic detection of cylinders in point clouds[J]. ISPRS Working Groups, 2005, 36: 60-65.

[19] Ahmed M F, Haas C T, Haas R. Automatic detection of cylindrical objects in built facilities[J]. Journal of Computing in Civil Engineering, 2014, 28(3): 4014009.

[20] CharlesQ, HaoS, MoK C, et al. PointNet: deep learning on point sets for 3D classification and segmentation[C]∥2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR), July 21-26, 2017, Honolulu, HI, USA. New York: IEEE Press, 2017: 77-85.

[21] 杨晓文, 王爱兵, 韩燮, 等. 基于KNN-PointNet的点云语义分割[J]. 激光与光电子学进展, 2021, 58(24): 2410013.

    Yang X W, Wang A B, Han X, et al. Point cloud semantic segmentation based on KNN-PointNet[J]. Laser & Optoelectronics Progress, 2021, 58(24): 2410013.

[22] 刘友群, 敖建锋, 潘仲泰. DGPoint:用于三维点云语义分割的动态图卷积网络[J]. 激光与光电子学进展, 2022, 59(16): 1610014.

    Liu Y Q, Ao J F, Pan Z T. DGPoint: dynamic graph convolution network for semantic segmentation of 3D point clouds[J]. Laser & Optoelectronics Progress, 2022, 59(16): 1610014.

[23] LiL X, SungM, DubrovinaA, et al. Supervised fitting of geometric primitives to 3D point clouds[C]∥2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 15-20, 2019, Long Beach, CA, USA. New York: IEEE Press, 2020: 2647-2655.

[24] SharmaG, LiuD F, MajiS, et al. ParSeNet: a parametric surface fitting network for 3D point clouds[EB/OL]. (2020-03-26)[2022-11-09]. https://arxiv.org/abs/2003.12181.

[25] HuangJ W, ZhangY F, SunM W. PrimitiveNet: primitive instance segmentation with local primitive embedding under adversarial metric[C]∥2021 IEEE/CVF International Conference on Computer Vision (ICCV), October 10-17, 2021, Montreal, QC, Canada. New York: IEEE Press, 2022: 15323-15333.

[26] Hoppe H, DeRose T, Duchamp T, et al. Surface reconstruction from unorganized points[J]. ACM SIGGRAPH Computer Graphics, 1992, 26(2): 71-78.

[27] Pratt V. Direct least-squares fitting of algebraic surfaces[J]. ACM SIGGRAPH Computer Graphics, 1987, 21(4): 145-152.

[28] KochS, MatveevA, JiangZ S, et al. ABC: a big CAD model dataset for geometric deep learning[C]∥2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), June 15-20, 2019, Long Beach, CA, USA. New York: IEEE Press, 2020: 9593-9603.

石敏, 周绍卿, 王素琴, 朱登明. 三维点云数据的精确快速面图元检测方法[J]. 激光与光电子学进展, 2024, 61(4): 0415006. Min Shi, Shaoqing Zhou, Suqing Wang, Dengming Zhu. Accurate and Fast Primitive Detection Method for 3D Point Cloud Data[J]. Laser & Optoelectronics Progress, 2024, 61(4): 0415006.

引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!