张博文,周 洋,殷海兵
杭州电子科技大学 通信工程学院,杭州310018
相较于二维平面多媒体服务,三维(Three-Dimension,3D)立体多媒体服务能给观众带来身临其镜的真实感,极大地引起用户的关注。近几年来,裸眼立体视频、虚拟现实等3D 多媒体服务已走入家庭。3D 多媒体技术是人类通过左眼和右眼分别获得具有视差信息的左右视点场景信息,并在大脑中相互融合得到具有立体感的三维信息。在3D 视频技术中,人们利用双目摄像机分别对同一场景进行拍摄,然后再依靠计算机视觉技术获得立体视频图像。但如何依靠计算机视觉技术获得更高质量的3D视频图像是研究者的主要目标。
在3D视频中,自由视点视频(Free-Viewpoint Video,FVV)技术是一个非常重要的发展方向,该视频格式是由视频信息加深度信息组成。在解码端通过虚拟视点绘制技术合成不同视角的视频图像,可广泛应用于虚拟现实和3D视频信号处理过程中。为了能够获取任意视点条件下所能观察到的图像,最原始的方法是在不同视点处均设置摄像机采集图像。然而无论使用多少部摄像机同时对某个事物进行摄录,最终都无法获取任意视点所观察的图像。但依靠视点合成技术可以根据已拍摄的图像近似绘制出未知视点处的图像,从而极大地减少了拍摄相机的布置数。然而当前绘制技术会产生空洞、伪影、偏移等缺陷,严重影响了用户体验质量。
虚拟视点绘制方法根据实现手段和辅助工具可划分为基于模型绘制(Model Based Rendering,MBR)、基于几何图形绘制(Graph Based Rendering,GBR)和基于图像绘制(Image Based Rendering,IBR)三种方法。而基于深度图像绘制(Depth Image Based Rendering,DIBR)是一种基于参考视点的纹理图和其相应的深度图,通过3D 映射方程绘制虚拟视点图像的合成方法[1-2]。由于绘制速度快,复杂度比一般绘制方法低,因此被广泛用于自由视点视频合成过程中。DIBR的基本流程如图1所示。
图1 虚拟视点合成简要流程图
DIBR 过程可以描述为:首先把一个或多个参考视点图像逆向投影到世界坐标系中; 然后重新投影到虚拟视点平面,并通过图像融合得到目标视点的虚拟视图,再经过后处理得到目标视点图像。DIBR 技术核心步骤为三维图像变换(3D Image Warping,3D-warping),该方法通过三维变换方程将参考图像像素点映射到目标视图中,从而形成和参考图像相对应的目标视图[1,3]。
图2所示为3D-warping的坐标关系图。在图2中可以看到3D-warping 过程将世界坐标(O-Wx,Wy,Wz)、摄像机坐标(Cam-Xc,Yc,Zc)、图像平面坐标(x,y)和像素坐标(u,v)之间的关系连接,四种坐标系呈逐层关联。图像坐标系是像素坐标系在图像平面上经过平移得到。
图2 3D-warping坐标关系图
假设图像像素点p 坐标为(u,v),内参矩阵为C ,fx和fy分别为像素水平方向和像素竖直方向上的焦距,(u0,v0)为主点的实际位置,其中:
相机外参矩阵M 如公式(2)所示,矩阵R 表示相机在空间中的旋转矩阵,向量T 表示相机在空间中的平移向量,px、py、pz分别表示摄像机在空间坐标中在x、y、z 方向上的平移量。
其中:
假设原视点的图像坐标、相机内参矩阵、空间旋转矩阵和平移向量分别为p1、C1、R1和T1,目标视点的图像坐标、相机内参矩阵、空间旋转矩阵和平移向量分别为p2、C2、R2和T2,世界坐标为W ,空间像素点p1和p2的深度值为Z1和Z2。从p1经过运算得到p2的过程如公式(3)所示:
其中,摄像机坐标系(Xc,Yc,Zc)和世界坐标系(Wx,Wy,Wz)进行转换如公式(4)所示,该转换过程本质上表示坐标轴经过三维旋转和平移的过程。
针对3D-warping带来的不足之处,一些研究者针对绘制方程提出改进方法。Zhu等人[1]提出的方法中将左视图为主要视图进行正向3D-warping绘制图像,右视图为辅助视图进行反向3D-warping 将绘制图像的未赋值区域填充。郭秋红等人[4]提出在3D-warping 过程中加入坐标调整系数以提高虚拟视点绘制质量。该研究表明在绘制方程中加入可调节因子可以减少绘制过程中产生的问题,同时能提高绘制图像质量。
在虚拟视点图像合成过程中会产生重叠、伪影和空洞等绘制缺陷,研究者针对虚拟视点绘制过程产生的重叠、伪影和空洞问题提出许多解决方法以提升绘制图像质量。
下面将对这些问题逐一进行分析。
在虚拟视点绘制过程中,由于深度图中的深度值不是连续分布,导致3D-warping过程中前景区域的图像和背景区域的图像产生不同距离的位移,导致前景和背景的遮挡关系发生改变,目标视点视图上同一个坐标位置会出现多个投影过来的像素点;然而,一个坐标位置只能选择一个像素点进行投影,所以当多个像素点投影过来时,先投影的像素可能会被后来的像素覆盖,这就产生了绘制过程中的重叠现象[3,5],如图3(a)中所示。此外,深度图中错误的深度信息也会导致绘制过程中背景区域覆盖前景区域图像,削去部分前景图像[6]。
图3 虚拟视点绘制产生的问题
目前解决重叠问题最常用的方法是Z-buffer 方法。该方法将投射到同一个位置的所有像素按对应的深度值由小到大排列,选取深度值最小的像素点投射至虚拟视点处,这样能方便地解决重复赋值的问题。梁海涛等人[7]对DIBR方法提出了一种新的改进方法以自适应一投四算法和Z-buffer算法处理裂缝和像素重叠问题。该方法将前景区域的边缘进行划分,然后将前景灰度值和背景灰度值之间形成梯度过渡,直到背景边缘像素差值小于某个阈值为止。李英等人[8]采用基于Z-buffer的正向映射方法合成目标视点的彩色图和深度图。娄达平等人[9]提出将像素位置附近的映射像素点做统计,并选择深度值最小的像素点进行映射。
在深度图的采集过程中,距离镜头比较近的点所获得的深度值越大,根据这一特性最好在深度图进行3Dwarping 的过程中设置深度值判断条件,若已投影位置有深度值更小的像素投射,则将该像素进行覆盖。该方法可避免背景像素将前景像素遮挡导致前景区域部分消失的现象。
在图像绘制后的效果图中,合成的虚拟视点图像背景区域往往会出现前景物体的边缘轮廓,这种现象被称作图像伪影,又被称为虚假边缘[6,10],它表现为落在背景上的前景轮廓状纹理。DIBR所选取的彩色图像和深度图像边缘并非完全相同,由于深度图与彩色图边缘存在差异,彩色图像在前景和背景交界处存在平滑的过渡,而在深度图中边缘处存在明显的突变,导致前景边缘像素映射在背景区域形成伪影[5,11],如图3(b)所示。
研究者提出过许多去除图像伪影的方法。Li等人[5]提出这种现象是由于前后背景区域的深度不连续导致,因此可以通过深度图预处理减少伪影产生,或者使用色彩校正方法将前景与背景之间的颜色差异。杨婕等人[12]采用了形态学膨胀空洞的边缘检测方法,该方法将前景像素中边缘区域进行检测,将可能映射至背景区域的像素也视作空洞进行处理。王等人[13]在视觉认知角度针对图像去雾的效果提出了一种边缘约束的快速求解方法,该方法可以有效抑制图像处理中的伪轮廓效应。
伪影区域的产生本质上是前景像素被绘制到背景像素区域导致。在3D-warping过程中,一些前景像素被投射至空洞区域内,在视觉上形成岛状分布。岛屿状的投射像素可通过对空洞区域进行扩散,以消去产生的岛状投射像素区域,以免在空洞填充的过程内造成影响。
在填充因遮挡产生的空洞区域时为了防止前景区域的像素参与计算,通过从背景区域向前景区域进行扩散的填充方法可以避免前景像素和背景像素同时参与填充过程,减少伪影区域的产生。而卷积神经网络运用于伪影去除的方法也被使用。Li 等人[14]提出一种鲁棒性较高的图像伪影去除网络,这种单一模型方法通过图像的全局特征有效去除图像中的伪影区域。Li 等人[15]根据DIBR的图像以及所拥有的参考视点图像通过卷积神经网络进行端对端的空洞去除方法,将DIBR 图像中的伪影进行去除得到质量更高的绘制图像。
由于前景和背景部分发生重叠,导致在虚拟视点绘制后前景部分发生偏移,而前景部分和背景部分移动距离的不同导致原先属于前景的像素区域转变为背景区域,但投影时并没有新像素对这些区域进行赋值;此外再加上由于深度值不连续,新产生的背景部分无法根据原有的深度值重新进行赋值,使得原先不可见的区域变成可见区域,从而产生了空洞[16-17],空洞问题如图3(c)所示。此外,在DIBR 合成后由于所求像素并非整数而需进行四舍五入取整处理,导致某些像素点位置没有赋值进而形成裂缝状空洞[6,16]。如何解决空洞问题是虚拟视点绘制过程图像质量提升的核心。
空洞处理的方法可根据是否直接对缺陷区域进行处理分为两类:直接操作的方法例如空洞等进行填补;间接操作的方法如提升参考图像质量;缩小空洞或减少空洞数量。
2.3.1 空洞填补
空洞填补可以理解为根据已知信息将图像中缺失信息进行填补,以达到和完整部分在视觉效果上协调的操作。该方法相当于人类在空洞部分进行绘画操作,将未完成的图像部分绘画以填补完整,因此空洞填补方法是绝大多数研究者选择的方法。根据所使用数据来源空洞填补方法可分为背景重建、图像补全和其他图像填充方法。
(1)背景重建
背景重建方法是运用各种数据模型对图像背景部分进行重建,最后将前景部分填充背景图像中合成虚拟视点图像。Rahaman等人[10]利用高斯混合模型(Gaussian Mixture Model,GMM)来分离前景部分和背景部分,通过来自相应GMM 模型和变形图像的像素强度的自适应加权平均值进行修复,通过该模型合成的图像可以互相将各自的空洞进行遮挡,从而达到填充空洞的目的。Xi 等人[16]提出一种基于时空纹理合成的基于深度图像的DIBR 方法,该方法通过提取输入视频信息中背景部分的画面,保持原始序列的静止场景的子画面,采用有用的结构信息来恢复虚拟视图图像中缺少的部分。Zhu 等人[18]发现GMM 对于往复运动的序列性能较差,因此提出了一种改进的基于GMM 的方法以避免前景像素被误分类为背景像素,并使用深度信息来调整GMM中的学习率。
(2)图像补全
图像补全(Image-Inpainting)是填充图像空洞的重要方法之一。该方法根据图像自身或源于图像库的信息来补全待修复图像的缺失区域,使得修复后的图像看起来非常自然,难以和未受损的图像区分开。目前Inpainting算法发展非常成熟。
Inpainting方法可以分为基于样本方法和基于模型方法,基于样本的方法占大多数。此类方法通过对图像样本的采样区域图像进行分析并且找到与被填补区域最佳的匹配区域,最终进行修复。有研究者利用纹理相似度进行图像空洞填补,Zhu 等人[19]提出对空洞周围的像素进行识别,并使用识别出的孔周围未遮挡的背景信息以及遮挡的背景信息进行孔填充。Voronin等人[20]在Image-Inpainting算法中进行边缘重构的方法,该算法基于三次样条构建复合曲线的图像,可恢复图像的对象边界。Cho等人[21]将背景区域先于前景区域进行填充,同时将与背景相关的数据填充在边界区域以减少伪影。Kim等人[22]提出一种可靠标签传播方法,相邻视图和前一帧中使用的可靠标签传播到要填充的目标图像。
在Inpainting方法中,Criminisi等人[23]提出了经典的等照度线驱动的优先权计算方法。该算法首先对输入图像进行边缘和空洞检测,然后标记空洞区域并筛选空洞边缘像素。接着计算边缘像素的优先级。下一步根据优先级依次填充边缘像素,填充过程将根据匹配块搜索到最佳匹配区域进行。一轮结束后,重新空洞边缘检测,进行下一轮的填充,直至填充完毕全部空洞为止[23]。
Criminisi 算法是根据空洞图像中的完好区域进行搜索并得到最佳的匹配像素进行填充的方法。但是这种方法只考虑图像相邻像素的一致性并未考虑图像序列之间的关联,因此可能导致修复后的图像产生令人感到不舒适的斑块。
国内外研究者针对Criminisi 算法的不足之处提出很多改进方法,特别是针对该算法中优先级计算方式改进以及搜索区域算法提升做出许多贡献。陶兆胜等人[24]发现图像纹理会很大程度影响绘制效果,因此提出利用图像修复点的边缘分辨因子,即所在处法线两侧两区域的平均值之差进行绘制。Cheng等人[25]将优先项的计算公式中置信项进行指数运算,减少置信项权重,增加数据项的权重,以减少在绘制过程中置信项产生的绘制错误。Wang等人[26]提出了一种非直接Criminisi方法,该方法根据图像像素的校准参数确定图像绘制的方向,然后根据以最小RGB之和为参考标准的匹配块进行空洞填充。
在改进方法中,增加深度信息可以减少前景部分的错误扩散,同时提升深度图的边缘绘制质量。Zhu 等人[18]将最大深度值和像素深度值之差的平均值与置信项和数据项进行线性相加得到新的优先级计算方式。Ramírez等人[27]提出的深度正则项将深度信息与原先彩色信息进行结合,提出利用深度信息值改变边缘像素的填充顺序。Reel 等人[28]提出将深度值引入优先级的计算中作为权重,将归一化的深度值和原先的权重公式进行相乘,以减少匹配块在前景和背景之间修复产生的错误。Buyssens 等人[29]在空洞填补的过程中利用深度信息作为引导,解决深度图像和彩色图像产生的遮挡空洞问题。
以Criminisi 算法为基础的图像补全方法是通过不断进行迭代完成填充的过程,然而Criminisi每次填充的空洞个数较少,因此迭代次数较高,导致运行时间过长。因此在未来的发展中,新的填充方法应考虑减少迭代次数和运行时间。
(3)利用其他图像填充
填充空洞不仅可以运用空洞图像自身进行填充,利用其他视点图像或者是用前后帧图像进行空洞填充也是有效的。传统的DIBR 方法会产生大量的空洞,但很多填充方法不能实现全局一致或获取可信的内容。Luo等人[30]针对该问题提出一种用于视图合成的深度引导全局优化的孔填充方法。并通过迭代时空近似最近邻(ANN)搜索和视频重建步骤来实现全局优化。他还提出一种用于孔填充的前景去除方法,该方法在3D-warping之前利用深度图像生成背景视频及其深度图,用于消除合成视频中的漏洞,可充分消除虚拟视图中的模糊效果以及伪影。Bokov等人[31]将现有的视频修复算法扩展到RGB-D视频,并引入了一个多层框架,该框架可以正确填充三个或多个具有不同深度的对象的交叉点附近的遮挡区域。Purica等人[32]提出一种利用了多视图视频序列中的时间和视图间相关性的视图合成方法,该方法从两个不同的时刻获得合成帧的时间预测。同时也提出了一种考虑深度的子像素变形技术,该技术可用于真实视图的变形以及运动补偿。
2.3.2 提升参考图像质量
参考图像质量的好坏将直接导致虚拟视点绘制的图像的质量的优劣。提升参考图像和深度图像质量最普遍的操作是进行滤波去噪。提升参考深度图像或彩色图像的质量可以对3D-warping的绘制质量产生影响,深度图平滑处理可以减少前景区域被绘制至背景区域的可能性。
Zhu 等人[1]提出对深度图的局部进行边缘提取,利用异或运算的卷积算子和原图像之差来提取深度图像的边缘,并将边缘部分的突变像素重新进行赋值,使深度图边缘平滑。李等人[8]在视点合成过程前对深度图利用加权模式滤波器对估计的深度图像进行滤波处理。Luo等人[33]提出一种快速的用于视图合成的基于马尔科夫链的快速孔填充方法,该方法被公式化为能量最小化问题,并通过循环传播解决。潘云峰等人[34]提出了一种对绘制后深度图像进行优化处理的方法,该方法利用最小均方逼近多项式滤波和加权模式滤波方法将绘制后深度图像进行优化处理。
2.3.3 减少空洞,提升绘制效率
3D-warping后的图像通常包含大量的空洞,如果直接进行空洞填充,时间复杂度和空间复杂度会非常高。通过一些处理方法将空洞缩小或者完全遮挡可以降低运算的复杂度。Li等人[35]提出在DIBR过程中利用多个参考视点进行绘制,其中除左右视点进行视点合成外,再加入新的右视图对包含空洞图像进行进一步绘制,将空洞部分进行进一步缩小。并充分利用除两个视图之外的其他相邻互补视图,可缓解目标虚拟视图中出现孔的问题。并提出使用孔的相邻背景像素来估计孔的背景深度值,根据相邻的被遮挡的背景像素来估算孔的背景深度值。
Thatte等人[36]提出需要通过判断缺失区域产生的原因,进而了解应捕获和存储哪些有利位置来最大程度地减少合成新颖视图中的遮挡孔,并提出了一种可预测视点平移的统计模型推测合成图像中丢失数据的可能性。Sun等人[37]提出两个参考视点图像可以互相掩盖进行空洞填充的方法,并采用对引起人注意程度较高的空洞进行外推修复,这种方法比简单的强度扩展效果更好,同时能避免前景和背景的模糊。Köppel等人[38]描述了一种新颖的混合纹理合成方法,该方法以创新的方式结合了基于补丁的新方法和新颖的快速参数纹理合成方法,以计算出遮挡的图像区域。Yin 等人[39]提出基于梯度方向模板并将其应用于填充左遮挡区域,并且针对空洞处于像素不同方向选取不同的周边像素进行填充。
2.3.4 利用卷积神经网络实现空洞填充
随着深度学习技术的不断发展,卷积神经网络早已投入图像质量提升以及图像空洞的填补领域。Kang等人[40]提出了一种在没有参考图像的情况下完全依赖卷积神经网络进行虚拟视点绘制的方法。该方法不需要提前设置参数,可以在无参考图像的情况下进行预测空洞填充区域。Xiong[41]加入边缘提取网络将残缺图像的边缘进行补全,并根据补全的边缘图像利用卷积神经网络将空洞区域填充。
利用卷积神经网络进行图像空洞区域的填充方法已经被研究者知晓。Yu 等人[42]提出一种根据最新图像修复的模型所构建的生成图像修复网络。该网络通过粗略的像素区域估计和精细的预测网络将空洞区域填充,得到和原图像相匹配的效果。Liu 等人[43]使用局部卷积网络进行图像的空洞区域填充,该方法相比较全局网络可以减少绘制产生的颜色差异和模糊效果。
通过卷积神经网络的方法不仅新颖,还可以增加机器的自动识别程度,减少人工对绘制前参数的干扰问题,同时减少运行的时间复杂度,但图像数据库的选取对于该算法的运行结果非常关键。随着人工智能技术和卷积神经网络技术的不断发展,使用卷积神经网络的方法将成为未来主要的研究方向之一。
虚拟视点绘制技术可以合成出其他视点图像,极大地减少了3D多媒体服务中多视点视频的视点数据采集量,进而能有效降低3D数据传输数据量,节省传输带宽的能耗,是计算机图形学和多媒体通信领域的共性关键技术。未来虚拟视点合成技术的质量提升研究可以从以下方面展开探索:
(1)如何在3D-warping的投射方程中加入自适应可调因子,以减少绘制过程中产生的几何图形畸变。
(2)针对绘制后图像进行的优化处理,如何在先前帧图像中高效地获取空洞的匹配区域,选择复杂度低的空洞填充方法进行填充。
(3)如何将深度学习方法应用于虚拟图像绘制过程中的深度图像预处理、合成图像前景和背景获取、空洞填充中,提升合成图像质量。