本发明涉及一种基于可逆网络的图像分辨率压缩及重建方法,属于图像处理领域。
背景技术:
图像数据量的庞大不利于图像的存储、传输和处理,所以需要对图像进行一定的压缩,图像压缩就是指以较少的比特有损或无损地表示原来的像素矩阵的技术。图像分辨率压缩是属于图像压缩的一种,指的是通过一些方法来减小高分辨率图像的分辨率,从而得到低分辨率图像。
比如,当在网页上快速浏览图像或在一些小型展示设备上浏览图像时,需要对原始高分辨率图像进行分辨率的压缩来匹配这些应用对于图像数据大小的需求,为了更好的浏览效果,压缩后的图像要具有尽可能好的视觉效果。另外,在减小保存图像所需的内存以及在带宽较小的情况下传输图像时,也会对图像进行分辨率的压缩,对于这类应用需要压缩后的图像能够保存尽可能多的原图中的信息,即还原重建后的图像能够和原始高分辨率图像尽可能的相似。
通常,我们利用重采样和简单的插值法(例如双立方差值)进行分辨率的压缩以及高分辨率的还原重建,这些方法虽然计算高效,但是得到的分辨率压缩结果却具有多种视觉伪影,例如混叠和模糊,并且由于压缩后的图像中保留的原图信息较少,还原后的高分辨率图像也往往与原始高分辨率图像相差较大。
上述传统的分辨率压缩方法(即利用重采样和简单的插值法进行分辨率的压缩以及高分辨率的还原重建的方法)也称为图像下采样,主要解决的是压缩后的图像的视觉感知质量问题。例如文献(d.p.mitchellanda.n.netravali,“reconstructionfiltersincomputer-graphics,”inproc.acmsiggraph,1988,pp.221–228.)对图像先进行过滤,再进行分辨率的压缩。但是这些基于过滤的方法通常需要一定的最小内核大小才能有效,并且不能保存小尺度的细节和重复模式。为了能够捕获大多数感知上的重要细节,一些方法(如a.c.
一般的超分辨率算法被分为三类:基于插值,基于重建和基于学习的算法。其中,基于深度学习的超分辨率算法(c.dong,c.c.loy,k.he,andx.tang,“learningadeepconvolutionalnetworkforimagesuper-resolution,”inproc.eur.conf.comput.vis.cham,switzerland:springer,2014,pp.184–199.)以其优越的性能吸引了众多研究者的关注。但是该基于深度学习的超分辨率算法尽管具有相对优越的性能,也和其他超分辨率方法一样,都只是对已经经过下采样的低分辨率图像进行高分辨率重建,没有对这个下采样过程本身加以利用,因此无法得到与原图更相似的重建结果。
另外,也有一些方法同时考虑了图像分辨率压缩过程和对应重建过程。例如文献(liy,liud,lih,etal.learningaconvolutionalneuralnetworkforimagecompact-resolution[j].ieeetransactionsonimageprocessing,2018:1-1.)提出了利用深度卷积神经网络来进行图像分辨率压缩以及对应的高分辨率重建的方法。但是由于一般的卷积神经网络的传播属于特征提取的过程,往往伴随着信息的丢失,压缩后的低分辨率图像并没有保留较多的原始图像中的信息,并且在对压缩图像进行高分辨率还原时,也没有对信息损失的过程加以利用,而是利用已经损失信息后的图像来‘创造’出原图中的信息,因此得到的高分辨率还原图像与原始图像之间依然存在不小的差异。
技术实现要素:
为了解决目前存在的图像压缩与重建方法得到高分辨率还原图像与原始图像之间存在差异问题,本发明提供了一种图像分辨率压缩及重建方法。
本发明的第一个目的在于提供一种图像分辨率压缩及重建方法,所述方法包括:
建模阶段:利用卷积神经网络与可逆网络构建进行图像分辨率压缩以及重建的网络模型;
选择训练数据集阶段:选择训练数据集,所述训练数据集包括高分辨率图像和对应的目标低分辨率图像;
模型训练阶段:将高分辨率图像输入到进行分辨率压缩的网络中生成低分辨率压缩图像,将与高分辨率图像对应的目标低分辨率图像输入到进行图像分辨率重建的网络中得到高分辨率重建图像;利用生成的低分辨率压缩图像和得到的高分辨率重建图像分别与目标低分辨率图像和高分辨率图像之间的差异设计优化的目标函数,通过最小化该函数的值来对构建的分别进行图像分辨率压缩和重建的网络模型的参数进行更新,提升网络进行图像分辨率压缩以及重建的能力;
图像压缩和重建阶段:利用更新参数后的分别进行图像分辨率压缩和重建的网络模型对待压缩和重建的图像进行相应的压缩和重建。
可选的,所述方法包括:
(1)选择训练数据集d:选择一个用来训练网络模型的数据集d,该数据集需包括多张尺寸为w×h×c的高分辨率图像以及对应的尺寸为
其中,对应的目标低分辨率图像为对高分辨率图像进行基于双立方插值的下采样得到的压缩图像;
(2)建立可逆模块:可逆模块由改进的加性耦合层组成,其输出由以下步骤得到:
改进的加性耦合层正向过程:对于尺寸为b×w×h×n_c的输入数据x,其中b、w、h和n_c分别表示输入数据的每批次数量、宽度、高度以及通道数,将其沿着通道处分为尺寸为
y1=x1+f(x2)(1)
y2=x2+g(y1)(2)
其中,f(x2)和g(y1)分别代表没有限制且不改变数据尺寸的非线性映射;将得到的y1和y2沿着通道拼接成尺寸为b×w×h×n_c的输出y;
所述改进的加性耦合层正向过程的输入数据x是由步骤中(5)中尺寸为b×w×h×c的高分辨率图像批数据ihr_b经过步骤(3)中所述用于分辨率压缩的网络crrevnet的第一层传播之后得到的尺寸为b×w×h×n_c的中间批数据;
改进的加性耦合层逆向过程:对于尺寸为b×w×h×n_c的输入数据y′,将其沿着通道处分为尺寸为
x′2=y′2-g(y′1)(3)
x′1=y′1-f(x′2)(4)
将得到的x′1和x′2沿着通道拼接成尺寸为b×w×h×n_c的输出x′;
所述改进的加性耦合层逆向过程的输入数据y′是由步骤(6)中得到的尺寸为
(3)建立网络模型:网络模型一共由两个网络组成:第一个网络是进行图像分辨率压缩的crrevnet,其第一层为卷积层,核为3×3,步长为1,输出通道为n_c;然后是由n_r个步骤(2)中的可逆模块组成的中间层;最后一层为一个卷积层,核为3×3,步长为2,输出通道为3;
第二个网络是进行图像高分辨率重建的srrevnet,其第一层为转置卷积层,核为3×3,步长为2,输出通道为n_c;然后是由n_r个步骤(2)中的可逆模块的逆向过程组成的中间层;最后一层是一个卷积层,核为3×3,步长为1,输出通道为3;
(4)设置训练参数:设置学习率为α,设置迭代次数k的初值为0;
(5)建立批数据:从数据集d中随机选择b张高分辨率图像,然后随机的从里面裁剪出尺寸为w×h×c的图像块,其中w、h和c分别为裁剪图像块的宽度、高度和通道数,然后将b个图像块拼接成尺寸为b×w×h×c的高分辨率图像批数据ihr_b,然后从相应的b张低分辨率图像中裁剪出对应的尺寸为
(6)生成压缩图像:将图像批数据ihr_b输入网络crrevnet得到尺寸为
(7)生成重建图像:将图像批数据icr_b输入网络srrevnet得到尺寸为b×w×h×c的高分辨率重建图像批数据isr_b;
(8)计算目标损失:利用得到的低分辨率压缩图像批数据icr_b和目标低分辨率图像批数据ilr_b计算正则化损失lossregul:
其中,x和y分别表示图像中单个像素的横坐标和纵坐标;
利用得到的高分辨率重建图像批数据isr_b和原始高分辨率图像批数据ihr_b计算重建损失lossrecon:
将正则化损失lossregul和重建损失lossrecon进行一个加权得到目标损失loss:
loss=lossrecon+λlossregul(7)
其中λ表示了正则化损失在目标损失中占有的权重;
(9)更新网络模型的参数:利用目标损失loss对网络模型的所有参数wm进行求导得到wm关于loss的导数δwm,然后利用随机梯度下降法或momentum梯度下降法并以学习率为α按下述公式(8)对进行网络模型的参数进行更新:
wm=wm-α·δwm(8)
(10)迭代次数k加1,并判断加1后的迭代次数是否是1万的整数倍,如果是则将学习率α减半,否则不改变学习率α;
(11)判断迭代次数k是否达到了10万次,如果是则结束迭代并保存训练好的网络模型crrevnet以及srrevnet的参数,否则跳转至步骤(5);
(12)将需要进行分辨率压缩的图像输入到训练好的crrevnet中得到低分辨率压缩图像,将低分辨率压缩图像输入到训练好的srrevnet中得到高分辨率重建图像。
可选的,所述用来训练网络模型的数据集d中至少包括800张尺寸为w×h×c的高分辨率图像和对应的尺寸为
可选的,步骤(3)中网络crrevnet和srrevnet中第一层输出通道数n_c的取值范围为32<n_c<128。
可选的,步骤(3)中网络crrevnet和srrevnet中间层里可逆模块的数量n_r的取值范围为3<n_r<13。
可选的,步骤(4)和步骤(9)中梯度下降法初始学习率a取值范围为[0.00005,0.0005]。
可选的,步骤(5)批数据的每批次数量b的取值范围为16<b<36。
可选的,步骤(8)中λ的取值范围为0.01<λ<1。
可选的,步骤(9)中梯度下降法包括随机梯度下降法和momentum梯度下降法。
本发明的第二个目的在于提供上述图像分辨率压缩及重建方法所建立的网络模型。
本发明的第三个目的在于提供上述图像分辨率压缩及重建方法以及所建立的网络模型在图像处理领域内的应用。
本发明有益效果是:
(1)本发明引入了可逆网络来构建进行图像分辨率压缩以及重建的网络模型,由于两个网络共享一个可逆网络的参数,因此减小了图像分辨率压缩以及重建网络模型的规模,节约了保存模型所需的内存。
(2)基于可逆网络的信息无损传播特性,在得到的低分辨率压缩图像中能够保存更多来自原始高分辨率图像中的信息。
(3)基于可逆网络的双射特性,可以利用分辨率压缩过程的逆过程来指导高分辨率重建,从压缩图像中尽可能多地‘恢复’原始图像中的信息,从而得到与原始图像尽可能相似的重建图像。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法的整体流程图。
图2是耦合层中非线性映射的结构示意图。
图3是从set5中选取的由本发明方法得到的压缩及还原图像与其他方法的视觉效果对比图。
图4是从set14中选取的由本发明方法得到的压缩及还原图像与其他方法的视觉效果对比图。
图5是从bsd100中选取的由本发明方法得到的压缩及还原图像与其他方法的视觉效果对比图。
图6是从urban100中选取的由本发明方法得到的压缩及还原图像与其他方法的视觉效果对比图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
首先对本申请涉及的可逆网络相关内容进行介绍如下:
可逆网络是具有可逆结构的网络。对于可逆网络来说,输入数据经正向传播得到输出后,可以通过逆向传播由输出以与正向传播相反的过程得到最初的输入数据,在这个过程中输入数据没有任何信息的丢失。
较早前,就有论文应用神经网络中的某些可逆特性,例如利用随机梯度下降的可逆性质对模型的超参数进行微调。近些年,又出现了很多研究与利用可逆网络的论文。nice(l.dinh,d.krueger,y.bengio,nice:non-linearindependentcomponentsestimation,arxiv)和rnvp(l.dinh,s.d.jascha,s.bengio.densityestimationusingrealnvp.arxiv)将可逆网络与最大似然估计相结合提出了基于流的生成模型,利用网络的可逆特性,通过最大化生成过程的逆过程得到的潜变量的对数似然函数值来优化模型生成能力与拟合真实数据分布的能力。nice提出了一种加性耦合层的结构来实现可逆。在加性耦合层中,每一层的输入x从通道或者空间上被分成两个尺寸相同的部分x1和x2,通过下面公式计算输出:
y1=x1+f(x2)(1)
y2=x2+g(y1)(2)
将y1和y2拼接得到输出y。在网络逆向传播时,将该层输出y以与拼接相反的方式分成两个部分y1和y2,通过下面公式得到输入x:
x′2=y′2-g(y′1)(3)
x′1=y′1-f(x′2)(4)
在rnvp中,作者首先引入了卷积操作,为了保证卷积操作所需的局部相关性,只能对图像进行通道处或空间棋盘式分割。其次,作者提出了更为一般的仿射耦合层。在仿射耦合层中,在每一层输入被分割成两部分x1和x2后,通过下面公式得到输出y的组成部分:
y1=x1(9)
然后将y1和y2沿着通道拼接得到y。在逆向传播时,将y分割成y1和y2,通过下面公式得到输入x的组成部分:
x1=y1(11)
x2=(y2-g(y1))/exp(f(y1))(12)
其中
除了应用到生成模型上,研究者们还利用可逆网络来解决神经网络反向传播时需要保存每一层的激活值用以计算梯度的问题以及成对图像翻译的问题。
实施例一:
本实施例提供一种基于可逆网络的图像分辨率压缩及重建方法,参见图1,所述方法包括:
步骤1.选择训练数据集d:
选择一个用来训练网络模型的数据集d,该数据集需要包括多张尺寸为w×h×c的高分辨率图像以及对应的尺寸为
数据集d中的目标低分辨率图像是通过对高分辨率图像进行基于双立方插值的下采样得到的;
具体的,本实施例提供的用来训练网络模型的数据集d包括800张尺寸为w×h×c的高分辨率图像以及对应尺寸为
步骤2.建立可逆模块:
可逆模块由改进的加性耦合层组成,其输出由以下步骤得到:
改进的加性耦合层正向过程:对于尺寸为b×w×h×n_c的输入数据x,其中b、w、h和n_c分别表示输入数据的每批次数量、宽度、高度以及通道数,将其沿着通道处分为尺寸为
y1=x1+f(x2)(1)
y2=x2+g(y1)(2)
其中,f(x2)和g(y1)分别代表没有限制且不改变数据尺寸的非线性映射;将得到的y1和y2沿着通道拼接成尺寸为b×w×h×n_c的输出y;
实际应用中,正向过程的输入数据x是由步骤中5中尺寸为b×w×h×c的高分辨率图像批数据ihr_b经过步骤3中所述用于分辨率压缩的网络crrevnet的第一层传播之后得到的尺寸为b×w×h×n_c的中间批数据。
改进的加性耦合层逆向过程:对于尺寸为b×w×h×n_c的输入数据y′,将其沿着通道处分为尺寸为
x′2=y′2-g(y′1)(3)
x′1=y′1-f(x′2)(4)
将得到的x′1和x′2沿着通道拼接成尺寸为b×w×h×n_c的输出x′。
实际应用中,逆向过程的输入数据y′是由步骤6中得到的尺寸为
步骤3.建立网络模型:
模型一共由两个网络组成:第一个网络是进行图像分辨率压缩的crrevnet,其第一层为卷积层,核为3×3,步长为1,输出通道为n_c;然后是由n_r个步骤2中的可逆模块组成的中间层;最后一层为一个卷积层,核为3×3,步长为2,输出通道为3。
第二个网络是进行图像高分辨率重建的srrevnet,其第一层为转置卷积层,核为3×3,步长为2,输出通道为n_c;然后是由n_r个步骤2中的可逆模块的逆向过程组成的中间层;
最后一层是一个卷积层,核为3×3,步长为1,输出通道为3;
步骤4.设置训练参数:
设置学习率为a以及迭代次数k的初始值为0;
步骤5.建立批数据:
从数据集d中随机选择b张高分辨率图像然后随机的从里面裁剪出尺寸为w×h×c的图像块,其中w、h和c分别为裁剪图像块的宽度、高度和通道数,然后将b个图像块拼接成尺寸为b×w×h×c的高分辨率图像批数据ihr_b,然后从相应的b张低分辨率图像中裁剪出对应的尺寸为
步骤6.生成压缩图像:将图像批数据ihr_b输入网络crrevnet得到尺寸为
步骤7.生成重建图像:将图像批数据icr_b输入网络srrevnet得到尺寸为b×w×h×c的高分辨率重建图像批数据isr_b;
步骤8.计算目标损失:利用得到的低分辨率压缩图像批数据icr_b和目标低分辨率图像批数据ilr_b计算正则化损失lossregul:
其中,x和y分别表示图像中单个像素的横坐标和纵坐标。
利用得到的高分辨率重建图像批数据isr_b和原始高分辨率图像批数据ihr_b计算重建损失lossrecon:
将正则化损失lossregul和重建损失lossrecon进行一个加权得到目标损失:
loss=lossrecon+λlossregul(7)
其中λ表示了正则化损失在目标损失中占有的权重,0.01<λ<1;
步骤9.更新网络模型的参数:利用loss对网络模型的所有参数wm进行求导得到wm关于loss的导数δwm,然后利用随机梯度下降法或momentum梯度下降法并以学习率为α按下述公式(8)对进行网络模型的参数进行更新:
wm=wm-α·δwm(8)
步骤10.迭代次数k加1,并判断迭代次数是否是1万的整数倍,如果是则将学习率α减半,否则不改变学习率;
步骤11.判断迭代次数是否达到了10万次,如果是则结束迭代并保存训练好的网络模型crrevnet以及srrevnet的参数,否则跳转至步骤(5);
步骤12.将需要进行分辨率压缩的图像输入到训练好的crrevnet中得到低分辨率压缩图像,将低分辨率压缩图像输入到训练好的srrevnet中得到高分辨率重建图像。
本发明的效果可通过以下仿真实验进一步说明。
1、仿真条件及参数
在整个实验中,本实施例中采用上述基于可逆网络的图像分辨率压缩及重建方法进行图像压缩的下采样因子为2×,即r为2。训练集的图片来自于div2k数据集,其包括了800张高分辨率的训练图像,100张高分辨率的验证图像,100张高分辨率的测试图像,利用训练图像以及验证图像一共900张图像作为训练集中高分辨率的部分,然后将这900张图像进行基于双立方插值的下采样得到长宽各为原来
利用如图2所示的结构来实现步骤2中耦合层中的非线性映射f和g,即由两端的卷积层以及中间的relu激活函数层构成,其中卷积层的卷积核为3×3,步长为1,输出通道和输入通道相同。
步骤3中网络模型crrevnet和srrevnet第一层的输出通道大小设置为n_c=64,它们中间层的可逆模块数量设置为n_r=8。
步骤4以及步骤9中采用的学习率设置为α=0.0001。步骤5中的每批次图像数量设置为b=24。
步骤8中目标损失里正则化损失的权重设置为λ=0.7。完成训练的模型在set5,set14,bsd100以及urban100这四个在超分辨率领域广泛使用的基准数据集进行了测试。
2、仿真内容及结果分析
仿真实验中,本发明方法与其他一些能够进行分辨率压缩以及重建的方法进行了对比分析,实验主要从以下方面展开。
实验1:得到的重建图像在评价指标psnr(峰值信噪比)以及ssim(结构相似性)上的定量对比:
峰值信噪比psnr表示信号的强度与背景噪声强度的比值,图像压缩中典型的峰值信噪比值在30db到40db之间,愈高愈好。
结构相似性ssim是一种衡量两幅图像相似度的指标,结构相似性的范围为0到1,当两张图像一模一样时,ssim的值等于1,因此ssim越趋近于1则表示所得到的高分辨率还原图像与原始图像越接近,所使用的图像压缩与重建方法越好。
将由本发明方法中训练好的模型生成的重建图像与其他方法得到的重建图像进行了基于评价指标的定量对比:这里其他方法包括bilinear插值法,bicubic插值法,lanczos插值法以及文献(liy,liud,lih,etal.learningaconvolutionalneuralnetworkforimagecompact-resolution[j].ieeetransactionsonimageprocessing,2018:1-1.)中分别用于分辨率压缩以及重建的cnn_cr和cnn_sr。
下述表1-表4中“↓”和“↑”分别表示图像分辨率压缩以及重建过程。
表1:本发明方法在set5数据集上与其他方法的对比
表2:本发明方法在set14数据集上psnr和ssim值的对比
表3:本发明方法在bsd100数据集上psnr和ssim值的对比
表4:本发明方法在urban100数据集上psnr和ssim值的对比
由上面表1-表4可知,本发明方法在每个基准数据集上都取得了最好的定量比较结果。
另外,从文献(liy,liud,lih,etal.learningaconvolutionalneuralnetworkforimagecompact-resolution[j].ieeetransactionsonimageprocessing,2018:1-1.)中得知,cnn_cr和cnn_sr的参数一共约为151万个。而本发明方法中,由于两个网络共享可逆网络,可逆网络的参数可共享,因而参数大大减少,发明人实验过程中,统计本发明所提出的crrevnet和srrevnet的参数一共约30万个。因此,本发明方法能够在减小模型规模的基础上,提升对于压缩图像的重建能力。
实验2:本发明方法得到的压缩及重建图像与其他方法在视觉效果上的对比
将由本发明方法中训练好的模型生成的压缩以及重建图像与其他方法得到的压缩以及重建图像进行视觉效果上的对比:
图3是本发明方法和其他方法在set5上的视觉效果对比,其中图3(a)为set5中选取的原始高分辨率图像,图3(b)为从原始图像裁剪下来的图像块,图3(c)-图3(g)是由不同方法得到压缩及重建图像块,其中:图3(c)来自bilinear;图3(d)来自bicubic;图3(e)来自lanczos;图3(f)来自cnn_cr和cnn_sr;图3(g)来自本发明方法;
由图3可以看出:在set5数据集小孩脸图像上,本发明方法得到的重建图像具有更细致的睫毛条纹,纹理也更加锐利。
图4是本发明方法和其他方法在set14上的视觉效果对比,其中图4(a)为set14中选取的原始高分辨率图像,图4(b)为从原始图像裁剪下来的图像块,图4(c)-图4(g)是由不同方法得到压缩及重建图像块,其中:图4(c)来自bilinear;图4(d)来自bicubic;图4(e)来自lanczos;
图4(f)来自cnn_cr和cnn_sr;图4(g)来自本发明方法;
由图4可以看出:在set14数据集女性图像上,本发明方法得到的重建图像在帽子纹理上具有更丰富的细节,与原图更加接近。
图5是本发明方法和其他方法在bsd100上的视觉效果对比,其中图5(a)为bsd100中选取的原始高分辨率图像,图5(b)为从原始图像裁剪下来的图像块,图5(c)-图5(g)是由不同方法得到压缩及重建图像块,其中:图5(c)来自bilinear;图5(d)来自bicubic;图5(e)来自lanczos;图5(f)来自cnn_cr和cnn_sr;图5(g)来自本发明方法;
由图5可以看出:在bsd100数据集蛇图像上,本发明方法得到的蛇头部图像块具有更多且更锐利的纹理,而其他图像都相对模糊。
图6是本发明方法和其他方法在urban100上的视觉效果对比,其中图6(a)为urban100中选取的原始高分辨率图像,图6(b)为从原始图像裁剪下来的图像块,图6(c)-图6(g)是由不同方法得到压缩及重建图像块,其中:图6(c)来自bilinear;图6(d)来自bicubic;图6(e)来自lanczos;图6(f)来自cnn_cr和cnn_sr;图6(g)来自本发明方法;
由图6可以看出:在urban100数据集地铁站图像上,本发明方法得到的钟表的图像中的刻度与指针都清晰可见,而其他图像却比较模糊,钟表的刻度也不明显。
从图3-6我们也能看出,除了bilinear方法之外,由bicubic、lanczos、cnn_cr以及本发明方法得到的压缩图像都具有较好的视觉效果。
通过在得到的压缩图像以及重建图像上的定性对比,说明本发明方法能够在得到具有良好的视觉效果的低分辨率压缩图像的基础上生成与原图更相似的重建图像。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。