论文来源:CVPR 2017
论文提出的方法:给定一个训练好的生成模型,采用提出的两个损失函数$ context-loss和prior-loss$,通过在潜在的图像流寻找与需要修复图片最接近的编码来实现修复。
优势之处:最新的方法需要有关缺失部分的一些特定信息,而此方法不管缺失部分如何,修复都是可能实现的。
网络结构:理论上可以使用各种\(GAN\)网络结构,本论文采用\(DCGAN\)。
数据集:三个数据集分别为$the-Celeb-Faces-Attributes-Dataset (CelebA) , the -Street-View-House-Numbers (SVHN) 和the-Stanford-Cars-Dataset $
Code:semantic_image_inpainting
语义修复(\(Semantic-inpainting\)):是指根据图像的语义信息来推断图像中任意大的缺失区域内容。
典型图像修复方法包括:基于局部信息和非局部信息来修复图像。现在大多数的修复方法是基于单个图像修复(利用图片局部信息)而设计的,利用输入图像提供的信息,并利用image priors来解决问题。
利用局部信息修复图片:利用图像本身的局部信息来修复图像。
方法名称 | 实现思想 |
---|---|
base on total variation (TV)[34,1] | 考虑了自然图像的平滑特性,有助于填充小的缺失区域或去除杂散噪声。 |
引用[6] | 纹理图像中的洞可以通过从同一图像中找到相似的纹理来填充。 |
statistics of patch offsets[11], planarity [13] or low rank (LR) | 能够有效的提高结果的效果 |
PatchMatch (PM) [2] | 在图像的未缺失部分搜索相似的补丁来进行填充 |
利用局部信息修复图片缺点: | 都要求在输入图像中包含适当的信息,例如类似的像素、结构或补丁。如果缺失区域很大且可能是任意形状的,则很难满足这一假设。 |
利用非局部信息修复图片:利用一些外部信息,来预测图像中缺失部分的像素。
方法名称 | 实现思想 |
---|---|
引用[10] | 从一个巨大的数据库中剪切并粘贴一个语义相似的补丁。 |
引用[37] | 基于互联网的检索可用于替换场景的目标区域。 |
以下为基于学习的方法 | |
引用[27],[28],[33],[22] | 经过一个图像字典或者神经网络的学习,推理的时候不需要训练数据。 |
缺点: | 仅适用于缺失的部分教小或者是去取图片上的文本 |
本文中创新思路:讲图像的语义修复问题,转换为受约束图像的生成问题,并且利用了生成模型的最新成果。在一个被训练深度生成(生成对抗网络GAN)模型,我们搜索在潜在空间中与图像“最接近”的需要修复图像的编码。然后使用编码来使用生成器重建图像。以处理损坏的图像为条件,通过加权上下文损失来定义“最接近”,并且通过prior损失来惩罚不现实的图像。
与CE对比(2016 CVPR)优势:不需要MASK的数据集进行训练并且在推理的时候可以对任意结构的缺失区域使用。
目的是为了寻找接近提供但是缺失部分图像的编码信息。
应用Back-propagation的论文 | 用途 |
---|---|
引用[][][8,9,20] | 纹理合成和样式转移 |
引用[28] | 创造梦幻般的图像 |
引用[36,5,35,21] | 在输入层上更新梯度来“反转”网络,用于可视化和理解经过训练的网络中学习到的特征 |
因此,可以使用\(Back-propagation\)来实现语义修复任务,但是需要特别设计的损失函数。
(利用受限制的图片生成来实现图片语义修复)
图三,我们利用二维空间上的t-SNE将隐藏编码流进行可视化,并在寻优步骤中得到中间结果,得到了寻优后,利用训练的生成模型G生成缺失的内容。
其中\(L_c\)表示上下文损失(context loss),该上下文损失限制给定输入待修复图像\(y\)和孔掩码\(M\)的生成图像。
\(L_p\)表示先验损失,它惩罚不切实际的图像。
除了上述所说的最小化,还可以考虑使用\(D\)通过最大化\(D(y)\)来更新y,类似于\(DeepDream\)中的反向传播或神经风格转移。然而,损坏的数据\(y\)既不是从真实图像分布中提取的,也不是从生成的图像分布中提取的。因此,最大化\(D(y)\)可能会导致一个远离潜在图像流形的解,从而可能导致质量差的结果。
\(i\)是像素的下标,\(W_i\)表示下标为\(i\)的元素的重要性,\(N(i)\)N是指像素\(i\)在局部窗口中的邻域集合,|$ N(i)\(|是指\)N (i)$的基数(个数)。我们定义窗口的大小为7个像素。
其中⊙表示逐像素进行乘机。
先验损失是指基于高级图像特征表示而不是逐像素差异的惩罚。先验损失鼓励修复的图像与从训练集中提取的样本相似。并且惩罚不真实的图像。
回想一下,在GAN中,鉴别器\(D\)被训练为将生成的图像与真实图像区分开。 因此,我们选择先验损失与训练鉴别器\(D\)的\(GAN\)损失函数相同,即
\(λ\)是平衡这两种损失的一个参数。\(z\)被更新为愚弄\(D\)并使相应生成的图像更真实。
通过实验验证,我们发现添加了先验损失会使图像更加真实。如图4,略。
其中,?为梯度操作,最小化问题包含一个二次项,它具有唯一的解。
生成模型\(G\)从[-1,1]之间的均匀分布中提取随机100维向量,并生成64×64×3图像。鉴别器模型\(D\)的结构基本上是逆序的。
在修复阶段,我们需要利用反向传播在潜在空间中找到\(z?\)。我们使用Adam进行优化,并在每次迭代中将\(z\)限制为[-1,1],我们观察到这会产生更稳定的结果。我们在1500次迭代后终止反向传播。我们对所有测试数据集和MASK使用相同的设置。
the CelebFaces Attributes Dataset (CelebA)
the Street View House Numbers (SVHN)
the Stanford Cars Dataset
采用了5种不同的MASKS:1) central block masks; 2) random pattern masks, with approximately 25% missing; 3) 80% missing complete random masks; 4) half missing masks (randomly horizontal or vertical).
采用PSNR值来进行对比。
发现与视觉比较中存在了一些矛盾,然后进行了一些介绍
我们提出了一种新的方法来实现图像的语义修复。与现在存在基于图像局部信息和PATCH的方法相比,还是很好的表现形式。与\(CE\)(2016 CVPR)相比,我们修复的图片更加真实。
Semantic Image Inpainting with Deep Generative Models
原文:https://www.cnblogs.com/wenshinlee/p/12393201.html