一种虚拟视点中像素点的获取方法
技术领域
本发明涉及一种虚拟视点绘制方法,尤其是涉及一种虚拟视点中像素点的获取方法。
背景技术
随着数字视频技术的快速发展,二维视频以平面图像来描述真实的三维场景,已无法满足用户对真实感和立体感的需求。与传统的二维视频相比,自由视点视频(FVV,Free Viewpoint Video)系统能使用户自由地选择观看角度,并且自由视点视频带来强烈地视觉冲击,使观众感到景物迎面而来,恍若身临其境,感受到了真切的深度感和沉浸感,是新一代多媒体视频系统的发展方向。在自由视点视频中,由于受到成本与传输带宽的限制,不可能在每一个视点上都放置一台摄像机,因此需要使用已有的有限个视点合成未知的多个虚拟视点,来达到自由视点的视觉效果。
多视点彩色加深度视频(MVD,Multi-view Video plus Depth)是自由视点视频的一种主流数据表示结构,其可用于表达深度层次丰富的场景,再结合深度图绘制技术(DIBR,Depth Image Based Rendering)能够绘制出多个虚拟视点,达到自由视点的体验效果。深度图绘制技术是近几年来得到广泛关注与应用的虚拟视点合成技术,其利用已有视点的彩色视频与对应的深度视频提供的空间几何信息绘制出虚拟视点。利用深度图绘制技术绘制虚拟视点的过程中主要使用的技术有:坐标变换(3D Warping)、空洞填补、图像融合等技术。
在虚拟视点绘制过程中,坐标变换技术是一个非常关键的问题,像素点是通过坐标变换技术获取的。坐标变换技术根据真实相机拍摄的彩色视频结合对应的深度信息,将彩色视频中的像素点逐个映射到虚拟视点上,获得虚拟视点中的像素点。空间坐标映射的准确度会影响整体的绘制质量,虚拟视点绘制过程中的坐标变换如果没有达到较好的效果,则将会影响空洞填补等后续过程,会增加后续处理的难度,最终将影响虚拟视点绘制质量。
目前,常见的坐标变换方法为虚拟视点绘制软件(VSRS,View Synthesis RenderingSoftware)中的坐标变换方法,其为了提高坐标变换的精度,在坐标变换时使每一个参考视点上的像素点映射到虚拟视点中的两个像素点,最终获得一个水平图像宽度两倍于参考视点的虚拟视点。这种坐标变换方法在每次一个参考像素点映射时会得到两个映射像素点,当相邻的两个参考像素点的深度值信息相同时,映射得到的四个映射像素点将是相邻的,如果相邻的两个参考像素点中的其中一个参考像素点的深度值发生了改变,即深度信息不准确,则在四个映射像素点之间会出现一些像素点没有被映射的像素点的情况,而出现漏映射,从而产生裂纹甚至空洞,虽然在空洞填补过程中会将坐标变换中出现的裂纹和空洞都填补,但是并不能消除这些裂纹对图像最终质量的影响;此外,对于这种坐标变换方法,漏映射产生的裂纹有可能会被后续映射的像素点填充,但如果后续映射的像素点相对于需要被映射的像素点是处于背景区域的,则获得的虚拟视点会出现背景区域暴露到前景区域的情况。
发明内容
本发明所要解决的技术问题是提供一种虚拟视点中像素点的获取方法,其在深度视频估计不准确时仍然能够获取高准确度的像素点,能够有效地提高虚拟视点绘制的质量。
本发明解决上述技术问题所采用的技术方案为:一种虚拟视点中像素点的获取方法,其特征在于包括以下步骤:
①获取一个视点的彩色视频及对应的深度视频,并假设虚拟视点位于彩色视频与深度视频所在的视点的右侧;
②以帧为单位,根据彩色视频中的每帧彩色图像中的每个像素点及深度视频中的每帧深度图像中的每个像素点,获取虚拟视点中的每帧虚拟图像中的每个像素点的像素值和深度值,具体过程为:
②-1、将彩色视频中当前待处理的一帧彩色图像定义为当前彩色图像,将深度视频中当前待处理的与当前彩色图像对应的一帧深度图像定义为当前深度图像;
②-2、将当前彩色图像中当前待处理的像素点定义为当前第一像素点,将当前第一像素点的右相邻像素点定义为当前第二像素点;
②-3、将当前第一像素点记为A,将当前第一像素点A的坐标位置记为(x1,y1),将当前第二像素点记为B,将当前第二像素点B的坐标位置记为(x2,y2),将当前第一像素点A与当前第二像素点B之间的空间位置距离定义为1个单位,其中,1≤x1≤W-1,1≤y1≤H,2≤x2≤W,1≤y2≤H,W表示彩色视频中的彩色图像和深度视频中的深度图像的宽度,H表示彩色视频中的彩色图像和深度视频中的深度图像的高度,x2-x1=1,y2=y1;
②-4、分别将当前第一像素点A和当前第二像素点B投影到虚拟视点中与当前彩色图像对应的虚拟图像上,将当前第一像素点A投影到虚拟图像上的投影点记为A',将当前第二像素点B投影到虚拟图像上的投影点记为B',将A'在虚拟图像中的坐标位置记为(x1',y1),将B'在虚拟图像中的坐标位置记为(x2',y2),其中,x1'=2×(x1+d1),x2'=2×(x2+d2),d1表示当前第一像素点A向虚拟图像映射时的视差,d2表示当前第二像素点B向虚拟图像映射时的视差;
②-5、在A'与B'的连接线段上找出所有像素点,如果不存在像素点,则直接执行步骤②-7;如果存在若干个像素点,则统计找出的所有像素点的个数,若个数小于或等于设定的判定阈值T,则计算找出的每个像素点在A'与B'的连接线段上的距离比;若个数大于设定的判定阈值T,则计算找出的离A'最近的个像素点各自在A'与B'的连接线段上的距离比及离B'最近的个像素点各自在A'与B'的连接线段上的距离比,其中,符号为向下取整符号,对于上述任一个需计算距离比的像素点,记为C',将该像素点C'在A'与B'的连接线段上的距离比记为rC',LA'C'表示A'与该像素点C'之间的空间位置距离,LA'B'表示A'与B'之间的空间位置距离;
②-6、对于步骤②-5中已计算过距离比的所有像素点,获取每个像素点的像素值和深度值,针对任一个像素点C'进行以下操作:a、提取当前深度图像中与当前第一像素点A相同坐标位置的像素点的深度值,并提取与当前第二像素点B相同坐标位置的像素点的深度值,然后将提取出的两个深度值中值最大的深度值作为该像素点C'候选的深度值;b、判断该像素点C'是否已被赋予过像素值和深度值,如果已被赋予过像素值和深度值,则比较该像素点C'已被赋予的深度值和该像素点C'候选的深度值的大小,然后将值最大的深度值作为该像素点C'的深度值,并将值最大的深度值对应的像素值作为该像素点C'的像素值;如果未被赋予过像素值和深度值,则直接将该像素点C'候选的深度值作为该像素点C'的深度值,并根据当前第一像素点A的像素值、当前第二像素点B的像素值及该像素点C'在A'与B'的连接线段上的距离比rC',采用线性空间移不变插值方法插值得到该像素点C'的像素值,记为f(C'),f(C')=ω×f(A)+(1-ω)×f(B),其中,ω=1-g(rC'),f(A)表示当前第一像素点A的像素值,f(B)表示当前第二像素点B的像素值, n表示线性空间移不变核函数g()中的参数;
在获得步骤②-5中已计算过距离比的每个像素点的像素值和深度值后执行步骤②-7;
②-7、将当前彩色图像中下一个待处理的像素点作为当前第一像素点,将当前第一像素点的右相邻像素点作为当前第二像素点,然后返回步骤②-3继续执行,直至当前彩色图像中的所有像素点处理完毕;
②-8、将彩色视频中下一帧待处理的彩色图像作为当前彩色图像,将深度视频中下一帧待处理的与当前彩色图像对应的一帧深度图像作为当前深度图像,然后返回步骤②-2继续执行,直至彩色视频中的所有彩色图像和深度视频中的所有深度图像处理完毕,得到虚拟视点中的每帧虚拟图像中的每个像素点的像素值和深度值。
所述的步骤②-5中设定的判定阈值T取值为6。
所述的步骤②-6中取n=2。
与现有技术相比,本发明的优点在于:
1)本发明方法中将彩色图像中的一个像素点及其右相邻像素点投影到虚拟图像上,得到对应的两个投影点后,对包含在两个投影点之间的像素点选择多个进行插值计算得到像素值,运用这种方法能够填补多个像素点,因此本发明方法能够有效地避免因为深度信息不准确而在虚拟视点上产生的漏映射,从而减少了裂纹的产生,降低了后续空洞填补的难度,提高了虚拟视点的质量。
2)本发明方法在映射过程中避免了裂纹的产生,当前填补的裂纹可能在后续会有多个像素点再次映射到此裂纹处,比较映射到同一个点的几个像素点的深度值,深度值越大表明离相机越近,处在前景区域,保留深度值较大的像素点,而如果当前裂纹没有被填补,而后续映射点相对于当前裂纹处区域是处于背景区域的,就会使得背景区域暴露到前景区域,因此本发明方法能够消除背景区域覆盖前景区域的情况。
附图说明
图1为本发明方法的流程框图;
图2为本发明方法的映射过程的简单示意图;
图3a为“Kendo”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述)的示意图;
图3b为“Leave Laptop”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述)的示意图;
图3c为“Poznan Street”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述)的示意图;
图3d为“Book Arrival”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述)的示意图;
图4a为“Book Arrival”序列的第6视点的第1帧深度图像;
图4b为“Kendo”序列的第3视点的第1帧深度图像;
图4c为“Newspaper”序列的第2视点的第1帧深度图像;
图4d为“Poznan Street”序列的第3视点的第1帧深度图像;
图5a为“Book Arrival”序列的第6,10视点采用VSRS虚拟视点绘制方法得到的第8视点的虚拟视点的第1帧图像;
图5b为“Book Arrival”序列的第6,10视点采用使用本发明方法的虚拟视点绘制方法得到的第8视点的虚拟视点的第1帧图像;
图5c为“Kendo”序列的第3,5视点采用VSRS虚拟视点绘制方法得到的第4视点的虚拟视点的第47帧图像;
图5d为“Kendo”序列的第3,5视点采用使用本发明方法的虚拟视点绘制方法得到的第4视点的虚拟视点第47帧图像;
图5e为“Newspaper”序列的第2,6视点采用VSRS虚拟视点绘制方法得到的第4视点的虚拟视点的第1帧图像;
图5f为“Newspaper”序列的第2,6视点采用使用本发明方法的虚拟视点绘制方法得到的第4视点的虚拟视点的第1帧图像;
图5g为“Poznan Street”序列的第3,5视点采用VSRS虚拟视点绘制方法得到的第4视点的虚拟视点第1帧图像;
图5h为“Poznan Street”序列的第3,5视点采用使用本发明方法的虚拟视点绘制方法得到的第4视点的虚拟视点第1帧图像。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种虚拟视点中像素点的获取方法,其流程框图如图1所示,其包括以下步骤:
①获取一个视点的彩色视频及对应的深度视频,并假设虚拟视点位于彩色视频与深度视频所在的视点的右侧。
②以帧为单位,根据彩色视频中的每帧彩色图像中的每个像素点及深度视频中的每帧深度图像中的每个像素点,获取虚拟视点中的每帧虚拟图像中的每个像素点的像素值和深度值,具体过程为:
②-1、将彩色视频中当前待处理的一帧彩色图像定义为当前彩色图像,将深度视频中当前待处理的与当前彩色图像对应的一帧深度图像定义为当前深度图像。
②-2、将当前彩色图像中当前待处理的像素点定义为当前第一像素点,将当前第一像素点的右相邻像素点定义为当前第二像素点。
②-3、将当前第一像素点记为A,将当前第一像素点A的坐标位置记为(x1,y1),将当前第二像素点记为B,将当前第二像素点B的坐标位置记为(x2,y2),将当前第一像素点A与当前第二像素点B之间的空间位置距离定义为1个单位,其中,1≤x1≤W-1,1≤y1≤H,2≤x2≤W,1≤y2≤H,W表示彩色视频中的彩色图像和深度视频中的深度图像的宽度,H表示彩色视频中的彩色图像和深度视频中的深度图像的高度,x2-x1=1,y2=y1,当前第一像素点A与当前第二像素点B的位置关系如图2所示。
②-4、分别将当前第一像素点A和当前第二像素点B投影到虚拟视点中与当前彩色图像对应的虚拟图像上,将当前第一像素点A投影到虚拟图像上的投影点记为A',将当前第二像素点B投影到虚拟图像上的投影点记为B',将A'在虚拟图像中的坐标位置记为(x1',y1),将B'在虚拟图像中的坐标位置记为(x2',y2),其中,x1'=2×(x1+d1),x2'=2×(x2+d2),由于虚拟视点中的虚拟图像的宽度两倍于参考视点中的参考图像,因此参考图像中的像素点投影到虚拟图像上的投影点的横坐标需要乘上2倍,d1表示当前第一像素点A向虚拟图像映射时的视差,即表示当前第一像素点A投影到虚拟图像上需要平移的像素点的个数,d2表示当前第二像素点B向虚拟图像映射时的视差,即表示当前第二像素点B投影到虚拟图像上需要平移的像素点的个数,B表示拍摄相机与虚拟相机之间的距离,f表示拍摄相机的焦距,Z1表示实际物体与当前第一像素点A对应的点到拍摄相机的真实距离,Z2表示实际物体与当前第二像素点B对应的点到拍摄相机的真实距离。
②-5、在A'与B'的连接线段上找出所有像素点,由于映射情况不同因此可以找到不同个数的像素点,如果不存在像素点,则直接执行步骤②-7;如果存在若干个像素点,则统计找出的所有像素点的个数,若个数小于或等于设定的判定阈值T,则计算找出的每个像素点在A'与B'的连接线段上的距离比;若个数大于设定的判定阈值T,则计算找出的离A'最近的个像素点各自在A'与B'的连接线段上的距离比及离B'最近的个像素点各自在A'与B'的连接线段上的距离比,其中,判定阈值T的取值不同对最终质量会有影响,因此在本发明方法基础上做了大量测试,测试结果表明T取值为6时效果最佳,符号为向下取整符号,对于上述任一个需计算距离比的像素点,记为C',将该像素点C'在A'与B'的连接线段上的距离比记为rC',LA'C'表示A'与该像素点C'之间的空间位置距离,LA'B'表示A'与B'之间的空间位置距离。
②-6、对于步骤②-5中已计算过距离比的所有像素点,获取每个像素点的像素值和深度值,针对任一个像素点C'进行以下操作:a、提取当前深度图像中与当前第一像素点A相同坐标位置的像素点的深度值,并提取与当前第二像素点B相同坐标位置的像素点的深度值,然后将提取出的两个深度值中值最大的深度值作为该像素点C'候选的深度值;b、判断该像素点C'是否已被赋予过像素值和深度值,如果已被赋予过像素值和深度值,则比较该像素点C'已被赋予的深度值和该像素点C'候选的深度值的大小,然后将值最大的深度值作为该像素点C'的深度值,并将值最大的深度值对应的像素值作为该像素点C'的像素值,即若该像素点C'已被赋予的深度值大于该像素点C'候选的深度值,则将该像素点C'已被赋予的像素值作为该像素点C'的像素值,若该像素点C'已被赋予的深度值小于该像素点C'候选的深度值,则将当前彩色图像中与该像素点C'候选的深度值对应的像素点相同坐标位置的像素点的像素值作为该像素点C'的像素值;如果未被赋予过像素值和深度值,则直接将该像素点C'候选的深度值作为该像素点C'的深度值,并根据当前第一像素点A的像素值、当前第二像素点B的像素值及该像素点C'在A'与B'的连接线段上的距离比rC',采用线性空间移不变插值方法插值得到该像素点C'的像素值,记为f(C'),f(C')=ω×f(A)+(1-ω)×f(B),其中,ω=1-g(rC'),f(A)表示当前第一像素点A的像素值,f(B)表示当前第二像素点B的像素值, n表示线性空间移不变核函数g()中的参数。为了确定参数n的具体取值,对n取不同的值进行多组实验,n的取值为0~8之间的整数,实验采用的视频序列有“Kendo”、“Leave Laptop”、“Poznan Street”和“Book Arrival”,图3a给出了“Kendo”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述),图3b给出了“Leave Laptop”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述),图3c给出了“Poznan Street”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述),图3d给出了“Book Arrival”序列随参数n变化而改变的虚拟视点客观质量(以PSNR描述),图3a至图3d中纵坐标表示最终虚拟视点客观质量,横坐标表示n的取值大小,从图3a至图3d中可以看出n值越大或越小时,得到的虚拟视点质量都将越小,因此综合考虑各序列的实验结果,在本实施例中取n=2。
在获得步骤②-5中已计算过距离比的每个像素点的像素值和深度值后执行步骤②-7。
②-7、将当前彩色图像中下一个待处理的像素点作为当前第一像素点,将当前第一像素点的右相邻像素点作为当前第二像素点,然后返回步骤②-3继续执行,直至当前彩色图像中的所有像素点处理完毕。
②-8、将彩色视频中下一帧待处理的彩色图像作为当前彩色图像,将深度视频中下一帧待处理的与当前彩色图像对应的一帧深度图像作为当前深度图像,然后返回步骤②-2继续执行,直至彩色视频中的所有彩色图像和深度视频中的所有深度图像处理完毕,得到虚拟视点中的每帧虚拟图像中的每个像素点的像素值和深度值。
为了测试本发明方法的性能,分别采用VSRS虚拟视点绘制方法和使用本发明方法的虚拟视点绘制方法对序列“Book Arrival”、“Dog”、“Door Flowers”、“Kendo”、“LeaveLaptop”、“LoveBird1”、“Newspaper”、“Alt Moabit”、“Poznan Street”、“Poznan CarPark”进行了测试,做了两轮虚拟视点绘制测试,第一轮采用现有的VSRS虚拟视点绘制方法,第二轮采用使用本发明方法的虚拟视点绘制方法,每轮测试都测试了各个序列的50帧。
表1给出了序列“Book Arrival”、“Dog”、“Door Flowers”、“Kendo”、“Leave Laptop”,“LoveBird1”、“Newspaper”、“Alt Moabit”,“Poznan Street”、“Poznan CarPark”采用VSRS虚拟视点绘制方法得到的结果以及采用使用本发明方法的虚拟视点绘制方法得到的结果的对比情况。从表1中所列的数据及图5a至图5h给出的图像(其中图5a至图5h中右边的小图是对应大图方框区域的放大图)中可以得知,与现有的VSRS虚拟视点绘制方法相比,采用使用本发明方法的虚拟视点绘制方法得到的结果在视频图像的主观、客观质量上都得到了提升。对于“Book Arrival”、“Kendo”、“Newspaper”与“Poznan Street”序列,其深度视频中原本平坦的区域存在较多纹理,深度视频较不准确,如图4a~4d所示,分别表现在“Book Arrival”序列的凳脚处,“Kendo”序列的墙壁和地面,“Newspaper”序列的书柜中,“Poznan Street”序列的车身上。采用现有的VSRS虚拟视点绘制方法得到的虚拟视点在相应的地方会出现斑纹或黑点,较大地影响了主观质量,如图5a、5c、5e和5g所示。而采用使用本发明方法的虚拟视点绘制方法很好地避免了由于深度视频估计不准确而产生的虚拟视点的失真,从而提高了虚拟视点主观质量,如图5b、5d、5f和5h所示。在虚拟视点绘制过程中由于深度视频估计不准确而产生的漏映射可能会使背景暴露,如图5a、5e和5g所示,图5a中的人物头部,图5e中的植物,图5f中的栅栏处,采用现有的VSRS虚拟视点绘制方法将背景部分的内容映射到前景区域,造成主观质量较大的失真。而采用使用本发明方法的虚拟视点绘制方法能够避免这样的情况,改善主观质量,如图5b、5f和5h所示。从表1的数据中可以得到在采用使用本发明方法的虚拟视点绘制方法绘制“Book Arrival”、“Kendo”、“Newspaper”与“Poznan Street”序列后,其虚拟视点的客观质量PSNR分别较采用现有的VSRS虚拟视点绘制方法绘制的虚拟视点提高了0.94dB,0.75dB,0.63dB和0.59dB。因此采用使用本发明方法的虚拟视点绘制方法较采用现有的VSRS虚拟视点绘制方法得到的虚拟视点的客观质量和主观质量都有所提升。
表1 虚拟视点客观质量的实验结果