具体实施方式
本发明实施例提供了一种虚拟视点图像合成方法及装置,用以提高虚拟视点图像的合成效率及质量。
针对现有技术中存在的问题,本发明实施例提出了一种基于深度图渲染技术的虚拟视点图像合成方案,为自由视点电视提供高质量的虚拟视点图像。本发明实施例不需要对深度图进行预处理,因此节省了运行时间,适于虚拟视点图像的实时合成;并且,利用基于深度图的非对称腐蚀图像修复技术对虚拟视点图像的非遮挡区域进行填充,提高了虚拟视点图像的质量。
如图1所示,本发明实施例提出的虚拟视点图像合成的主要过程包括图像变换、虚拟视点图像优化处理,以及非遮挡区域的填充等。
图像变换:根据摄像机投影原理,将参考视点的彩色图像和深度图像投影到虚拟视点位置,生成虚拟视点图像。其中包括:将主要参考视点的彩色图像和深度图像投影到虚拟视点位置,生成主要虚拟视点图像,以及将辅助参考视点的彩色图像和深度图像投影到虚拟视点位置,生成辅助虚拟视点图像。其中,虚拟视点图像即所要生成的视点图像;主要参考视点和辅助参考视点根据虚拟视点到两侧真实视点的距离确定,距离较近的为主要参考视点,距离较远的为辅助参考视点;若虚拟视点到两参考视点距离相同,设定左侧真实视点为主要参考视点,另一侧真实视点为辅助参考视点。
虚拟视点图像优化处理(即图像优化):检测虚拟视点图像上裂纹和错误投影点的宽度,若其为单像素宽度,则根据虚拟视点深度图像周围8邻域深度特征,对虚拟视点图像上的裂纹和错误投影点进行去除,即利用主要虚拟视点图像上的裂纹和错误投影点的形态特征,消除主要虚拟视点图像上的裂纹和错误投影点,以及利用辅助虚拟视点图像上的裂纹和错误投影点的形态特征,消除辅助虚拟视点图像上的裂纹和错误投影点;在HSV颜色空间,通过对亮度分量的处理,对两幅虚拟视点图像的亮度进行调整,以提升虚拟视点图像的质量。
非遮挡区域填充(即补洞):根据由辅助参考视点得到的虚拟视点图像对由主要参考视点得到的虚拟视点图像的空洞区域进行初步填充;并根据填充后的主要参考视点深度图像,通过基于深度图的非对称腐蚀图像修复技术对剩余的空洞区域进行进一步填充;该技术见步骤S103。
参见图2、本发明实施例提供的一种虚拟视点图像合成方法,包括步骤:
S101:将主要参考视点的彩色图像和深度图像投影到虚拟视点位置,生成主要虚拟视点图像,以及将辅助参考视点的彩色图像和深度图像投影到虚拟视点位置,生成辅助虚拟视点图像;
S102:利用主要虚拟视点图像上的裂纹和错误投影点的形态特征,消除主要虚拟视点图像上的裂纹和错误投影点,以及利用辅助虚拟视点图像上的裂纹和错误投影点的形态特征,消除辅助虚拟视点图像上的裂纹和错误投影点;
S103:利用辅助虚拟视点图像对主要虚拟视点图像的空洞区域进行填充。
由于光照条件、摄像机参数设置和感光元件灵敏度的不同,主要虚拟视点图像和辅助虚拟视点图像存在亮度不统一,因此,较佳地,在步骤S102和步骤S103之间,该方法还包括:
对主要虚拟视点图像和辅助虚拟视点图像进行亮度调整。
较佳地,所述对主要虚拟视点图像和辅助虚拟视点图像进行亮度调整,包括:
在HSV颜色空间,根据主要虚拟视点图像,调整辅助虚拟视点图像的亮度。
步骤S103中,利用辅助虚拟视点图像填充主要虚拟视点图像中的非遮挡区域,即空洞区域,大部分非遮挡区域被修复,图像中仍然存在部分非遮挡区域,因此,较佳地,在步骤S103之后,该方法还包括:
利用基于深度图的非对称腐蚀图像修复技术,对主要虚拟视点图像上的剩余空洞区域进行填充,从而提高虚拟视点图像质量。
较佳地,步骤S101包括:
根据主要参考视点的深度图像,将主要参考视点图像中的像素点坐标投影到空间坐标中,将空间坐标中的点,投影到虚拟视点图像坐标中,生成主要虚拟视点图像;
根据辅助参考视点的深度图像,将辅助参考视点图像中的像素点坐标投影到空间坐标中,将空间坐标中的点,投影到虚拟视点图像坐标中,生成辅助虚拟视点图像。
较佳地,步骤S102包括:
利用主要虚拟视点图像上的裂纹和错误投影点的形态特征,以及主要虚拟视点图像的深度图像,消除主要虚拟视点图像上的裂纹和错误投影点;
利用辅助虚拟视点图像上的裂纹和错误投影点的形态特征,以及辅助虚拟视点图像的深度图像,消除辅助虚拟视点图像上的裂纹和错误投影点。
由此可见,本发明实施例提出了一种面向自由视点电视的虚拟视点合成方法,通过基于深度图的渲染技术,根据主要参考视点和辅助参考视点的彩色图像和深度图像合成虚拟视点图像。例如,本发明实施例可以采集一个场景的8个视点的视频,并提供相应的深度信息、各摄像机的内部参数和外部参数,实验中可以设定其中的两个视点,例如视点a和视点b分别为主要参考视点和辅助参考视点,视点c为虚拟视点,通过基于深度图的渲染技术,根据视点a和视点b合成视点c的图像,并将合成的虚拟视点图像与真实视点图像进行PSNR和SSIM的比较。PSNR即峰值信噪比,一种评价图像的客观标准,值越大说明图像质量越好,SSIM即图像结构相似度索引,其值越接近于1,说明图像质量越好。
下面结合公式给出本发明实施例提供的技术方案的说明。
首先,关于步骤S101:
根据摄像机投影原理,将参考视点图像投影到立体空间,然后再由立体空间投影到虚拟视点图像。假设参考视点的摄像机内部矩阵和外部矩阵分别为K和R[I;-t],其中I为3*3的单位矩阵,t为摄像机位移向量,则参考视点的摄像机投影矩阵P=KR[I;-t],可得到参考视点图像上像素点坐标和立体空间中对应点的关系为:
sm=PM 公式(一)
其中,s为一标量,是根据公式(一)计算得到的,即[l,m,n]
T=PM,[l,m,n]
T=n[l/n,m/n,1]=sm,u为像素点在图像上的水平坐标,v为像素点在图像上的垂直坐标,则m=[u,v,1]
T为图像像素点在图像坐标系下的齐次坐标;设X为空间点在空间坐标系中得水平坐标,Y为空间点在空间坐标系中的纵坐标,Z为空间点在空间坐标系中的竖坐标,则M=[X,Y,Z,1]
T为相应空间点在世界坐标系下的齐次坐标;P
+=P
T(PP
T)
-1为投影矩阵P的伪逆,本发明实施例可以根据由公式(二)直接计算得到的结果
和各像素点对应的实际深度值Z,就可以计算出各个像素点对应的空间坐标M=[X,Y,Z,1]
T;然后,根据下面的公式(三)计算出该空间点在虚拟视点图像坐标系中的位置,实现参考视点图像到虚拟视点图像之间的变换,如图3所示,为主要参考视点图像变换到虚拟视点图像的彩色图像示意图,图4所示为相应的深度图像的示意图。
公式(三)
公式(三)中
为虚拟视点位置摄像机投影矩阵,
为空间点在虚拟视点图像坐标系下的对应的齐次坐标,
计算方法与s相同。
其次,关于步骤S102对虚拟视点图像进行优化处理:
由图3和图4可以看出,生成的虚拟视点图像上存在大量的裂纹和错误投影点。图像中之所以会出现裂纹,是由于在对投影后的像素计算坐标时取整,造成无参考视点图像像素点投影到虚拟视点图像中某些坐标位置。投影错误点出现在虚拟视点图像的前景物体中,也就是背景区域的一些像素点嵌在了前景图像中,影响了视觉效果。
由于虚拟视点图像中裂纹和投影错误点的宽度都是单像素宽度,因此可以根据这种特性在相应的深度图像,即图4所示的深度图像中检测裂纹和投影错误点。如果图4所示的深度图像中某一个空洞点在水平或者垂直或者两个对角方向上存在单像素宽度,就判定该像素点为裂纹;由于在深度图像中,前景像素的深度值远小于背景像素的深度值,另外这些投影错误的点的宽度为单像素宽度,所以可以利用中值滤波器进行检测。对检测出的裂纹和投影错误点,根据周围8邻域非空洞像素点对应的深度,选取深度值最小的像素点,即距离摄像机最近的像素点来填充和替代空洞点。裂纹去除后的虚拟视点彩色图像如图5所示,其深度图像如图6所示,投影错误点去除前的图像如图7所示,投影错误点去除后的图像如图8所示。
虚拟视点图像根据主要参考视点图像和辅助参考视点图像得到,但由于光照条件、摄像机参数设置和感光元件灵敏度的不同,采集过程中不能保证这两个参考视点图像亮度的统一性,所以造成合成的虚拟视点图像模糊或者出现伪影。本发明实施例中,通过下面的亮度调整方法降低两个参考视点图像的亮度不统一性:
采用主要参考视点图像和辅助参考视点图像两个参考视点图像分别得到虚拟视点图像Vmain和Vausiliary,若Vausiliary中某像素点为空洞点,其Vmain相同位置点设置为空洞点,得到图9所示的区域V′main;同理,若Vmain中某像素点为空洞点,Vausiliary中相同位置点设置为空洞点,得到图10所示的区域V′ausiliary;将Vausiliary,V′main和V′ausiliary由红绿蓝(RGB)颜色空间转换到色度饱和度亮度(HSV)颜色空间,对于V′main和V′ausiliary中的非空洞像素点,求出其亮度分量比值:
公式(四)
公式(五)
其中,Bmain(i,j)表示虚拟视点图像Vmain区域V′main中的非空洞像素点的亮度分量,Bauxiliary(i,j)表示虚拟视点图像Vausiliary区域V′ausiliary中的非空洞像素点的亮度分量;n为V′main或者V′ausiliary中非空洞像素点的个数,rmean为亮度分量平均比值。用rmean对HSV颜色空间中Vausiliary的亮度分量进行调整,即每个像素亮度分量乘以rmean;然后,再将Vausiliary由HSV颜色空间转换到RGB颜色空间,实现Vausiliary亮度的调整。
最后,关于步骤S103的非遮挡区域填充:
对Vmain中的空洞区域进行膨胀处理(图像处理中专业技术,是现有技术,对某一区域,沿其边缘,向外扩展),然后利用亮度调整后的Vausiliary对Vmain中的非遮挡区域进行初步填充,即:
公式(六)
初步填充后的Vmain中仍然存在部分空洞区域,如图11所示,这是由于这部分信息在主要参考视点图像和辅助参考视点图像都不可见或者深度图不准确造成的。本发明实施例中通过基于深度图的非对称腐蚀图像修复技术,对空洞区域进行填充,以其中一个空洞区域为例,具体过程如下:
首先检测该空洞区域的位置,提取与该空洞区域相邻的像素点P={pij}和对应深度值为D={dij},用2-means(即2聚类)对这些像素深度值D={dij}分成两类,其聚类中心分别为dmin和dmax,若(dmax-dmin)>td,(td为一固定值,设置为40),判定该空洞区域位于前景区域和背景区域交界处,这时只参考其相邻的背景区域像素点对其进行填充,且为了消除伪影,提出了一种非对称腐蚀处理方法,即向背景区域进行腐蚀;否则,该空洞区域参考其所有相邻像素点对其进行填充。设空洞区域像素点为hij,参考点为buv,则:
公式(七)
其中,E为hij与buv之间的欧氏距离。
至此,生成的虚拟视点图像如图12所示。
通过将生成的视点c的虚拟图像与在视点c拍摄到的真实图像进行比较,得到PSNR=32.7363,SSIM=0.9489。
由此可见,通过本发明实施例提出的虚拟视点图像的合成方法,可以准确、快速的生成虚拟视点图像。
参见图13,本发明实施例提供的一种虚拟视点图像合成装置,包括:
图像变换单元11,用于将主要参考视点的彩色图像和深度图像投影到虚拟视点位置,生成主要虚拟视点图像,以及将辅助参考视点的彩色图像和深度图像投影到虚拟视点位置,生成辅助虚拟视点图像;
图像优化单元12,用于利用主要虚拟视点图像上的裂纹和错误投影点的形态特征,消除主要虚拟视点图像上的裂纹和错误投影点,以及利用辅助虚拟视点图像上的裂纹和错误投影点的形态特征,消除辅助虚拟视点图像上的裂纹和错误投影点;
补洞单元13,用于利用辅助虚拟视点图像对主要虚拟视点图像的空洞区域进行填充。
较佳地,所述图像优化单元12,还用于对主要虚拟视点图像和辅助虚拟视点图像进行亮度调整。
较佳地,所述图像优化单元12,在HSV颜色空间,根据主要虚拟视点图像,调整辅助虚拟视点图像的亮度。
较佳地,所述补洞单元13,还用于利用基于深度图的非对称腐蚀图像修复技术,对主要虚拟视点图像上的剩余空洞区域进行填充。
较佳地,所述图像变换单元11,根据主要参考视点的深度图像,将主要参考视点图像中的像素点坐标投影到空间坐标中,将空间坐标中的点,投影到虚拟视点图像坐标中,生成主要虚拟视点图像;以及,根据辅助参考视点的深度图像,将辅助参考视点图像中的像素点坐标投影到空间坐标中,将空间坐标中的点,投影到虚拟视点图像坐标中,生成辅助虚拟视点图像。
较佳地,所述图像优化单元12,利用主要虚拟视点图像上的裂纹和错误投影点的形态特征,以及主要虚拟视点图像的深度图像,消除主要虚拟视点图像上的裂纹和错误投影点;利用辅助虚拟视点图像上的裂纹和错误投影点的形态特征,以及辅助虚拟视点图像的深度图像,消除辅助虚拟视点图像上的裂纹和错误投影点。
综上所述,本发明实施例提供了一种面向自由视点电视的虚拟视点合成方案。通过基于深度图的渲染技术,对主要参考视点图像和辅助参考视点图像进行图像变换,生成虚拟视点图像;对生成的虚拟视点图像进行优化处理,去除虚拟视点图像上裂纹和错误投影点,并且为了保证两幅参考视点图像的亮度统一性,对辅助参考视点图像得到的虚拟视点图像亮度进行调整;利用基于深度图的非对称腐蚀图像修复技术对非遮挡区域进行填充,提高虚拟视点图像质量。该虚拟视点合成方案具有计算量小,生成的虚拟视点图像质量高等优点。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。