基于卷积自编码网络结构的图像修复

基于自编码器的生成网络

        深度自编码器( DAE) 网络,图2 给出了一个5层的深度自编码器网络示意图,其隐层( L2 ~ L4)的节点数目由多到少,再由少到多,最后输出层节点与输入层节点的数目一致。本质上, 中间的每层都是原输入的一个表示, 最低维度的表示在 L3 层。

深度网络的训练

        深度置信网络(DBN)提出了非监督贪心逐层训练算法,为解决深层结构相关的优化难题带来希望,在深度网络的训练中,先用无监督逐层贪心训练算法对隐层完成预训练,然后使用反向传播( BP) 算法对整个神经网络进行系统性参数优化调整, 这种策略显著地降低了神经网络的训练难度,有效地改善了BP 算法容易陷入局部最小的不良状况 。本质上,DBN 与自编码器网络类似,都是学习输入信号的表示,并尽可能地还原原始信号,DBN 的特点是可以提取原高维复杂信号的分层特征,并提出一种有效的多层网络的训练方法。该训练方法特别是其中的预训练过程使得深层神经网络的训练变为可能,也是当今深度学习方法最有效的训练方法。

        整个 DBN 网络训练过程包括3 步: 第1 步是预训练,第2 步是展开,第3 步是微调。

  

卷积自编码器网络的训练

        卷积自编码网络( CAE) ,有效地解决了 CNN 网络需要进行监督学习的困难。CAE 不同于传统的自编码网络,其权值在所有神经元之间共享, 保持了图像空间的局部性,解码(重建)过程通过图像局部块的线性组合实现。

        对于输入图像的一个通道图 X ,假定有k 个卷积核 Wi,i = 1,…,k ,每个卷积核有一个偏置 b , 则可以生成 k 个特征图 h , 即

        在CAE 网络中,编码的过程就是按公式逐层卷积的过程。重建时将每幅特征图hi 与其对应的卷积核进行卷积操作并将结果求和,再加上偏置c , 即

        式中,H 是前一层输出的特征映射组,Y 为解码结果。需要注意的是在 CAE 网络中,编码的过程一般是降低维度的过程,解码的过程一般是增加维度的

        过程,为了保证解码后将数据恢复到原始尺寸,在编码过程中使用的是一般卷积而解码过程的卷积操作称为反卷积, 在网络的训练过程中, 一般采用均方误差( MSE) 为代价函数, 即为

        式中,E(θ)是关于W 和b 的参数。有了代价函数,网络的训练过程即和标准的神经网络一样,采用反向传播算法计算误差函数相对于参数的梯度,具体为

        有了基于卷积的深度自编码器网络及其训练方法,即可以将该结构应用到图像修复,仅仅是输入和输出的内容有所不同,输入的是图像中的已知部分, 输出的是图像的未知部分,在网络训练过程中,可以通过选定图像中已知的一部分假定为未知部分,通过图像的其余部分学习生成假定的未知部分。

基于卷积自编码的图像修复方法

        这种网络结构也被广泛应用到图像的风格迁移 、图像生成、图像的超分辨率重建 、图像着色 、图像分割 、基于视频的预测 等视频图像处理工作。其前半部分是一系列逐层下采样的处理,而后半部分是类似于前半部分的一个逆操作,即在编码过程中逐渐降低图像的尺度,在解码过程中逐渐增大图像的尺度,最终形成了一个类似“沙漏”的网络结构。    

        在最初的编码—解码图像修复方法中作者使用欧氏距离和对抗损失作为约束进行训练。由于欧氏距离是最小化所有输入与输出的平均值, 这必然会引起模糊。仅仅使用预测值和实际像素值之间的欧氏距离作为损失函数训练的网络生成的图片趋向于模糊, 因此,在 Context Encoder 方法中,增加了一项对抗损失,主要就是通过判别生成的修复区域图像是来自生成器还是真实的图像,使得整个结果更加真实( 输出的结果具有更多的边缘,结构更加合理) ,通过增加这个对抗损失的约束,取得更加逼真的修复结果。

        但这个对抗损失约束依然会存在问题: 一方面,这个约束仅仅判断了修复区域的真实性,这不能正则化修复图像的全局结构,即不能保证修复区域和已知区域的一致性; 另一方面,这个对抗损失是对修复区域内图像真伪的判断,在进行反向传播时很难对修复区域以外的区域产生直接影响,这会造成修复区域边界像素值的不连续性,在 Context Encoder网络中,也发现了该问题,并通过增加边缘区域的权重值使得这个问题 得到一定程度的解决。

        为了生成更加合理的人脸图像,将Context Encoder 网络中的对抗损失称为局部对抗损失 Dl ,并增加了一项新的对抗损失,称为全局对抗损失 Dg ,即将修复区域补全到原图后再判断整个修复图像的真伪, 这个损失就可以在保证生成的内容更加真实的同时,也能够保持在边界区域上像素值的连续。通过使用全局和局部图像的对抗训练,可以改善生成人脸图像的质量。增加了局部对抗损失和全局对抗损失的网络结构如图6 所示

        采用这类基于深度卷积自编码网络结构的修复方法根据解码器解码结果大小又可以分为两个子类: 第1 个子类的解码器以生成损失区域图像块为目的进行训练; 第2 个子类的解码器生成包括原图像已知部分和破损区域的整个图像 。即第1 个子类的编码—解码网络的输入、输出图像的大小不一致,输入是包括破损区域的整幅图像,输出的仅是破损区域; 第2 个子类的编码—解码网络的输入、输出图像的分辨率一致,都是整幅图像的大小。

        进一步,许多研究人员基于编码—解码网络结构提出了许多改进方法,将修复过程分成了两个编码解码的步骤( 本质上是两个深度卷积自编码器网络) : 第1 步的网络被称为粗糙网络,基于L2 距离进行训练得到修复区域粗精度的修复结果; 第2 步称为精细网络, 通过该网络对第 1 步的结果进行纹理细节增强,精细网络的训练则是通过局部对抗损失 Dl 和全局对抗损失 Dg 进行训练。类似地,将修复过程网络划分为两个步骤: 第 1 步称为图像到特征的网络,用于修复粗精度的图像特征,第2 步称为特征到图像的网络,用于实现高分辨率的图像修复。为了使得修复的结果纹理更加真实,纹理合成的方法也增加到图像修复结构中,增加纹理合成的思想到编码—解码结构的修复网络,具体以低分辨率图像修复的结果(使用 Context Encoder 网络) 作为内容约束项,并利用纹理约束的多尺度神经网络图像块合成方法进行高分辨率图像修复。

        图7 给出了一组基于自编码网络结构使用不同损失函数的修复结果对比图。图 7(a)为增加了掩码的原始图像,图7(b)为仅仅由 L2 损失函数训练后的修复结果,图7(c)为通过 L2 和Dl 两个损失函数训练后的修复结果,图7 (d)为通过 L2 、Dl 和Dg 3 个损失函数训练后的修复结果。可见图7(b)有明显模糊,图7(c)里有更多的边界轮廓内容; 相对于图7 (b) ,图7 (c)具有更多的细节信息; 而图7(d)相对于图7(c) 具有更好的全局一致性视觉效果。在基于深度卷积自编码网络结构的修复方法中除了使用 L2 、Dl 和 Dg 损失外,其他如语义感知对抗损失等方法也被提出,这类方法在具有明显语义结构的图像修复中可以取得好的结果。

        此外,基于编码—解码过程的基本思想,一方面,一些混合网络结构的方法被提出用于图像修复,

        先用CNN 网络提取图像的细节和全局特征,再使用修复CNN 网络计算修复图像块与原图像块的特征信息差异训练修复网络。另一方面,在基本的网络结构上,考虑在图像分割中使用的U-Net 结构取得了非常精确的分割结果,这种结构通过增加将高分辨率特征传递到后边对称的上采样层以补充编码过程中丢失的相关特征。通过增加这种跳跃式的连接 (skipconnections) 将编码阶段提取的特征增加到生成修复阶段,使得最终的生成图像和输入图像具有更加相近的细节分辨率。

 基于卷积自编码的图像修复方法实验分析

        采用图6 包括 L2 、Dl 和 Dg 3 个损失的网络,使用 Paris 数据集进行网络训练(分辨率为 128 ×128 像素的输入样本,训练生成输入样本中间 64 ×64 像素的空洞区域) ,Paris 数据集包括6392 幅可用图像,使用同样以巴黎为图像内容的Paris Street View 库提供的100 张测试图片进行图像修复测试。图14 给出了部分测试图片的修复结果,图14(a)为增加了掩码的待修复图像,图14(b)为对应的修复结果图,可见,修复结果中区域连贯,生成了符合图像语义的内容。

        进一步随机从 ImageNet 数据集中选择160 000幅图像对图 6 网络进行训练,完成高分辨率图像( 512 × 512 像素) 的修复,结果如图15 所示 修复结果在保证轮廓边缘连贯的同时,保持了视觉全局的一致性。

 

    

 

  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值