Deep Image Structure and Texture Similarity (DISTS) Metric
This is the repository of paper Image Quality Assessment: Unifying Structure and Texture Similarity.
Highlights:
- A full-reference IQA model correlated well with human perception of image quality.
- It is robust to texture variance (e.g., evaluating the images generated by GANs) and mild geometric transformations (e.g., evaluating the image pairs that are not strictly point-by-point aligned).
- It can be employed as an objective function in various optimization problems (see optimization comparison).
Three implementation versions:
- Pytorch
DISTS_pt.py
(recommend) - Tensorflow
DISTS_tf.py
- Matlab
DISTS.m
.
====== Pytorch ======
Installation:
pip install dists-pytorch
Requirements:
- Python>=3.6
- Pytorch>=1.0
Usage:
from DISTS_pytorch import DISTS
D = DISTS()
# calculate DISTS between X, Y (a batch of RGB images, data range: 0~1)
# X: (N,C,H,W)
# Y: (N,C,H,W)
dists_value = D(X, Y)
# set 'require_grad=True, batch_average=True' to get a scalar value as loss.
dists_loss = D(X, Y, require_grad=True, batch_average=True)
dists_loss.backward()
or
git clone https://github.com/dingkeyan93/DISTS
cd DISTS_pytorch
python DISTS_pt.py --ref <ref_path> --dist <dist_path>
====== Tensorflow ======
Requirements:
- Python>=3.6
- Tensorflow>=1.15
Usage:
git clone https://github.com/dingkeyan93/DISTS
cd DISTS_tensorflow
python DISTS_tf.py --ref <ref_path> --dist <dist_path>
====== Matlab ======
Requirements:
- Matlab>=2019b
Usage:
git clone https://github.com/dingkeyan93/DISTS
run demo.m
help DISTS
Citation
@article{ding2020iqa,
title={Image Quality Assessment: Unifying Structure and Texture Similarity},
author={Ding, Keyan and Ma, Kede and Wang, Shiqi and Simoncelli, Eero P.},
journal = {CoRR},
volume = {abs/2004.07728},
year={2020},
url = {https://arxiv.org/abs/2004.07728}
}