HALCON Reference Manual 10.0.2
Table of Contents / Segmentation / Classification ClassesClassesClasses | | | Operators

classify_image_class_mlpclassify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlp (Operator)

Name

classify_image_class_mlpclassify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlp — Classify an image with a multilayer perceptron.

Signature

classify_image_class_mlp(Image : ClassRegions : MLPHandle, RejectionThreshold : )

Herror classify_image_class_mlp(const Hobject Image, Hobject* ClassRegions, const Hlong MLPHandle, double RejectionThreshold)

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

Herror classify_image_class_mlp(Hobject Image, Hobject* ClassRegions, const HTuple& MLPHandle, const HTuple& RejectionThreshold)

HRegionArray HImage::ClassifyImageClassMlp(const HClassMlp& MLPHandle, const HTuple& RejectionThreshold) const

HRegionArray HClassMlp::ClassifyImageClassMlp(const HImage& Image, const HTuple& RejectionThreshold) const

void HOperatorSetX.ClassifyImageClassMlp(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ClassRegions, [in] VARIANT MLPHandle, [in] VARIANT RejectionThreshold)

IHRegionX* HImageX.ClassifyImageClassMlp(
[in] IHClassMlpX* MLPHandle, [in] double RejectionThreshold)

IHRegionX* HClassMlpX.ClassifyImageClassMlp(
[in] IHImageX* Image, [in] double RejectionThreshold)

static void HOperatorSet.ClassifyImageClassMlp(HObject image, out HObject classRegions, HTuple MLPHandle, HTuple rejectionThreshold)

HRegion HImage.ClassifyImageClassMlp(HClassMlp MLPHandle, double rejectionThreshold)

HRegion HClassMlp.ClassifyImageClassMlp(HImage image, double rejectionThreshold)

Description

classify_image_class_mlpclassify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlp performs a pixel classification with the multilayer perceptron (MLP) MLPHandleMLPHandleMLPHandleMLPHandleMLPHandle on the multichannel image ImageImageImageImageimage. Before calling classify_image_class_mlpclassify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlp the MLP must be trained with train_class_mlptrain_class_mlptrain_class_mlpTrainClassMlpTrainClassMlp. ImageImageImageImageimage must have NumInput channels, as specified with create_class_mlpcreate_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlp. On output, ClassRegionsClassRegionsClassRegionsClassRegionsclassRegions contains NumOutput regions as the result of the classification. The parameter RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThreshold can be used to reject pixels that have an uncertain classification. RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThreshold represents a threshold on the probability measure returned by the classification (see classify_class_mlpclassify_class_mlpclassify_class_mlpClassifyClassMlpClassifyClassMlp and evaluate_class_mlpevaluate_class_mlpevaluate_class_mlpEvaluateClassMlpEvaluateClassMlp). All pixels having a probability below RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThreshold 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 RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThreshold is used, by adding samples for the rejection class with add_samples_image_class_mlpadd_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlp and by re-training the MLP with train_class_mlptrain_class_mlptrain_class_mlpTrainClassMlpTrainClassMlp.

Parallelization

Parameters

ImageImageImageImageimage (input_object)  (multichannel-)image objectHImageHImageHImageXHobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)

Input image.

ClassRegionsClassRegionsClassRegionsClassRegionsclassRegions (output_object)  region-array objectHRegionHRegionArrayHRegionXHobject *

Segmented classes.

MLPHandleMLPHandleMLPHandleMLPHandleMLPHandle (input_control)  class_mlp HClassMlp, HTupleHClassMlp, HTupleHClassMlpX, VARIANTHtuple (integer) (IntPtr) (Hlong) (Hlong) (Hlong)

MLP handle.

RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThreshold (input_control)  real HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Threshold for the rejection of the classification.

Default value: 0.5

Suggested values: 0.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)
clear_class_mlp (MLPHandle)

Result

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

Possible Predecessors

train_class_mlptrain_class_mlptrain_class_mlpTrainClassMlpTrainClassMlp, read_class_mlpread_class_mlpread_class_mlpReadClassMlpReadClassMlp

Alternatives

classify_image_class_svmclassify_image_class_svmclassify_image_class_svmClassifyImageClassSvmClassifyImageClassSvm, classify_image_class_gmmclassify_image_class_gmmclassify_image_class_gmmClassifyImageClassGmmClassifyImageClassGmm, classify_image_class_lutclassify_image_class_lutclassify_image_class_lutClassifyImageClassLutClassifyImageClassLut, class_ndim_boxclass_ndim_boxclass_ndim_boxClassNdimBoxClassNdimBox, class_ndim_normclass_ndim_normclass_ndim_normClassNdimNormClassNdimNorm, class_2dim_supclass_2dim_supclass_2dim_supClass2dimSupClass2dimSup

See also

add_samples_image_class_mlpadd_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlp, create_class_mlpcreate_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlp

Module

Foundation


Table of Contents / Segmentation / Classification ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH