Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

fitbrisque

Fit custom model for BRISQUE image quality score

Syntax

model = fitbrisque(imds,opinionScores)

Description

example

model = fitbrisque(imds,opinionScores) creates a Blind/Referenceless Image Spatial Quality Evaluator (BRISQUE) model from a reference image datastore, imds, with corresponding human perceptual differential mean opinion score (DMOS) values, opinionScore.

Note

To use the fitbrisque function, you must have Statistics and Machine Learning Toolbox™.

Examples

collapse all

Train a custom BRISQUE model from a set of quality-aware features and corresponding human opinion scores. Use the custom model to calculate a BRISQUE score for an image of a natural scene.

Save images from an image datastore. These images all have compression artifacts resulting from JPEG compression.

setDir = fullfile(toolboxdir('images'),'imdata');
imds = imageDatastore(setDir,'FileExtensions',{'.jpg'});

Specify the opinion score for each image. The following differential mean opinion score (DMOS) values are for illustrative purposes only. They are not real DMOS values obtained through experimentation.

opinionScores = 100*rand(1,size(imds.Files,1));

Create the custom model of quality-aware features using the image datastore and the opinion scores. Because the scores are random, the property values will vary.

model = fitbrisque(imds,opinionScores')
Extracting features from 22 images.
...
Completed 5 of 22 images.  Time: Calculating...
....
Completed 12 of 22 images.  Time: 00:23 of 00:41
..Training support vector regressor...

Done.
model = 
  brisqueModel with properties:

             Alpha: [20x1 double]
              Bias: 69.0203
    SupportVectors: [20x36 double]
            Kernel: 'gaussian'
             Scale: 0.2432

Read an image of a natural scene that has the same type of distortion as the training images. Display the image.

I = imread('car1.jpg');
imshow(I)

Calculate the BRISQUE score for the image using the custom model. Display the score.

brisqueI = brisque(I,model);
fprintf('BRISQUE score for the image is %0.4f.\n',brisqueI)
BRISQUE score for the image is 85.7778.

Input Arguments

collapse all

Reference image datastore, specified as an ImageDatastore object. Images within the datastore must be real, nonsparse, m-by-n or m-by-n-by-3 arrays of data type single, double, int16, uint8, or uint16. The images must have a known set of distortions such as compression artifacts, blurring, or noise.

Human opinion scores, specified as a numeric vector with values in the range [0, 100]. Each element in opinionScores is the human perceptual DMOS value corresponding to an image in the datastore imds. The length of opinionScores is equal to the number of images in imds.

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

Output Arguments

collapse all

Custom model of image features, returned as a brisqueModel object. model contains a support vector regressor (SVR) with a Gaussian kernel trained to predict the BRISQUE quality score.

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.

See Also

Functions

Using Objects

Introduced in R2017b

Was this topic helpful?