Pytorch Image Quality (PIQ) tidak didukung oleh Facebook, Inc.;
Pytorch, logo Pytorch dan tanda terkait apa pun adalah merek dagang dari Facebook, Inc.


Pytorch Image Quality (PIQ) adalah kumpulan ukuran dan metrik untuk penilaian kualitas gambar. PIQ membantu Anda berkonsentrasi pada percobaan Anda tanpa kode boilerplate. Perpustakaan berisi serangkaian tindakan dan metrik yang terus diperpanjang. Untuk pengukuran/metrik yang dapat digunakan sebagai fungsi kerugian, modul pytorch yang sesuai diimplementasikan.
Kami menyediakan:
PIQ awalnya bernama Photosynthesis.metrics.
Kualitas gambar pytorch (PIQ) dapat diinstal menggunakan pip , conda atau git .
Jika Anda menggunakan pip , Anda dapat menginstalnya dengan:
$ pip install piq Jika Anda menggunakan conda , Anda dapat menginstalnya dengan:
$ conda install piq -c photosynthesis-team -c conda-forge -c PyTorchJika Anda ingin menggunakan fitur terbaru langsung dari master, klon PIQ repo:
git clone https://github.com/photosynthesis-team/piq.git
cd piq
python setup.py installDokumentasi lengkap tersedia di https://piq.readthedocs.io.
Kelompok metrik (seperti PSNR, SSIM, Brisque) mengambil gambar atau sepasang gambar sebagai input untuk menghitung jarak di antara mereka. Kami memiliki antarmuka fungsional, yang mengembalikan nilai metrik, dan antarmuka kelas, yang memungkinkan untuk menggunakan metrik apa pun sebagai fungsi kerugian.
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 ()Untuk daftar lengkap contoh, lihat contoh metrik gambar.
Kelompok metrik (seperti IS, FID, KID) mengambil daftar fitur gambar untuk menghitung jarak antar distribusi. Fitur gambar dapat diekstraksi oleh beberapa jaringan ekstraktor fitur secara terpisah atau dengan menggunakan metode compute_feats dari suatu kelas.
compute_feats mengkonsumsi loader data dari format yang telah ditentukan. 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 )Jika Anda sudah memiliki fitur gambar, gunakan antarmuka kelas untuk komputasi skor:
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 )Untuk daftar lengkap contoh, lihat contoh metrik fitur.
| Akronim | Tahun | Metrik |
|---|---|---|
| Psnr | - | Rasio Signal-to-Noise puncak |
| SSIM | 2003 | Kesamaan struktural |
| Ms-ssim | 2004 | Kesamaan struktural multi-skala |
| IW-ssim | 2011 | Konten informasi indeks kesamaan struktural tertimbang |
| Vifp | 2004 | Fidelity Informasi Visual |
| FSIM | 2011 | Ukuran indeks kesamaan fitur |
| Sr-sim | 2012 | Kesamaan berbasis residu spektral |
| GMSD | 2013 | Deviasi kesamaan besarnya gradien |
| MS-GMSD | 2017 | Deviasi Kesamaan Besar Gradien Multi-Skala |
| VSI | 2014 | Indeks yang diinduksi oleh arti-penting visual |
| DSS | 2015 | Indeks kesamaan Subband DCT |
| - | 2016 | Skor konten |
| - | 2016 | Skor gaya |
| Haarpsi | 2016 | Indeks kesamaan persepsi haar |
| Mdsi | 2016 | Rata -rata indeks kesamaan penyimpangan |
| LPIPS | 2018 | Kesamaan tambalan gambar perseptual yang dipelajari |
| PieApp | 2018 | Penilaian kesalahan gambar perseptual melalui preferensi berpasangan |
| Dists | 2020 | Struktur gambar yang dalam dan kesamaan tekstur |
| Akronim | Tahun | Metrik |
|---|---|---|
| televisi | 1937 | Variasi total |
| Brisque | 2012 | Evaluator kualitas spasial buta/referensi |
| Clip-iqa | 2022 | Clip-iqa |
| Akronim | Tahun | Metrik |
|---|---|---|
| ADALAH | 2016 | Skor awal |
| Fid | 2017 | Jarak awal Frechet |
| GS | 2018 | Skor geometri |
| ANAK | 2018 | Kernel Inception Distance |
| MSID | 2019 | Jarak intrinsik multi-skala |
| Pr | 2019 | Meningkatkan ketepatan dan penarikan kembali |
Sebagai bagian dari perpustakaan kami, kami menyediakan kode untuk membandingkan semua metrik pada satu set database skor rata -rata umum. Saat ini kami mendukung beberapa referensi penuh (TID2013, KADID10K dan PIPAL) dan data NO-referensi (KoniQ10K dan Live-ITW). Anda perlu mengunduhnya secara terpisah dan memberikan jalur ke gambar sebagai argumen untuk skrip.
Berikut adalah contoh cara mengevaluasi metrik SSIM dan MS-SSIM pada dataset TID2013:
python3 tests/results_benchmark.py --dataset tid2013 --metrics SSIM MS-SSIM --path ~ /datasets/tid2013 --batch_size 16Di bawah ini kami memberikan perbandingan antara nilai koefisien korelasi peringkat Spearman (SRCC) yang diperoleh dengan PIQ dan dilaporkan dalam survei. Nilai SRCC yang lebih dekat menunjukkan tingkat kesepakatan yang lebih tinggi antara hasil perhitungan pada set data yang diberikan. Kami tidak melaporkan koefisien korelasi peringkat Kendall (KRCC) karena sangat berkorelasi dengan SRCC dan memberikan informasi tambahan yang terbatas. Kami tidak melaporkan koefisien korelasi linier Pearson (PLCC) karena sangat tergantung pada metode pemasangan dan bias terhadap contoh sederhana.
Untuk metrik yang dapat mengambil gambar greyscale atau warna, c berarti versi kromatik.
| TID2013 | Kadid10k | Pipal | |
|---|---|---|---|
| Sumber | PIQ / Referensi | PIQ / Referensi | PIQ / Referensi |
| 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 / - |
| Isi | 0.71 / - | 0.72 / - | 0.45 / - |
| Gaya | 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 |
| Brisque | 0.37 / 0.84 eval2019 | 0,33 / 0,53 kadid10k | 0.21 / - |
| Clip-iqa | 0,50 / - | 0.48 / - | 0.26 / - |
| ADALAH | 0.26 / - | 0.25 / - | 0,09 / - |
| Fid | 0.67 / - | 0.66 / - | 0.18 / - |
| ANAK | 0.42 / - | 0.66 / - | 0.12 / - |
| MSID | 0.21 / - | 0.32 / - | 0,01 / - |
| GS | 0.37 / - | 0.37 / - | 0,02 / - |
| Koniq10k | Live-itw | |
|---|---|---|
| Sumber | PIQ / Referensi | PIQ / Referensi |
| Brisque | 0.22 / - | 0.31 / - |
| Clip-iqa | 0.68 / 0.68 CLIP-IQA OFF | 0.64 / 0.64 CLIP-IQA OFF |
Tidak seperti FR dan NR IQMS, yang dirancang untuk menghitung jarak gambar-bijaksana, metrik DB membandingkan distribusi set gambar. Untuk mengatasi masalah ini, kami mengadopsi cara yang berbeda untuk menghitung DB IQMS yang diusulkan dalam https://arxiv.org/abs/2203.07809. Alih -alih mengekstraksi fitur dari seluruh gambar, kami memotongnya menjadi ubin yang tumpang tindih dengan ukuran 96 × 96 dengan stride = 32 . Pra-pemrosesan ini memungkinkan kita untuk memperlakukan setiap pasangan gambar sebagai sepasang distribusi ubin, memungkinkan perbandingan lebih lanjut. Tahap lain menghitung DB IQM tetap utuh.
Di PIQ kami menggunakan pernyataan untuk menaikkan pesan yang bermakna ketika beberapa komponen tidak menerima input dari jenis yang diharapkan. Ini membuat prototyping dan debugging lebih mudah, tetapi mungkin merusak kinerja. Untuk menonaktifkan semua cek, gunakan bendera python -O : python -O your_script.py
Lihat masalah terbuka untuk daftar fitur yang diusulkan dan masalah yang diketahui.
Jika Anda ingin membantu mengembangkan perpustakaan ini, Anda akan menemukan informasi lebih lanjut dalam panduan kontribusi kami.
Jika Anda menggunakan PIQ di proyek Anda, silakan, kutipnya sebagai berikut.
@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]