本发明属于数字图像处理技术领域,特别设计一种基于类凸集投影算法的图像恢复方法,对退化图像的进行恢复,可用于完成摄影、影视作品的后期制作加工。
背景技术:
计算机视觉领域的一个重要分支是图像生成,图像生成包括图像恢复、图像上色、图像语义分割、图像或视频的风格转换等。在计算机视觉领域,图像恢复是一个病态的逆问题,即在指定低分辨率图像的情况下,利用退化过程的先验知识,来建立图像的退化模型,恢复出原始的高分辨率图像。
传统的图像恢复模型主要包括:1)基于插值的算法(最近邻域法,双线性插值法,双三次插值法等);2)基于样例学习的方法(字典学习)。基于插值的恢复算法由于没有充分利用低、高分辨率图像对之间的先验知识,因此往往得到的恢复图像质量很差。字典学习虽然通过设计低、高分辨率字典很好的利用了先验知识,但由于该类算法手工设计特征,并不能提取到最为有效的信息,所以在一定程度上影响了恢复效果。
最近几年,随着深度学习的兴起,众多学者将深度神经网络应用于图像恢复领域,比如说srcnn、vdsr、espcn、srresnet、edsr等等。神经网络模型具有自适应提取特征的能力,弥补了传统字典学习中手工提取特征的不足,从而提高了图像恢复质量。
由于篇幅的限制,我们仅介绍两个较新的经典网络模型srresnet和edsr:
ledigetal.在论文《photo-realisticsingleimagesuper-resolutionusingagenerativeadversarialnetwork》中首次使用了heetal.构建resnet网络中的residualblock,提出了srresnet。然而resnet中的residualblock是用来解决高级视觉问题的,如果直接将它应用于图像恢复等低级视觉问题会造成一定的影响。limetal.在《enhanceddeepresidualnetworksforsingleimagesuper-resolution》论文中移除了原始residualblock中的bn层,提出了edsr。该网络在减小模型计算量的同时所获得的效果也优于srresnet。为了进一步研究性能提升的因素,我们分别可视化出两种网络提取到的特征图,发现edsr提取到的特征比srresnet包含更少的噪声,而且其结构化的高频信息也更为丰富,这说明了特征中的噪声程度影响着恢复结果。然而,现有的图像恢复网络均没有考虑特征中的噪声程度对于恢复结果的影响。
技术实现要素:
本发明的目的在于针对上述已有技术中的不足,提出一种基于类凸集投影算法的图像恢复网络pl-dsr。相比于现有的图像恢复网络,pl-dsr可以提取到更加丰富的特征,在降低网络参数量的同时提升了图像恢复效果。
本发明的技术思路是:首先,基于传统的凸集投影算法构建一种显示的特征去噪模块,用于对特征图中的噪声进行抑制。然后,将该模块引入到经典edsr网络中,构建出基于类凸集投影算法的图像恢复网络pl-dsr。该网络可以有效的抑制特征图中的噪声,提取到结构化更加清晰的特征,在减少模型复杂度的同时进一步提升了恢复效果和人的视觉感官体验。具体步骤如下:
(1)构建训练样本集和测试样本集:
(1a)获取div2k公开数据集中的高分辨率(hr)图像,通过hr得到n个分辨率大小为s×s的图像块,并对每个图像块通过bicubic下采样,得到与之对应的低分辨率(lr)图像块。其中,n≥200000,s=19;
(1b)获取set5,set14,bsd100,urban100,manga109公开数据集中的hr图像,对其通过bicubic下采样,得到与之对应的lr图像。
(2)构建显示的特征去噪模块:
(2a)构建特征去噪模块的核心思想:
设计特征去噪模块的核心思想是通过网络来泛化传统的软阈值算法(softthresholding)。从传统的信号处理角度讲,卷积是一个“变换”的过程,对特征去噪本质上是在变换域去噪。软阈值算法是一种用于变换域去噪的经典方法。软阈值函数gst(x)表示为:
其中x是原始系数,τ表示阈值,是一个非负常量,被定义为
(2b)设计软阈值模块:
设计软阈值模块(stblock)的关键在于能够让网络自适应学习每个特征图对应的阈值,完成特征去噪的任务。整个模块的构建包括全局池化、自动编码器、阈值生成,特征去噪四部分,其中:
全局池化,包括一个globalaveragepooling(gap)层,用于提取输入特征图每个通道的平均能量;
自动编码器,包括两个简单的全连接(fc)层,用于提取经全局池化后得到的均值向量的主成分,然后生成相应的缩放因子向量;
软阈值生成,将均值向量与缩放因子相乘,得到对应的软阈值因子;
特征去噪:将生成的软阈值与输入的特征图经过软阈值函数gst,完成特征去噪。
(2c)设计自适应软阈值模块:
实际上,将stblock直接应用到edsr中有两个缺点:1)stblock不是一个轻量化模块,提取到的特征可能是冗余的。为了解决这个问题,将第一个fc层的通道数减少为原来的
(3)构建基于类凸集投影算法的图像恢复网络模型pl-dsr:
(3a)pl-dsr模型的构建:
从传统的图像处理角度重新诠释了edsr网络模型,认为该模型与传统的凸集投影算法非常相似,却唯独少了在变换域去噪的一步。具体地:1)将用于特征提取的第一个卷积层视作为对输入图像进行了一个“变换”运算;2)edsr将提取到的特征通过了一系列的残差块,每个残差块的组成是conv-relu-conv,然后将这三层的功能分别视作为“逆变换-空间域的非负抑制-变换”的过程;3)级联多个残差块被视作为该过程的反复迭代。其次,将astblock应用到edsr网络中,得到pl-dsr网络模型,完成对特征图进行显示的去噪,能够提取到结构化更加清晰的特征,在减小网络复杂度的同时获得比edsr更好的恢复效果。
(3b)定义图像恢复网络模型的损失函数;
定义l1范数恢复损失函数l:
其中,n是训练样本总数,
(4)对pl-dsr模型进行训练:
将训练样本集中的lr-hr图像块作为网络的输入,对pl-dsr模型进行k次迭代训练,得到训练好的模型。其中,k≥50000;
(5)对pl-dsr模型进行测试:
将测试样本集作为训练好的pl-dsr模型的输入,得到对应的恢复图像。
(6)生成恢复图像:
将待恢复的lr图像作为pl-dsr模型的输入,得到恢复后的图像。
本发明与现有技术相比具有以下优点:
1.本发明基于传统的凸集投影算法的思想构建了一种显示的特征去噪模块,即通过网络来泛化用于经典的软阈值算法。该模块不但结构简单,而且能够有效的抑制特征中的噪声,使得网络可以提取到结构化更加清晰的特征,有效的解决了现有网络特征图中噪声程度高,纹理细节模糊等缺点。
2.本发明基于edsr网络模型构建了一种基于类凸集投影算法的图像恢复网络pl-dsr,即将构建的显示的特征去噪模块应用于edsr网络中,并阐述了pl-dsr与凸集投影算法之间的联系,将深度学习技术与传统技术紧密联系到一起。具备显示的去噪模块,pl-dsr使用更少的残差块和通道数获得与edsr相当的性能。相比于现有技术,恢复图像保留了更多的纹理、边缘等高频信息。
附图说明
图1为本发明的实现流程图;
图2为本发明构建的显示的去噪模块结构的示意图;
图3为本发明构建的基于类凸集投影算法的图像恢复网络结构的示意图;
图4为本发明与现有技术的特征可视化对比图;
图5为本发明与edsr基准网络在不同残差块和通道数获得的性能对比图;
图6为本发明与现有技术的模型复杂度与恢复性能的对比图;
图7为本发明与现有技术的图像恢复结果对比图。
具体实施方式
下面结合附图对本发明的实施例和效果进行详细说明。
参照图1,本发明的实现步骤如下:
步骤1)构建训练样本集和测试样本集:
(1a)获取div2k公开数据集中的高分辨率(hr)图像,通过hr得到n个分辨率大小为s×s的图像块,并对每个图像块通过bicubic下采样,得到与之对应的低分辨率(lr)图像块。其中,n≥200000,s=19;
(1b)获取set5,set14,bsd100,urban100,manga109公开数据集中的hr图像,对其通过bicubic下采样,得到与之对应的lr图像。
步骤2)构建显示的特征去噪模块:
参照图2,构建显示的特征去噪模块包括软阈值模块(stblock)和自适应软阈值模块(astblock)。其中,stblock包括了全局池化、自动编码器、阈值生成,特征去噪四部分,astblock基于stblock引入了空间自适应机制,学习更优的阈值。
(2a)stblock:
参照图2(a),该四部分详细描述如下:
假定x∈rw×h×c是输入的特征图,其中w,h和c分别代表其宽度,高度和通道数。xc∈rw×h×c表示x的第c个通道,x=[x1,…,xc,…,xc]。首先,将x进行绝对值并通过一个globalaveragepooling(gap)层得到长度为c的向量u:
uc是u的第c个分量。然后,利用两个全连接(fc)层提取u的主成分v∈rc:
v=w2×relu(w1×u)
其中,w1∈rw×h×c和w2∈rw×h×c分别表示这两个fc层的系数,relu是一种非线性激活函数,relu(x)=max(0,x)。其次,将v通过一个sigmoid层得到相应的缩放因子向量z∈rc:
z=sigmoid(v)
之后,将u和z的第c个分量uc和zc相乘便得到了特征图xc的阈值τc:
τc=uc·zc
那么输入特征图x对应的阈值向量t=[τ1,…,τc,…,τc]。最后利用软阈值函数gst就得到输出的特征图y=[y1,…,yc,…,yc]:
yc(i,j)=gst(xc(i,j),τc)
(2b)astblock:
参照图2(b),采用了空间自适应机制,具体的,通过一个简单的3×3卷积层以及sigmoid激活,便得到了一个空间相关性矩阵θ∈rw×h。该模块对于输入特征图x在(i,j,c)点的阈值τc(i,j)为:
τc(i,j)=θ(i,j)·uc·zc
步骤3)构建基于类凸集投影算法的图像恢复网络模型pl-dsr:
(3a)pl-dsr模型的构建:
参照图3,pl-dsr网络模型包括特征提取部分(第一个卷积层),非线性映射部分(多个残差块,每个残差块的组成为conv-relu-conv-astblock),恢复部分(上采样模块和输出的卷积层)。对于每个模块,我们都从传统的图像处理角度给予了泛化的解释,并跟凸集投影算法做了比较,展示了两者之间的联系。具体的:
1)将用于特征提取的卷积层视作为对输入图像进行“变换”运算;
2)将每个残差块的功能分别视作为“逆变换-空间域的非负抑制-变换-变换域去噪”的过程;
3)级联多个残差块被视作为该过程的反复迭代。
各个部分的详细结构分别为:
特征提取部分:输入层→第一卷积层
非线性映射部分:第一卷积层的输出→第一残差块→第二残差块→第三残差块→第四残差块→第五残差块→第六残差块→第七残差块→第八残差块→第九残差块→第十残差块→第十一残差块→第十二残差块→第十三残差块→第十四残差块→第十五残差块→第十六残差块→第十七残差块→第十八残差块→第十九残差块→第二十残差块→第二十一残差块→第二十二残差块→第二十三残差块→第二十四残差块→第二十五残差块→第二十六残差块→第二十七残差块→第二十八残差块→第二十九残差块→第三十残差块→第三十一残差块→第三十二残差块
恢复部分:第三十二残差块的输出→第一上采样层→卷积层→第二上采样层→卷积层→卷积层
其中,每一层的参数设置都相同:kernelsize=3,stride=1,channel=128,激活函数是relu。astblock的参数设置为:缩减因子rc=8,3×3卷积层的输入channel=128,输出channel=1。
(3b)定义图像恢复网络模型的损失函数;
定义l1范数图像恢复损失函数l:
其中,n是训练样本总数,
步骤4)对pl-dsr模型进行训练:
将训练样本集中的lr-hr图像块作为网络的输入,对pl-dsr进行k次迭代训练,得到训练好的模型。其中,k≥50000,具体实现步骤为:
(4a)初始化网络参数,设置迭代次数d,最大迭代次数为k,k≥50000,并令d=1;
(4b)将lr和hr图像块同时输入到网络中,得到网络输出的恢复图像块sr;
(4c)根据图像恢复损失函数l计算sr图像块与hr图像块之间的损失,用于保留原始hr图像块的结构化特征;
(4d)使用梯度下降法,通过恢复的损失值对网络的参数进行更新;
(4e)判断d是否等于k,若是,得到训练好的pl-dsr网络模型;否则,令d=d 1,并执行步骤(4b)。
步骤5)对pl-dsr模型进行测试:
将测试样本集作为训练好的pl-dsr模型的输入,得到对应的恢复图像。
步骤6)生成恢复图像:
将待恢复的lr图像作为pl-dsr模型的输入,得到恢复后的图像。
本发明的效果可通过以下仿真进一步说明
1.实验条件
本实验的硬件测试平台是:intelcorei7cpu,主频3.60ghz,内存8gb;软件仿真平台为:ubuntu16.0464位操作系统;软件仿真语言:python;使用深度学习框架:pytorch。
2.实验内容与结果分析
实验内容:使用本发明和ledigetal.,limetal.等人的方法对同一低分辨率图像进行恢复,在上述实验条件下,分别进行了五个仿真实验。
参照图4,可视化了三种网络提取到的特征图。图4(a)是输入的lr图像,图4(b)是srresnet生成的特征图,图4(c)是edsr生成的特征图,图4(d)是本发明方法生成的特征图。从对比结果可以看出,本方法发明的特征去噪模块可以有效的抑制特征图中的噪声,使得网络能够提取到结构化更加清晰,纹理更加清楚的特征。
为了验证软阈值(st)模块和自适应软阈值(ast)模块对恢复性能的影响,我们分别构建了pl-dsr_st和pl-dsr_ast两种网络,同时比较了edsr基准网络的恢复性能。采用的测试集是div2kvalidation,按照下式,计算峰值信噪比psnr值:
结果如表1所示。
表1三种基准网络的重构效果pnsr(db)对比表
可以看出,加入stblock之后,网络的恢复性能优于edsr基准网络,这也进一步验证了特征去噪模块的有效性。除此之外,pl-dsr_ast网络取得的psnr值最高,这说明了引入空间自适应机制可以让网络学习到更好的阈值,从而提升恢复质量。
参照图5,验证了本发明方法和edsr网络模型在不同残差块数量和通道数的性能对比图。图5(a)是当通道数固定为64时,在不同残差块数量下的性能,图5(b)是当残差块数量固定为32时,在不同通道数下的性能。可以看出,无论残差块数量和通道数取值多少,本发明方法均优于edsr网络模型。
参照图6,对比了本发明方法与现有技术的模型复杂度与性能的对比图。可以看出,本发明方法不仅恢复性能好,而且模型复杂度也低。相比于现有技术,本发明方法在模型复杂度和恢复性能两者之间能够更好的均衡。
参照图7,对比了本发明方法与现有技术的图像恢复结果对比图。可以看出,本发明方法恢复出的图像保留了更多的纹理特征,边缘更加清晰,更接近于原始的hr图像。
综上所述,本发明基于传统的凸集投影算法设计一种显示的特征去噪模块,将其引入到经典edsr网络中,构建出基于类凸集投影算法的图像恢复网络pl-dsr。该网络可以有效的抑制特征图中的噪声,提取到结构化更加清晰的特征,在减少模型复杂度的同时进一步提升了恢复效果。提升了人的视觉感官体验,可用于完成摄影、影视作品的后期制作加工。
以上描述仅是本发明的一个具体实例,并不构成对本发明的任何限制。显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可在不背离本发明原理、结构的情况下,进行形式和细节上的各种修正和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围之内。
1.一种基于类凸集投影算法的图像恢复方法,其特征在于,包括如下步骤:
(1)构建训练样本集和测试样本集:
(1a)获取div2k公开数据集中的高分辨率(hr)图像,通过hr得到n个分辨率大小为s×s的图像块,并对每个图像块通过bicubic下采样,得到与之对应的低分辨率(lr)图像块。其中,n≥200000,s=19;
(1b)获取set5,set14,bsd100,urban100,manga109公开数据集中的hr图像,对其通过bicubic下采样,得到与之对应的lr图像。
(2)构建显示的特征去噪模块:
(2a)构建特征去噪模块的核心思想:
设计特征去噪模块的核心思想是通过网络来泛化传统的软阈值算法(softthresholding)。从传统的信号处理角度讲,卷积是一个“变换”的过程,对特征去噪本质上是在变换域去噪。软阈值算法是一种用于变换域去噪的经典方法。软阈值函数gst(x)表示为:
其中x是原始系数,τ表示阈值,是一个非负常量,被定义为
(2b)设计软阈值模块:
设计软阈值模块的关键在于能够让网络自适应学习每个特征图对应的阈值,完成特征去噪的任务。整个模块的构建包括全局池化、自动编码器、阈值生成,特征去噪四部分,其中:
全局池化,包括一个全局池化层,用于提取输入特征图每个通道的平均能量;
自动编码器,包括两个简单的全连接层,用于提取经全局池化后得到的均值向量的主成分,然后生成相应的缩放因子向量;
软阈值生成,将均值向量与缩放因子相乘,得到对应的软阈值因子;
特征去噪:将生成的软阈值与输入的特征图经过软阈值函数gst,完成特征去噪。
(2c)设计自适应软阈值模块:
上述软阈值模块有两个缺陷:1)该模块不是一个轻量化模块,提取到的特征可能是冗余的。为了解决这个问题,将第一个全连接层的通道数减少为原来的
(3)构建基于类凸集投影算法的图像恢复网络模型pl-dsr:
(3a)pl-dsr模型的构建:
从传统的图像处理角度重新诠释了edsr网络模型,认为该模型与传统的凸集投影算法非常相似,却唯独少了在变换域去噪的一步。具体地:1)将用于特征提取的第一个卷积层视作为对输入图像进行了一个“变换”运算;2)edsr将提取到的特征通过了一系列的残差块,每个残差块的组成是conv-relu-conv,然后将这三层的功能分别视作为“逆变换-空间域的非负抑制-变换”的过程;3)级联多个残差块被视作为该过程的反复迭代。其次,将自适应软阈值模块应用到edsr网络中,得到pl-dsr网络模型,完成对特征图进行显示的去噪,能够提取到结构化更加清晰的特征,在减小网络复杂度的同时获得比edsr更好的恢复效果。
(3b)定义图像恢复网络模型的损失函数;
定义l1范数恢复损失函数l:
其中,n是训练样本总数,
(4)对pl-dsr模型进行训练:
将训练样本集中的lr-hr图像块作为网络的输入,对pl-dsr模型进行k次迭代训练,得到训练好的模型。其中,k≥50000;
(5)对pl-dsr模型进行测试:
将测试样本集作为训练好的pl-dsr模型的输入,得到对应的恢复图像。
(6)生成恢复图像:
将待恢复的lr图像作为pl-dsr模型的输入,得到恢复后的图像。
2.根据权利要求1所述的基于类凸集投影算法的图像恢复方法,其特征在于,步骤(2)中所述的软阈值模块和自适应软阈值模块,其具体结构分别为:
(2a)软阈值模块:
软阈值模块的构建包括全局池化、自动编码器、阈值生成,特征去噪四部分,其详细描述如下:
假定x∈rw×h×c是输入的特征图,其中w,h和c分别代表其宽度,高度和通道数。xc∈rw×h×c表示x的第c个通道,x=[x1,…,xc,…,xc]。首先,将x进行绝对值并通过一个全局池化层得到长度为c的向量u:
uc是u的第c个分量。然后,利用两个全连接(fc)层提取u的主成分v∈rc:
v=w2×relu(w1×u)
其中,w1∈rw×h×c和w2∈rw×h×c分别表示这两个fc层的系数,relu是一种非线性激活函数,relu(x)=max(0,x)。其次,将v通过一个sigmoid层得到相应的缩放因子向量z∈rc:
z=sigmoid(v)
之后,将u和z的第c个分量uc和zc相乘便得到了特征图xc的阈值τc:
τc=uc·zc
那么输入特征图x对应的阈值向量t=[τ1,…,τc,…,τc]。最后利用软阈值函数gst就得到输出的特征图y=[y1,…,yc,…,yc]:
yc(i,j)=gst(xc(i,j),τc)
(2b)自适应软阈值模块:
针对软阈值模块的缺陷,采用了空间自适应机制,具体的,通过一个简单的3×3卷积层以及sigmoid激活,便得到了一个空间相关性矩阵θ∈rw×h。该模块对于输入特征图x在(i,j,c)点的阈值τc(i,j)为:
τc(i,j)=θ(i,j)·uc·zc。
3.根据权利要求1所述的基于类凸集投影算法的图像恢复方法,其特征在于,步骤(3a)中所述的pl-dsr网络模型,其具体结构为:
pl-dsr网络模型包括特征提取部分(第一个卷积层),非线性映射部分(多个残差块,每个残差块的组成为conv-relu-conv-astblock),恢复部分(上采样模块和输出的卷积层)。对于每个模块,我们都从传统的图像处理角度给予了泛化的解释,并跟凸集投影算法做了比较,展示了两者之间的联系。具体的:
1)将用于特征提取的卷积层视作为对输入图像进行“变换”运算;
2)将每个残差块的功能分别视作为“逆变换-空间域的非负抑制-变换-变换域去噪”的过程;
3)级联多个残差块被视作为该过程的反复迭代。
各个部分的详细结构分别为:
特征提取部分:输入层→第一卷积层
非线性映射部分:第一卷积层的输出→第一残差块→第二残差块→第三残差块→第四残差块→第五残差块→第六残差块→第七残差块→第八残差块→第九残差块→第十残差块→第十一残差块→第十二残差块→第十三残差块→第十四残差块→第十五残差块→第十六残差块→第十七残差块→第十八残差块→第十九残差块→第二十残差块→第二十一残差块→第二十二残差块→第二十三残差块→第二十四残差块→第二十五残差块→第二十六残差块→第二十七残差块→第二十八残差块→第二十九残差块→第三十残差块→第三十一残差块→第三十二残差块
恢复部分:第三十二残差块的输出→第一上采样层→卷积层→第二上采样层→卷积层→卷积层。
4.根据权利要求1所述的基于类凸集投影算法的图像恢复方法,其特征在于,步骤(4)中所述的对pl-dsr网络模型进行训练,实现步骤为:
(4a)初始化网络参数,设置迭代次数d,最大迭代次数为k,k≥50000,并令d=1;
(4b)将lr和hr图像块同时输入到网络中,得到网络输出的恢复图像块sr;
(4c)根据图像恢复损失函数l计算sr图像块与hr图像块之间的损失,用于保留原始hr图像块的结构化特征;
(4d)使用梯度下降法,通过恢复的损失值对网络的参数进行更新;
(4e)判断d是否等于k,若是,得到训练好的pl-dsr网络模型;否则,令d=d 1,并执行步骤(4b)。
技术总结