深度生成模型文物修复--论文阅读笔记(导-6)

  • 图像修复 是计算机视觉领域最活跃的研究领域之一。它通常是一个不适定的逆 问题,其中恢复的图像候选是通过近似退化图像的原始形式产生的。
  • 图像修复任务可以进一步细分为图像去噪[16]、超分辨率6和图像修复34。
  • 图像修复问题解决方法分为两类:传统的和基于深度学习生成模型

传统方法 :在空间中寻找相似模型填补,传统图像修复方法有三种:using partial differential equations、Exemplar-based、rely on external references

深度生成模型 :即变分自动编码器(VAE)和生成对抗网络(GAN),能够通过依赖卷积神经网络(CNN)捕获复杂场景的非线性表示。加上适当的网络架构和目标函数,它们能够生成更多的语义感知的内绘制区域。

文章主要回答的问题:

  1. 面部雕像遭受了哪些类型的损坏?
  2. 如何构建用于训练生成模型的数据集?
  3. 如何设计一种递归PCA方法来解决图像修复问题?
  4. 如何训练一个GAN模型来解决图像修复问题?
    • 哪些损失函数对结果贡献最大?
  5. 如何评估修复结果?
    • 递归PCA与GAN模型在恢复面部雕像缺失属性方面的性能如何比较

背景

人脸图像具有相似的结构模式,因此它们可以被建模为低维分量的线性组合,由特征向量表示。 PCA方法 通过从人脸空间中迭代检索缺失区域的候选像素来恢复缺失区域。这些方法的大多数重建面孔看起来很自然,但仍然缺乏背景对齐,如性别、种族和民族。
**生成对抗网络(GAN)**定义了一种生成图像的新范式。GAN使用两个网络,称为发生器和鉴别器。它的训练目标可以看作是一个最小最大的游戏,其中,生成器需要从一个已知的先验分布中生成虚假的真实图像来欺骗描述,而鉴别器需要区分真实图像和生成的假图像。目标函数被称为对抗性损失。 基于深度学习的模型能够从使用卷积神经网络(CNN)提取的训练数据中 学习非线性特征 。在CNN架构之前,早期的图像恢复任务中的深度学习采用使用全连接的 多层感知器 。编解码器架构是CNN架构的变体之一,可以解决修复问题。它包含卷积层序列,将输入图像 编码为潜在表示 ,然后是 去卷积层序列 ,将表示 上采样 回图像。Mao等人[30]演示了一种自动编码器架构来解决图像内修复问题,以及其他几个图像恢复任务,使用均方误差(MSE)作为退化图像和地面真实之间的重建损失最小化。不幸的是,自动编码器的内部修复 结果往往是模糊的,因为通常使用的MSE损失通过计算基本真实像素的平均值来平滑内绘制区域。

文章的方法

文章基于 a GAN-based model修复,遵循现有GAN inpainting models架构 ,包括一个编码解码生成器,和一个分类判别器。由于图像数据有限,还讨论了**数据增强,**损坏是在正常雕像上模拟的。
PCA(对比实验)重建算法学习了训练数据中的人脸结构的线性表示,因此,不需要"损伤-正常"的人脸雕像对。

1、数据增强:模拟损坏样本

应用人工二进制掩码 来模拟,对于每个独特的正常雕像,就有多个损坏版本的雕像。有三大主要的掩码组 ,即口部掩码、鼻部掩码和眼部掩码。通过考虑不同的掩码大小、相对于属性质心的位置,以及旋转来增强掩码( a.) 掩码质心平移 b.) 掩码旋转c.) 掩码缩放**)**。

确定了三种损坏类型,即缺失的面部特征、侵蚀的纹理和空洞区域。

预处理:面部属性进行定位和面部对齐。

利用预训练的MTCNN 45对正常面部雕像进行面部标志点检测,能够检测到5个面部标志点的坐标(左眼、右眼、鼻子、左嘴角和右嘴角),并且推断出的面部标志点坐标观察到具有足够的质量。根据获得的坐标,对面部雕像进行对齐、裁剪和居中,以适应坐标和图像边界之间的比例。

2、递归PCA

经典PCA修复步骤参考PCA(主成分分析)方法---重建面部图像(导-6涉及知识点)-CSDN博客

3、利用GAN进行面部雕像修复

3.1 Minimax GAN

原始的GAN 采用两个网络的同时优化,即生成器和判别器 。这个优化目标也被称为对抗性损失

生成器G试图从噪声分布生成尽可能逼真的假图像以欺骗判别器,同时判别器D试图尽可能区分从真实分布pdata采样的真实图像和由生成器产生的假图像。

模型训练通过优化一个最小最大目标函数进行,直到达到纳什均衡。此外,Minimax GAN正在优化的对抗性损失,在Jensen-Shannon散度(JSD)最小化时达到全局最小值。

  • 判别器。 判别器是GAN框架中的关键组件。一些人认为,通过对抗性训练近似优化JSD 实际上是GAN框架成功的显著因素[13]。在这里,对抗性训练涉及一个对抗性损失,并且通过训练判别器直接最小化。在方程7 中优化判别器如何能够识别真实数据,因此D(x)的值应该接近1。同时,优化判别器如何惩罚由生成器引起的假样本,因此优化的D(G(z))应该接近0。请注意,真实数据被标记为1,而假数据被标记为0。**在图像修复任务中,**真实数据等同于真实图像,而生成的样本是由一组掩码面部雕像构建的修复图像,而不是随机噪声z。在这里,M是一个二进制掩码,其中修复目标像素由1表示。因此,这导致了一个图像修复对抗性损失,如方程9所述
  • 生成器 。从生成器的角度来看,给定一个输入图像和一个二进制掩码M,生成器G被训练以产生尽可能逼真的修复图像。然后对抗性损失也适用于生成器。与判别器的对抗性损失相比,生成器的对抗目标是通过使D(G(z))尽可能接近1来最小化。因此,修复生成器的对抗目标是最小化方程10:

3.2 Wasserstein-GAN:以克服原始GAN的训练不稳定性

核心思想:围绕最小化真实数据和生成数据之间的概率分布的地球移动(EM)距离。EM距离测量两个概率分布之间的距离。它代表了将一个分布"堆"移动到另一个分布的最优成本,反之亦然。他们认为,与GAN的Jensen-Shannon散度(JSD)相比,地球移动(EM)距离提供了一个更平滑的优化度量

在图像修复案例中,WGAN的目标是最大化一个评论家损失:

这个评论家损失是判别器的目标函数 ,它来源于在1-Lipschitz连续性下的变换EM距离估计。这种转换是必要的,因为联合概率分布的不可处理性。这里,代表了修复生成器的参数分布。

另一方面,生成器通过最小化方程12进行优化,最终,优化的EM距离应该接近0。后来,WGAN架构将与原始的Minimax GAN在面部雕像修复用例中进行比较。

3.4. 生成器的目标函数

生成修复图像 的顺序如下。真实图像乘以二进制掩码M,得到一些掩码图像以模拟损坏。然后将掩码图像 输入生成器G以产生重建图像。由于只需要修复区域,非掩码区域直接被真实值替换。除了对抗性损失外,通常还会对生成器额外使用其他目标函数,以推断更高精度的结果。通过这种方式,优化在修复区域和整个图像上局部和全局地发生。以下是一些先前被证明对图像修复任务有用的目标函数24,26,23,44]。

  • Reconstruction Loss.
  • Content Loss .
  • Style Loss.


Face Parsing Loss

Total-Variation Loss .

最后生成器的总优化目标在方程18中说明

3.5. 评估面部雕像修复模型

除了视觉观察,还将使用几种定量指标来反映面部雕像修复的质量。
L2重建损失。
FID分数。
消融研究

4. 实验

4.1. 雕像身份分割

手动挑选涉及将正常和损坏的面部雕像分开。最后,正常的面部雕像被分割为训练集和测试集,比例为80%:20%。

4.2. 数据集预处理

面部裁剪。大多数面部雕像的大小超过700像素,并且它们不是正方形,因此首先,它们根据面部标志点被裁剪和调整大小。使用预训练的MTCNN模型获取面部雕像的面部标志点。

4.3. 训练递归PCA模型

递归PCA模型将作为与GAN模型的基线比较。随后,将定量和定性地比较两种模型的修复结果。

利用奇异值分解

4.4. 训练GAN

正在训练两个GAN框架,每个框架的训练方法略有不同。从网络架构上看,两个框架的生成器都使用U-Net架构36,该架构在生成生物医学图像的片段方面享有盛誉。同时,判别器采用PatchGAN架构15。

4.5. 训练面部分割模型

4.6. 评估

5. 结果

显示了Minimax GAN、WGAN和递归PCA模型的性能。

与Minimax GAN相比,WGAN在整个训练周期中的梯度相对更稳定,如图7c所示。WGAN的梯度只有轻微的波动,而Minimax GAN的梯度波动更大,最上层和最下层的梯度倾向于迅速增加。最上层处理图像输入,而最下层生成最终输出。这意味着生成器在每个相应层中从压缩输入图像和生成最终修复结果中学习最多。

从视觉上看,作为更简单模型的递归PCA模型产生的修复结果与GAN变体相比并不那么远。具体来说,对于较不复杂的面部属性,即鼻子,生成的修复可能就足够了。另一方面,GAN变体产生的修复结果在某些图像上有其自身的强项。然而,使用完整损失函数训练的模型重建的面部属性往往更接近真实图像的身份。这受到风格、内容和面部解析损失的影响。而总变化损失有助于减少伪影。

训练Minimax GAN和WGAN模型,以尽可能接近真实图像重建掩码图像。仅基于FID分数,使用L2重建损失训练的Minimax GAN是表现最好的模型。但是,当同时考虑梯度稳定性和身份匹配时,使用完整损失的WGAN是更受偏好的GAN变体。具体来说,添加风格、内容和总变化损失的组合有助于保持重建图像的身份。此外,当单独评估时,L2损失和风格损失是贡献最大的目标函数。与作为更简单模型的递归PCA相比,尽管它为较不复杂的属性(即鼻子)生成了可接受的修复,但总体而言,递归PCA模型生成的修复准确性最低。与GAN变体相比,在递归PCA模型的修复结果中发现了更多的伪影和模糊。

相关推荐
愚润求学8 分钟前
【Linux】动静态库的使用
linux·运维·服务器·开发语言·c++·笔记
weixin_448119948 分钟前
Datawhale 5月llm-universe 第2次笔记
笔记
Dovis(誓平步青云)31 分钟前
基于面向对象设计的C++日期推算引擎:精准高效的时间运算实现与运算重载工程化实践
开发语言·c++·经验分享·笔记
寂空_36 分钟前
【算法笔记】ACM数论基础模板
c++·笔记·算法
静心问道44 分钟前
Donut:无OCR文档理解Transformer
深度学习·ocr·transformer
不吃香菜葱的程序猿2 小时前
《Adversarial Sticker: A Stealthy Attack Method in the Physical World》论文分享(侵删)
深度学习·计算机视觉
ALINX技术博客2 小时前
【ALINX 实战笔记】FPGA 大神 Adam Taylor 使用 ChipScope 调试 AMD Versal 设计
笔记·fpga开发
关山煮酒2 小时前
【数据挖掘笔记】兴趣度度量Interest of an association rule
笔记·数据挖掘
侃山3 小时前
pytorch nn.RNN demo
pytorch·rnn·深度学习
Francek Chen3 小时前
【现代深度学习技术】注意力机制07:Transformer
人工智能·pytorch·深度学习·神经网络·transformer