CN107492148A - 基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法 - Google Patents
基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法 Download PDFInfo
- Publication number
- CN107492148A CN107492148A CN201710708685.9A CN201710708685A CN107492148A CN 107492148 A CN107492148 A CN 107492148A CN 201710708685 A CN201710708685 A CN 201710708685A CN 107492148 A CN107492148 A CN 107492148A
- Authority
- CN
- China
- Prior art keywords
- data set
- cloud
- graders
- classes
- mrow
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
- G06T2215/06—Curved planar reformation of 3D line structures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Image Analysis (AREA)
Abstract
本发明公开了基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法,通过激光扫描仪获得待重建曲面模型的点云数据组,对所述点云数据组利用最小二乘意义进行圆柱面拟合,根据曲面点云与拟合圆柱面的均方根误差判断是否拟合成功,若拟合成功,则输出拟合结果,曲面点云重建圆柱面完成。从所述曲面点云数据组中均匀采集其中10%的曲面点云数据,组成数据集Q,对该数据集Q利用K‑Means算法经无监督学习后进行分类;选取径向基函数为各SVM分类器的核函数,采用SMO算法结合半监督学习算法对各SVM分类器完成训练,最终实现了将大规模无标定的曲面点云数据重建为圆柱面的目的,提高重建圆柱面的效率、正确率和重建精度。
Description
技术领域
本发明涉及逆向工程领域,尤其涉及基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法。
背景技术
逆向工程是指根据现有的产品模型,利用数字化测量设备获取实体数据,然后对这些数据进行分割与拟合,来构建一个完整的CAD模型。目前逆向工程技术已经广泛应用于各种工程领域,如工业检测、自主导航和文物保护等。
由于点云数据具有存储方便,计算灵活的特点,现已成为计算机图形学中一种重要的元数据形式,点云逆向重建是点云计算中的一项重要技术。近年来,随着数字化精度的不断提高以及扫描对象曲面的复杂化,对于三维激光扫描仪或CT扫描仪等设备所获取的海量点云数据,传统的点云数据分割处理环节非常耗时,因此通过计算机辅助技术来解决点云数据分割问题变得十分重要。
发明内容
本发明的目的在于提出基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,将大规模无标定的曲面点云数据重建为圆柱面,提高了重建圆柱面的正确率和重建精度。
为达此目的,本发明采用以下技术方案:
一种基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法:
步骤A,通过激光扫描仪获得待重建曲面模型的点云数据组,利用椭球曲面的拟合方法计算出每个曲面点云对应的两个主曲率;选取每个曲面点云的三维坐标值及其两个主曲率作为代表该曲面点云的五个特征,从而获得所述待重建曲面模型的五维点云数据组;
步骤B,对所述五维点云数据组利用最小二乘意义进行圆柱面第一次拟合,根据曲面点云与拟合圆柱面的均方根误差判断拟合是否成功,若拟合成功,则输出拟合结果,曲面点云重建圆柱面完成;
步骤C,若第一次拟合失败,则从所述五维点云数据组中均匀采集其中10%的曲面点云数据,组成数据集Q,对所述数据集Q利用K-Means聚类算法分为两类,该两类分别为数据集A1和数据集A2,然后对所述数据集A1和所述数据集A2点云数据分别利用最小二乘意义进行圆柱面第二次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断数据集Q分割出来的两个曲面是否同时拟合成功,两个曲面同时拟合成功即为圆柱面第二次拟合成功,否则,圆柱面第二次拟合失败;
若圆柱面第二次拟合成功,则从所述待重建曲面模型的五维点云数据组中除去所述数据集Q的那部分点云数据随机抽取30%的点云数据,组成辅助训练数据集Z,利用所述数据集Q和所述辅助训练数据集Z结合半监督学习算法训练SVM0分类器;
所述SVM0分类器训练完成后,所述待重建曲面模型的五维点云数据组中除去所述数据集Q后剩余的点云数据组成分类集S,所述SVM0分类器对所述分类集S中的点云数据分别分入到所述数据集A1和所述数据集A2中;重新对所述数据集A1和所述数据集A2中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由两个圆柱面光滑拼接的曲面;
步骤D,若第二次拟合失败,则对所述数据集Q利用K-Means聚类算法分为三类,该三类分别为数据集B1、数据集B2和数据集B3,然后对所述数据集B1、所述数据集B2和所述数据集B3点云数据分别利用最小二乘意义进行圆柱面第三次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断所述数据集Q分割出来的三个曲面是否同时拟合成功,三个曲面同时拟合成功即为圆柱面第三次拟合成功,否则,圆柱面第三次拟合失败;
若圆柱面第三次拟合成功,则基于三分类问题的决策有向无环图,利用所述数据集Q和所述辅助训练数据集结合半监督学习算法训练SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器;
所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器训练完成后,基于三分类问题的决策有向无环图,综合利用所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器对所述分类集S中的点云数据分别分入到所述数据集B1、所述数据集B2和所述数据集B3;重新对所述数据集B1、所述数据集B2和所述数据集B3中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面;
步骤E,若圆柱面第三次拟合失败但三个曲面中存在一个曲面拟合成功,即所述数据集B1、所述数据集B2和所述数据集B3中的某个数据集拟合成功,则将该拟合成功的数据集中所有点云数据归入到数据集C1中,所述数据集Q除去数据集C1后剩余的点云数据组成数据集R,对所述数据集R利用K-Means聚类算法分为两类,该两类分别为数据集C2和数据集C3,然后对所述数据集C2和所述数据集C3点云数据分别利用最小二乘意义进行圆柱面第四次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断所述数据集C2和所述数据集C3点云数据分别对应的两个曲面是否同时拟合成功,两个曲面同时拟合成功即为圆柱面第四次拟合成功,否则,圆柱面第四次拟合失败;
若圆柱面第四次拟合成功,则基于三分类问题的决策有向无环图,利用所述数据集Q和所述辅助训练数据集结合半监督学习算法训练SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器;
所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器训练完成后,基于三分类问题的决策有向无环图,综合利用所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器对所述分类集S中的点云数据进行分类分别分入所述数据集C1、所述数据集C2和所述数据集C3;重新对所述数据集C1、所述数据集C2和所述数据集C3中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面;
步骤F,若圆柱面第三次拟合时三个曲面同时拟合失败或圆柱面第四次拟合失败,则所述曲面点云数据组不可重建圆柱面,输出无法重建曲面结果。
优选地,待重建曲面模型的五维点云数定义方法包括:
定义每个点云的第一特征为x轴坐标值,第二特征为y轴坐标值,第三特征为z轴坐标值,第四特征为两个主曲率中的最大曲率r1,第五特征为两个主曲率中的最小曲率r2。
优选地,利用K-Means聚类算法将所述五维点云数据集分成两类的步骤为:
首先,利用K-Means聚类算法进行分类的那一数据集中所有五维点云数据组成数据集U,求解所述数据集U的五维协方差矩阵W,即
计算所述数据集U中任意两个点云p(x1,y1,z1,ra1,rb1)和q(x2,y2,z2,ra2,rb2)之间的马氏距离,即
其中点云p、q均为五维行向量;
求出所述数据集U中所有点云之间的马氏距离,并筛选出最大马氏距离Dmax和最小马氏距离Dmin;
设置密度阈值Dv=Dmin+0.05(Dmax-Dmin),并统计出所述数据集U中每一个点云与其他点云的马氏距离中小于Dv的个数N1,其中个数N1最大的点云g选为所述K-Means聚类算法中K为2时的第一个聚类中心a1的初始点;
然后,找到距离所述第一个聚类中心a1初始点最远的点云并算出两者之间马氏距离Dv1;
查找出与所述第一个聚类中心a1初始点的马氏距离最接近0.8Dv1的点云h,并选取所述点云h为所述K-Means聚类算法中K为2时的第二个聚类中心a2的初始点,由此完成K为2的K-Means聚类中心初始化;
接着以平方误差准则函数为K-Means聚类算法K为2时的准则函数,对数据集U分成两类:若点云与第一个聚类中心a1初始点的马氏距离小于其与第二个聚类中心a2初始点的马氏距离,则该点云划分至E1类;若点云与第二个聚类中心a2初始点的马氏距离小于其与第一个聚类中心a1初始点的马氏距离,则该点云划分至E2类;从而完成数据集U点云的第一次分割;
所有点云的第一次分割完成后,判断计算平方误差准则函数值Er是否小于设定值e;
若平方误差准则函数值Er小于设定值e,则输出第一次分割后的E1类和E2类。
优选地,若平方误差准则函数值Er大于设定值e,则继续进行分割;
对于所有被分到E1类的点云,将其x轴坐标值的均值作为第一个聚类中心a1的新第一特征的值,y轴坐标值的均值作为第一个聚类中心a1的新第二特征的值,z轴坐标值的均值作为第一个聚类中心a1的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第一个聚类中心a1的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第一个聚类中心a1的新第五特征的值;对于所有被分到E2类的点云,将其x轴坐标值的均值作为第二个聚类中心a2的新第一特征的值,y轴坐标值的均值作为第二个聚类中心a2的新第二特征的值,z轴坐标值的均值作为第二个聚类中心a2的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第二个聚类中心a2的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第二个聚类中心a2的新第五特征的值;
重新对数据集U分成两类:若点云与更新后第一个聚类中心a1的马氏距离小于其与更新后第二个聚类中心a2的马氏距离,则该点云划分至E1类;若点云与更新后第二个聚类中心a2的马氏距离小于其与更新后第一个聚类中心a1的马氏距离,则该点云划分至E2类;从而完成所述数据集U点云的第二次分割;
重复上述所述数据集U点云在K为2时K-Means聚类算法的第二次分割步骤,直至平方误差准则函数值Er小于设定值e或分割次数达到设置次数为止,输出分割结果,即输出最后一次所述数据集U点云分割后的E1类和E2类。
优选地,利用K-Means聚类算法将所述五维点云数据集分成三类的步骤为:
统计出所述数据集U中每一个所述点云与其他曲面点云的马氏距离中小于Dv的个数N1,其中个数N1最大的点云g选为所述K-Means聚类算法中K为3时的第一个聚类中心b1的初始点;
然后,找到所述数据集U中距离所述第一个聚类中心b1初始点马氏距离最远的点云并算出两者之间马氏距离Dv1;
查找出所述数据集U中与所述第一个聚类中心b1初始点的马氏距离最接近且大于0.9Dv1的点云f,并选取所述点云f为所述K-Means聚类算法中K为3时的第二个聚类中心b2的初始点;
接着,找到所述数据集U中所有点云中与所述第一个聚类中心b1初始点的马氏距离加上与所述第二个聚类中心b2初始点的马氏距离之和的最大值Dv2;
查找出所述数据集U中与所述第一个聚类中心b1初始点的马氏距离加上与所述第二个聚类中心b2初始点的马氏距离之和最接近且大于0.9Dv2的点云l,并选取所述点云l为所述K-Means聚类算法中K为3时的第三个聚类中心b3的初始点,由此完成K为3时K-Means聚类中心初始化;
最后,以平方误差准则函数为K-Means聚类算法K为3时的准则函数,依次比较所述数据集U中每一个点云分别与第一个聚类中心b1初始点、第二个聚类中心b2初始点、第三个聚类中心b3初始点的马氏距离:
若该点云与第一个聚类中心b1初始点的马氏距离最小,则该点云划分至F1类;
若该点云与第二个聚类中心b2初始点的马氏距离最小,则该点云划分至F2类;
若该点云与第三个聚类中心b3初始点的马氏距离最小,则该点云划分至F3类,从而完成所述数据集U中所有点云的第一次分割;
所有点云的第一次分割完成后,判断计算平方误差准则函数值Er是否小于设定值e;
若平方误差准则函数值Er小于设定值e,则输出第一次分割后的F1类、F2类和F3类。
优选地,若平方误差准则函数值Er大于设定值e,则继续进行分割;
对于所有被分到F1类的点云,将其x轴坐标值的均值作为第一个聚类中心b1的新第一特征的值,y轴坐标值的均值作为第一个聚类中心b1的新第二特征的值,z轴坐标值的均值作为第一个聚类中心b1的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第一个聚类中心b1的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第一个聚类中心b1的新第五特征的值;对于所有被分到F2类的点云,将其x轴坐标值的均值作为第二个聚类中心b2的新第一特征的值,y轴坐标值的均值作为第二个聚类中心b2的新第二特征的值,z轴坐标值的均值作为第二个聚类中心b2的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第二个聚类中心b2的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第二个聚类中心b2的新第五特征的值;对于所有被分到F3类的点云,将其x轴坐标值的均值作为第三个聚类中心b3的新第一特征的值,y轴坐标值的均值作为第三个聚类中心b3的新第二特征的值,z轴坐标值的均值作为第三个聚类中心b3的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第三个聚类中心b3的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第三个聚类中心b3的新第五特征的值;
重新对数据集U分成三类:若点云与更新后第一个聚类中心b1的马氏距离最小,则该点云划分至F1类;若点云与更新后第二个聚类中心b2的马氏距离最小,则该点云划分至F2类;若点云与更新后第三个聚类中心b3的马氏距离最小,则该点云划分至F3类,从而完成所述数据集U点云的第二次分割;
重复上述所述数据集U点云在K为3时K-Means聚类算法的第二次分割步骤,直至平方误差准则函数值Er小于设定值e或分割次数达到设置次数为止,输出分割结果,即输出最后一次所述数据集U点云分割后的F1类、F2类和F3类。
优选地,SVM0分类器的训练过程:
所述SVM0分类器选取径向基函数为核函数,点云数据的五个特征分别作为所述SVM0分类器的五个输入量,所述SVM0分类器的训练算法为SMO算法;
对于利用K-Means聚类算法将数据集Q分为A1类和A2类的点云数据,所述A1类的五维点云数据全部标记为1,对于所述A2类的五维点云数据全部标记为-1,并利用该已标定A1类和A2类的点云数据基于SMO算法对SVM0分类器进行第一轮训练;
将辅助训练数据集Z中所有点云数据依次输入至完成第一轮训练的SVM0分类器进行分类并标定;
将被标定的辅助训练数据集Z和已标定的A1类、A2类组合成训练数据集Q',基于SMO算法利用训练数据集Q'重新对SVM0分类器进行第二轮训练;
接着,利用所述完成第二轮训练的SVM0分类器对辅助训练数据集Z重新分类并重新标定;
不断重复上述SVM0分类器的训练以及辅助训练数据集Z的分类并标定的步骤,直至辅助训练数据集Z重新分类并标定的结果不再发生变化为止,此时SVM0分类器的训练结束,并且辅助训练数据集Z被正确分类和标定。
优选地,曲面点云数据分成三类时SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器训练过程:
所述SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器均选取径向基函数为核函数,点云数据的五个特征分别作为SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器的五个输入量,所述SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器的训练算法均为SMO算法;
利用K-Means聚类算法将数据集Q分为B1类、B2类和B3类,若B1类的五维点云数据、B2类的五维点云数据和B3类的五维点云数据同时拟合圆柱面成功,则
训练SVM1分类器:
对于所述C3类的五维点云数据全部标记为-1,所述数据集Q除去所述C3类的其他所有五维点云数据全部标记为1并组成数据集Q1,对所述SVM1分类器基于SMO算法利用已标定的C3类和数据集Q1点云数据进行第一轮训练;
然后,从待重建曲面模型的所有点云数据中除去所述数据集Q剩余的云数据中,均匀采集其中40%的点云数据并组成辅助训练数据集Z1;将辅助训练数据集Z1输入至完成第一轮训练的所述SVM1分类器进行分类并标定;将被标定的辅助训练数据集Z1和已标定的C3类、Q1类组合成训练数据集Q1',基于SMO算法利用训练数据集Q1'重新对所述SVM1分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM1分类器对辅助训练数据集Z1重新分类并重新标定;
不断重复所述SVM1分类器的训练以及辅助训练数据集Z1的分类并标定,直至辅助训练数据集Z1重新分类并标定的结果不再发生变化为止,此时所述SVM1分类器的训练结束,并且将辅助训练数据集Z1中不属于C3类的所有点云数据组成辅助训练数据集Z2;通过已训练完成的所述SVM1分类器对所述数据集S中不属于C3类的所有点云数据组成数据集S1;
训练SVM2分类器:
对于所述C1类的五维点云数据全部标记为-1,所述数据集Q除去所述C1类的其他所有五维点云数据全部标记为1并组成数据集Q2,对所述SVM2分类器基于SMO算法利用已标定的C1类和数据集Q2进行第一轮训练;
将辅助训练数据集Z1输入至完成第一轮训练的所述SVM2分类器进行分类并标定;将被标定的辅助训练数据集Z1和已标定的C1类、Q2类组合成训练数据集Q2',基于SMO算法利用训练数据集Q2'重新对所述SVM2分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM2分类器对辅助训练数据集Z1重新分类并重新标定;
不断重复所述SVM2分类器的训练以及辅助训练数据集Z1的分类并标定,直至辅助训练数据集Z1重新分类并标定的结果不再发生变化为止,此时所述SVM2分类器的训练结束,并且将辅助训练数据集Z1中不属于C1类的所有点云数据组成辅助训练数据集Z3;通过已训练完成的所述SVM2分类器对所述数据集S中不属于C1类的所有点云数据组成数据集S2;
训练SVM3分类器:
对于所述C2类的五维点云数据全部标记为-1,所述数据集Q1除去所述C2类的其他所有五维点云数据全部标记为1并组成数据集C1',对所述SVM3分类器基于SMO算法利用已标定的C2类和数据集C1'进行第一轮训练;
将辅助训练数据集Z2输入至完成第一轮训练的所述SVM3分类器进行分类并标定;将被标定的辅助训练数据集Z2和已标定的C2类、C1'类组合成训练数据集Q3',基于SMO算法利用训练数据集Q3'重新对所述SVM3分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM3分类器对辅助训练数据集Z2重新分类并重新标定;
不断重复所述SVM3分类器的训练以及辅助训练数据集Z2的分类并标定,直至辅助训练数据集Z2重新分类并标定的结果不再发生变化为止,此时所述SVM3分类器的训练结束,并且将辅助训练数据集Z2中不属于C2类的所有点云数据归入到数据集C1';通过已训练完成的所述SVM3分类器对所述数据集S1中不属于C2类的所有点云数据归入到数据集C1';
训练SVM4分类器:
对于所述C1类的五维点云数据全部标记为-1,所述数据集Q1除去所述C1类的其他所有五维点云数据全部标记为1并组成数据集C2”,对所述SVM4分类器基于SMO算法利用已标定的C1类和数据集C2”进行第一轮训练;
将辅助训练数据集Z2输入至完成第一轮训练的所述SVM4分类器进行分类并标定;将被标定的辅助训练数据集Z2和已标定的C1类、C2”类组合成训练数据集Q4',基于SMO算法利用训练数据集Q4'重新对所述SVM4分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM4分类器对辅助训练数据集Z2重新分类并重新标定;
不断重复所述SVM4分类器的训练以及辅助训练数据集Z2的分类并标定,直至辅助训练数据集Z2重新分类并标定的结果不再发生变化为止,此时所述SVM4分类器的训练结束,并且将辅助训练数据集Z2中不属于C1类的所有点云数据归入到数据集C2”;通过已训练完成的所述SVM4分类器对所述数据集S1中不属于C1类的所有点云数据归入到数据集C2”;
训练SVM5分类器:
对于所述C3类的五维点云数据全部标记为-1,所述数据集Q2除去所述C3类的其他所有五维点云数据全部标记为1并组成数据集C2”',对所述SVM5分类器基于SMO算法利用已标定的C3类和数据集C2”'进行第一轮训练;
将辅助训练数据集Z3输入至完成第一轮训练的所述SVM5分类器进行分类并标定;将被标定的辅助训练数据集Z3和已标定的C3类、C2”'类组合成训练数据集Q5',基于SMO算法利用训练数据集Q5'重新对所述SVM5分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM5分类器对辅助训练数据集Z3重新分类并重新标定;
不断重复所述SVM5分类器的训练以及辅助训练数据集Z3的分类并标定,直至辅助训练数据集Z3重新分类并标定的结果不再发生变化为止,此时所述SVM5分类器的训练结束,并且将辅助训练数据集Z3中不属于C3类的所有点云数据归入到数据集C2”';通过已训练完成的所述SVM5分类器对所述数据集S2中不属于C3类的所有点云数据归入到数据集C2”';
将数据集C2”和数据集C2”'组合成数据集C2';
训练SVM6分类器:
对于所述C2类的五维点云数据全部标记为-1,所述数据集Q2除去所述C2类的其他所有五维点云数据全部标记为1并组成数据集C3',对所述SVM6分类器基于SMO算法利用已标定的C2类和数据集C3'进行第一轮训练;
将辅助训练数据集Z3输入至完成第一轮训练的所述SVM6分类器进行分类并标定;将被标定的辅助训练数据集Z3和已标定的C2类、C3'类组合成训练数据集Q6',基于SMO算法利用训练数据集Q6'重新对所述SVM6分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM6分类器对辅助训练数据集Z3重新分类并重新标定;
不断重复所述SVM6分类器的训练以及辅助训练数据集Z3的分类并标定,直至辅助训练数据集Z3重新分类并标定的结果不再发生变化为止,此时所述SVM6分类器的训练结束,并且将辅助训练数据集Z3中不属于C2类的所有点云数据归入到数据集C3';通过已训练完成的所述SVM6分类器对所述数据集S2中不属于C2类的所有点云数据归入到数据集C3'。
所述基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,采用马氏距离作为相似度度量,平方误差准则函数作为准则函数,基于密度的聚类中心初始化,利用K-Means聚类算法,结合最小二乘意义的圆柱面拟合方法,将大规模无标定曲面点云中10%的曲面点云数据进行准确分类并标定,并抽取大规模无标定曲面点云中另外27-36%的曲面点云数据作为半监督训练SVM分类器的辅助训练数据集,选取径向基函数为SVM分类器的核函数,采用SMO算法结合辅助训练数据集对各SVM分类器完成训练,实现了将大规模无标定的曲面点云数据重建为圆柱面的目的,提高了重建圆柱面的正确率和重建精度。
附图说明
附图对本发明做进一步说明,但附图中的内容不构成对本发明的任何限制。
图1是本发明其中一个实施例的针对三分类问题的决策有向无环图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
本实施例的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,如图1所示:
步骤A,通过激光扫描仪获得待重建曲面模型的点云数据组,利用椭球曲面的拟合方法计算出每个曲面点云对应的两个主曲率;选取每个曲面点云的三维坐标值及其两个主曲率作为代表该曲面点云的五个特征,从而获得所述待重建曲面模型的五维点云数据组;
步骤B,对所述五维点云数据组利用最小二乘意义进行圆柱面第一次拟合,根据曲面点云与拟合圆柱面的均方根误差判断拟合是否成功,若拟合成功,则输出拟合结果,曲面点云重建圆柱面完成;
步骤C,若第一次拟合失败,则从所述五维点云数据组中均匀采集其中10%的曲面点云数据,组成数据集Q,对所述数据集Q利用K-Means聚类算法分为两类,该两类分别为数据集A1和数据集A2,然后对所述数据集A1和所述数据集A2点云数据分别利用最小二乘意义进行圆柱面第二次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断数据集Q分割出来的两个曲面是否同时拟合成功,两个曲面同时拟合成功即为圆柱面第二次拟合成功,否则,圆柱面第二次拟合失败;
若圆柱面第二次拟合成功,则从所述待重建曲面模型的五维点云数据组中除去所述数据集Q的那部分点云数据随机抽取30%的点云数据,组成辅助训练数据集Z,利用所述数据集Q和所述辅助训练数据集Z结合半监督学习算法训练SVM0分类器;
所述SVM0分类器训练完成后,所述待重建曲面模型的五维点云数据组中除去所述数据集Q后剩余的点云数据组成分类集S,所述SVM0分类器对所述分类集S中的点云数据分别分入到所述数据集A1和所述数据集A2中;重新对所述数据集A1和所述数据集A2中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由两个圆柱面光滑拼接的曲面;
步骤D,若第二次拟合失败,则对所述数据集Q利用K-Means聚类算法分为三类,该三类分别为数据集B1、数据集B2和数据集B3,然后对所述数据集B1、所述数据集B2和所述数据集B3点云数据分别利用最小二乘意义进行圆柱面第三次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断所述数据集Q分割出来的三个曲面是否同时拟合成功,三个曲面同时拟合成功即为圆柱面第三次拟合成功,否则,圆柱面第三次拟合失败;
若圆柱面第三次拟合成功,则基于三分类问题的决策有向无环图,利用所述数据集Q和所述辅助训练数据集结合半监督学习算法训练SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器;
所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器训练完成后,基于三分类问题的决策有向无环图,综合利用所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器对所述分类集S中的点云数据分别分入到所述数据集B1、所述数据集B2和所述数据集B3;重新对所述数据集B1、所述数据集B2和所述数据集B3中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面;
步骤E,若圆柱面第三次拟合失败但三个曲面中存在一个曲面拟合成功,即所述数据集B1、所述数据集B2和所述数据集B3中的某个数据集拟合成功,则将该拟合成功的数据集中所有点云数据归入到数据集C1中,所述数据集Q除去数据集C1后剩余的点云数据组成数据集R,对所述数据集R利用K-Means聚类算法分为两类,该两类分别为数据集C2和数据集C3,然后对所述数据集C2和所述数据集C3点云数据分别利用最小二乘意义进行圆柱面第四次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断所述数据集C2和所述数据集C3点云数据分别对应的两个曲面是否同时拟合成功,两个曲面同时拟合成功即为圆柱面第四次拟合成功,否则,圆柱面第四次拟合失败;
若圆柱面第四次拟合成功,则基于三分类问题的决策有向无环图,利用所述数据集Q和所述辅助训练数据集结合半监督学习算法训练SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器;
所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器训练完成后,基于三分类问题的决策有向无环图,综合利用所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器对所述分类集S中的点云数据进行分类分别分入所述数据集C1、所述数据集C2和所述数据集C3;重新对所述数据集C1、所述数据集C2和所述数据集C3中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面;
步骤F,若圆柱面第三次拟合时三个曲面同时拟合失败或圆柱面第四次拟合失败,则所述曲面点云数据组不可重建圆柱面,输出无法重建曲面结果。
所述基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,采用马氏距离作为相似度度量,平方误差准则函数作为准则函数,基于密度的聚类中心初始化,利用K-Means聚类算法,结合最小二乘意义的圆柱面拟合方法,将大规模无标定曲面点云中10%的曲面点云数据进行准确分类并标定,并抽取大规模无标定曲面点云中另外27-36%的曲面点云数据作为半监督训练SVM分类器的辅助训练数据集,选取径向基函数为SVM分类器的核函数,采用SMO算法结合辅助训练数据集对SVM分类器完成训练,实现了将大规模无标定的曲面点云数据重建为圆柱面的目的。
提高了重建圆柱面的正确率和重建精度,当整体曲面点云数据组无法一次拟合成功时,将点云数据组分割成两组,利用K-Means聚类算法将所述五维点云数据分成两类,根据曲面点云与拟合圆柱面的均方根误差判断两个曲面是否同时拟合成功;若第二次同时拟合也失败,则将曲面点云数据组分割成三组,利用K-Means聚类算法将所述五维点云数据分成三类,根据曲面点云与拟合圆柱面的均方根误差判断三个曲面是否同时拟合成功,将大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面,分割过程中数据集Q中曲面点云数据的利用率较高,避免分割过程中对点云数据的重复采样,提高了重建圆柱面的效率且统一了对比标准。
在实际工程应用中,一个曲面若需重建为圆柱面,最多仅分割为三个曲面再分别进行圆柱面拟合,否则用多个拟合曲面的拼接来代替原来曲面的简化过程将失去意义。
优选地,待重建曲面模型的五维点云数据定义方法包括:
定义每个点云的第一特征为x轴坐标值,第二特征为y轴坐标值,第三特征为z轴坐标值,第四特征为两个主曲率中的最大曲率r1,第五特征为两个主曲率中的最小曲率r2。两个主曲率的获取方法为以需求解两个主曲率的曲面点云为中心,根据三维欧氏距离选取最靠近该曲面点云的19个曲面点云,加上所需求解两个主曲率的该曲面点云,合计20个曲面点云,利用椭球曲面的拟合方法拟合出一个椭球曲面方程,根据该椭球曲面方程求解出该曲面点云的两个主曲率。
优选地,利用K-Means聚类算法将所述五维点云数据集分成两类的步骤为:
首先,利用K-Means聚类算法进行分类的那一数据集中所有五维点云数据组成数据集U,求解所述数据集U的五维协方差矩阵W,即
计算所述数据集U中任意两个点云p(x1,y1,z1,ra1,rb1)和q(x2,y2,z2,ra2,rb2)之间的马氏距离,即
其中点云p、q均为五维行向量;
求出所述数据集U中所有点云之间的马氏距离,并筛选出最大马氏距离Dmax和最小马氏距离Dmin;
设置密度阈值Dv=Dmin+0.05(Dmax-Dmin),并统计出所述数据集U中每一个点云与其他点云的马氏距离中小于Dv的个数N1,其中个数N1最大的点云g选为所述K-Means聚类算法中K为2时的第一个聚类中心a1的初始点;
然后,找到距离所述第一个聚类中心a1初始点最远的点云并算出两者之间马氏距离Dv1;
查找出与所述第一个聚类中心a1初始点的马氏距离最接近0.8Dv1的点云h,并选取所述点云h为所述K-Means聚类算法中K为2时的第二个聚类中心a2的初始点,由此完成K为2的K-Means聚类中心初始化;
接着以平方误差准则函数为K-Means聚类算法K为2时的准则函数,对数据集U分成两类:若点云与第一个聚类中心a1初始点的马氏距离小于其与第二个聚类中心a2初始点的马氏距离,则该点云划分至E1类;若点云与第二个聚类中心a2初始点的马氏距离小于其与第一个聚类中心a1初始点的马氏距离,则该点云划分至E2类;从而完成数据集U点云的第一次分割;
所有点云的第一次分割完成后,判断计算平方误差准则函数值Er是否小于设定值e;
若平方误差准则函数值Er小于设定值e,则输出第一次分割后的E1类和E2类。
采用马氏距离作为相似度度量,平方误差准则函数作为准则函数,基于密度的聚类中心初始化,利用K-Means聚类算法,对数据集U分成两类:E1类和E2类,完成数据集U点云的第一次分割。
优选地,若平方误差准则函数值Er大于设定值e,则继续进行分割;
对于所有被分到E1类的点云,将其x轴坐标值的均值作为第一个聚类中心a1的新第一特征的值,y轴坐标值的均值作为第一个聚类中心a1的新第二特征的值,z轴坐标值的均值作为第一个聚类中心a1的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第一个聚类中心a1的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第一个聚类中心a1的新第五特征的值;对于所有被分到E2类的点云,将其x轴坐标值的均值作为第二个聚类中心a2的新第一特征的值,y轴坐标值的均值作为第二个聚类中心a2的新第二特征的值,z轴坐标值的均值作为第二个聚类中心a2的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第二个聚类中心a2的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第二个聚类中心a2的新第五特征的值;
重新对数据集U分成两类:若点云与更新后第一个聚类中心a1的马氏距离小于其与更新后第二个聚类中心a2的马氏距离,则该点云划分至E1类;若点云与更新后第二个聚类中心a2的马氏距离小于其与更新后第一个聚类中心a1的马氏距离,则该点云划分至E2类;从而完成所述数据集U点云的第二次分割;
重复上述所述数据集U点云在K为2时K-Means聚类算法的第二次分割步骤,直至平方误差准则函数值Er小于设定值e或分割次数达到设置次数为止,输出分割结果,即输出最后一次所述数据集U点云分割后的E1类和E2类。
优选地,利用K-Means聚类算法将所述五维点云数据集分成三类的步骤为:
统计出所述数据集U中每一个所述点云与其他曲面点云的马氏距离中小于Dv的个数N1,其中个数N1最大的点云g选为所述K-Means聚类算法中K为3时的第一个聚类中心b1的初始点;
然后,找到所述数据集U中距离所述第一个聚类中心b1初始点马氏距离最远的点云并算出两者之间马氏距离Dv1;
查找出所述数据集U中与所述第一个聚类中心b1初始点的马氏距离最接近且大于0.9Dv1的点云f,并选取所述点云f为所述K-Means聚类算法中K为3时的第二个聚类中心b2的初始点;
接着,找到所述数据集U中所有点云中与所述第一个聚类中心b1初始点的马氏距离加上与所述第二个聚类中心b2初始点的马氏距离之和的最大值Dv2;
查找出所述数据集U中与所述第一个聚类中心b1初始点的马氏距离加上与所述第二个聚类中心b2初始点的马氏距离之和最接近且大于0.9Dv2的点云l,并选取所述点云l为所述K-Means聚类算法中K为3时的第三个聚类中心b3的初始点,由此完成K为3时K-Means聚类中心初始化;
最后,以平方误差准则函数为K-Means聚类算法K为3时的准则函数,依次比较所述数据集U中每一个点云分别与第一个聚类中心b1初始点、第二个聚类中心b2初始点、第三个聚类中心b3初始点的马氏距离:
若该点云与第一个聚类中心b1初始点的马氏距离最小,则该点云划分至F1类;
若该点云与第二个聚类中心b2初始点的马氏距离最小,则该点云划分至F2类;
若该点云与第三个聚类中心b3初始点的马氏距离最小,则该点云划分至F3类,从而完成所述数据集U中所有点云的第一次分割;
所有点云的第一次分割完成后,判断计算平方误差准则函数值Er是否小于设定值e;
若平方误差准则函数值Er小于设定值e,则输出第一次分割后的F1类、F2类和F3类。
采用马氏距离作为相似度度量,平方误差准则函数作为准则函数,基于密度的聚类中心初始化,利用K-Means聚类算法,对所述数据集U分成三类:F1类、F2类和F3类,完成所述数据集U中所有点云的第一次分割。
优选地,若平方误差准则函数值Er大于设定值e,则继续进行分割;
对于所有被分到F1类的点云,将其x轴坐标值的均值作为第一个聚类中心b1的新第一特征的值,y轴坐标值的均值作为第一个聚类中心b1的新第二特征的值,z轴坐标值的均值作为第一个聚类中心b1的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第一个聚类中心b1的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第一个聚类中心b1的新第五特征的值;对于所有被分到F2类的点云,将其x轴坐标值的均值作为第二个聚类中心b2的新第一特征的值,y轴坐标值的均值作为第二个聚类中心b2的新第二特征的值,z轴坐标值的均值作为第二个聚类中心b2的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第二个聚类中心b2的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第二个聚类中心b2的新第五特征的值;对于所有被分到F3类的点云,将其x轴坐标值的均值作为第三个聚类中心b3的新第一特征的值,y轴坐标值的均值作为第三个聚类中心b3的新第二特征的值,z轴坐标值的均值作为第三个聚类中心b3的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第三个聚类中心b3的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第三个聚类中心b3的新第五特征的值;
重新对数据集U分成三类:若点云与更新后第一个聚类中心b1的马氏距离最小,则该点云划分至F1类;若点云与更新后第二个聚类中心b2的马氏距离最小,则该点云划分至F2类;若点云与更新后第三个聚类中心b3的马氏距离最小,则该点云划分至F3类,从而完成所述数据集U点云的第二次分割;
重复上述所述数据集U点云在K为3时K-Means聚类算法的第二次分割步骤,直至平方误差准则函数值Er小于设定值e或分割次数达到设置次数为止,输出分割结果,即输出最后一次所述数据集U点云分割后的F1类、F2类和F3类。
优选地,SVM0分类器的训练过程:
所述SVM0分类器选取径向基函数为核函数,点云数据的五个特征分别作为所述SVM0分类器的五个输入量,所述SVM0分类器的训练算法为SMO算法;
对于利用K-Means聚类算法将数据集Q分为A1类和A2类的点云数据,所述A1类的五维点云数据全部标记为1,对于所述A2类的五维点云数据全部标记为-1,并利用该已标定A1类和A2类的点云数据基于SMO算法对SVM0分类器进行第一轮训练;
将辅助训练数据集Z中所有点云数据依次输入至完成第一轮训练的SVM0分类器进行分类并标定;
将被标定的辅助训练数据集Z和已标定的A1类、A2类组合成训练数据集Q',基于SMO算法利用训练数据集Q'重新对SVM0分类器进行第二轮训练;
接着,利用所述完成第二轮训练的SVM0分类器对辅助训练数据集Z重新分类并重新标定;
不断重复上述SVM0分类器的训练以及辅助训练数据集Z的分类并标定的步骤,直至辅助训练数据集Z重新分类并标定的结果不再发生变化为止,此时SVM0分类器的训练结束,并且辅助训练数据集Z被正确分类和标定。
优选地,曲面点云数据分成三类时SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器训练过程:
所述SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器均选取径向基函数为核函数,点云数据的五个特征分别作为SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器的五个输入量,所述SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器的训练算法均为SMO算法;
利用K-Means聚类算法将数据集Q分为B1类、B2类和B3类,若B1类的五维点云数据、B2类的五维点云数据和B3类的五维点云数据同时拟合圆柱面成功,则
训练SVM1分类器:
对于所述C3类的五维点云数据全部标记为-1,所述数据集Q除去所述C3类的其他所有五维点云数据全部标记为1并组成数据集Q1,对所述SVM1分类器基于SMO算法利用已标定的C3类和数据集Q1点云数据进行第一轮训练;
然后,从待重建曲面模型的所有点云数据中除去所述数据集Q剩余的云数据中,均匀采集其中40%的点云数据并组成辅助训练数据集Z1;将辅助训练数据集Z1输入至完成第一轮训练的所述SVM1分类器进行分类并标定;将被标定的辅助训练数据集Z1和已标定的C3类、Q1类组合成训练数据集Q1',基于SMO算法利用训练数据集Q1'重新对所述SVM1分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM1分类器对辅助训练数据集Z1重新分类并重新标定;
不断重复所述SVM1分类器的训练以及辅助训练数据集Z1的分类并标定,直至辅助训练数据集Z1重新分类并标定的结果不再发生变化为止,此时所述SVM1分类器的训练结束,并且将辅助训练数据集Z1中不属于C3类的所有点云数据组成辅助训练数据集Z2;通过已训练完成的所述SVM1分类器对所述数据集S中不属于C3类的所有点云数据组成数据集S1;
训练SVM2分类器:
对于所述C1类的五维点云数据全部标记为-1,所述数据集Q除去所述C1类的其他所有五维点云数据全部标记为1并组成数据集Q2,对所述SVM2分类器基于SMO算法利用已标定的C1类和数据集Q2进行第一轮训练;
将辅助训练数据集Z1输入至完成第一轮训练的所述SVM2分类器进行分类并标定;将被标定的辅助训练数据集Z1和已标定的C1类、Q2类组合成训练数据集Q2',基于SMO算法利用训练数据集Q2'重新对所述SVM2分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM2分类器对辅助训练数据集Z1重新分类并重新标定;
不断重复所述SVM2分类器的训练以及辅助训练数据集Z1的分类并标定,直至辅助训练数据集Z1重新分类并标定的结果不再发生变化为止,此时所述SVM2分类器的训练结束,并且将辅助训练数据集Z1中不属于C1类的所有点云数据组成辅助训练数据集Z3;通过已训练完成的所述SVM2分类器对所述数据集S中不属于C1类的所有点云数据组成数据集S2;
训练SVM3分类器:
对于所述C2类的五维点云数据全部标记为-1,所述数据集Q1除去所述C2类的其他所有五维点云数据全部标记为1并组成数据集C1',对所述SVM3分类器基于SMO算法利用已标定的C2类和数据集C1'进行第一轮训练;
将辅助训练数据集Z2输入至完成第一轮训练的所述SVM3分类器进行分类并标定;将被标定的辅助训练数据集Z2和已标定的C2类、C1'类组合成训练数据集Q3',基于SMO算法利用训练数据集Q3'重新对所述SVM3分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM3分类器对辅助训练数据集Z2重新分类并重新标定;
不断重复所述SVM3分类器的训练以及辅助训练数据集Z2的分类并标定,直至辅助训练数据集Z2重新分类并标定的结果不再发生变化为止,此时所述SVM3分类器的训练结束,并且将辅助训练数据集Z2中不属于C2类的所有点云数据归入到数据集C1';通过已训练完成的所述SVM3分类器对所述数据集S1中不属于C2类的所有点云数据归入到数据集C1';
训练SVM4分类器:
对于所述C1类的五维点云数据全部标记为-1,所述数据集Q1除去所述C1类的其他所有五维点云数据全部标记为1并组成数据集C2”,对所述SVM4分类器基于SMO算法利用已标定的C1类和数据集C2”进行第一轮训练;
将辅助训练数据集Z2输入至完成第一轮训练的所述SVM4分类器进行分类并标定;将被标定的辅助训练数据集Z2和已标定的C1类、C2”类组合成训练数据集Q4',基于SMO算法利用训练数据集Q4'重新对所述SVM4分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM4分类器对辅助训练数据集Z2重新分类并重新标定;
不断重复所述SVM4分类器的训练以及辅助训练数据集Z2的分类并标定,直至辅助训练数据集Z2重新分类并标定的结果不再发生变化为止,此时所述SVM4分类器的训练结束,并且将辅助训练数据集Z2中不属于C1类的所有点云数据归入到数据集C2”;通过已训练完成的所述SVM4分类器对所述数据集S1中不属于C1类的所有点云数据归入到数据集C2”;
训练SVM5分类器:
对于所述C3类的五维点云数据全部标记为-1,所述数据集Q2除去所述C3类的其他所有五维点云数据全部标记为1并组成数据集C2”',对所述SVM5分类器基于SMO算法利用已标定的C3类和数据集C2”'进行第一轮训练;
将辅助训练数据集Z3输入至完成第一轮训练的所述SVM5分类器进行分类并标定;将被标定的辅助训练数据集Z3和已标定的C3类、C2”'类组合成训练数据集Q5',基于SMO算法利用训练数据集Q5'重新对所述SVM5分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM5分类器对辅助训练数据集Z3重新分类并重新标定;
不断重复所述SVM5分类器的训练以及辅助训练数据集Z3的分类并标定,直至辅助训练数据集Z3重新分类并标定的结果不再发生变化为止,此时所述SVM5分类器的训练结束,并且将辅助训练数据集Z3中不属于C3类的所有点云数据归入到数据集C2”';通过已训练完成的所述SVM5分类器对所述数据集S2中不属于C3类的所有点云数据归入到数据集C2”';
将数据集C2”和数据集C2”'组合成数据集C2';
训练SVM6分类器:
对于所述C2类的五维点云数据全部标记为-1,所述数据集Q2除去所述C2类的其他所有五维点云数据全部标记为1并组成数据集C3',对所述SVM6分类器基于SMO算法利用已标定的C2类和数据集C3'进行第一轮训练;
将辅助训练数据集Z3输入至完成第一轮训练的所述SVM6分类器进行分类并标定;将被标定的辅助训练数据集Z3和已标定的C2类、C3'类组合成训练数据集Q6',基于SMO算法利用训练数据集Q6'重新对所述SVM6分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM6分类器对辅助训练数据集Z3重新分类并重新标定;
不断重复所述SVM6分类器的训练以及辅助训练数据集Z3的分类并标定,直至辅助训练数据集Z3重新分类并标定的结果不再发生变化为止,此时所述SVM6分类器的训练结束,并且将辅助训练数据集Z3中不属于C2类的所有点云数据归入到数据集C3';通过已训练完成的所述SVM6分类器对所述数据集S2中不属于C2类的所有点云数据归入到数据集C3'。
以上结合具体实施例描述了本发明的技术原理。这些描述只是为了解释本发明的原理,而不能以任何方式解释为对本发明保护范围的限制。基于此处的解释,本领域的技术人员不需要付出创造性的劳动即可联想到本发明的其它具体实施方式,这些方式都将落入本发明的保护范围之内。
Claims (8)
1.一种基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于:
步骤A,通过激光扫描仪获得待重建曲面模型的点云数据组,利用椭球曲面的拟合方法计算出每个曲面点云对应的两个主曲率;选取每个曲面点云的三维坐标值及其两个主曲率作为代表该曲面点云的五个特征,从而获得所述待重建曲面模型的五维点云数据组;
步骤B,对所述五维点云数据组利用最小二乘意义进行圆柱面第一次拟合,根据曲面点云与拟合圆柱面的均方根误差判断拟合是否成功,若拟合成功,则输出拟合结果,曲面点云重建圆柱面完成;
步骤C,若第一次拟合失败,则从所述五维点云数据组中均匀采集其中10%的曲面点云数据,组成数据集Q,对所述数据集Q利用K-Means聚类算法分为两类,该两类分别为数据集A1和数据集A2,然后对所述数据集A1和所述数据集A2点云数据分别利用最小二乘意义进行圆柱面第二次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断数据集Q分割出来的两个曲面是否同时拟合成功,两个曲面同时拟合成功即为圆柱面第二次拟合成功,否则,圆柱面第二次拟合失败;
若圆柱面第二次拟合成功,则从所述待重建曲面模型的五维点云数据组中除去所述数据集Q的那部分点云数据随机抽取30%的点云数据,组成辅助训练数据集Z,利用所述数据集Q和所述辅助训练数据集Z结合半监督学习算法训练SVM0分类器;
所述SVM0分类器训练完成后,所述待重建曲面模型的五维点云数据组中除去所述数据集Q后剩余的点云数据组成分类集S,所述SVM0分类器对所述分类集S中的点云数据分别分入到所述数据集A1和所述数据集A2中;重新对所述数据集A1和所述数据集A2中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由两个圆柱面光滑拼接的曲面;
步骤D,若第二次拟合失败,则对所述数据集Q利用K-Means聚类算法分为三类,该三类分别为数据集B1、数据集B2和数据集B3,然后对所述数据集B1、所述数据集B2和所述数据集B3点云数据分别利用最小二乘意义进行圆柱面第三次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断所述数据集Q分割出来的三个曲面是否同时拟合成功,三个曲面同时拟合成功即为圆柱面第三次拟合成功,否则,圆柱面第三次拟合失败;
若圆柱面第三次拟合成功,则基于三分类问题的决策有向无环图,利用所述数据集Q和所述辅助训练数据集结合半监督学习算法训练SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器;
所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器训练完成后,基于三分类问题的决策有向无环图,综合利用所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器对所述分类集S中的点云数据分别分入到所述数据集B1、所述数据集B2和所述数据集B3;重新对所述数据集B1、所述数据集B2和所述数据集B3中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面;
步骤E,若圆柱面第三次拟合失败但三个曲面中存在一个曲面拟合成功,即所述数据集B1、所述数据集B2和所述数据集B3中的某个数据集拟合成功,则将该拟合成功的数据集中所有点云数据归入到数据集C1中,所述数据集Q除去数据集C1后剩余的点云数据组成数据集R,对所述数据集R利用K-Means聚类算法分为两类,该两类分别为数据集C2和数据集C3,然后对所述数据集C2和所述数据集C3点云数据分别利用最小二乘意义进行圆柱面第四次拟合,并根据曲面点云与拟合圆柱面的均方根误差判断所述数据集C2和所述数据集C3点云数据分别对应的两个曲面是否同时拟合成功,两个曲面同时拟合成功即为圆柱面第四次拟合成功,否则,圆柱面第四次拟合失败;
若圆柱面第四次拟合成功,则基于三分类问题的决策有向无环图,利用所述数据集Q和所述辅助训练数据集结合半监督学习算法训练SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器;
所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器训练完成后,基于三分类问题的决策有向无环图,综合利用所述SVM1分类器、所述SVM2分类器、所述SVM3分类器、所述SVM4分类器、所述SVM5分类器和所述SVM6分类器对所述分类集S中的点云数据进行分类分别分入所述数据集C1、所述数据集C2和所述数据集C3;重新对所述数据集C1、所述数据集C2和所述数据集C3中点云数据分别利用最小二乘意义进行圆柱面拟合,最终完成大规模无标定曲面点云数据重建为由三个圆柱面光滑拼接的曲面;
步骤F,若圆柱面第三次拟合时三个曲面同时拟合失败或圆柱面第四次拟合失败,则所述曲面点云数据组不可重建圆柱面,输出无法重建曲面结果。
2.根据权利要求1所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于,待重建曲面模型的五维点云数据定义方法包括:
定义每个点云的第一特征为x轴坐标值,第二特征为y轴坐标值,第三特征为z轴坐标值,第四特征为两个主曲率中的最大曲率r1,第五特征为两个主曲率中的最小曲率r2。
3.根据权利要求2所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于,利用K-Means聚类算法将所述五维点云数据集分成两类的步骤为:
首先,利用K-Means聚类算法进行分类的那一数据集中所有五维点云数据组成数据集U,求解所述数据集U的五维协方差矩阵W,即
<mrow>
<mi>W</mi>
<mo>=</mo>
<mfenced open = "[" close = "]">
<mtable>
<mtr>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<mi>y</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<mi>z</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>x</mi>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>y</mi>
<mo>,</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>y</mi>
<mo>,</mo>
<mi>y</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>y</mi>
<mo>,</mo>
<mi>z</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>y</mi>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>y</mi>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mo>,</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mo>,</mo>
<mi>y</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mo>,</mo>
<mi>z</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<mi>z</mi>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<mi>y</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<mi>z</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>x</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<mi>z</mi>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>1</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
<mtd>
<mrow>
<mi>cov</mi>
<mrow>
<mo>(</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>,</mo>
<msub>
<mi>r</mi>
<mn>2</mn>
</msub>
<mo>)</mo>
</mrow>
</mrow>
</mtd>
</mtr>
</mtable>
</mfenced>
</mrow>
计算所述数据集U中任意两个点云p(x1,y1,z1,ra1,rb1)和q(x2,y2,z2,ra2,rb2)之间的马氏距离,即
<mrow>
<mi>d</mi>
<mrow>
<mo>(</mo>
<mi>p</mi>
<mo>,</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
<mo>=</mo>
<msqrt>
<mrow>
<mo>(</mo>
<mi>p</mi>
<mo>-</mo>
<mi>q</mi>
<mo>)</mo>
<msup>
<mi>S</mi>
<mrow>
<mo>-</mo>
<mn>1</mn>
</mrow>
</msup>
<msup>
<mrow>
<mo>(</mo>
<mi>p</mi>
<mo>-</mo>
<mi>q</mi>
<mo>)</mo>
</mrow>
<mi>T</mi>
</msup>
</mrow>
</msqrt>
</mrow>
其中点云p、q均为五维行向量;
求出所述数据集U中所有点云之间的马氏距离,并筛选出最大马氏距离Dmax和最小马氏距离Dmin;
设置密度阈值Dv=Dmin+0.05(Dmax-Dmin),并统计出所述数据集U中每一个点云与其他点云的马氏距离中小于Dv的个数N1,其中个数N1最大的点云g选为所述K-Means聚类算法中K为2时的第一个聚类中心a1的初始点;
然后,找到距离所述第一个聚类中心a1初始点最远的点云并算出两者之间马氏距离Dv1;
查找出与所述第一个聚类中心a1初始点的马氏距离最接近0.8Dv1的点云h,并选取所述点云h为所述K-Means聚类算法中K为2时的第二个聚类中心a2的初始点,由此完成K为2的K-Means聚类中心初始化;
接着以平方误差准则函数为K-Means聚类算法K为2时的准则函数,对数据集U分成两类:若点云与第一个聚类中心a1初始点的马氏距离小于其与第二个聚类中心a2初始点的马氏距离,则该点云划分至E1类;若点云与第二个聚类中心a2初始点的马氏距离小于其与第一个聚类中心a1初始点的马氏距离,则该点云划分至E2类;从而完成数据集U点云的第一次分割;
所有点云的第一次分割完成后,判断计算平方误差准则函数值Er是否小于设定值e;
若平方误差准则函数值Er小于设定值e,则输出第一次分割后的E1类和E2类。
4.根据权利要求3所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于:
若平方误差准则函数值Er大于设定值e,则继续进行分割;
对于所有被分到E1类的点云,将其x轴坐标值的均值作为第一个聚类中心a1的新第一特征的值,y轴坐标值的均值作为第一个聚类中心a1的新第二特征的值,z轴坐标值的均值作为第一个聚类中心a1的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第一个聚类中心a1的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第一个聚类中心a1的新第五特征的值;对于所有被分到E2类的点云,将其x轴坐标值的均值作为第二个聚类中心a2的新第一特征的值,y轴坐标值的均值作为第二个聚类中心a2的新第二特征的值,z轴坐标值的均值作为第二个聚类中心a2的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第二个聚类中心a2的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第二个聚类中心a2的新第五特征的值;
重新对数据集U分成两类:若点云与更新后第一个聚类中心a1的马氏距离小于其与更新后第二个聚类中心a2的马氏距离,则该点云划分至E1类;若点云与更新后第二个聚类中心a2的马氏距离小于其与更新后第一个聚类中心a1的马氏距离,则该点云划分至E2类;从而完成所述数据集U点云的第二次分割;
重复上述所述数据集U点云在K为2时K-Means聚类算法的第二次分割步骤,直至平方误差准则函数值Er小于设定值e或分割次数达到设置次数为止,输出分割结果,即输出最后一次所述数据集U点云分割后的E1类和E2类。
5.根据权利要求3所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于,利用K-Means聚类算法将所述五维点云数据集分成三类的步骤为:
统计出所述数据集U中每一个所述点云与其他曲面点云的马氏距离中小于Dv的个数N1,其中个数N1最大的点云g选为所述K-Means聚类算法中K为3时的第一个聚类中心b1的初始点;
然后,找到所述数据集U中距离所述第一个聚类中心b1初始点马氏距离最远的点云并算出两者之间马氏距离Dv1;
查找出所述数据集U中与所述第一个聚类中心b1初始点的马氏距离最接近且大于0.9Dv1的点云f,并选取所述点云f为所述K-Means聚类算法中K为3时的第二个聚类中心b2的初始点;
接着,找到所述数据集U中所有点云中与所述第一个聚类中心b1初始点的马氏距离加上与所述第二个聚类中心b2初始点的马氏距离之和的最大值Dv2;
查找出所述数据集U中与所述第一个聚类中心b1初始点的马氏距离加上与所述第二个聚类中心b2初始点的马氏距离之和最接近且大于0.9Dv2的点云l,并选取所述点云l为所述K-Means聚类算法中K为3时的第三个聚类中心b3的初始点,由此完成K为3时K-Means聚类中心初始化;
最后,以平方误差准则函数为K-Means聚类算法K为3时的准则函数,依次比较所述数据集U中每一个点云分别与第一个聚类中心b1初始点、第二个聚类中心b2初始点、第三个聚类中心b3初始点的马氏距离:
若该点云与第一个聚类中心b1初始点的马氏距离最小,则该点云划分至F1类;
若该点云与第二个聚类中心b2初始点的马氏距离最小,则该点云划分至F2类;
若该点云与第三个聚类中心b3初始点的马氏距离最小,则该点云划分至F3类,从而完成所述数据集U中所有点云的第一次分割;
所有点云的第一次分割完成后,判断计算平方误差准则函数值Er是否小于设定值e;
若平方误差准则函数值Er小于设定值e,则输出第一次分割后的F1类、F2类和F3类。
6.根据权利要求5所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于:
若平方误差准则函数值Er大于设定值e,则继续进行分割;
对于所有被分到F1类的点云,将其x轴坐标值的均值作为第一个聚类中心b1的新第一特征的值,y轴坐标值的均值作为第一个聚类中心b1的新第二特征的值,z轴坐标值的均值作为第一个聚类中心b1的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第一个聚类中心b1的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第一个聚类中心b1的新第五特征的值;对于所有被分到F2类的点云,将其x轴坐标值的均值作为第二个聚类中心b2的新第一特征的值,y轴坐标值的均值作为第二个聚类中心b2的新第二特征的值,z轴坐标值的均值作为第二个聚类中心b2的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第二个聚类中心b2的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第二个聚类中心b2的新第五特征的值;对于所有被分到F3类的点云,将其x轴坐标值的均值作为第三个聚类中心b3的新第一特征的值,y轴坐标值的均值作为第三个聚类中心b3的新第二特征的值,z轴坐标值的均值作为第三个聚类中心b3的新第三特征的值,两个主曲率中的最大曲率r1的均值作为第三个聚类中心b3的新第四特征的值,两个主曲率中的最小曲率r2的均值作为第三个聚类中心b3的新第五特征的值;
重新对数据集U分成三类:若点云与更新后第一个聚类中心b1的马氏距离最小,则该点云划分至F1类;若点云与更新后第二个聚类中心b2的马氏距离最小,则该点云划分至F2类;若点云与更新后第三个聚类中心b3的马氏距离最小,则该点云划分至F3类,从而完成所述数据集U点云的第二次分割;
重复上述所述数据集U点云在K为3时K-Means聚类算法的第二次分割步骤,直至平方误差准则函数值Er小于设定值e或分割次数达到设置次数为止,输出分割结果,即输出最后一次所述数据集U点云分割后的F1类、F2类和F3类。
7.根据权利要求1所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于,SVM0分类器的训练过程:
所述SVM0分类器选取径向基函数为核函数,点云数据的五个特征分别作为所述SVM0分类器的五个输入量,所述SVM0分类器的训练算法为SMO算法;
对于利用K-Means聚类算法将数据集Q分为A1类和A2类的点云数据,所述A1类的五维点云数据全部标记为1,对于所述A2类的五维点云数据全部标记为-1,并利用该已标定A1类和A2类的点云数据基于SMO算法对SVM0分类器进行第一轮训练;
将辅助训练数据集Z中所有点云数据依次输入至完成第一轮训练的SVM0分类器进行分类并标定;
将被标定的辅助训练数据集Z和已标定的A1类、A2类组合成训练数据集Q',基于SMO算法利用训练数据集Q'重新对SVM0分类器进行第二轮训练;
接着,利用所述完成第二轮训练的SVM0分类器对辅助训练数据集Z重新分类并重新标定;
不断重复上述SVM0分类器的训练以及辅助训练数据集Z的分类并标定的步骤,直至辅助训练数据集Z重新分类并标定的结果不再发生变化为止,此时SVM0分类器的训练结束,并且辅助训练数据集Z被正确分类和标定。
8.根据权利要求1所述的基于SVM与K-Means的大规模无标定曲面点云重建圆柱面方法,其特征在于,曲面点云数据分成三类时SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器训练过程:
所述SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器均选取径向基函数为核函数,点云数据的五个特征分别作为SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器的五个输入量,所述SVM1分类器、SVM2分类器、SVM3分类器、SVM4分类器、SVM5分类器和SVM6分类器的训练算法均为SMO算法;
利用K-Means聚类算法将数据集Q分为B1类、B2类和B3类,若B1类的五维点云数据、B2类的五维点云数据和B3类的五维点云数据同时拟合圆柱面成功,则
训练SVM1分类器:
对于所述C3类的五维点云数据全部标记为-1,所述数据集Q除去所述C3类的其他所有五维点云数据全部标记为1并组成数据集Q1,对所述SVM1分类器基于SMO算法利用已标定的C3类和数据集Q1点云数据进行第一轮训练;
然后,从待重建曲面模型的所有点云数据中除去所述数据集Q剩余的云数据中,均匀采集其中40%的点云数据并组成辅助训练数据集Z1;将辅助训练数据集Z1输入至完成第一轮训练的所述SVM1分类器进行分类并标定;将被标定的辅助训练数据集Z1和已标定的C3类、Q1类组合成训练数据集Q1',基于SMO算法利用训练数据集Q1'重新对所述SVM1分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM1分类器对辅助训练数据集Z1重新分类并重新标定;
不断重复所述SVM1分类器的训练以及辅助训练数据集Z1的分类并标定,直至辅助训练数据集Z1重新分类并标定的结果不再发生变化为止,此时所述SVM1分类器的训练结束,并且将辅助训练数据集Z1中不属于C3类的所有点云数据组成辅助训练数据集Z2;通过已训练完成的所述SVM1分类器对所述数据集S中不属于C3类的所有点云数据组成数据集S1;
训练SVM2分类器:
对于所述C1类的五维点云数据全部标记为-1,所述数据集Q除去所述C1类的其他所有五维点云数据全部标记为1并组成数据集Q2,对所述SVM2分类器基于SMO算法利用已标定的C1类和数据集Q2进行第一轮训练;
将辅助训练数据集Z1输入至完成第一轮训练的所述SVM2分类器进行分类并标定;将被标定的辅助训练数据集Z1和已标定的C1类、Q2类组合成训练数据集Q2',基于SMO算法利用训练数据集Q2'重新对所述SVM2分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM2分类器对辅助训练数据集Z1重新分类并重新标定;
不断重复所述SVM2分类器的训练以及辅助训练数据集Z1的分类并标定,直至辅助训练数据集Z1重新分类并标定的结果不再发生变化为止,此时所述SVM2分类器的训练结束,并且将辅助训练数据集Z1中不属于C1类的所有点云数据组成辅助训练数据集Z3;通过已训练完成的所述SVM2分类器对所述数据集S中不属于C1类的所有点云数据组成数据集S2;
训练SVM3分类器:
对于所述C2类的五维点云数据全部标记为-1,所述数据集Q1除去所述C2类的其他所有五维点云数据全部标记为1并组成数据集C1',对所述SVM3分类器基于SMO算法利用已标定的C2类和数据集C1'进行第一轮训练;
将辅助训练数据集Z2输入至完成第一轮训练的所述SVM3分类器进行分类并标定;将被标定的辅助训练数据集Z2和已标定的C2类、C1'类组合成训练数据集Q3',基于SMO算法利用训练数据集Q3'重新对所述SVM3分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM3分类器对辅助训练数据集Z2重新分类并重新标定;
不断重复所述SVM3分类器的训练以及辅助训练数据集Z2的分类并标定,直至辅助训练数据集Z2重新分类并标定的结果不再发生变化为止,此时所述SVM3分类器的训练结束,并且将辅助训练数据集Z2中不属于C2类的所有点云数据归入到数据集C1';通过已训练完成的所述SVM3分类器对所述数据集S1中不属于C2类的所有点云数据归入到数据集C1';
训练SVM4分类器:
对于所述C1类的五维点云数据全部标记为-1,所述数据集Q1除去所述C1类的其他所有五维点云数据全部标记为1并组成数据集C2”,对所述SVM4分类器基于SMO算法利用已标定的C1类和数据集C2”进行第一轮训练;
将辅助训练数据集Z2输入至完成第一轮训练的所述SVM4分类器进行分类并标定;将被标定的辅助训练数据集Z2和已标定的C1类、C2”类组合成训练数据集Q4',基于SMO算法利用训练数据集Q4'重新对所述SVM4分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM4分类器对辅助训练数据集Z2重新分类并重新标定;
不断重复所述SVM4分类器的训练以及辅助训练数据集Z2的分类并标定,直至辅助训练数据集Z2重新分类并标定的结果不再发生变化为止,此时所述SVM4分类器的训练结束,并且将辅助训练数据集Z2中不属于C1类的所有点云数据归入到数据集C2”;通过已训练完成的所述SVM4分类器对所述数据集S1中不属于C1类的所有点云数据归入到数据集C2”;
训练SVM5分类器:
对于所述C3类的五维点云数据全部标记为-1,所述数据集Q2除去所述C3类的其他所有五维点云数据全部标记为1并组成数据集C2”',对所述SVM5分类器基于SMO算法利用已标定的C3类和数据集C2”'进行第一轮训练;
将辅助训练数据集Z3输入至完成第一轮训练的所述SVM5分类器进行分类并标定;将被标定的辅助训练数据集Z3和已标定的C3类、C2”'类组合成训练数据集Q5',基于SMO算法利用训练数据集Q5'重新对所述SVM5分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM5分类器对辅助训练数据集Z3重新分类并重新标定;
不断重复所述SVM5分类器的训练以及辅助训练数据集Z3的分类并标定,直至辅助训练数据集Z3重新分类并标定的结果不再发生变化为止,此时所述SVM5分类器的训练结束,并且将辅助训练数据集Z3中不属于C3类的所有点云数据归入到数据集C2”';通过已训练完成的所述SVM5分类器对所述数据集S2中不属于C3类的所有点云数据归入到数据集C2”';
将数据集C2”和数据集C2”'组合成数据集C2';
训练SVM6分类器:
对于所述C2类的五维点云数据全部标记为-1,所述数据集Q2除去所述C2类的其他所有五维点云数据全部标记为1并组成数据集C3',对所述SVM6分类器基于SMO算法利用已标定的C2类和数据集C3'进行第一轮训练;
将辅助训练数据集Z3输入至完成第一轮训练的所述SVM6分类器进行分类并标定;将被标定的辅助训练数据集Z3和已标定的C2类、C3'类组合成训练数据集Q6',基于SMO算法利用训练数据集Q6'重新对所述SVM6分类器进行第二轮训练;
接着,利用所述完成第二轮训练的所述SVM6分类器对辅助训练数据集Z3重新分类并重新标定;
不断重复所述SVM6分类器的训练以及辅助训练数据集Z3的分类并标定,直至辅助训练数据集Z3重新分类并标定的结果不再发生变化为止,此时所述SVM6分类器的训练结束,并且将辅助训练数据集Z3中不属于C2类的所有点云数据归入到数据集C3';通过已训练完成的所述SVM6分类器对所述数据集S2中不属于C2类的所有点云数据归入到数据集C3'。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710708685.9A CN107492148B (zh) | 2017-08-17 | 2017-08-17 | 基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710708685.9A CN107492148B (zh) | 2017-08-17 | 2017-08-17 | 基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107492148A true CN107492148A (zh) | 2017-12-19 |
CN107492148B CN107492148B (zh) | 2018-03-27 |
Family
ID=60646393
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710708685.9A Expired - Fee Related CN107492148B (zh) | 2017-08-17 | 2017-08-17 | 基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107492148B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108551709A (zh) * | 2018-04-26 | 2018-09-18 | 南昌航空大学 | 一种复杂环境下多核有向无环图支持向量机控制的路灯调光方法 |
CN113188570A (zh) * | 2021-04-27 | 2021-07-30 | 西南石油大学 | 一种基于支持向量分类机和k邻近法的随钻测斜仪姿态误差标定方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533529A (zh) * | 2009-01-23 | 2009-09-16 | 北京建筑工程学院 | 基于深度图像的三维空间数据处理方法与装置 |
CN103793939A (zh) * | 2013-07-29 | 2014-05-14 | 北京正安融翰技术有限公司 | 大规模点云数据的局部增长式曲面重建方法 |
US20150138310A1 (en) * | 2013-11-19 | 2015-05-21 | Nokia Corporation | Automatic scene parsing |
US20170011537A1 (en) * | 2015-07-10 | 2017-01-12 | Pixar | Manipulation of splines based on a summary spline |
-
2017
- 2017-08-17 CN CN201710708685.9A patent/CN107492148B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101533529A (zh) * | 2009-01-23 | 2009-09-16 | 北京建筑工程学院 | 基于深度图像的三维空间数据处理方法与装置 |
CN103793939A (zh) * | 2013-07-29 | 2014-05-14 | 北京正安融翰技术有限公司 | 大规模点云数据的局部增长式曲面重建方法 |
US20150138310A1 (en) * | 2013-11-19 | 2015-05-21 | Nokia Corporation | Automatic scene parsing |
US20170011537A1 (en) * | 2015-07-10 | 2017-01-12 | Pixar | Manipulation of splines based on a summary spline |
Non-Patent Citations (4)
Title |
---|
CHU-HUA HUANG等: "A multiscale-contour-based interpolation framework for generating a time-varying quasi-dense point cloud sequence", 《FRONTIERS OF INFORMATION TECHNOLOGY & ELECTRONIC ENGINEERING》 * |
JIAN-ZONG WANG等: "Optimizing storage performance in public cloud platforms", 《JOURNAL OF ZHEJIANG UNIVERSITY-SCIENCE C(COMPUTERS & ELECTRONICS)》 * |
武剑洁等: "一种基于模糊聚类的海量测量数据简化方法", 《工程图学学报》 * |
聂建辉等: "针对密集点云的快速曲面重建算法", 《计算机辅助设计与图形学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108551709A (zh) * | 2018-04-26 | 2018-09-18 | 南昌航空大学 | 一种复杂环境下多核有向无环图支持向量机控制的路灯调光方法 |
CN113188570A (zh) * | 2021-04-27 | 2021-07-30 | 西南石油大学 | 一种基于支持向量分类机和k邻近法的随钻测斜仪姿态误差标定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107492148B (zh) | 2018-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106529569B (zh) | 基于深度学习的三维模型三角面特征学习分类方法及装置 | |
CN104143210B (zh) | 一种多尺度法向特征点云配准方法 | |
CA2858166C (en) | Method and system for characterising plant phenotype | |
CN109118574A (zh) | 一种基于三维特征提取的快速逆向建模方法 | |
CN103021029B (zh) | 一种三维模型构件类别的自动标注方法 | |
CN103605970A (zh) | 一种基于机器学习的图纸建筑元素识别方法及系统 | |
CN105574527A (zh) | 一种基于局部特征学习的快速物体检测方法 | |
US20160138914A1 (en) | System and method for analyzing data | |
CN110222642A (zh) | 一种基于全局图聚类的平面建筑构件点云轮廓提取方法 | |
CN105046694A (zh) | 一种基于曲面拟合系数特征的点云快速配准方法 | |
CN101937453B (zh) | 一种基于加权拓扑约束比较的三维模型检索方法 | |
CN107730542A (zh) | 锥束计算机断层扫描图像对应与配准方法 | |
CN110119772B (zh) | 一种基于几何形状特征融合的三维模型分类方法 | |
CN103632371A (zh) | 基于兼容性网格分割的骨骼参数计算方法 | |
CN107492148B (zh) | 基于SVM与K‑Means的大规模无标定曲面点云重建圆柱面方法 | |
CN113988203A (zh) | 一种基于深度学习的轨迹序列聚类方法 | |
CN103839274B (zh) | 一种基于几何比例关系的扩展目标跟踪方法 | |
CN110348478B (zh) | 一种基于形状分类与组合的室外点云场景中树木提取方法 | |
CN114511587A (zh) | 一种ct图像的标记方法、系统、介质及设备 | |
CN107657262B (zh) | 一种计算机自动分类精度评价方法 | |
CN106980878A (zh) | 三维模型几何风格的确定方法及装置 | |
CN115588178A (zh) | 一种高精地图要素自动化提取的方法 | |
CN109785261A (zh) | 一种基于灰度体元模型的机载lidar三维滤波方法 | |
CN113011510B (zh) | 一种支气管分级及模型训练方法、装置及电子设备 | |
CN110533781B (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180327 Termination date: 20180817 |