分层联合双边滤波的深度图修复算法研究
2021-03-23朱晓林陈国泉肖岳平
万 琴,朱晓林 ,陈国泉,肖岳平
1.湖南工程学院 电气与信息工程学院,湖南 湘潭 411104
2.湖南大学 机器人视觉感知与控制技术国家工程实验室,长沙 410082
在三维重建[1]、人机交互(Human-Computer Interaction,HCI)[2]和汽车辅助驾驶[3]等图像分割、目标检测、物体跟踪领域中三维深度信息是三维场景信息的重要特征[4]。自微软公司发布Kinect体感设备以来,深度信息的获取更成为研究热点,深度图能够直接反映出场景物体到相机的距离,但目前三维深度相机(例如Kinect 和Time of Flight,ToF)获取的深度图通常存在分辨率低、深度值缺失和噪声污染等问题。
到目前为止,获取深度信息的两类主要方法[5]:被动方法和主动方法。立体匹配(被动方法)是在多视图中进行对应像素点匹配,然后估计像素点的视差求取深度,是获取深度信息的经典方法。该方法不依赖于复杂的设备,只需要拍摄双视图或多视图图像计算估计深度信息,如通过立体匹配[6]和三角测量[7]计算图像的深度信息,但在实际应用中仍然存在图像校正算法精度低以及无纹理区域效率低等问题。与被动方法不同,获取深度信息的主动方法是通过基于3D飞行时间相机(例如,3D-ToF[8]、Kinect v2[1])和基于结构光相机(例如,Kinect v1[4])来实现动态场景的深度信息实时获取。ToF 相机可以获取实时动态场景的深度信息,但是存在分辨率低和噪声干扰等问题。而Kinect 相机生成的深度图通常容易产生与深度距离相关的测量误差,导致深度不连续、彩色图像中边缘之间的不匹配,以及由于无效测量引起的各种空洞[9]。
针对ToF相机存在的问题,现有方法主要通过扩大空间分辨率和平滑噪声来进行深度修复[10];而针对Kinect相机深度不连续和空洞问题,主要利用丢失的深度值来填充空洞进行深度修复[11],如吴倩等人[12]结合彩色图像引导滤波对深度图进一步填充、平滑、去噪。虽然这两种深度图的修复任务不同,但Yang等人[5]指出这两种深度图的退化可以用相同的法则来制定,这意味着ToF深度图恢复的大多数方法也适用于Kinect深度图恢复。例如Yang等人[5]的工作可用于ToF和Kinect深度图恢复。Park等人[8]的工作提出的ToF深度图修复也被证明适用于Kinect深度图修复的扩展工作[13]。
针对以上两种深度图像的修复问题,国内外研究者在不同的研究领域都提出可用于以上深度图中深度数据的优化算法。联合双边滤波(Joint Bilateral Filtering,JBF)[14]和扩展双边滤波器(Bilateral Filtering,BF)[15]可有效用于深度图修复,基于彩色图像引导设定双边权重,但忽略了深度图像的边缘信息/纹理信息。在基于方向的联合双边滤波器的基础上,文献[16]将深度数据的时间相关性和空间相关性进行结合,提高深度数据修复效果,深度图像质量明显提高;文献[17]提出融合超像素的自适应滤波窗口,定性定量地对深度图进行修复和优化。但以上研究工作由于没有充分考虑彩色纹理信息,容易产生纹理伪像和深度不连续性问题。而由于深度图的待修复区域主要分布在发生遮挡区域和无纹理区域,其他区域是单独的小噪声像素,联合双边滤波器[14]窗口尺寸大小固定,小尺寸窗口处理大空洞区域效果有限,采用大尺寸窗口则会增加算法的处理时间,造成边缘模糊和纹理伪像。
针对上述研究中深度图修复存在边缘模糊、纹理伪像以及耗时长等问题,本文提出一种基于深度置信度的分层联合双边滤波深度图修复算法,总体框架图如图1所示。首先提出RGB-D 相机深度退化模型;其次对获取的深度图进行深度像素置信度分类,然后在联合双边滤波的基础上结合深度置信度测量机制提出分层联合双边滤波;最后进行定性对比实验和定量结果分析表明,本文算法提高了深度图修复的边缘保持效果和深度值连续性,能进一步获取高精度的三维深度图。
图1 算法总体框架图
1 深度退化模型
虽然RGB-D 传感器技术的发展迅速,但获取的三维深度信息精度不高。Kinect 深度图可能会随机丢失深度数据,而ToF深度图经常会出现分辨率低和噪声污染退化问题,导致观测的深度图比深度真实图像素数少。故针对最常见的随机深度缺失和结构性深度缺失两种退化形式,建立了深度退化模型如下。
假设I和I0分别表示深度信息实际值(Ground Truth)和深度相机设备捕获的深度图,深度退化模型可以表示为:
式中,P表示观测矩阵,n是随机产生的噪声。观测矩阵P在不同类型的深度相机设备、不同的场景环境中采用不同的矩阵形式。
2 深度置信度测量
为了能提高深度修复的处理速度和精度,本文在深度图退化模型的基础上进一步提出深度置信度测量。但是通常深度图中大多数像素是具有高置信度可正常获取的像素,确定强大而有效的置信度分类度量,能极大地提高置信度测量的稳定性和精确性。深度像素的置信度测量主要是通过左右一致性[18](Left Right Consistency,LRC)检查进行判断,参考文献[18]主要是通过单个像素之间进行LRC 计算,忽略了深度像素之间的关联性。本文方法结合感兴趣空洞区域窗口化和深度像素范围搜索特点,提出深度像素邻域化计算LRC。为提高算法的鲁棒性和精确性,将单个像素之间的LRC计算扩展至邻域大小为3×3。Pi( )x,y,d表示深度值为d的一个像素,PR( )xR,y,dR表示Pi像素右邻域的像素,同样PL( )xL,y,dL表示Pi像素左邻域的像素,左右一致性LRC可以被定义为:
式中计算得到的CLRC小于预先设定的阈值时被判定为高置信度像素;大于预先设定的阈值时被判定为低置信度像素;当CLRC大于阈值ℂmaxLRC认定为被遮挡像素。图2是深度置信度测量流程框架图,通过引入深度置信度测量机制,对待修复深度像素进行置信度大小分类,区分出了高置信度像素、低置信度像素、被遮挡像素,有利于提高后续深度修复速度和精度。
图2 深度置信度测量流程框架图
3 分层联合双边滤波
本文通过置信度测量机制从高置信度像素到低置信度像素的方式对需修复的深度图进行处理。生成深度置信度用于后续联合双边滤波处理,动态估计深度像素的权重。提出的分层联合双边滤波算法重点关注低置信度和被遮挡的像素,在联合双边滤波基础上结合置信度分层机制,提高像素级别的深度修复的上下文适应性。
设p表示滤波图像J的一个像素,则双边滤波器可表示为:
式中,q是p的邻域 Ω 中的像素,当像素q和p之间的空间距离增加时,两个内核计算的权重会取较小的值,不同的相邻像素被空间距离分开,可以很好地保留图像边缘。
但双边滤波器的权重值并不稳定,在边缘区域滤除噪声能力弱,为了改善双边滤波器的稳定性问题,通过使用空间近似度σS和亮度相似度σR计算相邻像素的权重值,并通过加权平均值对缺失像素进行插值。设D和d分别表示上采样深度图和给定的低分辨率深度图。然后根据下式计算深度图中的p位置处的深度值:
式中,j是相邻像素的像素索引号,qj是相邻像素对应位置,dqj是qj处像素的深度值。式(5)的权重值H表示为:
式中,Ip和Iqj分别是p和qj处的颜色强度。参数σS和σR分别调整空间相似度和亮度相似度来改变权重值。
由于联合双边滤波只是通过空间相似度σS和亮度相似度σR设置变化的权重值,并未改变不同深度像素之间以及像素邻域之间的权重值。分层联合双边滤波在引入深度像素分类机制的基础上,通过空间相似度σS和像素邻域化关联重新定义像素的权重。分层滤波器窗口尺寸范围内的像素权重值一般有多种方式表示,例如有相距中心像素的距离[4]、基于预先设置的比例函数[13]等。为了简化算法处理和提高算法的处理效率,本文通过比例函数将高置信度深度像素的滤波器窗口权重值设置为1,则分层联合双边滤波的权重值Q(⋅)定义为:
式中,L是距滤波器中心像素的距离,在深度置信度测量机制的基础上,对不同置信度的深度像素计算相应的权重。用Di表示第i个滤波器窗口的深度值,Ii表示输入的待修复彩色图,则本文设计的分层联合双边滤波器可以表示为:
其中,Wi是第i个滤波器窗口的加权函数:
式(9)中GσR采用高斯核形式计算:
置信度像素的权重值分配在分层滤波方法中起着重要作用,公式(7)对原始深度图像中的高置信度像素分配高权重;低置信度像素分配零权重,可以抑制滤波器窗口中的异常值。
图3 Art、Moebius和Aloe深度图修复对比
整个算法实现可以分为以下几个步骤:
输入:RGB-D传感器获取深度图。
输出:本文算法修复后的深度图。
步骤1针对当前深度图for eachp∈D(p)do。
步骤2在已有的深度退化模新的基础上,计算深度像素的左右一致性CLRC(式(2))。
步骤3设定像素置信度分类的阈值、,将深度像素分成三种类别。
步骤4结合深度像素置信度分类机制,确定分层联合双边滤波的权重值Q(⋅),并同时选择相应的filter_size(式(7)和式(11))。
步骤5根据当前像素类别、权重值、filter_size,对不同置信度类别的深度像素采用分层联合滤波进行深度修复,获得高质量、高分辨率的深度图(式(8)~(10))。
4 实验结果与分析
为验证本文所提出的深度修复算法的有效性,实验选取Middlebury标准数据库[5]的Art、Moebius和Aloe深度图和实验室拍摄采集的数据库在PC机上进行深度图修复仿真,将本文算法同BF[15]、JBF[14]、JABDU[19](Joint Adaptive Bilateral Depth map Upsampling)的修复效果进行对比。为了保证实验仿真的可对比性,将BF 和JBF 的方差参数设为σS=3 ,σR=0.5 ,表1 是本文算法参数值;由于小窗口填充大空洞效果不好,大窗口不能较好地保留边缘细节信息,将滤波窗口大小统一设为5×5。实验结果证明所有方法都能正确有效地平滑小噪声区域。然而当涉及到大范围空洞区域时,这四种方法表现出不同的性能,但采用本文算法进行深度修复过的深度图边缘更加清晰合理,基本上不存在边缘模糊和纹理伪像,提高了深度图修复精度。
4.1 Middlebury数据库实验仿真结果
采用Middlebury标准数据库提供的Art、Moebius和Aloe 深度图进行评估和模拟Kinect 退化模型的深度修复的效果,并将本文算法同BF、JBF、JABDU 的修复效果进行对比。如图3(a)和(b)所示为数据集的彩色图和原深度图,分辨率为数据集的半尺寸x×5551Middlebury数据集提供三种分辨率:全尺寸(宽度:1 240…1 396,高度:1 110)、半尺寸(宽度:620…698,高度:555)和第三种尺寸(宽度:413…465,高度:370)。;经BF 算法和JBF算法修复处理的深度图分别如图3(c)和(d)所示,虽然能有效处理小噪声、小空洞区域和较好保留边缘信息,但物体的轮廓边缘模糊,产生纹理伪像;对比图3(e)和(f)的深度修复效果,本文算法在整体深度修复处理上优于前三种算法,提高了深度数据修复效果,深度图像质量明显提高。用红色矩形框突出深度修复明显区域,为了进一步体现本文算法的优势,图4 是四种算法深度修复的局部采样放大图,分别采样180×110和140×165的修复区域进行局部放大。以Art深度图为例,重点关注笔杆和杯把手边缘交叉处和黑色的木棍。为了更好进行视觉比较,同时根据深度退化模型的不同观测矩阵P计算均方误差MAE,图5是相应的误差图,本文方法在边缘的深度连续性表现更好,产生的误差低于其他方法。实验结果表明本文算法能够有效去除噪声和空洞,同时具有局部自适应能力,得到光滑的边缘和避免产生边缘模糊。
表1 算法参数表
图4 Art深度图局部采样放大对比
图5 Art深度图的误差图对比
为了量化深度图的修复效果,引入峰值信噪比(Peak Signal Noise Ratio,PSNR)和均方根误差(Root Mean Square Error,RMSE)两个修复效果的客观评价指标。将本文四种算法计算结果同文献[5]的自回归(Auto-Regressive,AR)模型进行对比,图6 是基于Middlebury数据集的RMSE值对比,本文算法在Art、Moebius和Aloe深度图进行修复后将RMSE值降低5倍以上,并且本文算法在三张测试图像的RMSE值平均值为3.73,低于鲁棒RMSE 参考值5,具有鲁棒的修复性能。特别是对前景和背景颜色相似的Aloe深度图也具有不错的修复效果,将原始输入的RMSE值从30.16减少至6.82。图7是基于Middlebury数据集的PSNR值对比,PSNR为图像抗噪质量评价指标,数值越大表示深度图失真越小。实验数据图可以看出,本文算法在Middlebury数据集上量化评价指标优于其他四种算法,且本文算法的PSNR值均高于参考值55,因此本文所提算法对深度图的修复具有整体优良性,提高了深度图修复精度。
图6 基于Middlebury数据集的RMSE值对比
图7 基于Middlebury数据集的PSNR值对比
同时针对ToF 相机获取深度图存在噪声干扰的问题,本文模拟ToF 深度退化,将方差为σ=5 的高斯噪声加到Middlebury原始数据集Books和Dolls上,如图8(d)和(e)所示是JBF和本文算法处理ToF深度退化对比图,可见本文方法具有更好的去噪能力。为了更好地展示本文算法的结果,图9为通过BF、JBF、JABDU和本文方法在进行4 倍上采样时深度修复。通过两种修复方法(BF和JBF)恢复的深度图仍然包含大量重复噪声,例如驯鹿的耳朵处,本文的方法能够有效消除上采样中的噪声,同时避免带来新噪声。Yang等人[5]指出这两种深度图的退化可以用相同的算法法则来修复,本文算法同样可用于ToF和Kinect深度图恢复,以及处理随机深度缺失和结构性深度缺失两种退化问题,可有效提高深度图的质量。
图8 Books和Dolls ToF深度修复图
图9 带高斯噪声4倍上采样深度修复对比
为进一步比较各深度图修复算法的时间复杂度,采用算法运行时间进行量化比较,结果如表2和表3所示。本文算法在Kinect退化下的平均运行时间为14.23 ms,对比基于BF、JBF、JABDU深度图修复算法的运行时间分别减少29.71 ms、19.73 ms、5.27 ms。本文算法在ToF退化下最快运行时间为9.82 ms,平均运行时间为10.51 ms。实验结果表明,对比其他3 种算法针对5 种图像的运行时间均减少,本文算法在深度图修复的运行时间上具有明显优势。
表2 Kinect退化各深度修复算法运行时间对比ms
表3 ToF退化各深度修复算法运行时间对比 ms
4.2 Kinect v1采集数据实验仿真结果
基于结构光的微软Kinect v1 RGB-D传感器设备,配有彩色摄像头和深度传感器(红外发射摄像头和红外接收摄像头)能实时动态获取相同分辨率640×480的图像对(彩色图和与之对应的深度图),通过右手传感器坐标系定义Kinect面向的方向为正Z方向,右侧方向被定义为正X方向。在相同视角获取尺寸为640×480 的深度图和彩色图,图10 中(a)和(b)分别是Kinect v1 采集的彩色图和深度图,其中(c)和(d)分别是JBF和本文算法修复效果的对比。表4 是两种算法在RMSE 值和PSNR值的对比,深度图的RMSE值减少将近6倍,本文算法的修复效果明显优于JBF算法,在绿色框区域对物体边缘效果保持效果更好,基本上不存在纹理伪像,可有效提高深度图的质量。图11 比较了选择不同参数L分别做2倍、4倍、8倍采样时RMSE值。实验表明,使用滤波器中心像素距离为5(L=5)进行深度图修复在自采数据上效果最理想,同时并非所有的小尺寸滤波器窗口L=3 都有利于深度不连续性的修复,大空洞区域需要大尺寸滤波器窗口进行修复。
表4 不同算法数据对比
图10 Kinect v1采集深度图修复
5 结束语
图11 不同参数L 的RMSE值对比
本文针对RGB-D 传感器获取深度信息存在分辨率低、深度值的缺失和噪音污染等问题,提出一种基于深度置信度的分层联合双边滤波深度图修复算法,通过基于深度信息获取存在的问题提出相应的深度退化模型,再采用深度置信度测量对深度像素进行置信度分类,根据深度置信度确定滤波器窗口权重值,最后利用提出的分层联合双边滤波算法对修复区域完成深度图修复。将本文算法同其他三种算法的修复效果进行实验对比,通过RMSE 和PSNR 值定量分析修复效果,不同数据集上的实验结果表明本文算法在边缘保持效果、深度值连续性上更有整体优良性,提高了深度图修复精度。
本文对单帧深度图进行深度修复有了一定的成果,通过定义不同像素的权重以及置信度像素的权重值分配机制,降低了深度图的RMSE 值,提高了PSNR 值。但是,该算法对于前景背景颜色相似的深度图修复以及同色不同距离的空洞处理效果还存在不足,希望下一步研究工作在这一方面寻求突破,同时后期的研究工作将进一步改进算法将其应用于三维场景建模及三维目标检测识别。