The Natural Image Quality Evaluator (NIQE) and Blind/Referenceless Image Spatial Quality Evaluator (BRISQUE) algorithms use a trained model to compute a quality score.
Both algorithms train a model using identical predictable statistical features, called natural scene statistics (NSS). NSS are based on normalized luminance coefficients in the spatial domain, and are modeled as a multidimensional Gaussian distribution. Distortions appear as perturbations to the Gaussian distribution.
The algorithms differ in how they use the NSS features to train a model and compute a quality score.
NIQE measures the quality of images with arbitrary distortion. A NIQE model is not trained using subjective quality scores, but the tradeoff is that the NIQE score does not correlate as reliably as the BRISQUE score with human perception of quality.
If the default NIQE model provides a sufficient quality score for your application, you do not need to train a new model. You can skip to Predict Image Quality Using a NIQE Model.
To train a NIQE model, pass a datastore of pristine image to the
fitniqe function. The function divides each image into blocks
and computes the NSS for each block. The training process includes only blocks
with statistically significant features.
The returned model,
niqeModel, stores the multivariate Gaussian mean and standard
deviation derived from the NSS features.
niqe function to calculate an image quality score for an image
with arbitrary distortion. The
niqe function extracts the NSS
features from statistically significant blocks in the distorted image. The
function fits a multivariate Gaussian distribution to the image NSS features.
The quality score is the distance between the Gaussian distributions.
The diagram shows the full NIQE workflow.
BRISQUE is limited to measuring the quality of images with the same type of distortion as the model. A BRISQUE model is trained using subjective opinion scores, with the advantage that the BRISQUE score correlates well with human perception of quality.
If the default BRISQUE model provides a sufficient quality score for your application, you do not need to train a new model. You can skip to Predict Image Quality Using a BRISQUE Model.
To train a BRISQUE model, pass to the
A datastore containing images with known distortions and pristine copies of those images
A subjective opinion score for each distorted image in the database
The function computes the NSS features for each image, without
dividing the image into blocks. The function uses the NSS features and
corresponding opinion scores to train a support vector machine regression model.
The returned model,
brisqueModel, stores the parameters of the support vector
brisque function to calculate an image quality score for an
image with the same type of distortions as the model. The
brisque function extracts the NSS features from the
distorted image, and predicts a quality score using support vector
The diagram shows the full BRISQUE workflow.