Skip to main content

PyTorch 图像质量评估

项目描述

PIQA 未得到 Facebook, Inc. 的认可;PyTorch、PyTorch 徽标和任何相关标记是 Facebook, Inc. 的商标。

PyTorch 图像质量评估

piqa软件包是各种图像处理任务(例如去噪、超分辨率、图像插值等)中图像质量评估的度量和指标的集合。它仅依赖于PyTorch,并利用其效率和自动微分优势。

PIQA 直接受到该piq项目的启发,但侧重于其(子)模块的简洁性、可读性和可理解性,以便任何人都可以轻松地重用和/或调整它们以满足其需求。

但是,简洁不应该以牺牲效率为代价;PIQA 的实现速度比其他 IQA PyTorch 包(如korniapiqIQA-pytorch.

PIQA应该发音为pika(像皮卡丘⚡️)

安装

piqa软件包在PyPI上可用,这意味着它可以通过以下方式安装pip

pip install piqa

或者,如果您需要最新的功能,您可以使用

pip install git+https://github.com/francois-rozet/piqa

或将包直接复制到您的项目中,使用

git clone https://github.com/francois-rozet/piqa
cp -R piqa/piqa <path/to/project>/piqa

文档

这个包的文档是由 自动生成的Sphinx

入门

piqa中,每个度量都与一个类相关联,torch.nn.Module它的子类必须被实例化以评估度量。

import torch

# PSNR
from piqa import PSNR

x = torch.rand(5, 3, 256, 256)
y = torch.rand(5, 3, 256, 256)

psnr = PSNR()
l = psnr(x, y)

# SSIM
from piqa import SSIM

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

ssim = SSIM().cuda()
l = 1 - ssim(x, y)
l.backward()

torch.nn内置组件一样,这些类基于度量的功能定义,对用户不太友好,但更通用。

import torch

from piqa.ssim import ssim
from piqa.utils.functional import gaussian_kernel

x = torch.rand(5, 3, 256, 256)
y = torch.rand(5, 3, 256, 256)

kernel = gaussian_kernel(11, sigma=1.5).repeat(3, 1, 1)

l = ssim(x, y, kernel=kernel, channel_avg=False)

指标

首字母缩略词 班级 范围 客观的 公制
电视 TV [0, ∞] / 1937年 总变异
信噪比 PSNR [0, ∞] 最大限度 / 峰值信噪比
SSIM SSIM [0, 1] 最大限度 2004年 结构相似性
MS-SSIM MS_SSIM [0, 1] 最大限度 2004年 多尺度结构相似性
LPIPS LPIPS [0, ∞] 分钟 2018 学习感知图像补丁相似度
GMSD GMSD [0, ∞] 分钟 2013 梯度幅度相似度偏差
MS-GMSD MS_GMSD [0, ∞] 分钟 2017 多尺度梯度幅度相似性偏差
MDSI MDSI [0, ∞] 分钟 2016 年 平均偏差相似指数
哈尔PSI HaarPSI [0, 1] 最大限度 2018 哈尔感知相似度指数
VSI VSI [0, 1] 最大限度 2014 基于视觉显着性的索引
FSIM FSIM [0, 1] 最大限度 2011 特征相似度

即时通讯

大多数功能组件都piqa支持 PyTorch 的 JIT, TorchScript,这是一种从 PyTorch 代码创建可序列化和可优化函数的方法。

默认情况下,这些组件的抖动是禁用的。要启用它,必须将PIQA_JIT环境变量设置为1. 暂时这样做,

  • 类 UNIXbash
export PIQA_JIT=1
  • 视窗cmd
set PIQA_JIT=1
  • 微软PowerShell
$env:PIQA_JIT=1

断言

当面向对象的组件没有接收到预期类型的​​输入时,PIQA 使用类型断言来引发有意义的消息。这个特性简化了很多早期的原型设计和调试,但它可能会损害一些性能。

如果您需要绝对最佳的性能,可以使用 Python 标志禁用断言-O。例如,

python -O your_awesome_code_using_piqa.py

或者,您可以在代码中禁用 PIQA 的类型断言

from piqa.utils import set_debug
set_debug(False)

项目详情


下载文件

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

源分布

piqa-1.2.2.tar.gz (24.9 kB 查看哈希

已上传 source

内置分布

piqa-1.2.2-py3-none-any.whl (32.4 kB 查看哈希

已上传 py3