刘 然,谢 辉,邰国钦,谭迎春
(1.重庆大学 通信工程学院,重庆 400044;2.重庆大学 计算机学院,重庆 400044;3.软件理论与技术重庆市重点实验室,重庆 400044;4.四川虹微技术有限公司,四川 成都 610041)
由于深度图像绘制(depth-image-based rendering,DIBR)技术是三维电视系统中的关键技术,因此引起了很多研究者的关注[1-2].DIBR技术的核心步骤是三维图像变换(3Dimage warping)[3].三维图像变换能够将参考图像(reference image)中的点投影到三维空间,再将三维空间中的点重投影到目标图像(destination image)平面上,从而生成新视点视图[3-4].理论上,采用三维图像变换技术可以生成任意视点的视图,但是用硬件实现该技术较复杂.到目前为止,实际应用中仅考虑虚拟视点在水平方向移动的特殊情形(基线与参考图像及目标图像平面平行且无旋转)[1],这一特殊情形正是目前三维电视(包括自由立体显示器)中广泛使用的情形[1,5].
在三维图像变换时,有可能将参考图像中的多个像素点映射到目标图像的同一个点上,这就是由可见性变化所引起的“褶皱(folds)”现象[5-6],消除褶皱才能使目标图像呈现出正确的遮挡关系.处理褶皱的传统方法是Z-buffer算法,该算法需要存储并比较每一个像素点的深度值,不但占用额外的内存空间,而且绘制速度慢.McMillan等提出了一种遮挡兼容算法(occlusion-compatible algorithm)[6-7],该算法将目标图像对应的摄像机光心投影到参考图像上得到极点,通过极点来确定扫描顺序,从而得到正确的视图.由于该算法只依赖于参考摄像机的内部参数矩阵、外部参数和目标图像对应的虚拟摄像机的光心坐标,从而处理简单.但McMillan没有针对DIBR技术讨论基线与参考(目标)图像平面平行时的扫描顺序,并且该算法需要摄像机标定参数,而在目前的三维电视中,基于深度图像的三维视频只包含了参考图像及其对应的深度图像,摄像机标定参数都是未知的[8],这就限制了遮挡兼容算法的应用.
本文针对DIBR在三维电视中的应用,研究了虚拟视点在水平方向移动时具有的特殊性质,给出了一种通过视图判定确定参考图像像素点扫描顺序的方法来消除褶皱.该方法的特点是通过虚拟一个接近无穷远的极点来确定极点的极性,最终只需判断目标图像是左视图还是右视图(称为视图判定),便可确定参考图像像素点的扫描顺序.
如前所述,DIBR存在的一个重要问题就是由可见性变化所引起的褶皱现象,即参考图像中的多个像素点映射到目标图像中同一个点的现象.图1说明了褶皱现象产生的原因.
图1 由可见性变化引起的褶皱现象示意图Fig.1 Illustration of“folds”introduced by changes in visibility
图1中,由摄像机光心c1,c2和点p1确定的平面称为极平面,c1,c2连线称为基线(baseline),记为向量c,向量c与图像平面的交点为e1,e2.如果e1,e2在向量c的正方向上,则为正极点,如果e1,e2在向量c的负方向上则为负极点.极平面与摄像机平面的交线l1,l2称为极线.通过DIBR技术,极线l1被映射到目标图像平面上,形成极线l2.如图1所示,当p2在直线p1c2上时,则其在目标图像平面上的投影与p1的投影重合,从而产生了褶皱现象.
消除褶皱现象的一种方法是确定参考图像中像素点的扫描顺序,确保被其他点遮挡的点在目标图像中总是先被绘制,通常这种方法叫做从后向前褶皱消除法,遮挡兼容算法便是一种从后向前的方法[5,7].本文的方法本质上也是从后向前的方法,下面介绍该方法的原理.
如图1所示,a,b表示投影点p1,p2离虚拟光心c2的距离,且a>b.从图中可以看出:在参考图像上沿着极线l1指向正极点e1的方向来扫描参考图像中的像素点时,离虚拟摄像机光心c2远的点先绘制,近的点后绘制.因此离虚拟摄像机光心c2近的点p2的信息将覆盖远处点p1的信息,从而建立正确的可见性关系.若e1为负极点,则在参考图像上沿着极线背离负极点的方向来扫描像素点.
由于所有可能产生褶皱现象的点都可以约束在极平面上,所有的极平面相交于基线,所有的极线相交于极点,因而只要确定极点就可以得到正确的参考图像像素点扫描顺序.极点的具体确定方法描述如下:
设极点e1在图像像素坐标系中的齐次坐标为[exeyez1]T,在c1对应的摄像机坐标系下的规范化齐次坐标为[exceycezc1]T;设向量c的齐次坐标(c2-c1)为 [cxcycz1]T(世界坐标系),由针孔摄像机模型可得
式中:K为摄像机的内部参数矩阵(4×4),ax和ay分别为水平方向和垂直方向的比例因子,[oxoy10]T为光轴与图像平面的交点坐标,矩阵R(4×4)代表从世界坐标系变换到摄像机坐标系的旋转矩阵.将K代入式(1)可推出
从式(2)可以看出,当cz=0时,基线与参考图像平面无交点.当cz≠0时,基线与参考图像平面不平行,必与之有交点.
设参考图像平面的单位法向量的规范化齐次坐标为d=[dxdydz1]T.由式(2)得[exceycez1]T为向量c通过旋转矩阵R变换后生成的新向量d1的坐标(d,d1的坐标为c1对应的摄像机坐标系下的坐标),而d可以看成由世界坐标系z轴的单位向量规范化齐次坐标d0=[0011]T经过旋转矩阵R变换后生成的新向量,因此向量d1和向量d的夹角与向量c和向量d0的夹角相同.若d1和d的夹角小于90°,则向量c与参考图像平面的交点在向量c的正方向,为正极点,此时ez>0;若夹角大于90°则向量c与参考图像平面的交点在向量c的负方向,为负极点,此时ez<0.将极点e1的齐次坐标归一化可得[ex/ezey/ez1]T,归一化后的前两个分量便是极点在参考图像平面中的坐标值.
目前三维电视中的DIBR系统仅考虑虚拟视点在水平方向移动的特殊情形,这种情形下两摄像机的坐标系是互相平行的,如图2所示.本节重点研究这种特殊情形下的消除褶皱.
图2 两摄像机的基线与参考图像平行的特殊情形示意图Fig.2 Illustration of the special case when the baseline of the two cameras is parallel to the reference image
不失一般性,设图2中c1对应的摄像机坐标系与世界坐标系重合,且基线与参考(目标)图像平行,c2为虚拟视点对应的光心坐标.根据针孔摄像机模型有(c2-c1)=[cxcycz1]T,cz=0,且R=E(单位矩阵),由式(2)得ez=0.此时极点e1与参考图像平面相交于无穷远处,无法确定极点的极性.
为了确定参考图像像素点的扫描顺序,可作如下假设:设cz=Δσ,Δσ→0,代入式(1)可得
如果Δσ→0+,则极点为正极点,且落在无穷远处.可以证明,Δσ→0-时参考图像的扫描顺序与Δσ→0+时的顺序相同.
定理 设极点e1在图像像素坐标系中的坐标为[exeyΔσ]T,则Δσ→0-时参考图像的扫描顺序与Δσ→0+时的顺序相同.
证明 将极点e1的齐次坐标归一化为[ex/Δσ ey/Δσ 1]T.根据第1.2节的原理,(ex/Δσ,ey/Δσ)便是e1在参考图像平面中的坐标.当Δσ→0时,极点e1(ex/Δσ,ey/Δσ)可以落在坐标系中任意一个象限或坐标轴的无穷远处,具体位置取决于ex和ey的符号.如果Δσ→0+,e1是正极点,根据第1.2节的原理,参考图像的扫描顺序是朝向e1的方向;如果Δσ→0-,e1是负极点,参考图像的扫描顺序是远离e1的方向.由于Δσ→0+时的极点坐标与Δσ→0-时的极点坐标关于原点对称,趋向相反的方向,如图3所示,因此Δσ→0+和Δσ→0-时扫描顺序相同.
图3 Δσ→0+与Δσ→0-时参考图像的扫描顺序Fig.3 Scan order of the reference image in case of Δσ→0+andΔσ→0-
上述定理说明了在考察参考图像的扫描顺序时,只需要考察Δσ→0+与Δσ→0-中的一种.下面仅讨论Δσ→0+即e1为正极点时,ex和ey取其他不同的符号组合参考图像的扫描顺序.
如果ex>0,ey>0,则e1坐标为[+∞ +∞1]T.此时,极线li与极线lj平行,如图3所示.显然,此时应按照从左到右,从上到下的顺序扫描参考图像,如图4a所示.
若ex<0,ey>0,则e1的坐标为[-∞ +∞1]T,其扫描方向如图4b所示,按从右到左,从上到下的顺序扫描.类似地,可以得到当ex>0,ey<0时的扫描方向(见图4c)以及当ex<0,ey<0时的扫描方向(见图4d).
e1落在坐标轴上的情况有如下几种:若ex>0,ey=0则e1的坐标为[+∞ 01]T,落在x轴正无穷远处,极线与x轴平行,因此应按从上到下的顺序扫描,而水平方向的扫描顺序没有限制,如图4e所示.类似地,可以得到其他情形的扫描顺序,分别如图4f~h所示.若ex=0,ey=0,又ez=0,代入式(1),可得(c2-c1)=[0001]T,即视点没有变换,没有形成新的视图,因此不存在此种情况.
图4囊括了ex和ey符号组合的所有情况,按图4的扫描顺序扫描参考图像像素点便可消除褶皱.
目前的三维电视应用中仅考虑视点在水平方向移动的特殊情形,即(c2-c1)=[cx001]T,代入公式(3),可得极点e1的坐标为[axcx0 Δσ]T.由于ax为正数,当cx小于0,此时极点e1落在x轴的负方向,如图4f;反之,极点e1落在x轴的正方向,如图4e所示.从图4f中可知,绘制左视图时应从右到左扫描参考图像;从图4e可知,绘制右视图时应从左到右扫描参考图像;垂直方向的顺序没有限制.因此在三维电视应用中,可先根据需求判断需要绘制的是左视图还是右视图(视图判定),然后再根据视图确定参考图像像素点的扫描顺序,便可消除褶皱.具体算法流程如图5所示.
图5 算法流程图Fig.5 Flowchart of the algorithm
本文采用“Ballet”和“Breakdancer”序列[9]中摄像机4拍摄到的图像以及“Lawn”和“Road”序列[10]进行试验.假设以拍摄参考图像的摄像机为中心,左右两边各摆放一个与该摄像机完全相同的虚拟摄像机(相当于左眼或右眼),人眼之间的距离为65mm(在“Ballet”和“Breakdancer”序列参数中相当于2.6[11],所有试验的基线长度都采用该参数).根据本文算法确定的扫描顺序(见图5)和三维图像变换公式[1]完成虚拟视点的绘制后,生成的目标视图如图6所示.
图6a为按照本文方法确定的扫描顺序(从右到左)扫描参考图像生成的左视图.由于视点的改变,在左视图中人物的左边缘和左视图左边界存在较大的空洞,这里为方便比较不进行空洞填充.图6b为按相反的顺序(从左到右)扫描参考图像生成的左视图.由于该图中人物先绘制,背景后绘制,导致圈和框所示的地方背景信息覆盖了部分的人物信息,生成了遮挡关系错误的内容.
图6c为按从左到右、从下到上的顺序扫描参考图像得到的右视图,图6d为按从左到右、从上到下的顺序扫描参考图像得到的右视图,两图的结果一样.由于基线与参考图像平行时,极点在无穷远处,所有的极线都平行,当极线与水平轴平行时,垂直方向没有分量,因而不需考虑垂直方向的绘制顺序.
图6e为采用Z-buffer算法生成的左视图,其结果与图6a一致,但采用本文方法的仿真速度比采用Z-buffer的速度快.采用其他序列重复上述试验(试验平台,Intel(R)i5CPU,2.81GHz,3.99G的内存),均可以得到同样的结论.图7显示了”Ballet”,“Breakdancer”, “Angkorwat”[10], “Flower”[10],“Lawn”,“Road”,“Stair”[10]以及 “Temple”[10]这八个序列的部分试验结果.
在图7a和b中,纵轴表示仿真时间,图7的横轴表示各个序列.用本文算法和Z-buffer算法测试各个序列的前10帧图像,然后计算这10幅图像仿真时间的平均值和方差,得到图7.其中图7a和c是绘制左视图时各个序列的平均仿真时间和仿真时间方差对比图,图7b和d是绘制右视图时各个序列的平均仿真时间和仿真时间方差.从图7可看出本文方法不但比Z-buffer算法速度快,而且更稳定.本文方法之所以快,是因为Z buffer算法需要计算并比较每一个像素点的深度值,而本文的方法不需要;本文方法之所以更稳定,是因为Z-buffer算法与产生褶皱现象的像素点的数目及扫描像素点的顺序有关,而本文方法仅需要确定扫描顺序,与图像内容无关.
从图7还可以发现,当绘制右视图时,Z-buffer算法的扫描顺序与本文方法的扫描顺序实际上是一致的.由于Z-buffer算法需要计算并比较每一个像素点的深度值(尽管这种比较是多余的),因而绘制速度比本文的方法慢很多.当绘制左视图时,Z-buffer算法的扫描顺序与本文方法是相反的.这时Z-buffer算法会保证离虚拟光心近的像素点先绘制,离虚拟光心远的像素点不被绘制,而本文方法中每一个像素点必然要绘制一次,因此Z-buffer算法与本文算法的性能差距稍有缩小.
在DIBR实际应用中,很多情况下是将参考图像当成左(右)视图来生成右(左)视图,并且要求虚拟视图的视点只在水平方向移动.本文研究了这种特殊情形下参考图像像素点的扫描顺序,提出了一种通过视图判定来消除褶皱的方法.该方法只需判断目标图像是左视图还是右视图,便可确定参考图像像素点的扫描顺序以消除褶皱.由于本文方法无需比较每个像素点的深度值,也不需要摄像机标定参数,且与图像的具体内容无关,因而计算简单、处理速度快、稳定性好.此外,该方法不需要另辟内存空间来存储每个点的深度值,有利于降低硬件实现的成本,简化DIBR系统的硬件实现.大量试验表明,本文的方法能够得到正确的扫描顺序,性能优于传统的Z-buffer算法.
本文方法适用于只有一幅参考图像的情况,下一步研究如何将该方法推广到有多幅参考图像的情况.
[1]LIU Ran,XIE Hui,TAI Guoqin,et al.Depth adjustment for depth-image-based rendering in 3D TV system[J].Journal of Information and Computational Science,2011,8(16):4233.
[2]ZHANG Ling,TAI Guoqin,LIU Ran,et al.Correction algorithm of matching error for DIBR[J].Journal of South China University of Technology:Natural Science,2011,39(12):51.
[3]刘然,巫英坚,许小艳,等.一种用于DIBR的去隔行算法[J].计算机应用研究,2011(4):1563.LIU Ran,WU Yingjian,XU Xiaoyan,et al.De-interlacing algorithm for DIBR[J].Application Research of Computers,2011(4):1563.
[4]LEE P-J,Effendi.Nongeometric distortion smoothing approach for depth map preprocessing [J]. Multimedia, IEEE Transactions on,2011,13(2):246.
[5]冯雅美.自然三维电视系统中虚拟视点绘制技术研究[D].杭州:浙江大学,2010.FENG Yamei.Virtual view generation research for natural 3D TV systems[D].Hangzhou:Zhejiang University,2010.
[6]LIU Zhanwei,AN Ping,LIU Suxing,et al.Arbitrary view generation based on DIBR[C]//Intelligent Signal Processing and Communications Systems 2007.Xiamen:Institute of Electrical and Electronics Engineers Inc.,2008:168-171.
[7]McMillan L,Jr.An image-based approach to three-dimensional computer graphic[D].Chapel Hill:University of North Carolina,1997.
[8]HDMI Licensing LLC.High-definition multimedia interface specification version 1.4a[EB/OL].[2012-10-15].http://www.docin.com/p-113296854.html.2011.
[9]Zitnick C L,Kang S B,Uyttendaele M,et al.High-quality video view interpolation using a layered representation[C]//ACM SIGGRAPH and ACM Transactions on Graphics.Los Angeles:Association for Computing Machinery,2004:600-608.
[10]ZHANG Guofeng,JIA Jiaya, Wong T,et al.3D video download[EB/OL].[2012-10-15].http://www.cad.zju.edu.cn/home/gfzhang/projects/videodepth/data/.2011.
[11]郁理.基于深度图像绘制的自由视点视频关键技术研究[D].合肥:中国科学技术大学,2010.YU Li.Key technology research on free-view video based on depth-image based rendering[D].Hefei:University of Science and Technology of China,2010.