brisqueModel

Blind/Referenceless Image Spatial Quality Evaluator (BRISQUE) model

Description

A brisqueModel object encapsulates a model used to calculate the Blind/Referenceless Image Spatial Quality Evaluator (BRISQUE) perceptual quality score of an image. The object contains a support vector regressor (SVR) model.

Creation

You can create a brisqueModel object using the following methods:

  • fitbrisque — Train a BRISQUE model containing a custom trained support vector regressor (SVR) model. Use this function if you do not have a pretrained model.

  • The brisqueModel function described here. Use this function if you have a pretrained SVR model, or if the default model is sufficient for your application.

Syntax

m = brisqueModel
m = brisqueModel(alpha,bias,supportVectors,scale)

Description

example

m = brisqueModel creates a BRISQUE model object with default property values that are derived from the LIVE IQA image database [1] [2].

example

m = brisqueModel(alpha,bias,supportVectors,scale) creates a custom BRISQUE model and sets the Alpha, Bias, SupportVectors, and Scale properties. You must provide all four arguments to create a custom model.

Note

It is difficult to predict good property values without running an optimization routine. Use this syntax only if you are creating a brisqueModel object using a pretrained SVR model with known property values.

Properties

expand all

Coefficients obtained by solving the dual problem, specified as an m-by-1 numeric vector. The length of Alpha must match the number of support vectors (the number of rows of SupportVectors).

Example: rand(10,1)

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Bias term in SVM model, specified as a numeric scalar.

Example: 47.4

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Support vectors, specified as an m-by-36 numeric vector. The number of rows, m, matches the length of Alpha.

Example: rand(10,36)

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

This property is read-only.

Kernel function, specified as 'gaussian'.

Kernel scale factor, specified as a numeric scalar. The scale factor divides predictor values in the SVR kernel.

Example: 0.25

Data Types: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

Examples

collapse all

model = brisqueModel
model = 
  brisqueModel with properties:

             Alpha: [593x1 double]
              Bias: 43.4582
    SupportVectors: [593x36 double]
            Kernel: 'gaussian'
             Scale: 0.3210

Create a brisqueModel object using precomputed Alpha, Bias, SupportVectors, and Scale properties. Random initializations are shown for illustrative purposes only.

model = brisqueModel(rand(10,1),47,rand(10,36),0.25)
model = 
  brisqueModel with properties:

             Alpha: [10x1 double]
              Bias: 47
    SupportVectors: [10x36 double]
            Kernel: 'gaussian'
             Scale: 0.2500

You can use the custom model to calculate the BRISQUE score for an image.

I = imread('lighthouse.png');
score = brisque(I,model)
score = 47

Algorithms

The support vector regressor (SVR) calculates regression scores for predictor matrix X as:

F = G(X,SupportVectors) × Alpha + Bias

G(X,SupportVectors) is an n-by-m matrix of kernel products for n rows in X and m rows in SupportVectors. The SVR has 36 predictors, which determine the number of columns in SupportVectors.

The SVR computes a kernel product between vectors x and z using Kernel(x/Scale,z/Scale).

References

[1] Mittal, A., A. K. Moorthy, and A. C. Bovik. "No-Reference Image Quality Assessment in the Spatial Domain." IEEE Transactions on Image Processing. Vol. 21, Number 12, December 2012, pp. 4695–4708.

[2] Mittal, A., A. K. Moorthy, and A. C. Bovik. "Referenceless Image Spatial Quality Evaluation Engine." Presentation at the 45th Asilomar Conference on Signals, Systems and Computers, Pacific Grove, CA, November 2011.

Introduced in R2017b