本发明是一种基于深度学习(wgan)的图像修复(imageinpainting)改进方法,涉及到dcgan,wgan模型优化等领域。具体涉及领域包括:基于convolutionalneuralnetwork(cnn)以及dcgan的方法经常产生边界伪影,扭曲的结构和与周围区域不一致的模糊纹理、训练缓慢、训练结果不稳定等问题。
背景技术:
现阶段,图像修复与深度学习的结合已然成为计算机视觉方面的研究热点之一。在解决基于语境的图像语义修复问题上,就目前的发展形势而言仍有很大的局限性。由于算法模型记忆的局限性、训练的不稳定性和样本多样性的缺乏等限制因素,基于深度学习的图像修复算法在图像修复过程中仍然会遇到修复图像与原始图像融合不佳的难题。
对以往前馈神经网络中卷积神经网络(convolutionalneuralnetwork,以下简称cnn)的研究表明,由于每个人工神经元仅响应一部分覆盖范围内周围的单元,使得cnn网络在大型图像处理中具有出色表现。而近年来,基于cnn的深度学习网络被证明其有能力在高层上捕获图像的抽象信息。同时,在纹理合成和图像风格转换的研究中,证明了经过训练的cnn网络提取的图像特征可以作为目标函数的一部分,这表明一个生成网络生成的图片可以与目标图片在语义上更加相似。再加上生成式对抗网络(generativeadversarialnetwork,以下简称gan)的广泛研究,证明了通过对抗训练可以强化生成网络生成图像的视觉效果。基于以上研究背景知识使得基于深度学习的图像修复方法在近期得到了广泛的实验。
自此以来,按照解决该问题采用方法类型的不同,可以分为基于偏微分和变分的方法、起源于纹理合成技术基于样本图像的修复方法、基于变换域的图像修复方法以及混合的图像修复方法,基于深度学习的修复方法是近年来提出的一类新兴方法。基于偏微分和变分的方法、基于变换域的方法和混合的方法在小尺寸破损图像修复中能取得较好的修复效果;基于样本的方法在大区域破坏的图像修复中可以取得相对好的结果,特别是待修复区域可以通过已知样本区域很好地表示时非常有效。虽然基于深度学习的修复方法的研究目前尚处于初始阶段,但这类方法具有深度学习技术本身的特点,即堆叠起来的包含大量隐藏层的深度神经网络可以通过海量数据的训练学习得到训练样本间的非线性复杂关系的映射,这正是图像修复中基于图像内容的语义修复所期望解决的问题,特别是在大区域的图像修复中有时可以取得非常惊人的结果。
在图像修复中,对较小区域的修复中一般以考虑边界的连贯性,区域的一致性为优先。其基本思想是以局部信息为基础进行扩散修复。然而,实验表明,这种思维很难应用到大面积的修复中。这意味着,在大范围的修复中,本发明通常首先考虑修复对象的高级语义信息。因此,基于大量先验信息的绘制区域过程积累了大量的信息。重点解决了图像中高层次语义信息的嵌入问题。
技术实现要素:
针对上述问题,本发明提供了一种基于wgan网络进行图像修复的方法,本发明结合以往利用deepconvolutionalgenerativeadversarialnetworks(以下简称dcgan)进行图像修复的成果,改用wgan网络并对隐藏层网络进行调整。除此以外,尝试用adam算法代替传统的随机梯度下降算法和其他算法来对近年来所流行的训练进行优化,进一步提高图像修改的效率和精度。
本发明的技术方案是:一种基于wgan网络进行图像修复的方法,具体步骤包括如下:
步骤(1.1)、构建浅层卷积网络结构:使用空洞卷积提取收集图像的空间特征,将得到的空间特征输入到深层神经网络中;
步骤(1.2)、构建深层神经网络:通过重建损失和gan损失来训练深层神经网络;
步骤(1.3)、优化参数及函数算法:使用不在任何一点使得导数突变且会产生负输出的elu作为激活函数;
步骤(1.4)、代码设计:在生成器未收敛前,使用重建损失对其训练;
步骤(1.5)、性能测试:对损坏的图像进行图像修复以获得最终修复结果。
进一步的,在所述步骤(1.1)中,构建浅层卷积网络结构的具体操作方法如下:
首先,收集图像,并将其输入到浅层神经网络中使用空洞卷积提取空间特征;其次,将得到的空间特征输入至深层神经网络中进行提取和修复,并将修复的结果经过训练解码器进行图像复原;
其中,所述的训练编码器具体操作包括:前馈传播和整体参数调优;所述的前馈传播即将图像输入到编码器中并最终得到复原的数据;在前馈传播完成后,通过误差反向传播算法对整个编码器进行微调。
进一步,在所述步骤(1.3)中,通过优化参数和函数算法:其中,所述的激活函数具体如下式所述:
进一步,在步骤(1.4)中,所述代码设计的具体操作方法如下:
首先,从训练数据集中随机挑选出若干张图片x;
接着,声明一个变量t,同时满足t服从0-1的均匀分布;
然后,挑选若干个掩膜给x,顺序进行z=x*m、
其次,为x随机生成掩膜m,更新生成器g,计算l1损失和两个对抗损失,上述步骤一直进行到生成器g收敛为止;
最后,对生成器g是否最终收敛进行确定,如是,则进入步骤(1.5),进行性能测试;如否,则返回步骤(1.3),继续进行参数及函数算法的优化,再通过设计代码确定生成器g是否收敛。
进一步的,在所述步骤(1.5)中,所述性能评估的具体方法为:首先,从imagenet测试数据集中随机选择300张图像,并为每个图像生成规整的矩形掩膜;然后,对损坏的图像进行图像修复以获得最终修复结果。
本发明的有益效果是:(1)、本发明要解决的技术问题:本发明关注的问题主要是图像修复结果在其修复边缘和内容上的结构扭曲和纹理模糊;(2)、本发明相对应的技术方案:通过引入浅层与深层两层网络以及包含语义关注损失和感知关注损失两方面损失的损失函数来达到待修补图像在语义与视觉上的形象逼真与流畅;(3)、本发明所能达到的效果:通过本方法得到的修复图像将更加自然,在修复结果上更能够令人满意;主要从imagenet测试数据集中随机选择300张图像,并为每个图像生成规整的矩形mask;然后,对损坏的图像运行每种方法以获得最终结果;训练中,使用最大孔尺寸为128×128的分辨率为256×256的图像;两种方法都基于全卷积神经网络;报告的所有结果都是经过训练的模型的直接输出,而未经过任何后期处理;使用常见的评估指标(即l1,l2,psnr和ssim)(使用像素空间中的完整图像和地面真实图像计算得出)来量化模型的性能。
附图说明
图1是本发明的结构流程图;
图2是本发明中gan基本结构示意图;
图3是本发明中wgan基本结构示意图;
图4是本发明中判别器网络结构图;
图5是本发明中矩形缺失区域修复结果示意图;
图6本发明中elu函数图像和relu区别于x负半轴区域示意图;
图7本发明中使用imagenet数据集综合评测对比图。
具体实施方式
为了更清楚地说明本发明的技术方案,下面结合附图对本发明的技术方案做进一步的详细说明:
具体的;一种基于wgan网络进行图像修复的方法,其流程示意图如图1所示,具体步骤包括如下:
步骤(1.1)、构建浅层卷积网络结构:使用空洞卷积提取收集图像的空间特征,将得到的空间特征输入到深层神经网络中;
步骤(1.2)、构建深层神经网络:通过重建损失和gan损失来训练深层神经网络;
步骤(1.3)、优化参数及函数算法:使用不在任何一点使得导数突变且会产生负输出的elu作为激活函数;
步骤(1.4)、代码设计:在生成器未收敛前,使用重建损失对其训练;
步骤(1.5)、性能测试:对损坏的图像进行图像修复以获得最终修复结果。
进一步的,在所述步骤(1.1)中,构建浅层卷积网络结构的具体操作方法如下:
首先,收集图像,并将其输入到浅层神经网络中使用空洞卷积提取空间特征;其次,将得到的空间特征输入至深层神经网络中进行提取和修复,并将修复的结果经过训练解码器进行图像复原;
其中,所述的训练编码器具体操作包括:前馈传播和整体参数调优;所述的前馈传播即将图像输入到编码器中并最终得到复原的数据;在前馈传播完成后,通过误差反向传播算法对整个编码器进行微调。
进一步的,在所述步骤(1.2)中,所述构建深层神经网络的具体方法为:通过重建损失和gan损失来训练深层网络,深层网络能够看到比具有缺失区域的原始图像更加完整的场景,因此深层编码器可以比浅层网络学习到更好的特征表示;这两大部分的网络结构是受到剩余学习和深度监督学习的启发;本发明将wgan-gp损失添加到深层网络的去,因为wgan-gp的损失在图像生成任务方面是优于现在的gan损失的。
进一步的,在所述步骤(1.3)中,通过优化参数和函数算法:区别于其他gan方法中使用relu作为激活函数,本发明使用不在任何一点使得导数突变且会产生负输出的elu作为激活函数;相比较于relu,elu不在任何一个点使得导数突变,并且可以产生负输出;这个函数倾向于以更快的速度将结果收敛到零,往往可以取得更加精确的结果;
其中,所述的激活函数具体如下式所述:
不同于以往的图像修复网络,仅依赖dcgan做对抗监督,本发明使用wgan-gp方法;以wgan-gp损失作为图像修复任务的损失函数;此方法和em距离结合使用时表现较好;
本发明通过使用地球坐标距离(earth-mover距离)来比较生成的数据分布和实际数据分布;通过应用kantorovich-rubinstein构建后的学习目标函数如下:
其中;d*表示满足利普希茨连续条件的函数集合;pg表示隐式定义的分布,z表示生成器的输入;
其在神经网络中的结构如下:
max(ex~pr[fw(x)]-ez~p(z)[fw(gθ(z))])
该神经网络与gan中的鉴别器非常相似;只有几个细微的差别:1、鉴别器在最后一层去掉了sigmoid函数,鉴别器的目标函数中没有日志项;2、每次迭代更新后,鉴别器都必须在一定范围内截断参数;
通过引入梯度惩罚s:
进一步的,在步骤(1.4)中,所述代码设计的操作方法如下:
具体的:
首先,从训练数据集中随机挑选出若干张图片x;
接着,声明一个变量t,同时满足t服从0-1的均匀分布;
然后,挑选若干个掩膜给x,顺序进行z=x*m、
其次,为x随机生成掩膜m,更新生成器g,计算l1损失和两个对抗损失,上述步骤一直进行到生成器g收敛为止;
最后,对生成器g是否最终收敛进行确定,如是,则进入步骤(1.5),进行性能测试;如否,则返回步骤(1.3),继续进行参数及函数算法的优化,再通过设计代码确定生成器g是否收敛。
进一步的,在所述步骤(1.5)中,所述性能评估的具体方法为:首先,从imagenet测试数据集中随机选择300张图像,并为每个图像生成规整的矩形掩膜;然后,对损坏的图像进行图像修复以获得最终修复结果;在模型评估阶段,以常见的评估指标(即l1,l2,psnr和ssim)(以生成的完整图像和真实图像计算得出)量化模型的性能;
具体的,在此训练中,使用的修复图像分辨率为256×256,待修复区域不超过128×128(最大孔尺寸);两种方法都基于全卷积神经网络;所有结果都是经过训练的模型的直接输出,而未经过任何后期处理;在模型评估阶段,通过使用修复后完整的图像和真实的完整图像,计算l1,l2,psnr和ssim这些常用的图片修复的评价指标,从而量化模型的性能;图7示出了评估结果;对比其他基于深度学习的方法,本模型在两个指标上优于其他方法;此结果可以解释为对比方法仅考虑使完成的图像纹理逼真,而忽略了图像的结构;此外,本方法利用轮廓指导模型,在没有干预的情况下,在基线上带来了一定的改进,证明了本发明使用利用轮廓预测思想的有效性。
在进行损失函数对比实验中,尝试用l2损失来代替知觉损失;但在随后的验证实验中,这种方法会导致着色结果趋于模糊;同时尝试使用不同的激活层来提取vgg19的特性;结果表明,elu的计算结果优于relu。
重建损失对比时尝试不使用重建的损失进行实验;结果是使得修复结果的边缘重复;实验修复结果表明这将产生一种虚影使得修复结果不可信;虽然重建的l1损失是图像修复中的一个重要的组成部分,但是这并没有改善图像的语义修复结果。
具体实施例:
本网络对于高维复杂映射具有一定的逼近能力,可以在一定程度上有效地提取图像中的语义,较好地改善了轮廓边缘扭曲,修复纹理模糊的问题;对于图像修复,要在准确地获得图像语义的同时,能够清晰地修复细节,这就要求图像修复网络除了能够捕获语义成分外,还需要能够合成纹理成分。本发明使用dcgan技术来解决这一问题。
本发明可以应用到图像修复中,图像修复结果的改进对社会中一些专业领域起到促进的作用;譬如在对历史艺术品诸如古画,古建筑的结构图的研究和修复上,专业人员可借助图像修复工具生成可参考的修复蓝图;这对专业人员的实际修复工作具有较好的启发和参考作用;同时对于古画,古建筑图纸等领域由于其图像自身的特点,颜色种类、纹理细节等具有一定的规律,而这类特定问题的样本数据量一般较小,因此,需要针对性地设计训练样本;进一步可以修改已训练好的深度网络结构并进行fine-tune等处理,以提升网络的迁移能力和在小数据集上的泛化能力。
最后,应当理解的是,本发明中所述实施例仅用以说明本发明实施例的原则;其他的变形也可能属于本发明的范围;因此,作为示例而非限制,本发明实施例的替代配置可视为与本发明的教导一致;相应地,本发明的实施例不限于本发明明确介绍和描述的实施例。
1.一种基于wgan网络进行图像修复的方法,其特征在于,具体步骤包括如下:
步骤(1.1)、构建浅层卷积网络结构:使用空洞卷积提取收集图像的空间特征,将得到的空间特征输入到深层神经网络中;
步骤(1.2)、构建深层神经网络:通过重建损失和gan损失来训练深层神经网络;
步骤(1.3)、优化参数及函数算法:使用不在任何一点使得导数突变且会产生负输出的elu作为激活函数;
步骤(1.4)、代码设计:在生成器未收敛前,使用重建损失对其训练;
步骤(1.5)、性能测试:对损坏的图像进行图像修复以获得最终修复结果。
2.根据权利要求1所述的一种基于wgan网络进行图像修复的方法,其特征在于,在所述步骤(1.1)中,构建浅层卷积网络结构的具体操作方法如下:
首先,收集图像,并将其输入到浅层神经网络中使用空洞卷积提取空间特征;其次,将得到的空间特征输入至深层神经网络中进行提取和修复,并将修复的结果经过训练解码器进行图像复原;
其中,所述的训练编码器具体操作包括:前馈传播和整体参数调优;所述的前馈传播即将图像输入到编码器中并最终得到复原的数据;在前馈传播完成后,通过误差反向传播算法对整个编码器进行微调。
3.根据权利要求1所述的一种基于wgan网络进行图像修复的方法,其特征在于,在所述步骤(1.3)中,通过优化参数和函数算法:其中,所述的激活函数具体如下式所述:
4.根据权利要求1所述的一种基于wgan网络进行图像修复的方法,其特征在于,在步骤(1.4)中,所述代码设计的具体操作方法如下:
首先,从训练数据集中随机挑选出若干张图片x;
接着,声明一个变量t,同时满足t服从0-1的均匀分布;
然后,挑选若干个掩膜给x,顺序进行z=x*m、
其次,为x随机生成掩膜m,更新生成器g,计算l1损失和两个对抗损失,上述步骤一直进行到生成器g收敛为止;
最后,对生成器g是否最终收敛进行确定,如是,则进入步骤(1.5),进行性能测试;如否,则返回步骤(1.3),继续进行参数及函数算法的优化,再通过设计代码确定生成器g是否收敛。
5.根据权利要求1所述的一种基于wgan网络进行图像修复的方法,其特征在于:在所述步骤(1.5)中,所述性能评估的具体方法为:首先,从imagenet测试数据集中随机选择300张图像,并为每个图像生成规整的矩形掩膜;然后,对损坏的图像进行图像修复以获得最终修复结果。
技术总结