Unsupervised segmentation tool. More...
#include <eVision/EasyDeepLearning/EasySegment/EUnsupervisedSegmenter.h>
Public Member Functions | |
| EUnsupervisedSegmenter () | |
| Constructs a EUnsupervisedSegmenter object. | |
| EUnsupervisedSegmenter (const eVision::EasyDeepLearning::EUnsupervisedSegmenter &other) | |
| Copy constructor of a EUnsupervisedSegmenter object. | |
| virtual | ~EUnsupervisedSegmenter () throw () |
| eVision::EasyDeepLearning::EUnsupervisedSegmenter & | operator= (const eVision::EasyDeepLearning::EUnsupervisedSegmenter &other) |
| Assignment operator. | |
| virtual void | SerializeSettings (eVision::ESerializer *serializer) |
| Serializes the settings of the unsupervised segmenter. | |
| uint32_t | GetChannels () const |
| Number of channels of input images. It can either be 1 for grayscale images or 3 for color images. | |
| virtual eVision::EasyDeepLearning::EDeepLearningToolType | GetToolType () const |
| Type of the deep learning tool. | |
| void | SetCapacity (eVision::EasyDeepLearning::EUnsupervisedSegmenterCapacity capacity) |
| Capacity of the EUnsupervisedSegmenter. | |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterCapacity | GetCapacity () const |
| Capacity of the EUnsupervisedSegmenter. | |
| void | SetForceGrayscale (bool forceGrayscale) |
| Forces the EUnsupervisedSegmenter to convert all images to grayscale (default: true). | |
| bool | GetForceGrayscale () const |
| Forces the EUnsupervisedSegmenter to convert all images to grayscale (default: true). | |
| int | GetPatchSize () const |
| Patch size (width and height of the patches processed by the neural network). | |
| void | SetPatchSize (int patchSize) |
| Patch size (width and height of the patches processed by the neural network). | |
| float | GetScale () const |
| Down-scaling applied to images before processing them. Its value is between 0 and 1 (default value: 1). | |
| void | SetScale (float scale) |
| Down-scaling applied to images before processing them. Its value is between 0 and 1 (default value: 1). | |
| void | SetClassificationThreshold (float threshold) |
| Classification threshold for the score of an image (See EUnsupervisedSegmenterResult::GetClassificationScore). | |
| float | GetClassificationThreshold () const |
| Classification threshold for the score of an image (See EUnsupervisedSegmenterResult::GetClassificationScore). | |
| void | SetSamplingDensity (float density) |
| Sampling density (default value: 2.0, its value must be equal or greater than 1). | |
| float | GetSamplingDensity () const |
| Sampling density (default value: 2.0, its value must be equal or greater than 1). | |
| void | SetGoodLabel (const std::string &label) |
| Name of the good label in the dataset that is used for training (default value: empty). | |
| std::string | GetGoodLabel () const |
| Name of the good label in the dataset that is used for training (default value: empty). | |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterMetrics | GetTrainingMetrics (int iteration) const |
| Training metrics at the given iteration. | |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterMetrics | GetValidationMetrics (int iteration) const |
| 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, const 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, const 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, const 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, const eVision::EasyDeepLearning::EDataAugmentation &dataAugmentation, int iterations) |
| Trains the EUnsupervisedSegmenter with the given dataset for the specified number of iterations. | |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterResult | Apply (const 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 (const eVision::EBaseROI &img, const 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. | |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > | Apply (const std::vector< 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. | |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > | Apply (const std::vector< eVision::EImageBW8 > &imgs, const std::vector< 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. | |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > | Apply (const std::vector< 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. | |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > | Apply (const std::vector< eVision::EImageBW16 > &imgs, const std::vector< 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. | |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > | Apply (const std::vector< 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. | |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > | Apply (const std::vector< eVision::EImageC24 > &imgs, const std::vector< 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 (const std::vector< eVision::EBaseROI * > &imgs, const std::vector< 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 (const std::vector< eVision::EBaseROI * > &imgs, const std::vector< eVision::ERegion * > &masks, const std::vector< 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 (const eVision::EasyDeepLearning::EDataset &dataset) |
| Evaluates the dataset. | |
| virtual int | GetNumPatchesForImage (int imageWidth, int imageHeight) const |
| Number of patches that will be extracted from an input image to perform inference. | |
| bool | GetScaleDisabledAtInference () const |
| Whether to apply the scale parameter at inference or not. | |
| void | SetScaleDisabledAtInference (bool disable) |
| Whether to apply the scale parameter at inference or not. | |
| float | GetInferenceScale () const |
| The effective scale applied when performing inference. | |
| EUnsupervisedSegmenter (CppWrapperInternal::InternalConstructor) | |
| Public Member Functions inherited from eVision::EasyDeepLearning::EDeepLearningTool | |
| virtual | ~EDeepLearningTool () throw () |
| virtual void | Load (const std::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. | |
| std::unique_ptr< eVision::EasyDeepLearning::EDeepLearningTool > | Clone () const |
| Clones this tool. | |
| virtual void | Save (const std::string &filePath, bool includeTrainingModel) |
| Saves the settings, inference and training model of the deep learning tool. | |
| virtual void | Save (const std::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 | 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 (const std::string &filePath) |
| Saves the settings of the tool to a file. | |
| void | SaveInferenceModel (const std::string &filePath) |
| Saves the tool's inference model to a file. | |
| void | SaveTrainingModel (const std::string &filePath) |
| Saves the tool's training model to a file. | |
| void | LoadSettings (const std::string &filePath) |
| Loads the settings of a tool. | |
| void | LoadInferenceModel (const std::string &filePath) |
| Loads the tool's inference model. The inference model is required to apply the tool on new images. | |
| void | LoadTrainingModel (const std::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 () const |
| Whether the inference model is loaded or created when the tool is not yet trained. | |
| bool | HasTrainingModel () const |
| Whether the training model is loaded or created when the tool is not yet trained. | |
| bool | IsTrained () const |
| Tells whether the deep learning tool has been trained. | |
| void | SetEnableGPU (bool enable) |
| 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::SetEnableGPU will be false even if the active device has a GPU device type. Setting EDeepLearningTool::SetEnableGPU to any value when the active engine is not the default one will throw an exception. | |
| bool | GetEnableGPU () const |
| 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::SetEnableGPU will be false even if the active device has a GPU device type. Setting EDeepLearningTool::SetEnableGPU to any value when the active engine is not the default one will throw an exception. | |
| void | SetGPUIndexes (const std::vector< uint32_t > &indexes) |
| Indexes of the GPUs to use for computations. | |
| std::vector< uint32_t > | GetGPUIndexes () const |
| Indexes of the GPUs to use for computations. | |
| uint32_t | GetNumGPUs () const |
| Number of detected NVIDIA GPU. | |
| void | SetEngine (const std::string &engineName) |
| Sets the engine with which to execute or train the neural network. | |
| std::string | GetEngine () const |
| Sets the engine with which to execute or train the neural network. | |
| eVision::EasyDeepLearning::EDeepLearningInferencePrecision | GetInferencePrecision () const |
| Inference precision. | |
| void | SetInferencePrecision (eVision::EasyDeepLearning::EDeepLearningInferencePrecision prec) |
| Inference precision. | |
| int | GetNumAvailableDevices () const |
| Available devices for the current EDeepLearningTool::SetEngine. | |
| std::string | GetAvailableDeviceName (int i) const |
| Name of the i-th device of the current engine. | |
| eVision::EasyDeepLearning::EDeepLearningDevice | GetAvailableDevice (int i) const |
| i-th EDeepLearningDevice of the current engine. | |
| std::vector< eVision::EasyDeepLearning::EDeepLearningDevice > | GetAvailableDevices () const |
| Get all available device for the current engine. | |
| int | GetNumActiveDevices () const |
| Gets the number of devices with which to run or train the model. | |
| void | SetActiveDevice (const eVision::EasyDeepLearning::EDeepLearningDevice &device) |
| Sets the device with which to run or train the model. | |
| eVision::EasyDeepLearning::EDeepLearningDevice | GetActiveDevice (int i) const |
| Gets the active device. By default, it returns the first active device. | |
| eVision::EasyDeepLearning::EDeepLearningDevice | GetActiveDevice () const |
| Gets the active device. By default, it returns the first active device. | |
| void | SetActiveDeviceByName (const std::string &name) |
| Sets the device with which to run the model using its name. | |
| void | SetActiveDeviceById (int id) |
| Sets the device with which to run the model using its index in the list returned by EDeepLearningTool::GetAvailableDevices. | |
| std::vector< eVision::EasyDeepLearning::EDeepLearningDevice > | GetActiveDevices () const |
| Devices with which to run or train the model. | |
| void | SetActiveDevices (const std::vector< eVision::EasyDeepLearning::EDeepLearningDevice > &devices) |
| Devices with which to run or train the model. | |
| void | SetActiveDevicesById (const std::vector< int > &ids) |
| Sets the devices with which to run the model using their index in the list returned by EDeepLearningTool::GetAvailableDevices. | |
| eVision::EasyDeepLearning::EDeepLearningExecutionSettings | GetExecutionSettings () const |
| Execution settings of the tool (engine, device(s), inference precision, batch size settings). | |
| void | SetExecutionSettings (const eVision::EasyDeepLearning::EDeepLearningExecutionSettings &settings) |
| Execution settings of the tool (engine, device(s), inference precision, batch size settings). | |
| bool | HasEngineSetupData () const |
| 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. | |
| eVision::EasyDeepLearning::EDeepLearningDevice | GetEngineSetupDataDevice () const |
| Device corresponding to the engine data contained in the tool. | |
| eVision::EasyDeepLearning::EDeepLearningInferencePrecision | GetEngineSetupDataInferencePrecision () const |
| Inference precision corresponding to the engine data contained in the tool. | |
| int32_t | GetEngineSetupDataBatchSize () const |
| Batch size corresponding to the engine data contained in the tool. | |
| bool | GetOptimizeBatchSize () const |
| Indicates whether to optimize the batch size (see EDeepLearningTool::SetBatchSize) to maximize the training and inference speed according to the engine, the device and the available memory. | |
| void | SetOptimizeBatchSize (bool optimize) |
| Indicates whether to optimize the batch size (see EDeepLearningTool::SetBatchSize) to maximize the training and inference speed according to the engine, the device and the available memory. | |
| int32_t | GetBatchSizeForMaximumInferenceSpeed () const |
| Computes the batch size that will maximize the inference speed on NVIDIA GPU. For all other devices, it will return 1. | |
| void | SetBatchSize (int32_t size) |
| Batch size. The batch size is the number of images that are processed together during training and batch inference. | |
| int32_t | GetBatchSize () const |
| Batch size. The batch size is the number of images that are processed together during training and batch inference. | |
| bool | IsTraining () const |
| 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. | |
| float | GetCurrentTrainingProgression () const |
| Current training progression as a percentage (between 0 and 1). | |
| uint32_t | GetCurrentTrainingFinishedIterations () const |
| Number of iterations that are already finished in the current training. | |
| uint32_t | GetCurrentTrainingNumIterations () const |
| Total number of training iterations that will be performed during the current training of the deep learning tool. | |
| uint32_t | GetNumTrainedIterations () const |
| Number of iterations that were performed to train this deep learning tool. | |
| int | GetBestIteration () const |
| Iteration at which the minimum validation error was reached. After training, the tool is in the state it was at this best iteration. | |
| void | SetImageCacheSize (uint64_t size) |
| 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. | |
| uint64_t | GetImageCacheSize () const |
| 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. | |
| std::string | GetPath () const |
| Path of the tool when loaded or saved using EDeepLearningTool::Save or EDeepLearningTool::Load. | |
| std::string | GetInferenceModelPath () const |
| Path of the inference model when loaded or saved using EDeepLearningTool::SaveInferenceModel, EDeepLearningTool::LoadInferenceModel or EDeepLearningTool::SerializeInferenceModel. | |
| std::string | GetTrainingModelPath () const |
| Path of the training model when loaded or saved using EDeepLearningTool::SaveTrainingModel, EDeepLearningTool::LoadTrainingModel or EDeepLearningTool::SerializeTrainingModel. | |
| std::string | GetSettingsPath () const |
| Path of the settings when loaded or saved using EDeepLearningTool::SaveSettings, EDeepLearningTool::LoadSettings or EDeepLearningTool::SerializeSettings. | |
| void | SetAutoSavePeriod (int period) |
| Auto-save period. The auto-save period is the number of training iterations between each automatic save of the model. | |
| int | GetAutoSavePeriod () const |
| Auto-save period. The auto-save period is the number of training iterations between each automatic save of the model. | |
| void | SetLearningRate (eVision::EasyDeepLearning::EDeepLearningLearningRateType type, const std::vector< float > ¶meters) |
| Specifies how the value of the learning rate and how it evolves during training. | |
| eVision::EasyDeepLearning::EDeepLearningLearningRateType | GetLearningRateType () const |
| Learning rate type. | |
| std::vector< float > | GetLearningRateParameters () const |
| Parameters of the learning rate. | |
| void | SetEnableDeterministicTraining (bool enable) |
| Whether to use deterministic training algorithm that allows to repeatable training results. Default value: false. | |
| bool | GetEnableDeterministicTraining () const |
| Whether to use deterministic training algorithm that allows to repeatable training results. Default value: false. | |
| void | SetDeterministicTrainingRandomSeed (int32_t seed) |
| Random seed to use when EDeepLearningTool::SetEnableDeterministicTraining is set to true. The default value is 42. | |
| int32_t | GetDeterministicTrainingRandomSeed () const |
| Random seed to use when EDeepLearningTool::SetEnableDeterministicTraining is set to true. The default value is 42. | |
| 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 (const eVision::EBaseROI &img) |
| Initializes the neural network for inference (i.e. making predictions with the neural network). | |
| void | InitializeInference (std::vector< const eVision::EBaseROI * > &imgList) |
| Initializes the neural network for inference (i.e. making predictions with the neural network). | |
| void | InitializeInference (std::vector< eVision::EImageBW8 > &imgList) |
| Initializes the neural network for inference (i.e. making predictions with the neural network). | |
| void | InitializeInference (std::vector< eVision::EImageBW16 > &imgList) |
| Initializes the neural network for inference (i.e. making predictions with the neural network). | |
| void | InitializeInference (std::vector< eVision::EImageC24 > &imgList) |
| Initializes the neural network for inference (i.e. making predictions with the neural network). | |
| uint32_t | GetNumLabels () const |
| Number of labels of this tool. If the tool is not trained, the method will throw an exception. | |
| std::string | GetLabel (uint32_t index) const |
| Gets the label from its index. If the tool is not trained, the method may throw an exception. | |
| virtual void | SetLabel (uint32_t index, const std::string &label) |
| Changes a label predicted by the tool. | |
| void | SetLabelWeight (uint32_t 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 (uint32_t index) const |
| 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 (uint32_t index, const eVision::ERGBColor &c) |
| Changes a label color. | |
| eVision::ERGBColor | GetLabelColor (uint32_t index) const |
| Label color. The label colors affect how the results will be displayed. | |
| void | SetLabelOpacity (uint32_t index, uint8_t opacity) |
| Changes a label opacity (between 0 for fully transparent and 255 for opaque color). | |
| uint8_t | GetLabelOpacity (uint32_t index) const |
| 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 (const eVision::EBaseROI &sampleImage) const |
| Optimal number of images to process together for inference given the batch size and EDeepLearningTool::GetNumPatchesForImage. | |
| int | GetOptimalNumImagesForBatchSize (int imageWidth, int imageHeight) const |
| Optimal number of images to process together for inference given the batch size and EDeepLearningTool::GetNumPatchesForImage. | |
| int | GetNumPatchesForImage (const eVision::EBaseROI &sampleImage) const |
| 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. | |
| EDeepLearningTool (CppWrapperInternal::InternalConstructor) | |
Additional Inherited Members | |
| Static Public Member Functions inherited from eVision::EasyDeepLearning::EDeepLearningTool | |
| static std::unique_ptr< eVision::EasyDeepLearning::EDeepLearningTool > | Create (const std::string &path) |
| Factory method to open a deep learning tool. | |
| static std::unique_ptr< eVision::EasyDeepLearning::EDeepLearningTool > | Create (eVision::ESerializer *serializer) |
| Factory method to open a deep learning tool. | |
| static std::unique_ptr< eVision::EasyDeepLearning::EDeepLearningTool > | Create (eVision::EasyDeepLearning::EDeepLearningToolType type) |
| Factory method to open a deep learning tool. | |
| static int | GetNumAvailableEngines () |
| Number of available engines. | |
| static std::string | GetAvailableEngineName (int id) |
| Gets the name of the engine given its id. | |
| static std::vector< std::string > | GetAvailableEngines () |
| Available engines. | |
| static std::vector< eVision::EasyDeepLearning::EDeepLearningDevice > | GetAvailableDevicesForEngine (const std::string &engine) |
| Available devices for the specified engine. | |
| Public Attributes inherited from eVision::EasyDeepLearning::EDeepLearningTool | |
| CppWrapperInternal::WrappedClass | wrappedClass_ |
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::SetGoodLabel). The tool labels (EDeepLearningTool::GetLabel) will always be empty.
The tool can work with images of any resolution higher than EUnsupervisedSegmenter::GetPatchSize 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::SetSamplingDensity.
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::SetClassificationThreshold).
License(s): EasySegment or EasySegmentInference
| eVision::EasyDeepLearning::EUnsupervisedSegmenter::EUnsupervisedSegmenter | ( | ) |
Constructs a EUnsupervisedSegmenter object.
| eVision::EasyDeepLearning::EUnsupervisedSegmenter::EUnsupervisedSegmenter | ( | const eVision::EasyDeepLearning::EUnsupervisedSegmenter & | other | ) |
Copy constructor of a EUnsupervisedSegmenter object.
| other | Reference to the EUnsupervisedSegmenter object that should be copied |
|
virtual | ||||||||||||
| eVision::EasyDeepLearning::EUnsupervisedSegmenter::EUnsupervisedSegmenter | ( | CppWrapperInternal::InternalConstructor | ) |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterResult eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const 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.
| img | Image to classify and segment defects in. |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterResult eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const eVision::EBaseROI & | img, |
| const 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.
| img | Image to classify and segment defects in. |
| mask | Mask region of the image. |
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< eVision::EBaseROI * > & | imgs, |
| const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| results | Vector of EUnsupervisedSegmenterResult to put the segmented defects. |
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< eVision::EBaseROI * > & | imgs, |
| const std::vector< eVision::ERegion * > & | masks, | ||
| const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| masks | Vector of mask regions for the images. |
| results | Vector of EUnsupervisedSegmenterResult to put the segmented defects. |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< eVision::EImageBW16 > & | imgs, |
| const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| masks | Vector of mask regions for the images. |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< eVision::EImageBW8 > & | imgs, |
| const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| masks | Vector of mask regions for the images. |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| std::vector< eVision::EasyDeepLearning::EUnsupervisedSegmenterResult > eVision::EasyDeepLearning::EUnsupervisedSegmenter::Apply | ( | const std::vector< eVision::EImageC24 > & | imgs, |
| const std::vector< 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.
| imgs | Vector of image to classify and segment defects in. |
| masks | Vector of mask regions for the images. |
| eVision::EasyDeepLearning::EUnsupervisedSegmenterMetrics eVision::EasyDeepLearning::EUnsupervisedSegmenter::Evaluate | ( | const eVision::EasyDeepLearning::EDataset & | dataset | ) |
Evaluates the dataset.
| dataset | Dataset to evaluate |
License(s): EasySegment
| eVision::EasyDeepLearning::EUnsupervisedSegmenterCapacity eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetCapacity | ( | ) | const |
Capacity of the EUnsupervisedSegmenter.
A higher capacity makes the unsupervised segmenter capable of learning more information at the cost of a slower processing speed.
| uint32_t eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetChannels | ( | ) | const |
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.
| float eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetClassificationThreshold | ( | ) | const |
Classification threshold for the score of an image (See EUnsupervisedSegmenterResult::GetClassificationScore).
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.
| bool eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetForceGrayscale | ( | ) | const |
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.
| std::string eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetGoodLabel | ( | ) | const |
Name of the good label in the dataset that is used for training (default value: empty).
| float eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetInferenceScale | ( | ) | const |
The effective scale applied when performing inference.
If EUnsupervisedSegmenter::GetScaleDisabledAtInference is true, it is equal to 1.0. Otherwise, it is equal to EUnsupervisedSegmenter::GetScale.
|
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.
| imageWidth | Width of the image for which to get the number of patch |
| imageHeight | Height of the image for which to get the number of patch |
Reimplemented from eVision::EasyDeepLearning::EDeepLearningTool.
| int eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetPatchSize | ( | ) | const |
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.
| float eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetSamplingDensity | ( | ) | const |
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::GetPatchSize. It indicates how much overlap there will be between the image patches: the stride between two consecutive patches is EUnsupervisedSegmenter::GetPatchSize / EUnsupervisedSegmenter::SetSamplingDensity.
| float eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetScale | ( | ) | const |
Down-scaling applied to images before processing them. Its value is between 0 and 1 (default value: 1).
| bool eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetScaleDisabledAtInference | ( | ) | const |
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.
|
virtual |
Type of the deep learning tool.
Implements eVision::EasyDeepLearning::EDeepLearningTool.
| eVision::EasyDeepLearning::EUnsupervisedSegmenterMetrics eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetTrainingMetrics | ( | int | iteration | ) | const |
Training metrics at the given iteration.
| iteration | Iteration at which to get the metrics |
At a given iteration, the metrics will always contain the error (see EUnsupervisedSegmenterMetrics::GetError). Other metrics (scores, accuracy, etc.) will be available only at iterations where the validation error is a new minimum.
| eVision::EasyDeepLearning::EUnsupervisedSegmenterMetrics eVision::EasyDeepLearning::EUnsupervisedSegmenter::GetValidationMetrics | ( | int | iteration | ) | const |
Validation metrics at the given iteration.
| iteration | Iteration at which to get the metrics |
At a given iteration, the metrics will always contain the error (see EUnsupervisedSegmenterMetrics::GetError). Other metrics (scores, accuracy, etc.) will be available only at iterations where the validation error is a new minimum.
| eVision::EasyDeepLearning::EUnsupervisedSegmenter & eVision::EasyDeepLearning::EUnsupervisedSegmenter::operator= | ( | const eVision::EasyDeepLearning::EUnsupervisedSegmenter & | other | ) |
Assignment operator.
| other | Reference to the EUnsupervisedSegmenter object that should be copied |
|
virtual |
Serializes the settings of the unsupervised segmenter.
| serializer | Pointer to ESerializer |
Implements eVision::EasyDeepLearning::EDeepLearningTool.
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetCapacity | ( | eVision::EasyDeepLearning::EUnsupervisedSegmenterCapacity | capacity | ) |
Capacity of the EUnsupervisedSegmenter.
A higher capacity makes the unsupervised segmenter capable of learning more information at the cost of a slower processing speed.
| capacity | Capacity |
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetClassificationThreshold | ( | float | threshold | ) |
Classification threshold for the score of an image (See EUnsupervisedSegmenterResult::GetClassificationScore).
A image with a score smaller or equal to the classification threshold will be classified as good.
| threshold | Threshold |
The classification threshold is optimized during training to maximize the balanced accuracy of the unsupervised segmenter.
The classification threshold can be changed after training.
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetForceGrayscale | ( | bool | forceGrayscale | ) |
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.
| forceGrayscale | Whether to force grayscale. |
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetGoodLabel | ( | const std::string & | label | ) |
Name of the good label in the dataset that is used for training (default value: empty).
| label | Good label |
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetPatchSize | ( | int | patchSize | ) |
Patch size (width and height of the patches processed by the neural network).
| patchSize | Size of the patch |
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.
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetSamplingDensity | ( | float | density | ) |
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::GetPatchSize. It indicates how much overlap there will be between the image patches: the stride between two consecutive patches is EUnsupervisedSegmenter::GetPatchSize / EUnsupervisedSegmenter::SetSamplingDensity.
| density | Sampling density |
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetScale | ( | float | scale | ) |
Down-scaling applied to images before processing them. Its value is between 0 and 1 (default value: 1).
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::SetScaleDisabledAtInference | ( | bool | disable | ) |
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.
| disable | Whether to disable the scaling when doing inference |
| 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| dataset | EDataset with which to train and validate the deep learning tool |
License(s): EasySegment
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::Train | ( | eVision::EasyDeepLearning::EDataset & | dataset, |
| const 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| dataset | EDataset with which to train and validate the deep learning tool |
| dataAugmentation | Data augmentation to use during training |
License(s): EasySegment
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::Train | ( | eVision::EasyDeepLearning::EDataset & | dataset, |
| const 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| dataset | EDataset with which to train and validate the deep learning tool |
| dataAugmentation | Data augmentation to use during training |
| iterations | Number of iterations for training. |
License(s): EasySegment
| 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| dataset | EDataset with which to train and validate the deep learning tool |
| iterations | Number of iterations for training. |
License(s): EasySegment
| 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| trainingDataset | EDataset with which to train the deep learning tool |
| validationDataset | EDataset with which to validate the deep learning tool |
License(s): EasySegment
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::Train | ( | eVision::EasyDeepLearning::EDataset & | trainingDataset, |
| eVision::EasyDeepLearning::EDataset & | validationDataset, | ||
| const 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| trainingDataset | EDataset with which to train the deep learning tool |
| validationDataset | EDataset with which to validate the deep learning tool |
| dataAugmentation | Data augmentation to use during training |
License(s): EasySegment
| void eVision::EasyDeepLearning::EUnsupervisedSegmenter::Train | ( | eVision::EasyDeepLearning::EDataset & | trainingDataset, |
| eVision::EasyDeepLearning::EDataset & | validationDataset, | ||
| const 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| trainingDataset | EDataset with which to train the deep learning tool |
| validationDataset | EDataset with which to validate the deep learning tool |
| dataAugmentation | Data augmentation to use during training |
| iterations | Number of iterations for training. |
License(s): EasySegment
| 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::GetBestIteration.
If no iterations is given, the training will stop automatically.
| trainingDataset | EDataset with which to train the deep learning tool |
| validationDataset | EDataset with which to validate the deep learning tool |
| iterations | Number of iterations for training. |
License(s): EasySegment