一种基于知识蒸馏的图像超分辨率增强方法与流程

文档序号:15964978发布日期:2018-11-16 23:07阅读:1920来源:国知局

本发明涉及计算机视觉和深度学习领域,尤其涉及一种基于知识蒸馏的图像超分辨率增强方法。

背景技术

超分辨率(superresolution,sr)是计算机视觉中的一个经典问题,单图像超分辨率(singleimagesuper-resolution,sisr)的目的是利用数字图像处理等方法,从单个低分辨率(low-resolution,lr)图像中恢复出与其对应的高分辨率(high-resolution,hr)图像。在超分辨率问题中,假设低分辨率图像为x,我们的目标是恢复一个尽可能与真实(groundtruth,gt)图像y相似的超分辨率图像y′。

传统的基于插值的放大方法,包括双线性插值(bilinearinterpolation)和双立方插值(bicubicinterpolation)等,使用固定的计算公式,利用低分辨率图像当中的邻域像素信息进行加权平均,计算出放大的高分辨图像中所缺失的中间像素,但是这种简单的插值算法不会产生更多具有高频信息的图像细节。

dong[1]等人提出的超分辨率卷积神经网络算法(super-resolutionconvolutionneuralnetwork,srcnn)首次将卷积神经网络应用在图像超分辨率中,它直接学习输入低分辨率图像和相应的高分辨率图像之间端到端的映射关系。srcnn很好地说明了深度学习在超分辨率问题中是有效的,能够重建很多高频的图像细节信息。kim[2]等人受vgg-net[3]的启发,在超分辨率问题中使用非常深的卷积神经网络(imagesuper-resolutionusingverydeepconvolutionnetworks,vdsr),vdsr的网络结构由20个卷积层组成,更多的卷积层拥有更大的感受野,可以使用更多的图像邻域信息来预测图像高频细节,因此会有更好的超分辨率重建效果。lim[4]等人受srresnet[5]的启发提出了更深的增强型深度残差网络(enhanceddeepresidualnetworksforsingleimagesuper-resolution,edsr),优化了srresnet的结构,得到更好的超分辨率重建效果。

从学术界之前的工作可以看出,随着网络深度的增加,图像的重建效果越好。虽然增加网络的深度可以带来更好的超分辨率重建效果,但是同时运算量和内存消耗也会增加,在很多实际的应用场景中(例如移动端和嵌入式等低功耗的限制条件下),无法实时运行很深的卷积神经网络模型。



技术实现要素:

本发明的目的在于提供一种基于知识蒸馏的图像超分辨率增强方法,在不改变小卷积神经网络模型结构的前提下,提升网络模型的图像超分辨率重建效果,从而能够在移动端和嵌入式端上高效地运行基于卷积神经网络的超分辨率模型。

本发明采用的技术方案是:

一种基于知识蒸馏的图像超分辨率增强方法,其包括以下步骤:

1)训练数据和测试数据的获取;

1-1)训练集选择div2k和flickr2k,一共包括3450张真实图像,测试集分别选择了国际公开数据集set5,set14,bsds100,urban100;

1-2)采用bicubic下采样的方法,将训练集的真实图像进行3倍下采样,得到与其对应的一组低分辨率图像;

1-3)使用opencv库中的imread()函数分别读取真实图像和低分辨率图像,图像格式为bgr数据,bgr分别代表彩色空间的蓝色、绿色以及红色部分,

1-4)然后将bgr空间的图像转换到ycrcb空间,y代表明亮度,即灰阶值,cr代表bgr红色部分与bgr信号亮度值之间的差异,cb代表bgr蓝色部分与bgr信号亮度值之间的差异;

1-5)对ycrcb空间的图像进行通道分离,只选择y通道数据进行训练,并对y通道数据进行归一化处理;

1-6)对y通道图像进行裁剪,将裁剪过后的真实图像块作为训练目标,将裁剪过后的低分辨率图像块作为网络训练时的输入,每一次迭代所需的训练数据为32对。

2)教师网络的训练;教师网络是拥有较深卷积层的神经网络模型,

2-1)教师网络的第一层为特征提取和表示层,由卷积层和非线性激活层组成,非线性激活层选择relu作为激活函数,第一层的操作可用如下公式表示:

f1(x)=max(0,w1*x+b1)

式中,w1,b1分别为第一层卷积层的权重和偏置,“*”表示卷积操作,relu函数的定义为max(0,x);

2-2)教师网络的中间层由10个残差块组成,每个残差块有两个卷积层,每个卷积层后是激活函数为relu的非线性激活层;用一个跳跃连接将第一个卷积层的输入和第二个卷积层的输出相加,仅对第一个卷积层的输入进行残差学习;每一个残差块可用如下公式表示:

f2n+1(x)=max(0,w2n+1*fn(x)+b2n+1)+f2n-1(x)(1≤n≤10)

式中,n代表残差块序号,fn(x)代表残差块中第一个卷积层和非线性激活层的输出,w2n+1和b2n+1分别代表残差块中第二个卷积层的权重和偏置,f2n-1(x)代表残差块的输入。

2-3)教师网络的重构层是反卷积层(deconvolution),反卷积层用于将前一层网络的输出进行上采样,使输出的超分辨率图像与训练目标大小相等;

2-4)对于教师网络的训练,学习率设置为0.0001,使用mse函数作为训练目标和网络输出的损失函数,其表达式如下所示:

式中,n为训练样本数量;yi为输入图像,y′i为预测图像。

2-5)使用adam优化方法使损失函数最小化。

3)学生网络的训练;

为了达到了更好的重建效果,本发明去掉了学生网络结构的归一化bn层。

3-1)学生网络的第一层为特征提取和表示层,其参数设置与教师网络的第一层相同;

3-2)学生网络的中间层由3个深度可分离卷积(depthwiseseparableconvolution)模块组成,每个模块都是由一个3×3的深度级卷积层(depthwiseconvolution)和一个1×1的卷积层组成,深度级卷积层和卷积层后都是一个激活函数为relu的非线性激活层,深度级卷积的操作可由如下公式表示:

式中,k是大小为dk×dk×m的深度卷积核,将k中的第m个滤波器应用于f的第m个特征图,来产生经滤波的输出特征图g的第m个特征图;

3-3)学生网络重构层的参数设置与教师网络的重构层相同;

3-4)学生网络的学习率,损失函数,优化方法与教师网络相同;

4)教师网络对学生网络的指导学习;通过三组指导实验由学生网络学习吸收教师网路的特征图;

步骤4)指导实验中使用mse函数作为训练目标和网络输出的损失函数,并记为loss0,即:

式中,n为实验样本数量,yi为输入图像,y′i为预测图像。

指导实验一:提取学生网络的第1个深度可分离卷积模块的输出特征图,对其求平均,记为s1,即:式中,n1为特征图个数,si为学生网络中第1个深度可分离卷积模块输出的第i张特征图;

提取教师网络的第4个残差块模块的输出特征图,对其求平均,记为t1,即:式中,n1为特征图个数,ti为教师网络中第4个残差块模块输出的第i张特征图;

使用mse函数作为t1和s1的损失函数,使学生网络学习到教师网络特征图的内容,并记为loss1,即:

式中,n1为特征图个数,t1为教师网络的第4个残差块模块的输出特征图的均值,s1为学生网络的第1个深度可分离卷积模块的输出特征图的均值。

指导实验一的总损失函数loss=loss0+loss1,使用adam优化方法使总损失函数最小化;

指导实验二:提取学生网络的第2个深度可分离卷积模块的输出特征图,对其求平均,记为s2,即:式中,n2为特征图个数,s2i为学生网络中第2个深度可分离卷积模块输出的第i张特征图;

提取教师网络的第7个残差块模块的输出特征图,对其求平均,记为t2,即:式中,n2为特征图个数,t2i为教师网络中第7个残差块模块输出的第i张特征图;

使用mse函数作为t2和s2的损失函数,使学生网络学习到教师网络特征图的内容,并记为loss2,即:

式中,n2为特征图个数,t2为教师网络的第7个残差块模块的输出特征图的均值,s2为学生网络的第2个深度可分离卷积模块的输出特征图的均值。

指导实验二的总损失函数为loss=loss0+loss2,使用adam优化方法使总损失函数最小化;

指导实验三:提取学生网络的第3个深度可分离卷积模块的输出特征图,对其求平均,记为s3,即:式中,n3为特征图个数,s3i为学生网络中第3个深度可分离卷积模块输出的第i张特征图;

提取教师网络的第10个残差块模块的输出特征图,对其求平均,记为t3,即:式中,n3为特征图个数,t3i为教师网络中第10个残差块模块输出的第i张特征图;

使用mse函数作为t3和s3的损失函数,使学生网络学习到教师网络特征图的内容,并记为loss3,即:

式中,n3为特征图个数,t3为教师网络的第10个残差块模块的输出特征图的均值,s3为学生网络的第3个深度可分离卷积模块的输出特征图的均值。

指导实验三的总损失函数为loss=loss0+loss3,使用adam优化方法使总损失函数最小化。

5)测试评估图像重建效果;

使用opencv库中的imread()函数读取测试集的真实图像,图像格式为bgr数据,然后将bgr空间的图像转换到ycrcb空间,并对ycrcb空间的图像进行通道分离,此时只选择y通道数据进行测试,其灰阶值范围在[0-255]之间,通过bicubic下采样的方法,将测试集的灰度图像进行3倍下采样,得到其对应的低分辨率图像,对y通道数据进行归一化处理,使其灰阶值范围变为[0-1]之间,并将其作为网络的输入。最后计算网络的输出与真实图像的灰度图像的psnr来衡量超分辨率重建效果。

通常,用峰值信噪比(peaksignal-to-noiseratio,psnr)来评估图像重建效果的好坏,psnr值越高,图像重建效果越好。

6)根据输出特征图之间不同的矩阵关系对学生网络进行进一步指导;

设卷积神经网络的激活层的输出张量为a∈rc×h×w,式中c为特征图个数,h和w分别为特征图的高和宽,

函数m将张量a作为输入,输出为二维矩阵,即:m:rc×h×w→rh×w,且输出特征图之间满足以下关系:

特征图均值的p次方:

特征图p次方的均值:

特征图的最大值:mmax(a)=maxi=1,cai

特征图的最小值:mmin(a)=mini=1,cai。

式中,m为函数,p为幂次方系数,a为卷积神经网络的激活层的输出张量,c为特征图个数,i为特征图序号。

本发明采用以上技术方案,提出利用知识蒸馏技术[6],让较小的神经网络模型学习较深网络模型的特征,在不改变小网络的模型结构和不增加计算量的前提下,提升小网络模型的图像超分辨增强效果,从而能在有低功耗限制的移动端或者嵌入式端上能够高效地运行效果较好的超分辨率模型。

附图说明

以下结合附图和具体实施方式对本发明做进一步详细说明;

图1为本发明一种基于知识蒸馏的图像超分辨率增强方法的教师网络结构示意图;

图2为本发明一种基于知识蒸馏的图像超分辨率增强方法的学生网络结构示意图;

图3为本发明一种基于知识蒸馏的图像超分辨率增强方法的教师网络对学生网络的指导过程示意图;

图4为本发明一种基于知识蒸馏的图像超分辨率增强方法的部分实验对比效果。

具体实施方式

如图1-4之一所示,本发明的目的是提出一种基于知识蒸馏的超分辨率重建方法,在不改变小卷积神经网络模型结构的前提下,提升网络模型的图像超分辨率重建效果,从而能够在移动端和嵌入式端上高效地运行基于卷积神经网络的超分辨率模型。

本发明公开了一种基于知识蒸馏的超分辨率重建方法,其具体实施方式如下:

(1)训练集和测试集的获取。

训练集选择div2k和flickr2k。div2k有800张真实图像,flickr2k有2650张真实图像,共计3450张图像。

测试集分别选择了国际公开数据集set5,set14,bsds100,urban100。set5有5张测试图像,set14有14张测试图像,bsds100和urban100各有100张测试图像。

采用bicubic下采样的方法,将训练集的真实图像进行3倍下采样,得到与其对应的一组低分辨率图像。

使用opencv库中的imread()函数分别读取真实图像和低分辨率图像,图像格式为bgr数据,bgr分别代表彩色空间的蓝色、绿色、红色部分,然后将bgr空间的图像转换到ycrcb空间,y代表明亮度,即灰阶值,cr代表bgr红色部分与bgr信号亮度值之间的差异,cb代表bgr蓝色部分与bgr信号亮度值之间的差异。

bgr空间到ycrcb空间的转换公式如下所示:

y=0.097906×b+0.504129×g+0.256789×r+16.0

cr=-0.071246×b-0.367789×g+0.439215×r+128.0

cb=0.439215×b-0.290992×g-0.148223×r+128.0

对ycrcb空间的图像进行通道分离,只选择y通道数据进行训练,此时,图像灰阶值范围在[0-255]之间,对y通道数据进行归一化处理,使图像灰阶值范围变为[0-1]之间。

对y通道图像进行裁剪,下采样倍数为3的时,将真实图像所对应的y通道图像裁剪为120×120的图像块作为训练目标,将相应的低分辨率图像所对应的y通道图像裁剪为40×40大小的图像块作为网络训练时的输入。每一次迭代所需的训练数据为32对。

(2)教师网络的训练。

教师网络的结构如图1所示,教师网络是拥有较深卷积层的神经网络模型。教师网络的第一层为特征提取和表示层,由64个大小为3×3的滤波器的卷积层和非线性激活层组成。卷积层的填充(padding)方式设置为‘same’,卷积核的滑动步长(stride)设置为1,使卷积操作前后图像大小相等,权重初始化方法设置为xvaier,偏置项(bias)初始化为0,非线性激活层选择relu作为激活函数。第一层的操作可用如下公式表示:

f1(x)=max(0,w1*x+b1)

式中,w1,b1分别为第一层卷积层的权重和偏置,“*”表示卷积操作,relu函数的定义为max(0,x)。

教师网络的中间层由10个残差块组成,每个残差块有两个卷积层,每个卷积层后是激活函数为relu的非线性激活层。用一个跳跃连接将第一个卷积层的输入和第二个卷积层的输出相加,仅对第一个卷积层的输入进行残差学习。其中,每个卷积层都是由64个大小为3×3的滤波器组成,padding方式设置为‘same’,stride设置为1,权重初始化方法为xvaier方法,bias初始化为0。每一个残差块可用如下公式表示:

f2n+1(x)=max(0,w2n+1*fn(x)+b2n+1)+f2n-1(x)(1≤n≤10)

式中,n代表残差块序号,fn(x)代表残差块中第一个卷积层和非线性激活层的输出,w2n+1和b2n+1分别代表残差块中第二个卷积层的权重和偏置,f2n-1(x)代表残差块的输入。

上采样倍数为3时,教师网络的重构层是1个滤波器大小为3×3的反卷积层(deconvolution),stride设置为3。反卷积层的目的是将前一层网络的输出进行上采样,使输出的超分辨率图像与训练目标大小相等。

对于教师网络的训练,学习率设置为0.0001,使用mse函数作为训练目标和网络输出的损失函数,其表达式如下所示:

式中,n为实验样本数量,yi为输入图像,y′i为预测图像。

使用adam优化方法使损失函数最小化。

(3)学生网络的训练

学生网络的结构如图2所示,为了达到了更好的重建效果,本发明去掉了网络结构的归一化bn层。学生网络的第一层为特征提取和表示层,其参数设置与教师网络的第一层相同。

学生网络的中间层由3个深度可分离卷积(depthwiseseparableconvolution)模块组成,每个深度可分离卷积模块都是由64个大小为3×3的深度级卷积层(depthwiseconvoluttion)和64个大小为1×1的卷积层组成,深度级卷积层和卷积层后都是一个激活函数为relu的非线性激活层。深度级卷积padding方式设置为‘same’,stride设置为1。卷积层的stride设置为1,权重初始化方法为xvaier方法,bias初始化为0。深度级卷积的操作可由如下公式表示:

式中,k是大小为dk×dk×m的深度卷积核,将k中的第m个滤波器应用于f的第m个特征图,来产生经滤波的输出特征图g的第m个特征图。

学生网络重构层的参数设置与教师网络的重构层相同。

学生网络的学习率,损失函数,优化方法与教师网络相同。

(4)教师网络对学生网络的指导学习。

教师网络对学生网络的指导过程如图3所示。

实验一:

提取学生网络的第1个模块的输出特征图,对其求平均,记为s1,即:

式中,n为特征图个数,si为学生网络中第1个模块输出的第i张特征图。

提取教师网络的第4个模块的输出特征图,对其求平均,记为t1,即:

式中,n为特征图个数,ti为教师网络中第4个模块输出的第i张特征图。

使用mse函数作为t1和s1的损失函数,使学生网络学习到教师网络特征图的内容,并记为loss1,即:

使用mse函数作为训练目标和网络输出的损失函数,并记为loss0,即:

式中,n为实验样本数量,yi为输入图像,y'i为预测图像。

总损失函数loss=loss0+loss1,使用adam优化方法使总损失函数最小化。

实验二:

提取学生网络的第2个模块的输出特征图,对其求平均,记为s2。

提取教师网络的第7个模块的输出特征图,对其求平均,记为t2。

实验三:

提取学生网络的第3个模块的输出特征图,对其求平均,记为s3。

提取教师网络的第10个模块的输出特征图,对其求平均,记为t3。

使用mse函数作为t2和s2,t3和s3的损失函数,分别记为loss2,loss3。

实验二,实验三的总损失函数分别为loss=loss0+loss2,loss=loss0+loss3,使用adam优化方法使总损失函数最小化。

(5)测试

使用opencv库中的imread()函数读取测试集的真实图像,图像格式为bgr数据,然后将bgr空间的图像转换到ycrcb空间,并对ycrcb空间的图像进行通道分离,此时只选择y通道数据进行测试,其灰阶值范围在[0-255]之间,通过bicubic下采样的方法,将测试集的灰度图像进行3倍下采样,得到其对应的低分辨率图像,对y通道数据进行归一化处理,使其灰阶值范围变为[0-1]之间,并将其作为网络的输入。最后计算网络的输出与真实图像的灰度图像的psnr来衡量超分辨率重建效果。通常,用峰值信噪比(peaksignal-to-noiseratio,psnr)来评估图像重建效果的好坏,psnr值越高,图像重建效果越好。

步骤(2)(3)(4)的结果如表1所示。

表1教师网络对学生网络的指导效果

从表1可以看出,实验一、二的psnr相对于学生网络有少量提升。

(6)进一步指导:考虑输出特征图之间不同的矩阵关系,来对学生网络进行进一步指导。设卷积神经网络的激活层的输出张量为a∈rc×h×w,式中c为特征图个数,h和w分别为特征图的高和宽,函数m将张量a作为输入,输出为二维矩阵,即:

m:rc×h×w→rh×w

本发明考虑以下特征图之间的关系:

特征图均值的p次方:

特征图p次方的均值:

特征图的最大值:mmax(a)=maxi=1,cai

特征图的最小值:mmin(a)=mini=1,cai

式中,m为函数,p为幂次方系数,a为卷积神经网络的激活层的输出张量,c为特征图个数,i为特征图序号。

在步骤(4)(5)的基础上,总损失函数loss=2×loss0+loss1+loss2,使用adam优化方法使总损失函数最小化。教师网络对学生网络的进一步指导结果如表2所示。

表2教师网络对学生网络的进一步指导结果

mmean2(a)方法与bicubic插值方法和学生网络的对比效果如图4所示。

根据本发明的超分辨率方法中,在学生网络网络结构不变的前提下,经过教师网络指导后的学生网络的psnr有显著提升,得到更好的重建效果。本发明提出的基于知识蒸馏的超分辨率图像增强方法的创新性主要体现在三个方面:

第一,本发明利用知识蒸馏的相关思想,将教师网络的性能传递给学生网络,从而在不改变学生网络模型的结构情况下,极大地提升了学生网络的图像超分辨率重建效果。

第二,为了确定教师网络和学生网络模型的有效信息传递方式,本发明比较了7种不同的特征提取和传递方法,并最终确定了最优的特征提取方式。

第三,由于教师网络在运行的时候需要消耗极大的计算资源,而学生网络模型只需要较小的计算量。本发明提出的学生网络模型可以高效地运行在低功耗限制的移动设备和嵌入式设备上。

以上对本发明的技术方案进行了详细说明,但不能认定本发明的具体实施仅限于所描述的内容。对于本发明领域的相关技术人员来说,在不脱离本发明构思的前提下,对其进行不同的变化,但任何与本发明等同或相似的变化,都属于本发明的保护范围。

参考文献

[1]chaodong,chenchangeloy,kaiminghe,xiaooutang.imagesuper-resolutionusingdeepconvolutionalnetworks[j].ieeetransactionsonpatternanalysis&machineintelligence,2016,38(2):295-307.

[2]jiwonkim,jungkwonlee,kyoungmulee.accurateimagesuper-resolutionusingverydeepconvolutionalnetworks[c].ieeeconferenceoncomputervisionandpatternrecognition.ieee,2016:1646-1654.

[3]karensimonyan,andrewzisserman.verydeepconvolutionalnetworksforlarge-scaleimagerecognition[j].computerscience,2014.

[4]beelim,sanghyunson,heewonkim,seungjunnah,kyoungmulee.enhanceddeepresidualnetworksforsingleimagesuper-resolution[c].computervisionandpatternrecognitionworkshops.ieee,2017:1132-1140.

[5]christianledig,lucastheis,ferenchuszar,josecaballero,andrewcunningham,alejandroacosta,andrewaitken,alykhantejani,johannestotz,zehanwang,wenzheshi.photo-realisticsingleimagesuper-resolutionusingagenerativeadversarialnetwork[c].ieeeconferenceoncomputervisionandpatternrecognition.ieee,2017:105-114.

[6]geoffreyhinton,oriolvinyals,jeffdean.distillingtheknowledgeinaneuralnetwork[j].computerscience,2015,14(7):38-39.

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