娄达平 王晓东 富显祖 章联军
(宁波大学信息科学与工程学院 浙江 宁波 315211)
基于深度引导空洞填补的虚拟视点绘制方法
娄达平 王晓东 富显祖 章联军
(宁波大学信息科学与工程学院 浙江 宁波 315211)
针对单视点绘制虚拟视点图像存在的空洞问题,提出一种基于深度引导空洞修复的虚拟视点绘制方法。核心思想是通过对多个映射像素点的深度信息和空间位置信息进行加权插值操作来实现细小的空洞填充,并且分区域对大型空洞填补。在像素点插值的过程中,该方法首先考虑映射像素点的可靠性,剔除不可靠的像素点,从而减少错误的映射像素点。在填补大型空洞中,继承基于样本图像修复算法的优点,并引入深度信息来辅助空洞填补,以较为准确的方式来修复图像。实验结果表明,无论是主观视觉效果,还是客观值都要比Criminisi算法要好。
虚拟视点 基于深度图的绘制 深度 空洞填补 像素插值
近年来,随着计算机技术的不断发展,数字图像和视频的传输及显示技术获得了快速的进步。普通的2D视频正在逐步向3D视频进行转换[1-3]。为了从不同的视点观看都能够得到令人满意的沉浸式感受,多视点图像吸引了国内外学者的广泛关注。自由视点视频系统(FTV)作为多视点图像设备中最重要的之一,能够给用户带来全新的虚拟现实体验。其中,基于深度图像的绘制DIBR(depth-image-based rendering)技术在该系统的实现过程当中起着关键性的作用[4]。在理论上,它只要使用在发送端编码传输过来的彩色图像及其对应的深度图像,就可以在接收解码端绘制出给定任意视点的图像,并且具有绘制速度快,所需要带宽小等优点,使处于不同位置上的观众都能够体验到立体视频播放的逼真效果。
DIBR技术主要包括以下几个步骤:三维图像变换、像素插值和空洞填补。其中存在的一个主要问题是,绘制后的虚拟视点图像往往存在空洞,即空洞问题[5]。根据空洞产生的原因,大致可以分为两类:第一类空洞是由于参考视点采样点不充分引起的,这类空洞通常会比较大。第二类空洞是由于深度图像当中同一物体表面上的灰度值不连续引起的,这类空洞通常表现为细小的裂纹。
为了提高目标视点视图的质量,国内外许多学者对此进行了研究。已有的方法可以分为3类[6]。第1类采用深度图像分层技术(LDI)[7]。在构造LDI时,使得每一个像素点既包含了可见物体的彩色信息和深度信息,又保存了遮挡物体的信息。文献[8]则从分层思想出发,利用金字塔模型对空洞进行分层地填补,较好地修复了图像。通过这种方式,能够有效地避免目标视图中大块空洞现象,但同时也造成了采样过程繁琐和信息存储量大的问题。第2类方法将深度图像预处理技术和彩色图像后处理技术相结合。通常做法是,通过高斯滤波器来平滑深度图像,从而减少绘制视图中的空洞;通过均值滤波和像素插值的方法来修复目标视图中残留的空洞。文献[9]提出了采用高斯滤波器对深度图像进行平滑滤波的方案,文献[10]则选用高斯双边非对称滤波器对深度图像进行处理,文献[11]采用A-Trous小波滤波器,能够有效地保留对象边缘深度信息,这类方法虽然能在一定程度上减少空洞甚至消除空洞,但是这类方法只适用于目标视点和参考视点距离较小时,即小基线距离情况;否则,需要使用强参数设置的高斯核函数,然而这样会引起目标视图中对象的几何失真。第3类方法把二维图像修复的方法引入到空洞填补当中。文献[12]首次提出将基于样本图像修复的方法用来解决图像中存在的空洞问题,文献[13]以先修复深度图像空洞再修复彩色图像空洞的顺序对图像进行修复,文献[14]利用深度信息引导图像修复的顺序,对目标视图中的空洞进行修复,文献[15]根据视频图像在时空域上的冗余性,将搜索范围扩大,进一步提高了修复空洞的质量,文献[16]同样利用视频在时空域上的关系,应用高斯混合模型提取出视频的背景,使用背景来填补空洞,这类方法尽管能够保持目标视图的纹理和结构信息,图像的质量也较高,但是对象边界处会发生模糊和出现伪轮廓。
针对空洞填补环节的局限性,本文提出一种适用于单视点绘制的,基于深度引导空洞填补的虚拟视点绘制方法。该方法创新之处在于:(1)提出一种基于深度的像素插值算法。该算法主要解决细小空洞问题,从三维图像变换产生空洞的原因入手,然后充分利用目标视点图像中映射像素点的空间位置信息、深度信息以及映射点的分布统计信息,来对传统的DIBR方法进行修正,从根本上避免了绘制过程中细小空洞的产生,从而节省了修复空洞的时间。(2)提出一种基于区域的空洞填补算法。该算法主要应用于大型空洞填补上,对由遮挡所引起的空洞,采用分区域的空洞填补方法,并且利用图像梯度和深度信息以更加精确地方式引导空洞的修复,避免了物体及图像边界区域出现的伪影问题,进而得到质量较高的虚拟视点图像。
在虚拟视点绘制技术中,三维图像变换是一个重要的步骤,变换方式可分为2种:3D映射和1D映射[17]。3D映射是根据深度图像、参考图像和相机参数,将参考图像中的像素点变换到世界坐标系下,再将世界坐标系的点变换到目标视图上。通过这种方式可以绘制出任意视点下的虚拟视点视图。1D映射也被称为视点插值,其不同之处在于直接将参考图像的像素点水平变换到目标视图中同一行的对应位置,使用的是平行相机采集的图像,适用于目标视点视角位于基线上的虚拟视点视图。本文主要研究的是通过汇聚相机采集的视频图像,因此以3D映射来进行虚拟视点绘制。下面着重介绍3D映射方式,主要是通过以下两个步骤:
1) 将2D平面上的像素点变换到世界坐标系上。令(x,y)为图像上某一个像素点的坐标位置,(X,Y,Z)是其世界坐标系上的位置,Z是该像素点实际深度值,那么变换公式如下:
(1)
2) 将世界坐标系上的像素点变换到目标视图的坐标上。同理,变换公式如下:
(2)
其中,Kvir、Rvir、tvir分别为目标相机内矩阵、旋转矩阵和平移向量。那么坐标[u,v,w]T通过式(3)和式(4)计算就可以得到原像素点在目标视图上的坐标(U,V),计算公式如下:
U=round(u/w)
(3)
V=round(v/w)
(4)
图1(a)和(b)分别给出了Breakdancers序列的3号相机的第一帧图像及其深度图像,(c)是经过3D映射,投影到4号相机的虚拟图像,其中黑色为出现空洞的部分。
图1 虚拟视点绘制示意图
针对DIBR技术中修复空洞问题方法的不足,在充分结合图像的深度信息、映射点坐标的位置信息以及图像的梯度信息的基础上,本文提出一种基于深度引导空洞填补的虚拟视点绘制算法。
2.1 总体流程
图2 本文的算法流程图
算法的总体流程如图2所示。该算法包括基于深度的像素插值算法、基于样本图像分区域的非遮挡空洞修复和伪轮廓后处理等三个模块。
2.2 基于深度的插值算法
2.2.1 基本原理
在进行三维图像变换的时候,参考图像的像素点并不能准确地映射到整像素位置处,同一个位置可能存在多个像素点,也有可能一个像素点位置没有任何像素值。这样就导致了在目标图像中存在大量的细小空洞。因此,从产生空洞的根本原因出发,在三维图像变换的过程中,记录下目标视点图像中,每一个像素位置附近(1个像素点大小距离内)的所有映射像素点的深度值、亮度值和相对于该位置水平和垂直距离值,如图3所示。然后,再根据映射点的个数来进行处理,求出相应像素坐标位置的像素值。经过加权运算后,得到像素点坐标位置处的亮度值为:
W(x,y)=
(5)
图3 像素插值示意图
2.2.2 基于深度的插值流程
基于深度的插值算法流程如图4所示。下面具体介绍该算法的流程。
图4 基于深度的插值算法流程图
1) 在开始进行三维图像变换的时候,设置三个三维变量,它们的二维的信息用来存储像素点的坐标(x,y)的值,第三维的信息用来存储该点附近映射像素点的距离值,像素值以及深度值。并且,这样很容易就能够获得每个像素位置附近映射点的个数N,经过大量实验统计发现,映射像素点个数基本集中在[0,5]之间,大于5的概率非常低,通常只有在发生遮挡的边界处才会出现。因此,在利用基于深度的插值算法当中最多只考虑5个映射像素点。
2) 找出N个映射像素点的深度最小值记为MinDepth。
3) 根据映射个数N来进行插值。若N=0,则说明该点周围没有任何映射像素点,那么就不进行操作,该点就为空洞点。若N=1,那么该点只有1个映射像素点,那么就简单地进行赋值操作即可。若N=2,这种情况出现的概率比较大,一般会出现在同一物体表面上,只要对映射的两个像素点进行求均值即可。若N=3或者N=4,先要确定映射像素点的可靠性,同一物体上的深度值一般是连续的,如果该映射点的深度值与最小的像素点不同,那么该点就有可能是错误,将它标记为不可靠像素点,在进行插值的时候剔除该点。即令ρi(x,y)=0。ρi的定义如下:
(6)
其中,MinDepth(x,y)=Min(D1(x,y),D2(x,y),…DN(x,y)),表示像素点坐标介于(x,y)之间的所有映射像素点中最小的深度值。然后,对所有的映射像素点进行加权求值。若N≥5,这类点基本上处于发生遮挡区域的边界处,会有较多的像素点在该区域重叠,如果这里还采用基于深度的插值算法,容易造成该区域的模糊,因此这里只采用传统的Z-buffer技术进行填充,即直接使用深度值小的像素点覆盖深度值大的点,以保证前景像素不会被背景像素点所覆盖。
2.3 基于区域的空洞填补算法
采用单视点参考进行绘制的虚拟视点通常会存在较大的空洞区域,这些都是由于在参考视点中不可见的区域,经过绘制后,在目标视点中成为可见区域。本文采用改进的基于样本图像修复算法分区域来填补空洞。修复流程如图5所示。
图5 基于区域的空洞填补算法流程图
2.3.1 理论基础
Criminisi算法是一种应用于图像修复的经典算法,对于修复图像中的空洞有较好的效果。主要包含以下三个步骤:
(1) 计算优先级。首先标记出待填补的空洞区域,计算空洞边缘每个像素点的优先级,并按照优先级进行排序。
(2) 寻找最佳匹配块。将优先级最大的块作为当前待填补的块,采用全局搜索的方法,将绝对误差和作为匹配准则,在非空洞区域搜索与待填补块相似度最大的匹配块。寻找到最大匹配块后,将匹配块的像素值填补到空洞区域。
(3) 更新优先级。每次填补后,空洞边界像素点的优先级都会发生变化,因此在每完成一次填补就对边缘的优先级进行更新。
重复上面的三个步骤,直到空洞区域全部非空,则修复完毕。
本文提出的基于区域的空洞填补算法是在Criminisi算法的基础上,继承并改进了该算法,使其更好地适用于空洞填补。本文算法关键解决4个问题:(1) 如何计算待填补块的优先级;(2) 如何确定搜索的区域;(3) 如何确定最佳匹配块并填充;(4) 如何处理伪轮廓。
2.3.2 优先级的计算
如图6所示,在传统的Criminisi算法当中,Ω表示空洞区域,φ表示样本区域,那么优先级的计算如式(7)所示:
P(p)=C(p)D(p)
(7)
其中,C(p)和D(p)分别称为置信项和数据项,它们的定义如下:
(8)
(9)
图6 Criminisi算法描述图
P(p)=C(p)D(p)Z(p)
(10)
其中,C(p)和D(p)的定义和原先公式中的定义相同。Z(p)深度因子,能够反映待修复块中深度值的变化。Z(p)的定义如下:
(11)
其中,e(g,h)表示像素点g和h处的深度差值,α为归一化因子,这里用最大的深度值(255)表示。
2.3.3 搜索区域的确定
搜索区域的选取将会直接影响到最终的空洞填补效果,现有方法大多是在当前图像上进行搜索,然而绘制出来的虚拟视点图像存在较多的空洞区域,如果对所有空洞区域都采用直接在绘制图上进行搜索容易对前景像素点造成错误扩散的问题,空洞填补效果不是很好。因此,本文对空洞进行分区域的填补。如果空洞位于图像边缘区域,由于其纹理较为平坦,可以直接采用在原绘制图像上进行搜索匹配块。而其他区域,则采用在参考图像上进行搜索匹配块,这样不但能够填补由于缺失前景信息而造成的空洞,而且,又能够较好地填补背景区域。
2.3.4 最佳匹配块
(12)
其中,p1和q0分别代表待填补块和匹配块中的点,SAD代表块Ψp和块Ψq间的绝对误差和,Grad代表图像梯度绝对误差和,其定义分别如下:
(13)
(14)
其中,β∈R,G,B表示彩色图像中各个分量。而λ拉格朗日系数,它的定义如下:
(15)
其中,λb和λf为两个常数,这里分别为0和10。
2.3.5 伪轮廓的后处理
经过大型空洞填补后的虚拟视点图像仍然会存在一些瑕疵,这类伪轮廓通常是由于在填补背景空洞区域时选择了错误的前景像素点而造成的,这里我们对这类伪轮廓像素点全部进行置空处理,再采用上述的以当前图像为搜索区域的空洞填补方法进行填补,那么伪影就几乎可以完全消除。
为验证本文提出方法的有效性,我们采用了微软研究院的交互视觉媒体组提供的3D测试序列[18]Breakdancers进行了实验。这组测试序列由8个相机采集100帧彩色图像和由软件对应计算得到的深度图像组成,图像的分辨率是1 024×768像素,相邻相机之间的水平距离是20 cm,并且以1维弧形摆放。实验中,以3号相机为参考视点,4号相机为目标视点,将目标视点绘制得到的图像同实际4号相机采集得到的图像进行比较,利用两者之间的峰值信噪比PSNR(peak signal to noise ratio)和结构相似度SSIM index(structural similarity index)分析虚拟视点绘制效果。实验的硬件环境如下:主频3.5 GHz的i3-4150处理器,8.00 GB内存。实验的软件环境如下:64位Win 7操作系统,测试平台为vs 2010开发编译环境,采用C++编程语言且代码未做优化。
图7 Breakdancers第一帧主观质量对比
本文选择较为典型的Criminisi算法以及目前较新的Wang[14]算法作对比,图7显示本文算法与其余两种算法绘制的虚拟视点图像主观质量对比,其中(a)为目标视点原图;(b)为Criminisi算法的结果图;(c)为Wang算法得到的虚拟视点图;(d)为本文算法绘制的图。观察图像中的标记区域,(b)和(c)中人物对象边界处的伪轮廓和前景像素错误扩散问题比较严重,且图像边界部分存在着较为严重的错误填补现象,而本文提出的算法(d)没有出现在物体的边缘处和图像的边界部分几乎不存在伪轮廓现象。
表1给出了三种算法的虚拟视点图PSNR和SSIM值,这两个值越高表示图像质量越高。主观视觉效果和客观PSNR、SSIM数据都表明本文算法比Criminisi算法和Wang算法更为优越。本文算法采用基于深度信息的填补,优先采用背景区域对空洞进行填充,并采用分区域的空洞填补方法结合伪轮廓后处理技术,使得物体边界和图像边界部分几乎不存在伪轮廓现象,目标虚拟视点图像主观效果得到进一步提高,更加接近于真实图像。
表1 三种算法PSNR、SSIM比较(dB)
本文提出一种基于深度引导空洞填补的虚拟视点绘制算法。该算法充分地考虑了在三维图像变换过程中映射像素点的深度信息和位置信息,对像素点进行加权求取目标像素点的值,减少了错误映射的像素点个数;并且在大型空洞填补过程中,对修复优先级和最佳匹配原则的改进以及分区域地进行修复,较好地消除了虚拟视点图像中的伪轮廓现象。实验结果同Criminisi算法和Wang算法相比,该方法绘制得到的虚拟视点图像主客观质量均较好。下一步的工作方向是进一步优化匹配方式以及自适应地确定搜索区域,从而减少错误匹配和填补时间以满足实时高质量的需求。
[1] Liu W, Wu Y, Guo F, et al. An efficient approach for 2D to 3D video conversion based on structure from motion[J].Visual Computer, 2015, 31(1): 55-68.
[2] Lai Y K, Chung Y C. Real-Time 3D Rendering Processor for 2D-to-3D Conversion of Stereoscopic Displays[C]//IEEE International Conference on Consumer Electronics, Las Vegas, 2014. USA: IEEE press, 2014:117-118.
[3] Lin Z, Park M, Metaxas D. Automatic stereoscopic video generation based on virtual view synthesis[J]. Neurocomputing, 2015, 151: 654-662.
[4] Fehn C, Barre R D L, Pastoor S. Interactive 3-DTV-Concepts and Key Technologies[J]. Proceedings of the IEEE, 2006, 94(3):524-538.
[5] 姚杰, 陈一民, 基于无空洞填补的DIBR方法[J]. 计算机应用与软件, 2015,32(4): 222-224.
[6] 骆凯, 李东晓, 冯雅美, 等. 基于DIBR和图像修复的任意视点绘制[J]. 中国图象图形报, 2010, 15(3): 443-449.
[7] Shade J, Gortler S, He L, et al. Layered depth images[C]// Proceedings of the 25th annual conference on Computer graphics and interactive techniques, New York, 1998. USA: ACM press, 1998: 231-242.
[8] Solh M, Alregib G. Hierarchical Hole-Filling For Depth-Based View Synthesis in FTV and 3D Video[J]. IEEE Journal of Selected Topics in Signal Processing, 2012, 6(5):495-504.
[9] Zhang L, Tam W J. Stereoscopic image generation based on depth images for 3D TV[J]. IEEE Transactions on Broadcasting, 2005, 51(2): 191-199.
[10] Lee P J. Nongeometric distortion smoothing approach for depth map preprocessing[J]. IEEE Transactions on Multimedia, 2011, 13(2):246-254.
[11] 高凯, 陈贺新, 赵岩, 等. 面向虚拟视点绘制的深度图滤波及上采样方法[J]. 中国图象图形学报, 2013, 18(9): 1085-1092.
[12] Criminisi A, Pérez P, Toyama K. Region filling and object removal by exemplar-based image inpainting[J]. IEEE Transactions on Image Processing, 2004, 13(9): 1200-1212.
[13] Xu X, Po L M, Cheung C H, et al. Depth-aided exemplar-based hole filling for DIBR view synthesis[C]//2013 IEEE International Symposium on Circuits and Systems (ISCAS), Beijing, 2013. China: IEEE press, 2013: 2840 - 2843.
[14] Wang D, Zhao Y, Wang Z, et al. Hole-Filling for DIBR Based on Depth and Gradient Information[J]. International Journal of Advanced Robotic Systems, 2015, 12.
[15] Schmeing M, Jiang Xiaoyi. Superpixel-based Disocclusion Filling in Depth Image Based Rendering[C]//Proceedings of the 22nd International Conference on Pattern Recognition, Washington D.C, 2014. USA: IEEE Press, 2014:1073-1078.
[16] Yao C, Tillo T, Zhao Y, et al. Depth Map Driven Hole Filling Algorithm Exploiting Temporal Correlation Information[J]. IEEE Transactions on Broadcasting, 2014, 60(2):394-404.
[17] Liu J, Liu Y, Qi H, et al. 3D Video Rendering Adaptation: A Survey[J]. 3d Research, 2015, 6(1): 1-13.
[18] Zitnick C L, Kang S B, Uyttendaele M, et al. High-quality video view interpolation using a layered representation[J]. Acm Transactions on Graphics, 2004, 23(3): 600-608.
A VIRTUAL VIEW RENDERING METHOD BASED ON DEPTH-GUIDED HOLE FILLING
Lou Daping Wang Xiaodong Fu Xianzu Zhang Lianjun
(CollegeofInformationScienceandEngineering,NingboUniversity,Ningbo315211,Zhejiang,China)
A virtual view rendering method based on depth-guided hole filling is proposed to solve the problem of the existence of hole of single point virtual view image. The core idea is to realize the small hole filling by weight interpolation of the depth information and spatial position information of the multiple mapping pixel points, and fill the large holes in the each region. In the process of pixel interpolation, this method first considers the reliability of the mapping pixels and excludes the unreliable pixels, thereby reduces the error mapping pixels. In the process of filling large holes, this method inherits the merits of exemplar-based hole filling, and uses depth information to assist the operation of hole filling in a more accurate way. Experimental results show that the proposed method is better than Criminisi algorithm in both subjective visual effect and objective value.
Virtual view Depth-image-based rendering (DIBR) Depth Hole filling Pixel interpolation
2016-06-30。国家自然科学基金重点项目(U1301257)。娄达平,硕士生,主研领域:多媒体信号处理。王晓东,副教授。富显祖,硕士生。章联军,工程师。
TP391.4
A
10.3969/j.issn.1000-386x.2017.06.030