一种基于遮罩的全局点云滤波方法、设备和存储介质

文档序号:1923269 发布日期:2021-12-03 浏览:9次 >En<

阅读说明:本技术 一种基于遮罩的全局点云滤波方法、设备和存储介质 (Mask-based global point cloud filtering method, equipment and storage medium ) 是由 朱登明 封雷 石敏 王兆其 于 2021-08-06 设计创作,主要内容包括:本发明提供了一种基于遮罩的全局点云滤波方法、设备和存储介质。本发明的方法包括:确定能够包围目标点云中所有点的包围盒,对其划分形成多个体素格;基于坐标将所述目标点云中的每个点分入相应的体素格,遍历所有体素格,确定每个体素格的连通域属性;基于设定的连通域阈值,确定满足所述阈值的体素格,形成遮罩;根据遮罩的位置对所述目标点云进行滤波。本发明通过对三维点云全局信息的考察,自适应得到体素格划分,进而根据自定义的连通域获得遮罩,用来描述点云的全局空间拓扑信息,根据该拓扑信息进行滤波。该方法针对空间疏密程度有较大差异的点云效果更好,可以有效去除原始点云中的离群点,并且较好保持点云的细节信息。(The invention provides a mask-based global point cloud filtering method, mask-based global point cloud filtering equipment and a storage medium. The method of the invention comprises the following steps: determining a bounding box capable of surrounding all points in the target point cloud, and dividing the bounding box into a plurality of voxel grids; dividing each point in the target point cloud into corresponding voxel grids based on coordinates, traversing all the voxel grids, and determining the connected domain attribute of each voxel grid; determining voxel grids meeting the set threshold value based on the set connected domain threshold value to form a mask; and filtering the target point cloud according to the position of the mask. According to the invention, the voxel grid division is obtained in a self-adaptive manner through the investigation of the global information of the three-dimensional point cloud, and then a mask is obtained according to a self-defined connected domain to describe the global spatial topological information of the point cloud, and filtering is carried out according to the topological information. The method has better effect on the point clouds with larger difference in space density degree, can effectively remove outliers in the original point clouds, and better keeps the detail information of the point clouds.)

一种基于遮罩的全局点云滤波方法、设备和存储介质

技术领域

本发明涉及信号处理领域,具体涉及基于点云的信号滤波方法。

背景技术

传统的基于局部的点云滤波方法有空间单元格法、八叉树法和K-d树法等方法。张毅等人提出一种改进的K-近邻点云去噪算法,通过K-近邻搜索建立散乱点云之间的拓扑关系,进而采用高斯影响函数作为核函数来估计当前测量点对周围邻近点的影响力,从而限制噪声并剔除离群点(参见其发表的文章《基于K-近邻点云去噪算法的研究与改进》)。梁新合等人采用与法向局部方差有关的自适应角度阈值的截断函数限制邻域点的选择,计算点的法向矢量和法向局部方差,获得与表面特征有关的自适应最优邻域;采用改进的三边滤波方法实现法向矢量滤波和位置滤波,对于疏密均匀且离群点并不很分散的点云数据,该算法能更有效地保持细节特征,同时获得光顺的离散表面(参见其发表的文章《基于自适应最优邻域的散乱点云降噪技术研究》)。

基于图像的方法生成的点云和三维扫描设备获取的点云相比不够精准,而由于图像质量、立体匹配等算法的敏感性以及算法基于图像的数目等差异,由输入的目标图像生成的点云模型的特点各不相同,不同滤波方法对不同特点的点云滤波效果差异很大。例如卡尔曼滤波算法是对系统状态进行最优估计来排除系统中的噪声和干扰的影响,该算法针对传感器直接获取的点云数据有较好效果,其点云特点是空间密度较为均匀,并且表征的物体表面是闭合的。而基于双目立体图像生成的点云由于二维图像遮挡关系而缺失的信息使得恢复出的点云存在空间密度分布不均、表征的表面不闭合等特点,该特点的点云应用卡尔曼滤波效果会不好。由此可见,点云滤波算法是问题导向型,需针对点云不同的特点来选择、设计点云滤波算法。一种好的滤波算法应满足(1)滤波后的点云噪声得到改善,离群点大部分被去除;(2)有效点云细节不被破坏。

但是,目前的点云滤波算法尚不能完全满足以上两点。

发明内容

针对上述问题,发明人在进行三维点云滤波处理研究时,发现现有技术中该项缺陷是由于没有考虑点云的全局拓扑特征导致,而且由于基于双目图像计算得到的三维点云在空间上疏密差异较大,基于局部的滤波方法很容易造成离群点的误判。

发明人经过试验研究发现,使用点云的全局空间拓扑信息有助于提升滤波的准确率,进而,本发明提出了一种基于遮罩的全局点云滤波方法,其解决了点云,尤其是疏密差距较大的点云的滤波问题。

根据本发明的一个方面,提供了一种基于遮罩的全局点云滤波方法,其特征在于,所述方法包括下述步骤:

步骤1:确定能够包围目标点云中所有点的包围盒,对所述包围盒进行划分,形成多个体素格;

步骤2:基于坐标将所述目标点云中的每个点分入相应的体素格,遍历所有体素格,确定每个体素格的连通域属性,所述连通域属性基于当前体素格的有效性以及与当前体素格直接或间接相邻的有效体素格数量确定,基于设定的连通域阈值,确定满足所述阈值的体素格,形成遮罩;

步骤3:根据遮罩的位置对所述目标点云进行滤波,保留所述遮罩覆盖的点,滤除未被所述遮罩覆盖的点。

在一种优选实现方式中,所述步骤1包括:

步骤11:基于三维点云的平均距离和稀疏度常数确定体素格边长;

步骤12:基于所述目标点云的数据确定包围盒,使所述包围盒的各边长均为体素格对应边长的整数倍;

步骤13:将所述包围盒划分成多个彼此无缝对接的体素格;

步骤14:对于每一个点,确定其体素格归属。

在另一种优选实现方式中,在步骤2中,确定每个体素格的连通域属性的步骤包括:

步骤21:遍历所有体素格,确定每个体素格的连通域,每确定一个连通域,为该连通域内的各个体素格赋予相同连通域编号,不同连通域之间的编号彼此不同;

步骤22:统计每一个编号对应的体素格的个数。

在另一种优选实现方式中,步骤3中确定遮罩的步骤包括:

步骤23:根据设定阈值,确定体素格个数大于预设阈值的连通域编号,保留相应编号对应的体素格,作为遮罩。

在另一种优选实现方式中,在所述步骤21中,遍历体素格的过程包括:

步骤211:对于任意一个体素格,判断当前体素格是否为有效体素格,且未被遍历过,若是则逐个对其相邻体素格进行遍历,任意一个相邻体素格若为有效体素格,则对该体素格的相邻体素格进一步进行遍历。

在另一种优选实现方式中,在所述步骤1中进行体素格划分时,采用等体积划分的方式进行。

在另一种优选实现方式中,所述有效体素格为非空体素格或者所包含的点数量超过预定数值的体素格。

根据本发明的另一方面,提供了一种双目相机,所述双目相机具有图像处理模块,所述图像处理模块基于两个图像传感器所采集的图像生成点云数据,其特征在于,所述图像处理模块采用上述方法对所述点云数据进行滤波处理。

根据本发明的另一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行时实现上述的方法。

根据本发明的另一方面,提供了一种计算机设备,包括存储器和处理器,在所述存储器上存储有能够在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现上述的方法。

技术效果

本发明通过对三维点云全局信息的考察,根据点云平均间隔确定体素格尺寸,对三维点云进行体素格划分,进而根据自定义的连通域获得遮罩,用来描述点云的全局空间拓扑信息,根据该拓扑信息进行滤波,遮罩覆盖的点云保留,未覆盖的点云剔除。采用这种方法可以有效提升点云滤波的正确率。该方法针对空间疏密程度有较大差异的点云效果更好,可以有效去除原始点云中的离群点,并且较好保持点云的细节信息。

附图说明

以下附图仅对本发明作示意性的说明和解释,并不用于限定本发明的范围,其中:

图1示出了26连通区域的可视化图形;

图2示出了本发明基于遮罩的全局点云滤波方法的流程图;

图3为示例的点云原始数据;

图4为遮罩可视化示意图;

图5为滤波后的点云数据;

图6为体素格滤波结果及误差分析结果图;

图7为体素格滤波优化算法结果及误差分析结果图;

图8为k近邻滤波结果及误差分析结果图;

图9为采用不同滤波方法进行对比实验的效果对比数据。

具体实施方式

为了使本发明的目的、技术方案、设计方法及优点更加清楚明了,以下结合附图通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

需要说明的是,本发明中所提到的术语“点云的平均距离”指的是:计算各个点到其他点的最小距离,所有最小距离和的平均值为点云平均间隔。

本发明中所提到的术语“26连通区域”指的是:给定空间中的一个体素格,以它为中心建立一个边长为三倍体素格边长(长宽高分别为体素格相应边长三倍)的区域,该区域中包含27个体素格,除去该中心体素格,其余26体素格即为该体素格的26连通区域,如图1所示。

本发明中所提到的术语“体素格有效”指的是该体素格内包含的点云不为空或者点数量大于预定要求值。

本发明中所提到的术语“体素格连通”指的是:对于某一体素格,如果该体素格有效,且在该体素格的26连通区域内存在某一个有效的体素格,则称这两个体素格在空间上是体素格连通的。

本发明中所提到的术语“连通域”指的是具有体素格连通性质的所有体素格的集合。

本发明中所提到的术语“遮罩”指的是内部包含体素格格数大于给定阈值的连通域的集合。

实施例1

如图2所示,本实施例中的基于遮罩的全局点云滤波方法主要包括以下步骤:1、对三维点云坐标数据进行空间管理,构建体素格;2、进行点云数据分配,确定连通域属性,基于设定的连通域阈值,确定满足阈值的连通域,形成遮罩;3、利用遮罩对目标点云进行滤波。

下面,对每个步骤进行展开说明。

1、对三维点云坐标数据进行空间管理,构建体素格。

对三维点云坐标数据进行空间管理的主要目的是建立离散点云之间的拓扑结构,进而将点云数据划分到不同的体素格中。根据本发明的一个实施例,该步骤包括:

步骤11:基于三维点云的平均距离计算体素格边长。首先需要计算三维点云的平均距离。计算时,先计算每个点到其他所有点的最小距离,平均距离定义为所有最小距离和的平均值。计算公式如下,S为点云集合,xi和xj为某个点云三维坐标,n为点云个数。

以图3中所示图片对应的点云数据为例,经过计算得到平均间隔为1.318,体素格边长d等于三维点云平均距离乘以稀疏度常数K。本实施例中,稀疏度常数k为3.85(该常数根据不同的点云类型确定的经验值),计算结果为5.07。

步骤12:基于输入的三维点云数据确定包围盒。根据输入的点云三维坐标求出点云在x、y、z轴上的边界,从而确定AABB(Axially Aligned Bounding Box)包围盒。优选地,该包围盒为矩形体,三轴线分别平行于三坐标轴,该包围盒尽可能紧致地包围所有三维点云数据,比如,选取点云中最大横坐标与最小横坐标之间的差值作为包围盒的横向边长,其他各边类似处理。当该包围盒的某边长度a不能被步骤11计算出的体素格边长d整除时,该包围盒的对应边长a调整为a',表示为:

这样,可以向上取整,以此类推,确定体素格的三条边长,使得包围盒被平均划分到各个体素格中。

步骤13:基于步骤11得到的体素格边长,在步骤12得到的包围盒中划分体素格,体素格的三条轴线均分别平行于三条坐标轴,且各个体素格均无缝、紧致排列。

步骤14:对于每一个三维点,计算该点被步骤13中得到的哪一个体素格包围,将该点归属于该体素格。

根据本发明的一个实施例,对所有体素格进行初始化。比如,初始化体素格的三个属性,一是顶点属性,二是连通域编号属性,三是遍历属性。顶点属性用于存储该体素格中包含点云的三维坐标;连通域编号属性用于标记当前体素格所属连通域的编号;遍历属性是一个布尔值,用于标记当前体素格是否已经被程序遍历。

遍历点云中所有点,根据三维坐标计算每一个点所位于的体素格,并将其坐标添加到体素格的顶点属性中,如果体素格中没有点,则顶点属性为空。将所有体素格的连通域编号属性设定为0,遍历属性设为否。

这样,可以对三维点云坐标数据进行空间管理,建立离散点云之间的拓扑结构,自适应确定体素格边长,将点云数据划分到不同的体素格中。

2、基于连通域确定由特定体素块组成的遮罩,该步骤包括:

步骤21:遍历所有体素格。经过上述步骤1,得到了初始化的体素格,每一个体素格有对应的坐标。在一个示例中,设第一个体素格坐标为(1,1,1),最后一个体素格坐标为(78,83,34),共220116个体素格,顺序遍历这些体素格。计算出各个体素格的连通域,并为每一个体素格赋予一个连通域区域的编号。

根据本发明的一个实施例,步骤21中遍历的过程可以分解为以下子步骤:

步骤211:判断当前体素格是否包含目标点云中的点(或点数目超过预定值),且没有被遍历过,如果结果为真(上述条件均符合要求),则执行步骤212;如果结果为假(上述两个条件中的任意一个不满足),则对下一体素格进行上述判断,即对下一个体素格执行步骤211;如果没有下一体素格(所有体素格均被遍历),则步骤21执行完毕。

步骤212:判断当前体素格是否包含目标点云中的点(或点数目超过预定值),且没有被遍历过,且当前体素格的坐标存在(即,没有超出包围盒的范围),如果结果为真(上述条件均符合要求),则将当前体素格标记为已遍历,并执行步骤213,基于当前体素格进行26连通域遍历;如果结果为假(上述条件中任意一个不符合),则执行本步骤的上一步骤(即跳转到步骤212的步骤——当前步骤的跳转来源,若当前步骤212是从步骤211跳转而来,则跳转至当前步骤的跳转来源,若当前步骤212是从步骤211跳转而来,则跳转回上一循环时的步骤211,继续判断下一个体素格,若当前步骤212是由步骤213跳转而来,则跳转回上一循环时的步骤213,继续执行上一循环的步骤213,进行26连通区域内其他体素格的判断,直至26连通区域均判断完毕);

步骤213:为当前体素格赋予当前全局连通域编号,并以当前体素格为中心进行其相关的26连通域遍历。比如,对当前体素格的26连通区域内的体素格依次执行步骤212(26次循环),即,每次选择一个26连通域方向,分别为(0,0,1)、(0,0,-1)、(0,1,0)、(0,-1,0)、(1,0,0)、(-1,0,0)、(1,1,0)、(1,-1,0)、(1,0,1)、(1,0,-1)、(0,1,1)、(0,1,-1)、(-1,1,0)、(-1,-1,0)、(-1,0,1)、(-1,0,-1)、(0,-1,1)、(0,-1,-1)、(1,1,1)、(1,1,-1)、(1,-1,1)、(1,-1,-1)、(-1,1,1)、(-1,1,-1)、(-1,-1,1)、(-1,-1,-1),将选择的方向和当前体素格坐标相加,得到新的坐标对应的体素格作为当前体素格执行步骤212,每次选择不同的方向进行体素格坐标变换,作为步骤212中的当前体素格,进行体素格遍历,直到26个方向都被选过一遍;如果在以步骤211中所初始选定的体素格为中心的体素格遍历过程中,所遍历过的每一个体素格的26连通区域内的体素格均执行完成遍历(比如,在步骤211中选定一个体素格(2,2,2),若判定其为真,则需要对该体素格的26个连通域方向的体素格进行完遍历并且对与其26个连通域方向的26个体素格直接或间接连通的体素格也进行完遍历),则执行步骤214。

步骤214:全局连通域编号加1(该编号初始为1,每次经过步骤214时加1),然后对下一体素格执行步骤211,即下一个连通域的编号较上一连通域加一。

执行完步骤21后,每一个有效体素格都将被赋予一个连通域编号,可以对不同连通域顺序进行编号,以便为每个连通域分配不同的编号。

换言之,在该步骤中,通过运用深度优先搜索将体素格连接成一个个独立的连通域,并将每一个连通域内包含的体素格标记上连通域编号。

步骤22:统计每一个编号对应的体素格的个数m。

步骤23:根据设定好的阈值,将每个编号对应的体素格数目m与对应的连通域数目阈值进行比较,大于等于阈值的标记为1,小于阈值的标记为0,保留那些编号对应的体素格个数大于等于阈值的那些编号对应的体素格,将这些体素格定义为遮罩,其余体素格则废弃,参见图2。例如在一个实施例中,连通域编号为1的体素格有56个,连通域编号为32的体素格有4个,阈值设定为20,所有连通域编号对应的体素格数量大于20的那些体素格得以保留,将其定义为本实施例中点云的遮罩,用于描述点云的空间拓扑信息。

采用步骤2,经过统计计算,得出应保留的连通域,将其组成遮罩,得以描述三维点云的全局拓扑信息。

最后,执行步骤3:根据遮罩的位置对所述目标点云进行滤波,保留所述遮罩覆盖的点,滤除未被所述遮罩覆盖的点。

为了进一步验证本发明的效果,发明人进行了对比实验。下面,展开对数据处理各个阶段的点云图进行对比。图3-9示出了一具体的点云原始数据和采用不同滤波方式进行的滤波后数据的对比,其中,图3A为基于三角测量原理,根据网络输出的视差图计算得到原始点云数据,图3B为使用groundtruth点云进行对比的视图。可以看出未经处理的点云数据有很多影响后续处理的离群点。

对图3中的原始点云数据应用本发明的点云滤波方法进行处理,其中,点云平均间隔为1.318,乘以自适应常数k计算得到体素格边长为5.07。连通域阈值为40。将滤波过程中使用到的遮罩进行可视化处理,如图4所示,半透明的深色方格是若干体素格,这些体素格组成若干符合条件的连通域,进而合并形成遮罩,透过深色体素格可以看到内部保留下来的点云,由此看出算法生成的遮罩可以概括出点云的全局拓扑信息。

对遮罩覆盖的点云保留,未覆盖的滤除,最终采用本发明方法的滤波效果如图5所示,图5B为基于点云-视差图逆映射得到的辅助视差图,图5C是滤波误差分析,其中浅色点为正确滤波点,深色为错误滤波点。

然后,使用另外三种方法进行滤波效果对比,分别是k临近点滤波、体素格滤波及其优化算法,并与本发明的滤波方法一起进行定量误差分析。三维点云散乱的特点使得直接使用标准点云和滤波后的点云进行量化误差分析有困难,而基于双目视觉的点云都是从视差图映射得到,基于这种关系,将三维点云逆映射回二维平面不会出现重叠,本发明将逆映射回二维的点云图称为辅助视差图。之后通过对比辅助视差图与真值视差图可以进行误差分析。

体素格滤波结果分析如图6所示。其中图6A为体素格滤波结果,图6B为基于点云-视差图逆映射得到的辅助视差图,图6C是滤波误差分析,其中浅色点为正确滤波点,深色为错误滤波点,二者的并集为体素格滤波滤除的所有点的二维映射,从该图和图6A红圈中都可看出点云部分边缘以及内部较稀疏的区域被错当成噪声,造成缺口,而有些真正的离群点没有被滤除。

体素格滤波优化算法的滤波效果以及误差分析图如图7所示。该算法不仅考虑当前处理体素格内的各属性,同时考虑其周围的各个体素格的属性,进而综合得出当前体素格是否滤波的结论。从图6A和图7A的对比可以看出点云内部的错误滤波造成的空洞少了许多,但从图7A的深色圈看出仍有瑕疵,同时通过7C可以更细致的看出点云边缘以及内部仍有较多有效点云被错当成噪声的情况出现.

k近邻滤波效果以及误差分析如图8所示。该算法考察当前点周围最近的k个点的距离平均值,如果小于设定的阈值则保留该点,反之则判定为噪声点,将其删除。经过试验最终确定k为15个点,阈值为0.1效果较好,滤波结果如图8A所示。从图中可以看出,其将大量边缘点误判为噪声点被滤除。

将各个方法滤波的正确率进行比较,对比结果详见图9,可以看出针对空间疏密程度有较大差异的点云的各个方法中,本发明的滤波方法正确率最高。

造成上述三种滤波方法以上不良滤波结果的原因有两个,其一,本发明处理的点云是由二维映射到三维的,空间上疏密存在差异,在这种情况下,基于距离或体素格的方法容易受到这种差异的干扰,错将一些稀疏区域的点,如边缘点或内部点,判定为噪声而滤除,而将聚集度较高的离群点保留下来;其二,上述三种滤波方法均通过点的局部特征进行滤波,尽管图7的滤波方法考虑了栅格周围的情况,但本质只是扩大了利用的局部信息。基于局部的特征来判定某一点是否为噪声过于片面,没有利用点云的全局拓扑信息,这样会增加出现原因一中误判的概率。

本发明提出的点云滤波算法解决了上述问题,结合本发明方法的详细执行过程和图5的结果可以看出,本发明方法不会受到有效点云的疏密差异造成误判,图5C中显示的滤波结果基本正确,没有错误将点云内部的点以及边缘细节点错误滤除;通过图4遮罩的可视化看出本文方法利用点云的全局拓扑信息来进行滤波,准确性更高,最终的滤波结果也相对较好。

综上,本发明通过计算三维点云数据的参数进行自适应的体素格划分,进而对三维点云数据进行空间管理,得到点云的空间拓扑结构,最终正确滤除离群点。该方法对疏密不均的点云具有鲁棒性,能够有效去除离群点,同时保留点云细节,改善疏密差距较大的点云数据的滤波效果。本发明优选用于由双目立体图片生成的、在空间上稀疏度有较大差异的点云。

本发明可以以方法和/或计算机程序产品的形式来实现。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

15页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种复杂节点模型的尺寸标注方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!