点云噪声快速清理方法、装置和计算机可读存储介质
文献发布时间:2024-01-17 01:19:37
技术领域
本发明涉及机器视觉三维测量技术领域,尤其涉及点云噪声快速清理方法、装置和计算机可读存储介质。
背景技术
三维成像设备扫描物体后生成的点云中会存在噪点,这些噪点大部分是离散的、孤立的点簇。因此,为了获得更好的成像效果,需要将噪点去除。
在现有方法中,主要通过下述方法将点云的噪点进行去除:
1、以点云每个点为中心,利用KDtree等数据结构实现相对快速的最近邻检索,以清除点云的噪点;
2、以点云每个点为中心,建立初始半径形成球体来迭代合成点簇,以清除点云的噪点;
3、将点云进行三角网格化,并将点云分成多个子图处理,以清除点云的噪点。
然而,上述方法均存在流程复杂、耗时较长等问题,且与CUDA共享内存技术结合来实现点云噪点的清理存在一定的难度,且容易出现与CPU端不一样的清理效果,严重制约了点云噪点清理技术的发展。
发明内容
本发明的目的是提供点云噪声快速清理方法、装置和计算机可读存储介质,其通过引入邻域核来统计和标记每个像素的噪点,有效简化了噪点清除流程和降低清除难度,大大提升了噪点清除的准确性,该方法适合部署到成像设备终端,以提高成像获取的点云和深度图质量。
为了实现上述目的,本发明公开了一种点云噪声快速清理方法,点云具有M个像素图像,所述点云噪声快速清理方法包括如下步骤:
S1、以第m个像素图像I
S2、计算邻域核N
S3、判断邻域核N
S4、依据步骤S3的判断结果,对邻域核N
S5、重复步骤S2至S4,直至遍历邻域核N
S6、分别判断噪点计数图I
S7、依据步骤S6的判断结果,分别对噪点计数图I
S8、对邻域核N
S9、重复步骤S1至S8,直至遍历点云的所有像素图像。
较佳地,引入邻域半径R,邻域核N的表达式为N=(R*2-1)*(R*2-1)。
较佳地,所述步骤S4具体包括:
若邻域核N
较佳地,预设阈值T的表达式为T=(R*2-1)*(R*2-1)/2。
较佳地,所述步骤S7具体包括:
若噪点计数图I
较佳地,所述步骤S1之前还包括:
判断第m个像素图像I
若是,则进入步骤S1;
若否,则舍弃第m个像素图像I
较佳地,所述步骤S1之前还包括:
判断点云的类型;
若点云为有序点云,则进入步骤S1;
若点云为无序点云,则对点云进行栅格化处理,以将无序点云转换为有序点云后,再进入步骤S1。
较佳地,采用CUDA技术和共享内存技术执行所述点云噪声快速清理方法。
相应地,本发明还公开了一种点云噪声快速清理装置,点云具有M个像素图像,所述点云噪声快速清理装置包括:
构建单元,用于以第m个像素图像I
计算单元,用于计算邻域核N
第一判断单元,用于判断邻域核N
计数单元,用于依据第一判断单元的判断结果,对邻域核N
第一遍历单元,用于遍历邻域核N
第二判断单元,用于分别判断噪点计数图I
标记单元,用于依据第二判断单元的判断结果,分别对噪点计数图I
清理单元,用于对邻域核N
第二遍历单元,用于直至遍历点云的所有像素图像。
相应地,本发明还公开了一种计算机可读存储介质,用于存储计算机程序,所述程序被处理器执行时实现如上所述的点云噪声快速清理方法。
与现有技术相比,本发明通过先计算邻域核N
附图说明
图1是本发明的点云噪声快速清理方法的流程图;
图2是传统采用CPU端进行点云噪声清理的局部标记图;
图3是采用本发明的点云噪声快速清理方法进行点云噪点清理的局部标记图;
图4是点云噪点清理前的标准块深度图;
图5是采用本发明的点云噪声快速清理方法对图4进行点云噪点清理后的标准块深度图;
图6是采用CPU端进行点云噪点清理和采用CUDA共享内存技术进行点云噪点清理的时间对比图;
图7是采用CUDA技术但未采用共享内存技术,与采用CUDA技术和共享内存技术进行点云噪点清理的时间对比图;
图8是本发明的点云噪声快速清理装置的结构框图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1-图7所示,本实施例的点云噪声快速清理方法,适于对成像设备终端等视觉获取设备获得的点云进行噪点清理。该点云具有M个像素图像,所述点云噪声快速清理方法包括如下步骤:
S1、以第m个像素图像I
较佳地,引入邻域半径R,邻域核N的表达式为N=(R*2-1)*(R*2-1)。
较佳地,所述步骤S1之前还包括:
判断点云的类型,这里的点云的类型分为有序点云和无序点云。
若点云为有序点云,则进入步骤S1。
若点云为无序点云,则对点云进行栅格化处理,以将无序点云转换为有序点云后,再进入步骤S1。即本步骤实际为在I
较佳地,定义不同类型图像无效值为V
判断第m个像素图像I
若是,则进入步骤S1。具体地,在I
若否,则舍弃第m个像素图像I
S2、计算邻域核N
S3、判断邻域核N
具体地,当邻域核N
S4、依据步骤S3的判断结果,对邻域核N
较佳地,所述步骤S4具体包括:
若邻域核N
S5、重复步骤S2至S4,直至遍历邻域核N
S6、分别判断噪点计数图I
S7、依据步骤S6的判断结果,分别对噪点计数图I
较佳地,所述步骤S7具体包括:
若噪点计数图I
S8、对邻域核N
S9、重复步骤S1至S8,直至遍历点云的所有像素图像。
较佳地,本实施例采用CUDA技术和共享内存技术执行所述点云噪声快速清理方法。采用CUDA技术和共享内存技术执行所述点云噪声快速清理方法的一种伪代码如下:
“Knernel Label(Im,Ic,R)
Ty=threadIdx.y
Tx=threadIdx.x
Ro=blockIDx.y*TILE_DIM+Ty
Co=blockIDx.x*TILE_DIM+Tx
Ri=Ro-(2R-1)
Ci=Co-(2R-1)
__shared__cache[BLOCK_W][BLOCK_H]
Do
Cache[Ty][Tx]=Im[Ri][Ci]
__syncthreads()
Count=0
If Ty If Cache[Ty][Tx]!=Inval id then For all(2R-1)do If Cache[Ty+i][Tx+j]!=Inval id then Len=abs(abs(Cache[Ty+i][Tx+j])-abs(Cache[Ty][Tx])) Count=Count+1 End if End for End if End if __syncthreads() If Ri Ic[Ri][Ci]=Count End if”。 可以理解的是,本实施例结合CUDA技术和共享内存技术来执行所述点云噪声快速清理方法,以实现类似滑动窗口滤波的清理技术,达到更优的处理效率,并且便于部署到成像设备终端,提高了成像获取的点云和深度图质量。图6示出了采用CPU端进行点云噪点清理和采用CUDA共享内存技术进行点云噪点清理的时间对比图,及图7示出了采用CUDA技术但未采用共享内存技术,与采用CUDA技术和共享内存技术进行点云噪点清理的时间对比图,由图6和图7可知,采用结合CUDA技术和共享内存技术进行点云噪点清理,能够获得更高的清理效率。 请参阅图8,相应地,本发明还公开了一种点云噪声快速清理装置,点云具有M个像素图像,所述点云噪声快速清理装置包括: 构建单元10,用于以第m个像素图像I 计算单元20,用于计算邻域核N 第一判断单元30,用于判断邻域核N 计数单元40,用于依据第一判断单元30的判断结果,对邻域核N 第一遍历单元50,用于遍历邻域核N 第二判断单元60,用于分别判断噪点计数图I 标记单元70,用于依据第二判断单元60的判断结果,分别对噪点计数图I 清理单元80,用于对邻域核N 第二遍历单元90,用于直至遍历点云的所有像素图像。 相应地,本发明还公开了一种计算机可读存储介质,用于存储计算机程序,所述程序被处理器执行时实现如上所述的点云噪声快速清理方法。 结合图1-图8,本发明通过先计算邻域核N 以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。
- 风力发电机组快速起动方法、装置及计算机可读存储介质
- 快速支付方法、装置、设备及计算机可读存储介质
- 快速辨别黄龙病的手持装置、方法及计算机可读存储介质
- 分层存储方法、分层存储装置及计算机可读存储介质
- 段码液晶屏检测方法及装置、计算机装置及计算机可读存储介质
- 点云分割方法、装置、计算机可读存储介质和计算机设备
- 点云分割方法、装置、计算机可读存储介质和计算机设备