三维点云数据的预处理研究

2021-08-16 11:17张华良
科学技术创新 2021年22期
关键词:体素滤波噪声

王 健 陈 政 张华良

(1、沈阳化工大学,辽宁 沈阳 110142 2、工业控制网络与系统实验室,中国科学院沈阳自动化研究所,中国科学院机器人与智能制造创新研究院,辽宁 沈阳 110169)

三维激光扫描技术已经日益成熟,点云数据采集及其预处理技术已经成为现代工业中炙手可热的新型扫描技术,目前三维激光扫描在工业生产中的各个部位包括焊接、码垛、装配、喷涂、抛光、上下材料等各个领域均已经得到了普遍的应用。由于3D结构的光技术既不必再需要使用很精确的时空延迟方式来测量又能够解决双目中的匹配算法存在的复杂性和鲁棒特征问题。因此它们具有计算简便、测量精确度较高的特点,并且对于干扰较小的弱光条件、没有明显的纹理及其形状改变的表层同样也可以进行精确的测量。但是在实际的采集物体点云数据过程中,由于物体本身材质的粗糙不一、光照不均匀等原因,3D结构光扫描出物体点云,易形成离群点和噪点。同时由于点云扫描测量设备的工作量程和应用场景扫描深度等的限制,对于一些大型专业工件或者一些大型的技术实验应用场地,不能直接进行构造和形成完整的点和云,必须同时进行多次点云扫描进行测量,因此每次点云扫描的测量结果常常都可能是多块的且具有不同的轨迹坐标曲线体系且极有可能同时存在较大下降噪声的三维点云测量数据,不能完全能够满足我们后续三维轨迹曲线规划扫描算法的实际应用发展要求,所以我们就常常需要多次同时扫描三维点点和云的测量数据库并进行多次去噪、简化、配准以及进行下降噪声采样等的数据预处理。本文主要目的是深入研究基于点云数据模型的重要预处理应用技术,主要研究内容功能包括点云除灰模型减少随机噪声、点云精确化、点云配准以及点层层云除灰减少噪声采样等,并通过其在实践中的检验结果验证了其中的一些重要预处理应用技术。

本文利用PCL点云库进行点云处理研究。PCL是一个跨平台的开源点云库。对于三维点的云数据处理,PCL库是一个非常模块化的结合现代c和c++应用模板数据库。从分析算法设计角度和从分析结果来看,PCL包括用于操作点云数据的各种三维处理算法,包括过滤,分段,注册,检索,特征提取,识别,跟踪,表面重建,可视化等。根据基类划分每种算法,尝试将功能集成在整个流水线处理技术中,使整个算法紧凑,清晰。

1 点云数据采集

主要有两种方法可以在点云上收集数据采集,即接触扫描集合或非接触扫描集合。由于该接触扫描的收集是直接接触被检测到的对象,很有可能对被检测物品造成形变等影响,对于实验不利,因而使这种非接触式扫描的采集手段应用更为广泛。

相比于传统接触式采集,非接触式采集技术既具有算法简洁、测量精度更高的特点,又具有适合于光照不均匀、无明显纹理和形态变化等特殊情况下的物体表面同样也是可以直接进行精密的测量并及时获得关于物体表面的各种几何纹理信息,目前己经得到了广泛的研究和应用。在众多的三维激光扫描仪器中,Mechmind3d面结构的光相机是本文中主要用来实现工件扫描的一种仪器设备,其特点是它操作简单、精度高、体积小、携带方便,而且从三维扫描中获取物体的点云数据模型分析器的精度相对比较高,并且它们还可以产生多种格式的点云。

2 点云数据预处理

2.1 点云降采样图1)

图1 点云降采样结果

一般来说,三维扫描装置所获取的点云信息数据模型由于数据量大,且信息点密集,不利于它们的存储、传递和进行计算,有必要针对这些信息进行下降采样。点云降采样的基本原理是:对于曲率较大的点云降采样模型,应尽可能多地留下一个数据点,而对于曲率较小的点云降采样模型,应尽可能少地保留数据点。点云降采样技术主要可以分为四种:一是根据点云的采样密度及其表面变化情况进行降采样,二是根据点云中点的个数及点云在其表面上的变化系数等因素进行分块降采样,三是根据点云中点的曲率值等因素进行上采样,四是根据点云中点的曲率值等因素进行降采样,完成点云数据降采样。无论在网络上采用何种取样方式,其主要目的都是为了在简化数据时保持点云尖锐特点。

本文将使体素网格滤波器对点云进行下降采样。其通过原始点云数据创建一个三维体素栅格坐标系,然后,在每个体素中,体素中的其他点由体素中的所有重心近似显示,使体素中的所有点最终由一个重心表示。对于所有体素处理后得到的点云,该方法比体素中心逼近法速度慢,但对采样点对应的曲面精度更高。

2.2 点云去噪图2)

图2 点云滤波结果

以下几个情况都是需要点云做出滤波和优化的:第一,点云的空间排列非常杂乱,而且需要柔顺。第二,因为不可抗因素遮挡等问题导致距原始点云较远的离群点的数据需要被去除。第三,大量的数据都需要在群中进行次级采样。第四,噪音的数据是否需要被去除。

在工业上一般按照相机噪声生成的条件把这些噪音分为两种类型,即主动和被动噪声,其中主动和被动噪音主要是由于相机自身的检测精度所导致产生的误差而直接引起的,而被动和受影响环境中客观物体受到干扰而间接引起。噪声的种类不同,所需要采用的去噪技术也不一样。主动化的噪声一般都是为了放大扫描工件的扫描区域范围而引起的,通常会表现成一个大片点云,利用三维图像模型信号处理软件就能够对其进行手动地消除。一般来说,可采用meshlab软件进行手工去噪。被动噪声的消除通常采用去噪算法实现,如八叉树算法、k-D tree算法、空间单元格法、体素滤波、半径滤波、Laplace平滑算法等。通常被动噪声在工业中较为频繁,其处理方法通常有以下三种:

(1)点云体素分布滤波:点云体素的滤波概念与普通像素类似,使用像素aabb中的包围盒将一个点云上的数据体素化,一般体素越密集的点在位置和密集地方上的信息就变得越多,噪音大的点和光线距离群的密集地方也就信息越多,这些都已经可以直接通过点云体素的分布网格中被过滤去除。另外在其他技术方面若是我们使用一些高分辨率激光照相机等摄像装置对一个点云上的数据库信息进行了实时采集,往往点云上的数据库就可能会更加密集。点云盘的数量太大,给我们后续的数据分割线和操作管理带来很大的困难。体素滑动滤波器不仅能够直接做到快速向下滑动采样,而且不至于直接破坏点阵微云自己的立体几何基本结构。

(2)半径滤波:其中半径滤波方法较为简单而又粗暴。以某一圆为中心绘制的圆计算落在另一个圆中点上的数量,当其中一个数量超过了给定值,则应保留这个圆,其中一个数量超过了给定值则应立即剔除这个圆。

(3)Laplace平滑:对网格中的每个顶点的坐标,用它邻近连接点的坐标的平均值代替。其公式如下:

其中,Sp为滤波修正点的位置;p为滤波前点的位置;q为邻域内的点,不包括p。

然而,每一种算法都有一定的局限性,例如体素滤波比用体素中心来逼近的方法更慢,运算效率较低。Laplace平滑算法会导致边沿损失,尺寸总体变小。半径滤波中圆的半径和圆内点的数目都需要人工指定。因此权衡各种滤波算法的利弊,为了提高运算效率和过滤质量,本文基于文献[1]的二位图像的经典过滤算法——导向滤波器,对其进行改进,使其适配于3D点云的过滤要求。

以下为改进后的算法步骤:

步骤一:在三维点周围,假设一个局部线性模型:

其中,Ak是被过滤的点,pi是3*3矩阵,bk是3*1向量。

步骤二:在保持线性模型的同时使q和p之间的差异最小化。具体地说,就是使线性模型拥有最小重构残差:

步骤三:解决上述优化问题后,得到:

其中,μi周围是临点3*3协方差矩阵,i是一个单位矩阵,∊I为周围临点的均值向量。进而可以调整最近邻搜索半径和去控制滤波器的滤波效果。导向滤波器最大的优点是保留边缘和轮廓。尽管双边滤波器可以达到同样的效果,但是他需要一个明确的法向量估计,这对于一些受噪声干扰的点云来说是困难的。

2.3 点云配准图3)

图3 点云配准结果

在工业环境中,对于大型对象或场景,可以从多个位置捕获点云。每个点云都是场景(对象)的部分表示,需要合并到单个点云中以形成整个场景。然后,配准过程将从各个位置捕获的部分点云组合成扫描场景的单个点云。局部点云并不总是在同一坐标系中。因此,在配准过程中要求在同一坐标系中对齐。

点云配准一般分为粗配准和精配准两个步骤。粗配准是为了减少点云数据之间的位移和旋转错位,使精配准不会偏离实验方向。常用的粗配准方法有中央重叠法、标记法、特征点(线、表面)提取、ICP等。最后一种方法通常用于特征明显的点云数据。为了减小不同点之间的配准差值,需要在粗配准的基础上进行精配准。最著名的基于原始数据的精准配准算法是BESL和McKay提出的最近邻迭代算法(ICP)。

点云配准算法改进:

ICP该算法的一个主要基本思路特点就是:在具有相邻点对的云中可以进行点点搜索以快速确定最邻近的严密点和云对,利用点点寻找算法得到的最近严密点对可以透过和和ffaugeraheberc所结合提出的严密点对求解及计算法及过程公式来进行计算被搜索检测物的最近点对变换计算参数,点对云的搜索及最近点对变换计算参数的严密求解及计算均因为需要首先采用迭加替代变换方法后再进行二次计算,直到每个目标计算函子的数值被我们控制在一个我们可以完全承受的精度范围内,停止迭加替代的计算过程。

然而,当配准相对简单的点云时,当前的算法可以解决。但是,当点的数量和点云的复杂性增加时,现有算法会存在配准精度误差以及运算时间长的问题。这是由于云的点的数量和拓扑结构变得过于复杂,而优化成本函数所涉及的关键点的数量过高,从而导致不稳定的结果。

为了有效解决这个复杂问题,我们将通过一种采用正交同态密度分布刚性变换(NDT)设计算法的这种方式应用来快速确定两个都包含有个数超过100,000个小数点的正态分布小点点和云之间的正态刚性分布变换。正态空间分布点数变换统计算法中所采用的点数是一种国际配准统计算法,它将国际标准最新和优化的计算技术成果运用整合到了三维点数的统计计算模型中,以便于我们确定这两个空间点的点数和云之间能否进行最佳化的匹配。由于它们在节点配准的工作过程中不能充分地综合利用标准节点的某些特性点来进行节点计算与标准匹配,所以配准速度比其它的配准方法来得要快。以下为该算法的具体运算步骤:

步骤一:通过过滤各种输入点云以有效地缩短匹配的时间,本步只对来自源文件的数据量进行滤波和分析,减少其输出的数据量达到原来的15%左右,而且目标点云并没有根据特定的情况需要进行滤波和分析,由于NDT算法中所使用的体素网格数据结构不仅仅是使用单一的点,而是利用其每一个数据结构的体素单元中所包含的点作为统计信息,因此不需要过滤目标云。

步骤二:修改一些与比例有关的参数。由于NDT算法使用体素化数据结构和More-Thuente线搜索,因此需要调整某些参数以适合数据。transformation epsilon两个参数分别从其长度和弧度上来定义变换向向的矢量[x,y,z,roll,pitch,yaw]的最小递增向向,一旦这些增量发生变化就会降至这个阈值以下,配准就会终止。步长参数用来定义“more-thuente”线上搜索所能够容纳的最高步长。此线搜索算法可以确定一个低于此最高值的目标点为其最佳步长,并且当接近目标点为最佳解决方案时会减少其步长。较大的最大步长将能够以较少的迭代次数清除较大的距离,但存在过冲和最终以不希望的局部最小值结束的风险。最后,Resolution参数定义内部NDT网格结构的体素分辨率。这种结构易于搜索,每个体素都包含统计数据,均值,协方差等与其包含的点相关联。

步骤三:将点云传递给NDT配准程序。输入点云是将要转换的点云,目标点云是输入云将与之对齐的参考框架。添加目标点云后,将使用目标点云数据初始化NDT算法的内部数据结构。

步骤四:创建一个点云配准变换矩阵的初始估计。尽管无需进行这种初始转换就可以运行该算法,但是如果使用这种初始转换,易于获得更好的结果,尤其是在参考帧之间存在较大差异的情况下。

步骤五:准备对齐点云。生成的转换后的源点云存储在输出点云中。然后,我们显示比对结果以及欧氏适应性得分,该得分的计算方式是从输出云到目标云中最近点的距离的平方和。

3 结论

随着机器人工业精度技术要求的进一步提升,在机器人加工领域,3D扫描技术已成为一个研究的重点,在医疗、工业、建筑领域都有极好的发展前景。由此可见,三维网络点云数据处理是极其必需的。针对三维激光扫描点云数据进行的处理技术主要有点云去噪和平滑,点云配准及点云下采样。点云数据处理的精确度对于机械臂最后一步形成加工路径的精确度与执行力有着至关重要的影响,同时也对提高算法运行速度提出进一步的要求。此外,对也要注意点云数据处理要保存原始点云数据的特征,根据物体间的点云数据差异性,选择合适的处理算法以便达到最好的效果。

猜你喜欢
体素滤波噪声
舰船通信中的噪声消除研究
船岸通信技术下舰船导航信号非线性滤波
瘦体素决定肥瘦
Dividing cubes算法在数控仿真中的应用
基于体素模型的彩色3D打印上色算法研究
骨骼驱动的软体角色动画
一种考虑GPS信号中断的导航滤波算法
高效LCL滤波电路的分析与设计
汽车制造企业噪声综合治理实践
汽车变速器啸叫噪声处治