Main Content

predict

R2026b

Predict unnormalized anomaly scores

Since R2022b

    Description

    scores = predict(detector,I) calculates the unnormalized anomaly scores predicted by an anomaly detector during inference for a set of test images, I. Use this function to get predictions from the output layers of the detector during inference.

    example

    [scores,maps] = predict(detector,I) also returns anomaly score maps that indicate the per-pixel anomaly likelihood.

    [___] = predict(___,Name=Value) specifies options using one or more name-value arguments in addition to any combination of output arguments from previous syntaxes. For example, predict(detector,I,MiniBatchSize=32) limits the batch size to 32.

    Note

    If you use this function with the studentTeacherAnomalyDetector object, this function requires the Visual Inspection Toolbox™ Model for Student-Teacher Anomaly Detection add-on. You can install the add-on from the Add-On Explorer. For more information about installing add-ons, see Get and Manage Add-Ons.

    Examples

    collapse all

    Load calibration images and corresponding labels, then create a datastore that reads the calibration data. The data set consists of grayscale images of handwritten digits 0–9.

    [Xcal,gtLabels] = digitTest4DArrayData;
    dsCal = arrayDatastore(Xcal,IterationDimension=4);

    Load a pretrained FCDD anomaly detector. This detector has been trained to classify the digit 8 as normal and all other digits as anomalies. Therefore, specify the set of anomaly labels as the set of digits between 0 and 9, excluding 8.

    load("digit8AnomalyDetector.mat");
    anomalyLabels = setdiff(string(0:9),"8");

    Predict the anomaly score of each calibration image.

    scores = predict(detector,dsCal);

    Calculate the optimal threshold and corresponding ROC metrics from the anomaly scores and ground truth labels.

    [T,roc] = anomalyThreshold(gtLabels,scores,anomalyLabels)
    T = single
    
    2.9632e-04
    
    roc = 
      rocmetrics with properties:
    
        Metrics: [4976×4 table]
    
    Properties, Methods
    
    

    Set the Threshold property of the FCDD anomaly detector as the optimal threshold.

    net.Threshold = T;

    Input Arguments

    collapse all

    Anomaly detector, specified as a studentTeacherAnomalyDetector object, an fcddAnomalyDetector object, a fastFlowAnomalyDetector object, or a patchCoreAnomalyDetector object.

    Test image, specified in one of these formats:

    FormatSupported Detectors

    M-by-N-by-3 numeric array representing a truecolor image.

    Student-Teacher, FCDD, FastFlow, PatchCore

    M-by-N-by-3-by-B numeric array representing a batch of B truecolor images.

    Student-Teacher, FCDD, FastFlow, PatchCore

    Datastore that reads and returns truecolor images. The images must all have the same size.

    Student-Teacher, FCDD, FastFlow, PatchCore

    Formatted dlarray (Deep Learning Toolbox) object with two spatial dimensions and one channel dimension. You can specify multiple test images by including a batch dimension.

    Student-Teacher, FCDD, FastFlow

    M and N are the height and width of the image and B is the number of images in the batch.

    FCDD anomaly detectors also support grayscale test images, with one color channel instead of three.

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: isAnomaly = predict(detector,I,MiniBatchSize=32) limits the batch size to 32.

    Size of batches for calculating predictions, specified as a positive integer. Larger batch sizes lead to faster processing but take up more memory.

    Function for computing a scalar score from an anomaly map when detector is a studentTeacherAnomalyDetector object, an fcddAnomalyDetector object, or a fastFlowAnomalyDetector object, specified as a function handle. The function handle ScoreFunction must represent a function that accepts the input data I and returns an output in the form of a numeric scalar. I must be 2-D numeric image data, dlarray data with two spatial dimensions, or a datastore. The default value of ScoreFunction depends on the type of detector specified:

    Detector Specified in detector ArgumentDefault ScoreFunction Value
    FastFlow

    @(I)max(I,[],[1 2])

    Student-Teacher

    @(I)max(I,[],[1 2 3])

    FCDD

    @(I)mean(I,[1 2])

    PatchCore

    Not supported

    Hardware resource on which to run the detector, specified as "auto", "gpu", or "cpu". The table shows the valid hardware resource values.

    Resource Action
    "auto"Use a GPU if it is available. Otherwise, use the CPU.
    "gpu"Use the GPU. To use a GPU, you must have Parallel Computing Toolbox™ and a CUDA® enabled NVIDIA® GPU. If a suitable GPU is not available, the function returns an error. For information about the supported compute capabilities, see GPU Computing Requirements (Parallel Computing Toolbox).
    "cpu"Use the CPU.

    Output Arguments

    collapse all

    Predicted anomaly scores, returned as a numeric scalar, numeric vector, or dlarray (Deep Learning Toolbox) object. scores contains one element for each image in I.

    Anomaly score maps, returned as a numeric array. The array contains one anomaly score map for each input image. Each element of the array represents the anomaly likelihood at the corresponding pixel location in the input image. Higher values indicate greater likelihood of an anomaly. The size of the array depends on the detector type:

    SizeDetector Specified in detector Argument

    M-by-N-by-1-by-B numeric array

    Student-Teacher, FCDD, FastFlow

    M-by-N-by-B numeric array

    PatchCore

    M and N are the height and width of the input test image I and B is the number of images in the batch.

    The maps output is not supported when I is a datastore.

    Extended Capabilities

    expand all

    Version History

    Introduced in R2022b

    expand all