classify_image_class_mlpT_classify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp (算子)
名称
classify_image_class_mlpT_classify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp — 用多层感知机对图像进行分类。
签名
描述
classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp performs a pixel classification
with the multilayer perceptron (MLP) MLPHandleMLPHandleMLPHandleMLPHandleMLPHandlemlphandle on the
multichannel image ImageImageImageImageimageimage. Before calling
classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp the MLP must be trained with
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp。ImageImageImageImageimageimage must have NumInputNumInputNumInputNumInputnumInputnum_input
channels, as specified with create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp。On output,
ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions contains NumOutputNumOutputNumOutputNumOutputnumOutputnum_output regions as the
result of the classification. Note that the order of the regions that
are returned in ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions corresponds to the order of the
classes as defined by the training regions in
add_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlpAddSamplesImageClassMlpadd_samples_image_class_mlp。The parameter
RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold can be used to reject pixels that have
an uncertain classification. RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold represents
a threshold on the probability measure returned by the
classification (see classify_class_mlpclassify_class_mlpClassifyClassMlpClassifyClassMlpClassifyClassMlpclassify_class_mlp and
evaluate_class_mlpevaluate_class_mlpEvaluateClassMlpEvaluateClassMlpEvaluateClassMlpevaluate_class_mlp). All pixels having a probability below
RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_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
RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold is used, by adding samples for the
rejection class with add_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlpAddSamplesImageClassMlpadd_samples_image_class_mlp and by
re-training the MLP with train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 在内部数据级别上自动并行化。
参数
ImageImageImageImageimageimage (输入对象) (multichannel-)image → objectHImageHObjectHImageHobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)
输入图像。
ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions (输出对象) region-array → objectHRegionHObjectHRegionHobject *
Segmented classes.
MLPHandleMLPHandleMLPHandleMLPHandleMLPHandlemlphandle (输入控制) class_mlp → HClassMlp, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)
MLP 句柄。
RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold (输入控制) real → HTuplefloatHTupleHtuple (real) (double) (double) (double)
Threshold for the rejection of the classification.
默认值:
0.5
建议值:
0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0
限制:
RejectionThreshold >= 0.0 && RejectionThreshold <= 1.0
示例(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)
结果
如果参数有效,算子
classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp 返回值 2 ( H_MSG_TRUE )。如有必要,则抛出异常。
可能的前趋
train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp,
read_class_mlpread_class_mlpReadClassMlpReadClassMlpReadClassMlpread_class_mlp
替代
classify_image_class_gmmclassify_image_class_gmmClassifyImageClassGmmClassifyImageClassGmmClassifyImageClassGmmclassify_image_class_gmm,
classify_image_class_knnclassify_image_class_knnClassifyImageClassKnnClassifyImageClassKnnClassifyImageClassKnnclassify_image_class_knn,
classify_image_class_svmclassify_image_class_svmClassifyImageClassSvmClassifyImageClassSvmClassifyImageClassSvmclassify_image_class_svm,
classify_image_class_lutclassify_image_class_lutClassifyImageClassLutClassifyImageClassLutClassifyImageClassLutclassify_image_class_lut,
class_ndim_normclass_ndim_normClassNdimNormClassNdimNormClassNdimNormclass_ndim_norm,
class_2dim_supclass_2dim_supClass2dimSupClass2dimSupClass2dimSupclass_2dim_sup
另见
add_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlpAddSamplesImageClassMlpadd_samples_image_class_mlp,
create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp
模块
基础