[发明专利]一种基于协方差矩阵和投影映射的点云特征曲线提取方法有效
申请号: | 201710389006.6 | 申请日: | 2017-05-26 |
公开(公告)号: | CN107274423B | 公开(公告)日: | 2020-06-26 |
发明(设计)人: | 熊风光;贺彤;霍旺;况立群;韩燮 | 申请(专利权)人: | 中北大学 |
主分类号: | G06T7/13 | 分类号: | G06T7/13;G06T7/11;G06T7/187;G06T15/00;G06K9/62 |
代理公司: | 山西五维专利事务所(有限公司) 14105 | 代理人: | 茹牡花 |
地址: | 030051*** | 国省代码: | 山西;14 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 协方差 矩阵 投影 映射 特征 曲线 提取 方法 | ||
1.一种基于协方差矩阵和投影映射的点云特征曲线提取方法,其特征在于,所述特征曲线提取方法包括以下步骤:
步骤1,对输入的点云数据source计算出点云表面的分辨率mr,计算出每个点的协方差矩阵的最大特征值作为该点的强度intensity;
步骤2,在点云数据source找到第一个强度intensity大于阈值t1的点作为特征点,以该点为种子点进行区域增长,寻找更多符合条件的特征点,将其加入到同一个点集中;直到区域无法增长,集合作为第一个聚类;继续寻找新的种子点,进行区域增长,生成新的聚类,直到遍历完全部点云数据;经过上述骤,点云数据被划分为多个聚类,将这些聚类作为阈值t1条件下的一个聚类集合cluster_list1;
步骤3,根据步骤2同样求出阈值t2且t1t2条件下的一个聚类集合cluster_list2;根据两个聚类集合中的每个聚类的重合度关系,判断是否将聚类融合;最终形成一个特征更全面的聚类集合cluster_list;
步骤4,取出聚类集合cluster_list中的一个聚类,根据聚类中的第一个点经过计算协方差矩阵的特征值特征向量、修正法向量和主方向、寻找预测点、按权重计算新的关键特征点、将关键特征点投影至最近局部曲面一系列操作生成了一个在模型表面的连接点;以这个连接点为起点同样经过上述生成连接点的步骤不断生成新的连接点,直到无法生成新的连接点;这样就得到一个有序的点的集合,即为一条特征线;重新选取聚类中的点,继续生成特征线,直到遍历聚类内全部的点;
步骤5,选取聚类集合cluster_list中的其他聚类,根据步骤4继续生成特征线,直到聚类集合中的所有集合都已生成特征线;其得到的全部的特征线就是模型的特征线;
所述步骤4中,取出聚类集合cluster_list中的一个聚类,根据聚类中的第一个点经过计算协方差矩阵的特征值特征向量、修正法向量和主方向、寻找预测点、按权重计算新的关键特征点、将关键特征点投影至最近局部曲面一系列操作生成了一个在模型表面的连接点;以这个连接点为起点同样经过上述生成连接点的步骤不断生成新的连接点,直到无法生成新的连接点;这样就得到一个有序的点的集合,即为一条特征线;重新选取聚类中的点,继续生成特征线,直到遍历聚类内全部的点,包括:
在聚类集合cluster_list的一个聚类中生成特征线可由步骤4.1至步骤4.10实现:
首先设特征点的聚类集合cluster_list={clustera},a=1,2,…;
步骤4.1,设有一个空的种子点队列、线段连接点的列表和特征线列表,分别记为seed_list,point_list,line_list;
步骤4.2,在特征点聚类的集合cluster_list中选取一个聚类clustera,将该聚类中的第一个点p作为种子点加入种子点队列seed_list中,记为seed0,同时设置为当前种子点,记为pseed_curr,即pseed_curr=seed0;
步骤4.3,在当前聚类clustera中,以当前种子点pseed_curr为中心,搜索半径为r1范围内的邻域点,记为N(pseed_curr),N(pseed_curr)={pb|pb∈clustera,‖pb-p‖≤r1};计算点pseed_curr的协方差矩阵,取最大特征值对应的特征向量作为当前种子点pseed_curr的主方向,记为取最小特征值对应得特征向量作为当前种子点pseed_curr的法向量,记为
步骤4.4,修正法向量和主方向的方向;判断若是,则法向量其中是点云中距离当前种子点pseed_curr最近的点的法向量,是点pseed_curr的法向量;若seed_list2,即种子点队列中只有一个点,不需要修正主方向;否则,判断是否成立,若是,则主方向其中是当前种子点pseed_curr的主方向;
步骤4.5,根据当前种子点pseed_curr及其邻域点N(pseed_curr)建立局部坐标系;以当前种子点pseed_curr的法向量作为w轴,主方向作为u轴,即为v轴的正方向,形成点pseed_curr的局部坐标系,记为(pseed_curr,u,v,w);平面upseed_currv即为当前种子点pseed_curr邻域内的曲面在点pseed_curr处的切平面;
步骤4.6,利用公式(1),将点pseed_curr的邻域点{p0,p1,…,pb,…,pn}(pb∈N(pseed_curr))投影到平面upseed_currv上,对应的投影后的点记为{q0,q1,…,qb,…,qn};按照公式(2)计算qb和点pseed_curr的连线与坐标轴u轴的夹角αb,将αb≤45°的点加入待选预测点集合,记为pre_points,且将45°≤αb≤90°的点标记为已检测;将pre_points中的点按照与点pseed_curr的距离排序,选择距离最近的点作为预测点,记为ppre,并标记已检测;判断是否成立,若是,则主方向其中是预测点ppre的主方向;
步骤4.7,计算关键特征点;根据公式(3)计算关键特征点,记为pkey;其中d_step是自定义的步长,weight是由当前种子点pseed_curr的主方向和预测点ppre的主方向按照公式(4)计算的方向权重,是当前种子点pseed_curr的主方向,是预测点ppre的主方向;
pkey=pseed_curr+weight*d_step (3)
步骤4.8,计算线段的连接点lc,c=0,1,…;在点云中以关键特征点pkey为中心,搜索半径为r2范围的邻域点,从中选取距离点pkey最近的点,用移动最小二乘法拟合该点处的局部曲面,并将关键特征点pkey投影到局部曲面上,得到线段的连接点lc,并加入连接点的列表point_list中;并将第一个连接点l0的主方向保存,记为line_dir;
步骤4.9,将得到的连接点lc加入种子点队列seed_list中,并设置为当前种子点,循环执行步骤4.3–步骤4.9,继续生成新的连接点,直到步骤4.5中找不到预测点,则当前方向line_dir上特征线的连接点提取结束,得到point_list,生成线段,记为L1;清空point_list;依上述步骤,计算相反方向-line_dir,生成线段,记为L2;连接线段L1与L2,生成当前聚类中的一条完整的特征线,将其加入line_list;
步骤4.10,计算该聚类clusterb中未被检测的点数所占聚类中全部点数的比值;若小于一定阈值,则认为该聚类中的全部特征线提取完成;否则,在未被检测到的点中选取新的起始点作为新的种子点,循环执行步骤4.3–步骤4.10,继续生成特征线。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中北大学,未经中北大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710389006.6/1.html,转载请声明来源钻瓜专利网。