张政 何山 贺靖淇
摘 要:视频可以看作是连续的视频帧图像组成的序列,视频彩色化的实质是对图像进行彩色化处理,但由于视频的长期序列性,若直接将现有的图像着色方法应用到视频彩色化上极易产生抖动或闪烁现象。针对这个问题,提出一种结合长短时记忆(LSTM)和卷积神经网络(CNN)的混合神经网络模型用于视频的着色。该方法用CNN提取视频帧的语义特征,同时使用LSTM单元学习灰度视频的时序信息,保证视频的时空一致性,然后融合局部语义特征和时序特征,生成最终的彩色视频帧序列。通过对实验结果的定量分析和用户研究表明,该方法在视频彩色化上实现了较好的效果。
关键词:视频彩色化;长短时记忆;卷积神经网络;时空一致性
中图分类号:TP391.4
文献标志码:A
Video colorization method based on hybrid neural network model of long short term memory and convolutional neural network
ZHANG Zheng*, HE Shan, HE Jingqi
School of Computer Science, Southwest Petroleum University, Chengdu Sichuan 610500, China
Abstract:
A video can be seen as a sequence formed by continuous video frames of images, and the colorization process of video actually is the colorization of images. If the existing image colorization method is directly applied to video colorization, it tends to cause flutter or twinkle because of long-term sequentiality of videos. For this problem, a method based on Long Short Term Memory (LSTM) cells and Convolutional Neural Network (CNN) was proposed to colorize the grayscale video. In the method, the semantic features of video frames were extracted with CNN and the time sequence information of video was learned by LSTM cells to keep the time-space consistency of video, then local semantic features and time sequence features were fused to generate the final colorized video frames. The quantitative assessment and user study of the experimental results show that this method achieves good performance in video colorization.
Key words:
video colorization; Long Short Term Memory (LSTM); Convolutional Neural Network (CNN); time-space consistency
0 引言
图像的彩色化是根据灰度图像将矢量RGB(Red Green Blue)分配给图像的每个像素,该技术在历史相片处理、视频处理、艺术品修复等方面有着广泛的应用前景。目前,着色算法主要分为三种类型:基于用户涂鸦的方法、基于参考图的方法和基于深度学习的方法。
由于传统方法需要用户的干预,增加了实现的复杂度。随着卷积神经网络(Convolutional Neural Network, CNN)在物体识别和检测任务上取得的巨大成功,它对图像深层语义特征的表达能力引起了研究人员的广泛关注,为彩色化提供了巨大的帮助。因为图像的语义特征可以提供与颜色相关的附加信息,所以近几年提出的着色算法[1]都使用卷积神经网络来提取灰色图像的语义特征,并参考图像的语义特征进行着色。如Despande等[2]提出一种针对大规模图像的自动着色算法;Iizuka等[3]提出利用卷积神经网络获取图像的全局特征和局部特征,对于户外景观照片取得了许多令人满意的结果;Cheng等[4]提出一种通过卷积神经网络提取图像深层特征进行自动着色的算法,并结合双边滤波来改善着色结果;Larsson等[5]提出利用深度网络提取图像的底层细节特征和高层语义特征,实现图像自动着色,生成的彩色图像能够让大多数人感到真实;Zhang等[6]利用VGG(Visual Geometry Group)卷积神经网络模型,对灰度图像提取特征,并通過预测每个像素的颜色分布直方图来为灰度图像着色。
然而,在Iizuka等[3]的着色算法中,该方法采用两路神经网络模型来得到图片的颜色信息和对象类别,并结合两个损失函数来进行训练。由于网络模型中包含大量训练参数,所以训练时间相当长;另外尽管作者已经使用了共享权值的技巧来降低复杂度,双路卷积网络仍然面临权值平衡问题;并且目标函数只是简单的线性结合,如果将该方法直接扩展到视频的着色,容易产生抖动和闪烁现象。本文针对这些问题,提出了结合长短时记忆(Long Short Term Memory, LSTM)单元[7]和卷积神经网络(Convolutional Neural Network, CNN)的混合神经网络模型用于视频的彩色化,并结合视频的时序信息来指导着色,使得模型的训练时间减少并且模型准确度相对提高。
1 网络模型
本文方法采用的视频着色网络模型如图1所示。首先,使用经典卷积神经网络模型VGG-19[8]作为编码器来提取视频帧的局部语义特征和全局特征。然后,将在编码器中提取到的特征图进行规模调整,再输入循环神经网络中。本文采用LSTM结构作为循环神经网络的记忆单元来学习视频序列的时序信息,同时进一步细化提取到的特征。最后,将LSTM的结果输入到视频的着色网络中进行基于反卷积的解码过程[9],通过解码操作合成为所需要的彩色视频序列{Ct|t=1,2,…,n}。整个网络的训练过程将VGG-19网络提取特征图的过程看作一个黑箱操作,学习时序特征的LSTM结构的输入数据是VGG-19输出的高维抽象特征数据。通过训练这些特征数据,就能得到本文的着色模型。
1.1 基于卷积的视频帧语义特征编码器
基于卷积神经网络实现对视频帧语义特征的提取,也叫作编码操作,本文采用的是基于预训练的VGG-19模型来实现对视频序列的编码。
在本文中的视频着色模型中,首先通过VGG-19对输入的视频序列进行编码,提取视频帧图像的局部语义特征。该模型将灰度视频序列作为输入,由一系列卷积操作对灰度视频帧进行编码,并输出对应的特征表示f=(f1, f2,…, ft),对灰度视频帧的操作可以抽象为如下的编码过程:
fi=encoder([xi,Ci]); i∈{1,2,…,t}(1)
然后将经过编码操作得到的特征表示f=(f1, f2,…, ft)送入LSTM结构中,用于学习视频序列的时序特征。
1.2 基于LSTM的时序特征融合器
本文方法采用将LSTM结构作为记忆单元的双向循环神经网络来提取视频的时序特征,学习时序特征的主要目的是提取连续视频帧之间的时序信息,并且保证特征表示的时序一致性。同时将时序特征和由基于VGG-19的编码器得到的局部语义特征进行融合[10],进一步细化时序特征。
图2展示了本文基于VGG-19预训练模型的语义特征提取过程,VGG-19使用了级联结构,网络模型的卷积层之间将多个3×3的卷积核和1×1的卷积核相结合,网络级联使得上层提取的所有彩色图像特征融合在一起,传递到下一层进一步提取高维特征。VGG-19对本文使用的数据集具有很好的泛化能力,能够提取到视频帧图像的深度特征。这里灰度视频的第一帧是作为单独的图像进行着色的,其后的视频帧则需要共享前面视频帧着色过程中的时序信息和着色网络中的参数,来实现保持视频的时空一致性。
LSTM是门限循环神经网络(Recurrent Neural Network, RNN)中最著名的一种[11],门限RNN允许在不同时刻改变连接间的权重系数,且允许网络忘记当前已经累积的信息。LSTM结构的关键在于引入了一个判断信息是否有用的处理单元,这个处理单元称为“cell”,单个cell的结构如图3所示。
LSTM实现添加或者删除信息是通过一种叫作门的结构来实现的,通过增加门限使得自循环的权重是变化的,这样一来在模型参数固定的情况下,不同时刻的积分尺度可以动态改变,从而避免了梯度消失或者梯度膨胀的问题。本文采用的视频着色模型的工作原理可以简化为如图4所示,使用双向循环神经网络学习视频的时序信息,其中的记忆单元采用了LSTM神经单元,其结构在图3中进行了详细的描述,采用LSTM结构的原因是LSTM神经元中的门限结构可以更好地学习连续视频的长期一致性。
LSTM的遗忘门决定了上一时刻的“cell”单元状态Pt-1有多少保留到当前时刻Pt。本文方法中,遗忘门会读取上一视频帧的隐含层特征ht-1和xt,然后由Sigmoid层处理输出一个在0到1之间的数,其中0表示全部舍弃,1表示全部保留。在视频着色过程中,对于从VGG-19中获取的视频帧局部特征和语义特征,如果相邻视频帧中出现了相同的特征,那么这个特征将被保留,并且在着色后该特征在相邻视频帧中会得到相同的色度值;否则该特征将在遗忘门被舍弃。遗忘门的表达式如下:
ft=Sigmoid(Wf·[ht-1,xt]+bf)(2)
其中:ht-1是上一视频帧cell的输出,xt是当前cell的输入,Wf和bf是网络训练得到的遗忘门的权重和偏置。
LSTM的输入门决定让多少新的信息加入到cell状态中来。实现这个操作需要两个步骤:首先,Sigmoid层决定哪些信息需要更新,也就是需要提取的新的特征;其次,tanh层生成一个向量,也就是备选的用来更新的内容。然后通过结合这两部分信息,更新cell的状态。本文视频着色方法过程中,相邻视频帧之间新的特征便是通过输入门输入,并在cell状态中被记录更新。输入门的操作如下:
it=Sigmoid(Wi·[ht-1,xt]+bi)(3)
t=tanh(WC·[ht-1,xt]+bC)(4)
其中:it表示输入的需要更新的信息,t是用来更新的备选内容,Ct是更新之后的cell状态,Wi,WC,bi,bC分別是输入门中的权重和偏置。当前状态Ct是由上一次单元状态Ct-1与ft相乘,舍弃需要舍弃的特征信息,再加上新的候选值itt,如下式:
Ct=ftCt-1+itt(5)
这样就把LSTM关于当前的记忆t和长期的记忆Ct-1组合到了一起,形成了新的cell状态。由于遗忘门的控制,它可以保存很久之前的信息,同时由于输入门的控制,它又可以避免当前无关紧要的内容进入记忆。
最后,LSTM的输出门确定要输出哪些信息。首先运行一个Sigmoid层来确定细胞状态的哪个部分将输出;其次,把细胞状态通过tanh进行处理,得到一个在-1~1之间的值,并将它和输入门的输出相乘。最终仅会输出LSTM在输出门中确定输出的那部分特征信息,输出门的过程如下:
ot=Sigmoid(Wo·[ht-1,xt]+bo)(6)
ht=ottanh(Ct)(7)
特征提取时,在前向传播阶段,网络对于输入的视频帧序列从时间节点1到时间节点t,正向计算一遍,并保存每个时间节点向前隐藏层的输出。正向计算完成后,再由时间节点t到时间节点1反向计算一遍,同时保存每个时间节点的向后隐藏层的输出。当正向传播阶段和反向传播阶段都完成计算之后,融合各时间节点向前和向后隐藏层的输出作为最后的输出。反向传播过程中,模型通过基于时间的反向传播(Back Propagation Through Time, BPTT)算法更新所有输出层的信息。另外,所有传播过程中隐藏层参数的更新都是通过LSTM门限结构进行控制,用hLi和hRi分别表示前向传播阶段向前和向后的隐藏层,基于LSTM的特征融合过程如下:
hLi=hLi+1+g(WLf·fi+WLh·hLi+1+bL)(8)
hRi=hRi-1+g(WRf·fi+WRh·hRi-1+bR)(9)
式中:hLi和hRi分别是前向和后向的隐藏层状态,g(·)是用于跟记忆单元传输信息的函数,这里指LSTM(),h(·)表示激活函数,本文使用的是tanh()。为了提取视频的时序特征并保持时空一致性,采用了结合LSTM结构的双向循环神经网络,用e=(e1,e2,…,et)来表示融合之后的特征,并作为融合后的结果输出。
ei=h(W[hLi;hRi]+b),i∈{1,2,…,t}(10)
通过将融合之后的视频帧序列e=(e1,e2,…,et)输入基于反卷积的解码器中进行着色操作,得到最后的彩色视频帧序列。
1.3 基于反卷积的视频着色解码器
在视频时序特征融合阶段,已经得到了融合之后的优化特征序列e=(e1,e2,…,et),而我们的最终目标是要通过基于反卷积的解码器[12]来生成彩色视频序列C=(C1,C2,…,Ct)。前面已经提到,视频的处理需要考虑保持连续视频序列之间的时空一致性以及连续性,在解码器阶段,其输入是优化之后的融合特征表示e=(e1,e2,…,et),这便很好地保证了视频的时空一致性,将该特征序列送入解码器中基于下式进行解码即可得到彩色化的视频帧序列。
Ci=decoder(ei); i∈{1,2,…,t}(11)
本文参考Shelhamer等[12]的思想,采用的方法是将反卷积层作为解码器,反卷积和卷积互为逆过程,也叫卷积转置,利用反卷积可以实现特征序列的可视化。本文选用反卷积操作是因为反卷积跟卷积操作类似,反卷积常被用于对CNN的输出进行上采样回到原始图像分辨率,这样能够更好地保留图像的原始结构,另外反卷积操作在图像分类、图像分割、图像生成、边缘检测等领域有广泛应用。
在解码器过程中,通过一系列反卷积操作来实现将融合的后时序特征e=(e1,e2,…,et)进行解码。在基于反卷积的解码器中,本文使用6个反卷积层作为解码器,设置卷积核大小为3×3,并在第4个池化层后插入了一个1×1的卷积层以获得额外的输出,这将被添加到第二个反卷积层的输出。最终视频帧序列经过解码后转换成彩色的视频帧序列输出。
本文方法选择交叉熵损失函数作为网络的训练目标函数,采用交叉熵的原因是交叉熵作为损失函数时在使用Sigmoid函数在梯度下降时其学习速率可以被输出的误差所控制,而且收敛速度更快,能够有效地避免均方误差损失函数学习速率降低的问题,也更不容易陷入局部最优解。
Lt=-lg p(∑Ni=0exp(C))(12)
其中:C表示的是网络模型数据的实际输出值;p表示概率,它与训练集上的负对数相同。
本文采用的是基于预训练的VGG-19模型用于提取局部语义特征,训练数据采用的是DAVIS数据集[13]中的视频序列作为训练集,数据集中包含50段10s左右的视频序列,色彩丰富,类别多样,常用于视频的处理;训练过程中设置学习速率为0.0001,批处理数据量大小设置为10,同样本文选取ReLU作为激活函数,优化方法采用随机梯度下降法,目标函数采用交叉熵损失函数,LSTM节点设置为64个。
2 实验结果与对比分析
2.1 视频帧图像着色结果
实验表明,用本文模型对单帧图像的着色时间达到了秒级,对验证集里的单帧视频帧图像的着色时间约为3s,而Iizuka等[3]以及Raj等[8]的方法,单帧图像的处理时间均在5s以上,说明本文方法在效率上已经有较大提升。图5展示了从数据集中随机选取的3段视频的第5、15、25、35、45帧视频图像及其彩色化过后的视频图像,图中第1、3、5行是灰度视频帧,第2、4、6行是彩色化后的视频帧。
关于视频帧的对比度保留,从图5可以看到,奶牛和草原的背景色彩存在明显的对比度,着色后的视频帧也能够很好地区分;同样,灰熊和石头的颜色对比度也被很好地保持;第6行行人和背景以及长椅的色彩对比度也被较好地保持。可以看出,本文方法得到的视频图像很好地保持了视频序列的对比度。所以本文基于VGG-19的编码器能夠很好地提取图片帧的深层特征,并用于指导视频帧着色。综上,本文结合LSTM和CNN的混合神经网络模型能够很好地实现对视频序列的彩色化,验证了方法的有效性。
2.2 视频帧图像着色对比
除了展示本文方法对视频帧的彩色化效果,还跟Iizuka等[3]、Cheng等[4]以及Larsson等[5]的经典着色算法对视频帧图像进行着色的结果进行对比。选取了5段视频中的第20帧图像进行着色,对比实验结果如图6所示,图中从左至右依次为灰度视频帧、Iizuka等[3]、Cheng等[4]、Larsson等[5]、本文结果以及原始彩色视频帧图像。可以看到本文方法得到的单帧视频帧图像的彩色化结果对包含不同场景的多个实体都有很好的图像着色效果,生成的彩色视频帧看起来更真实、更自然。
2.3 视频序列时空一致性保持
除了对单独的视频帧进行着色展示以外,还对彩色化后的视频序列的视频时空一致性进行了评估。视频的时空一致性含义主要考虑视频序列在相邻视频帧的相同局部特征在彩色化后的色度值是否相同。如果在整个视频序列中,相同局部特征的色度值越相似,表明时空一致性保持越好,保持时空一致性能有效避免视频出现闪烁或卡顿等现象。
追踪了一段视频的4幅视频帧图像,同Gupta等[14]的方法进行对比,并将着色图像的局部放大以观察其效果,图7展示了本文方法和Gupta等[14]的方法对视频图像的着色效果,图中第1行为灰度视频帧,第2、4行分别为本文方法和Gupta等[14]方法的结果,第3、5行分别是放大后结果。矩形方框内是放大的局部,可以更好地看到本文方法得到的汽车颜色更准确,并且颜色饱和度优于Gupta等[14]的结果。
使用归一化色差(Normalized Color Difference, NCD)[15]来评估视频序列的连续性和时空一致性, NCD的值越小,说明连续视频帧之间的归一化色差越小,即彩色视频序列的颜色值越平滑,从而更好地保持视频序列的连续性和时空一致性。NCD的定义如下:
NCD=∑Hh=1∑Ww=1∑Qq=1[Zq(h,w)-Z′q(h,w)]2∑Hh=1∑Ww=1∑Qq=1[Zq(h,w)]2(13)
其中:Q代表顏色通道,H和W代表图像大小,Z和Z′分别代表相邻的视频帧图像,q1、q2、q3分别代表L、a、b三个颜色通道。
选取了两段视频中的连续五帧图像并分别计算它们之间的NCD值然后求出其平均值,将本文方法的结果和Iizuka等[3]、Zhang 等[6]以及Gupta等[14]的方法得到的结果进行对比,结果记录于表1中。
从实验结果可以看到,相对于Iizuka等[3] 和Zhang等[6]以及Gupta等[14]的结果,本文方法得到的NCD值较小,表明连续视频帧图像之间的归一化色差越小,也说明了本文方法较好地保持了视频的连续性和时空一致性。
2.4 实验结果评估
为了验证本文方法的有效性,本文选取了定量评估指标峰值信噪比PSNR、均方根误差RMSE以及结构相似性SSIM对视频帧图像的彩色化效果进行评估,定量评估的目标主要是对本文方法得到的彩色视频序列和原始彩色视频序列进行比较,主要考虑本文方法是否引入更多噪声以及两幅图像的误差大小。随机选取了一段视频中的第10、20、30、40帧图像进行评估,表2是评估结果。
从表2中可以看出,本文方法对视频帧的着色后定量评价指标PSNR和RMSE以及SSIM在一定程度上都优于现有方法,验证了本文方法的可行性。
2.5 用户研究
为更进一步测试本文方法的结果,本文进行了一组用户研究来评估视频彩色化效果,这里用户研究主要是视频的彩色化质量测试。邀请了50名年龄在20~30岁的用户参与用户研究,主要考虑视频帧图像的颜色饱和度、自然度,以及视频序列的时空一致性和人眼视觉感官的效果。用户研究评分指标如表3所示。
让用户观看5组视频序列的彩色化效果然后统计出结果如表4所示,结果表明本文方法得到的彩色视频序列无论是在颜色自然度还是饱和度上都优于Gupta等[14]提出的方法。
从用户研究结果可以看出,本文方法得到的彩色视频帧和视频序列的效果优于现有方法,在色彩自然度和饱和度方面都展现了更好的效果,充分验证了本文方法的有效性。
3 方法推广—动画片段彩色化
为了对比实验效果,将本文方法应用到动画类片段的彩色化上,并取得了较好的效果。图8是对动画题材片段《熊出没》(版权归属:华强方特(深圳)动漫有限公司)的彩色化效果,截取了某一段视频的8幅视频帧,并用本文方法对其进行彩色化,可以看到整体彩色化效果较好地保留了颜色信息,并且实体和背景之间的区分度被很好地展现出来。
4 结语
本文将图像着色方法扩展到视频的彩色化上来,并针对现有方法存在的问题,提出了一种结合CNN和LSTM混合神经网络模型的方法对视频序列进行彩色化处理,在保持视频序列帧着色饱和度和着色自然度的前提下,同时采用LSTM结构用作双向循环神经网络的记忆单元,以保证视频序列的长期一致性。实验结果表明,本文方法无论是在单帧视频帧着色还是在视频序列的着色上都优于现有方法,达到了先进的性能。
参考文献
[1]CHENG Z, YANG Q, SHENG B . Colorization using neural network ensemble [J]. IEEE Transactions on Image Processing, 2017, 26(11): 5491-5505.
[2]DESHPANDE A, ROCK J, FORSYTH D. Learning large-scale automatic image colorization [C]// Proceedings of the 2015 IEEE International Conference on Computer Vision. Washington, DC: IEEE Computer Society, 2015: 567-575.
[3]IIZUKA S, SIMO-SERRA E, ISHIKAWA H. Let there be color!: joint end-to-end learning of global and local image priors for automatic image colorization with simultaneous classification [J]. ACM Transactions on Graphics, 2016, 35(4): Article No. 110.
[4]CHENG Z, YANG Q, SHENG B. Deep colorization [C]// Proceedings of the 2015 IEEE International Conference on Computer Vision. Washington, DC: IEEE Computer Society, 2015: 415-423.
[5]LARSSON G, MAIRE M, SHAKHNAROVICH G. Learning representations for automatic colorization [C]// Proceedings of the 2016 European Conference on Computer Vision, LNCS 9908. Berlin: Springer, 2016: 577-593.
[6]ZHANG R, ISOLA P, EFROS A A. Colorful image colorization [C]// Proceedings of the 2016 European Conference on Computer Vision, LNCS 9907. Berlin: Springer, 2016: 649-666.
[7]HOCHREITER S, SCHMIDHUBER J. LSTM can solve hard long time lag problems [C]// Proceedings of the 9th International Conference on Neural Information Processing Systems. Cambridge, MA: MIT Press, 1996: 473-479.
[8]SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [C]// Proceedings of the 2014 International Conference of Learning Representation. Las Vegas, 2014: 1–14.
SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition [EB/OL]. [2019-01-03]. https://arxiv.org/pdf/1409.1556.pdf.
[9]KARPATHY A, TODERICI G, SHETTY S, et al. Large-scale video classification with convolutional neural networks [C]// Proceedings of the 2014 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2014: 1725-1732.
[10]ULLAH A, AHMAD J, MUHAMMAD K, et al. Action recognition in video sequences using deep bi-directional LSTM with CNN features [J]. IEEE Access, 2018, 6: 1155-1166.
[11]SUTSKEVER I, VINYALS O, LE Q V. Sequence to sequence learning with neural networks [EB/OL]. [2019-01-20]. https://arxiv.org/pdf/1409.3215.pdf.
HOCHREITER S, SCHMIDHUBER J. LSTM can solve hard long time lag problems [C]// Proceedings of the 9th International Conference on Neural Information Processing Systems. Cambridge, MA: MIT Press, 1996: 473-479.
[12]SHELHAMER E, LONG J, DARRELL T. Fully convolutional networks for semantic segmentation [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2017, 39(4): 640-651.
[13]PERAZZI F, PONT-TUSET J, McWILLIAMS B, et al. A benchmark dataset and evaluation methodology for video object segmentation [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016: 724-732.
[14]GUPTA R K, CHIA Y S, RAJAN D, et al. A learning-based approach for automatic image and video colorization [J]. Computer Graphics International, 2017, 23(3): 369-378.
GUPTA R K, CHIA A Y-S, RAJAN D, et al. A learning-based approach for automatic image and video colorization [EB/OL]. [2019-01-20]. https://arxiv.org/pdf/1704.04610.pdf.
[15]RUSSO F. Performance evaluation of noise reduction filters for color images through Normalized Color Difference (NCD) decomposition [J]. ISRN Machine Vision, 2014, 2014: Article No. 579658.
ZHANG Zheng, born in 1994, M. S. candidate. His research interests include deep learning, image processing.
HE Shan, born in 1972, M. S., associate professor. His research interests include data mining, machine learning.
HE Jingqi, born in 1993, M. S. candidate. His research interests include embedded system.