一种基于深度学习的两帧不相邻图像的视频生成方法转让专利

申请号 : CN201711343243.5

文献号 : CN107968962B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 温世平刘威威

申请人 : 华中科技大学

摘要 :

本发明公开了一种基于深度学习的两帧不相邻图像的视频生成方法,属于对抗学习以及视频生成领域,包括对两帧不相邻图像进行线性插值处理得到N帧输入图像,将N帧输入图像输入第一生成器,得到两帧不相邻图像之间的N帧模糊的视频图像;将N帧视频图像输入训练好的第二生成器,得到新的N帧清晰的视频图像,并且两帧不相邻图像和新的N帧视频图像连接起来生成视频。其中,使用全卷积层构建第一深度自编码卷积网络,使用对抗训练,得到训练好的第一生成器,使用全卷积层并进行跨层连接构建第二深度自编码卷积网络,使用对抗训练,得到训练好的第二生成器。本发明生成的视频质量好,时间长。

权利要求 :

1.一种基于深度学习的两帧不相邻图像的视频生成方法,其特征在于,包括:(1)对两帧不相邻图像进行线性插值处理得到N帧输入图像,将N帧输入图像输入训练好的第一生成器,得到两帧不相邻图像之间的N帧视频图像;

(2)将N帧视频图像输入训练好的第二生成器,得到新的N帧视频图像,并且两帧不相邻图像和新的N帧视频图像连接起来生成视频;

所述第一生成器的训练包括:

(S1)使用全卷积层构建第一深度自编码卷积网络,从样本视频中获取两帧不相邻样本图像和两帧不相邻样本图像中的N帧真实图像;

(S2)对两帧不相邻样本图像进行线性插值处理得到N帧样本输入图像输入第一深度自编码卷积网络,以损失函数最小为目标对第一深度自编码卷积网络进行训练,得到N帧第一训练图像,将N帧第一训练图像和N帧真实图像输入判别器得到第一判别结果;

(S3)当第一判别结果大于阈值时,重复步骤(S2),当第一判别结果小于等于阈值时,得到训练好的第一生成器;

所述第二生成器的训练包括:

(T1)使用全卷积层并进行跨层连接构建第二深度自编码卷积网络;

(T2)将N帧第一训练图像输入第二深度自编码卷积网络,以损失函数最小为目标对第二深度自编码卷积网络进行训练,得到N帧第二训练图像,将N帧第二训练图像和N帧真实图像输入判别器得到第二判别结果;

(T3)当第二判别结果大于阈值时,重复步骤(T2),当第二判别结果小于等于阈值时,得到训练好的第二生成器;

所述跨层连接是将前几层卷积层卷积得到的特征图和后几层卷积得到的特征图并在一起共同作为下一层卷积的输入;

所述损失函数为:

Loss=λ1Ladv+λ2Lmse+λ3Lgdl+λ4Lnpcl其中,Loss为损失函数,Ladv为对抗损失函数,λ1为对抗损失函数的权重,Lmse为均方差损失函数,λ2为均方差损失函数的权重,Lgdl为梯度损失函数,λ3为梯度损失函数的权重,Lnpcl为归一化积相关损失函数,λ4为归一化积相关损失函数的权重。

2.如权利要求1所述的一种基于深度学习的两帧不相邻图像的视频生成方法,其特征在于,所述第一深度自编码卷积网络和第二深度自编码卷积网络中的每层卷积层后设置一个RELU非线性函数。

3.如权利要求1或2所述的一种基于深度学习的两帧不相邻图像的视频生成方法,其特征在于,所述判别器包括6个卷积层和一个全连接层,每层卷积层后依次设置一个归一化操作和一个RELU非线性函数。

说明书 :

一种基于深度学习的两帧不相邻图像的视频生成方法

技术领域

[0001] 本发明属于对抗学习以及视频生成领域,更具体地,涉及一种基于深度学习的两帧不相邻图像的视频生成方法。

背景技术

[0002] 视频生成的预测一直是计算机视觉领域的难题,传统的非深度学习的算法很难生成连续的高质量的视频,但是事实上视频生成和预测可以用到很多领域当中,比如行为分析,智能监控,视频预测,动画制作等等。
[0003] 上个世纪80年代,Yuan Lecun等人就已经提出了深度学习的基本理论,但是用于当时的硬件水平并不能满足其计算要求,所以人工智能发展缓慢,但是随着硬件水平的提高,深度学习的兴起,运用卷积神经网络学习的特征代替人工设计的特征的方法被广泛采用,这种方法克服了传统方法那样人为设计算法的困难,而是采用了搭建神经网络,通过梯度下降等优化算法优化网络的参数,进而使网络可以拟合一个非常好的非线性函数,代替了人为设计算法。
[0004] 以往的基于深度学习的视频生成方法主要预测视频下一帧或者多帧图像,或者动作预测。主要就是输入给网络一帧或多帧静态图像,使用接下来的帧作为预测对象,训练神经网络去完成从输入到输出,也即是从过去的帧到未来帧这样的映射,当神经网络学习到比较好的映射的函数时。输入给训练好的神经网络一些视频帧,神经网络就可以输入未来的帧的样子。但是预测的视频往往比较模糊,尤其是预测长序列的视频时,能预测的视频长度也很有限,往往只能预测几帧模糊的视频。这些困难严重的限制了视频预测和生成的应用。除此之外,给定一个目标,未知接下来目标运动结果的前提下,这个目标很多种运动可能,对应着视频生成的结果具有无限多种解。但是对于我们人类来说,当我们看到视频中人们微笑着走近时,他们接下来做拥抱动作的概率很大,但是对于一个神经网络来说,他们没有能力理解那么长的时间信息以及上下文信息。第二个困难就是很难生成质量较好的图像序列,大部分的生成结果都很模糊,很难生成较长的图像序列,只能做短时间的运动分析等等,这些生成很难应用到动画制作、短视频生成。
[0005] 由此可见,现有技术存在生成或预测视频的质量差,时间短的技术问题。

发明内容

[0006] 针对现有技术的以上缺陷或改进需求,本发明提供了一种基于深度学习的两帧不相邻图像的视频生成方法,由此解决现有技术存在生成或预测视频的质量差,时间短的技术问题。
[0007] 为实现上述目的,本发明提供了一种基于深度学习的两帧不相邻图像的视频生成方法,包括:
[0008] (1)对两帧不相邻图像进行线性插值处理得到N帧输入图像,将N帧输入图像输入训练好的第一生成器,得到两帧不相邻图像之间的N帧视频图像;
[0009] (2)将N帧视频图像输入训练好的第二生成器,得到新的N帧视频图像,并且两帧不相邻图像和新的N帧视频图像连接起来生成视频;
[0010] 所述第一生成器的训练包括:使用全卷积层构建第一深度自编码卷积网络,对第一深度自编码卷积网络使用对抗训练,得到训练好的第一生成器;所述第二生成器的训练包括:使用全卷积层并进行跨层连接构建第二深度自编码卷积网络;对第二深度自编码卷积网络使用对抗训练,得到训练好的第二生成器。
[0011] 进一步的,第一生成器的训练包括:
[0012] (S1)使用全卷积层构建第一深度自编码卷积网络,从样本视频中获取两帧不相邻样本图像和两帧不相邻样本图像中的N帧真实图像;
[0013] (S2)对两帧不相邻样本图像进行线性插值处理得到N帧样本输入图像输入第一深度自编码卷积网络,以损失函数最小为目标对第一深度自编码卷积网络进行训练,得到N帧第一训练图像,将N帧第一训练图像和N帧真实图像输入判别器得到第一判别结果;
[0014] (S3)当第一判别结果大于阈值时,重复步骤(S2),当第一判别结果小于等于阈值时,得到训练好的第一生成器。
[0015] 进一步的,第二生成器的训练包括:
[0016] (T1)使用全卷积层并进行跨层连接构建第二深度自编码卷积网络;
[0017] (T2)将N帧第一训练图像输入第二深度自编码卷积网络,以损失函数最小为目标对第二深度自编码卷积网络进行训练,得到N帧第二训练图像,将N帧第二训练图像和N帧真实图像输入判别器得到第二判别结果;
[0018] (T3)当第二判别结果大于阈值时,重复步骤(T2),当第二判别结果小于等于阈值时,得到训练好的第二生成器。
[0019] 本发明使用不相邻帧图像生成连续的视频,代替了根据先前帧预测下一帧的方法。为了提高生成质量,使用了双生成器串联的结构,双生成器具有不同的任务,也具有不同的网络结构,第一个生成器负责从插帧得到的输入帧中学习到动作特征,第二个生成器在第一个生成器的基础上提高图像的质量,两个生成器串联得到高质量的视频生成结果,并且可以实现端对端的方式训练。设计了新的损失函数:归一化积相关损失函数,用在训练过程中提高生成结果的质量。
[0020] 进一步的,第一深度自编码卷积网络和第二深度自编码卷积网络中的每层卷积层后设置一个RELU非线性函数。
[0021] 进一步的,判别器包括6个卷积层和一个全连接层,每层卷积层后依次设置一个归一化操作和一个RELU非线性函数。
[0022] 进一步的,损失函数为:
[0023] Loss=λ1Ladv+λ2Lmse+λ3Lgdl+λ4Lnpcl
[0024] 其中,Loss为损失函数,Ladv为对抗损失函数,λ1为对抗损失函数的权重,Lmse为均方差损失函数,λ2为均方差损失函数的权重,Lgdl为梯度损失函数,λ3为梯度损失函数的权重,Lnpcl为归一化积相关损失函数,λ4为归一化积相关损失函数的权重。
[0025] 总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:
[0026] (1)本发明使用了不相邻的两帧作为生成器的输入,第二帧可以作为是对视频生成的约束项,因此可以极大的减少解空间的维度,令生成变得更加容易,同时使用对抗训练更适合图像的生成。另外就是使用了两个生成器级联的生成网络去生成视频,不同的生成器负责不同的任务,并且具有不同的网络结构,两个生成器生成的结果的质量更高,生成的视频帧的数量更多。
[0027] (2)本发明采用对抗训练的方式,生成器和判别器构成对抗网络,对抗网络和对抗训练相结合更适合图像的生成,使用四个损失函数,分别是对抗损失函数,均方差损失函数,梯度损失函数和归一化积相关损失函数,对生成结果从不同方面做惩罚,使生成结果和真实结果具有很强的相似性。
[0028] (3)本发明与之前的方法相比,能够生成更长的视频序列,并且保证视频生成的质量。可以被广泛用在动作预测、视频压缩、视频生成领域。

附图说明

[0029] 图1是本发明实施例提供的一种基于深度学习的两帧不相邻图像的视频生成方法的流程图;
[0030] 图2(a)是本发明实施例提供的第一种仿真图;
[0031] 图2(b)是本发明实施例提供的第二种仿真图;
[0032] 图2(c)是本发明实施例提供的第三种仿真图;
[0033] 图2(d)是本发明实施例提供的第四种仿真图。

具体实施方式

[0034] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0035] 如图1所示,一种基于深度学习的两帧不相邻图像的视频生成方法,包括:
[0036] (1)对两帧不相邻图像进行线性插值处理得到N帧输入图像,将N帧输入图像输入训练好的第一生成器,得到两帧不相邻图像之间的N帧视频图像;
[0037] (2)将N帧视频图像输入训练好的第二生成器,得到新的N帧视频图像,并且两帧不相邻图像和新的N帧视频图像连接起来生成视频;
[0038] 第一生成器的训练包括:
[0039] (S1)使用全卷积层构建第一深度自编码卷积网络,如表1所示,不使用池化层和归一化层,全部使用卷积层构建网络,并在每一层的后面使用relu激活函数增加网络的非线性能力。为避免随机噪声的影响,我们采用一种自编码式的网络结构,一方面可以增加生成网络模型的拓扑结构的对称性,另一方面也可以提升整体网络的稳定性。
[0040] 表1
[0041]
[0042] 第一深度自编码卷积网络如下:
[0043] 第一层卷积层,卷积核大小5*5,输出特征图数量64,步长为1;
[0044] 第二层卷积层,卷积核大小3*3,输出特征图数量128,步长为2;
[0045] 第三层卷积层,卷积核大小3*3,输出特征图数量128,步长为1;
[0046] 第四层卷积层,卷积核大小3*3,输出特征图数量256,步长为2;
[0047] 第五层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0048] 第六层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0049] 第七层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0050] 第八层卷积层,卷积核大小3*3,输出特征图数量512,步长为1;
[0051] 第九层卷积层,卷积核大小3*3,输出特征图数量512,步长为1;
[0052] 第十层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0053] 第十一层转置卷积层,卷积核大小3*3,输出特征图数量256,步长为2;
[0054] 第十二层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0055] 第十三层转置卷积层,卷积核大小4*4,输出特征图数量64,步长为2;
[0056] 第十四层卷积层,卷积核大小3*3,输出特征图数量3,步长为1;
[0057] 在第一深度自编码卷积网络中,使用多层卷积层,主要为了让生成器更准确的学习视频中目标的运动信息,为接下来的生成做准备。
[0058] 其次,由于采用对抗训练的方法需要一个生成器和判别器,我们搭建了一个判别器网络对生成器的输出做判别,判别器中,每一层卷积的后面有一个归一化(Batch Normalization)操作,然后是一个RELU非线性函数,增强网络的非线性能力,因为判别器输出的是对真图像和假图像的判别,所以在网络的最后一层,我们使用全连接层,其网络结构如下:
[0059] 第一层卷积层,卷积核大小3*3,输出特征图数量128,步长为2;
[0060] 第二层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0061] 第三层卷积层,卷积核大小3*3,输出特征图数量256,步长为2;
[0062] 第四层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0063] 第五层卷积层,卷积核大小3*3,输出特征图数量128,步长为2;
[0064] 第六层卷积层,卷积核大小3*3,输出特征图数量128,步长为1;
[0065] 第七层全连接层,输出神经元1个。
[0066] 从样本视频中获取两帧不相邻样本图像和两帧不相邻样本图像中的N帧真实图像;
[0067] (S2)对两帧不相邻样本图像进行线性插值处理得到N帧样本输入图像输入第一深度自编码卷积网络,以损失函数最小为目标对第一深度自编码卷积网络进行训练,得到N帧第一训练图像,将N帧第一训练图像和N帧真实图像输入判别器得到第一判别结果;
[0068] (S3)当第一判别结果大于阈值时,重复步骤(S2),当第一判别结果小于等于阈值时,得到训练好的第一生成器。
[0069] 第二生成器的训练包括:
[0070] (T1)使用全卷积层并进行跨层连接构建第二深度自编码卷积网络;如表2所示,[0071] 表2
[0072]
[0073] 不同于第一生成器,使用了跨层连接,即将前几层卷积层卷积得到的特征图和后几层卷积得到的特征图并在一起共同作为下一层卷积的输入,这样做的优势在于网络更容易综合图像的特征,加上对抗训练,输出的图像和真实的图像具有更相似的结构信息。
[0074] 第二深度自编码卷积网络结构如下所示:
[0075] 第一层卷积层,卷积核大小3*3,输出特征图数量128,步长为1;
[0076] 第二层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0077] 第三层卷积层,卷积核大小3*3,输出特征图数量256,步长为2;
[0078] 第四层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0079] 第五层卷积层,卷积核大小3*3,输出特征图数量256,步长为2;
[0080] 第六层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0081] 第七层转置卷积层,卷积核大小3*3,输出特征图数量256,步长为2;
[0082] 将第四层得到的256个特征图与第七层得到的卷积层级联到一起得到512个特征图,作为第八层卷积的输入。
[0083] 第八层卷积层,卷积核大小3*3,输出特征图数量512,步长为1;
[0084] 第九层卷积层,卷积核大小3*3,输出特征图数量512,步长为2;
[0085] 将第二层得到的256个特征图与第九层得到的卷积层级联到一起得到768个特征图,作为第十层卷积的输入。
[0086] 第十层卷积层,卷积核大小3*3,输出特征图数量256,步长为1;
[0087] 第十一层卷积层,卷积核大小3*3,输出特征图数量3,步长为1;
[0088] (T2)将N帧第一训练图像输入第二深度自编码卷积网络,以损失函数最小为目标对第二深度自编码卷积网络进行训练,得到N帧第二训练图像,将N帧第二训练图像和N帧真实图像输入判别器得到第二判别结果;
[0089] (T3)当第二判别结果大于阈值时,重复步骤(T2),当第二判别结果小于等于阈值时,得到训练好的第二生成器。
[0090] 对抗损失函数的形式如下:
[0091]
[0092] 其中,L代表损失函数(loss function),adv是下标,表示对抗(adversarial),由于对抗损失函数是采用交叉熵的形式进行,所以等式右端是交叉熵公式的形式,其中E表示取期望,D表示我们方法中的判别器,G是生成器,GD合起来构成生成对抗网络。另外,我们的目的是生成视频,为了满足训练要求,我们需要输入真实的视频帧作为基准数据,X就是表示真实的视频帧图像(数量大于2),根据两帧视频帧生成中间缺失的部分,所以,为了保证输入输出一致,根据两帧视频帧按照加权的方式得到了和X一样数量的视频帧 目的就是让生成器G根据 去生成和X类似的帧,即完成生成过程。由于采用的是深度学习的方法的神经网络,GD都是神经网络,因此都可以用一个非线性函数来表示,所以公式中的D,G都可看作是函数,括号里面表示的是输入数据,分别是X和
[0093] 仅仅采用对抗损失得到的结果只是和真实的图像在像素分布上有一定的相似性,但是在图像的结构上不一定相似,为了保证在后者上具有相似性,我们使用了均方差损失和梯度损失增强输出结果和真实图像的相似性。其中这两个损失函数的形式如下:
[0094] 均方差损失函数为输入的两个数据Y、X之差的二范数:
[0095]
[0096] 梯度损失函数为:
[0097]
[0098] 本发明中设置p和α均为2,Xi,j和 表示的都是函数输入的图像,因为图像由像素点组成,因此数学上可以视为是矩阵,i,j分别是矩阵的下标,此函数主要是对图像相邻像素点做差,求范数,然后对差的范数在做差。直观上理解,当Y和X一样的时候,上述式子为0,当不一样时,上述式子不为0。 是我们生成的图像,也就是 所以我们希望尽量希望 接近与X。
[0099] 双生成器网络配合以上三个损失函数我们可以得到非常清晰的结果,但是在图像的对比度上仍然存在一些差异,因此,我们使用了另一个归一化积相关损失函数惩罚输出结果的图像对比度等。其形式如下:
[0100]
[0101] 其中, X表示输入的图像,矩阵形式。M,N表示矩阵的行数和列数。归一化积相关损失函数的范围是位于0-1之间的,越接近1代表图像越相似,为了使其变为损失函数的形式,我们对其做了一个取对数操作,并加了一个负号,这样输出结果越接近0,代表图像相关性越大,这种形式更切合损失函数的形式。搭建好神经网络和选择好损失函数之后,接下来就是训练神经网络。在训练神经网络50个epoch后,网络已经具有了根据两帧图像生成中间缺失的多帧图像的能力,而且生成的结果具有较高的质量。联合损失函数形式如下:
[0102] Loss=λ1Ladv+λ2Lmse+λ3Lgdl+λ4Lnpcl
[0103] 给定两帧视频图像,作为本方法深度卷积生成网络的输入,在输入之前会对这两张图像做线性插值处理(sampling)得到十张图像,按照下列公式:
[0104] (1-r)*X0+r*Xn+1
[0105] 其中r是0-1之间的10个均匀的小数,这样就得到了十张输入图像。这十张图像作为第一个生成器的输入,按照卷积层做卷积计算,并输出网络计算得到的新的十张图像Y’,Y’和真实的图像X一同作为判别器D1的输入,并输出判别结果y1∈(0,1),y1代表判别器对第一个生成器生成结果的评价,越大代表生成结果越差,生成器会根据y1不断调整自己以生成更好的结果。另外就是第一个生成器的结果作为第二个生成器的输入,并通过卷积层做卷积计算,得到新的生成结果Y,然后Y同真实图像X一起作为判别器D2的输入,并输出判别结果y2∈(0,1),y2代表判别器对第二个生成器生成结果的评价,越大代表生成结果越差,生成器会根据y2不断调整自己以生成更好的结果。然后更换输入X,不断重复这样的过程做训练,直到网络具备根据两张图像生成多张真实图像的能力。这时候不在需要判别器的参与,只需要两个生成器网络就可以完成生成任务。即按照图二所演示的步骤,输入给网络两帧图像,经过两个生成器的计算之后,网络就可以生成出10张新的视频帧,并且将这12帧图像连接起来形成一个视频。本方法得到的生成结果在图2(a)、图2(b)、图2(c)和图2(d)中做了部分展示。并且可以控制需要生成的帧的数量。我们选择生成十张图像,结合结果来看,本发明所研究的算法不仅能够生成逼真、清晰、连贯的视频帧,而且能够生成或预测更多的帧,可以广泛的用于动画制作,视频生成,视频插帧,视频压缩解压等领域,具有广泛的应用价值。
[0106] 事实上视频生成具有很大的解空间,这就意味着神经网络在极大的解空间中很难去找到合适的解,如果没有合适的缺乏约束信息的情况下,很难去生成符合逻辑的视频序列,另外生成的质量也很差。本发明提出使用具有时间差的两帧(X1,Xk)生成中间的运动过程图像(X2,…,Xk-1),我们使用图像Xk作为输入的一部分约束视频生成的解,Xk中描述了X1中目标将来的运动状态,因此对于生成任务来说,Xk是对于动作生成的约束项,网络的输出会尽可能的接近Xk。另一方面我们采用对抗网络作为训练模型同时也作为是一种对抗约束,利用对抗网络生成的样本尽可能与输入图像相似。另外为了解决第二个问题,我们采用对抗训练的方式并采取了多种不同损失函数的联合损失保证较好的生成质量,并使用了灰度互相关作为一种新的损失函数增强生成结果的清晰度。并且替代了以往生成式网络只有一个生成器的方法,我们使用两个生成器的串联作为级联生成器,第一个生成器主要用来通过对抗训练的方式学习视频中目标的动作信息,并不期待生成质量有多好;第二个生成器可以在第一个生成器的基础上提高生成视频的质量。该方法与其他方法相比,生成的视频非常接近真实的视频,并且生成的视频的长度远超过以往的方法。
[0107] 本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。