لا يتم اعتماد جودة صورة Pytorch (PIQ) بواسطة Facebook ، Inc. ؛
Pytorch ، شعار Pytorch وأي علامات ذات صلة هي علامات تجارية لـ Facebook ، Inc.


جودة صورة Pytorch (PIQ) هي مجموعة من التدابير والمقاييس لتقييم جودة الصورة. يساعدك PIQ على التركيز على تجاربك بدون رمز الغلاية. تحتوي المكتبة على مجموعة من التدابير والمقاييس التي يتم تمديدها باستمرار. بالنسبة للتدابير/المقاييس التي يمكن استخدامها كوظائف الخسارة ، يتم تنفيذ وحدات Pytorch المقابلة.
نحن نقدم:
تم تسمية PIQ في البداية بالتمثيل الضوئي.
يمكن تثبيت جودة صورة Pytorch (PIQ) باستخدام pip أو conda أو git .
إذا كنت تستخدم pip ، يمكنك تثبيته بـ:
$ pip install piq إذا كنت تستخدم conda ، يمكنك تثبيته بـ:
$ conda install piq -c photosynthesis-team -c conda-forge -c PyTorchإذا كنت ترغب في استخدام أحدث الميزات مباشرة من Master ، 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 | المعلومات البصرية الإخلاص |
| فسيم | 2011 | مقياس مؤشر تشابه الميزة |
| SR-SIM | 2012 | التشابه القائم على المتبقية الطيفية |
| GMSD | 2013 | انحراف تشابه حجم التدرج |
| MS-GMSD | 2017 | انحراف تشابه التدرج متعدد النطاق |
| VSI | 2014 | مؤشر البصري الناجم عن الملوث |
| DSS | 2015 | مؤشر تشابه النطاق الفرعي DCT |
| - | 2016 | درجة المحتوى |
| - | 2016 | النتيجة النمط |
| هارسبسي | 2016 | مؤشر التشابه الإدراكي HAAR |
| MDSI | 2016 | يعني مؤشر تشابه الانحراف |
| LPIPs | 2018 | متشابه تصحيح الصورة الإدراكية الحسية |
| بي | 2018 | تقييم إدراك الصور الإدراكية من خلال التفضيل الزوجي |
| dists | 2020 | بنية الصورة العميقة وتشابه الملمس |
| اختصار | سنة | متري |
|---|---|---|
| تلفزيون | 1937 | التباين الكلي |
| بريسك | 2012 | أعمى/غير مرجعية تقييم الجودة المكانية |
| مقطع IQA | 2022 | مقطع IQA |
| اختصار | سنة | متري |
|---|---|---|
| يكون | 2016 | درجة البداية |
| fid | 2017 | مسافة تأسيس فريشيت |
| GS | 2018 | درجة الهندسة |
| طفل | 2018 | مسافة تأسيس نواة |
| MSID | 2019 | مسافة جوهرية متعددة النطاق |
| العلاقات العامة | 2019 | تحسين الدقة والاستدعاء |
كجزء من مكتبتنا ، نقدم رمزًا لقياس جميع المقاييس على مجموعة من قواعد بيانات علامات الرأي المتوسطة الشائعة. نحن ندعم حاليًا العديد من المرجع الكامل (TID2013 و KADID10K و PIPAL) وبطاقات بيانات NO-REFERENCE (KONIQ10K و LIVE-ITW). تحتاج إلى تنزيلها بشكل منفصل وتوفير المسار إلى الصور كوسيطة للنص.
فيما يلي مثال على كيفية تقييم مقاييس SSIM و MS-SSIM على مجموعة بيانات TID2013:
python3 tests/results_benchmark.py --dataset tid2013 --metrics SSIM MS-SSIM --path ~ /datasets/tid2013 --batch_size 16أدناه نقدم مقارنة بين قيم معامل ارتباط رتبة سبيرمان (SRCC) التي تم الحصول عليها مع PIQ والمبلغ عنها في الدراسات الاستقصائية. تشير قيم SRCC أقرب إلى درجة الاتفاق العليا بين نتائج الحسابات على مجموعات البيانات المحددة. لا نقوم بالإبلاغ عن معامل ارتباط Kendall Rank (KRCC) لأنه مرتبط بشكل كبير مع SRCC ويوفر معلومات إضافية محدودة. نحن لا نقوم بالإبلاغ عن معامل الارتباط الخطي في بيرسون (PLCC) لأنه يعتمد بشكل كبير على طريقة التركيب وهو متحيز تجاه أمثلة بسيطة.
بالنسبة للمقاييس التي يمكن أن تلتقط صورًا خضراء أو ملونة ، تعني 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 / - |
| فسيم | 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 / - |
| هارسبسي | 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 |
| بي | 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 / - |
| 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 / - |
| Koniq10k | Live-Itw | |
|---|---|---|
| مصدر | PIQ / المرجع | PIQ / المرجع |
| بريسك | 0.22 / - | 0.31 / - |
| مقطع IQA | 0.68 / 0.68 Clip-IQA OFF | 0.64 / 0.64 clip-iqa قبالة |
على عكس FR و NR IQMS ، المصمم لحساب مسافة الصورة ، تقارن مقاييس DB توزيعات مجموعات الصور. لمعالجة هذه المشكلات ، نعتمد طريقة مختلفة لحساب IQMs DB المقترحة في https://arxiv.org/abs/2203.07809. بدلاً من استخراج الميزات من الصور بأكملها ، نقصها في بلاط متداخلة من حجم 96 × 96 مع stride = 32 . تتيح لنا هذه المعالجة المسبقة معالجة كل زوج من الصور كزوج من توزيعات البلاط ، مما يتيح المزيد من المقارنة. المراحل الأخرى من حساب DB IQMs يتم الحفاظ عليها سليمة.
في 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}
} سيرجي كاسريولين - @snk4tr - [email protected]
jamil Zakirov - @Zakajd - [email protected]
Denis Prokopenko - [email protected]