也许你曾从橱柜里翻出家人们压箱底的老照片,而它们已经泛黄发脆,甚至有些褪色;也许你在拍照时不慎手抖,只好把糊成一片的照片都丢进“最近删除”。而微软亚洲研究院在计算机视觉顶会 CVPR 2020 发表的两项黑科技——基于纹理 Transformer 模型的图像超分辨率技术,和以三元域图像翻译为思路的老照片修复技术,将能让这些照片奇迹般地恢复如初。同时,图像超分别率技术将于近期上线 PowerPoint,未来也将有更多图像修复技术集成进微软 Office 产品中。
从古老的胶片照相机到今天的数码时代,人类拍摄和保存了大量的图片信息,但这些图片不可避免地存在各种不同程度的瑕疵。将图片变得更清晰、更鲜活,一直是计算机视觉领域的重要话题。而无论是尘封多年的泛黄老照片、旧手机拍摄的低清晰度照片,还是你不慎手抖拍糊的照片,微软亚洲研究院在计算机视觉顶会 CVPR 2020 发表的两项黑科技,都能让它们重现光彩。
第一项技术是图像超分辨率技术,即从低分辨率图像中恢复出自然、清晰的高分辨率图像。与先前盲猜图片细节的方法不同,我们引入一张高分辨率参考图像来指引整个超分辨率过程。高分辨率参考图像的引入,将图像超分辨率问题由较为困难的纹理恢复/生成转化为了相对简单的纹理搜索与迁移,使得超分辨率结果在指标以及视觉效果上有了显著的提升。
进一步,我们提出老照片修复技术。与其他图片修复任务相比,这是一项更为困难的任务——老照片往往同时含有多种瑕疵,如褶皱、破损、胶片噪声、颜色泛黄,也没有合适的数据集来模拟如此复杂的退化。为此,我们将问题规划为三元域图片翻译,训练得到的模型可以很好地泛化到实际老照片,并取得惊艳的修复效果。
万物皆可 Transformer:基于纹理 Transformer 模型的图像超分辨率技术Transformer 结构被广泛应用于自然语言处理任务,取得了显著的成果,然而其在图像生成领域中鲜有应用。针对于图像超分辨率问题,微软亚洲研究院创新性地提出了一种基于纹理 Transformer 模型的图像超分辩率方法(TTSR),取得了显著的效果。该模型可以有效地搜索与迁移高清的纹理信息,最大程度地利用了参考图像的信息,并正确地将高清纹理迁移到生成的超分辨率结果当中,解决纹理模糊和纹理失真的问题。
纹理 Transformer 模型
如图1所示,微软亚洲研究院提出的纹理 Transformer 模型包括:可学习的纹理提取器模块(Learnable Texture Extractor)、相关性嵌入模块(Relevance Embedding)、硬注意力模块(Hard Attention)、软注意力模块(Soft Attention)。以下分别针对上述四个模块展开介绍。
图1:本文提出的纹理 Transformer 模型
可学习的纹理提取器。对于纹理信息的提取,目前主流的方法是将图像输入到预训练好的 VGG 网络中,提取中间的一些浅层特征作为图像的纹理信息。然而,这种方式有明显的缺陷。首先,VGG 网络的训练目标是以语义为导向的图像类别标签,其高层级的语义信息与我们所需要的低层级的纹理信息有着很大的差异。因此,以 VGG 模型中间层的特征作为纹理特征是值得商榷的。其次,对于不同的任务,所需要提取的纹理信息是有差别的,使用预训练好并且固定权重的 VGG 网络是缺乏灵活性的。对此,我们在纹理 Transformer 中提出了一种可学习的纹理提取器。该纹理提取器是一个浅层的卷积神经网络,随着 Transformer 的训练,该提取器也在训练过程中不断更新自己的参数。该设计使得我们的纹理特征提取器能够提取到最适合图像生成任务的纹理信息,为后面的纹理搜索与迁移提供了很好的基础,进而更加有利于高质量结果的生成。
相关性嵌入模块。如图1所示,与传统的 Transformer 一样,本文提出的纹理 Transformer 同样具有 Q、K、V 要素。其中 Q 为 Query,代表从低分辨率提取出的纹理特征信息,用来进行纹理搜索;K 为 Key,代表高分辨率参考图像经过先下采样再上采样得到的与低分辨率图像分布一致的图像的纹理信息,用来进行纹理搜索;V为 Value,代表原参考图像的纹理信息,用来进行纹理迁移。对于 Q 和 K,本文提出了一个相关性嵌入模块来建立低分辨率输入图像和参考图像之间的关系。具体的,该模块将 Q 和 K 分别像卷积计算一样提取出特征块,然后以内积的方式计算 Q 和 K 中的特征块两两之间的相关性。内积越大的地方代表两个特征块之间的相关性越强,可迁移的高频纹理信息越多。反之,内积越小的地方代表两个特征块之间的相关性越弱,可迁移的高频纹理信息越少。相关性嵌入模块会输出一个硬注意力图和一个软注意力图。其中,硬注意力图记录了对 Q 中的每一个特征块,K 中对应的最相关的特征块的位置;软注意力图记录了这个最相关的特征块的具体相关性,即内积大小。这两个图分别会应用到硬注意力模块和软注意力模块中。
硬注意力模块。在硬注意力模块中,我们利用硬注意力图中所记录的位置,从 V 中迁移对应位置的特征块,进而组合成一个迁移纹理特征图 T。T 的每个位置包含了参考图像中最相似的位置的高频纹理特征。T 随后会与骨干网络中的特征进行通道级联,并通过一个卷积层得到融合的特征。
软注意力模块。在软注意力模块中,上述融合的特征会与软注意力图进行对应位置的点乘。基于这样的设计,相关性强的纹理信息能够赋予相对更大的权重;相关性弱的纹理信息,能够因小权重得到抑制。因此,软注意力模块能够使得迁移过来的高频纹理特征得到更准确的利用。
跨层级特征融合
传统 Transformer 通过堆叠使得模型具有更强的表达能力,然而在图像生成问题中,简单的堆叠很难产生很好的效果。因此,本文为了进一步提升模型对参考图像信息的提取和利用,有针对性地提出了跨层级的特征融合机制。我们将所提出的纹理Transformer 应用于 x1、x2、x4 三个不同的层级,并将不同层级间的特征通过上采样或带步长的卷积进行交叉融合。通过上述方式,不同粒度的参考图像信息会渗透到不同的层级,从而使得网络的特征表达能力增强,提高生成图像的质量。
图2:多个纹理 Transformer 跨层级堆叠模型
训练损失函数
本文的训练损失函数由三部分组成,分别为重建损失,对抗训练损失和感知损失,具体如下式所示:
重建损失。本文选取 L1 作为重建损失函数,相对于 L2,L1 可以得到更加清晰的结果图像,具体如下式所示: