SIGGRAPH提出的图像修复技术
小白导读
最近小白读了一篇基于深度学习的图像修复技术论文Globally and Locally Consistent Image Completion,让小白对图像修复技术产生了好奇,本期小白为各位小伙伴介绍一下图像修复技术与该论文的方法。该论文的链接地址为:
http://iizuka.cs.tsukuba.ac.jp/projects/completion/data/completion_sig2017.pdf
小白将从三个方面为大家介绍图像修复技术:
1.图像修复技术及其优缺点
2.SIGGRAPH论文提出的算法
3.图像修复技术的示例
图像修复技术
图像修复技术是一种用可选内容填充目标区域的技术,它的主要用途是在对象删除任务中,从照片中删除一个对象,并用希望能保持图像上下文完整性的内容自动替换被删除的部分。
图像块匹配算法是图像修复技术这一领域最著名的算法,它曾经被photoshop运用在其内容感知填充的功能上。来看下面这个例子:从左侧图像中删除右下角的花后,通过图像块匹配算法生成的图像:
图像块匹配算法生成自然场景的图像修复技术示例
看上去修复效果是不是很不错?
但图像块匹配算法也有一定的缺点,如只能使用来自输入图像的纹理来补充被删除的部分。因此,对于像上面的花卉图片这样的简单图像,其恢复效果很好,原因在于,利用图像块匹配算法可以得出绿叶是花卉图片的主要纹理,从而找到被删除部分与已有图像的关联。但如果是更复杂的图像,比如说含有人脸的图像修复,仅仅从一张脸的输入图像中,我们很难将受损图像完全修复。
下面是一个通过图像块匹配算法完成的图像修复的示例:
由图像块匹配算法生成的面部图像修复技术示例
大家有没有觉得很滑稽?缺失的人脸并没有被正确地修复。
因此我们可以看到,仅从单张输入图像中寻找到的信息,是不足以完成图像修复任务的。
论文中提到的解决方案
论文作者的提出通过使用大量的自然场景图像数据库,训练一个单一的深度学习网络来修复图像。Places2数据集能够完成这一目的,其包含超过800万个不同自然场景的图像,能够从中总结出自然场景固有的一致性,即填补图像中缺失空白的信息是从这800万张图像中获得的,而不仅仅是一张图像。
当图像修复技术的深部神经网络的训练完成时,GAN就能够进一步改善深部神经网络。
GAN是一种无监督的神经网络训练技术,在训练阶段使用一个或多个神经网络相互改进。当一个神经网络试图欺骗另一个神经网络时,所有神经网络都会根据这一步骤得到的结果进行更新。然后我们就可以让这些神经网络运行很长一段时间,它们就能够相互改进,达到我们的要求。
全局和本地的环境鉴别器网络则被用于改善图像修复技术网络。前者通过观察整个图像来评估其整体是否连贯,后者则通过查看以修复区域为中心的微小区域,来确保生成补丁的本地一致性。也就是说,有两个辅助的网络来帮助训练。这两个辅助网络返回一个结果,以检测生成的图像的真伪性。
整个培训阶段需要在一台配备四个高端GPU的机器上花费2个月的时间才能完成,因此耗费的时间也是很多的。
下图是解决方案的培训架构:
图像修复技术培训体系结构概述
通常,要修复一张1024 x 1024分辨率的图像,在配有单个CPU的计算机上大约需要8秒,在配有适当GPU的计算机上大约需要0.5秒。
论文方法示例
下面我们来看一个运用改进方法进行复杂的人脸图像修复的具体示例:
人脸上的图像修复技术的示例
修复效果比图像块匹配算法修复的效果要好上很多。
除了人脸修复,还有很多复杂的图像修复案例,再来看看下面这些:
图像修复技术示例
往期文章一览