Pytorch 이미지 품질 (PIQ)은 Facebook, Inc.에서 승인하지 않습니다.
Pytorch, Pytorch 로고 및 관련 마크는 Facebook, Inc.의 상표입니다.


Pytorch 이미지 품질 (PIQ)은 이미지 품질 평가를위한 측정 및 메트릭 모음입니다. PIQ는 보일러 플레이트 코드없이 실험에 집중할 수 있도록 도와줍니다. 라이브러리에는 지속적으로 확장되고있는 일련의 측정 및 메트릭이 포함되어 있습니다. 손실 함수로 사용할 수있는 측정/메트릭의 경우 해당 Pytorch 모듈이 구현됩니다.
우리는 다음과 같이 제공합니다.
PIQ는 처음에 광합성으로 명명되었습니다.
PIC (Pytorch 이미지 품질)는 pip , conda 또는 git 사용하여 설치할 수 있습니다.
pip 사용하는 경우 다음과 같이 설치할 수 있습니다.
$ pip install piq conda 사용하는 경우 다음과 같이 설치할 수 있습니다.
$ conda install piq -c photosynthesis-team -c conda-forge -c PyTorch마스터에서 바로 최신 기능을 사용하려면 Clone Piq Repo :
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 )예제의 전체 목록은 기능 메트릭 예제를 참조하십시오.
| 두문자어 | 년도 | 메트릭 |
|---|---|---|
| PSNR | - | 피크 신호 대 잡음비 |
| SSIM | 2003 | 구조적 유사성 |
| MS-SSIM | 2004 | 다중 규모 구조적 유사성 |
| IW-SSIM | 2011 | 정보 내용 가중 구조적 유사성 지수 |
| vifp | 2004 | 시각 정보 충실도 |
| FSIM | 2011 | 기능 유사성 색인 측정 |
| SR-SIM | 2012 | 스펙트럼 잔류 기반 유사성 |
| GMSD | 2013 | 구배 크기 유사성 편차 |
| MS-GMSD | 2017 | 다중 규모의 그라디언트 크기 유사성 편차 |
| VSI | 2014 | 시각적 돌출 된 인덱스 |
| DSS | 2015 | DCT 서브 밴드 유사성 지수 |
| - | 2016 | 컨텐츠 점수 |
| - | 2016 | 스타일 스코어 |
| Haarpsi | 2016 | Haar 지각 유사성 지수 |
| MDSI | 2016 | 평균 편차 유사성 지수 |
| LPIP | 2018 | 배운 지각 이미지 패치 유사성 |
| pieapp | 2018 | 쌍별 선호도를 통한 지각 이미지 오류 평가 |
| Dists | 2020 | 깊은 이미지 구조 및 텍스처 유사성 |
| 두문자어 | 년도 | 메트릭 |
|---|---|---|
| TV | 1937 | 총 변화 |
| 브리 스크 | 2012 | 맹인/참조가없는 이미지 공간 품질 평가자 |
| 클립 -IQA | 2022 | 클립 -IQA |
| 두문자어 | 년도 | 메트릭 |
|---|---|---|
| 이다 | 2016 | 시작 점수 |
| 버팀대 | 2017 | Frechet Inception 거리 |
| GS | 2018 | 기하학적 점수 |
| 어린이 | 2018 | 커널 시작 거리 |
| MSID | 2019 | 다중 규모의 고유 거리 |
| PR | 2019 | 개선 된 정밀도 및 리콜 |
우리는 라이브러리의 일부로 공통 평균 Opinon Scores 데이터베이스 세트에 대한 모든 메트릭을 벤치마킹하기위한 코드를 제공합니다. 현재 우리는 몇 가지 전체 참조 (TID2013, KADID10K 및 PIPAL) 및 NO 참조 (KONIQ10K 및 LIVE-ITW) 데이터 세트를 지원합니다. 별도로 다운로드하고 스크립트의 인수로 이미지로가는 경로를 제공해야합니다.
다음은 TID2013 데이터 세트에서 SSIM 및 MS-SSIM 메트릭을 평가하는 방법입니다.
python3 tests/results_benchmark.py --dataset tid2013 --metrics SSIM MS-SSIM --path ~ /datasets/tid2013 --batch_size 16아래에서 우리는 PIQ로 얻은 SRCC (Spearman의 순위 상관 계수) 값과 조사에서보고 된 비교를 제공합니다. 더 가까운 SRCC 값은 주어진 데이터 세트에서 계산 결과 사이의 더 높은 일치 정도를 나타냅니다. Kendall Rank Correlation Coefficient (KRCC)는 SRCC와 높은 상관 관계가 있고 추가 정보를 제공하기 때문에보고하지 않습니다. 피팅 방법에 크게 의존하고 간단한 예제에 편향되어 있기 때문에 Pearson Linear Correlation Coefficient (PLCC)는보고하지 않습니다.
Greyscale 또는 Color Images를 취할 수있는 메트릭의 경우 c 색채 버전을 의미합니다.
| TID2013 | Kadid10k | PIPAL | |
|---|---|---|---|
| 원천 | PIQ / 참조 | PIQ / 참조 | PIQ / 참조 |
| PSNR | 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 Eval2019 | 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 Eval2019 | 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 Eval2019 | 0.88 / 0.86 Kadid10k | 0.54 / - |
| DSS | 0.79 / 0.79 Eval2019 | 0.86 / 0.86 Kadid10k | 0.63 / - |
| 콘텐츠 | 0.71 / - | 0.72 / - | 0.45 / - |
| 스타일 | 0.54 / - | 0.65 / - | 0.34 / - |
| Haarpsi | 0.87 / 0.87 Haarpsi | 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 Dists | 0.72 / - | 0.57 / 0.58 PIPAL |
| pieapp | 0.84 / 0.88 Dists | 0.87 / - | 0.70 / 0.71 PIPAL |
| Dists | 0.81 / 0.83 Dists | 0.88 / - | 0.62 / 0.66 PIPAL |
| 브리 스크 | 0.37 / 0.84 Eval2019 | 0.33 / 0.53 Kadid10k | 0.21 / - |
| 클립 -IQA | 0.50 / - | 0.48 / - | 0.26 / - |
| 이다 | 0.26 / - | 0.25 / - | 0.09 / - |
| 버팀대 | 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 / - |
| Koniq10k | 살아있는 | |
|---|---|---|
| 원천 | PIQ / 참조 | PIQ / 참조 |
| 브리 스크 | 0.22 / - | 0.31 / - |
| 클립 -IQA | 0.68 / 0.68 CLIP-IQA OFF | 0.64 / 0.64 CLIP-IQA OFF |
DB 메트릭은 이미지 별 거리를 계산하도록 설계된 FR 및 NR IQM과 달리 이미지 세트 의 분포를 비교합니다. 이러한 문제를 해결하기 위해 https://arxiv.org/abs/2203.07809에서 제안 된 DB IQMS를 계산하는 다른 방법을 채택합니다. 전체 이미지에서 기능을 추출하는 대신, 우리는 stride = 32 인 크기 96 × 96 의 겹치는 타일로 자르고 있습니다. 이 사전 프로세싱을 통해 각 이미지 쌍을 타일 분포 쌍으로 취급하여 추가 비교를 가능하게합니다. DB IQM을 컴퓨팅하는 다른 단계는 그대로 유지됩니다.
PIQ에서는 일부 구성 요소가 예상 유형의 입력을받지 못할 때 의미있는 메시지를 제기하기 위해 어설 션을 사용합니다. 이로 인해 프로토 타이핑 및 디버깅이 더 쉬워 지지만 성능이 손상 될 수 있습니다. 모든 검사를 비활성화하려면 Python -O 플래그 : python -O your_script.py 사용하십시오.
제안 된 기능 및 알려진 문제 목록은 열린 문제를 참조하십시오.
이 라이브러리 개발을 돕고 싶다면 기여 가이드에서 더 많은 정보를 찾을 수 있습니다.
프로젝트에서 PIQ를 사용하는 경우 다음과 같이 인용하십시오.
@misc{kastryulin2022piq,
title = {PyTorch Image Quality: Metrics for Image Quality Assessment},
url = {https://arxiv.org/abs/2208.14818},
author = {Kastryulin, Sergey and Zakirov, Jamil and Prokopenko, Denis and Dylov, Dmitry V.},
doi = {10.48550/ARXIV.2208.14818},
publisher = {arXiv},
year = {2022}
}@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}
} Sergey Kastryulin- @snk4tr- [email protected]
Jamil Zakirov- @zakajd- [email protected]
Denis Prokopenko- @denproc- [email protected]