Learning Out Of Distribution parameters in a previously trained classifier

This code snippet shows how to learn OOD parameters in a previously trained classifier.

C++

#include <eVision/EasyDeepLearning/EasyClassify/EClassifier.h>
using namespace eVision;
using namespace eVision::EasyDeepLearning;

// Load datasets
EDataset trainDataset, validationDataset;
// WARNING: The training and validation datasets MUST correspond to the
// datasets originally used to train the classifier!

// Classifier
EClassifier classifier;
classifier.Load("my_classifier");

// Enable OOD
classifier.SetComputeOODWithResult(true);

// Learn OOD parameters
classifier.LearnOODParameters(trainDataset, validationDataset);

// Test image
EImageBW8 image;

// Get result
EClassificationResult result = classifier.Classify(image);

// Get OOD score
float score = result.GetOODScore();
// Get OOD threshold
float threshold = result.GetOODThreshold();
// Get binary OOD result
bool isOOD = result.IsOOD();

C#

using eVision;
using eVision.EasyDeepLearning;
// Load datasets
EDataset trainDataset = new EDataset();
EDataset validationDataset = new EDataset();
// WARNING: The training and validation datasets MUST correspond to the
// datasets originally used to train the classifier!

// Classifier
EClassifier classifier = new EClassifier();
classifier.Load("my_classifier");

// Enable OOD
classifier.ComputeOODWithResult = true;

// Learn OOD parameters
classifier.LearnOODParameters(trainDataset, validationDataset);

// Test image
EImageBW8 image = new EImageBW8();

// Get result
EClassificationResult result = classifier.Classify(image);

// Get OOD score
float score = result.OODScore;
// Get OOD threshold
float threshold = result.OODThreshold;
// Get binary OOD result
bool isOOD = result.IsOOD();

Python

import eVision
from eVision import EasyDeepLearning as edl

# Load datasets
trainDataset = edl.EDataset()
validationDataset = edl.EDataset()
# WARNING: The training and validation datasets MUST correspond to the
# datasets originally used to train the classifier!

# Classifier
classifier = edl.EClassifier()
classifier.Load("my_classifier")

# Enable OOD
classifier.ComputeOODWithResult = True

# Learn OOD parameters
classifier.LearnOODParameters(trainDataset, validationDataset)

# Test image
image = eVision.EImageBW8()

# Get result
result = classifier.Classify(image)

# Get OOD score
score = result.OODScore
# Get OOD threshold
threshold = result.OODThreshold
# Get binary OOD result
isOOD = result.IsOOD()