Skip to main content

image2image 任务的度量和指标。火炬。

项目描述

https://raw.githubusercontent.com/photosynthesis-team/piq/master/docs/source/_static/piq_logo_main.png

PyTorch 图像质量 (PIQ) 未得到 Facebook, Inc. 的认可;

PyTorch、PyTorch 徽标和任何相关标记是 Facebook, Inc. 的商标。

皮皮版本 康达版 CI flake-8 样式检查 持续集成测试 编解码器 质量门状态

PyTorch 图像质量 (PIQ)是用于图像质量评估的度量和指标的集合。PIQ 可帮助您在没有样板代码的情况下专注于您的实验。该库包含一组不断扩展的度量和指标。对于可用作损失函数的度量/指标,实现了相应的 PyTorch 模块。

我们提供:

  • 统一接口,易于使用和扩展。

  • 写在纯 PyTorch 上,具有极少的附加依赖项。

  • 广泛的用户输入验证。您的代码不会在训练过程中崩溃。

  • 快速(可用 GPU 计算)且可靠。

  • 大多数指标可以反向传播以进行模型优化。

  • 支持python 3.6-3.8。

PIQ 最初被命名为PhotoSynthesis.Metrics

安装

PyTorch Image Quality (PIQ)可以使用pipcondagit安装。

如果你使用pip,你可以安装它:

$ pip install piq

如果你使用conda,你可以安装它:

$ conda install piq -c photosynthesis-team -c conda-forge -c PyTorch

如果您想直接使用 master 的最新功能,请克隆PIQ 存储库

git clone https://github.com/photosynthesis-team/piq.git
cd piq
python setup.py install

文档

完整的文档可在https://piq.readthedocs.io获得。

使用示例

基于图像的指标

这组指标(例如 PSNR、SSIM、BRISQUE)将一张或一对图像作为输入来计算它们之间的距离。我们有一个返回度量值的功能接口和一个允许使用任何度量作为损失函数的类接口。

import torch
from piq import ssim, SSIMLoss

x = torch.rand(4, 3, 256, 256, requires_grad=True)
y = torch.rand(4, 3, 256, 256)

ssim_index: torch.Tensor = ssim(x, y, data_range=1.)

loss = SSIMLoss(data_range=1.)
output: torch.Tensor = loss(x, y)
output.backward()

有关示例的完整列表,请参阅图像指标示例。

基于分布的指标

这组指标(例如 IS、FID、KID)采用图像特征列表来计算分布之间的距离。图像特征可以通过某些特征提取器网络单独提取,也可以使用类的compute_feats方法提取。

笔记:

compute_feats使用预定义格式的数据加载器。

import torch
from torch.utils.data import DataLoader
from piq import FID

first_dl, second_dl = DataLoader(), DataLoader()
fid_metric = FID()
first_feats = fid_metric.compute_feats(first_dl)
second_feats = fid_metric.compute_feats(second_dl)
fid: torch.Tensor = fid_metric(first_feats, second_feats)

如果您已经有图像特征,请使用类接口进行分数计算:

import torch
from piq import FID

x_feats = torch.rand(10000, 1024)
y_feats = torch.rand(10000, 1024)
msid_metric = MSID()
msid: torch.Tensor = msid_metric(x_feats, y_feats)

有关示例的完整列表,请参阅功能指标示例。

指标列表

完整参考 (FR)

首字母缩略词

公制

信噪比

-

峰值信噪比

SSIM

2003年

结构相似性

MS-SSIM

2004年

多尺度结构相似性

IW-SSIM

2011

信息内容加权结构相似度指数

VIFp

2004年

视觉信息保真度

FSIM

2011

特征相似性指数测量

SR-SIM

2012

基于光谱残差的相似性

GMSD

2013

梯度幅度相似度偏差

VSI

2014

视觉显着性指数

DSS

2015

DCT子带相似指数

-

2016 年

内容分数

-

2016 年

风格分数

哈尔PSI

2016 年

哈尔感知相似度指数

MDSI

2016 年

平均偏差相似指数

MS-GMSD

2017

多尺度梯度幅度相似性偏差

LPIPS

2018

学习感知图像补丁相似性

PieAPP

2018

通过成对偏好的感知图像错误评估

分布

2020

深度图像结构和纹理相似度

无参考 (NR)

首字母缩略词

公制

电视

1937年

总变异

布里斯克

2012

盲/无参考图像空间质量评估器

基于分布 (DB)

首字母缩略词

公制

2016 年

初始分数

FID

2017

Frechet 起始距离

GS

2018

几何分数

孩子

2018

内核起始距离

MSID

2019

多尺度内在距离

公关

2019

提高精度和召回率

基准

作为我们库的一部分,我们提供代码来对一组常见的平均意见得分数据库上的所有指标进行基准测试。目前我们支持TID2013KADID10kPIPAL。您需要单独下载它们并提供图像路径作为脚本的参数。

以下是如何在 TID2013 数据集上评估 SSIM 和 MS-SSIM 指标的示例:

python3 tests/results_benchmark.py --dataset tid2013 --metrics SSIM MS-SSIM --path ~/datasets/tid2013 --batch_size 16

下面我们提供了使用 PIQ 获得并在调查中报告的Spearman 等级相关系数(SRCC) 值之间的比较。更接近的 SRCC 值表明给定数据集的计算结果之间的一致性程度更高。我们不报告Kendall 等级相关系数(KRCC),因为它与 SRCC 高度相关并且提供的附加信息有限。我们不报告Pearson 线性相关系数(PLCC),因为它高度依赖于拟合方法并且偏向于简单的示例。

对于可以拍摄灰度或彩色图像的指标,c表示彩色版本。

TID2013

KADID10k

皮帕尔

资源

PIQ / 参考

PIQ / 参考

PIQ / 参考

信噪比

0.69 / 0.69 TID2013

0.68 / -

0.41 / 0.41 PIPAL

SSIM

0.72 / 0.64 TID2013

0.72 / 0.72 KADID10k

0.50 / 0.53 PIPAL

MS-SSIM

0.80 / 0.79 TID2013

0.80 / 0.80 KADID10k

0.55 / 0.46 PIPAL

IW-SSIM

0.78 / 0.78评估 2019

0.85 / 0.85 KADID10k

0.60 / -

VIFp

0.61 / 0.61 TID2013

0.65 / 0.65 KADID10k

0.50 / -

FSIM

0.80 / 0.80 TID2013

0.83 / 0.83 KADID10k

0.59 / 0.60 PIPAL

FSIMc

0.85 / 0.85 TID2013

0.85 / 0.85 KADID10k

0.59 / -

SR-SIM

0.81 / 0.81评估 2019

0.84 / 0.84 KADID10k

0.57 / -

SR-SIMc

0.87 / -

0.87 / -

0.57 / -

GMSD

0.80 / 0.80 MS-GMSD

0.85 / 0.85 KADID10k

0.58 / -

VSI

0.90 / 0.90评估 2019

0.88 / 0.86 KADID10k

0.54 / -

DSS

0.79 / 0.79评估 2019

0.86 / 0.86 KADID10k

0.63 / -

内容

0.71 / -

0.72 / -

0.45 / -

风格

0.54 / -

0.65 / -

0.34 / -

哈尔PSI

0.87 / 0.87哈尔PSI

0.89 / 0.89 KADID10k

0.59 / -

MDSI

0.89 / 0.89 MDSI

0.89 / 0.89 KADID10k

0.59 / -

MS-GMSD

0.81 / 0.81 MS-GMSD

0.85 / -

0.59 / -

MS-GMSDc

0.89 / 0.89 MS-GMSD

0.87 / -

0.59 / -

LPIPS-VGG

0.67 / 0.67分布

0.72 / -

0.57 / 0.58 PIPAL

PieAPP

0.84 / 0.88分布

0.87 / -

0.70 / 0.71 PIPAL

分布

0.81 / 0.83分布

0.88 / -

0.62 / 0.66 PIPAL

布里斯克

0.37 / 0.84评估 2019

0.33 / 0.53 KADID10k

0.21 / -

0.26 / -

0.25 / -

0.09 / -

FID

0.67 / -

0.66 / -

0.18 / -

孩子

0.42 / -

0.66 / -

0.12 / -

MSID

0.21 / -

0.32 / -

0.01 / -

GS

0.37 / -

0.37 / -

0.02 / -

与旨在计算图像距离的 FR 和 NR IQM 不同,DB 指标比较图像的分布。为了解决这些问题,我们采用了一种不同的方式来计算https://arxiv.org/abs/2203.07809中提出的 DB IQM 。我们不是从整个图像中提取特征,而是将它们裁剪成大小为96 × 96的重叠图块,步幅 = 32。这种预处理允许我们将每对图像视为一对瓷砖分布,从而进行进一步的比较。计算 DB IQM 的其他阶段保持不变。

断言

在 PIQ 中,当某些组件没有收到预期类型的​​输入时,我们使用断言来引发有意义的消息。这使得原型设计和调试更容易,但它可能会损害性能。要禁用所有检查,请使用 Python -O标志:python -O your_script.py

路线图

有关建议的功能和已知问题的列表,请参阅未解决的问题。

贡献

如果您想帮助开发这个库,您可以在我们的贡献指南中找到更多信息。

引文

如果您在项目中使用 PIQ,请按如下方式引用它。

@misc{piq,
  title={{PyTorch Image Quality}: Metrics and Measure for Image Quality Assessment},
  url={https://github.com/photosynthesis-team/piq},
  note={Open-source software available at https://github.com/photosynthesis-team/piq},
  author={Sergey Kastryulin and Dzhamil Zakirov and Denis Prokopenko},
  year={2019},
}

联系人

谢尔盖 Kastryulin - @snk4tr - snk4tr@gmail.com

Jamil Zakirov - @zakajd - djamilzak@gmail.com

Denis Prokopenko - @denproc - d.prokopenko@outlook.com

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

piq-0.7.0.tar.gz (108.0 kB 查看哈希

已上传 source

内置分布

piq-0.7.0-py3-none-any.whl (139.5 kB 查看哈希

已上传 py3