基于边界点迭代的点云修复方法

文档序号:29466808发布日期:2022-04-02 03:36阅读:195来源:国知局
基于边界点迭代的点云修复方法

1.本发明涉及一种基于边界点迭代的点云修复方法。


背景技术:

2.现有的点云孔洞进行修复的方法,存在速度慢、效率低、效果差的问题。


技术实现要素:

3.本发明的目的在于提供一种基于边界点迭代的点云修复方法。
4.为解决上述问题,本发明提供一种基于边界点迭代的点云修复方法,包括:
5.步骤s1,对带有孔洞的点云进行孔洞边界的提取,然后通过边界点与边界点的距离关系对孔洞边界点集进行排序,对排序后的边界点集进行平滑操作;
6.步骤s2,在优化孔洞边界后便开始孔洞的修复,通过对边界点的邻域拟合切平面得到填充区域的方向,应用多个尺度下的平面进行加权求和,然后求边界点邻域点与点间距离的高斯分布,得到距离参数,用来控制填充点的位置;
7.步骤s3,按排序后的当前边界点与下个边界点的方向为依据,直接生成新点,距离长度略小于当前边界点与下一个边界点的距离;通过判断孔洞邻域的表面趋势,找到其最大变化趋势与最小变化趋势来控制修复表面的整体变化趋势,以最终完成修复。
8.进一步的,在上述方法中,对带有孔洞的点云进行孔洞边界的提取,然后通过边界点与边界点的距离关系对孔洞边界点集进行排序,对排序后的边界点集进行平滑操作,包括:
9.step1:输入带孔洞的原始点云,通过改进的质心法来获取点云的边界点集;再对边界点集进行欧式聚类得到孔洞边界点集q;
10.step2:对孔洞边界点进行平滑优化。
11.进一步的,在上述方法中,step2,:对孔洞边界点进行平滑优化,包括:
12.首先,对孔洞边界点进行排序,设当前点为p,p∈q,在q中搜索距离p欧式距离最近的点做为下一个节点next_p,next_p∈q;在以next_p做为当前节点p,继续做相同的搜索操作;对整个集合q进行一个排序,然后在排序后对整个边界做平滑优化,若两节点间的距离过大,则在中间加上适当数量的点;若两边界节点间的距离过于小,则剔除该节点。
13.进一步的,在上述方法中,步骤s2,在优化孔洞边界后便开始孔洞的修复,通过对边界点的邻域拟合切平面得到填充区域的方向,应用多个尺度下的平面进行加权求和,然后求边界点邻域点与点间距离的高斯分布,得到距离参数,用来控制填充点的位置,包括:
14.step3:将经过step2处理过后的点云做为输入,进行点云的修复,在输入平化孔洞边界的点云后,对集合q中的点进行迭代操作。
15.进一步的,在上述方法中,step3:将经过step2处理过后的点云做为输入,进行点云的修复,在输入平化孔洞边界的点云后,对集合q中的点进行迭代操作,包括:
16.(1)首先,选取某一点做为当前点pi,pi∈q,以p为中心ri(i=1,2,3....n,其中r1
《r2《r3《......《rn)为半径进行邻域搜索,进行切平面的拟合,这样根据半径的不同,拟合的切平面的大小也不同,然后以切平面越小给予权重越大为原则,对切平面进行加权求和得到最终的一个切向量,以此做为新点的生成方向。在对p进行k最近邻搜索,求的k邻域中点距离的高斯分布,做为填充新点的距离。
17.(2)其次,判断新生成的点是否为无效点,若该点距离边界点距离过于接近或者出现在孔洞区域之外都视为无效基于剔除,然后将p
i+1
做为当前点重复(1)操作,将得到的新点做为初始点new_pi,若新生成的点new_pi距离边界节点pi距离过远则调整距离到合适位置。
18.进一步的,在上述方法中,步骤s3,按排序后的当前边界点与下个边界点的方向为依据,直接生成新点,距离长度略小于当前边界点与下一个边界点的距离;通过判断孔洞邻域的表面趋势,找到其最大变化趋势与最小变化趋势来控制修复表面的整体变化趋势,以最终完成修复,包括:
19.step4:得到新的填充点new_pi后,依据附图3迭代原理,将p
i+1
与pi的方向向量n=p
i+1-pi做为新的生成点new_p
i+1
的方向,p
i+1
与pi间的距离为l,那么其中0《m≤1。
20.step5:在生成每个新的填充点时都需要判断其是否有效,若无效则以当前边界点为pi,返回从step3(1)开始执行。若有效返回重复step4,直到孔洞得到收缩。
21.与现有技术相比,本发明的优点是:
22.1.提出了采用按孔洞边界点逐点迭代的方式对点云孔洞进行修复的方法,有速度快、效率高、效果好的特点。
23.2.提出了采用多尺度下的切平面加权求和来进行填充方向的确定,采用多个尺度可以更好的使填充的方向与周围邻域点云表面的变化趋势相吻合,避免由于单个切平面导致孔洞收缩过快或者过慢的情况。
24.提出了对整个孔洞邻域的表面变化趋势进行整合,通过确定表面变化趋势最快以及最缓的情况来制约多平面的权重从而控制修复区域的表面能与真实表面更相似更加吻合。
附图说明
25.图1为本发明一实施例的孔洞边界处理图;
26.图2为本发明一实施例的孔洞修复图;
27.图3为本发明一实施例的沿孔边界迭代的新点生成原理图;
28.图4为本发明一实施例的带孔洞的点云图;
29.图5为本发明一实施例的真实点云图;
30.图6为本发明一实施例的修复后的效果图。
具体实施方式
31.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
32.图1为本发明一实施例的孔洞边界处理图;图2为本发明一实施例的孔洞修复图;图3为本发明一实施例的沿孔边界迭代的新点生成原理图;图4为本发明一实施例的带孔洞的点云图;图5为本发明一实施例的真实点云图;图6为本发明一实施例的修复后的效果图。
33.如图1所示,本发明提供一种基于边界点迭代的点云修复方法,包括:
34.步骤s1,对带有孔洞的点云进行孔洞边界的提取,然后通过边界点与边界点的距离关系对孔洞边界点集进行排序,对排序后的边界点集进行平滑操作;
35.步骤s2,在优化孔洞边界后便开始孔洞的修复,通过对边界点的邻域拟合切平面得到填充区域的方向,应用多个尺度下的平面进行加权求和,然后求边界点邻域点与点间距离的高斯分布,得到距离参数,用来控制填充点的位置;
36.步骤s3,按排序后的当前边界点与下个边界点的方向为依据,直接生成新点,距离长度略小于当前边界点与下一个边界点的距离;通过判断孔洞邻域的表面趋势,找到其最大变化趋势与最小变化趋势来控制修复表面的整体变化趋势,以最终完成修复。
37.本发明的基于边界点迭代的点云修复方法一实施例中,步骤s1,对带有孔洞的点云进行孔洞边界的提取,然后通过边界点与边界点的距离关系对孔洞边界点集进行排序,对排序后的边界点集进行平滑操作,包括:
38.step1:输入带孔洞的原始点云,通过改进的质心法来获取点云的边界点集;再对边界点集进行聚合得到孔洞边界点集q;
39.step2:对孔洞边界点进行平滑优化。首先,对孔洞边界点进行排序,设当前点为p,p∈q,在q中搜索距离p欧式距离最近的点做为下一个节点next_p,next_p∈q;在以next_p做为当前节点p,继续做相同的搜索操作;对整个集合q进行一个排序,然后在排序后对整个边界做平滑优化,若两节点间的距离过大,则在中间加上适当数量的点;若两边界节点间的距离过于小,则剔除该节点,具体过程可以参考附图1。
40.本发明的基于边界点迭代的点云修复方法一实施例中,步骤s2,在优化孔洞边界后便开始孔洞的修复,通过对边界点的邻域拟合切平面得到填充区域的方向,应用多个尺度下的平面进行加权求和,然后求边界点邻域点与点间距离的高斯分布,得到距离参数,用来控制填充点的位置,包括:
41.step3:将经过step2处理过后的点云做为输入,进行点云的修复。参考附图2的过程,在输入平化孔洞边界的点云后,对集合q中的点进行迭代操作:
42.(1)首先,选取某一点做为当前点pi,pi∈q,以p为中心ri(i=1,2,3....n,其中r1《r2《r3《......《rn)为半径进行邻域搜索,进行切平面的拟合,这样根据半径的不同,拟合的切平面的大小也不同,然后以切平面越小给予权重越大为原则,对切平面进行加权求和得到最终的一个切向量,以此做为新点的生成方向。在对p进行k最近邻搜索,求的k邻域中点距离的高斯分布,做为填充新点的距离。
43.(2)其次,判断新生成的点是否为无效点,若该点距离边界点距离过于接近或者出现在孔洞区域之外都视为无效基于剔除。然后将p
i+1
做为当前点重复(1)操作,将得到的新点做为初始点new_pi。若新生成的点new_pi距离边界节点pi距离过远则调整距离到合适位置。
44.本发明的基于边界点迭代的点云修复方法一实施例中,步骤s3,按排序后的当前边界点与下个边界点的方向为依据,直接生成新点,距离长度略小于当前边界点与下一个
边界点的距离;通过判断孔洞邻域的表面趋势,找到其最大变化趋势与最小变化趋势来控制修复表面的整体变化趋势,以最终完成修复,包括:
45.step4:得到新的填充点new_pi后,依据附图3迭代原理,将p
i+1
与pi的方向向量n=p
i+1-pi做为新的生成点new_p
i+1
的方向,p
i+1
与pi间的距离为l,那么其中0《m≤1。
46.step5:在生成每个新的填充点时都需要判断其是否有效,若无效则以当前边界点为pi,返回从step3(1)开始执行。若有效返回重复step4,直到孔洞得到收缩。实验结果见附图6。
47.本发明的基于边界点迭代的点云孔洞修复技术一实施例中:若输入的三维点云带有孔洞或残缺则可用本技术快速恢复点云的孔洞区域。本方法的实现过程主要分为三个部分:点云孔洞边界提取、孔洞边界点的优化以及孔洞区域的修复。
48.1、首先,假设带孔洞的点云点集为p,p∈r3,然后通过改进的质心法提出点云中的孔洞边界q,q∈p。直角坐标系中质心的位矢分量如下:
[0049][0050]
其中,m=∑mi,为了能够得到更精确的孔边界,本文对个点pi,pi∈p,都采用八叉树算法求得其r邻域内的点集m,再通过式(1)求得每个点r邻域的的质心ci。然后再求pi与ci之间的距离li,并且对其求和取均值做为阈值θ。比较li与θ的大小,若li》1.2*θ则判定该点为边界点,得到边界点后再进行聚类分离,使得点云外边界与孔洞边界进行分离,最终得到点云的孔洞边界点集q。
[0051]
2、得到边界点集q后,为了能更好的得到修复效果,则对边界点进行优化和平滑操作。过程如下:首先,对边界点集q进行排序,排序原则是按照q中点与点之间的距离大小。选择q中的某点qi,然后迭代整个集合q寻找与qi最近的点做为下个点q
i+1
将其序号放入qi的下一个位置,然后以q
i+1
作为当前点继续寻找下一点,最终得到排好顺序的边界点集q。其次,在对点集q进行优化。根据q中的点集,求得距离阈值τ,
[0052][0053]
其中,n为q集合中的点的数量,若两点间的距离差别过大的话则需要进行修复,
[0054][0055]
其中,q
i+1
,qi之间需要填充的点数为m
i-1,但由于mi一般情况下不是整数,因此实际上需要对其进行取整操作,实验中对其进行四舍五入取整。最后,若集合q中两点间的距离过于接近则需要剔除。
[0056]
3、点云孔洞的修复。在对点云边界点进行优化平滑后再对孔区域进行修复。从优化后边界点集q中选择点,作为当前点qi,qi∈q。
[0057]
step(1)、以qi为中心ri(i=1,2,3....k,其中r1《r2《r3《......《rk)为半径进行邻域搜索,进行切平面的拟合。切平面方程如下所示:
[0058]
a(x-x0)+b(y-y0)+c(z-z0)=0
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(4)
[0059]
其中,a,b,c为法向量在x,y,z方向上的分量。
[0060]
为了防止修复的点云表面变化趋势与孔洞邻域的表面变化趋势相吻合以及防止孔洞区域收缩太快或者太慢,拟合多个切平面来控制填充点的方向,这样根据半径的不同,拟合的切平面的大小也不同,然后以切平面越小给予权重越大为原则,对切平面进行加权求和得到最终的一个切向量,以此做为新点的生成方向在对qi进行k最近邻搜索,求的k邻域中点距离的高斯分布,做为填充新点的参考距离l。
[0061]
那么初始填充点被定义为:
[0062][0063]
其中0《t≤1。
[0064]
step(2)、判断新生成的点是否为无效点,若该点距离边界点距离过于接近或者出现在孔洞区域之外都视为无效基于剔除.然后将q
i+1
做为当前点重复step(1)操作。若新生成的点距离边界节点qi距离过远则调整距离到合适位置。
[0065]
step(3)、得到新的初始填充点后,将qi与q
i+1
的方向向量
[0066][0067]
做为新的生成点的方向,qi与q
i+1
间的距离为l,那么
[0068][0069]
其中参数0《m≤1。
[0070]
step(4)、在生成每个新的填充点时都需要判断其是否有效,若无效则以当前边界点为qi,从step(1)开始新一轮的执行。若有效返回重复step(3),直到孔洞得到收缩。
[0071]
本发明的基于边界点迭代的点云修复方法,通过局部邻域点云属性信息和几何信息来修复点云孔洞区域。本发明直接对点云孔洞边界节点进行迭代,沿着边界的顺序和方向来生成新的点,用于填充点云的孔洞区域。该技术主要包括沿边界节点生成新的节点,新节点不需要预测,而根据上一轮边界节点的走势来确定本轮新节点的一个走势。为了得到新边界的填充采用加权多平面来控制新填充点的方向。
[0072]
本发明的优点是:
[0073]
1、提出了采用按孔洞边界点逐点迭代的方式对点云孔洞进行修复的方法,有速度快、效率高、效果好的特点。
[0074]
2、提出了采用多尺度下的切平面加权求和来进行填充方向的确定,采用多个尺度可以更好的使填充的方向与周围邻域点云表面的变化趋势相吻合,避免由于单个切平面导致孔洞收缩过快或者过慢的情况。
[0075]
3、提出了对整个孔洞邻域的表面变化趋势进行整合,通过确定表面变化趋势最快以及最缓的情况来制约多平面的权重从而控制修复区域的表面能与真实表面更相似更加吻合。
[0076]
本发明进过实验验证,修复的效果从主观能够让人满意,从客观上能够使修复的
表面变化与真实表面基本保持一致,实验结果见附图6。
[0077]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
[0078]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1