吴梦蝶,胡文靓,苗水清
(延安大学西安创新学院 数据科学与工程学院,陕西 西安 710100)
基于深度图的虚拟视点绘制(Depth Image Based Rendering,DIBR)技术在2D-3D转换中发挥着重要作用。DIBR过程大量应用于双目视觉成像以及多视点电视自由电视等技术[1-2]。然而,在现有对DIBR的研究中,存在诸多问题,学者们对图像空洞的填补算法不甚理想,部分算法不能恢复空洞中的纹理信息,从而在合成的图像中出现模糊、扭曲和变形的现象。而能够恢复纹理信息的方案大多算法复杂、计算量大,无法达到实时转换的要求。
本文对DIBR技术的特点进行了深入研究。首先,针对DIBR技术中出现的问题给出解决方案,并实验验证方案的有效性。其次,利用基于渗透率滤波的方法对转换过程中的空洞进行修复,提高生成的3D图像的质量,增强2D-3D转换效果。本研究为2D-3D转换技术的现实应用提供了可行的方案。
DIBR技术的最关键的问题之一是如何处理新出现的区域。图像中被前景遮挡住的背景即为新出现的区域。在合成的虚拟视点图像中,该区域表现为空洞,该区域没有任何信息,这成为影响DIBR技术得到3D资源质量的重要因素[3]。因此,要得到高质量的3D合成图像,必须对空洞进行填补。
空洞可通过图像预处理或分层深度图的方法进行修复[4-5]。Zinger等[6]的研究为大幅度减少空洞导致的合成图像模糊现象,提出了基于非对称的高斯滤波器的方法,但是该方法损坏了原始图像的深度信息。
然而,现有的空洞填补方法大多不能平衡填补质量和实时性。因此,本文借鉴医学中渗透率的概念,提出了一种能够达到实时性要求的填补空洞的算法,使DIBR技术向实际应用迈进。
2.1.1 重叠问题
由于深度图中物体深度的不连续性以及随着视点的改变物体间的遮挡位置相应的变化的原因,图像会产生重叠问题。在DIBR技术中,图像的映射是多对一的关系。
2.1.2 虚假边缘问题
虚假边缘现象由图像中前景的边缘像素出现在背景中所致。该问题严重地影响DIBR过程中合成虚拟视点图像的质量,导致虚拟视点图像前景周围出现虚假轮廓,即伪影。
针对重叠问题,本文采用Z-buffur算法,为每个像素点提供一个存储器buffer,保存确定像素点在原视点图中的深度信息。当有其他像素点映射到相同位置时,则比较两点的深度值,若新像素点的深度值较大,则更新该位置像素点。
针对虚假边缘问题,本文采用形态学的方法对合成的虚拟视点图像进行处理。运算平滑图像边界,在此过程中可对预处理过程进行去噪。且该过程还有去除图像中孤立的空洞点的作用,使这些空洞点在填补过程中通过插值算法得到快速填充。
在DIBR过程中,合成的虚拟视点图像在深度信息不连续的位置出现空洞区域。该问题对DIBR技术的影响至关重要。本文借鉴医学中渗透率的概念,给出了基于渗透率滤波的空洞填补方法,可同时兼顾合成图像质量以及实时性要求。
渗透率滤波算法流程如图1所示。该算法从水平方向和垂直方向特征检测和特征传递。该算法的一个优势在于,计算量少且在每个点上的计算量一致。该算法根据深度信息和彩色图像的像素值分布来确定水平两个方向和垂直两个方向的传播值对空洞点的影响程度。该算法属于自适应的加权平均填补算法。
图1 渗透率滤波算法流程
渗透率权值在上下左右4个方向上进行计算。
对已知点x、y,从x点到y点渗透率权值的计算方法为公式(1)。
μx→y=FR[I(x),I(y)]y∈N4(x)
F[I(x),I(y)]=min(e-ΔR/σ,e-ΔR/σ,e-ΔR/σ)
(1)
其中σ是平滑因子,其值的确定原则是尽量使在图像平滑区域渗透率为1,实验中其值为200。ΔR、ΔG、ΔB分别为该点与相邻点R、G、B三通道差值。在计算中,渗透率取3个颜色通道中差值最大的1个。
由于空洞区域缺失颜色信息,因此该区域渗透率的计算需要进行调整。使用预处理后的深度图,按照公式(2)计算空洞区域像素点上下左右的渗透率。
(2)
式中,TD为深度差异阈值。
对图像中点的渗透率计算结束后,通过公式(3)得到点的RGB信息。该算法较传统算法的另一优势在于在空洞填补过程中需要分别对水平和垂直两个方向进行处理,减少了边缘平滑过渡的现象。以上两个步骤结束后,需要选择水平、垂直方向传播到空洞区域的计算结果。选择的原则是用深度值小的方向的传递值对空洞进行填补。
(3)
在垂直方向上,用相同方法进行处理。
在计算过程中,不同的图像几何形状以及空洞面积大小不同会造成加权和过大的现象,经过归一化后可避免该现象。计算公式如公式(4)所示。
(4)
权值Wi由公式(5)给出。
(5)
在空洞区域,归一化的计算采用RGBRtoL(x)和RGBLtoR(x)。
实验结果表明,利用该方法对原空洞区域进行填补后合成的区域颜色较暗,且产生了带状噪声现象。针对噪声问题,对填补区域进行均值滤波,实验中采用5×5的窗口。针对原空洞区域颜色较暗的现象,则对该区域颜色进行矫正。
实验结果表明,本文给出的方法能够较好地保存纹理信息,其优势在于:(1)填补所需时间不依赖于空洞区域大小,计算量小,图像中每一点的计算量相同,针对1 024×768的图像,每点都为1 792次加法,1 792次乘法;(2)恢复了空洞区域的纹理信息,且避免了前景像素出现在空洞中的现象;(3)水平两方向和垂直两方向上的计算互不影响,能够实现并行计算;(4)填充具有连续性,产生的填充后图像立体质量高。
本文对DIBR中的空洞问题做了深入研究,参考医学中渗透率的概念,给出了基于渗透率滤波的空洞区域填补算法,在此过程中对图像重叠问题和虚假边缘现象给出了可行的解决方案,同时对填补后图像中填补区域的颜色较暗问题以及带状噪声给出了颜色矫正及去噪处理。该算法计算量小,能够应用到大多数的平台之上,且便于实现并行处理,能够达到实时性要求,使2D-3D技术向现实应用迈进。