All Projects → ryanxingql → image-quality-assessment-toolbox

ryanxingql / image-quality-assessment-toolbox

Licence: Apache-2.0 license
Toolbox of commonly-used image quality assessment algorithms.

Programming Languages

python
139335 projects - #7 most used programming language
matlab
3953 projects

Projects that are alternatives of or similar to image-quality-assessment-toolbox

RAPIQUE
[IEEE OJSP'2021] "RAPIQUE: Rapid and Accurate Video Quality Prediction of User Generated Content", Zhengzhong Tu, Xiangxu Yu, Yilin Wang, Neil Birkbeck, Balu Adsumilli, Alan C. Bovik
Stars: ✭ 40 (-59.18%)
Mutual labels:  image-quality-assessment
haarpsi
The Haar wavelet-based perceptual similarity index (HaarPSI) is a similarity measure for images that aims to correctly assess the perceptual similarity between two images with respect to a human viewer.
Stars: ✭ 27 (-72.45%)
Mutual labels:  image-quality-assessment
pybrisque
A python implementation of BRISQUE Image Quality Assessment
Stars: ✭ 156 (+59.18%)
Mutual labels:  image-quality-assessment
CONTRIQUE
Official implementation for "Image Quality Assessment using Contrastive Learning"
Stars: ✭ 33 (-66.33%)
Mutual labels:  image-quality-assessment
No-Reference-Image-Quality-Assessment-using-BRISQUE-Model
Implementation of the paper "No Reference Image Quality Assessment in the Spatial Domain" by A Mittal et al. in OpenCV (using both C++ and Python)
Stars: ✭ 137 (+39.8%)
Mutual labels:  image-quality-assessment
image-quality-assessment-python
Python code to compute features of classic Image Quality Assessment models
Stars: ✭ 35 (-64.29%)
Mutual labels:  image-quality-assessment
PaQ-2-PiQ
Source code for "From Patches to Pictures (PaQ-2-PiQ): Mapping the Perceptual Space of Picture Quality"
Stars: ✭ 63 (-35.71%)
Mutual labels:  image-quality-assessment
LinearityIQA
[official] Norm-in-Norm Loss with Faster Convergence and Better Performance for Image Quality Assessment (ACM MM 2020)
Stars: ✭ 73 (-25.51%)
Mutual labels:  image-quality-assessment
RADN
[CVPRW 2021] Codes for Region-Adaptive Deformable Network for Image Quality Assessment
Stars: ✭ 49 (-50%)
Mutual labels:  image-quality-assessment
XCloud
Official Code for Paper <XCloud: Design and Implementation of AI Cloud Platform with RESTful API Service> (arXiv1912.10344)
Stars: ✭ 58 (-40.82%)
Mutual labels:  image-quality-assessment
Spatially-Varying-Blur-Detection-python
python implementation of the paper "Spatially-Varying Blur Detection Based on Multiscale Fused and Sorted Transform Coefficients of Gradient Magnitudes" - cvpr 2017
Stars: ✭ 43 (-56.12%)
Mutual labels:  image-quality-assessment
WaDIQaM
[unofficial] Pytorch implementation of WaDIQaM in TIP2018, Bosse S. et al. (Deep neural networks for no-reference and full-reference image quality assessment)
Stars: ✭ 119 (+21.43%)
Mutual labels:  image-quality-assessment
FocusLiteNN
Official PyTorch and MATLAB implementations of our MICCAI 2020 paper "FocusLiteNN: High Efficiency Focus Quality Assessment for Digital Pathology"
Stars: ✭ 28 (-71.43%)
Mutual labels:  image-quality-assessment
BVQA Benchmark
A resource list and performance benchmark for blind video quality assessment (BVQA) models on user-generated content (UGC) datasets. [IEEE TIP'2021] "UGC-VQA: Benchmarking Blind Video Quality Assessment for User Generated Content", Zhengzhong Tu, Yilin Wang, Neil Birkbeck, Balu Adsumilli, Alan C. Bovik
Stars: ✭ 93 (-5.1%)
Mutual labels:  image-quality-assessment

Image Quality Assessment Toolbox

📧 Feel free to contact: [email protected].

0. Archive

  • v3: add MS-SSIM index, BRISQUE and PIQE; re-implement PSNR and SSIM over Python; remove Ma et al. and PI due to the low computation efficiency; remove FID since it is not an image quality evaluator.
  • v2: unify all scripts of algorithms.
  • v1: the first formal version.

1. Content

metric class description better range ref
Peak signal-to-noise ratio (PSNR) FR The ratio of the maximum pixel intensity to the power of the distortion. higher [0, inf) [WIKI]
Structural similarity (SSIM) index FR Local similarity of luminance, contrast and structure of two image. higher (?, 1] [paper] [WIKI]
Multi-scale structural similarity (MS-SSIM) index FR Based on SSIM; combine luminance information at the highest resolution level with structure and contrast information at several down-sampled resolutions, or scales. higher (?, 1] [paper] [code]
Learned perceptual image patch similarity (LPIPS) FR Obtain L2 distance between AlexNet/SqueezeNet/VGG activations of reference and distorted images; train a predictor to learn the mapping from the distance to similarity score. Trainable. lower [0, ?) [paper] [official repo]
Blind/referenceless image spatial quality evaluator (BRISQUE) NR Model Gaussian distributions of mean subtracted contrast normalized (MSCN) features; obtain 36-dim Gaussian parameters; train an SVM to learn the mapping from feature space to quality score. lower [0, ?) [paper]
Natural image quality evaluator (NIQE) NR Mahalanobis distance between two multi-variate Gaussian models of 36-dim features from natural (training) and input sharp patches. lower [0, ?) [paper]
Perception based image quality evaluator (PIQE) NR Similar to NIQE; block-wise. PIQE is less computationally efficient than NIQE, but it provides local measures of quality in addition to a global quality score. lower [0, 100] [paper]

Notations:

  • FR: Full-reference quality metric.
  • NR: No-reference quality metric.

Archived:

metric class description better range ref where
Ma et al. (MA) NR Extract features in DCT, wavelet and PCA domains; train a regression forest to learn the mapping from feature space to quality score. Very slow! higher [0, 10] [paper] [official repo] [v2]
perceptual index (PI) NR 0.5 * ((10 - MA) + NIQE). Very slow due to MA! lower [0, ?) [paper] [official repo] [v2]
Fréchet inception distance (FID) FR Wasserstein-2 distance between two Gaussian models of InceptionV3 activations (fed with reference and distorted image data-sets, respectively). lower [0, ?) [paper] [cleanfid repo] [v2]

Subjective quality metric(s):

metric description better range ref
mean opinion score (MOS) Image rating under certain standards. higher [0, 100] [BT.500]
degradation/difference/differential MOS (DMOS) Difference between MOS values of reference and distorted images. lower [0, 100] [ref1] [ref2]

2. Dependency

conda create -n iqa python=3.7 -y && conda activate iqa
python -m pip install pyyaml opencv-python tqdm pandas

# for psnr/ssim
python -m pip install scikit-image==0.18.2

# for ms-ssim/lpips
# test under cuda 10.x
python -m pip install torch==1.6.0+cu101 torchvision==0.7.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

# for lpips
python -m pip install lpips==0.1.3

For BRISQUE and NIQE, MATLAB >= R2017b is required; for PIQE, MATLAB >= R2018b is required.

If you want to use main.py to run MATLAB scripts, i.e., call MATLAB in Python, you should install MATLAB package in Conda environment. Check here. My solution:

# given linux
cd "matlabroot/extern/engines/python"  # e.g., ~/Matlab/R2019b/extern/engines/python
conda activate iqa && python setup.py install

3. Evaluation

  1. Edit opt.yml.
  2. Run: conda activate iqa && [CUDA_VISIBLE_DEVICES=0] python main.py -case div2k_qf10 [-opt opt.yml -clean]. [<args>] are optional.
  3. Output: CSV log files at ./logs/.

Note:

  • tar: target, e.g., enhanced compressed images.
  • dst: distorted, e.g., jpeg-compressed images.
  • src: source, e.g., raw/pristine images.
  • The list of the evaluated images is based on tar_dir.

4. License

We adopt Apache License v2.0. For other licenses, please refer to the references.

If you find this repository helpful, you may cite:

@misc{2021xing3,
  author = {Qunliang Xing},
  title = {Image Quality Assessment Toolbox},
  howpublished = "\url{https://github.com/ryanxingql/image-quality-assessment-toolbox}",
  year = {2021},
  note = "[Online; accessed 11-April-2021]"
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].