Train and Use a No-Reference Quality Assessment Model

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 Workflow

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.

Train a NIQE Model

Note

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.

Predict Image Quality Using a NIQE Model

Use the 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 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.

Train a BRISQUE Model

Note

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 fitbrisque function:

  • 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 regressor.

Predict Image Quality Using a BRISQUE Model

Use the 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 regression.

The diagram shows the full BRISQUE workflow.

Related Topics