一种基于体素滤波的三维点云精简方法

文档序号:32750977发布日期:2022-12-31 00:46阅读:65来源:国知局
一种基于体素滤波的三维点云精简方法

1.本发明涉及点云处理技术领域,尤其涉及一种基于体素滤波的三维点云精简方法。


背景技术:

2.随着计算机领域的快速发展,三维视觉已成为了研究的热点,其广泛应用于医疗、游戏设计、自动驾驶等领域。三维点云作为视觉处理的重要对象,提高点云数据处理的效率变得尤为重要。
3.点云中包含着大量的数据特征信息,然而大量冗余的点云数据也对算法的处理速度造成一定的影响,然而不合理的精简会剔除点云的特征点,从而对后续处理造成影响,因此合理的点云精简算法尤为重要。目前众多国内外学者对点云精简算法进行了研究,也取得了一定的成果。传统点云精简算法主要包括:随机采样、格点采样、均匀网格法采样、非均匀采样等。其中随机采样是随机地采样固定的点云数量,会导致特征点损失;格点采样是通过将散乱的点云数据进行网格化,每个网格内取一个点,使得点云数目减少;均匀采样是通过构建3d体素网格,用该体素内全部点的重心来代表其所有点,使得点云数目减少,但此方法容易造成特征丢失;非均匀采样是通过对点云数据根据特征进行非均匀网格化,并用每个网格内所有点的中值代替这这个网格内的点,从而达到下采样的目的也保留了特征。
4.目前,许多国内外学者主要对k-means、特征提取、八叉树等点云精简方法进行了研究。王健强等提出采用多参数k-means聚类的方法,该方法利用八叉树计算点可能存在的特征信息,采用聚类的方法区分出多个模块,并对不同的模块用不同的方法进行点云精简,该算法有效的保留了部分特征点,但算法计算量过大,特征点保留还有一定局限性。李佩佩等采用k-means聚类分类与曲率分级的优化算法,该方法采用最小二乘法进行曲面拟合,并根据曲率值划分为特征明显区域和不明显区域,对于特征不明显区域再次利用曲率阈值的方法取出此部分明显的特征区,将两次的特征区域融合得到化简结果。liu等采用八叉树的k-means聚类方法,该算法在原始点云数据基础上构建八叉树,其k值为初始聚类中心,利用k-means算法根据距离作为指标,对原始点云进行聚类,并计算每个聚类簇的重心点作为新的聚类中心,不断迭代确定最终的聚类中心,计算每个点到聚类中心的欧式距离,保留距离满足阈值的点,以此达到简化的目的,该算法容易陷入局部最优,剔除特征点。李海鹏等采用fpfh特征提取的方法,该方法保留了边缘点,利用fpfh计算出特征区域和非特征区域,对于非特征区域进行改进的最远点采样进行采样。田应仲等采用双特征约束的方法,该方法通过构建点云双特征约束与体素包围盒算法融合的方法,利用点云法向量和曲率划分出强特征部分和弱特征部分,对非特征区域利用体素包围盒法进行简化,从而达到精简的目的。
5.综上可知,传统的点云精简算法大多数追求整体性和效率,但这会造成特征点的缺失。因此,怎样在保留特征点的同时对点云进行有效的精简,成为目前亟待解决的问题。


技术实现要素:

6.针对上述现有技术的不足,本发明提供了一种基于体素滤波的三维点云精简方法,能够在保留特征点的同时对点云进行有效的精简。
7.为了解决上述技术问题,本发明采用了如下的技术方案:
8.一种基于体素滤波的三维点云精简方法,包括以下步骤:
9.s1、获取原始点云图;
10.s2、通过3d-sift算法提取出原始点云图的强特征点,得到强特点云图;
11.s3、去除原始点云图中的强特征点,得到弱特征点云图;
12.s4、通过改进后的八叉树算法对弱特征点云图进行滤波,用距离重心最近的点代替体素内部的全部点,得到滤波后的弱特征点云图;
13.s5、将滤波后的弱特征点云图与强特征点云图进行合并,得到精简后的点云图。
14.优选地,s2包括:
15.s21、用原始点云图中点数的乘法因子设置不同的尺度,生成原始点云图中的点云的高斯金字塔,通过高斯金字塔表示尺度空间;
16.s22、将高斯金字塔中相近的两层点云相减,构成点云的高斯差分图进行极值检测,并将符合预设极值要求的极值点作为关键点;
17.s23、通过关键点的邻域内点的方向和梯度特征,确定关键点的主方向,使关键点满足旋转不变性;所述邻域包括同层邻近的26个点、上层邻近的27个点以及下层邻近的27个点;
18.s24、构建关键点描述符,用向量描述关键点使关键点具备稳定性,并将具备稳定性的关键点作为强特征点;所述稳定性为不随观测条件变化,所述观测条件包括光照、视角和尺度。
19.优选地,s21中,还将点云的尺度空间表示为一个变化的高斯核函数与点云坐标相卷积:
[0020][0021]
其中,l(x,y,z,σ)代表点云的尺度空间,g(x,y,z,σ)代表高斯卷积核函数,i(x,y,z)代表点云坐标,代表高斯卷积尺度因子;三维的高斯卷积核函数公式为:
[0022][0023]
优选地,s22中,预设的极值要求为:将点与其邻域内的点进行灰度值比较,若该点的灰度值为极大值或极小值,则将其作为关键点。
[0024]
优选地,s23中,通过关键点邻域内点的方向和梯度特征计算公式,计算邻域内各点的方向和梯度特征;再使用梯度直方图统计法统计邻域内各点的方向和梯度,确定关键点的主方向;所述关键点邻域内点的方向和梯度特征计算公式为:
[0025]
[0026][0027]
其中,m(x,y,z)为关键点邻域窗口内的幅值,θ(x,y,z)为方向角,为俯仰角。
[0028]
优选地,s23中,使用梯度直方图统计法统计邻域内各点的方向和梯度时,将0
°
~360
°
的方向范围分成8份,构建一个8柱的梯度直方图;直方图峰值为该关键点邻域的梯度方向,将直方图中的最大值作为关键点的主方向。
[0029]
优选地,s24中,所述关键点描述符的构建包括:
[0030]
首先,将关键点的邻域划分为n
×
n个子区域,并将每个子区域0
°
~360
°
的方向范围分成8份,且0
°
方向与关键点的主方向相同;
[0031]
然后,计算子区域内的点的梯度值并将其分配到8个方向范围;
[0032]
最后,统计各子区域在8个方向范围的灰度梯度直方图,得到对应的特征向量并进行归一化处理,得到特征描述子,作为关键点描述符。
[0033]
优选地,s4包括:
[0034]
s41、根据弱特征点云的最小包围盒构建初始长方体,初始长方体的长、宽、高分别记为x、y、z,体积记为v;
[0035]
s42、将初始长方体分成n个子长方体,所述子长方体的边长且且其中,α为预设的比例系数,ε为预设的比例因子,n为弱特征点云的点数,ceil()代表向上取整函数;
[0036]
s43、将内部存在点云中的点的子长方体作为非空子长方体;计算各非空子长方体的重心,并将对应的位置记为重心点;
[0037]
s44、根据八叉树,找出非空子长方体内距离重心点最近的点,并筛除该最近的点之外的其余点,得到新的点集,作为滤波后的弱特征点云。
[0038]
本发明与现有技术相比,具有如下有益效果:
[0039]
1、本发明采用特征点提取3d-sift算法与八叉树算法结合的点云精简算法,使得强特征点得以保留;对非特征点云采用改进的八叉树体素滤波,利用离体素内重心点最近的点作为滤波后的点,并将滤波后的弱特征点云与强特征点云合并得到精简后的点云。通过这样的方式,能够在保留了特征点的同时也对点云进行了精简。实验证明,将本方法与均匀网格算法、非均匀网格法、随机采样算法进行对比实验,通过多个不同模型的可视化结果和信息熵评价分析,可以得出本方法对比其他算法在对数据进行精简的同时也达到了特征保留的效果。在滤波程度相差不大的情况下,本方法在一定程度上解决了空洞问题和点云精简导致的特征点丢失问题。
[0040]
综上,本发明可以在保留特征点的同时对点云进行有效的精简。
[0041]
2、传统的八叉树算法是采用每一个体素内的重心点代替该体素内的全部点,这会造成采样后的点不是初始点云数据中的点。本发明中采用改进后的八叉树算法,用距离重心最近的点代替体素内部的全部点,这样保证了滤波后的点还为原始点云内部的点。
[0042]
3、本方法中,使用3d-sift算法来提取点云中的强特征点。sift是一种局部特征提取方法,也称之为尺度不变特征,它不受旋转角度、位置、尺寸的影响,并且对视角变化和噪声影响表现出良好的稳定性。这样得到的强特征点,不受光照、噪声和位置变化,如边界点、角点、亮点以及暗点等。可以保证强特征点的有效性,进而能够很好的实现点云中有效特征的识别和保留。
附图说明
[0043]
为了使发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步的详细描述,其中:
[0044]
图1为实施例中的流程图;
[0045]
图2为实施例中的点云高斯差分示意图;
[0046]
图3为实施例中的极值点检测示意图;
[0047]
图4为实施例中的直方图统计法示意图;
[0048]
图5为实施例中的八叉树节点示意图;
[0049]
图6为实施例中实验的点云精简实例示意图;
[0050]
图7为实施例中实验的不同模型局部放大效果示意图;
[0051]
图8为实施例中实验的不同方法的可视化对比示意图。
具体实施方式
[0052]
下面通过具体实施方式进一步详细的说明:
[0053]
实施例:
[0054]
如图1所示,本实施例中公开了一种基于体素滤波的三维点云精简方法,包括以下步骤:
[0055]
s1、获取原始点云图;
[0056]
s2、通过3d-sift算法提取出原始点云图的强特征点,得到强特点云图。
[0057]
我们能快速的分辨出物体的特征,能看出物体的相似性,这是因为我们能根据图片的纹理、颜色、形状等信息对物体进行辨别,因此提取物体的特征信息在3d视觉领域尤为重要。sift是一种局部特征提取方法,它也称之为尺度不变特征,它不受旋转角度、位置、尺寸的影响,并且对视角变化和噪声影响表现出良好的稳定性。sift检测到的大都为强特征点,不受光照、噪声和位置变化的点,如边界点、角点、亮点以及暗点等。
[0058]
具体实施时,s2包括:
[0059]
s21、用原始点云图中点数的乘法因子k设置不同的尺度,生成原始点云图中的点云的高斯金字塔,通过高斯金字塔表示尺度空间。
[0060]
再将点云的尺度空间表示为一个变化的高斯核函数与点云坐标相卷积:
[0061][0062]
其中,l(x,y,z,σ)代表点云的尺度空间,g(x,y,z,σ)代表高斯卷积核函数,i(x,y,z)代表点云坐标,代表高斯卷积尺度因子;三维的高斯卷积核函数公式为:
个子区域。
[0078]
然后,计算子区域内的点的梯度值并将其分配到8个方向范围;
[0079]
最后,统计各子区域在8个方向范围的灰度梯度直方图,得到对应的特征向量并进行归一化处理,得到特征描述子,作为关键点描述符。
[0080]
s3、去除原始点云图中的强特征点,得到弱特征点云图;
[0081]
s4、通过改进后的八叉树算法对弱特征点云图进行滤波,用距离重心最近的点代替体素内部的全部点,得到滤波后的弱特征点云图。
[0082]
八叉树是将三维几何空间划分成众多小的体素单元,这些体素单元应具备相同的时空复杂度。采用循环递归法对几何空间(2n
×
2n
×
2n)划分,如果划分后的体素单元具有相同的时空复杂度,则这个体素单元作为一个叶节点,否则继续进行对其划分,最多划分n次,构建出一个具有根节点的方向图,如图5所示。
[0083]
具体实施时,s4包括:
[0084]
s41、根据弱特征点云的最小包围盒构建初始长方体,初始长方体的长、宽、高分别记为x、y、z,体积记为v;
[0085]
s42、将初始长方体分成n个子长方体,所述子长方体的边长且且其中,α为预设的比例系数,ε为预设的比例因子,n为弱特征点云的点数,ceil()代表向上取整函数;
[0086]
s43、将内部存在点云中的点的子长方体作为非空子长方体;计算各非空子长方体的重心,并将对应的位置记为重心点;
[0087]
s44、根据八叉树,找出非空子长方体内距离重心点最近的点,并筛除该最近的点之外的其余点,得到新的点集,作为滤波后的弱特征点云。
[0088]
s5、将滤波后的弱特征点云图与强特征点云图进行合并,得到精简后的点云图。
[0089]
本发明采用特征点提取3d-sift算法与八叉树算法结合的点云精简算法,使得强特征点得以保留;对非特征点云采用改进的八叉树体素滤波,利用离体素内重心点最近的点作为滤波后的点,并将滤波后的弱特征点云与强特征点云合并得到精简后的点云。通过这样的方式,能够在保留了特征点的同时也对点云进行了精简。实验证明,将本方法与均匀网格算法、非均匀网格法、随机采样算法进行对比实验,通过多个不同模型的可视化结果和信息熵评价分析,可以得出本方法对比其他算法在对数据进行精简的同时也达到了特征保留的效果。在滤波程度相差不大的情况下,本方法在一定程度上解决了空洞问题和点云精简导致的特征点丢失问题。
[0090]
传统的八叉树算法是采用每一个体素内的重心点代替该体素内的全部点,这会造成采样后的点不是初始点云数据中的点。本发明中采用改进后的八叉树算法,用距离重心最近的点代替体素内部的全部点,这样保证了滤波后的点还为原始点云内部的点。除此,本方法中,使用3d-sift算法来提取点云中的强特征点。sift是一种局部特征提取方法,也称之为尺度不变特征,它不受旋转角度、位置、尺寸的影响,并且对视角变化和噪声影响表现出良好的稳定性。这样得到的强特征点,不受光照、噪声和位置变化,如边界点、角点、亮点以及暗点等。可以保证强特征点的有效性,进而能够很好的实现点云中有效特征的识别和
保留。
[0091]
为了便于更加清楚的理解本发明的效果,特以下述实验内容进行说明。
[0092]
实验选用了不同类型的点云数据作为原数据进行实验,分别选用斯坦福大学点云数据集中的兔子、牛奶、玉米秆、人物雕像、猪等五种不同点云数据作为测试数据。将本方法与均匀网格采样方法、非均匀采样法以及随机采样法进行对比实验与分析,从主观评价与客观评价的角度对实验结果进行了评价分析。此外,需要说明的是,本实验在windows10,64位操作系统,amd r7-4800h cpu处理器,配置好pcl的visual studio 2019实验环境下进行。
[0093]
数据精简结果
[0094]
对原始点云数据进行3d-sift特征提取,得到强特征点云图,对弱特征点云图进行改进的八叉树滤波得到弱特征点滤波后的点云图,将两者进行合并,得到最终的点云精简结果。如图6所示,从上到下分别为兔子、牛奶、玉米、人物雕像和猪,从左到右分别为原始点云图、强特征点云图、滤波后的弱特征点云图和精简后的点云图。
[0095]
不同模型的原始点云、强特征点云、滤波后的弱特征点云和精简点云的点数数据如表1所示。
[0096]
表1不同模型精简数据
[0097][0098]
由可视化结果和数据结果可以看出,3d-sift提取出的特征点能提取出点云的强特征信息,八叉树过滤算法有良好的滤波效果,精简结果在达到了点云滤波的基础上,同时能很好的保留特征信息。如图7对不同模型的精简结果局部放大可知,兔子强特征区域信息完整,牛奶盒瓶身弱特征区域无空洞,玉米秆边界处明显,人物雕像的头发、胳膊动作等细节处信息完整、猪耳朵等细节处信息未缺失。
[0099]
不同算法可视化分析
[0100]
本方法与随机采样、均匀采样、非均匀采样(索引空间采样)进行对比实验,实验可视化结果如图8所示,图中,从左到右分别为原始点云、随机采样结果、均匀采样结果、非均匀采样结果和本发明的结果。
[0101]
表2不同方法精简结果
[0102][0103][0104]
如表2所示,根据设置不同的参数,几种采样方式结果点数数目差别不大。再结合图4可视化结果可知,在采样程度差别不大的情况下,本方法对比其他算法有明显的空洞减少、细节处信息完整且纹理更为清晰等优点。
[0105]
信息熵分析
[0106]
信息熵可以对精简接过进行定量的质量评价,基于曲率求解出信息熵,熵值越大的地方信息量越大,点云分布越无序,那么此处的特征就越明显,因此根据曲率分布求解出信息熵,熵值越大代表精简结果细节特征越多,效果越好。某一点的信息熵计算公式为:
[0107][0108]
其中,ci代表i点的信息熵,ei代表i点的曲率,j点为i点邻域内的点,ej代表j点的曲率,
[0109]
pi代表i点的曲率分布,pj代表j点的曲率概率分布。整个点云熵值为所有点的熵之和,计
[0110]
算公式为:
[0111][0112]
本方法与随机采样、均匀采样、非均匀采样进行对比实验,采用信息熵对精简进行定量评价,计算出不同方法精简结果的信息熵值如表3所示。
[0113]
表3不同方法精简结果信息熵
[0114][0115]
考虑到采样点数相差不大,但依旧不完全相同,为排除点数对点云整体信息熵值的影响,采用平均信息熵来继续进行评价:
[0116][0117]
其中,n代表点云点数。计算出不同方法精简结果的平均信息熵值如表4所示。
[0118]
表4不同方法精简结果平均信息熵
[0119][0120]
根据表3和表4中数据可得,在采样点数相差不大的情况下,兔子、牛奶、玉米秆、人物雕像、猪五组数据本方法得平均熵值均为最高。由此可看出,本方法精简结果特征最为明显,在减少了点云数量的同时,也保留了一定的特征点。
[0121]
采用可视化与基于曲率的平均信息熵评价法对实验结果进行评价,结合上述实验可知,针对冗余点云数据问题,将本方法与均匀采样、非均匀采样、随机采样进行结果对比,调整参数使得滤波程度相差不大后,通过可视化结果和基于曲率的信息熵评价可得出,在滤波程度相差不大的情况下,本方法一定程度上解决了空洞问题和点云精简导致的特征点丢失问题。
[0122]
最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1