eVision .NET API
Loading...
Searching...
No Matches
eVision.EasyDeepLearning.EUnsupervisedSegmenter Class Reference

Unsupervised segmentation tool. More...

Inheritance diagram for eVision.EasyDeepLearning.EUnsupervisedSegmenter:
Collaboration diagram for eVision.EasyDeepLearning.EUnsupervisedSegmenter:

Public Member Functions

 EUnsupervisedSegmenter ()
 Constructs a EUnsupervisedSegmenter object.
 EUnsupervisedSegmenter (eVision.EasyDeepLearning.EUnsupervisedSegmenter other)
 Copy constructor of a EUnsupervisedSegmenter object.
override void SerializeSettings (eVision.ESerializer serializer)
 Serializes the settings of the unsupervised segmenter.
eVision.EasyDeepLearning.EUnsupervisedSegmenterMetrics GetTrainingMetrics (int iteration)
 Training metrics at the given iteration.
eVision.EasyDeepLearning.EUnsupervisedSegmenterMetrics GetValidationMetrics (int iteration)
 Validation metrics at the given iteration.
void Train (eVision.EasyDeepLearning.EDataset dataset)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset dataset, eVision.EasyDeepLearning.EDataAugmentation dataAugmentation)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset trainingDataset, eVision.EasyDeepLearning.EDataset validationDataset)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset trainingDataset, eVision.EasyDeepLearning.EDataset validationDataset, eVision.EasyDeepLearning.EDataAugmentation dataAugmentation)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset dataset, int iterations)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset dataset, eVision.EasyDeepLearning.EDataAugmentation dataAugmentation, int iterations)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset trainingDataset, eVision.EasyDeepLearning.EDataset validationDataset, int iterations)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
void Train (eVision.EasyDeepLearning.EDataset trainingDataset, eVision.EasyDeepLearning.EDataset validationDataset, eVision.EasyDeepLearning.EDataAugmentation dataAugmentation, int iterations)
 Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult Apply (eVision.EBaseROI img)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult Apply (eVision.EBaseROI img, eVision.ERegion mask)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] Apply (eVision.EImageBW8[] imgs)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] Apply (eVision.EImageBW8[] imgs, eVision.ERegion[] masks)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] Apply (eVision.EImageBW16[] imgs)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] Apply (eVision.EImageBW16[] imgs, eVision.ERegion[] masks)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] Apply (eVision.EImageC24[] imgs)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] Apply (eVision.EImageC24[] imgs, eVision.ERegion[] masks)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
void Apply (eVision.EBaseROI[] imgs, eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] results)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
void Apply (eVision.EBaseROI[] imgs, eVision.ERegion[] masks, eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] results)
 Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.
eVision.EasyDeepLearning.EUnsupervisedSegmenterMetrics Evaluate (eVision.EasyDeepLearning.EDataset dataset)
 Evaluates the dataset.
override int GetNumPatchesForImage (int imageWidth, int imageHeight)
 Number of patches that will be extracted from an input image to perform inference.
Public Member Functions inherited from eVision.EasyDeepLearning.EDeepLearningTool
virtual void Load (string filePath)
 Loads a deep learning tool. The given ESerializer must have been created for reading.
virtual void Load (eVision.ESerializer serializer)
 Loads a deep learning tool. The given ESerializer must have been created for reading.
eVision.EasyDeepLearning.EDeepLearningTool Clone ()
 Clones this tool.
virtual void Save (string filePath, bool includeTrainingModel)
 Saves the settings, inference and training model of the deep learning tool.
virtual void Save (string filePath)
 Saves the settings, inference and training model of the deep learning tool.
virtual void Save (eVision.ESerializer serializer, bool includeTrainingModel)
 Saves the settings, inference and training model of the deep learning tool.
virtual void Save (eVision.ESerializer serializer)
 Saves the settings, inference and training model of the deep learning tool.
void SerializeSettings (eVision.ESerializer serializer)
 Serializes the tool settings.
void SerializeInferenceModel (eVision.ESerializer serializer)
 Serializes the inference model of the tool.
void SerializeTrainingModel (eVision.ESerializer serializer)
 Serializes the training model of the tool.
void SaveSettings (string filePath)
 Saves the settings of the tool to a file.
void SaveInferenceModel (string filePath)
 Saves the tool's inference model to a file.
void SaveTrainingModel (string filePath)
 Saves the tool's training model to a file.
void LoadSettings (string filePath)
 Loads the settings of a tool.
void LoadInferenceModel (string filePath)
 Loads the tool's inference model. The inference model is required to apply the tool on new images.
void LoadTrainingModel (string filePath)
 Loads the tool's training model. The training model is required to continue a training.
void UnloadInferenceModel ()
 Unloads the inference model.
void UnloadTrainingModel ()
 Unloads the training model.
void UnloadModels ()
 Unloads the inference and training model.
bool HasInferenceModel ()
 Whether the inference model is loaded or created when the tool is not yet trained.
bool HasTrainingModel ()
 Whether the training model is loaded or created when the tool is not yet trained.
bool IsTrained ()
 Tells whether the deep learning tool has been trained.
string GetAvailableDeviceName (int i)
 Name of the i-th device of the current engine.
eVision.EasyDeepLearning.EDeepLearningDevice GetAvailableDevice (int i)
 i-th EDeepLearningDevice of the current engine.
void SetActiveDevice (eVision.EasyDeepLearning.EDeepLearningDevice device)
 Sets the device with which to run or train the model.
eVision.EasyDeepLearning.EDeepLearningDevice GetActiveDevice (int i)
 Gets the active device. By default, it returns the first active device.
eVision.EasyDeepLearning.EDeepLearningDevice GetActiveDevice ()
 Gets the active device. By default, it returns the first active device.
bool HasEngineSetupData ()
 Whether the inference model has engine setup data.
void ClearEngineSetupData ()
 Clears the engine data saved in the inference model. Use this method when your engine fails.
bool IsTraining ()
 Indicates whether the object is currently training.
int WaitForTrainingCompletion (int timeout)
 Waits until the training is complete or the timeout is expired. A call to this method will block the calling thread for the shortest time between the timeout and the time it takes for the training to complete.
int WaitForTrainingCompletion ()
 Waits until the training is complete or the timeout is expired. A call to this method will block the calling thread for the shortest time between the timeout and the time it takes for the training to complete.
int WaitForIterationCompletion ()
 Waits until an iteration is complete. A call to this method will block the calling thread until a training iteration in the training thread is finished. This method returns the number of trained iterations.
int StopTraining (bool wait)
 Stops training and returns the last completed iteration. If the parameter 'wait' is set to true, the method will wait for the training thread to completely stop. Otherwise, the method will return immediately.
void SetLearningRate (eVision.EasyDeepLearning.EDeepLearningLearningRateType type, float[] parameters)
 Specifies how the value of the learning rate and how it evolves during training.
void InitializeInference (int width, int height, eVision.EImageType imageType, int numImages)
 Initializes the neural network for inference (i.e. making predictions with the neural network).
void InitializeInference (eVision.EBaseROI img)
 Initializes the neural network for inference (i.e. making predictions with the neural network).
void InitializeInference (ref eVision.EBaseROI[] imgList)
 Initializes the neural network for inference (i.e. making predictions with the neural network).
void InitializeInference (ref eVision.EImageBW8[] imgList)
 Initializes the neural network for inference (i.e. making predictions with the neural network).
void InitializeInference (ref eVision.EImageBW16[] imgList)
 Initializes the neural network for inference (i.e. making predictions with the neural network).
void InitializeInference (ref eVision.EImageC24[] imgList)
 Initializes the neural network for inference (i.e. making predictions with the neural network).
string GetLabel (uint index)
 Gets the label from its index. If the tool is not trained, the method may throw an exception.
virtual void SetLabel (uint index, string label)
 Changes a label predicted by the tool.
void SetLabelWeight (uint index, float weight)
 Sets the label weight. If the tool is not trained, the label weights are not defined. After training, they are set to the value of the training dataset label weights.
float GetLabelWeight (uint index)
 Gets the label weight. If the tool is not trained, the label weights are not defined. After training, they are set to the value of the training dataset label weights.
void SetLabelColor (uint index, eVision.ERGBColor c)
 Changes a label color.
eVision.ERGBColor GetLabelColor (uint index)
 Label color. The label colors affect how the results will be displayed.
void SetLabelOpacity (uint index, byte opacity)
 Changes a label opacity (between 0 for fully transparent and 255 for opaque color).
byte GetLabelOpacity (uint index)
 Gets the label opacity (between 0 for fully transparent and 255 for opaque color). The label opacities affect with the label colors how the results will be displayed.
int GetOptimalNumImagesForBatchSize (eVision.EBaseROI sampleImage)
 Optimal number of images to process together for inference given the batch size and EDeepLearningTool.GetNumPatchesForImage.
int GetOptimalNumImagesForBatchSize (int imageWidth, int imageHeight)
 Optimal number of images to process together for inference given the batch size and EDeepLearningTool.GetNumPatchesForImage.
int GetNumPatchesForImage (eVision.EBaseROI sampleImage)
 Number of patches that will be extracted from an input image to perform inference.
virtual void Clean ()
 Reset the engine and clean CPU and GPU memory allocated for running the model.

Properties

uint Channels [get]
 Number of channels of input images. It can either be 1 for grayscale images or 3 for color images.
override eVision.EasyDeepLearning.EDeepLearningToolType ToolType [get]
 Type of the deep learning tool.
eVision.EasyDeepLearning.EUnsupervisedSegmenterCapacity Capacity [get, set]
 Capacity of the EUnsupervisedSegmenter.
bool ForceGrayscale [get, set]
 Forces the EUnsupervisedSegmenter to convert all images to grayscale (default: true).
int PatchSize [get, set]
 Patch size (width and height of the patches processed by the neural network).
float Scale [get, set]
 Down-scaling applied to images before processing them. Its value is between 0 and 1 (default value: 1).
float ClassificationThreshold [get, set]
 Classification threshold for the score of an image (See EUnsupervisedSegmenterResult.ClassificationScore).
float SamplingDensity [get, set]
 Sampling density (default value: 2.0, its value must be equal or greater than 1).
string GoodLabel [get, set]
 Name of the good label in the dataset that is used for training (default value: empty).
bool ScaleDisabledAtInference [get, set]
 Whether to apply the scale parameter at inference or not.
float InferenceScale [get]
 The effective scale applied when performing inference.
Properties inherited from eVision.EasyDeepLearning.EDeepLearningTool
eVision.EasyDeepLearning.EDeepLearningToolType ToolType [get]
 Type of the deep learning tool.
bool EnableGPU [get, set]
 Enable the use of a GPU for training and inference of the deep learning tool. If the active engine is not the default engine, EDeepLearningTool.EnableGPU will be false even if the active device has a GPU device type. Setting EDeepLearningTool.EnableGPU to any value when the active engine is not the default one will throw an exception.
uint[] GPUIndexes [get, set]
 Indexes of the GPUs to use for computations.
uint NumGPUs [get]
 Number of detected NVIDIA GPU.
string Engine [get, set]
 Sets the engine with which to execute or train the neural network.
eVision.EasyDeepLearning.EDeepLearningInferencePrecision InferencePrecision [get, set]
 Inference precision.
int NumAvailableDevices [get]
 Available devices for the current EDeepLearningTool.Engine.
eVision.EasyDeepLearning.EDeepLearningDevice[] AvailableDevices [get]
 Get all available device for the current engine.
int NumActiveDevices [get]
 Gets the number of devices with which to run or train the model.
string ActiveDeviceByName [set]
 Sets the device with which to run the model using its name.
int ActiveDeviceById [set]
 Sets the device with which to run the model using its index in the list returned by EDeepLearningTool.AvailableDevices.
eVision.EasyDeepLearning.EDeepLearningDevice[] ActiveDevices [get, set]
 Devices with which to run or train the model.
int[] ActiveDevicesById [set]
 Sets the devices with which to run the model using their index in the list returned by EDeepLearningTool.AvailableDevices.
eVision.EasyDeepLearning.EDeepLearningExecutionSettings ExecutionSettings [get, set]
 Execution settings of the tool (engine, device(s), inference precision, batch size settings).
eVision.EasyDeepLearning.EDeepLearningDevice EngineSetupDataDevice [get]
 Device corresponding to the engine data contained in the tool.
eVision.EasyDeepLearning.EDeepLearningInferencePrecision EngineSetupDataInferencePrecision [get]
 Inference precision corresponding to the engine data contained in the tool.
int EngineSetupDataBatchSize [get]
 Batch size corresponding to the engine data contained in the tool.
bool OptimizeBatchSize [get, set]
 Indicates whether to optimize the batch size (see EDeepLearningTool.BatchSize) to maximize the training and inference speed according to the engine, the device and the available memory.
int BatchSizeForMaximumInferenceSpeed [get]
 Computes the batch size that will maximize the inference speed on NVIDIA GPU. For all other devices, it will return 1.
int BatchSize [get, set]
 Batch size. The batch size is the number of images that are processed together during training and batch inference.
float CurrentTrainingProgression [get]
 Current training progression as a percentage (between 0 and 1).
uint CurrentTrainingFinishedIterations [get]
 Number of iterations that are already finished in the current training.
uint CurrentTrainingNumIterations [get]
 Total number of training iterations that will be performed during the current training of the deep learning tool.
uint NumTrainedIterations [get]
 Number of iterations that were performed to train this deep learning tool.
int BestIteration [get]
 Iteration at which the minimum validation error was reached. After training, the tool is in the state it was at this best iteration.
ulong ImageCacheSize [get, set]
 Size in byte of the image cache. The cache is used during training to store reformatted and normalized images. A correctly sized cache can reduce the hard drive accesses and the preprocessing time for each image.
string Path [get]
 Path of the tool when loaded or saved using EDeepLearningTool.Save or EDeepLearningTool.Load.
string InferenceModelPath [get]
 Path of the inference model when loaded or saved using EDeepLearningTool.SaveInferenceModel, EDeepLearningTool.LoadInferenceModel or EDeepLearningTool.SerializeInferenceModel.
string TrainingModelPath [get]
 Path of the training model when loaded or saved using EDeepLearningTool.SaveTrainingModel, EDeepLearningTool.LoadTrainingModel or EDeepLearningTool.SerializeTrainingModel.
string SettingsPath [get]
 Path of the settings when loaded or saved using EDeepLearningTool.SaveSettings, EDeepLearningTool.LoadSettings or EDeepLearningTool.SerializeSettings.
int AutoSavePeriod [get, set]
 Auto-save period. The auto-save period is the number of training iterations between each automatic save of the model.
eVision.EasyDeepLearning.EDeepLearningLearningRateType LearningRateType [get]
 Learning rate type.
float[] LearningRateParameters [get]
 Parameters of the learning rate.
bool EnableDeterministicTraining [get, set]
 Whether to use deterministic training algorithm that allows to repeatable training results. Default value: false.
int DeterministicTrainingRandomSeed [get, set]
 Random seed to use when EDeepLearningTool.EnableDeterministicTraining is set to true. The default value is 42.
uint NumLabels [get]
 Number of labels of this tool. If the tool is not trained, the method will throw an exception.
static int NumAvailableEngines [get]
 Number of available engines.
static string[] AvailableEngines [get]
 Available engines.

Additional Inherited Members

Static Public Member Functions inherited from eVision.EasyDeepLearning.EDeepLearningTool
static eVision.EasyDeepLearning.EDeepLearningTool Create (string path)
 Factory method to open a deep learning tool.
static eVision.EasyDeepLearning.EDeepLearningTool Create (eVision.ESerializer serializer)
 Factory method to open a deep learning tool.
static eVision.EasyDeepLearning.EDeepLearningTool Create (eVision.EasyDeepLearning.EDeepLearningToolType type)
 Factory method to open a deep learning tool.
static string GetAvailableEngineName (int id)
 Gets the name of the engine given its id.
static eVision.EasyDeepLearning.EDeepLearningDevice[] GetAvailableDevicesForEngine (string engine)
 Available devices for the specified engine.

Detailed Description

Unsupervised segmentation tool.

The unsupervised segmentation tool learns a model of what is a good product and it can be used for classifying whether an image is from a good or defective product and for segmenting the defects within the image.

To learn a model of what is a good product, the tool is trained by considering only the images from the good label (EUnsupervisedSegmenter.GoodLabel). The tool labels (EDeepLearningTool.GetLabel) will always be empty.

The tool can work with images of any resolution higher than EUnsupervisedSegmenter.PatchSize by merging the results obtained by applying the deep neural network using a sliding window algorithm. The overlapping between the sliding windows is controlled by EUnsupervisedSegmenter.SamplingDensity.

The unsupervised segmenter offers a tradeoff between a high good detection rate and a high bad detection rate through a classification threshold that can be configured after training (EUnsupervisedSegmenter.ClassificationThreshold).

License(s): EasySegment or EasySegmentInference

Constructor & Destructor Documentation

◆ EUnsupervisedSegmenter() [1/2]

eVision.EasyDeepLearning.EUnsupervisedSegmenter.EUnsupervisedSegmenter ( )

Constructs a EUnsupervisedSegmenter object.

◆ EUnsupervisedSegmenter() [2/2]

eVision.EasyDeepLearning.EUnsupervisedSegmenter.EUnsupervisedSegmenter ( eVision.EasyDeepLearning.EUnsupervisedSegmenter other)

Copy constructor of a EUnsupervisedSegmenter object.

Parameters
otherReference to the EUnsupervisedSegmenter object that should be copied

Member Function Documentation

◆ Apply() [1/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EBaseROI img)

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgImage to classify and segment defects in.

◆ Apply() [2/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EBaseROI img,
eVision.ERegion mask )

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgImage to classify and segment defects in.
maskMask region of the image.

◆ Apply() [3/10]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EBaseROI[] imgs,
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] results )

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.
resultsVector of EUnsupervisedSegmenterResult to put the segmented defects.

◆ Apply() [4/10]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EBaseROI[] imgs,
eVision.ERegion[] masks,
eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] results )

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.
masksVector of mask regions for the images.
resultsVector of EUnsupervisedSegmenterResult to put the segmented defects.

◆ Apply() [5/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EImageBW16[] imgs)

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.

◆ Apply() [6/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EImageBW16[] imgs,
eVision.ERegion[] masks )

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.
masksVector of mask regions for the images.

◆ Apply() [7/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EImageBW8[] imgs)

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.

◆ Apply() [8/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EImageBW8[] imgs,
eVision.ERegion[] masks )

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.
masksVector of mask regions for the images.

◆ Apply() [9/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EImageC24[] imgs)

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.

◆ Apply() [10/10]

eVision.EasyDeepLearning.EUnsupervisedSegmenterResult[] eVision.EasyDeepLearning.EUnsupervisedSegmenter.Apply ( eVision.EImageC24[] imgs,
eVision.ERegion[] masks )

Applies the unsupervised segmenter on the given image and its mask region. We recommend to use pointer-based versions of this method to avoid unnecessary image and result copies.

Parameters
imgsVector of image to classify and segment defects in.
masksVector of mask regions for the images.

◆ Evaluate()

eVision.EasyDeepLearning.EUnsupervisedSegmenterMetrics eVision.EasyDeepLearning.EUnsupervisedSegmenter.Evaluate ( eVision.EasyDeepLearning.EDataset dataset)

Evaluates the dataset.

Parameters
datasetDataset to evaluate

License(s): EasySegment

◆ GetNumPatchesForImage()

override int eVision.EasyDeepLearning.EUnsupervisedSegmenter.GetNumPatchesForImage ( int imageWidth,
int imageHeight )
virtual

Number of patches that will be extracted from an input image to perform inference.

For EasyClassify and EasyLocate, this will always be equal to 1. For EasySegment, the number of patches will depend on the scale, patch size and sampling density parameters.

Parameters
imageWidthWidth of the image for which to get the number of patch
imageHeightHeight of the image for which to get the number of patch

Reimplemented from eVision.EasyDeepLearning.EDeepLearningTool.

◆ GetTrainingMetrics()

eVision.EasyDeepLearning.EUnsupervisedSegmenterMetrics eVision.EasyDeepLearning.EUnsupervisedSegmenter.GetTrainingMetrics ( int iteration)

Training metrics at the given iteration.

Parameters
iterationIteration at which to get the metrics

At a given iteration, the metrics will always contain the error (see EUnsupervisedSegmenterMetrics.Error). Other metrics (scores, accuracy, etc.) will be available only at iterations where the validation error is a new minimum.

◆ GetValidationMetrics()

eVision.EasyDeepLearning.EUnsupervisedSegmenterMetrics eVision.EasyDeepLearning.EUnsupervisedSegmenter.GetValidationMetrics ( int iteration)

Validation metrics at the given iteration.

Parameters
iterationIteration at which to get the metrics

At a given iteration, the metrics will always contain the error (see EUnsupervisedSegmenterMetrics.Error). Other metrics (scores, accuracy, etc.) will be available only at iterations where the validation error is a new minimum.

◆ SerializeSettings()

override void eVision.EasyDeepLearning.EUnsupervisedSegmenter.SerializeSettings ( eVision.ESerializer serializer)

Serializes the settings of the unsupervised segmenter.

Parameters
serializerPointer to ESerializer

◆ Train() [1/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset dataset)

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
datasetEDataset with which to train and validate the deep learning tool

License(s): EasySegment

◆ Train() [2/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset dataset,
eVision.EasyDeepLearning.EDataAugmentation dataAugmentation )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
datasetEDataset with which to train and validate the deep learning tool
dataAugmentationData augmentation to use during training

License(s): EasySegment

◆ Train() [3/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset dataset,
eVision.EasyDeepLearning.EDataAugmentation dataAugmentation,
int iterations )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
datasetEDataset with which to train and validate the deep learning tool
dataAugmentationData augmentation to use during training
iterationsNumber of iterations for training.

License(s): EasySegment

◆ Train() [4/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset dataset,
int iterations )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
datasetEDataset with which to train and validate the deep learning tool
iterationsNumber of iterations for training.

License(s): EasySegment

◆ Train() [5/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset trainingDataset,
eVision.EasyDeepLearning.EDataset validationDataset )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
trainingDatasetEDataset with which to train the deep learning tool
validationDatasetEDataset with which to validate the deep learning tool

License(s): EasySegment

◆ Train() [6/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset trainingDataset,
eVision.EasyDeepLearning.EDataset validationDataset,
eVision.EasyDeepLearning.EDataAugmentation dataAugmentation )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
trainingDatasetEDataset with which to train the deep learning tool
validationDatasetEDataset with which to validate the deep learning tool
dataAugmentationData augmentation to use during training

License(s): EasySegment

◆ Train() [7/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset trainingDataset,
eVision.EasyDeepLearning.EDataset validationDataset,
eVision.EasyDeepLearning.EDataAugmentation dataAugmentation,
int iterations )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
trainingDatasetEDataset with which to train the deep learning tool
validationDatasetEDataset with which to validate the deep learning tool
dataAugmentationData augmentation to use during training
iterationsNumber of iterations for training.

License(s): EasySegment

◆ Train() [8/8]

void eVision.EasyDeepLearning.EUnsupervisedSegmenter.Train ( eVision.EasyDeepLearning.EDataset trainingDataset,
eVision.EasyDeepLearning.EDataset validationDataset,
int iterations )

Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations.

At the end of the training, the deep learning tool is in the state it was at the iteration that gave the minimum validation error. See EDeepLearningTool.BestIteration.

If no iterations is given, the training will stop automatically.

Parameters
trainingDatasetEDataset with which to train the deep learning tool
validationDatasetEDataset with which to validate the deep learning tool
iterationsNumber of iterations for training.

License(s): EasySegment

Property Documentation

◆ Capacity

eVision.EasyDeepLearning.EUnsupervisedSegmenterCapacity eVision.EasyDeepLearning.EUnsupervisedSegmenter.Capacity
getset

Capacity of the EUnsupervisedSegmenter.

A higher capacity makes the unsupervised segmenter capable of learning more information at the cost of a slower processing speed.

◆ Channels

uint eVision.EasyDeepLearning.EUnsupervisedSegmenter.Channels
get

Number of channels of input images. It can either be 1 for grayscale images or 3 for color images.

If the segmenter tool is not trained or the value was not explicitly set, its value will be 0.

◆ ClassificationThreshold

float eVision.EasyDeepLearning.EUnsupervisedSegmenter.ClassificationThreshold
getset

Classification threshold for the score of an image (See EUnsupervisedSegmenterResult.ClassificationScore).

A image with a score smaller or equal to the classification threshold will be classified as good.

The classification threshold is optimized during training to maximize the balanced accuracy of the unsupervised segmenter.

The classification threshold can be changed after training.

◆ ForceGrayscale

bool eVision.EasyDeepLearning.EUnsupervisedSegmenter.ForceGrayscale
getset

Forces the EUnsupervisedSegmenter to convert all images to grayscale (default: true).

Setting this property to false will make the underlying neural network operates with the same number of channels as the images in the dataset used for training. Otherwise, color images will be converted to grayscale before using them.

◆ GoodLabel

string eVision.EasyDeepLearning.EUnsupervisedSegmenter.GoodLabel
getset

Name of the good label in the dataset that is used for training (default value: empty).

◆ InferenceScale

float eVision.EasyDeepLearning.EUnsupervisedSegmenter.InferenceScale
get

The effective scale applied when performing inference.

If EUnsupervisedSegmenter.ScaleDisabledAtInference is true, it is equal to 1.0. Otherwise, it is equal to EUnsupervisedSegmenter.Scale.

◆ PatchSize

int eVision.EasyDeepLearning.EUnsupervisedSegmenter.PatchSize
getset

Patch size (width and height of the patches processed by the neural network).

There are three supported patch size: 64x64, 128x128, and 256x256. By default, the patch size is 0 and it means that the patch size will be 128x128 if all images in the training and validation dataset have a higher resolution or the patch size will be 64x64.

◆ SamplingDensity

float eVision.EasyDeepLearning.EUnsupervisedSegmenter.SamplingDensity
getset

Sampling density (default value: 2.0, its value must be equal or greater than 1).

The sampling density is the parameter of the sliding window algorithm used for processing a whole image using subwindows of size EUnsupervisedSegmenter.PatchSize. It indicates how much overlap there will be between the image patches: the stride between two consecutive patches is EUnsupervisedSegmenter.PatchSize / EUnsupervisedSegmenter.SamplingDensity.

◆ Scale

float eVision.EasyDeepLearning.EUnsupervisedSegmenter.Scale
getset

Down-scaling applied to images before processing them. Its value is between 0 and 1 (default value: 1).

◆ ScaleDisabledAtInference

bool eVision.EasyDeepLearning.EUnsupervisedSegmenter.ScaleDisabledAtInference
getset

Whether to apply the scale parameter at inference or not.

If you disable the scale at inference, make sure your images are already scaled. For example, if you trained with images of 1024x1024 and a scale of 0.5, the inference images should be 512 x 512 images with the same field of view as the training images.

◆ ToolType

override eVision.EasyDeepLearning.EDeepLearningToolType eVision.EasyDeepLearning.EUnsupervisedSegmenter.ToolType
get

Type of the deep learning tool.