ToF点云强度与位置相关联的目标提取算法

2021-01-14 09:51韩丰泽李国栋韩一菲孙志斌
激光与红外 2020年12期
关键词:离群邻域质心

韩丰泽,李国栋,韩一菲,郑 福,孙志斌

(1.中国科学院国家空间科学中心,北京 100190;2.中国科学院大学,北京 100049;3.辽宁大学,辽宁 沈阳 110036)

1 引 言

随着微电子学和光电子技术的发展,以及实际生活中的需要,三维成像已经成为当前视觉领域重要的发展方向之一。三维成像在实际中广泛的应用在无人驾驶、面部认证、3D打印、虚拟现实、生物、医学等方面。三维成像技术的研究方向主要有激光三角法三维成像[1]、双目视觉三维成像[2]、结构光三维成像[3]、光场三维成像[4]、数字全息三维成像[5]和飞行时间(Time-of-Flighr,ToF)三维成像等。其中ToF具有软件复杂度低、响应时间快、测量距离弹性大的优点。

ToF距离测量成像是通过计算发射出的光信号与物体反射回来的光信号之间的相位差来计算距离。近年来随着光学传感器和计算机技术的发展,飞行时间测量和距离测量技术成像逐渐成为研究的热点[6-15]。2014年,波恩大学的Hullin等人[6]使用连续波调制(AMCW)的飞行时间传感器,利用计算成像的技术实现瞬态成像,该技术可以在现实世界的场景中获取静态的光分布,同时降低瞬态成像的成本。2018年,蒙特利尔大学的Nguyen等人[9]提出了一种仅使用一个ToF深度相机和两个反射镜进行的三维重建方法。除了避免了同步问题以及多个深度相机可能造成的红外干扰外,该方法能够显著提高深度估计的精确度,还可应用于动态对象。Kentaro等人[14]利用矩阵辅助激光解吸/电离飞行时间(MALDI-TOF)质谱成像(MSI)来可视化苹果中可溶性碳水化合物的分布。

飞行时间方法获取的三维点云数据在近距离存在噪点较多、精度较差的问题,因此需要对点云数据进行滤波处理。目前研究多数是对基于激光雷达系统获取的点云进行滤波[16-17]。Zheng等人[18]提出一种新的点位置更新公式,并采用多种常规策略来客服尖锐的边缘收缩,在防止大规模尖锐结构严重失真方面具有优势。马先明等人[19]利用栅格法以及双边滤波算法对噪声进行滤波处理,能够较好地保留目标物几何特征并去除噪声。肖国新等人[20]提出了一种自适应双边滤波点云去噪算法,能够使空间方差参数自适应取值。赵凯等人[21]提出了一种基于密度的空间聚类算法(DBSCAN)的大场景散乱点云去噪方法。刘德儿等人[22]针对激光点云提出了一种基于二维Gamma分布的激光点云去噪方法,能自动识别噪声点,降低人工设置阈值的影响。

综上所述,目前国内外对于ToF技术的研究主要集中于瞬态成像、非视域探测成像、三维重建等领域,对于目标提取及滤波的研究多数停留在激光雷达点云方面,针对目前发展现状及未来ToF必将广泛应用的趋势,本文基于目前ToF技术获取点云的特性,采用强度与点云位置相结合的方式对点云进行目标提取及滤波操作,为三维目标重建提供良好的预处理手段。

2 点云数据获取2.1 ToF成像原理

3D-ToF相机通过计算发射出的光信号与物体反射回来的光信号之间的相位差来计算相机和目标物之间的距离,如图1所示。因此,为了计算发射和反射光之间的相位差,光源通常为脉冲或者调制连续波。本文使用的相机为AMCW-ToF相机,发射出的光信号s(t)用正弦波描述,接收信号为g(t):

(1)

其中,ω是调幅(AM)频率;A为调制信号的振幅;φ为相位偏移量;t为时刻。求飞行时间的过程可以用发射信号与接收信号的相关函数表示:

(2)

其中,T是积分时间,将公式(1)代入公式(2)可以得到:

c(τ)=[Acos(ωt-φ)+1]⊗[cos(ωt)]

(3)

图1 TOF成像原理图Fig.1 TOF imaging principle

由四项步法采集接收的光子信息,每个计算窗口的相位延迟为90°(0°,90°,180°,270°),即通过图1中的4个快门积分时间(C1,C2,C3,C4)的c(τ)计算可以得到:

(4)

其中,B是因为信号叠加而产生的偏置。

根据公式(4)可以得到相位偏移量φ、深度D,同时可以得到反射光的振幅A和偏置B:

(5)

其中,c是光速;t为光子飞行时间;f=ω为调制频率。

2.2 ToF获取三维点云数据

本文中使用德州仪器(TI)公司生产的3D-ToF传感器模块获取ToF数据。该模块包括传感器芯片OPT8241和控制处理器芯片OPT9221,其最大分辨率为320×240像素、最高帧率为120 fps、调制光的波长为850 nm。该模块可以获取点云数据的位置信息、强度信息和相位信息,如图2所示。其中图2(a)为原始点云位置信息,图2(b)为强度信息,图2(c)为相位信息。

图2 ToF三维数据Fig.2 ToF 3D data

3 算法流程及介绍

本文中提出的对于三维点云目标提取方法的主要步骤如图3所示。

图3 本文算法流程图Fig.3 Algorithm flowchart of this paper

3.1 强度信息目标区域确定

3.1.1 图像预处理

双边滤波器(Bilateral filter)是一种基于高斯滤波的滤波方法,本文中使用双边滤波对三维点云的强度信息进行平滑处理。双边滤波器需要两个高斯滤波,一个是对强度值的高斯滤波,另一个是对空间距离的高斯滤波。在对空间距离的高斯滤波中距离被滤波的像素点越远的点权重越小。双边滤波公式如下所示:

(6)

其中,g(i,j)是位于(i,j)处的强度值经过双边滤波后的结果;S(i,j)是点(i,j)处的邻域;f(k,l)是原始数据的强度值;w(i,j,k,l)是由强度值高斯滤波和空间距离高斯滤波结合后计算的结果,计算公式如下:

(7)

其中,ws空间距离高斯滤波;wr是对强度高斯滤波;σ是方差。

中值滤波器是一种非线性平滑滤波器,常常被用来保护边缘信息。该滤波器对每一像素点邻域窗口内的所有像素值做中值计算,公式如下:

g(x,y)=med[f(x-k,y-l),(k,l∈W)]

(8)

其中,f为原始图像;g为中值滤波后的图像;W是邻域大小,本文中W为3×3的矩形邻域。

3.1.2 目标区域确定

图像目标提取首先要进行边缘提取的处理,通过邻域内像素值的差分,每个像素值都是对应点在3×3领域中的最大值减去最小值,可以得到图像中的边缘信息:

J(x,y)=max[g(x-Δ,y-Δ)]-min[g(x-Δ,y-Δ)]

(9)

其中,J为边缘提取后的图像,结果如图4(a)所示。

为了便于目标的提取,将边缘提取后的图像二值化。通过统计图像中连通区域的面积大小,滤除光学实验台上的孔洞,并通过matlab中regionprops方法统计区域中的面积分布并用矩形框框出目标范围。通过选中的目标区域,将区域以外的值在原图中都置为0,再进行二值化形态学开处理,最终得到目标范围的二值图像,结果如图4(c)所示。开处理即为先腐蚀后膨胀。腐蚀即用一个3×3大小的结构元素扫描图像的每一个像素并作“与”操作,膨胀即用一个3×3大小的结构元素扫描图像的每一个像素并作“或”操作。

图4 目标区域确定过程Fig.4 Target area determination process

根据图4(c)将强度信息中的像素与点云位置信息中的点相对应,可从点云位置信息中获得目标所在点云范围,将非目标点云删去。

3.2 改进的K邻近离群点去除算法

由于强度信息中提取的只是整个目标点云的大致范围,提取的点云中还存在大量离群点导致目标边缘不清晰、有杂乱点,因此还需对目标点云进行离群点去除。离群点即异常值,指的是一个集合中偏离大部分正常值的值,如极大或者极小值。本文采用K邻近方法检测离群点,计算每个点pi的最近的K个邻近点到该点的平均距离,这些平均距离近似服从高斯分布,概率密度函数如下:

(10)

其中,xi是第i个数据点pi的K个邻近点平均距离;μ是均值;σ是标准差。

本文离群点去除算法过程如下:

1) 读入点云数据;

2) 计算每个点pi邻域大小n之内的点数,记为Nn(pi),并将Nn(pi)≤5的点判定为离群点,如图5所示,本算法中n为当前点K邻近的高斯均值;

3) 计算每个点最邻近的K个点,并将xi≥(μ+2σ)的点判定为离群点;

4) 从点云数据中删除离群点。

图5 基于邻域大小内点数的离群点判断方法Fig.5 Outlier judgment method based on the number of points in the neighborhood

4 仿真及实验结果分析

本文算法使用个人笔记本电脑运行:Inter(R) Core(TM) i5-7200U CPU,8 GB内存,64位操作系统,软件使用MATLAB 2018a,仿真数据集选用斯坦福大学的3D扫描储存库(The Stanford 3D Scanning Repository)。

4.1 改进K邻近离群点去除算法仿真

首先在三维点云数据Bunny、Dragon、Horse上增加高斯噪声和随机噪声,其中高斯噪声的标准差为0.025,均值为mean=y+(x-y)/2,其中x=max(points)是点云中的最大值,y=min(points)是点云中的最小值,噪声点的个数为目标点云的15 %。如图6所示。

图6 Bunny数据集仿真结果Fig.6 Bunny data set simulation results

本文通过定义“错误点数”,计算错误滤除率来评价算法滤波效果,错误点数是对离群点滤除前后两个点云求异或,即不在交集中的点。其中错误点分为两类:1)不该滤除的目标点(Target point that should not be deleted,TPND); 2)没有滤除的噪声点(Noise point that not be deleted,NPND)。错误点集可以表示为:

(11)

其中,X是错误点集,P和P0分别是目标原始点集和滤波后点集,X为P与P0的异或。错误滤除率为错误点数与滤除前点数的比。

根据3.2节中内容,离群点去除时需要参数邻域大小n,由于每个点云数据集的大小,形状都不同,因此每次人工输入n的值较为不准确。仿真时,将n的值设置为当前点云的K邻近的高斯均值,并与人工输入n值做对比,人工输入分别选择1、1.2、1.5、1.8、2、5、10、13、15、17、19 mm等11个值。通过图7可以看出,高斯均值(图中箭头所标点,在Bunny数据集中高斯均值计算为2.3 mm)在错误滤除率和运行时间两方面均表现最好。

图7 高斯均值与人工输入参数误差率及运行时间对比Fig.7 Comparison between the effect of Gauss mean and artificial input parameters

Bunny原始点云数据的质心为(-0.0240 m,0.0966 m,0.0356 m),增加噪声后的质心为(-0.0231 m,0.0986 m,0.0310 m),增加噪声前后的质心偏差为5.1 mm。将邻域大小为高斯均值和人工输入所得点云的质心分别与原始点云数据质心对比,如图8所示,可以看出使用高斯均值做为邻域大小所得的点云质心偏差最小(图中箭头所标点)。

图8 高斯均值与人工输入参数质心偏差量对比Fig.8 Comparison of the deviation of the centroid of the Gaussian mean and the artificial input parameters

为客观评价本文算法,以Bunny数据集为例,在点云质心偏差量方面与传统盒滤波、高斯滤波、中值滤波及matlab集成的pcdenoise离群点去除算法做对比,本文的改进K邻近离群点去除算法效果最好、质心偏差最小,如表1所示。

使用K邻近的高斯均值在增加了随机噪声和高斯噪声的Bunny、Dragon、Horse三个点云上做算法处理,通过对原始目标点个数、增加噪声后离群点滤除个数,错误点数,错误滤除率,运行时间等方面结果的统计,如表2所示,可以看出,改进K邻近离群点滤除算法效果较好,错误滤除率较低,均在2 %以下。

表1 算法客观性能对比Tab.1 Comparison of objective performance of algorithm

4.2 实验结果及分析

本文对鲸鱼玩偶、警车模型、盆栽、木头人四种物体进行实验采集、算法处理。在强度预处理上,通过计算均方误差(MSE)、峰值信噪比(PSNR)、结构相似性(SSIM)、信息熵(Entorpy)、运行时间等对比其性能,如表3所示。根据表3可以看出,双边滤波图像质量更好,中值滤波运行时间较短。

图9(a)~(d)为四种目标物体的原始强度图。图9(e)~(h)是四种目标物体通过强度目标区域确定后的二值图,可以较为清晰提取出目标的范围,较好的保留其完整性。

表2 改进的K邻近离群点去除算法仿真结果Tab.2 Simulation results of the improved K-neighborhood outlier removal algorithm

表3 双边滤波与中值滤波图像质量对比Tab.3 Image quality comparison between bilateral filtering and median filtering

将强度信息中的目标范围一一对应至点云的位置信息,提取出目标在点云中的位置,再运用3.2节中的改进K邻近离群点去除算法对获取的目标点云进行滤波。依据4.1节中对于离群点去除的仿真结果,可以看出,本文算法能够有效的去除噪声点,错误滤除率低。图9(i)~(l)是本文算法目标提取及点云滤波后的最终结果。并针对鲸鱼玩偶,将改进K邻近离群点去除算法改为传统盒滤波、高斯滤波、中值滤波及matalb-pcdenoise方法,并于本文算法做对比,结果如图10所示。

文献[24]采用双阈值空间滤波对点云进行离群点去除,然后通过基于法向量的RANSAC改进算法提取目标,对于正方体、圆锥等标准物体具有良好提取效果。通过对图9(a)~(d)中四种物体获取的目标点云进行滤波处理,根据目标滤波前后的点数、运行时间等角度与本文算法对比,如表4所示。本文算法能够更好的保留物体的完整性,并且运算时间较短。

图9 基于ToF真实目标物体点云提取实验结果Fig.9 Experimental results of point cloud extraction based on ToF real target objects

图10 改进K邻近离群点去除算法与传统三维滤波方法对比Fig.10 Comparison of improved K-neighborhood outlier removal algorithm and traditional 3D filtering method

表4 与基于法向量的RANSAC改进算法 目标提取效果对比表Tab.4 Comparison of target extraction between our algorithm and the improved RANSAC algorithm based on normal vector

5 结 语

本文基于强度与位置信息内禀映射特征为TOF点云从复杂背景中提取目标提出了一种新的思路。同时在点云位置信息处理方面,改进K邻近离群点去除算法,使用高斯均值选取邻域大小,减少了人工参数的输入,将错误滤除率降低至2 %以下,滤除前后质心偏差为0.073 mm。本文算法相较于基于法向量的RANSAC改进算法运行时间提高30 %左右,并且目标保留完整,能够为三维重建、点云融合、目标识别等研究方向提供较好的支持。未来我们将对多目标物体、环境复杂度高等情况做进一步研究。

猜你喜欢
离群邻域质心
一种基于邻域粒度熵的离群点检测算法
重型半挂汽车质量与质心位置估计
基于混合变邻域的自动化滴灌轮灌分组算法
基于GNSS测量的天宫二号质心确定
稀疏图平方图的染色数上界
一种相似度剪枝的离群点检测算法
基于邻域竞赛的多目标优化算法
候鸟
关于-型邻域空间
离群数据挖掘在发现房产销售潜在客户中的应用