PyTorch Implementation of Deep Photometric Visibility Metric (DPVM)

This is a PyTorch implementation of the Predicting Visible Image Differences Under Varying Display Brightness and Viewing Distance in CVPR 2019. The DPVM can be used as image quality metrics or be used for evaluating compressed image qualities.

Code Usage:

python example.py --ref reference.png --dist distorted.png --ppd 60 --lumin 110 --load_path path/to/model.pth --output output.png

The trained model weights are available here.

Sample Results:

The reference image is:

And the distorted image is:

The prediction is:

The image is from marking_aliasing/Attic_Aliasing_l1_aliasing. The prediction is based on the viewing condition of luminance set as 110 cd/m^2 and pixel per degree (PPD) set as 40. This feature can helps provide image distortion visibility predictions adjusted by viewing conditions.

Notes:

We have implemented network architecture used in the paper. In the future, we will migrate the loss function from tensorflow to PyTorch. This can serve as a basic implementation of the paper and a footfold for future works.

Citation:

If you find any part of this code useful, please cite the paper.

@inproceedings{photometricnn2019,
    title={Predicting visible image differences under varying display brightness and viewing distance},
    author={N. Ye and K. Wolski and R. K. Mantiuk},
    booktitle={IEEE/CVF Conference on Computer Vision and Pattern Recognition 2019 (CVPR 2019)}, 
    year={2019}
    keywords={Photometric visibility metric, Deep learning},  
}