写点什么

AI 简报 - 图像质量评价指标 -LPIPS

  • 2022 年 5 月 14 日
  • 本文字数:923 字

    阅读完需:约 3 分钟

AI简报-图像质量评价指标-LPIPS

1. 意图

如何判断两幅图相似度?


因为图像是高纬度的数据,传统方法中通过像素级别的 PSNR 和 SSIM 来量化两幅图的相似度,但是对于图像来说,人类感知和量化指标存在一定偏差。如下图所示 PSNR 和 SSIM 对于模糊图像不敏感。



这篇文章(The Unreasonable Effectiveness of Deep Features as a Perceptual Metric)给出一种基于人类感知的图像质量评价指标 Learned Perceptual Image Patch Similarity(LPIPS)

2. LPIPS

LPIPS 度量指标是建立在一个 484K 的人类判别的感知数据集(Berkeley-Adobe Perceptual Patch Similarity(BAPPS) Dataset)基础上构建 CNN 网络来构建度量学习。


在构建 BAPPS 数据集时,对参考图进行失真操作,然后人类根据参考图和失真图进行评分。这里涉及到两个部分:如何失真和评分标准。


失真操作包括传统和 CNN 的失真,如下图所示



人为评价标准有两个:


  • 2AFC(two alternative forced choice):给出两种不同失真操作,挑选出和参考图(原始图)最相近的图

  • Just noticeable differences (JND):给出两张图,只判别是否是相同还是不同


有了数据集后,就可以训练 CNN 模型,整个过程如下图所示;特征提取网络结构可以是 VGG,AlexNet,SqueezeNet 等。



如上图所示,将两个比较对象输入网络得到网络的每个特征层,然后进行差值计算,再赋予不同可学习的权重,最后求平均得到评价指标值。接着训练一个简单的网络来学习两个评价指标与人为评价指标差距。



在训练过程中,特征提取网络可以使用预训练的模型,固定权重,只学习特征权重;也可以把预训练模型的权重作为初始值,学习全部权重;也可以重新训练整个流程。

3. 使用

文章提供源代码和预训练模型可以直接对两幅图进行相似性判断,测试还是比较符合人类感知,lpips 也作为许多图片质量评价的标准。


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


pip install lpips
复制代码


import lpipsloss_fn_alex = lpips.LPIPS(net='alex') # best forward scoresloss_fn_vgg = lpips.LPIPS(net='vgg') # closer to "traditional" perceptual loss, when used for optimization
import torchimg0 = torch.zeros(1,3,64,64) # image should be RGB, IMPORTANT: normalized to [-1,1]img1 = torch.zeros(1,3,64,64)d = loss_fn_alex(img0, img1)
复制代码





发布于: 刚刚阅读数: 2
用户头像

公众号:人工智能微客(weker) 2019.11.21 加入

人工智能微客(weker)长期跟踪和分享人工智能前沿技术、应用、领域知识,不定期的发布相关产品和应用,欢迎关注和转发

评论

发布
暂无评论
AI简报-图像质量评价指标-LPIPS_人工智能_AIWeker-人工智能微客_InfoQ写作社区