首页> 中国专利> 基于生成对抗网络的DIBR系统空洞填充方法

基于生成对抗网络的DIBR系统空洞填充方法

摘要

本发明公开了一种基于生成对抗网络的DIBR系统空洞填充方法,首先收集一批参考图像样本和对应的深度图像,生成训练样本,采用此训练样本对生成对抗网络进行训练,得到用于DIBR系统空洞填充的生成模型,然后采用与训练样本相同的方法生成待填充目标图像对应的张量,并生成前景抑制蒙版,处理得到输入张量,将其输入至生成模型,最后对输出结果进行进一步处理得到空洞填充后的目标图像。本发明采用生成对抗网络提取低级特征和高级语义特征,提高填充的空洞区域和剩余部分像素的一致性。

著录项

  • 公开/公告号CN109462747A

    专利类型发明专利

  • 公开/公告日2019-03-12

    原文格式PDF

  • 申请/专利权人 成都美律科技有限公司;重庆大学;

    申请/专利号CN201811512179.3

  • 申请日2018-12-11

  • 分类号H04N13/106(20180101);

  • 代理机构51220 成都行之专利代理事务所(普通合伙);

  • 代理人温利平;陈靓靓

  • 地址 610041 四川省成都市高新区肖家河街111号附14号1层

  • 入库时间 2024-02-19 06:55:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-06-26

    授权

    授权

  • 2019-04-05

    实质审查的生效 IPC(主分类):H04N13/106 申请日:20181211

    实质审查的生效

  • 2019-03-12

    公开

    公开

说明书

技术领域

本发明属于三维图像变换技术领域,更为具体地讲,涉及一种基于生成对抗网络的DIBR系统空洞填充方法。

背景技术

视图合成引擎(view synthesis engine)是3D显示技术的重要组成部分,视图合成引擎中主要有两类视图合成方法:基于三维模型的立体内容生成方法和基于图像绘制生成立体图像的方法,目前普遍采用的是基于深度图像绘制(depth-image-basedrendering,DIBR)算法。

传统的3D立体显示技术需要传递两路或多路视图,产生连续环视(continuouslook-around),使人感受到立体效果。然而,DIBR技术可以只通过一路视频及其对应的深度图生成立体图像(stereoscopic image)。采用DIBR技术合成的视图往往存在空洞(holes),产生空洞的主要原因是视图中物体的可见性随着视点的改变发生了变化,例如参考图像中被前景遮挡的背景物体,在目标图像中变得可见,故生成的虚拟视点图像(目标图像)存在部分信息内容缺失,从而产生空洞。如何合理且有效地填充这些空洞是DIBR技术中待解决的关键问题。近年来,研究人员提出了许多空洞填充的方法,这些方法大致可分为以下4类:

(1)深度图预处理

深度图预处理的基本思想是减少甚至避免视图合成后出现空洞。在深度图中深度不连续的地方往往会产生空洞。如果参考图像中的两个相邻像素点的深度值存在一定差异,则它们在三维图像变换中相应的位移是不同的,即这两个像素在目标图像中不再相邻。参考图像中两个像素之间的深度越大,空洞的宽度也越大。深度图像预处理通过减小相邻像素之间的深度差来减少空洞,即在三维图像变换之前先对深度图进行平滑处理。平滑后的深度图的深度连续性较平缓,因此产生的空洞较小。

由于深度图描述了场景的几何形状,深度图的每次改变,都会导致变换后的目标图像中场景几何形状的改变,这就意味着合成的视图中会产生几何失真。由于人眼对垂直失真更敏感,因此Zhang等人采用非对称高斯滤波器对深度图像进行滤波,以减弱背景中垂直纹理信息的几何失真现象。Daribo等人仅在深度图的边缘附近应用平滑,这样,只有空洞附近的区域才能被平滑,而其他区域保持不变。Hong提出方向高斯滤波(DGF,directionalgaussian filter),在预处理深度图时,先膨胀深度图,然后采用非对称高斯滤波器对出现空洞的地方进行滤波。然而,这类方法存在的普遍问题是它们会引入几何失真,使得目标图像的质量降低。

(2)插值方法(Interpolation)

基于插值的空洞填充方法思想比较简单,这种方法将空洞附近的纹理直接通过插值的方法传播到空洞区域。基于插值的方法主要包括水平内插(horizontalinterpolation)和背景外插(background extrapolation)。水平内插方法对空洞区域逐行处理,通过该行中左右非空洞像素之间的线性内插来填充该行中的空洞像素。背景外推方法也逐行处理填充空洞,它首先识别该行左右非空洞像素,然后将更远处像素的像素值传播到空洞区域中。由于这些插值方法对视图中的每一行独立处理,因此,这类方法会导致行上的视觉伪像。

(3)图像修复(Image inpainting)

基于图像修复的空洞填充方法依赖于更大的参考区域。目前图像修复方法主要分为两类:一种是基于补丁(patch)的传统方法,另一种是基于卷积神经网络的深度生成模型。由于空洞填充与图像修复问题的相似性,许多基于图像修复的空洞填充算法是由经典的图像修复算法改进得到的,但目前尚未见基于卷积神经网络的深度生成模型应用到DIBR系统空洞填充上。传统的基于补丁的修复算法可以有效地填充静态纹理,但在物体非静态情况下填充效果将会大幅降低。

(4)基于时空域信息的空洞填充

上述的空洞填充方法仅利用了某一时刻图像的空间信息,而基于时空域(spatio-temporal domain)的方法利用时域(temporal domain)上不同时刻的图像信息来进行空洞填充。Hua等人提出一种基于深度视频的绘制(Depth-Video-Based Rendering,DVBR)方法,该方法具有内容自适应特性,对于由遮挡的原因引起的大空洞利用场景的时域相关性来解决,但对于由量化误差引起的小空洞仍采用图像修复技术。Lin等人则提出一种采用子图像生成(sprite generation)算法的空洞填充方法,子图像生成算法可对一系列连续帧之中的背景信息(包括彩色与深度图)进行融合,建立子图像模型,用于DIBR合成视图中空洞的填充。然而,基于时空域的方法不能完全填充空洞,其不能填充的空洞仍然需要其它的空洞填充方法来填充。

然而,上述研究中仅使用了低级特征(low-level features),而无法捕获到更高级的语义,导致复杂场景下的空洞填充效果不理想。

发明内容

本发明的目的在于克服现有技术的不足,提供一种基于生成对抗网络的DIBR系统空洞填充方法,采用生成对抗网络提取低级特征和高级语义特征,提高填充的空洞区域和剩余部分像素的一致性。

为实现上述发明目的,本发明基于生成对抗网络的DIBR系统空洞填充方法包括以下步骤:

S1:采用以下方法生成训练样本:

S1.1:收集一批参考图像及对应的深度图像Dt,t=1,2,…,K,K表示参考图像数量;

S1.2:将每幅参考图像和深度图像Dt进行三维图像变换,得到对应的目标图像并生成与目标图像相同尺寸的蒙版maskt,蒙版maskt用于标记空洞像素点,如果目标图像中的像素点是空洞像素点,则在蒙版maskt中对应的像素值为1,如果是非空洞像素点,则在蒙版maskt中对应的像素值为0;

S1.3:将每幅参考图像的各个通道矩阵和对应的蒙版maskt分别转化为batch_size×Mt×Nt×1的张量,然后依次拼接得到batch_size×Mt×Nt×(L+1)的张量作为对应的训练样本,其中batch_size表示批尺寸,Mt×Nt表示参考图像的尺寸,L表示参考图像的通道数;

S2:采用步骤S1生成的训练样本对生成对抗网络进行训练,得到用于DIBR系统空洞填充的生成模型;

S3:对于经参考图像I′R进行图像三维变换得到的待空洞填充的目标图像I′S,生成与目标图像I′S相同尺寸的非空洞矩阵M′S和蒙版mask′,其中非空洞矩阵M′S用于区分目标图像I′S中的非空像素点和空洞像素点,对于目标图像I′S中的像素点是空洞像素点,则在非空洞矩阵M′S中将对应的元素值置为-1,反之,如果是非空洞像素点,则在非空洞矩阵M′S中将对应的元素值置为该像素点的深度值;蒙版mask′用于标记空洞像素点,如果目标图像I′S中的像素点是空洞像素点,则在蒙版mask′中将对应的元素值为1,如果是非空洞像素点,则在蒙版mask′将中对应的元素值置为0;

S4:根据非空洞矩阵M′S进行空洞检测并对检测到的空洞进行膨胀,将得到的矩阵作为前景抑制蒙版mask′FR

S5:采用步骤S1.3中同样方法将目标图像I′S的各个通道矩阵和蒙版mask′分别转化为batch_size×M′×N′×1的张量,其中M′×N′表示目标图像I′S的尺寸,然后依次拼接得到batch_size×M′×N′×(L+1)的张量R,然后根据以下公式计算得到输入张量input:

input=R⊙(1-mask′)

其中,⊙表示对应元素相乘;

经前景抑制蒙版mask′FR处理后得到输入张量input′:

input′=input⊙(1-mask′FR);

S6:将输入张量input′输入至步骤S2得到的生成模型中,得到输出的图像output,然后采用以下公式处理得到空洞填充后的目标图像I″S

I″S=output⊙mask′+I′S⊙(1-mask′)。

本发明基于生成对抗网络的DIBR系统空洞填充方法,首先收集一批参考图像样本和对应的深度图像,生成训练样本,采用此训练样本对生成对抗网络进行训练,得到用于DIBR系统空洞填充的生成模型,然后采用与训练样本相同的方法生成待填充目标图像对应的张量,并生成前景抑制蒙版,处理得到输入张量,将其输入至生成模型,最后对输出结果进行进一步处理得到空洞填充后的目标图像。本发明采用生成对抗网络提取低级特征和高级语义特征,提高填充的空洞区域和剩余部分像素的一致性。

附图说明

图1是本发明基于生成对抗网络的DIBR系统空洞填充方法的具体实施方式流程图;

图2是本发明中获取训练样本的流程图;

图3是训练样本生成阶段三维图像变换示例图;

图4是本实施例中生成对抗网络结构的示例图;

图5是生成待填充目标图像示例图;

图6是前景填充空洞的示例图;

图7是本实施例中生成前景抑制蒙版的流程图;

图8是本实施例中采用生成模型进行空洞填充的示例图;

图9是以“Ballet”序列中“003”帧作为参考图像生成的目标图像空洞填充示例图;

图10是以“Ballet”序列中“096”帧作为参考图像生成的目标图像空洞填充示例图;

图11是本实施例中有无前景抑制机制的目标图像空洞填充对比图。

具体实施方式

下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。

实施例

图1是本发明基于生成对抗网络的DIBR系统空洞填充方法的具体实施方式流程图。如图1所示,本发明基于生成对抗网络的DIBR系统空洞填充方法包括以下步骤:

S101:获取训练样本:

本发明中首先需要获取训练样本。图2是本发明中获取训练样本的流程图。如图2所示,本发明中获取训练样本的具体步骤包括:

S201:收集参考图像:

收集一批参考图像及对应的深度图像Dt,t=1,2,…,K,K表示参考图像数量。

S202:三维图像变换:

将每幅参考图像和深度图像Dt进行三维图像变换,得到对应的目标图像并生成与目标图像相同尺寸的蒙版maskt,蒙版maskt用于标记空洞像素点,如果目标图像中的像素点是空洞像素点,则在蒙版maskt中对应的像素值为1,如果是非空洞像素点,则在蒙版maskt中对应的像素值为0。由于目标图像的尺寸与参考图像相同,因此蒙版maskt的尺寸也与参考图像相同。

图3是训练样本生成阶段三维图像变换示例图。如图3所示,目标图像的空洞区域被标记为白色,蒙版中黑色区域表示非空洞区域。三维图像变换是一种常用的技术手段,其具体过程在此不再赘述。

S203:生成训练样本:

将每幅参考图像的各个通道矩阵和对应的蒙版maskt分别转化为batch_size×Mt×Nt×1的张量,然后依次拼接得到batch_size×Mt×Nt×(L+1)的张量作为对应的训练样本,其中batch_size表示批尺寸,Mt×Nt表示参考图像的尺寸,L表示参考图像的通道数,一般来说参考图像包括RGB三通道,因此L=3,而蒙版maskt在本发明中为一通道。

批尺寸batch_size是生成对抗网络训练时计算梯度所需的样本数量,太小会导致效率低下,无法收敛,而太大会导致内存无法支撑,batch_size增大到一定程度后,其下降方向变化很小,所以batch_size是一个很重要的参数,本实施例中batch_size设置为16。

对于图像尺寸Mt×Nt而言,如果太大会增加训练的复杂度,使内存消耗过大,因此在实际应用中可以根据内存资源的大小来设置生成训练样本时的图像尺寸,本实施例中每幅参考图像的大小为256×256。那么本实施例中每个训练样本的尺寸为16×256×256×4。

S102:训练得到生成模型:

采用步骤S101生成的训练样本对生成对抗网络进行训练,得到用于DIBR系统空洞填充的生成模型。

生成对抗网络的具体结构可以根据需要进行设置。本实施例中参考文献“Yu,J.,et al.,Free-Form Image Inpainting with Gated Convolution.2018.”设计了一种生成对抗网络结构。图4是本实施例中生成对抗网络结构的示例图。如图4所示,本实施例中生成对抗网络包括生成模型和判别模型两部分,生成模型又包括两个阶段,第一阶段由15个卷积核构成,并使用了重建损失(reconstruction loss)进行训练,得到较模糊的填充结果;第二阶段同样由15个卷积核构成,使用重建损失、全局和局部的WGAN-GP(Wasserstein GANwith gradient penalty)对抗性损失进行训练,得到最终结果。判别模型由六个卷积核构成,经过第六个卷积核后,特征图的大小变为其中H表示生成训练样本的图像的高,W表示生成训练样本的图像的宽,此时对特征图中每个元素都应用SN-GAN(Spectral Normalization GAN)损失来训练判别网络。注意,该网络架构中的所有卷积核均采用文献“Yu,J.,et al.,Free-Form Image Inpainting with GatedConvolution.2018.”中的门控卷积(gated convolution)。采用该网络架构能够相对更快、更稳定地训练出填充质量好的生成模型。

S103:生成待填充目标图像:

对于经参考图像I′R进行图像三维变换得到的待空洞填充的目标图像I′S,生成与目标图像I′S相同尺寸的非空洞矩阵M′S和蒙版mask′,其中非空洞矩阵M′S用于区分目标图像I′S中的非空像素点和空洞像素点,对于目标图像I′S中的像素点是空洞像素点,则在非空洞矩阵M′S中将对应的像素值置为-1,反之,如果是非空洞像素点,则在非空洞矩阵M′S中将对应的像素值置为该像素点的深度值;蒙版Mask′用于标记空洞像素点,如果目标图像I′S中的像素点是空洞像素点,则在蒙版Mask′中将对应的像素值为1,如果是非空洞像素点,则在蒙版Mask′将中对应的像素值置为0。显然,由于非空洞矩阵M′S和蒙版mask′的尺寸与参考图像I′R相同。图5是生成待填充目标图像示例图。如图5所示,待填充目标图像的空洞区域被标记为白色,非空洞矩阵的灰色区域表示非空洞区域,蒙版中黑色区域表示非空洞区域。

S104:生成前景抑制蒙版:

在三维图像变换中,目标图像中空洞的产生主要因为参考图像中被前景遮挡的背景物体在目标图像中变得可见。这种情况下,空洞应该由背景信息填充,而不能使用前景信息填充。然而经研究发现,上述训练得到的生成模型,由于其语境关注机制,在填充空洞的时候会关注空洞周围所有前景和背景信息,导致部分被填充的空洞区域中出现前景信息,产生语义失真。图6是前景填充空洞的示例图。如图6所示,女舞者右边的部分空洞被填充为类似皮肤的纹理。为了解决此问题,本发明提出了一种前景抑制机制,抑制使用前景信息填充空洞区域,需要生成前景抑制蒙版,生成方法如下:

根据非空洞矩阵M′S进行空洞检测并对检测到的空洞进行膨胀,将得到的矩阵作为前景抑制蒙版mask′FR

图7是本实施例中生成前景抑制蒙版的流程示意图。如图7所示,本实施例中生成前景抑制蒙版的具体过程详述如下:

(1)检测空洞边缘

对非空洞矩阵M′S从左到右、从上到下逐行扫描,记录空洞边缘的位置信息。对非空洞矩阵M′S中的一个点(x,y),若对应像素值m(x,y)=-1(空洞点),且m(x-1,y)≠-1,m(x+1,y)=1,则标记点(x-1,y)为空洞左边缘的第一个非空洞点mL;若m(x,y)=-1(空洞点),且m(x-1,y)=-1,m(x+1,y)≠1,则标记点(x+1,y)为空洞右边缘的第一个非空洞点mR。从空洞左边缘到右边缘之间连续的空洞点个数记为num_holes。

(2)检测跃变

在非空洞矩阵M′S中,前景点的视差值大于背景点的视差值。因此,若mL-mR≥sharp_th,sharp_th为跃变值,则认为该空洞左边缘区域为前景,右边缘区域为背景;若mR-mL≥sharp_th,则认为该空洞右边缘区域为前景,左边缘区域为背景;若|mL-mR|≥sharp_th且mL≥bf_th,mR≥bf_th,bf_th为区分前景和背景的阈值,则认为该空洞左右边缘区域均为前景;若|mL-mR|<sharp_th且mL<bf_th,mR<bf_th则认为该空洞左右边缘区域均为背景。

(3)膨胀空洞

经过空洞边缘检测和跃变检测后,只有当连续空洞点个数num_holes大于设定的阈值len_hole时,才进行膨胀空洞的操作。若空洞左边缘为前景,空洞右边缘为背景,则只膨胀左边缘空洞,膨胀的像素点个数为预设的参数P;若空洞右边缘为前景,空洞左边缘为背景,则只膨胀右边缘空洞;若空洞左右两边均为前景,则两边分别膨胀P个点;若空洞左右两边均为背景,则不进行膨胀操作。

在本实施例中,上述参数sharp_th,bf_th,len_hole,P的取值分别为4,110,35,3。

S105:获取生成模型输入:

采用步骤S203中同样方法将目标图像I′S的各个通道矩阵和蒙版mask′分别转化为batch_size×M′×N′×1的张量,其中M′×N′表示目标图像I′S的尺寸,然后依次拼接得到batch_size×M′×N′×(L+1)的张量R,然后根据以下公式计算得到输入张量input:

input=R⊙(1-mask′)

其中,⊙表示对应元素相乘,即图像中对应像素值相乘。1表示与mask′相同维度的全1张量。由于R是batch_size×M′×N′×(L+1)的张量,mask′为batch_size×M′×N′×1的张量,因此以上公式相当于令R中第四维中的每个分量分别与1-mask′进行对应元素相乘的操作,得到batch_size×M′×N′×(L+1)的输入张量input。

经前景抑制蒙版mask′FR处理后得到输入张量input′:

input′=input⊙(1-mask′FR)

类似地,以上公式相当于中input中第四维中的每个分量分别与1-mask′FR进行对应元素相乘的操作,得到batch_size×M′×N′×(L+1)的输入张量input′。

S106:空洞填充:

将输入张量input′输入至步骤S102得到的生成模型中,得到输出的图像output,然后采用以下公式处理得到空洞填充后的目标图像I″S

I″S=output⊙mask′+I′S⊙(1-mask′)

图8是本实施例中采用生成模型进行空洞填充的示例图。如图8所示,经生成模型编码-解码后的输出output比较模糊。因此本发明仅取output中对应mask′白色区域的部分(即空洞)与目标图像I′S的非空洞区域部分相加得到最终的输出结果I″S,以保障目标图像的清晰度。

根据以上描述可知,本发明中在训练生成对抗网络时采用的是参考图像和蒙版,进行空洞填充时输入生成模型的是根据目标图像、蒙版以及前景抑制蒙版生成的输入张量。因此在实际应用中,如果是在需要对一个视频图像序列经图像三维变换后的目标图像序列进行空洞填充时,采用原视频图像序列中的图像生成训练样本,对生成对抗网络进行训练得到用于DIBR系统空洞填充的生成模型后,再采用该生成模型对目标图像序列进行空洞填充。这种方式下由原视频图像序列生成的训练样本和待填充的目标图像序列的相关参数存在一致性,相对比采用其他参考图像生成训练样本训练得到的生成模型,其空洞填充的技术效果会更好。

为了更好地说明本发明的技术效果,采用“Ballet”序列图像进行实验验证。图9是以“Ballet”序列中“003”帧作为参考图像生成的目标图像空洞填充示例图。图10是以“Ballet”序列中“096”帧作为参考图像生成的目标图像空洞填充示例图。如图9和图10所示,此处采用cam5视图生成cam4视图,分别列出了整体图像和4个局部填充前后的对比图,其中白色区域即为空洞区域。可以看到,本发明从整体和局部来看对空洞区域部分均有很好的填充效果。

为了展示本发明中前景抑制机制的技术效果,同样采用“Ballet”序列图像进行有无前景抑制机制的实验验证。图11是本实施例中有无前景抑制机制的目标图像空洞填充对比图。在图11中采用椭圆标出前景抑制效果明显的部分。如图11所示,本发明能够很好地抑制生成模型使用前景信息来填充空洞,从而得到更具真实性的目标视图。

尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号