Fy J
CS专业扫雷学深造学者互联网冲浪一级选手
FRIENDS
jhn

论文研读:LPIPS

01-07-2022 20:51:01 论文研读 图像超分辨率
Word count: 2.5k | Reading time: 9min

原创文章,转载、引用请注明出处!


The Unreasonable Effectiveness of Deep Features as a Perceptual Metric

CVPR 2018

立意

在计算机科学的许多领域中,比较数据都不会构成太大的困难:比如汉明距离、欧几里得距离等,但是视觉相似性(visual similarity)的概念往往是很主观的,旨在模仿人类的视觉感知。

期望得到一个真正的“感知距离”(也就是能明确证明这个感知指标是接近人的主观视觉感知的),已有一些依据感知的距离度量,比如SSIM[58]、MSSIM[60]、FSIM[62]和HDR-VDP[34]。

[58] Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli. Image quality assessment: from error visibility to structural similarity. TIP, 2004. 1, 2, 8, 12, 14
[60] Z. Wang, E. P. Simoncelli, and A. C. Bovik. Multiscale struc- tural similarity for image quality assessment. In Signals, Systems and Computers. IEEE, 2004. 1
[62] L. Zhang, L. Zhang, X. Mou, and D. Zhang. Fsim: A feature similarity index for image quality assessment. TIP, 2011. 1, 2, 12, 14
[34] R.Mantiuk,K.J.Kim,A.G.Rempel,andW.Heidrich.Hdr-
vdp-2: A calibrated visual metric for visibility and quality predictions in all luminance conditions. In ACM Transac- tions on Graphics (TOG), 2011. 1, 12

根据以上背景,文章提出问题:

  • 如何得到一个”感知距离(Perceptual Distance)“,以符合人类判断的方式衡量两个图像的相似程度?

  • 这些”感知损失“与人类的视觉到底有多对应?

  • 它们与网络架构是否有关?

怎样以“感知”的形式衡量图像的相似程度?怎么证明或者评估这种衡量指标的性能?这种衡量指标可否在不同网络架构下通用?

Berkeley-Adobe Perceptual Patch Similarity (BAPPS) Dataset

为了评估不同感知方法的性能,首先对已有方法造成的图像扭曲进行分类和收集,然后使用两种方法收集了一个大规模的高度不同的认知判断数据集,称为BAPPS。

Distortions

Traditional distortions

使用了亮度失真(photometric distortions),随机噪声(random noise),模糊(blurring),空间移位(spatial shifts),损坏(corruptions),压缩伪影(compression artifacts)等20种传统方法进行顺序组合成308种顺序的失真。

这里的“扭曲”,指的是人为添加的失真,也就是直接用图像处理算法对每张图像进行处理。可以看作是数据增广的概念和操作。

Our traditional distortions (left) are performed by basic low-level image editing operations.

CNN-based distortions

通过探索各种图像任务、网络结构和损失函数来模拟可能的算法输出,比如编码(autoencoding)、去噪(Denoising)、着色(Colorization)、超分(Super Resolution)、去模糊(Video Deblurring)、帧插值(Frame Interpolation)等。总成生成了96个去噪自编码器(denoising autoencoders),每个网络的目标不是本身解决任务,而是探索困扰基于深度学习方法输出的常见工件。

Our CNN-based distortions (right) are formed by randomly varying parameters such as task, network architecture, and learning parameters. The goal of the distortions is to mimic plausible distortions seen in real algorithm outputs.

超分部分的工作内容

传统扭曲方法:评估了NTIRE 2017 workshop的结果,使用×2、×3、×4上采样率,使用“未知”下采样创建输入图像,每个上采样倍数都有大约20个算法提交。

基于CNN的扭曲方法:包括双三次上采样和四种性能最好的深度超分辨率方法[24、59、31、48]。结果比较:从Div2K数据集中随机位置的图像中随机抽取64×64 patch进行比较。

原文中没做划分,但应该就是按照之前的两个区分标准进行的扭曲方法。给的四个“效果最好”的模型只看过SRGAN,其他三个都见过。
[24] J.Kim,J.KwonLee,andK.MuLee.Accurateimagesuper- resolution using very deep convolutional networks. In CVPR,
pages 1646–1654, 2016. 4
[59] Z. Wang, D. Liu, J. Yang, W. Han, and T. Huang. Deep networks for image super-resolution with sparse prior. In ICCV, 2015. 4
[31] SRGAN
[48] M. S. Sajjadi, B. Scho ̈lkopf, and M. Hirsch. Enhancenet: Single image super-resolution through automated texture synthesis. ICCV, 2017. 4

Psychophysical Similarity Measurements

2AFC similarity judgments

随机选取一个图片x,使用两种失真(变换)方法生成两张图片x0和x1,让人来判断哪一个更接近原图,记录结果h,最终这一组实验数据表示为T(x,x0,x1,h)

把每一个测试样本称为一个双向强迫选择(2AFC),人平均每次判断花费3秒钟。收集了训练样本151.4K个。

Just noticeable differences (JND)

2AFC的一个缺点是它是”cognitively penetrable(可认知渗透的)“,参与者可以有意识地选择他们在完成任务时选择关注的相似性方面,这就向判断中引入了主观性。

为了反应客观、有意义的内容,还需要收集JND的判断:只给出两张图像,先给出一个参考图像(reference image,2AFC中的x0),然后再给出一张随机失真的图像,询问人图像是相同的还是不同的。

两张图像分别显示1s,间隔为250ms。收集了9.6K个样本。

Deep Feature Spaces

在不同网络的深度特征空间中评估特征的距离。

Network architectures

  • 评估了Squeezenet、AlexNet、VGG网络。使用了VGG网络的5个conv层,还使用了更接近人类视觉皮层结构的较浅的AlexNet以及具有与AlexNet相似性能的轻量SqueezeNet架构。

  • 评估了自监督的方法,包括解谜(puzzle-solving)、跨通道预测(cross-channel prediction)、视频学习(learning from video)和生成建模(generative modeling)。

Network activations to distance

上图左半部分说明了如何用网络计算原图x失真图像x0之间的距离:从L层中提取特征堆栈,并在通道维度中进行单元归一化(unit-normalize in the channel dimension)。

对于l层,将得到的结果记为y^l,y^l0(Hl*wl*cl)。利用向量wl缩放激活通道并计算l2距离,最后在空间上求平均值,在信道上求和。

Note that using wl = 1∀l is equivalent to computing cosine distance.

上图的右半部分用于映射得分h的小网络G使用了 2个32通道的FC-ReLU层、单通道FC层和sigmoid层。

相似性度量的损失函数为:

来自Appendix部分的B. Model Training Details,正文中没有提到。

Training on our data

考虑一些不同的训练方式来进行感知判断:lin,tune,scratch。三个变种统称为Learned Perceptual Image Patch Similarity (LPIPS) metric。

  • lin:保持预训练网络权重不变,在顶部学习线性权重w,这构成了已有特征空间中一些参数的”感知校准(perceptual calibration);

  • tune:从预先训练的分类模型初始化,并允许对网络的所有权重进行微调;

  • scratch:从随机高斯分布进行权重初始化,并完全根据前文判断对其进行训练。

这里的训练策略,lin没有查到;tune相关的词是fine-tune;scratch是有的,但具体所指意义不明。对于这三个训练策略,原文中也没有引用什么论文加以说明。

实验

部分实验结果:图4、5、6(11);表5。

以问答形式解释了实验结果,部分重点如下:

  1. low-level metrics和Classification networks的性能如何?
    答:图4a,红色同黑色的比较和其他颜色同黑色的比较;表5(Appendix中A. Quantitative Results)。Classification networks的表现要明显优于low-level metrics。

  2. 网络是否必须是Classification的任务?
    答:图4a,绿色右1、2和蓝色左1。网络不一定要在Classification任务上训练。BiGAN,Puzzle,Splitbrain等无监督和自监督模型特征和监督模型差距不大。

  3. 不同的感知任务之间是否存在相关性?
    答:图5。没有说明相关的程度,只给了结果。

  4. 我们可以针对传统的和基于CNN的失真训练一个指标吗?(这个问题的问法和回答有点对不上,因该是问题叙述没叙述清楚,应该是是否可以用第二部分收集到的数据训练出一个可以用来评估的感知指标,该指标的效果如何?
    答:图4a,右1-9,紫、粉、棕黄色。通过实验证实了更高容量的网络VGG比低容量的SqueezeNet和AlexNet架构表现更好,也就证实了网络确实可以从感知判断中学习。

  5. 关于传统和基于CNN的扭曲的训练是否转移到了real-world场景中?(迁移到真实算法中是否能提高性能?
    答:图4b,右1-9,紫、粉、棕黄色。学习线性分类器(紫)可以提高所有网络的性能。从零开始训练一个网络(粉),AlexNet的性能略低,而VGG的性能略高于线性校准。总结:使用数据“校准”预先存在的表征的激活是实现性能小幅提升的安全方法(分别为1.1%、0.3%和1.5%)。

  6. deep metrics和low-level metrics在哪里不一致?(扭曲的定性比较?
    答:图6;图11(Appendix中B. Model Training Details,图6的拓展,和图6性质一样)。使用BiGAN进行对比实验,认为相关噪声模式比SSIM失真更小。

其他

文章:https://arxiv.org/abs/1801.03924

code:https://www.github.com/richzhang/PerceptualSimilarity

如何使用:https://blog.csdn.net/Magic_o/article/details/106770317

感想

LPIPS这个方法本身,从数据收集到网络训练,难度并不高,但非常流畅。对实验结果做了很详细的解释,这一点是非常好的,因为如果只是将提高的性能作为结果摆上去,说服力也就那样,但针对不同位置进行的解释,就给了这个方法极大的可用性和拓展性。

估计是受限于篇幅,并没有对每个算法之间的指标进行逻辑上的比较,算是这篇文章没有完成的内容,可以作为自己写论文过程中指标对比的一个论点去写。

使用过程中发现LPIPS计算图像距离,速度并不是特别快,想要将这个当作新的SR指标,还是需要考虑时间成本的。

< PreviousPost
MODIS部分数据说明及解析
NextPost >
SR Baseline Model code detail
CATALOG
  1. 1. 立意
  2. 2. Berkeley-Adobe Perceptual Patch Similarity (BAPPS) Dataset
    1. 2.1. Distortions
      1. 2.1.1. Traditional distortions
      2. 2.1.2. CNN-based distortions
      3. 2.1.3. 超分部分的工作内容
    2. 2.2. Psychophysical Similarity Measurements
      1. 2.2.1. 2AFC similarity judgments
      2. 2.2.2. Just noticeable differences (JND)
  3. 3. Deep Feature Spaces
    1. 3.1. Network architectures
    2. 3.2. Network activations to distance
    3. 3.3. Training on our data
  4. 4. 实验
  5. 5. 其他
  6. 6. 感想