本文转自 / 景略集智
你明白的,对于大部分图像编辑软件来说,平时用它们修修脸、加个滤镜什么的,效果相当好。
因此美颜手机什么的,永远是个大市场
但是当你用它们“修补”照片的时候,表现就不那么亮眼了。通常图像编辑工具可以借用相邻区域的像素(比如Photoshop就是这么操作的)填补缺失部分,但缺点很明显:无法确定图像本来缺失的内容。
因此只能用它们修补边边角角,不能从整体上复原图像。这个缺点在修复照片时暴露无遗,特别是当你想修补一张几十年前的老照片,而且你知道照片缺失部分原来都有什么。
不过不要紧,AI 已经解决了这个问题。最近英伟达的研究人员研发出一种极其先进的深度学习技术,能够复原图像原本缺失的内容。比如说,假如有一张缺失了眼睛部分的人脸照片,往常你用 Photoshop 这些编辑工具修补的话,只能用相邻部分的像素填充,无法还原出人的眼睛,但是英伟达研发的这个 AI 知道往缺失部分填补人的眼睛,哪怕结果有时看着不是很协调。
其实在此之前也有不少人尝试用基于 AI 的技术修补图像,但都局限于修复矩形截面,只重点关注图像中心部分的修复,无法修补照片的任意缺失部分,而且往往还需要花费大量的时间进行后期处理。但是英伟达的 AI 不一样。
它能够稳定地处理任何形状、大小或与照片边缘任意距离的缺失部分。更厉害的是,哪怕照片缺失部分在不断变大,AI 也能从容应对,优雅地修复。
为何这个 AI 如此厉害?
研究人员在他们发布的论文中解释到,他们应用了一种叫做“部分卷积”(partial convolution)的方法,也就是为神经网络添加一个部分卷积层,它包括掩膜式再归一化卷积以及掩膜更新两个部分,掩膜式再归一化卷积在图像分割任务中又称为 segmentation-aware卷积。这种技术能保证模型用于修补缺失像素的输出不会完全依赖输入值,从而能修补任意形状、大小和位置的缺失部分。部分卷积层能够根据对应接受域的正确性,再归一化每个输出,从而确保输出值独立于每个接受域的缺失像素值。另外研究人员也应用了一些损失函数、匹配特征损失的 VGG 模型以及风格损失等,让 AI 的生成结果更逼真更匹配。
这样 AI 对图像的修补效果,简直是不可思议的好,即便 AI 无法确切地知道缺失了什么,修复的结果往往看起来也非常贴合,毫无违和感。
AI补图大师是如何炼成的?
为了训练这个 AI,也是费了很大力气。研究人员首先制作了 55,116 张存在任意形状和大小缺失部位的掩膜图像用于训练,又准备了约 25,000 张用于测试。接着他们进一步将这些图像根据缺失部分大小细分为 6 个类别,以优化 AI 的复原效果。
借助英伟达 Tesla V100 GPU 和 cuDNN 驱动的深度学习框架 PyTorch,研究人员将前面制作的掩膜图像应用在来自 ImageNet,Place2 和 CelebA-HQ 数据集中的图像上,以此训练搭建的模型。
在训练阶段,研究人员将图像缺失部分引入来自这些数据集中的完整训练图像,以此让 AI 学习如何重建图像缺失的像素。
而在测试阶段,研究人员将没有应用在训练阶段的图像缺失部分引入到测试图像中,从而无偏差的验证 AI 重建缺失像素的准确率。
最终训练成的这款 AI 模型,修补图像的效果秒杀其它一众图像修补技术。在论文中,研究人员和其余四种图像修补技术进行了比较,这四种技术分别是:
PatchMatch:简称 PM,是当前非常先进的一款没有基于机器学习技术的图像修补方法。
GL:由 Iizuka 等人提出的图像修补技术。
GntIpt:由 Yu.J 等人提出的借助语境关注的生成式图像修补方法。
Conv:没有应用“部分卷积”的一种传统神经网络架构。
研究人员将他们研发出的 AI 命名为 PConv,下图展示了这 5 种方法修补相同图像的结果对比:
最右侧一列GT是原图
不光是修复景物和动物,也能修补人脸:
我们可以看到,无论是什么样的图像,英伟达的这款AI修复效果都远高于其它方法。更多效果可查看下方视频:
当然 AI 的修图结果也不是一直完美无缺,你在视频中会发现有些脸部特征明显是从别处“借”来的,如果缺失部分面积很大,没有足够信息供 AI 重建像素时,AI 修复的效果就比较逊色。
但总体来看,这仍然不失为一种无比神奇和惊艳的实用技术。有了它,以往一些看似没有希望复原的照片都能够最大程度的还原缺失内容,而且不用花好几个小时痛苦的修补。另外,英伟达研究人员称 AI 还能在保证图像不失真的情况下放大照片。或许,我们苦哈哈的用修图工具补图抠图的日子就要一去不复返了。
参考资料:
https://arxiv.org/pdf/1804.07723.pdf
https://www.engadget.com/2018/04/24/nvidia-ai-fixes-photos/
领取专属 10元无门槛券
私享最新 技术干货