Main Content

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.

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.

Version History

Introduced in R2017b