英伟达教你用深度学习做图像修复,确定不试一下?

2018 年 5 月 26 日 AI研习社

本文为雷锋字幕组编译的技术博客,原标题 Image Inpainting for Irregular Holes Using Partial Convolutions,作者 NeuroHive 。

翻译 | 段小杰  尘央    整理 |  吴璇

为了克服先前方法的局限性,英伟达公司的研究利用部分卷积去解决图像着色问题。部分卷积层由一个掩模更新运算再加一个被掩模和再标准化的卷积运算构成。

深度学习是人工智能中发展最快的领域之一,被广泛的应用在很多领域,尤其是实时目标检测、图像识别和视频分类。深度学习通常采用卷积神经网络、深度信念网络、循环神经网络等方式实现。

图像修补就是深度学习的一个应用。它通过建立一个图像修补模型,自动填充图像不规则的空隙内容,这些填补是基于图像语义上的预测,使其与原有图像可以完美融合,而不必借助任何后期操作。图像修补可以应用在很多场合,例如擦除图像不需要的内容并填补图像合理的内容。

图像修补中使用了许多不同的方法,但是没有一种方法使用深度学习方法,并且这些方法有一些限制。其中一种方式叫做块匹配(patchmatch),是在自身图像中找到与之最匹配的块来填补图像。尽管这种方式能够产生比较光滑的结果,但是受到可用图像块数量的限制以及此种方式不能很好地理解图片的视觉语义。许多方法的另一个局限是聚焦矩形孔洞,这些孔洞常被看做图像的中心,这些限制导致了矩形空隙的过拟合,最终限制了这些模型的应用。

  它是怎样工作的

为了克服先前方法的局限性,英伟达公司的研究利用部分卷积去解决图像着色问题。部分卷积层由一个掩模更新运算再加一个被掩模和再标准化的卷积运算构成。最主要的延伸是掩模自更新步骤,它去掉了所有掩模,这样部分卷积就可以再非掩模值上运算。以下是本文的主要创新点:

1. 用带有自动掩模更新的部分卷积运算来进行图像修补,达到目前以来的最好效果。

2. 用部分卷积和掩模自动更新代替卷积运算可以得到目前最具艺术性的图像修补结果。

3. 证明了部分卷积在建立图像修补模型时,对不规则孔洞填充的有效性。

  部分卷积层

该模型运用多次部分卷积运算和掩模更新步骤来进行图像修补。部分卷积运算和掩模更新函数共同构成了部分卷积层。

W 作为卷积滤波器的权值,b 作为卷积滤波器相关的偏置,x 是现有卷积窗口的特征值(像素值),M 是对应的二进制掩模。不同层的部分卷积运算被表示为:

表示元素点乘。可以看到,输出值只取决于非掩模输入。缩放因子 1/sum(M) 应用合适的缩放系数去自适应不同的有效输入。在每个部分卷积运算之后,掩模被更新了。去掩模规则很简单,如果卷积运算可以使输出至少反应一个有效输入值,去掩模就是将那个位置的掩模去掉。这种运算表示为:

并且可以很容易地在任何深度学习框架中作为前进的一部分实现。

  网络体系结构

通过扩展现有的标准 PyTorch 来实现部分卷积层。通过定义大小为 C×H×W 的二进制掩码来简单实现与其一样大小的相关图像或功能,然后使用一个固定的卷积来实现掩码更新,大小相同的内核作为部分卷积操作,权重相同的设置为 1 和不同则设置为 0。无论孔的大小,512×512 图像的整个网络推断在单一 NVIDIA V100 GPU 中需要花费 0.23 秒。

所使用的架构是类似于 UNet 的架构,将所有的卷积层替换为部分的卷积层,并在解码阶段使用最近的邻居向上采样。

图 1:在图像修复中使用的架构,所有的卷积层都被部分的卷积层取代

ReLU 被用于编码阶段,角度为 0.2 的 LeakyReLU 则被用于所有解码层之间。编码器包括 8 个步幅为 2 的部分卷积层。内核大小为 7、5、5、3、3、3、3 和 3。通道大小为 64、128、256、512、512、512、512 和 512。最后部分卷积层的输入将包含原始输入图像、孔和原始掩码的连接。

  损失函数

损失函数的目标是每个像素精度和构成的重建,即预测的孔值如何平滑地过渡到周围的环境中。给出输入图像的孔射程和掩码 M,网络预测的 Iout 以及基于真实图像的 Igt,于是将像素损失定义为: 

感知损失(感知损失函数测量图像之间的高层次感知和语义差异。他们利用一个预先训练好的图像分类的损耗网络,这意味着这些感知损失函数本身就是深度卷积神经网络)被定义为:

感知损失计算出 Iout 和 Icompand 之间的距离 L1。为了执行自相关,在每个特征图谱中引入了类型损失项。

全部损失是上述损失的总合:


  结果

利用部分卷积层与一个自动掩模更新机制,实现了最先进的图像绘制结果。该模型可以很好地处理任何形状、大小位置或距离图像边界的孔。此外,如图 2 所示,随着孔尺寸的增加,性能不会发生灾难性的恶化。

图 2:第一行:输入;下面一行:对应绘制结果

图 3:基于结果的典型卷积层和基于结果的部分卷积层之间的比较

部分卷积方法的更多结果:

从Python入门-如何成为AI工程师

BAT资深算法工程师独家研发课程

最贴近生活与工作的好玩实操项目

班级管理助学搭配专业的助教答疑

学以致用拿offer,学完即推荐就业


新人福利


关注 AI 研习社(okweiwu),回复  1  领取

【超过 1000G 神经网络 / AI / 大数据资料】


英伟达发布新算法,可以重建缺失像素

登录查看更多
0

相关内容

在数学(特别是功能分析)中,卷积是对两个函数(f和g)的数学运算,产生三个函数,表示第一个函数的形状如何被另一个函数修改。 卷积一词既指结果函数,又指计算结果的过程。 它定义为两个函数的乘积在一个函数反转和移位后的积分。 并针对所有shift值评估积分,从而生成卷积函数。
最新《医学图像深度语义分割》综述论文
专知会员服务
94+阅读 · 2020年6月7日
【CVPR2020】MSG-GAN:用于稳定图像合成的多尺度梯度GAN
专知会员服务
26+阅读 · 2020年4月6日
【ICLR-2020】网络反卷积,NETWORK DECONVOLUTION
专知会员服务
37+阅读 · 2020年2月21日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
【NeurIPS2019】图变换网络:Graph Transformer Network
专知会员服务
109+阅读 · 2019年11月25日
深度学习算法与架构回顾
专知会员服务
77+阅读 · 2019年10月20日
深度学习的图像修复
AI研习社
21+阅读 · 2019年3月28日
揭开GANs的神秘面纱
机器学习算法与Python学习
10+阅读 · 2019年2月27日
深度学习之星(二):GAN之图像转换 | 公开课
AI研习社
3+阅读 · 2017年12月11日
【教程】如何使用深度学习为照片自动生成文本描述?
GAN生成式对抗网络
20+阅读 · 2017年11月19日
Arxiv
14+阅读 · 2019年11月26日
Arxiv
5+阅读 · 2019年6月5日
Arxiv
3+阅读 · 2019年3月29日
Text classification using capsules
Arxiv
5+阅读 · 2018年8月12日
Arxiv
11+阅读 · 2018年5月13日
VIP会员
相关资讯
深度学习的图像修复
AI研习社
21+阅读 · 2019年3月28日
揭开GANs的神秘面纱
机器学习算法与Python学习
10+阅读 · 2019年2月27日
深度学习之星(二):GAN之图像转换 | 公开课
AI研习社
3+阅读 · 2017年12月11日
【教程】如何使用深度学习为照片自动生成文本描述?
GAN生成式对抗网络
20+阅读 · 2017年11月19日
相关论文
Top
微信扫码咨询专知VIP会员