/IQA-optimization

Comparison of IQA models in Perceptual Optimization

Primary LanguagePythonMIT LicenseMIT

Perceptual Optimization of Image Quality Assessment (IQA) Models

This repository re-implemented the existing IQA models with PyTorch, including

Note: The reproduced results may be a little different from the original matlab version.

Installation:

  • pip install IQA_pytorch

Requirements:

  • Python>=3.6
  • Pytorch>=1.2

Usage:

from IQA_pytorch import SSIM, GMSD, LPIPSvgg, DISTS
D = SSIM(channels=3)
# Calculate score of the image X with the reference Y
# X: (N,3,H,W) 
# Y: (N,3,H,W) 
# Tensor, data range: 0~1
score = D(X, Y, as_loss=False) 
# set 'as_loss=True' to get a value as loss for optimizations.
loss = D(X, Y, as_loss=True)
loss.backward()

DNN-based optimization examples:

  • Image denoising
  • Blind image deblurring
  • Single image super-resolution
  • Lossy image compression

diagram

For the experiment results, please see Comparison of Image Quality Models for Optimization of Image Processing Systems

Citation:

@article{ding2020optim,
  title={Comparison of Image Quality Models for Optimization of Image Processing Systems},
  author={Ding, Keyan and Ma, Kede and Wang, Shiqi and Simoncelli, Eero P.},
  journal = {CoRR},
  volume = {abs/2005.01338},
  year={2020},
  url = {https://arxiv.org/abs/2005.01338}
}