安利智,何 平,张 薇,石钰阳,田 宇
1(河北工业大学 人工智能与数据科学学院,天津 300400) 2(河北工业大学 电子信息工程学院,天津 300400)
视频帧预测是利用给定的连续帧来预测未来视频帧的一种技术.随着深度学习的快速发展和广泛应用,视频帧预测已经成为当前的研究热点,在异常事件检测和视频填充等领域拥有广泛的应用前景.例如,在异常事件检测方面,2018年Liu Wen等人[1]提出一种基于视频帧预测的人群异常检测算法,证明了视频帧预测在人群异常检测方面具有重要意义,2020年Nguyen等人[2]提出一种基于生成对抗网络的视频帧预测模型来检测交通事故;在视频填充方面,研究人员可以利用视频帧预测模型进行视频帧的填充,从而增加视频的流畅度.
视频帧预测本质上是一个序列预测问题,对具有较强时空一致性的数据进行建模是一个重要的研究方向.传统的视频帧预测方法均通过直接生成的方法来预测帧图像,例如,张德正等人[3]提出一种深度长短时神经网络的视频帧预测,该网络利用两个不同通道的长短时记忆网(Long Short-term Memory Network,LSTM)[4]构成的编解码网络来预测视频帧.Bhattacharjee等人[5]通过将2维卷积核组合成一个由两级构成的生成器来生成视频帧图像,该模型还融入了生成对抗网络模型的框架.Zhang等人[6]提出一种使用光流金字塔进行动作预测的模型,结合图像修复网络对由运动引起的像素遮挡进行修复.Oliu等人[7]提出一种双映射门控循环单元(dGRU),通过增加一组额外的逻辑门来更新输入,相较于传统方法取得了较好的效果.此外,在多网络联合预测方面也进行了相关探索.Liang等人[8]通过构造一对对偶的生成对抗网络来预测生成帧图像和光流信息,提高了预测帧的准确度.Kwon等人[9]通过单独的生成器预测未来和过去帧,使用双判别器分别识别假视频帧序列和包含假视频帧的真视频序列,该模型可以预测更长时间的未来帧.吴哲夫等人[10]通过将卷积长短时记忆网络(Convolutional Long Short-term Memory Network,ConvLSTM)[11]和空间变换网络相结合来预测视频帧图像.Yang等人[12]提出一种以姿态序列生成对抗网络为基础改进的视频帧预测方法,通过对视频中人体姿态的预测来预测视频.Zhao等人[13]提出一种时空生成对抗网络,从结构中生成图像框架,然后通过次级网络对时空数据进行细化来预测视频帧.Tuly-akov等人[14]提出的MoCoGAN模型,通过将视频预测分解为细节信号和动作信号,结合两种信号来预测视频帧.
以上两类视频帧预测方法都能较好对短期视频进行建模,并生成较为清晰的短期视频帧.但是这两类方法具有两个不足:1) 多帧后的物体位置预测准确度较差;2) 不能很好地保留多帧后的物体结构信息.本文提出一种动态卷积生成对抗网络(Dynamic Convolutional Generative Adversarial Network,DC-GAN)的视频预测模型,该模型采用卷积动态神经平流单元(Convolutional Dynamic Neural Advection,CDNA)[15]对输入帧中物体运动进行显式地建模,结合变分生成对抗网络(VAE-GAN)[16]和卷积长短时记忆网络进行视频帧预测.实验结果表明,在多帧后的物体位置预测准确性和物体结构信息保留两方面相较于以上两类方法得到了显著的提升.
生成对抗网络(Generative adversarial network,GAN)[17]由生成网络和判别网络两部分构成,通过生成网络学习真实数据的分布,判别网络用来判断输入图像是真实图像还是生成图像.生成对抗网络的优化函数如公式(1)所示:
(1)
其中x为真实图像,符合Pdata分布,z为隐空间变量,符合Pz(z)分布,通常取正态分布或者高斯分布,G和D分别表示生成网络和判别网络.
为了解决该网络生成图像不可控、网络训练困难等问题,研究人员提出了一系列生成对抗网络的变体[18].例如,Cong等人[19]将U-Net[20]融合到生成对抗网络中,利用背景和谐化技术解决了不同条件下拍摄图像的合成问题;Arjovsky Martin等人[21]提出Wasserstein GAN使用Wasserstein距离替换了原有的KL散度,从根本上解决了生成对抗网络训练不稳定的问题.这些改进解决了网络训练不可控的问题,卷积网络的引入大幅度提高了生成图像的质量.
生成对抗网络在训练中经常出现模型坍缩问题,在生成对抗网络训练结束之后,隐空间不同采样点得到的随机编码输入到生成网络,输出图像较为相似,此网络不具有应用价值.模型坍缩产生的主要原因是生成对抗网络模型采用随机数据进行训练,生成网络不能很好将输入图像拟合到隐空间.
变分自动编码器(Variational Autocoder,VAE)[22]由Diederik P.King-ma和Max Welling在2013年提出,是经典的生成模型之一.该网络由编码网络(Encoder)和解码网络(Decoder)组成,其中编码网络是将输入数据映射到隐空间,而解码网络是将隐空间的表达再转换到输入数据所在空间.但是VAE网络生成图像时过度依赖从隐空间采样的潜在编码(即真实图像的编码),从不对随机采样的过程进行训练,导致存在训练与测试的不匹配.而GAN网络采用随机数据进行训练,因此跟VAE网络具有天然的互补性.
2015年A.B.Larsen和S.Sønderby等人提出了变分生成对抗网络模型,通过对生成对抗网络和变分自动编码网络进行组合很好地解决了上述问题.该模型通过重构损失函数约束生成图像和输入图像一致,强迫变分自编码网络的隐空间去拟合真实图像空间,而判别网络使得网络生成清晰度更高的图像.
变分生成对抗网络增强了对隐空间的拟合能力,但是该网络对视频帧这种序列图像数据的支持并不好.本文在VAE-GAN模型基础上,一方面将VAE网络和卷积动态神经平流单元进行结合,另一方面将判别网络替换为3D卷积网络.该网络一次可以接收一整段视频帧图像,可以对图像序列的连续性和图像的质量进行综合判断.
(2)
其中(-k,k)表示像素位移的范围,x和y表示像素坐标,k和l分别表示像素横纵坐标的位移距离.
图1 卷积动态神经平流单元结构Fig.1 Convolutional dynamic neural advection structure
本文提出一种动态卷积生成对抗网络(DC-GAN)视频帧预测模型.该模型将ConvLSTM、VAE-GAN网络和CDNA进行融合,并使用谱归一化(Spectral Normalization,SN)的3D卷积网络代替原有判别网络.不仅提高了多帧后物体位置预测的准确度,还解决了多帧预测中物体的结构信息保留问题,进而提高了生成图像的质量.本文的DC-GAN模型如图2所示.
图2 动态卷积生成对抗网络结构Fig.2 Convolutional dynamic neural advection generative adversarial network structure
生成模块由编码网络和生成网络两部分组成,其中编码网络负责捕捉序列样本中的特征,并将采样得到的随机编码和视频前一帧一起经过一个卷积层输入生成模块.视频帧预测是一个序列预测问题,因此本模型生成网络主体是由多层ConvLSTM构成的.如图2所示,该模块分为前后两部分,前半部分是由多层ConvLSTM层构成的,负责对输入图像的信息进行提取;在后半部分,将提取到的信息分别输入CDNA和上采样模块.如图3所示,生成网络仿照U-Net网络设计,前5层为下采样层,后5层为上采样层.为了充分保留图像的高维信息,引入跳转连接结构.为了保留物体结构信息,将编码网络输出的一组随机编码经过空间层次的复制沿着通道维度输入到主网络所有ConvLSTM层的输入中,上采样层输出一组跟输入图像同等大小的中间帧作为转换帧的合成掩膜.将下采样模块的输出作为CDNA模块的输入,该模块是一个全连接网络,输出一组卷积核,将其作用在前一帧图像输出一组转换帧.最后将合成掩膜、转换帧和视频前一帧一起输入到融合网络层,训练融合网络结合掩膜来对三者进行融合,从而得到一帧生成图像.针对VAE模型训练与测试的不匹配和像素协方差建模的问题,本文利用生成对抗网络,通过匹配预测视频和真实视频之间的分布来保持预测视频的流形结构.本模型使用3D卷积神经网络作为的判别网络,可以一次性接收一段视频中的全部帧图像.该网络由谱归一化生成对抗网络(Spectral Normalization for Generative Adversarial Networks,SNGAN)[23]中的判别网络结构改进而来,通过将其中的2D卷积网络扩充为3D卷积网络,从而实现对一整组视频帧的分类.
图3 生成网络结构Fig.3 Generator network structure
(3)
其中,zt为随机编码,x0:T表示输入视频序列,DKL表示kl损失函数.
(4)
由公式(3)和公式(4)组合得到VAE网络的目标函数,如公式(5)所示:
(5)
由于变分自编码器需要采样两次,本模型采用两个相同架构的判别网络来分别接受从编码网络E(xt:t+1)和先验分布p(zt)采样的随机编码所生成的视频帧,这两个判别网络分别用D和DVAE表示,其中DVAE负责接收从编码网络采样的随机编码,使用二元交叉熵损失来训练生成网,对抗损失如公式(6)和公式(7)所示:
(6)
(7)
本文模型将生成对抗网络、变分自动编码器和卷积动态神经平流单元的损失函数加权后进行线性组合,构成动态卷积生成对抗网络的损失函数,通过损失函数控制动态卷积生成对抗网络梯度下降的过程.损失函数如公式(8)所示:
(8)
本文基于Tensorflow1.15平台,使用英伟达P100显卡进行试验.为了验证模型的物体结构信息保留和运动预测的性能,本文使用KTH和BAIR Robot Pushing数据集进行训练.KTH数据集中包含4个场景下25个人完成的6种常见行为动作包含2391个视频片段.BAIR数据集包含44000个机器人推动动作视频片段.本实验使用了KTH数据集的挥手、奔跑和行走3个动作集合和BAIR数据集进行实验,用来检验模型对于视频帧的预测能力.
本文使用峰值信噪比(Peak signal-to-noise ratio,PSNR)、结构相似性度量(Structural SIMilarity,SSIM)和学习感知图像块相似性(Learned Perceptual Image Patch Similarity,LPIPS)[24]作为评价指标.
峰值信噪比通常用来衡量两张图像间的相似度,基于对应像素点之间的差值进行计算,如公式(9)所示:
(9)
其中,R表示预测图像所对应的真实图像中真值的均方误差,本文R取值为255.0,W为图像中颜色的最大值点.
结构相似性分别从亮度、对比度和结构3个方面来衡量两张图片的相似度,这里给出结构相似性的计算方法.如公式(10)所示:
(10)
其中,μA、μB分别为图像A、B像素值的均值,σA、σB分别是图像A、B像素值的标准差,C1和C2为超参数,通常取C1=(k1×L)2、C2=(k2×L)2,其中k1=0.01,k2=0.03,L=255.0.
学习感知图像块相似性旨在模仿人类的视觉感知来衡量两个图像的相似性,具体方法是计算两个图像的高纬特征的距离来计算量图像的相似度,计算过程如公式(11)所示:
(11)
本实验模型KTH数据集输入为10帧64×64的单通道灰度图,BAIR数据集输入为3帧64×64的RGB图像.编码网络是由3个卷积层组成,卷积步幅为2,最后的卷积层接一个平均池化层,使用实例规范化(Instance Normalization,IN)来进行标准化,采用Leaky ReLU作为激活函数,输出为一组8×8的矩阵.生成网络前半部分使用1个普通卷积层结合4个ConvLSTM层组成5层下采样模块,其中第1层、第2层和第4层卷积步幅为2,其余2层步幅为1,每层网络后面均使用ReLU作为激活函数.后半部分由5个反卷积层和CDNA模块共同组成上采样模块,其中反卷积第1层、第3层和第5层卷积步幅为2,其余2层步幅为1.使用双线性插值反卷积避免生成图像出现棋盘伪影现象,前4层采用ReLU激活函数,第5层采用Sigmoid激活函数,前5层均采用5×5大小的卷积核.上采样模块的最后接一个普通卷积层,采用通道维度的Softmax激活函数,卷积步幅为1,采用1×1的卷积核,输出11个64×64像素的合成掩膜.CDNA模块由3层全连接网络构成的,输入128通道×8×8像素的特征图,输出10个长度为25的一维向量,并整形为5×5的卷积核,作为生成转换帧所使用的卷积核.该模块前2层采用ReLU激活函数,第3层采用Sigmoid激活函数,将卷积核作用在前一帧图像来生成10个64×64像素单通道的转换帧.最终使用1个全连接层作为融合网络,将合成掩膜、转换帧和视频前一帧进行融合得到一帧输入图像.生成网络通道具体变化如图3所示.
本文所提出的动态卷积生成对抗网络使用两个判别网络,两个网络分别接受从编码网络和先验分布采样的随机编码所生成的视频帧和输入帧组成的视频序列,网络结构完全相同.判别网络由7层3D卷积网络和一个全连接层构成,卷积网络均使用Leaky-ReLU作为激活函数且α参数均设为0.1,全连接层权重使用谱归一化用来保证网络的利普希茨连续性.其中第1层、第3层、第5层和第7层使用3×3大小的卷积核,卷积步幅为1,第2层、第4层和第6层使用4×4大小的卷积核,第2层、第4层卷积步幅在3个维度分别设置为(1、2、2),第6层卷积步幅在3个维度均设置为2.卷积层生成的特征图的通道数分别为64、128、128、256、256、512、512、1,并且每层输入均使用常量0进行填充1圈.
在本实验中,生成网络和判别网络交替进行训练.使用Adam作为网络的优化器对模型进行1万轮训练,初始学习率设置为0.001,在前6000轮训练中保持不变,接下来的4000次中学习率线性衰减,逐渐趋于0.优化器的另外两个参数设置为β1=0.9,β2=0.999,.损失函数中的权值分别为λ1=1,λKL=0.01.
图4展示了不同模型在KTH和BAIR两个数据集下的测试结果,通过循环输入的方式预测未来的30帧图像,并从其中分别取第1、10和30帧作为对比图像.为了验证DC-GAN在多帧预测方面的性能,本文同TCDM-GAN和DM-GAN和未加入CDAN模块的VAE-GAN网络进行了对比实验,部分结果如图4所示.
图4 视频帧预测模型结果对比Fig.4 Comparison of video frame prediction model results
从图4中可以看出TCDM-GAN和DM-GAN模型在KTH和BAIR两个数据集下均出现了较大的缺陷.在挥手场景下,TCDM-GAN和DM-GAN模型出现了背景和人物主体模糊及人物身体残缺的问题,VAE-GAN网络也出现了手部残缺的问题,本文模型生成图像虽然也出现了手部模糊的问题,但是在人体形状上最为完整.在奔跑场景下,TCDM-GAN和DM-GAN模型都难以生成完整的人体形状,VAE-GAN网络则出现了人物比例失调并且运动趋势预测不够精准的问题,而本文所提出模型所产生的图像,虽然也出现了人物变形的问题,但是运动趋势预测最为准确.在行走场景下,TCDM-GAN和DM-GAN模型出现了背景和人物主体模糊及人物比例失调的问题,VAE-GAN网络也出现了腿部比例失调的问题,本文模型在前10帧表现较好,在第30帧也出现了预测不准确的问题.在BAIR数据集下,TCDM-GAN和DM-GAN模型都出现了机械臂模糊的问题,VAE-GAN由于没有使用运动预测模块也出现了预测不精准机械臂扭曲的问题.原因分析如下:
1)由于TCDM-GAN和DM-GAN模型主体采用的均为普通卷积网络,对于序列数据会存在严重的细节丢失问题,因此容易出现图像细节模糊的问题.本文所采用的模型由于生成网络使用U-Net架构并引入ConvLSTM作为网络主体,对于序列数据细节和结构信息的保留较好,因此生成的图像更加清晰.
2)由于TCDM-GAN、DM-GAN和VAE-GAN模型都隐式地对视频帧图像中物体的运动状态进行预测,因此会出现定位不准、比例失调的问题.本文所提出的DC-GAN模型使用卷积动态神经平流单元进行动作捕捉,结合合成掩膜进行动作预测,因此在定位方面更加精准.
本文提出的DC-GAN模型在第1帧和第10帧生成帧的锐度、多样性和准确性上相较于三者都更好.
通过大量的实验,取多组测试数据的平均结果得出评估结果如表1所示.从表1可以明显看出本文所提出的DC-GAN模型虽然在PSNR指标上准确率低于其他模型,但是如图4所示生成图像的锐度上明显优于其他方法,在SSIM指标下均取得了较趋近于1的分数.
表1 KTH和BAIR数据集实验预测帧的各项指标对比Table 1 Comparison of various indexes in the experimental prediction frame of KTH and BAIR dataset
PSNR指标是一种基于两幅图像像素数值绝对平均距离的度量指标,本质上是两幅图像的整体像素值上尽可能的接近,而不关心每个像素的对应关系.TCDM-GAN和DM-GAN模型虽然生成了相对模糊的图像,但是仍能取得相对较高的分数.在SSIM指标下,DC-GAN取得了最高的评分,而TCDM-GAN和DM-GAN模型由于在3个场景下均出现了背景和人物主体模糊及人物比例失调、不完整的问题,因此评分较低.在不依赖均值、标准差等反应平均特性的LPIPS指标下,本文模型在两个数据集下均取得了最高的分数0.965和0.955.
图5 KTH数据集LPIPS指标得分Fig.5 Score of LPIPS index in KTH data set
图6 BAIR数据集LPIPS指标得分Fig.6 Score of LPIPS index in BAIR data set
图5和图6描述了各模型循环预测视频帧基于LPIPS指标的得分情况,其中横轴表示预测视频帧的时间步长,纵轴表示模型评分结果.由图5和图6可以看出,由于没有运动预测模块,TCDM-GAN、DM-GAN模型和VAE-GAN网络尝试让模型隐式地对视频帧图像中物体的运动状态进行预测,从第5帧以后评分出现大幅度下降且波动较大.本文模型DC-GAN在长时间视频帧预测中,使用卷积动态神经平流单元作为运动预测模块,相较于其他模型得分波动较小,预测视频帧更加稳定和准确.
本文提出的动态卷积生成对抗网络,可以预测一段视频在未来时序上的多帧图像,提高对动态图时空序列问题建模的准确性,解决了多帧预测中的物体结构信息丢失问题.在图像细节的表征上明显优于变分生成对抗网络;在物体运动预测上相较于隐式预测模型更加精准;并且进一步验证了结合动作预测来进行视频帧预测的可行性和有效性.在LPIPS评价指标下,本文模型取得了0.965的评分,高于对比方法,在SSIM评价指标下,相较于对比模型平均提升了14.5%最高提升达到20%,输出的视频帧图像具有很好的时空一致性,更加符合人眼主观感受.本文的研究成果,在异常事件检测和视频填充等领域拥有更好的应用前景.