Virtual View Synthesis Method and Self Evaluation Metrics for Free Viewpoint Television and 3D Video

这篇文章是感觉虚拟视点绘制论文中比较好的一篇文章,所以简单的翻译,以供参考。

针对自由视点电视和3D视频的虚拟视点生成方法和自我评价指标

摘要

虚拟视点生成是实现自由视点电视和三维电影最主要的技术之一。在这篇文章中,我们提出了一种虚拟视点生成方法去产生高质量中间视点在这些应用中,并且提出了一种新的评价指标叫做spsnr和tpsnr为了分别测量空间和时间的一致性,提出的虚拟视点生成方法包括五步:深度预处理,基于深度的3D映射,基于深度的直方图匹配,主视点加辅助视点的视点混合,基于深度的空洞填充。提出的视点生成方法的效果通过用各种指标,如峰值信噪比psnr,结构相似性ssim,基于dct的视频质量指标vqm,和新提出的指标进行了质量评测,被有效的证实。我们也证明了合成的图像在客观和主观上都很自然。

1.介绍.

3D影视给用户提供了一种身临其境的感觉,现在被作为一种关键技术正在推动着下一波的多媒体体验,如3D电影,3D电视,3D显示和3D移动服务。

3D制作链中最关键的技术模块是编码和绘制。由于产生的海量数据,有效编码的作用对于3D系统变得越来越重要。过去一些研究机构和标准化组织努力解决这个问题,包括在MPEG-2多视点视频简要(MVP),MPEG-4多样的辅助部分(MAC),还有MPEG/JVT多视点视频编码(MVC)。

最近,MPEG已经发起了一项主要针对3D视频应用的工作。然而先前MPEG/JVT组织对MVC的工作主要是对于一般多视点编码场景编码效率的提高,现在工作的目标是一个更广的技术范围,包括的问题有深度估计,编码,绘制。当前最为关键的一个设计思想是带摄像机参数的深度图像的应用,对自由视点导航或3D显示绘制中间视点。

另一方面,考虑到在3D服务和3D显示日益增长的多样化,3D视点的恰当绘制是必不可少的。换句话说,它需要依据视点和显示需要的分辨率的数量分别进行重采样视点或者调整每一个视点。对于应用像自由视点视频,情形是当有更多的视点需要去绘制到显示器上但不是真正的编码,重采样意味着产生虚拟视点基于真实视点。产生3D场景的任意视点问题已经是计算机图形学领域的研究热点。在众多的绘制技术中,基于图像的绘制技术近年来得到了广泛的关注,这些技术应用图像而不是几何体作为基元对绘制虚拟视点,按照集合信息的多少经常被分为如下三类:不用几何信息的绘制,显式几何信息的绘制和隐式几何信息的绘制。全光模型光,光场绘制,流明图,光线空间等技术属于不用几何信息的绘制,在这个方法中,合成的虚拟视点质量经常依赖于基线的距离并且在一个限定的视角范围内可用视点数量越多,合成质量也就越大。另一方面,基于深度图像的IBR系统应用3D映射和分层深度图像属于第二种类型,而变形和视点插值应用点对应属于第三种类。很明显,合成的视点质量在这些显示或隐式的基于几何的绘制方法中很大一部分依赖于几何信息的准确度。

在这篇文章中,我们提出了一种新的图像生成算法在前面提及的自由视点视频和3D视频领域和新的评价度量来检测合成视点的时空一致性,提出的视点合成方法共有五步,深度预处理,基于深度的3D映射,基于深度图的直方图匹配,基于辅助视点的合成,基于深度图的空洞填充。第一,预处理被执行在需要场景深度数据,为了矫正错误提高深度值的时空一致性。第二,基于深度的3D映射技术被采用是为了避免直接映射纹理引起取整错误的不连续性错误。第三,基于深度直方图匹配算法被应用是为了减少两幅参考视点之间的照度差异。第四,主视点加上辅助视点混合被介绍来混合3D映射参考图像用一种更健壮的方式来对抗深度信息和摄像机参数的不准确性。最后,基于深度图像的空洞填充技术被应用来填充剩余的空洞应用基于深度的修复技术。合成视点被峰值信噪比(PSNR),结构相似性(SSIM),基于DCT的视频质量度量标准(VQM),和最新提出的空间PSNR(SPSNR)和时间PSNR(TPSNR).

这篇文章剩下的部分组织如下。在第二部分中,我们描述了视点合成技术的基础。在第三和第四部分我们分别提出了视点合成算法和评价标准。第五部分,我们展示和评测了提出的算法的性能。第六部分对文章进行了总结。

2.背景

这一部分简要回顾了摄像机的几何模型和传统的基于深度视点合成的方法。

A. 摄像机几何模型

一般的小孔成像被作为模型,它的光学中心C和它的图像平面I。一个3D点W被映射到图像点M为C点和W点的直线与图像平面I的交点。包含C点并且正交平面I的直线被叫做光轴(Z)并且它与I相交的部分是主点(p)。C与I的距离是焦距。

令w=[x,y,z]T为W在参考帧的世界坐标系中的点(固定的任意)并且m=[u,v]T是图像平面中M的坐标点。从3D坐标到2D坐标的映射是透视投影,它代表齐次坐标的线性转换。令 =[u,v,1]T, =[x,y,z,1]T,分别是M和W的齐次坐标;然后,
透视转换矩阵:

K被叫做透视的比例因子,k变成真正正交距离是点到摄像机的焦平面。因此,摄像机被透视矩阵 (从今以后简单相机矩阵)代替的模型,他能被用QR因子分解成下面结果:

矩阵A只取决于内参数,有如下形式:

au=-fku,av=-fkv分别是水平和垂直像素的焦距(f是毫米焦距,ku和kv是沿着u和v坐标轴每毫米的像素数量),(u0,v0)是主点(图1中光轴与投影平面的焦点),r是扭曲因子(由不正交的u-v轴决定)。

摄像机的位置和方向分别由3×3的旋转矩阵R和平移矩阵t表示,对应从相机参考帧到世界参考帧的精确转换。

B.基于深度的视点合成

一个典型的基于深度的虚拟视点生成系统的原理图如图2所示。这个系统的目标是从他的邻近视点利用摄像机参数,纹理图像,和深度图像去生成虚拟视点。

3D图像映射是基于深度图像虚拟视点生成的关键技术,在3D映射中,参考图像的像素点反向映射到3D空间,然后在重新投影到目标视点如图3.

等式4和5分别代表反向投影和重投影的过程。

A,R,和t是摄像机参数,d代表3d空间中需要反向和重投影的点的深度值。等式5中坐标(l,m,n)被归一化为(l/n,m/n,1),并且代表虚拟相机的整数坐标(U,V).

3.投影视点生成算法

提出的视点生成算法包括五步:深度预处理,基于深度的3D映射,基于深度的直方图匹配,主视点加辅助视点混合,基于深度图的空洞填充。图4展示了提出的视点生成方案,接下来子小章节对是子算法的详细描述

A.    深度预处理

一般来说,深度数据能够通过特定的深度相机系统和计算机图像工具获得,或者通过深度估计算法进行数学计算获得,当前深度估计是最流行的方法并且是研究的热点,因为深度相机太贵,计算机图形图像不能表示实时场景。

然而,用数序计算的深度数据导致在图像上特定区域有错误的值或者有穿越时空紧邻的不一致性,这是由于深度估计过程中的局部特性。联合深度数据这些问题可导致在生成的图像上的各种视觉伪影。为了解决这些问题,我们提出预处理深度数据,提出的深度预处理包括三步:时间滤波,原始错误补偿,和空间滤波。主要的我们应用一个中值滤波器代替均值滤波器因为均值滤波的结果是产生一个新的像素值,产生的这个像素值在原始的深度图像上是不存在的,所以会降低绘制质量。

作为第一步,我们应用一个一维中值滤波器沿着连续的深度图像帧的位置像素。他旨在减少属于相同物体或背景上的深度值在时间上的不连续性。在本文中,我们应用下面的中值滤波器:

Xi,j,t是在空间点(i,j)在时刻t使得像素值,Ji,j,t是以时空位置(i,j,t)为中心的3×3的一组像素,r是决定是否应用滤波器的阈值。

下一步不得不对原始错误做一些补偿,这些错误是由于在传统的深度估计过程中前景和背景的错误融合导致的。通常,他发生在当前景和背景有相同的纹理的时候。人们的眼睛很容易的辨别它们,但是对自动化算法来说却是一项困难的任务。在这篇文章中,我们分别通过应用图像膨胀和腐蚀(公式7和公式8)来纠正错误。因为前景有背景的深度值比起相反的方向生成的图像质量将会更差。在提出的方案中图像膨胀优先于图像腐蚀操作。

A表示图像,B是作用于A结构元素。AB是用B标记的区域,并且(x,y)是A中的一个像素点。在这篇文章中,我们用圆形结构的元素并且圆的半径被设定为5.

最后一步不得不做平滑异常值在估计的深度图像中用2维中值滤波器。他平滑深度图像中物体的异常值并且去除不想要的噪声。在这篇文章中,我们使用一个5*5的中值滤波器对于每一个像素在(i,j)位置处,如下:

Ji,j是一个围绕位置(i,j)的一个5×5的窗口组成的一组像素的集合。

图5展示了对由微软亚洲研究院(MSR)提供的街舞视频序列运用提出的深度图预处理方法的每一步的结果。提出的方案的是显而易见的特别是对跳舞者左后方的两个站立的男人的脸周围和在地板上的跳舞者的边界。提出的深度预处理的方法不仅有效补偿了原始的深度错误,还恢复了时空一致性。因此预处理的深度图将会导致生成的图像在主观和客观方面质量的显著提升。

B.    基于深度的3D映射

大多先前的视点生成算法通过对应的深度图像映射生成纹理图像。然而,从邻近的视点的纹理图像映射到虚拟图像平面的直接3D映射经常导致在图6中生成的虚拟视点图像有错误的黑色轮廓。这些轮廓是由取整错误导致的,涉及到虚拟视点坐标的整数表示和错误的原始深度值。

然而,一旦得到虚拟视点对应的深度图像,通过逆向映射,我们用它经常会得到准确的纹理值,通过从邻近视点而没有产生错误的黑色轮廓在虚拟视点中。为了得到深度图像对应的虚拟视点纹理图像,我们首先映射参考视点的深度值,注意错误的黑色轮廓和纹理映射有相同的原因出现在映射的深度图像上。为了去除这些错误的轮廓,我们应用中值滤波器。图7展示了上面的过程。

C.    基于深度的直方图匹配

如果我们像图2所示有两张参考视点来生辰虚拟视点。我们能得到两幅3D映射后的视点图像。也就是说,每一个视点生成一个。在混合着两幅映射图像之前,我们应用直方图直方图匹配去减少由于生成视点图像的不连续的两幅图像之间的照度和颜色的差异。基于之间的直方图匹配算法,我们考虑累计直方图的分布来修改映射条件,然后通过用基于深度的分段来区域性的应用这个修改过的直方图匹配。

分析从参考视点生成的两个虚拟视点的直方图,调整这些3D映射的图像使之有相同的分布。整个过程如下。第一步是修改两幅3D映射的图像使之有相同的洞,然后利用中值滤波来去噪。如图8所示。通过使用修改过的图像代替原始3D映射的图像,直方图匹配的精度进一步提升了。

第二步是计算左右图像的直方图。让yl[m,n]代表左图的亮度,然后他的直方图计算如下所示:

在(10)中,w表示图像的宽度,h表示图像的高度,v的值从0到255.用过映射左右图像到虚拟视点做直方图匹配。这两部是产生映射方程M所必需的。首先,左图累积直方图Cl[v]被创建:

右图的直方图hr[v]和累积直方图可以用同样的方式来计算。映射到虚拟视点的左右两幅图像经过中值滤波有了相同的洞,如图8(c)和8(d),以至于除了他们的照度,两幅图像几乎有相同的纹理。

基于累积直方图,我们对虚拟视点做了累积直方图cv[v]:

这里cl和cr分别是左右图像的累积直方图。一般地,权重因子a基于基线距离来计算,如下:

t是每一个视点的平移向量。

通过匹配左参考图像出现的数量到虚拟图像的数量来得到左图和虚拟图像的映射方程。如公式(14),图9展示了一个例子。

累积映射函数被应用在左图yl[m,n],在直方图匹配图像的结果yhml[m,n]如公式(15),右图的直方图yhmr[m,n]用相同的公式来计算。

一般来说,我们假定对每一个相机亮度的不同导致照度和颜色差异,并且分别影响每一个物体和颜色分量。通过考虑上述假设,我们区域性的应用直方图匹配,利用深度值分割区域。图10展示了图8(d)中图像的粗燥分割。

先前的直方图匹配从一个视点转到另一个视点时,有相同的直方图,提出的直方图修改了两个视点使之有相同的分布,考虑基线距离生成的虚拟视点图像,而且,提出的直方图匹配如图9分别映射指数。

图11展示了提出的直方图匹配的一个例子,在这种情况下,3D映射的左右视点的直方图有相同的形状但是由于照度和颜色的不同有不同的分布。通过映射这两个参考视点是虚拟视点具有相同的累积直方图,我们能减少两个视点之间照度的不同。提出的直方图匹配独立的应用于rgb格式的每一个颜色的分量。

D.    主视点加辅助视点的混合

由于相机参数的不准确和深度图像和纹理图像边界匹配的不准确导致大空洞的边缘错误。为了去除这些可见的错误,我们图像膨胀来扩展空洞边界,如图12。这些扩展的空洞能用另外一个3D映射的视点来填充。我们希望通过去除这种错误来是生成的视点更自然。

下一步是视点混合,结合3D映射的视点到虚拟视点,最简单的方法是用对两幅图像进行加权和如下:

这里,Il和Ir是3D映射的得到的参考视点纹理图像,Iv是混合后的结果,一般来说,权重因子a是基于基线距离(13中)计算得到的。

然而,这种方法的缺点是两个视点不一致的像素值(原因是,举个例子,摄像机参数,深度值不一致等)都会对映射图像产生作用,经常会导致不一致性,利用双边缘伪影,和平滑,如图13所示。为了避免这个错误,我们定义了主视点和辅助视点对于图像混合。主视点是主参考视点,他的大多数像素值被映射,辅助视点被用来作为补充视点,针对空洞。然后(16)被重写为(17),在3D映射主视点,这里不是空洞区域时的a等于1,空洞区域的a是0,换句话说,混合视点的大多数区域来自于主视点,而剩余的空洞被辅助视点填充,我们选择虚拟视点更近的视点作为主视点。

这里IB是主视点,IA是辅助视点。

E.利用基于深度修复的空洞填充

提出的虚拟视点合成方法的最后一步是基于深度的空洞填充。虽然视点混合有效填充了大多数空洞区域,还有一些空洞依然存在,一般来说,这些存在的空洞是由存在的空洞区域和错误的深度值引起的,空洞区域定义为在参考图像中看不见的区域,但是在合成的视点中存在,许多现存的空洞填充方法是图像插值和修复技术,填充剩余的区域分别用基于几何距离的邻近像素点。然而,研究观察发现用背景像素而不是前景像素来填充空洞具有更现实的意义,这些空洞区域明显的属于背景,因此我们提出除了考虑现存的修复技术采用背景像素而不是前景像素的空洞填充算法。

一般的修复算法问题如下:需要修复区域o和他的边界被定义,像素p属于o将通过邻近区域Be(p)来修复,如图14.

这个思想对一般的图像修复来说相当的合理,但是在视点生成方面被改变去应用于空洞填充。因为特定的空洞区域既属于前景也属于背景,在这种情况下,我们用前景对应的背景来代替边界区域,这些区域如(18)描述的位于相反的一边。那就是说,我们故意地操纵空洞使之具有属于背景的邻近像素,如图15所示。

fg和bg分别属于前景和背景。

为了辨别前景和背景,我们使用对应的深度数据。换句话说,对于两个像素水平方向边界彼此相反的洞,我们认为像素具有更大的深度值属于前景,反之亦然,图16展示了先前的修复和提出的基于深度的修复技术的结果。

4自我评价指标

为了评价虚拟视点生成算法的性能,一般我们测量生成视点和存在的原始视点之间的相似性,PSNR,SSIM,VQM被广泛使用,但是这些仅仅是当原始视点对虚拟视点可用的情况下是有用的。而且,他们不能评测时间一致性,时间一致性对光照的改变和焦点不匹配非常的敏感,并且对人眼也是相当的敏感。

为了克服现存评价方法的局限性,我们提出了新的评价指标,叫做空间psnr(spsnr)和时间psnr(tpsnr)。Spsnr通过检查由于合成视点的空间噪声来测量空间一致性。一般的,视点合成增加了高频分量,因为3D映射图像和洞有许多的高频分量。因此,我们能够通过检查高频分量的程度来评价空间一致性。通过上面的观点,s-psnr被定义为如下:

这里h和w表示图像的高度和宽度。我们应用5*5的中值滤波器作为结构去去除空间噪声,他与岩石图像的不同仅是包含高频分量。我们和在psnr中定义的mse相似,定义高频分量的数量作为smse。

Tspnr用来测量时间一致性和spsnr相似。除了输入图像被在20中两个时间上连续的帧代替,tpsnr测量时间上改变的高频分量,提出的方法的主要指标是他仅仅使用生成的视点自身。

5.试验结果和分析

我们已经测试了提出的算法在两个测试序列上,街舞和芭蕾舞。在8个视点中,视点3和视点5被选作参考视点,视点4被选作用于生成的虚拟视点。提出的方法的每一个子算法通过现存的客观评价方法如spnr,ssim,vqm和提出的spnr,tpsnr来评价。psnr,spsnr,tpsnr越大表示质量越好,vqm则相反。ssim的情况则是值越接近1表示质量越好。由Nagoya大学发布的视点生成软件2.3版当前被作为mpeg ftv/3d视频标准活动被作为参考软件和我们提出的方法进行比较,默认的视点混合方法被替换为主视点加辅视点的方法,对比更有意义。

A. 深度预处理的试验结果

深度预处理的结果被给出在表1中,他们对应的生成的图像的例子如图17所示。在现存的评价方法中,深度预处理没有明显的提高图像质量,但是他在spsnr和tpsnr中得到了提高。特别是,我们能够确定,芭蕾舞序列的时间一致性提高了。而且,我们能够确定有一些提升例如,地板上舞者自然平滑的边界还有左边站立的舞者的头部边缘。

B.基于深度图像直方图匹配的实验结果

正如表二和图18所示,提出的直方图匹配通过减少照度和颜色改变提升了主观质量,但是,客观质量却有一点降低。

C.基于深度修复的试验结果

表3给出了基于深度修复的实验结果,他们对应的合成样例图像如图19。当空洞边界既有前景又有背景时,提出的基于深度的修复方法仅通过位于背景的像素填充空洞。我们能确定提出的方法在主观和客观质量方面都得到了提升。

D.提出的视点生成方法的实验结果

提出的视点生成方法包括各种子算法,比如:深度预处理,基于深度的3D映射,基于深度的直方图匹配,主加辅视点混合,记忆深度修复的空洞填充。在这一部分中,提出的视点生成方法和参考视点生成软件做对比。参考软件的主要工具基于深度的3D映射,图像修复来填充空洞,加权和视点混合。在这个实验中,我们用主视点加上辅助视点的方法来代替参考视点生成软件中的视点混合。表4给出了实验结果,他们对应的生成样本图像如图20和图21.我们能够确定,提出的视点生成方法的合成图像在主观上和客观上都比参考软件好。

6.总结

在这篇文章中,我们已经提出了虚拟视点生成方法和自评价指标应用于自由视点视频和3D视频中。提出的方法主要包括四步:深度预处理,基于深度的3D映射,基于深度直方图匹配的照度和颜色差异补偿,基于深度修复技术的空洞填充。并且,主视点加上辅助视点的方法比起视点混合的加权和有更好的主观质量。提出方法的效果通过评价合成的图像加以确定,使用了各种质量测量指标包括提出的自评价指标spsnr和tpsnr。我们发现提出的方法产生的结果在主观上和客观上比当前被mpeg ftv/3D视频组织使用的参考软件效果都好。

时间: 2024-10-12 15:59:40

Virtual View Synthesis Method and Self Evaluation Metrics for Free Viewpoint Television and 3D Video的相关文章

Hypervisor, computer system, and virtual processor scheduling method

A?hypervisor?calculates the total number of processor cycles (the number of processor cycles of one or more physical processors) in a first length of time based on the sum of the operating frequencies of the respective physical processors and the fir

{ICIP2014}{收录论文列表}

This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinci 10:30  ARS-L1.1—GROUP STRUCTURED DIRTY DICTIONARY LEARNING FOR CLASSIFICATION Yuanming Suo, Minh Dao, Trac Tran, Johns Hopkins University, USA; Hojj

PatentTips - Object-oriented processor architecture and operating method

BACKGROUND OF THE INVENTION The present invention relates to processors and computer systems. More specifically, the present invention relates to an object-oriented processor architecture and operating method. A conventional central processing unit (

JVM Specification 9th Edition (2) Chapter 2. The Structure of the Java Virtual Machine

Chapter 2. The Structure of the Java Virtual Machine 内容列表 2.1. The class File Format (class文件的格式) 2.2. Data Types (数据类型) 2.3. Primitive Types and Values (原始数据类型和值) 2.3.1. Integral Types and Values 2.3.2. Floating-Point Types, Value Sets, and Values 2

事件监听:诀别Android繁琐的事件注册机制——view.setOnXXXXListener 滚犊子

好久没写过随笔了......windows phone生态没起来,属于.net阵营的我最近工作不是太忙,闲暇之余就心血来潮开始研究安卓.先简单扯两句这几天学习下来对java事件监听机制的一点感触.客观地讲,java的事件监听机制相比.net好原始,暂不说委托.lamda.泛型等的繁琐,仅一个事件监听,就需要各种listener才能实现,比如安卓里到处都是view.setOnXXXXListener.被C#“语法糖”和宇宙第一IDE惯坏的我真心有点不习惯,于是就决定写个工具来封装这些烦人的list

Enhancing Android UI with Custom Views 通过自定义view来让你的UI更屌!

Enhancing Android UI with Custom Views (通过自定义view来让你的UI更屌) Table of Contents: Custom View View Measurement View Drawing Custom Attributes Custom ViewGroup ViewGroup Measurement Layout ViewGroup Drawing More Custom Attributes There are many great adva

Java Virtual Machine (JVM), Difference JDK, JRE & JVM – Core Java

By Chaitanya Singh | Filed Under: Learn Java Java is a high level programming language. A program written in high level language cannot be run on any machine directly. First, it needs to be translated into that particular machine language. The javac

DRF 之view

DRF view View DRF中的view分成三个等级,最基本的APIView, 到GenericAPIView,再到GenericViewSet. Django用"视图"这个概念封装处理用户请求并返回响应的逻辑.视图是一个可调用对象,它不仅可以是基于函数,也可以是基于类的.函数是通过判断request.method来区分不同的请求,而基于类的视图则对它进行了封装,只需要实现对应的方法即可,如get,post. 不管django还是restframework中的视图类都是基于这一点

Android 自定义View合集

自定义控件学习 https://github.com/GcsSloop/AndroidNote/tree/master/CustomView 小良自定义控件合集 https://github.com/Mr-XiaoLiang 自定义控件三部曲 http://blog.csdn.net/harvic880925?viewmode=contents Android 从0开始自定义控件之View基础知识与概念 http://blog.csdn.net/airsaid/article/details/5