Releases: chaofengc/IQA-PyTorch
v0.1.15 Release Notes
📢 Major Changes
🚩 New Metrics
- Add
afinemetric proposed in AFINE for No-Reference image quality assessment. Thanks to Du CHEN for their great work 🤗, refer to their official paper for more details. - Add
sfid, a commonly used spatial FID metric for evaluating generative models. - Add
maclipmetric proposed in MACLIP, introducing magnitude in IQA. Thanks to zhicheng for their contribution 🤗. - Add
dmm(paper), a Full-Reference IQA method using SVD-based debiased mapping to mitigate perception bias. Thanks to baoliang for their great work 🤗.
🛠️ Enhancements
- Bundled the full Q-Align (qalign) architecture (Llama2 + mPLUG-Owl2 model implementations) directly into the package, reducing external dependencies and improving reliability. 9b94a86
- Improve
qaligncompatibility with latesttransformers. 83e54b7 - Fixed
compare2scoreinference results with a dedicated mPLUG-Owl2 model variant. 79b3434 - Enhanced QAlign class with improved image processing and more robust error handling. 317888e
- Add score direction information (
lower_better/higher_better) to all model cards. 4fd66f3
🐛 Bug Fixes
- Fix
brisquemetric when loading from local model weights. 6edfb07 - Fix GFIQA dataset path (
GFIQA→GFIQA-20k). 39c89a6 - Fix spatial features used in
sfid. 9b040e4 - Remove random permutation in
inception_scoreto keep consistent and reproducible results. 812fc93 - Fix
accelerateversion constraint in requirements for compatibility. fe508fe
📦 Build System
- Migrate from
setup.py+setup.cfg+MANIFEST.into modern Python packaging withpyproject.tomlandsetuptools-scmfor dynamic versioning. 2f246e5 - Add
uvinstallation option for significantly faster dependency resolution:pip install uv uv pip install pyiqa
🔧 Code Quality
- Remove unused
icecreamdebug imports from multiple modules. b8e336c - Remove
class_mapping.jsonand simplify architecture registration in__init__.py. 317888e - Clean up unused code and comments in mPLUG-Owl2 model classes. 317888e
- Improve
pyiqacommand line argument descriptions for better usability. 317888e
👥 Contributors
Thank you to the contributors who made this release possible:
- 🌟 Add
afinemetric by @ChrisDud0257 - 🌟 Fix tensor return in
afineby @rockerBOO - 🌟 Add
maclipmetric anddmm(#287) by @zhix000 - 🌟 Add score direction info to model cards by @0Ky
📝 For complete details, see the Full Changelog
Hotfix inception_score (0.1.14)
🚨 Hotfix Released: inception_score Calculation Bug Fixed
A bug affecting inception_score in version 0.1.14 has been fixed.
Other versions are unaffected.
We apologize for the inconvenience and appreciate your understanding.
For questions or support, feel free to reach out.
IQA-PyTorch v0.1.13 Release Notes
📢 Major Changes
📦 Model Weights Migration
- All weights moved to Hugging Face: Now available at chaofengc/IQA-PyTorch-Weights
- ⚡ Enables faster and more stable downloads
- 🤝 Allows community contributions for model weights
- 🌏 For users in mainland China: Use the Hugging Face mirror with:
export HF_ENDPOINT=https://hf-mirror.com
⚡ Performance Improvements
- Enhanced Metric Efficiency: All metrics now process 1080×800 images with:
- ⏱️ Sub-second inference time on NVIDIA V100 GPU
- 💾 Memory efficient: Most metrics require <6GB GPU memory. Exceptions:
qalignandqalign_8bit - 📊 Detailed results available in efficiency benchmark
📚 Development Updates
- Dataset Organization: Split information consolidated into meta CSV files
- 🔍 Available at chaofengc/IQA-PyTorch-Datasets-metainfo
🐛 Bug Fixes
- 🔧 Fixed weight loading functionality (5bc4df8)
- 🔄 Removed imgaug for NumPy 2.x compatibility (336831)
- 🛠️ Resolved LIQE num_patch issue (5a3b3e3) - Thanks @avermilov
✨ New Features
📊 New Metrics
- Add perceptual color difference metric
msswdproposed in MS-SWD (ECCV2024). (3835ad9) - Added
lpips+andlpips-vgg+(b57dede) - Implemented
piqemetric (5b5afb3) - Added MATLAB-compatible
niqe_matlabandbrisque_matlab(065c2b7) - Introduced
qalign_8bitandqalign_4bit(e225d8f)
🛠️ Enhanced Functionality
- Added approximate score ranges for metrics (cbba398)
- Implemented optional input validation (0aa6f71)
⚡ Performance & Usability Improvements
🚀 Speed Optimizations
- 📥 Faster loading through simplified imports and lazy loading with class mapper cache
- ⚡ 5x GPU performance boost for
nrqmandpimetrics - 🔋 Enhanced efficiency for
ilniqeandpiqethrough matrix operations
💻 Command Line Interface
- 🔧 Improved CLI syntax:
pyiqa [metric_name(s)] -t [image_path or dir] -r [image_path or dir] --device cuda --verbose
📖 Documentation
- 📚 Comprehensive documentation updates and improvements
👥 Contributors
Thank you to our new contributors for their valuable input:
- 🌟 @jaycecd: Score range improvements (#180)
- 🌟 @Luciennnnnnn: Cache strategy enhancement (#192)
- 🌟 @RistoAle97: Typo fixes (#197)
📝 For complete details, see the Full Changelog
pyiqa v.0.1.12
❗Important Change: Remove set_random_seed in test process.
In this version, set_random_seed has been removed due to its potential negative impact on the training process. For metrics that were previously tested on multiple crops, we have adopted a uniform cropping approach to ensure consistent results. This method aims to cover the entire image as much as possible, providing a fairer evaluation.
Please note that this change may lead to slight differences in the following metrics. Below is a comparison of results on sample images:
| Metrics | I03.bmp | I04.bmp | I06.bmp | I08.bmp | I19.bmp | average |
|---|---|---|---|---|---|---|
ahiq |
-0.1059 | 0.5855 | 0.7066 | 0.5176 | 0.2566 | 0.3921 |
| v0.1.12 | -0.0996 | 0.5952 | 0.7331 | 0.5710 | 0.2196 | 0.4039 |
hyperiqa |
0.1572 | 0.7397 | 0.7056 | 0.7204 | 0.2898 | 0.5226 |
| v0.1.12 | 0.1692 | 0.7270 | 0.6972 | 0.7130 | 0.3105 | 0.5234 |
maniqa |
0.2518 | 0.6176 | 0.4449 | 0.5197 | 0.2309 | 0.430 |
| v0.1.12 | 0.2320 | 0.6033 | 0.4573 | 0.5201 | 0.2670 | 0.415 |
tres |
27.86 | 85.95 | 87.19 | 95.53 | 80.02 | 75.31 |
| v0.1.12 | 25.67 | 85.64 | 85.31 | 96.49 | 77.49 | 74.12 |
📢 Fix Bugs
- Fix bug in inference of
liqe. 0508684
✨ New features
🛠️ Improvements
🍻 New Contributors
- Add
ARNIQAby @LorenzoAgnolucci at #158 - Update requirements @shakedel by at #164
Many thanks to the valuable contributions 🤗 !
Full Changelog: v0.1.11...v0.1.12
pyiqa v0.1.11
📢 Fix Bugs
✨ New features
You can now use pyiqa in terminal like this:
# list all available metrics
pyiqa -ls
# test with default settings
pyiqa [metric_name(s)] --target [image_path or dir] --ref [image_path or dir]
- ✨ add wadiqam pretrained models
- ✨ add qalign
- 🔨 add scandir_images func
- 🚩 add inception_score
- 🚩 add console entry point with pyiqa command
🛠️ Improvements
🍻 New Contributors
Many thanks to the valuable contributions 🤗 !
Full Changelog: v0.1.10...v0.1.11
pyiqa v0.1.10
📢 Fix Bugs
- fix vertical flip in data transforms 872e6ca
- fix bug of fid calculation for different sizes 2da824d
- fix maniqa hyperparameter error 33a2829
- fix device handling 6b1547f
✨ New features
- Add huggingface link to download datasets 031fafd
- Add
liqeliqe_mixby @zwx8981 - Add
nima-koniqandnima-spaqbd385c7
🛠️ Improvements
- Improve training pipeline 43fb392
- Add more error messages in fid c36d31c
- Improve error message for FR and demo codes 921bd75
🍻 New Contributors
- Improve SSIM numerical stability by transforming operations into float64 by @Luciennnnnnn in #125
- Add LIQE by @zwx8981 in #127
Many thanks to their valuable contributions 🤗 !
Full Changelog: v0.1.8...v0.1.10
pyiqa v0.1.8
📢 Fix Bugs
- Fix lower_better for FID be5d8c7
- Change
madoptiontest_y_channelto be false by default cf84ffb - Set read rgb to
truein inference model to force read RGB image ad93cd4
✨ New features
- Add
topiq_fr,topiq_nr,topiq_nr-face,topiq_iaaetc. introduced by our paper TOPIQ - Add
st-lpipsby @abhijay9 in #93. Many thanks ❤️ ! - Add
laion_aesintroduced by LAION-Aesthetics_Predictor - Add datasets PIQ2023, GFIQA f46faae
🛠️ Improvements
- Add documents: https://iqa-pytorch.readthedocs.io
- Update to torchvision>=0.13, torch>=1.12
- Improve dataset api 6fbae36
- Meta information files for training can be download automatically now.
- Update evaluation protocol and results 2770a7e
- Update results of
maniqa7ee5ea6 - Add assertion for
brisqueto force gray input 4e2c707
New Contributors
Full Changelog: v0.1.7...v0.1.8
pyiqa v0.1.7
📢 Important Changes & Bug Fix
- Fix verbose option in FID 49b2297
- Fix grad backpropagation for
as_loss=Truee027618 - Fix
niqewith gray scale input 212ecef
✨ New features
- Add metric
urankerb142d1c - Add metric
maniqa-koniq, maniqa-kadidfe95923 - Add metric
clipscorefor image-caption matching ecb3e5e - Add metric
entropyto calculate gray scale image entropy like matlab 5f6d4fb - Add pytest cases for results calibration, datasets loading and gradient backward. bc5e135
🛠️ Improvements
- Recursively find images in folder for FID calculation d7ade54
- Add metric output doc in model cards
Hotfix of NRQM & PI
🚨 Hotfix: NRQM & PI Calculation Bug Resolved
We have identified and resolved a critical bug in the NRQM calculation within our toolbox. The issue stemmed from the SSIM (Structural Similarity Index) function, where only the structure similarity score was being utilized. We apologize for any inconvenience this may have caused.
As a result of this bug, the PI, which is determined by the formula PI = 0.5 * (10 - NRQM + NIQE), was also affected.
With this hotfix, we have:
- Updated the NRQM calculation to correctly incorporate all relevant components of the SSIM function.
- Adjusted the PI calculation to reflect the corrected NRQM values.
We strongly recommend using the latest release to benefit from these crucial fixes.
If you encounter any issues or have further questions, please don't hesitate to reach out to our support team. Thank you for your understanding and continued support.
IQA-PyTorch v0.1.6
⚠️ Important Changes & Bug Fix
- Fix OOM on GPU for NRQM fcb7f6e
- Fix device problem for gradient calculation 08f8850
- Fix bug for small image test of NIQE 8d7462d
- Fix default dataset config 1baa70e
- Fix clip installation error 53d176f
- feat: add
psnryfor y colorspace;ssimcfor RGBssim
New features
- Add CNNIQA, TreS
- Pass forward argument to inference model
- Add loss reduction when using metric as loss f03d7f1
Improvements
- Update benchmark results
- Update clipiqa+