Git Product home page Git Product logo

biqa_toolbox's Introduction

Introduction

This Toolbox contains the source code of the following technical report:

@article{DBLP:journals/corr/abs-1708-08190,
  author    = {Hui Zeng and
               Lei Zhang and
               Alan C. Bovik},
  title     = {A Probabilistic Quality Representation Approach to Deep Blind Image
               Quality Prediction},
  url       = {http://arxiv.org/abs/1708.08190},
}

A simplified version of this article was accepted by ICIP 2018. You may cite the accepted paper by:

@inproceedings{Zeng_PQR,
  author    = {Hui Zeng and
               Lei Zhang and
               Alan C. Bovik},
  title     = {A Probabilistic Quality Representation Approach to Deep Blind Image
               Quality Prediction},
  booktitle = {2018 IEEE International Conference on Image Processing (ICIP)},
  pages     = {--},
  year      = {2018},
}

Note that on some datasets such as TID2013, the performance varies greatly when using different training and testing splits (see result tables for details). However, it is too cumbersome for deep BIQA methods to repeat experiments as many times (usually more than 100) as the classical methods. This can make it hard to conduct fair comparisons of results reported in different articles. Thus, this Toolbox also aims to provide relatively fair benchmark performances (by using the same 10 randomly generated training and testing splits, see /tools/setupDataset/generateTrainingSet.m) of several popular CNN architectures and some classical blind image quality assessment (BIQA) methods using hand-crafted features on four representative image quality assessment (IQA) datasets.

Main functions

  1. training_testing_CNNs.m trains a CNN model using a proportion (e.g. 0.8) of images and tests performance on the remaining images.

  2. crossDatasetTrainTest.m trains a CNN model on one dataset and tests performance on other datasets.

  3. evaluating_existing_methods.m evaluates several representative classical BIQA methods including DIIVINE,CORNIA,BRISQUE, NIQE, IL-NIQE, HOSA and FRIQUEE. Except for NIQE, the source codes of other methods need to be downloaded and extracted into the supported_methods before evaluating these methods. For convenience, the source codes of these motheds are packed and can be downloaded from DropBox or BaiDuYun.

How to run the Code

  1. Download the MatConvNet into tools and Compile it according to the guidence therein.

  2. Create a new folder pretrained_models and download the pre-trained AlexNet or ResNet50 into pretrained_models if necessary.

  3. Create a new folder databases. Download an IQA dataset into databases and extract the files. Currently, four datasets are supported including the LIVE Challenge, LIVE IQA, CSIQ and TID2013.

  4. The 64-bit compiled libSVM are already included in tools. If they are not compatible to your device, please download the source code and compile it on your own device.

  5. Run any of the three main functions.

Results

The median SRCC (std SRCC) of 10 repititions of different methods on different datasets. Note that the results of CNN models may be slightly different because of the randomness in the training process of CNN models.

Methods LIVE Challenge LIVE IQA CSIQ TID2013
DIIVINE 0.5761 (0.0299) 0.8787 (0.0554) 0.7835 (0.1643) 0.5829 (0.0605)
CORNIA 0.6323 (0.0360) 0.9420 (0.0118) 0.7299 (0.0338) 0.6226 (0.0760)
BRISQUE 0.6085 (0.0284) 0.9374 (0.0260) 0.7502 (0.0489) 0.5258 (0.0566)
NIQE 0.4347 (0.0286) 0.9154 (0.0133) 0.6298 (0.0284) 0.2992 (0.0412)
IL-NIQE 0.4254 (0.0286) 0.9017 (0.0278) 0.8066 (0.0252) 0.5185 (0.0469)
HOSA 0.6610 (0.0440) 0.9477 (0.0080) 0.7812 (0.0729) 0.6876 (0.0925)
FRIQUEE-ALL 0.6873 (0.0253) 0.9507 (0.0275) 0.8414 (0.1238) 0.7133 (0.0703)
AlexNet_SQR 0.7658 (0.0166) 0.9319 (0.0269) 0.7965 (0.0394) 0.5362 (0.1100)
AlexNet_PQR 0.8075 (0.0123) 0.9554 (0.0185) 0.8713 (0.0229) 0.5742 (0.1156)
ResNet50_SQR 0.8236 (0.0159) 0.9468 (0.0199) 0.8217 (0.0481) 0.6406 (0.0577)
ResNet50_PQR 0.8568 (0.0095) 0.9653 (0.0105) 0.8728 (0.0319) 0.7399 (0.1037)
S_CNN_SQR 0.6582 (0.0323) 0.9450 (0.0320) 0.8787 (0.0213) 0.6526 (0.1136)
S_CNN_PQR 0.6766 (0.0326) 0.9637 (0.0223) 0.9080 (0.0212) 0.6921 (0.1246)

The median PLCC (std PLCC) of 10 repititions of different methods on different datasets.

Methods LIVE Challenge LIVE IQA CSIQ TID2013
DIIVINE     0.5955 (0.0303)   0.8813 (0.0379)     0.8362 (0.1710) 0.6723 (0.0641)
CORNIA 0.6613 (0.0356) 0.9457 (0.0119) 0.8036 (0.0253) 0.7038 (0.0669)
BRISQUE 0.6465 (0.0361) 0.9448 (0.0274) 0.8286 (0.0380) 0.6331 (0.0568)
NIQE 0.4784 (0.0264) 0.9194 (0.0112) 0.7181 (0.0293) 0.4154 (0.0567)
IL-NIQE 0.5066 (0.0247) 0.8654 (0.0866) 0.8083 (0.0726) 0.6398 (0.0867)
HOSA 0.6750 (0.0299) 0.9492 (0.0089) 0.8415 (0.0522) 0.7637 (0.0654)
FRIQUEE-ALL 0.7096 (0.0322) 0.9576 (0.0264) 0.8733 (0.1209) 0.7755 (0.0716)
AlexNet_SQR 0.8074 (0.0176)     0.9426 (0.0227)     0.8405 (0.0384)   0.6136 (0.1045)    
AlexNet_PQR 0.8357 (0.0124) 0.9638 (0.0181) 0.8958 (0.0219) 0.6687 (0.0840)
ResNet50_SQR 0.8680 (0.0117) 0.9527 (0.0145) 0.8713 (0.0355) 0.7068 (0.0695)
ResNet50_PQR 0.8822 (0.0098) 0.9714 (0.093) 0.9010 (0.0266) 0.7980 (0.0848)
S_CNN_SQR 0.6729 (0.0309) 0.9455 (0.0249) 0.8987 (0.0234) 0.6921 (0.1314)
S_CNN_PQR 0.7032 (0.0298) 0.9656 (0.0219) 0.9267 (0.0219) 0.7497 (0.1089)

Update

This toolbox will be constantly updated to include or re-implement state-of-the-art BIQA methods, especially on the LIVE Challenge dataset which is the existing largest dataset with authentic distortions.

License

This toolbox is made available for research purpose only.

We utilize the MatConvNet and libSVM toolboxes and re-implement some existing methods. Please check their licence files for details.

biqa_toolbox's People

Contributors

huizeng avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.