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_mlp(Image : ClassRegions : MLPHandle, RejectionThreshold : )

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

void ClassifyImageClassMlp(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

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)

def classify_image_class_mlp(image: HObject, mlphandle: HHandle, rejection_threshold: float) -> HObject

描述

classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp 使用多层感知机(MLP)MLPHandleMLPHandleMLPHandleMLPHandleMLPHandlemlphandle 对多通道图像 ImageImageImageImageimageimage 执行像素分类。在调用 classify_image_class_mlpclassify_image_class_mlpClassifyImageClassMlpClassifyImageClassMlpClassifyImageClassMlpclassify_image_class_mlp 之前,必须使用 train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp 对 MLP 进行训练。图像 ImageImageImageImageimageimage 必须具有 create_class_mlpcreate_class_mlpCreateClassMlpCreateClassMlpCreateClassMlpcreate_class_mlp 中指定的 NumInputNumInputNumInputNumInputnumInputnum_input 个通道。输出时,ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions 将包含 NumOutputNumOutputNumOutputNumOutputnumOutputnum_output 个区域作为分类结果。请注意,ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions 中返回的区域顺序与 add_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlpAddSamplesImageClassMlpadd_samples_image_class_mlp 中训练区域定义的类顺序相对应。参数 RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 可用于剔除分类结果不确定的像素。RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 表示对分类返回的概率测度阈值(参见 classify_class_mlpclassify_class_mlpClassifyClassMlpClassifyClassMlpClassifyClassMlpclassify_class_mlpevaluate_class_mlpevaluate_class_mlpEvaluateClassMlpEvaluateClassMlpEvaluateClassMlpevaluate_class_mlp)。所有概率低于 RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 的像素均不被分配至任何类别。由于 MLP 通常会将特征空间中位于训练数据凸包外的像素高概率(高置信度)分配到某个类别,因此在许多情况下,即使使用了 RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold 参数,仍需显式训练一个拒绝类。具体方法是:通过 add_samples_image_class_mlpadd_samples_image_class_mlpAddSamplesImageClassMlpAddSamplesImageClassMlpAddSamplesImageClassMlpadd_samples_image_class_mlp 为拒绝类添加样本,再使用 train_class_mlptrain_class_mlpTrainClassMlpTrainClassMlpTrainClassMlptrain_class_mlp 重新训练 MLP。

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image objectHImageHObjectHImageHobject (byte / cyclic / direction / int1 / int2 / uint2 / int4 / real)

输入图像。

ClassRegionsClassRegionsClassRegionsClassRegionsclassRegionsclass_regions (输出对象)  region-array objectHRegionHObjectHRegionHobject *

分割的类别。

MLPHandleMLPHandleMLPHandleMLPHandleMLPHandlemlphandle (输入控制)  class_mlp HClassMlp, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

MLP 句柄。

RejectionThresholdRejectionThresholdRejectionThresholdRejectionThresholdrejectionThresholdrejection_threshold (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

分类拒绝的阈值。

默认值: 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

模块

基础