Skip to content

classify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlpT_classify_image_class_mlp🔗

Short description🔗

classify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlpT_classify_image_class_mlp — Classify an image with a multilayer perceptron.

Signature🔗

classify_image_class_mlp( image Image, out region ClassRegions, class_mlp MLPHandle, real RejectionThreshold )void ClassifyImageClassMlp( const HObject& Image, HObject* ClassRegions, const HTuple& MLPHandle, const HTuple& RejectionThreshold )static void HOperatorSet.ClassifyImageClassMlp( HObject image, out HObject classRegions, HTuple MLPHandle, HTuple rejectionThreshold )def classify_image_class_mlp( image: HObject, mlphandle: HHandle, rejection_threshold: float ) -> HObject

Herror T_classify_image_class_mlp( const Hobject Image, Hobject* ClassRegions, const Htuple MLPHandle, const Htuple RejectionThreshold )

HRegion HImage::ClassifyImageClassMlp( const HClassMlp& MLPHandle, double RejectionThreshold ) const

HRegion HClassMlp::ClassifyImageClassMlp( const HImage& Image, double RejectionThreshold ) const

HRegion HImage.ClassifyImageClassMlp( HClassMlp MLPHandle, double rejectionThreshold )

HRegion HClassMlp.ClassifyImageClassMlp( HImage image, double rejectionThreshold )

Description🔗

classify_image_class_mlpClassifyImageClassMlp performs a pixel classification with the multilayer perceptron (MLP) MLPHandleMLPHandlemlphandle on the multichannel image Imageimageimage. Before calling classify_image_class_mlpClassifyImageClassMlp the MLP must be trained with train_class_mlpTrainClassMlp. Imageimageimage must have NumInputnumInputnum_input channels, as specified with create_class_mlpCreateClassMlp. On output, ClassRegionsclassRegionsclass_regions contains NumOutputnumOutputnum_output regions as the result of the classification. Note that the order of the regions that are returned in ClassRegionsclassRegionsclass_regions corresponds to the order of the classes as defined by the training regions in add_samples_image_class_mlpAddSamplesImageClassMlp. The parameter RejectionThresholdrejectionThresholdrejection_threshold can be used to reject pixels that have an uncertain classification. RejectionThresholdrejectionThresholdrejection_threshold represents a threshold on the probability measure returned by the classification (see classify_class_mlpClassifyClassMlp and evaluate_class_mlpEvaluateClassMlp). All pixels having a probability below RejectionThresholdrejectionThresholdrejection_threshold are not assigned to any class. Because an MLP typically assigns pixels that lie outside the convex hull of the training data in the feature space to one of the classes with high probability (confidence), it is useful in many cases to explicitly train a rejection class, even if RejectionThresholdrejectionThresholdrejection_threshold is used, by adding samples for the rejection class with add_samples_image_class_mlpAddSamplesImageClassMlp and by re-training the MLP with train_class_mlpTrainClassMlp.

Execution information🔗

Execution information
  • Multithreading type: reentrant (runs in parallel with non-exclusive operators).

  • Multithreading scope: global (may be called from any thread).

  • Automatically parallelized on internal data level.

Parameters🔗

Imageimageimage (input_object) (multichannel-)image → object (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)HObject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)HImage (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)HObject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)Hobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)

Input image.

ClassRegionsclassRegionsclass_regions (output_object) region-array → objectHObjectHRegionHObjectHobject *

Segmented classes.

MLPHandleMLPHandlemlphandle (input_control) class_mlp → (handle)HTuple (HHandle)HClassMlp, HTuple (IntPtr)HHandleHtuple (handle)

MLP handle.

RejectionThresholdrejectionThresholdrejection_threshold (input_control) real → (real)HTuple (double)HTuple (double)floatHtuple (double)

Threshold for the rejection of the classification.

Default: 0.50.5
Suggested values: 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.00.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
Restriction: RejectionThreshold >= 0.0 && RejectionThreshold <= 1.0

Example🔗

(HDevelop)

read_image (Image, 'ic')
gen_rectangle1 (Board, 80, 320, 110, 350)
gen_rectangle1 (Capacitor, 359, 263, 371, 302)
gen_rectangle1 (Resistor, 200, 252, 290, 256)
gen_rectangle1 (IC, 180, 135, 216, 165)
concat_obj (Board, Capacitor, Classes)
concat_obj (Classes, Resistor, Classes)
concat_obj (Classes, IC, Classes)
create_class_mlp (3, 3, 4, 'softmax', 'principal_components', 3, 42, \
                  MLPHandle)
add_samples_image_class_mlp (Image, Classes, MLPHandle)
get_sample_num_class_mlp (MLPHandle, NumSamples)
train_class_mlp (MLPHandle, 200, 1, 0.01, Error, ErrorLog)
classify_image_class_mlp (Image, ClassRegions, MLPHandle, 0.5)
dev_display (ClassRegions)

Result🔗

If the parameters are valid, the operator classify_image_class_mlpClassifyImageClassMlp returns the value 2 (H_MSG_TRUE). If necessary an exception is raised.

Combinations with other operators🔗

Combinations

Possible predecessors

train_class_mlpTrainClassMlp, read_class_mlpReadClassMlp

Alternatives

classify_image_class_gmmClassifyImageClassGmm, classify_image_class_knnClassifyImageClassKnn, classify_image_class_svmClassifyImageClassSvm, classify_image_class_lutClassifyImageClassLut, class_ndim_normClassNdimNorm, class_2dim_supClass2dimSup

See also

add_samples_image_class_mlpAddSamplesImageClassMlp, create_class_mlpCreateClassMlp

Module🔗

Foundation