一种利用卷积神经网络提高视频分辨率的方法与流程

文档序号:15935678发布日期:2018-11-14 02:21阅读:526来源:国知局

本发明涉及视频处理方法,具体涉及一种利用卷积神经网络提高视频分辨率的方法。

背景技术

为了得到高分辨率的图像序列或者是视频,通过视频超分辨率(videosuperresolution,vsr)技术,将原始的低分辨率视频进行进一步的后期放大处理,有利于提高视频资源的利用率,可将其应用到视频监控、卫星图像、医学图像处理等各个领域。超分辨率技术的应用条件简单,只要能够获得同一场景的不同低分辨率(lowresolution,lr)图像即可。它在不增加硬件成本的条件下,通过已有的成像设备,利用算法来提高图像的分辨率,突破成像设备所得到图像空间分辨率的极限,然后得到具有较高分辨率(highresolution,hr)的图像或者视频序列,非常经济而且方便。

视频超分辨率是超分辨率技术的进一步应用,是针对单张图像超分辨率的进一步改进,因为在视频序列中,有更多的冗余信息可以利用。当前已有利用卷积神经网络(convolutionalneuralnetwors,cnn)进行超分辨率方法的研究,chaodong等在“learningadeepconvolutionalnetworkforimagesuper-resolution”(inproceedingsofeuropeanconferenceoncomputervision(eccv),2014)中使用深度卷积神经网络在lr图像和hr图像之间构建了一个端到端的映射关系,第一次验证了卷积神经网络应用在图像超分辨领域的可行性,但该算法计算量复杂,且容易产生过拟合,不适合直接对多帧的视频进行处理。arminkappeler等在“videosuper-resolutionwithconvolutionalneuralnetworks”(《ieeetransactionsoncomputationalimaging》,2016,2(2):109-122)中基于卷积神经网络,首先使用单帧图像的预训练参数,经过多层隐层将其转化为视频序列图像模型的参数,但他没有充分利用视频帧间的冗余信息,生成的高分辨率视频效果并不理想。



技术实现要素:

发明目的:基于现有技术的不足,本发明提出一种利用深度卷积神经网络来提高视频分辨率的方法,通过深度卷积神经网络构建一个针对视频序列的超分辨率模型,使其计算复杂度有效降低,并能取得更好的重建质量。

技术方案:一种利用卷积神经网络提高视频分辨率的方法,包括训练阶段和重构阶段,在训练阶段,以多帧下采样视频图像作为卷积神经网络模型的输入,以单图像的超分辨率方法所产生的训练权重来初始化该卷积神经网络模型的权重参数,得到训练好的卷积神经网络模型;在重构阶段,将待处理的视频图像输入训练好的卷积神经网络模型,得到重构后的高分辨率图像。

所述卷积神经网络模型包括三层卷积层和两层池化层共5层架构,所述卷积层用于对输入的图像进行特征提取,所述池化层用于对输入的特征图进行压缩。5层架构依次为第一卷积层、第一池化层、第二卷积层、第二池化层和第三卷积层,第一卷积层、第二卷积层的卷积核大小均为3*3,第三卷积层的卷积核大小为5*5。

在训练阶段,所述卷积神经网络模型的输入图像序列为单帧图像的相邻前后d帧图像,即针对某重建帧,其图像输入共有2d+1张,即使用多张图像形成的向量进行模型的训练。可以采用串联的方式将图像连接起来,若图像的大小为h×w×3,则训练模型的输入图像向量大小为h×w×3×(2d+1),其中d值的大小可以根据实验情况调节。模型的训练损失函数选择均方误差函数(mse),激活函数为relu。而采用的优化函数,即训练模型参数的方法,是基于梯度下降算法的改进。采用adam算法,该算法结合了rmsprop和momentum动量方法,如下式所示:

mt=β1mt-1+(1-β1)▽xt-1

vt=β2vt-1+(1-β2)▽(xt-1)2

其中β1,β2∈[0,1),分别是一阶动量衰减系数和二阶动量衰减系数,一般取值为0.9和0.999,ε为进步值,一般取值1e-8,▽xt-1表示t-1次迭代中的参数梯度矩阵。在第t次迭代,xt为参数矩阵,mt是一阶动量,vt是二阶动量,属于中间变量,α是学习速率。

本发明利用单图像的超分辨率方法所产生的训练权重来初始化视频超分辨率卷积神经网络模型的权重参数,这需要保证视频超分辨率模型中的卷积核尺寸以及数量和单张图像超分辨率模型(srcnn)中保持一致。但是在视频超分辨率模型中,输入图像的大小是srcnn的2d+1倍,所以第一卷积层的卷积核尺寸会是srcnn的2d+1倍,而之后两层卷积层和srcnn模型中的保持一致。因此需要将第一卷积层的输出尺寸减小到和下一层卷积层的大小一致。

对于单张图像来说,假设第一层的输出数据用h1来表示,该层卷积核的维度为m×n×c,c是核数量,则某一卷积层像素点输出数据可用下式表示:

其中i,j是图像y通道二维矩阵的索引值,w(·)是权重参数,b(·)是偏置,c是核的索引,yt是t时刻的图像亮度值,本发明采用输入图像的ycrcb空间表示,在重建过程中只使用y通道,即亮度。所以权重参数的维度是m×n×1×c,1代表只有一个图像通道。

对于视频超分辨率重建而言,有2d+1张输入图像对应图像帧时刻为t-d到t+d,则相应的输出图像数据表示为:

表示t'时刻的图像亮度值(在这里t'可以为t-d,...,t-2,t-1,t+1,t+2,...,t+d时刻,表示2d+1个时刻的输出值都是同样的公式,y拔代表值不定)。在权重的初始化时,处理第一张视频图像,将输入的2d+1幅图像设置为一致,那么yt-d=...=yt-2=yt-1=yt=yt+1=yt+2=...=yt+d,则可以用图像超分辨率的权重初始化视频超分辨率的初始权重,它们的关系为:

w(m,n,t,c)=wv(m,n,t-d,c)+...+wv(m,n,t-2,c)+wv(m,n,t-1,c)

+wv(m,n,t,c)+wv(m,n,t+1,c)+wv(m,n,t+2,c)+...+wv(m,n,t+d,c)

b(c)=bv(c)

所以,可以得到视频超分辨率的初始化权重:

即将视频超分辨率模型的初始权重初始化为图像超分辨模型中权重的平均值。

有益效果:

1)本发明的卷积神经网络模型采用5层架构,在训练视频超分辨率模型时,既减少了局部最优的风险,又加快了模型收敛的速度。

2)本发明使用图像超分辨率模型的训练参数来初始化视频超分辨率模型的初始权重参数,不仅使训练过程能够快速收敛,提高了训练速度,而且使用相关图像的权重也能使得到的模型权重参数在预测时具有更好的精度。

附图说明

图1是本发明方法流程图;

图2是本发明构建的视频超分辨率模型架构图;

图3是根据本发明实施例的walk视频重建主观效果对比;

图4是根据本发明实施例的city视频重建主观效果对比。

具体实施方式

下面结合附图对本发明的技术方案作进一步说明。

本发明针对视频图像序列构建了基于卷积神经网络的视频超分辨率重建模型,在模型构建过程中基于视频图像序列的特点设置了卷积神经网络的超参数,包括卷积核尺寸、神经网络层数等;然后利用单图像的超分辨率方法产生的图像训练权重用来初始化视频超分辨率重建模型的权重参数,并充分利用视频帧间的冗余信息,以多帧视频图像作为卷积神经网络模型的输入,通过增量式的迭代方法,最终得到高分辨率的视频。参照图1,本发明提出的视频超分辨率方法,包括训练阶段和重构阶段,在训练阶段,以多帧下采样视频图像作为卷积神经网络模型的输入,以单帧原始高清视频图像的训练权重来初始化该卷积神经网络模型的权重参数,得到训练好的卷积神经网络模型;在重构阶段,将待处理的视频图像输入训练好的卷积神经网络模型,得到高分辨率图像。

本发明的超频超分辨率卷积神经网络模型包括三层卷积层和两层池化层共5层架构,卷积层用于对输入的图像进行特征提取,池化层用于对输入的特征图进行压缩。模型的训练损失函数选择均方误差函数(mse),激活函数为relu。三个卷积层中的每一层均包括卷积、非线性变换和下采样三个阶段,其中下采样不是必须的。卷积阶段,通过提取信号特征,来观测信号的模式;非线性变换阶段,对不同特征进行筛选,来提高模型的表达能力;下采样阶段,通常是进行池化操作,达到降低输出图的分辨率同时能保持高分辨率特征图描述特征的目的。由这三个单层卷积神经网络组成的可训练多层网络结构可构成用于单图像的超分辨率cnn模型(srcnn),其具体过程如下:

第一卷积层用于图像块的提取与表示,进行图像块特征向量的提取,通过式1来表达:

f1(y)=max(0,w1*y+b1)(1)

其中w1和b1分别代表滤波器参数和偏置,w1的大小是c*f1*f1*n1,f1是滤波器的尺寸大小,n1是滤波器的个数,即需要提取的特征数目,c是图像的数量。所以有n1个大小为c*f1*f1的卷积核应用到图像上,b1是一个n1维的向量。max是relu激活函数。

第二卷积层用于非线性关联的映射,将上一阶段提取的n1维的特征向量匹配到hr图像块上,实际上是映射到一个n2维的特征向量上。利用式2表示:

f2(y)=max(0,w2*f1(y)+b2)(2)

w2的大小是n1*f2*f2*n2,b2是一个n2维的向量。在srcnn算法中,f2的大小一般取为1。理论上来讲,该式得到的n2维特征向量代表着hr图像特征,可以直接用来进行重建。即使用多层神经网络来进行这一步的训练,但是相应的计算复杂度会很高。

第三卷积层用于重建,根据上面得到的hr图像块进行融合,一般采用均值或者是按权值来进行融合得到最终的高分辨率图像,利用式3表示:

f(y)=w3*f2(y)+b3(3)

w3的大小是n2*f3*f3*c,可以是一个均值滤波器或者是其他的线性滤波器。b3是c维向量。

本发明在第一卷积层和第二卷积层的后面分别设置一池化层。引入池化层可以降低维度,降低计算复杂度,提高训练的速度,并且防止过拟合。由于对于视频而言,输入训练样本相比于图像来说具有更大的维度,所以加入池化层,简化网络参数,来提高训练的效率是非常有必要的,本发明采用最大池化的方法来处理卷积之后的数据。模型采用的优化函数,即训练模型参数的方法,是基于梯度下降算法的改进。采用adam算法,该算法结合了rmsprop和momentum动量方法,采用式子4表示:

其中β1,β2∈[0,1),分别是一阶动量衰减系数和二阶动量衰减系数,一般取值为0.9和0.999,ε为进步值,一般取值1e-8,这三个参数是模型设置好的可以调节的参数,属于超参数。▽xt-1表示t-1次迭代中的参数梯度矩阵。在第t次迭代,xt为参数矩阵,mt是一阶动量,vt是二阶动量,属于中间变量,α是学习速率。adam算法实际上是一种自适应调节学习率的方法,因为它根据损失函数对每个参数的梯度的一阶矩估计和二阶矩估计动态调整对于每个参数的学习速率,既可以减少局部最优的风险,又可以加快收敛的速度。

在视频超分辨率卷积神经网络模型的参数设置方面,本发明考虑到是对视频图像的处理,针对第一卷积层的输入,可以降低卷积核的大小,因为这样就可以覆盖绝大部分的图像特征,采用3*3的核尺寸,可以有效的减少第一卷积层的训练参数。接着是第一池化层,这一层实际上是对输入图像进行分割,对每个子区域求最大值,然后输出给第二卷积层。在第二卷积层的设置中,实验中发现核尺寸越大,训练出来的模型具有更好的效果,即重建出的超分辨率图像越清晰,但是增大了运算量,所以本发明做了一个折中处理,将第二卷积层的卷积核大小设置为3*3,这样即可以提高重建效果,也不会让计算量大幅增加。接着第四层即第二池化层也进行一次池化的操作。而在第五层即第三卷积层重建融合阶段,为了能够保证图像的重建质量,仍然和srcnn模型中一样,采用5*5的卷积核尺寸。

在训练阶段,本发明卷积神经网络模型的输入图像序列为单帧图像的相邻前后d帧图像,即针对某重建帧,其图像输入共有2d+1张,即使用多张图像形成的向量进行模型的训练。可以采用串联的方式将图像连接起来,若图像的大小为h×w×3,则训练模型的输入图像向量大小为h×w×3×(2d+1),其中d值的大小可以根据实验情况调节,在实施例中取d=1。将视频模型训练输入图像设置为单帧图像相邻d帧图像,可以充分利用帧间冗余信息,提高训练出视频模型的重建效果。

本发明使用单图像超分辨率训练模型的参数初始化视频超分辨率模型的权重参数,当然这需要保证视频模型中的卷积核尺寸以及数量和单张图像超分辨率中的一致。但是在视频模型中,第一层的大小会是原来的2d+1倍,所以第一卷积层的卷积核尺寸会是srcnn的2d+1倍,而之后两层卷积层和srcnn模型中的保持一致。因此需要将第一卷积层的输出尺寸减小到和下一层卷积层的大小一致。在实施例中取d=1,即使用视频帧的前一帧和后一帧共三张图像进行当前帧的重建,所以第一层的卷积核尺寸会是之前的三倍;而之后两层卷积层和srcnn模型中的保持一致。所以现在的问题是将第一层的输出尺寸减小到和下一层卷积层的大小一致。

对于单张图像来说,假设第一层的输出数据用h1来表示,该层卷积核的维度为m×n×c,c是核数量。则某一卷积层像素点输出数据可用式5表示:

其中i,j是图像y通道二维矩阵的索引值,w(·)是权重参数,b(·)是偏置,c是核的索引,yt是t时刻的图像亮度值,本发明采用输入图像的ycrcb空间表示,在重建过程中只使用y通道,即亮度。所以权重参数的维度是m×n×1×c,1代表只有一个图像通道。

对于视频超分辨率重建而言,有三张输入图像对应图像帧时刻为t-1到t+1,则相应的输出图像数据表示为:

表示t'时刻的图像亮度值(在这里t'为t-1和t+1时刻)。在权重的初始化时,处理第一张视频图像,将输入的三幅图像设置为一致,那么yt-1=yt=yt+1,则可以用图像超分辨率的权重初始化视频超分辨率的初始权重,它们的关系为:

所以,根据式8可以得到视频超分辨率的初始化权重:

即将视频超分辨率模型的初始权重初始化为图像超分辨中权重的平均值。这样初始化权重相比采用高斯分布或者均匀分布初始化的好处是,能够更快的让训练收敛,提高了训练速度,另一方面使用相关图像的权重也能使得到的模型权重参数在预测时具有更好的精度。

为了验证本发明相对于其他超分辨率算法的优势,进行了一些列的对比实验,客观上采用psnr值和ssim值来度量重建质量。实验环境配置包括硬件和软件两部分,训练模型使用的硬件配置是intelxeon2.5ghz,4核,内存8gb。软件配置部分,操作系统为centos7,利用的机器学习前端库为keras-1.2.2,后端为theano-0.8.2,基于python2.7以及一些科学计算库。实验的步骤主要包括三个方面,首先是数据准备;然后模型训练;最后是通过训练好的模型进行测试图像的测试,展示主客观效果。

1)数据准备

实验采用的数据主要有两部分,一部分是单张图像,用于训练初始化参数,出于公平性考虑,这一部分的训练数据采用图像增强领域通用的含有91幅图像的训练集;另一部分是视频数据,来自https://media.xiph.org/video/derf/的标准视频序列,分别选取了calendar,city,foreman,walk作为测试视频数据集。总共选取91384块训练图像块,5120块测试验证图像块然后降采样为图像块。

2)模型训练

在训练初始化参数时,对单张图像采用8×8的分割方法将图像分割为图像块,总共产生91384块训练图像块s={s1,s2,s3,…,sn},5120块测试验证图像块c={c1,c2,c3,…,cn},。同样对于视频帧也采用分割图像块进行训练。对于图像块,首先进行降采样,模糊到lr图像块,训练图像和测试验证图像降采样后分别为s′={s′1,s′2,s′3,…,s′n}和c′={c′1,c′2,c′3,…,c′n},然后再通过普通的插值操作放大到预期的hr图像大小,作为模型的输入数据。本文的降采样因子为2,同样升采样也为2,即将lr图像放大1倍,重建出高分辨率图像。通过迭代,以s′作为训练输入,和高分辨率图像块s拟合,训练出模型;采用mse作为代价函数,adam优化方法,以及relu激活函数。

测试视频序列分别选取的视频序列分辨率列表如下:

表1测试视频分辨率

训练过程中一共迭代250次,由于没有采用gpu进行加速,所以耗时较长。

将训练好的模型权重以h5的格式进行存储,然后使用测试数据集进行测试。

3)实验结果

得到训练模型后,以c′作为测试数据,通过训练模型计算对应的高分辨率图像块h={h1,h2,h3,…,hn},然后计算c和h之间的psnr值和ssim值,进行对比试验。在实验的过程中,分别使用cubic算法和去噪srcnn算法(dsr)作为对比,分别计算预测重建出图像的峰值信噪比(psnr)以及结构相似性(ssim),以这两个参数作为客观评价指标。从视频帧中选取10帧的平均参数作为对比,psnr值比越大,说明丢失的信息越少;ssim值越接近1,说明和原始hr视频之间的相似程度越大。

从表2可以看出,相比于去噪后的srcnn算法,本发明所提出的改进算法依然有优势,不仅是在psnr值上,还是在ssim值上,这主要是因为在第二层卷积层采用了更加精细的卷积核,以及使用图像训练参数来初始化视频模型。客观结果相比于原始srcnn算法都有提高。当然基于机器学习的方法相比于传统的插值方法,优势更加的明显。

除了客观指标之外,还选取了两组重建后的视频帧,walk和city两种视频,分别代表了运动的视频以及含有条纹细节的图像视频,从图3和图4可以看出,(a)为原始图像,(b)为cubic算法重建后图像,(c)为dsr算法重建后图像,(d)代表的是本发明提出的重建算法重建后图像,在图像的纹理和细节上和原始的hr图像最为接近,而传统基于插值的算法给人的主观效果并不是太理想。

表2重建客观结果

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1