Print

发布时间: 2016-06-25
摘要点击次数: 288
全文下载次数: 39
DOI: 10.11834/jig.20160613
2016 | Volumn 21 | Number 6




    虚拟现实与增强现实    




  <<上一篇 




  下一篇>> 





快速3维坐标变换的绘制算法
expand article info 汪辉, 彭宗举, 焦仁直, 陈芬, 郁梅, 蒋刚毅
宁波大学信息科学与工程学院, 宁波 315211

摘要

目的 基于深度图的绘制(DIBR)是一种新型的虚拟视点生成技术,在诸多方面得到了广泛的应用。然而,该技术还不能满足实时性的绘制需求。为了在保证绘制质量不下降的前提下,尽可能地提高绘制速度,提出了一种高效的3D-Warping(3维坐标变换)算法。 方法 主要在以下3个方面进行了改进:1)引入了深度—视差映射表技术,避免了重复地进行视差求取操作。2)对深度平坦的像素块进行基于块的3D-Warping,减少了映射的次数。对深度非平坦像素块中的像素点采取传统的基于像素点的3D-Warping,保证了映射的准确性。3)针对两种不同的3D-Warping方式,分别提出了相应的插值算法。在水平方向上,改进的像素插值算法对紧邻插值和Splatting(散射)插值算法进行了折中,只在映射像素点与待插值像素点很近的情况下才进行紧邻插值,否则进行Splatting插值;在深度方向上,它对Z-Buffer(深度缓存)技术进行了改进,舍弃了与前景物体太远的映射像素点,而对其他映射像素点按深度值进行加权操作。 结果 实验结果表明,与标准绘制方案的整像素精度相比,绘制时间平均节省了72.05%;与标准绘制方案的半像素精度相比,PSNR平均提高了0.355dB,SSIM平均提高了0.00115。 结论 改进算法非常适用于水平设置相机系统的DIBR技术中的整像素精度绘制,对包含大量深度平坦区域的视频序列效果明显,不但能够提高绘制的速度,而且可以有效地改善绘制的客观质量。

关键词

自由视点视频, 基于深度图的绘制, 绘制, 虚拟视点, 3维坐标变换, 像素插值

Fast 3D-warping algorithm for depth image based rendering
expand article info Wang Hui, Peng Zongju, Jiao Renzhi, Chen Fen, Yu Mei, Jiang Gangyi
Faculty of Information Science and Engineering, Ningbo University, Ningbo 315211, China
Supported by: National Natural Science Foundation of China (U1301257, 61271270)

Abstract

Objective Free viewpoint video (FVV), an emerging 3D video technology, is currently gaining popularity. As its primary advantage, FVV allows audiences to enjoy the video service of an arbitrary visual angle and feel a vivid stereoscopic visual sense as though they are part of the scene they are watching. Depth image based rendering (DIBR), which can synthesize virtual views with the referenced views and associated depth information that are randomly located on terminal display devices, is a key FVV technology to generate 3D views. However, this technology cannot satisfy real-time needs, and the noise that appears in the synthesized images can lead to visual discomfort because of the imperfect depth maps. Given the poor objective and subjective qualities of the virtual views, this paper proposes a novel 3D-warping algorithm for DIBR to increase the rendering speed as much as possible. Method This study makes three main contributions. First, to reduce the computation time in 3D-warping, the mapped table for converting depth to parallax is introduced before the rendering. During the rendering process, the programs search the mapped table to obtain the parallax and to avoid repetitive operations. Second, the depth maps of the referenced views are divided into similarly sized square blocks. We adopt block-based 3D-warping, which requires only one instance of warping, if the pixels in the same block have the same depth. Otherwise, we employ the pixel-based 3D-warping, which must conduct warping one by one. The block-based 3D-warping saves much time in decreasing the mapping times of pixels. Third, we propose a corresponding modified interpolation method for block- and pixel-based 3D-warping. The improved interpolation method combines nearest interpolation with splatting interpolation along the horizontal direction. Nearest interpolation is performed if the mapped pixels are near the pixels to be interpolated. Otherwise, splatting interpolation is performed. The proposed interpolation method also betters the Z-Buffer technology in depth direction, which discards the mapped pixels if they are located too far from the cameras and calculates the accumulative average value based on depth value otherwise. Result Extensive experiments show that the proposed algorithm not only saves 57.81% time on the average compared with the integer-pixel synthesized scheme of VSRS3.5 but also enhances the PSNR and SSIM-two indexes by 0.355 dB and 0.001 15 dB for evaluating the objective quality of the virtual views. Conclusion The proposed algorithm is highly suitable for DIBR's integer-pixel rendering in a parallel camera system and is especially effective for video sequences that have many flat areas in associated depth maps. This algorithm not only accelerates the 3D-warping process but also improves the objective quality of the virtual views.

Key words

free viewpoint video(FVV), depth image based rendering(DIBR), rendering, virtual view, 3D-Warping, interpolation

0 引 言

近年来,3D视频技术[1]备受人们的青睐。它的一个主要发展方向是基于彩色加深度的自由视点视频系统(FVV)[2]。目前,基于深度图的绘制(DIBR)[3-4]技术是实现该系统的一个关键。在该系统中,只需要在发送端编码并传输少量的几个视点及对应的深度图,在解码端解码后通过DIBR技术绘制出任意位置的视点。DIBR技术不但节省了大量的传输带宽,而且实现了在任意位置进行视点间切换的功能,使得观众在任意视角都能够感受到逼真的立体视觉效果。

然而,当前的DIBR技术具有较高的计算复杂度,很难应用于实时的3D视频系统。DIBR技术主要包括3D-Warping、像素插值、虚拟视点融合[5]和空洞填补[6-7]等环节,其中,3D-Warping环节的时间消耗占据了整个绘制过程的90%以上。目前很多DIBR的算法都是针对于这些环节所进行的改进,但只是单纯地提高绘制的主、客观质量,没有在质量和速度二者之间做出较好的权衡。文献[8]提出了一种分层的空洞填补算法,有效地解决了伪影问题,但由于该算法需要递归地进行上、下采样操作,消耗了大量的绘制时间。Li等人[9]提出了一种混合像素块的像素插值方法,在一定程度上提高了像素插值的精度,但由于该算法需要迭代地进行像素区间的交、并和补集操作,复杂度较高。文章[10-11]提出了基于GPU并行编程的实时虚拟视点绘制方法,提高了绘制的速度,但是这对系统的硬件配置提出了比较高的要求。文献[12]提出了一种分离查找表技术,加快了3D-Warping的速度,但是没有考虑到3D-Warping之后的像素插值精度问题,绘制的客观质量有待提高。

DIBR技术主要适用于两种不同的相机系统:水平设置相机系统和汇聚设置相机系统。其中,前者应用更为广泛。本文纯粹从软件角度出发,针对水平设置相机系统中DIBR技术所存在的问题,提出了一种基于快速3D-Warping的虚拟视点绘制算法。它是通过深度—视差映射表和基于像素块的3D-Warping等两项技术来加快绘制速度的。深度—视差映射表是一张由量化深度到视差之间的映射表。通过查表操作可以避免重复地进行视差求解,节省了视差求取的时间。基于像素块的3D-Warping技术充分利用了深度图的空间相关性。因为深度图的纹理结构相对平坦,在某个特定中心点周围存在着很多深度值相似的像素点。参考视点中深度值相同的相邻像素点经过3D-Warping以后,在虚拟视点的相对位置不会发生变化。根据这个原理,可以对深度图进行固定像素块分割,并且对深度值相同的像素块进行基于块的3D-Warping。对于每个特定块而言,只需要进行一次映射关系的计算,减少了3D-Warping的计算量,加快了绘制速度。除此之外,还提出了一种改进的像素插值算法,有效地提高了插值的精度,非常适用于实时性的像素插值。实验结果表明,本文算法不但提高了绘制的速度,而且改善了绘制的客观质量。

1 DIBR技术理论基础

DIBR技术是通过利用左、右两个参考视点以及对应的深度图像来产生中间虚拟视点的。它主要包括两个环节:3D-Warping和虚拟视点融合。

1.1 3D-Warping

3D-Warping操作是为了将参考视点图像空间中的像素点映射到虚拟视点图像空间中。它首先将参考视点中的坐标位置为(ur,vr)的像素点映射到世界坐标系,方程为

$ \left( \begin{array}{l} {X_{\rm{w}}}\\ {Y_{\rm{w}}}\\ {Z_{\rm{w}}} \end{array} \right){\rm{ = }}R_{\rm{r}}^{{\rm{ - }}1} \cdot \left( {{z_{\rm{r}}}K_{\rm{r}}^{{\rm{ - }}1}\left( \begin{array}{l} {u_{\rm{r}}}\\ {v_{\rm{r}}}\\ 1 \end{array} \right){\rm{ - }}{T_{\rm{r}}}} \right) $ (1)

然后将该点从世界坐标系映射到虚拟视点图像坐标系中的(uv,vv)处,方程为

$ {z_{\rm{v}}}\left( \begin{array}{l} {u_{\rm{v}}}\\ {v_{\rm{v}}}\\ 1 \end{array} \right){\rm{ = }}{K_{\rm{v}}}({R_{\rm{v}}}\left( \begin{array}{l} {X_{\rm{w}}}\\ {Y_{\rm{w}}}\\ {Z_{\rm{w}}} \end{array} \right) + {T_{\rm{v}}} $ (2)

式中,RTK分别表示旋转矩阵、平移矩阵和相机的内参矩阵。XwYwZw分别表示世界坐标系中的3个分量。

1.2 虚拟视点融合

在分别对左、右参考视点进行3D-Warping和像素插值之后,即可以得到左、右参考虚拟视点图像。为了产生最终的虚拟视点图像,需要对这两幅图像进行融合,融合函数为

$ \begin{array}{l} {I_{\rm{v}}}(u,v) = \\ \left\{ {\begin{array}{*{20}{l}} {(l - \alpha ){I_l}({u_l},{v_l}) + \;\;({u_l},{v_l}) \ne {\rm{Hole}}且}\\ {\alpha {I_{\rm{r}}}({u_{\rm{r}}},{v_{\rm{r}}})\;\;\;\;\;\;\;\;\;\;\;({u_{\rm{r}}},{v_{\rm{r}}}) \ne {\rm{Hole}}}\\ {{I_l}({u_l},{v_l})\;\;\;\;\;\;\;\;\;\;\;\;\;({u_l},{v_l}) \ne {\rm{Hole}}}\\ {{I_{\rm{r}}}({u_{\rm{r}}},{v_{\rm{r}}})\;\;\;\;\;\;\;\;\;\;\;\;\;({u_{\rm{r}}},{v_{\rm{r}}}) \ne {\rm{Hole}}}\\ {0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;其他} \end{array}} \right. \end{array} $ (3)

$ \alpha = \frac{{\left| {{t_{\rm{v}}} - {t_l}} \right|}}{{\left| {{t_{\rm{v}}} - {t_l}} \right| + \left| {{t_{\rm{v}}} - {t_{\rm{r}}}} \right|}} $ (4)

即,当(ul,vl)和(ur,vr)均不为空洞(Hole)时,利用加权系数α对它们进行线性加权操作;当有且仅有一个像素点不为空洞时,则采用非空洞像素点;否则,将(u,v)置为空洞点。其中,Il(ul,vl)和Ir(ur,vr)分别表示左、右参考虚拟视点中(ul,vl)和(ur,vr)位置处的像素值。

2 本文算法

以提高绘制速度为主要目的,提出了新的3D-Warping的算法,主要包括3个部分:深度—视差映射表、基于像素块的3D-Warping和改进的像素插值方法。根据插值对象的不同,改进的像素插值方法分为基于像素点的像素插值和基于像素块的像素插值。本文算法的流程如图 1所示。首先,在绘制开始之前,建立深度—视差映射表。其次,需要对深度图像按照固定大小块进行分割,并以像素块为单位计算它的深度纹理复杂度。如果该像素块为深度平坦块,则对该像素块进行基于块的3D-Warping;如果该像素块为非平坦块,则对该像素块中的像素点进行逐像素点的3D-Warping。然后,查找深度—视差映射表以求取视差,计算出映射像素块或映射像素点在虚拟视点图像中的位置。最后,根据像素块和像素点的不同,执行相应的像素插值操作。

图 1 本文算法的流程图
Fig. 1 The proposed algorithm’s flow diagram

2.1 深度-视差映射表

文献[12]提出了一种分离查找表技术来加速3D-Warping过程。受文献[12]启发,建立了一种适用于水平设置相机系统的深度—视差映射表来加速3D-Warping过程。在水平设置相机系统中,3D-Warping过程一般是以视差为桥梁的,视差表示了映射过程中参考视点和虚拟视点之间相对位置的偏移量,假设参考视点图像空间内坐标为(xi,yi)的像素点的视差为Di,经过3D-Warping,被映射到虚拟视点图像空间中(x′i,y′i)处。由于水平相机只存在水平方向的视差,即

$ \begin{array}{l} {I_v}(x{'_i},y{'_i}) - = {I_r}({x_i},{y_i})\\ x{'_i} = {x_i} - {D_i} \end{array} $ (5)

求取每一个像素点的视差D需要经过两个步骤:根据量化后的深度v求取反量化后的深度Z,根据Z求取视差D。其中,实际深度Z的求解公式为

$ Z = \frac{{1.0}}{{\frac{v}{{255.0}}\left( {\frac{1}{{{Z_{{\rm{near}}}}}} - \frac{1}{{{Z_{{\rm{far}}}}}}} \right) + \frac{1}{{{Z_{{\rm{far}}}}}}}} $ (6)

视差D的求解公式为

$ D = \frac{{Bf}}{Z} $ (7)

式中,ZnearZfar分别表示实际场景距离相机的最近、最远距离,B是指参考视点到虚拟视点间的基线距离,f代表相机焦距,v表示量化后的深度。

为了加速3D-Warping,可以将式(6)(7)进行合并,得

$ D = \frac{{vBf}}{{255}}\left( {\frac{1}{{{Z_{{\rm{near}}}}}} - \frac{1}{{{Z_{{\rm{far}}}}}}} \right) + \frac{{Bf}}{{{Z_{{\rm{far}}}}}} $ (8)

在式(8)中,除了变量v=0~255,其余参数均为常量。令

$ P = \frac{{Bf}}{{255}}\left( {\frac{1}{{{Z_{{\rm{near}}}}}} - \frac{1}{{{Z_{{\rm{far}}}}}}} \right) $ (9)

$ Q = \frac{{Bf}}{{{Z_{{\rm{far}}}}}} $ (10)

那么

$ D = Pv + Q $ (11)

由于PQ均为常数。所以,要想建立从量化后的深度v到视差D之间的映射表,需要进行256次乘法和256次加法操作。在建立深度—视差映射表之后,不必每次都按照式(6)(7)来求取视差,只需要从映射表中查找v所对应的视差D,并将视差D代入式(5)进行计算即可。查表的方法避免了重复的视差求取操作,加快了3D-Warping速度。

2.2 基于像素块的3D-Warping算法

首先,对深度图以固定大小的块进行分割;然后,判断该像素块是否为平坦块,如果是深度平坦块,则直接采用基于像素块的3D-Warping,否则,采用基于像素点的3D-Warping。通常,可以通过计算深度图像中像素块的深度值方差来判定它是否为深度平坦块,但方差的计算量相对较大。本文为了加快绘制速度,采取了其一阶范式的形式,即

$ E = \frac{1}{{p \times q}}\sum\limits_{(x,y) \in C} {\left| {{D_t}(x,y) - {D_{{\rm{avg}}}}} \right|} $ (12)

$ {D_{{\rm{avg}}}} = \frac{1}{{p \times q}}\sum\limits_{(x,y) \in C} {{D_t}(x,y)} $ (13)

式中,Dt表示第t帧的深度图,C为当前块,pq分别为像素块的长和宽。

基于像素块的3D-Warping如图 2所示。如果参考视点的当前像素块经式(12)(13)判断为深度平坦块,则选取该当前块中的一个像素点(xc,yc),利用3D-Warping方法计算出该像素点在虚拟视点图像中的坐标(x′c,y′c),从而建立了从参考视点图像中像素坐标位置到虚拟视点图像中的坐标位置的映射关系。因为块内所有像素点深度值相同(视差相同),也即在3D-Warping前后,块内所有像素点的相对位置不变;所以对于该像素块中的其他像素点,只需要根据相对位置关系,进行线性平移即可。对于深度非平坦块,块内像素点的深度值存在差异,因而在3D-Warping过程中块内的像素点的相对位置将会发生变化。如果强行采取基于像素块的3D-Warping,则会引入绘制失真。基于块的3D-Warping减少了需要进行3D-Warping的像素点数,降低了3D-Warping过程的计算时间开销。

图 2 基于像素块3D-Warping的示意图
Fig. 2 Illustration of pixel block based 3D-Warping

2.3 改进的像素插值算法

在3D-Warping操作之后,映射的像素块或像素点不一定与整像素点对齐,为了将它们对应到整像素位置上,需要进行像素插值操作。像素插值的精确程度直接影响了绘制的主、客观质量。为了在提高绘制的速度的同时,保证绘制质量不下降,本文对像素插值算法进行了改进。与两种3D-Warping方法相对应的插值算法也有两种:基于像素块的像素插值和基于像素点的像素插值。由于这二者之间存在一定的差别,分别对它们进行阐述。

2.3.1 基于像素块插值

根据映射像素块与待插值像素块之间距离的不同,对映射像素块采取了两种不同的插值策略。如果映射像素块与待插值像素块的距离dist小于阈值th1,则对块中所有像素点采取紧邻插值[13];否则,对像素块内部的像素点采取线性插值,对像素块边缘像素点向外扩充。

基于像素块的紧邻插值法如图 3所示,由灰色圆点标记的3×3的投影块ai,j,(i=0~2,j=0~2)与待插值尺寸相同的像素块(P(1,0)~P(3,2))之间的距离小于水平阈值th1,所以,对该像素块内的所有像素点采取紧邻插值法,插值方向如箭头所示。

图 3 基于像素块的紧邻插值
Fig. 3 Pixel block based near-most interpolation

基于像素块的线性插值法如图 4所示,由于P(1,0)到a0,0a1,0之间的最小距离dist大于阈值th1,所以对于映射块内部的待插值的像素点(P(1,0~2)和P(2,0~2)),利用左、右相邻的映射像素点进行线性插值,插值方向如箭头所示;对映射块边缘像素点(a0,0~a0,2a2,0~a2,2),向外扩充。如果不向外扩充,可能会在相邻像素块之间产生条纹状的空洞,图 5(a)为未进行边缘扩充的绘制效果图,图中存在大量的条纹状空洞;图 5(b)为对映射像素块的边缘进行扩充之后的绘制效果图,图中的条纹状空洞得到了消除。

图 4 基于像素块的线性插值
Fig. 4 Pixel block based linear interpolation
图 5 像素块边缘扩充前后的绘制图像
Fig. 5 Rendered images before and after pixel block boundary expansion ((a) rendered image unexpanded for boundaries; (b) rendered image expanded for boundaries)

2.3.2 基于像素点的像素插值

改进的基于像素点的插值算法在水平方向上和深度方向上均作了相应的改进,下面从这两个角度展开论述。

由于投影像素点不一定正好落在虚拟视点的整像素位置上,所以需要利用周边的非整像素点对整像素点位置进行像素插值,传统的插值方法有两种:紧邻插值法和线性插值法。由于深度图失真较为严重,像素点在3D-Warping过程中往往会发生不同程度的偏移。为了抑制深度失真对像素插值精度的影响,对上述两种插值算法进行了折中,具体策略为:如果投影像素点与最近像素点的距离小于阈值th1,则采用紧邻插值;否则,采用Splatting插值法[14]

在基于像素块和像素点的3D-Warping过程中会产生遮挡现象,即多个投影像素点插到同一个整像素位置处。标准方案采取了Z-Buffer[15]技术来解决遮挡问题,即只采取了深度值最大的投影像素点进行插值操作。由于深度图失真,这样的做法可能会引入绘制失真,对Z-Buffer技术进行了改进。如果在插值过程中,发现有新的映射点插到该位置,则将当前深度值Dv(x)与新映射点的深度值d进行判断:$\left| {{D_{\rm{v}}}(x) - d} \right| > t{h_2}$。如果该条件成立,则采取Z-Buffer技术;否则,更新像素点的像素值的公式为

$ I{'_{\rm{v}}}(x) = \frac{{({D_{\rm{v}}}(x) + 1){I_{\rm{v}}}(x) + (d + 1)I}}{{{D_{\rm{v}}}(x) + d + 2}} $ (14)

更新像素点的深度值为

$ D{'_{\rm{v}}}(x) = max\{ {D_{\rm{v}}}(x),d\} $ (15)

式中,Iv(x)、I′v(x)分别表示更新前、后的像素值,Dv(x)和D′v(x)分别表示更新前、后的深度值,I表示当前映射点的像素值,阈值为

$ t{h_2} = \frac{{255\Delta D}}{{Bf}}\frac{1}{{\frac{1}{{{Z_{{\rm{near}}}}}} - \frac{1}{{{Z_{{\rm{far}}}}}}}} $ (16)

由于一般超过3个像素宽度的偏移会引入严重的绘制失真,所以通常取ΔD=3以求得阈值th2

改进后的插值算法不需要进行上、下采样操作,也不需要保存任何的中间数据。在遇到多个投影像素点插到同一个像素位置时,只需要按照式(14)(15)执行更新操作即可。改进的插值方法不但提高了插值的精度,而且不会增加时间复杂度。

3 实验结果

为了验证本文算法的性能,通过虚拟视点绘制实验,并从绘制虚拟视点的绘制时间和客观质量等角度出发,和标准绘制方案VSRS(view synthesis reference software)以及文献[12]的算法进行了对比分析。实验的硬件环境如下:主频为3.40 GHz的i3-2130处理器,4.00 GB内存。实验的软件环境如下:64位Win7操作系统,VSRS3.5标准绘制平台以及在此平台的整像素精度绘制方案的基础上修改、添加本文算法之后的绘制平台。实验所采用的测试序列如下:Nagoya提供的Dog、Kendo序列;GIST提供的Newspaper序列;HHI提供的Book Arrival、Door Flowers、Alt-Moabit和Leave Laptop序列,各序列对应的分辨率以及参考视点和目标视点的选取如表 1所示。实验包含的基本功能模块:3D-Warping、虚拟视点融合和空洞填补。本文算法的参数设置如下:像素块尺寸为4×4像素,深度平坦块的判定阈值为0(完全平坦)。VSRS算法的参数设置如下:所有参数均采用默认值。另外,由于标准绘制方案VSRS主要有半像素和整像素精度等两种配置。其中,半像素精度绘制质量较高,但速度较慢;整像素精度绘制质量较低,但速度较快。为了充分体现本文算法的性能,在时间对比的时候,主要与整像素精度进行对比分析,在客观质量对比的时候,主要与半像素精度进行对比分析。

表 1 测试序列
Table 1 Test sequences

下载CSV
序列名 分辨率/像素 序号
参考视点 目标视点
Book Arrival 1 024×768 7,10 8
Leave Laptop 1 024×768 7,10 8
Newspaper 1 024×768 4,6 5
Alt-Moabit 1 024×768 8,10 9
Door Flowers 1 024×768 7,9 8
Kendo 1 024×768 3,5 4

3.1 时间对比分析

为了验证本文算法的时间复杂度,在其他基本绘制环节不变的条件下,将文献[12]算法、深度—视差映射表和本文算法与标准绘制方案的整像素精度进行时间上的对比实验。测试结果如表 2所示,Tori1TDPTTwarpTpro分别对应着原始标准绘制方案的整像素精度、深度—视差映射表算法、改进的3D-Warping算法和本文算法绘制一帧图像所消耗的时间,ΔTLUT和ΔTpro分别表示深度—视差映射表算法和本文算法与VSRS算法相比,绘制一帧图像的时间节省百分比。实验结果表明,深度—视差映射表算法比VSRS算法平均节省绘制时间33.34%,本文算法比VSRS算法平均节省绘制时间72.05%。这说明了本文算法能够有效地提高绘制的速度,其中,改进的3D-Warping算法性能略高于深度—视差映射表算法。与深度—视差映射表算法相比,文献[12]消耗的时间略长,这主要是由于文献[12]引入了改进的图像融合算法,增加了一定的时间复杂度。与文献[12]相比,本文算法节省了59.70%的绘制时间。这主要是由于本文引入的基于像素块3D-Warping算法所做出的贡献。

表 2 绘制时间对比
Table 2 Rendering time comparison

下载CSV
序列名 耗时/ms 时间节省百分比/%
Tori1 文献[12] TDPT Twarp Tpro ΔTLUT ΔTpro
Book Arrival 380 265 253 226 99 -33.42 -73.95
Leave Laptop 381 265 253 231 103 -33.60 -72.97
Lovebird1 409 268 258 258 107 -36.92 -73.84
Newspaper 370 267 259 215 104 -30.00 -71.89
Alt-Moabit 384 269 260 240 116 -32.29 -69.79
Door Flowers 387 273 256 238 107 -33.85 -72.35
Kendo 384 268 256 245 117 -33.33 -69.53
平均值 385 268 256 237 108 -33.34 -72.05

表 2中还可以发现,改进之前,3D-Warping占据了整个绘制过程的90%以上的绘制时间,这说明3D-Warping环节是影响绘制速度的最主要环节。本文所提出的快速3D-Warping算法的时间复杂度为VSRS算法的32.75%。这说明了本文算法在绘制复杂度上具有较高的性能。

为了分析基于像素块的3D-Warping和基于像素点的3D-Warping的绘制时间比例情况,对这两种映射方式进行了统计实验,表 3给出了部分测试序列的统计结果。表 3NfNc分别表示平坦像素块和复杂像素块的个数,其中,前者是采用基于像素块的3D-Warping,后者是采用基于像素点的3D-Warping;TfTc分别表示绘制平坦像素块和复杂像素块消耗的时间总量;TavgfTavgc为它们的平均值;R表示平坦块和复杂块绘制时间的比例。统计结果表明,在其他条件相同的情况下,基于像素块的3D-Warping时间消耗是基于像素点的3D-Warping的30%左右。因此,本文提出的基于像素块的3D-Warping可以极大地提高绘制速度,特别是对于深度平坦区域较多的深度序列效果尤为突出。

表 3 平坦块和复杂块绘制时间统计表
Table 3 Statistical time of flat block and complex block synthesized by the proposed scheme

下载CSV
序列名 Nf Tf /ms Nc Tc/ms Tavgf/10-4ms Tavgc/10-5ms R
Book Arrival 68 778 24 29 526 32 3.49 1.08 0.32
Alt-Moabit 82 027 34 16 277 24 4.14 1.47 0.28
Door Flowers 70 997 30 27 307 35 4.23 1.28 0.33

3.2 客观质量对比分析

为了确定水平阈值th1的准确取值,在size=4,阈值th1分别为0.1、0.2、0.25、0.3、0.4和0.45等条件下测试了各测试序列的PSNR和SSIM两项指标。如表 4所示,在th1≤0.3时,随着阈值的增大,测试序列的PSNR和SSIM整体呈上升趋势;在0.3<th1<0.45时,随着阈值的增大,测试序列的PSNR和SSIM整体呈下降趋势。这说明了th1=0.3时,各个测试序列能够取得较为理想的客观绘制效果。

表 4 不同水平阈值th1下的PSNR和SSIM
Table 4 PSNR and SSIM under different horizontal threshold th1

下载CSV
序列名 PSNR/dB (SSIM)
th1=0.1 th1=0.2 th1=0.25 th1=0.3 th1=0.4 th1=0.45
Book Arrival 36.89(0.958 4) 36.98(0.958 4) 36.99(0.958 5) 37.00(0.958 7) 36.86(0.957 9) 36.77(0.957 5)
Leave Laptop 37.52(0.95 89) 37.52(0.959 0) 37.53(0.959 1) 37.55(0.959 3) 37.38(0.958 5) 37.22(0.958 1)
Newspaper 32.48(0.957 6) 32.48(0.957 6) 32.48(0.957 6) 32.48(0.957 6) 32.48(0.957 6) 32.48(0.957 6)
Alt-Moabit 35.70(0.960 4) 35.71(0.960 4) 35.71(0.960 3) 35.71(0.960 3) 35.70(0.960 2) 34.97(0.958 2)
DoorFlowers 36.74(0.959 6) 36.76(0.959 7) 36.78(0.959 7) 36.80(0.959 8) 36.78(0.959 6) 36.63(0.959 1)
Kendo 37.84(0.980 4) 37.86(0.980 4) 37.87(0.980 5) 37.88(0.980 5) 37.86(0.980 4) 37.84(0.980 4)

在水平阈值th1=0.3,其他参数如前文所述的条件下,各测试序列的PSNR和SSIM的对比实验结果如表 5所示,其中,VSRS1,VSRS2分别表示在标准准绘制方案的整像素精度和半像素精度条件下的绘制结果。由表 5可知:本文算法的所有测试序列的性能明显优于文献[12]算法;与标准方案的整像素精度相比,本文算法的两项指标有了显著的提高;与标准方案的半像素精度相比,本文算法测试序列的平均PSNR提高了0.355 dB,平均SSIM提高了0.001 15。由于不同测试序列的性质(如深度图失真程度、纹理复杂度等)不同,不同测试序列的改善程度可能有所不同,如Alt-Moabit序列改善相对比较明显,Door Flowers序列稍微有所下降,这都属于正常情况。对于大多数序列,本文插值算法性能较稳定。

表 5 测试序列的PSNR和SSIM
Table 5 PSNR and SSIM of the test sequences

下载CSV
序列名 PSNR/dB (SSIM)
VSRS2 VSRS1 文献[12] 本文算法 Gain=本文算法-VSRS2
Book Arrival 36.85(0.958 4) 35.04(0.951 0) 35.18(0.951 9) 37.00(0.958 7) 0.15(0.000 3)
Leave Laptop 37.15(0.959 0) 35.67(0.952 3) 35.79(0.953 1) 37.55(0.959 3) 0.40(0.000 3)
Newspaper 32.14(0.956 4) 31.82(0.952 8) 31.85(0.953 0) 32.48(0.957 6) 0.34(0.001 2)
Alt-Moabit 34.51(0.955 4) 33.38(0.947 9) 33.44(0.948 6) 35.71(0.960 3) 1.20(0.004 9)
DoorFlowers 36.89(0.960 6) 35.62(0.955 6) 35.69(0.955 8) 36.80(0.959 8) -0.09(-0.000 8)
Kendo 37.74(0.979 3) 37.56(0.978 6) 37.56(0.978 8) 37.88(0.980 5) 0.14(0.001 2)
平均值 0.355(0.0011 5)

图 6为Book Arrival序列第8视点的第48帧绘制图像的局部放大图。红色方框标记出了衣服边缘局部放大图,该方框中包含了16×16个像素点。局部放大图右边的数字阵列中的数字为各个像素点与原始图像的绝对差值,代表了绘制失真的大小,其中,数字越大说明失真越大。图 6中的像素块本应为衣服的黑色,但由于参考视点深度图失真,与衣服边缘邻近的墙面处深度值大于实际深度值(超过了衣服处的深度值)。由传统的Z-Buffer技术插值之后,像素块的左半部分会被左边灰色的墙面所覆盖。在其他3种算法的绘制视点中,该像素块的左半部分失真总体偏大,如图 6(c)(d)(e)所示。本文的像素插值算法克服了Z-Buffer算法的局限性,没有完全舍弃该位置处深度值较小的映射像素点,而是在一定的深度范围内对其进行加权操作,如式(14)(15)。与图 6(c)(d)(e)相比,图 6(f)的数字总体偏小,这证明了本文的像素插值算法可以提高像素插值精度,减少绘制失真。

图 6 原始图像和衣服边缘局部放大图及绝对差值
Fig. 6 Images and local enlargements of garment with the corresponding absolute differences ((a) original image; (b) local enlarged image; (c) local enlarged image and absolute differences synthesized by VSRS’s integer-pixel interpolation scheme; (d) Local enlarged image and absolute differences synthesized by VSRS’s sub-pixel interpolation scheme; (e) Local enlarged image and absolute differences synthesized by the scheme in [12]; (f) Local enlarged image and absolute differences synthesized by the proposed scheme)

需要说明的是,前、背景边缘部位失真对客观质量(如PSNR)尤为显著,本文插值算法尤其能够改善这种前、背景边缘失真,图 7为桌子边缘处的局部放大图,图 7(b)(c)(d)中桌子边缘含有明显的毛刺,图 7(e)中的毛刺得到消除。

图 7 原始图像和虚拟视点局部放大图
Fig. 7 Original image and local enlargements of rendered virtual view ((a) original image; (b) local enlarged image synthesized by VSRS’s integer-pixel interpolation scheme; (c) local enlarged image synthesized by VSRS’s sub-pixel interpolation scheme; (d)local enlarged image synthesized by the scheme proposed in reference [12]; (e) local enlarged image synthesizedby the proposed scheme)

4 结 论

提出了一种基于像素块3D-Warping的快速绘制算法。它通过引入深度—视差映射表和基于像素块的3D-Warping来加速3D-Warping过程,在很大程度上加快了绘制的速度。在基于像素块的3D-Warping过程中,还充分地考虑到插值的准确度问题,对像素插值算法进行了改进,提高了绘制的客观质量。实验结果表明,与标准绘制方案的整像素精度相比,本文算法节省了72.05%的绘制时间;与标准绘制方案的半像素精度相比,PSNR平均提高了0.355 dB,SSIM平均提高了0.001 15。本文算法对平坦区域较多的深度视频用于虚拟视点绘制时特别有效。然而,本算法只适用于水平设置相机系统的虚拟视点绘制。会聚相机系统中DIBR技术的计算复杂度过高的问题将是今后的研究方向。

参考文献

  • [1] Lai Y K, Chung Y C. Real-time 3D rendering processor for 2D-to-3D conversion of stereoscopic displays[C]//Proceedings of IEEE International Conference on Consumer Electronics. Las Vegas, NV: IEEE, 2014: 117-118. [DOI: 10.1109/ICCE.2014.6775933]
  • [2] Smolic A, Mueller K, Merkle P, et al. 3D video and free viewpoint video-technologies, applications and MPEG Standards[C]//Proceedings of IEEE International Conference on Multimedia and Expo. Toronto, Ont: IEEE, 2006: 2161-2164. [DOI: 10.1109/ICME.2006.262683]
  • [3] Yang X H, Liu J, Sun J D, et al. DIBR based view synthesis for free-viewpoint television[C]//Proceedings of Transmission and Display of 3D Video, 3DTV Conference: The True Vision-Capture. Antalya: IEEE, 2011: 1-4. [DOI: 10.1109/3DTV.2011.5877165]
  • [4] Liu J X, Liu Y W, Qi H G, et al. 3D video rendering adaptation: A survey[J]. 3D Research, 2015 ,6 (1) : #5 . [DOI:10.1007/s13319-014-0036-1]
  • [5] Liu Z W, An P, Liu S X, et al. Arbitrary view rendering based on DIBR and image mergence[J]. Journal of Image and Graphics, 2007 ,12 (10) : 1696 –1700. [ 刘占伟, 安平, 刘苏醒, 等. 基于DIBR和图像融合的任意视点绘制[J]. 中国图象图形学报, 2007 ,12 (10) : 1696 –1700.] [DOI:10.11834/jig.20071002]
  • [6] Luo K, Li D X, Feng Y M, et al. Arbitrary view generation based on DIBR and depth-aided image inpainting[J]. Journal of Image and Graphics, 2010 ,15 (3) : 443 –449. [ 骆凯, 李东晓, 冯雅美, 等. 基于DIBR和图像修复的任意视点绘制[J]. 中国图象图形学报, 2010 ,15 (3) : 443 –449.] [DOI:10.11834/jig.20100314]
  • [7] Ding C M, Lü Z H, Yao J M, et al. Hole-filling method based on time-sequence in DIBR[J]. Video Engineering, 2015 ,39 (3) : 68 –72. [ 丁陈敏, 吕昭宏, 姚剑敏, 等. 一种基于时间导向的DIBR空洞填补方法[J]. 电视技术, 2015 ,39 (3) : 68 –72.] [DOI:10.16280/j.videoe.2015.03.017]
  • [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. [DOI:10.1109/JSTSP.2012.2204723]
  • [9] Li C X, Wang R G, Wang W M, et al. A hybrid pixel-block based view synthesis for multiviewpoint 3D video[C]// Proceedings of Transmission and Dispaly of 3D Video, 3DTV-Conference: The True Vision-Capture. Aberdeen: IEEE, 2013: 1-4. [DOI: 10.1109/3DTV.2013.6676657]
  • [10] Zheng Z, An P, Zhang Q W, et al. Depth-image-based rendering based on GPU-accelerated[J]. Video Engineering, 2012 ,36 (11) : 11 –14. [ 郑专, 安平, 张秋闻, 等. 基于GPU加速的深度图像绘制[J]. 电视技术, 2012 ,36 (11) : 11 –14.] [DOI:10.3969/j.issn.1002-8692.2012.11.004]
  • [11] Pan L J, Zhu Y L, Qian Z W, et al. Real-time virtual view synthesis based on GPU parallel programming[C]//Proceedings of the 27th Chinese Control and Decision Conference. Qingdao, China: IEEE, 2015: 3687-3690. [DOI: 10.1109/CCDC.2015.7162566]
  • [12] Vijayanagar K R, Kim J, Lee Y, et al. Efficient view synthesis for multi-view video plus depth[C]//Proceedings of the 20th IEEE International Conference on Image Processing. Melbourne, VIC: IEEE, 2013: 2197-2201. [DOI: 10.1109/ICIP.2013.6738453]
  • [13] Tech G, Muller K, Wiegand T. Evaluation of view synthesis algorithms for mobile 3DTV[C]//Proceedings of Transmission and Display of 3D Video, 3DTV Conference: The True Vision-Capture. Antalya: IEEE, 2011: 1-4. [DOI: 10.1109/3DTV.2011.5877218]
  • [14] Tian D, Lai P L, Lopez P, et al. View synthesis techniques for 3D video[C]//Proceedings of the SPIE 7443, Applications of digital image processing XXXII. 2009, 7443: #74430T. [DOI: 10.1117/12.829372]
  • [15] Wang L H, Lei J J, Zhang H L, et al. A novel virtual view rendering approach based on DIBR[C]//Proceedings of the 7th International Conference on Computer Science & Education. Melbourne, VIC: IEEE, 2012: 759-762. [DOI: 10.1109/ICCSE.2012.6295183]