A python implementation of BRISQUE Image Quality Assessment

bukalapak bukalapak Last update: Mar 03, 2024

PyBRISQUE

An implementation of BRISQUE (Blind/Referenceless Image Spatial Quality Evaluator) in Python from the paper: "No-Reference Image Quality Assessment in the Spatial Domain".

Installation

LibSVM is required. On ubuntu or other debian-based system, you can install libsvm-dev package from apt as follows:

apt-get install libsvm-dev

The package is in PyPI so you can install it simply by this command:

pip install --process-dependency-links pybrisque

Usage

Initialize once:

brisq = BRISQUE()

and get the BRISQUE feature or score many times:

brisq.get_feature('/path')
brisq.get_score('/image_path')

Limitations

This implementation is heavily adopted from the original Matlab implementation in here. There is one catch though, the bicubic interpolation when resizing image in Matlab and OpenCV is a bit different as explained in here. For now, it uses nearest interpolation which gives the most similar output with the original implementation.

Comparing with Matlab original implementation on reference images of TID 2008:

Comparison

And the absolute differences' stat is as follows:

{'min': 0.17222238726479588,
 'max': 16.544924728934404,
 'mean': 3.9994322498322754,
 'std': 3.0715344507521416}

Subscribe to our newsletter