30:分类器GMM

高斯混合模型是将多个服从高斯分布的模型进行线性组合,几乎能拟合成任何一条曲线。比如在生活中男生身高普遍在175左右,女生身高普遍在165左右,并且都服从高斯分布,就可通过中间交叉点进行分类。

 

 上面只用到一种特征,下面的例子为halcon例程—》方法—》特征提取—》classify cirtrus_fruits.hdev ,这里的水果分类用到的是圆度和面积两种特征,其模型将是二维高斯分布曲面。

 

强大的Halcon的分类器有三种MLP、SVM、GMM,在这里为大家详细介绍GMM,原理的东西自己百度吧,这里主要讲GMM库怎么用,希望对大家有用

 

creat_class_gmm();

含义:创建高斯混合模型;

输入参数:

  NumDim:几个特征;

 

NumClasses:样本分类个数;

 

NumCenters:类中心的个数;

 

CovarType:协方差矩阵('Spherical','diag','full')

 

Preprocessing:预处理是否使用,及特征向量转换类型;

 

NumComponents:预处理参数,转换特征数;

 

RandSend:随机种子,初始化GMM;

 

输出参数:

 

GMMHandle:高斯混合模型

 

add_sample_class_gmm()

含义:增加训练样本特征,到GMM训练数据中

 

输入参数:

 

GMMHandle:高斯混合模型

 

Features:训练样本的特征数值

 

ClassID:训练样本所属的类;

 

Randomize:高斯噪声标准差;

 

注:增加Randomize目的主要为了防止在训练的过程整数特征向量中出现类中心数过多的异常现象,对数据做扰动,经验值推荐,halcon推荐1.5-2之间满足大部分情况。

 

接下来可以训练样本了,如果训练后发现中心很大的误差,可以改变Randseed。

train_class_gmm()

含义:训练高斯混合模型

输入参数:

 

GMMHandle:高斯混合模型

 

MixIter: 期望最大值算法中迭代最大数

 

Threshold:期望误差阈值,超过此值,计算取消。

 

ClassPriors:类的先验概率类型('training','uniform')'uniform'表示使用相同的权重,1/NumClasses;'training'表示类发生的概率是依据样本中的概率推断。

 

Regularize:调整值,为了防止计算中出现奇异协方差矩阵。增加到协方差矩阵的对角线上的一个很小的值

 

输出参数:

 

Centers:每个类的中心个数

 

Iter:每个类的迭代次数

 

 

classify_class_gmm()

含义:使用训练好的模型对特征进行分类

输入参数:

 

GMMHandle:高斯混合模型

 

Features:将要划分所属类的特征值数组

 

输出参数:

 

Num:期望最佳个数

 

ClassID:特征所属类ID

 

ClassProb:输出特征所属类的概率,越接近1,分类越精确

 

Density:特征所属所有类的概率总和

 

KsigmaProb:归一化概率,可以判断新特征不属于现有的类,有点像sigma,远离中心值会很小

 

 

 

evaluate_class_gmm()

含义:预估一个特征

输入参数:

GMMHandle:高斯混合模型

Features:预估的特征

 

输出参数:

 

ClassProb:特征对各类的概率

 

Density:特征所属所有类的概率总和

 

KsigmaProb:归一化概率,可以判断新特征不属于现有的类,有点像sigma,远离中心值会很小,异常检测:低于0.0001就拒绝。

 

add_simple_image_class_gmm()

含义:增加训练样本(图片区),放入GMM 进行训练数据

输入参数:

Image:训练的图像(多通道)

ClassRegions:图像中用于训练的类区域

GMMHandle:高斯混合模型

Randomize:高斯噪声标准差

 

classify_image_class_gmm()

 

含义:使用GMM分类一个图像

输入参数:

Image:训练的图像(多通道)

GMMHandle:GMM模型

RejectionThreshold:分类拒绝阈值,低于此值时,如果图像所有的像素概率低于此值将不会分类任何类。

 

输出参数:

ClassRegions:分类的各个区域

 

read_class_gmm()

含义:文件中读取GMM模型

write_class_gmm()

含义:保存GMM模型

clear_class_gmm()

含义:清楚GMM模型,释放内存

————————————————

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值