《The Unreasonable Effectiveness of Deep Features as a Perceptual Metric》
项目主页 http://richzhang.github.io/PerceptualSimilarity/
介绍一下 CVPR 2018 的一篇 poster,这篇论文写的很好,代码开源。
通常我们用欧氏距离或者结构相似性(SSIM)度量图片之间的距离,但是有时距离相近的图片,在人类看来并不那么相像,例如高斯模糊后的图片虽然 L2 距离和原图相近,但我们却认为丢失了大部分的特征信息。
上方有三组图片,每组的中间一张是原图,两边是噪声图,问题是哪一张更像?图下方是人类和其它一些方法给出的结果。
我们希望让程序能给出和人类一致的结果,最好能给出一种感知距离,这样能够更好的评价目前的一些图片生成或者压缩算法。
一张图片被添加各种噪声,或者压缩之后,多大程度上会影响人类对它的知觉?这个影响是很难量化的,原因是人类感知的一些特性:
- 基于一种比较高级的图像特征,比如语义信息
- 基于『语境』,比方说你很难回答一个黑色的圆和一个黑色的正方形更像,还是和一个红色的圆更像
- 有时并不符合一个距离的定义
在 Imagenet 的分类问题中,通常把各种卷积网络提取的特征层接几层全连接层出分类结果。在迁移到新的问题时,通常可以载入一个这样训练好的模型参数,然后只训练最后一层即可,即把之前的层看作是在图像上提取各种特征。更进一步,可以在两张图片提取出的两个特征间直接计算一个距离,称为感知损失(perceptual loss),这种度量被应用于风格迁移和超分辨率上,有很好的实验效果。
通过实验发现,直接使用感知损失能够把这个问题解决得很不错。我们希望度量不同模型给出的感知损失的性能,以及知道怎么把它们变得更好。
一个很直接的方法就是,造一个数据集让网络有监督地学习这个任务。
BAPPS (Berkeley-Adobe Perceptual Patch Similarity)数据集
这个工作造了一个包含 484k 个标签的超大数据集,每个样本是一个双向强迫选择(2AFC),即给原图和两张噪声图,询问哪一张更像原图。
生成图片噪声的方法有两类,一类是传统方法,另一类是一些用卷积网络生成的图片,因为许多网络生成的图片都带有某些特定结构的噪声。传统方法有,光线调整,模糊,各种噪点、形变色变等。用网络生成图的方法是用这些图片作为一些任务的输入,任务包括去噪,上色,编码解码等,采用不同的网络结构和损失函数。
还从实际算法的生成图中收集了一些图片作为一个测试集。
实验
2AFC 实验就是让网络 F 做一个嵌入(把若干层输出的特征拼一下),计算出一个距离。再训个小模型做分类预测,因为这里的预测不只是 0 / 1,数据集是多人标注的,可能会有不一致的意见,这时候预测值应该是一个 0 到 1 的实数。
2AFC 实验的缺点就是人类判断比较主观,极端情况是标注者可能会有对某一侧图片的偏好。于是论文还做了一个 JND(在心理物理学中,最小可觉差(JND)代表人类或动物,对于某一特定的感官刺激所能察觉的最小改变)实验,即让人标注原图和一张噪声图是否看起来是一张图,类似地训练网络去分类。
对于每个模型,有三种训练方式:
linear :只训练一层线性变换,即图中的 w
tune:加载训好的参数
scratch:参数从高斯分布中初始化
左图是在生成的噪声图上的测试结果,右图是在真实算法的输出图上的测试结果。可以看到,虽然要和人类一致很难,但是网络学出来的度量比低级的距离度量要好不少。
这里用了三种网络结构,SqueezeNet(2.8 MB),AlexNet (9.1 MB) 和 VGG (58.9 MB),虽然参数数量上差距很大,但是表现相近,其中 AlexNet 速度最快。
分析
上图量化了各种方法在两项实验上的表现,深度学习的方法普遍优于传统方法,两项实验显示出了比较强的相关性。
文章还讨论了这两个实验和分类、检测任务性能的相关性。
上图展示了低级的度量方法和深度学习的认为的『相似』或『不相似』的图片类型,可以看出主要是在图片模糊后给出的评价不同。
总结
经过训练的网络能更好地完成感知判断任务,类似的故事也发生在语义判断中。
实验发现在其它视觉任务上表现更好的模型,无论哪种训练方式,都能在感知判断实验中取得相对更好的表现,即一个更适于分类或者检测的特征,也会更适合用于感知判断。