halcon分类器算子:create_class_gmm

create_class_gmm(运算符)

名称

create_class_gmm —创建用于分类的高斯混合模型

签名

描述

create_class_gmm创建用于分类的高斯混合模型(GMM)。 NumDim指定要素空间的维数, NumClasses指定类的数量。GMM由每个类的NumCenters高斯中心组成。 NumCenters不仅可以是要使用的确切中心数目,而且可以根据参数的数目指定中心数目的上限和下限:


  • 正好一个参数:

  • 该参数确定将用于所有类的中心的确切数量。


  • 正好两个参数:

  • 第一个参数确定最少的中心数量,第二个参数确定所有类别的最大中心数量。


  • 确切的参数:

  • 或者,每个第一个参数确定每个类的最小中心数,每个第二个参数确定每个类的最大中心数。



当指定了上限和下限时,将借助最小消息长度标准(MML)确定最佳中心数。通常,我们建议以(太多)最多的中心和最少的预期中心数开始培训。

每个中心都由参数center ,协方差矩阵和混合系数来描述这些参数是通过期望最大化(EM)算法从训练数据中计算得出的。如果使用了足够的中心,则GMM可以近似任意概率密度。协方差矩阵 的尺寸为NumDim x NumDim如果使用预处理,则为NumComponents x NumComponents),并且是对称的。进一步的约束可以由CovarType给出 : 

对于CovarType = 'spherical'是单位矩阵的标量倍数中心密度函数p(x | j)为 


对于CovarType = 'diag' 是对角矩阵中心密度函数p(x | j)为 


对于CovarType = 'full' 为正定矩阵。中心密度函数p(x | j)为 


计算的复杂度从CovarType = '球面'超过CovarType = 'diag' 到CovarType = '满'同时,中心的灵活性增加了。因此,一般而言, “球形”对于NumCenter所需的值要 大于“完整”值

使用GMM的过程如下:首先,由create_class_gmm创建一个GMM 然后,通过add_sample_class_gmm添加训练向量 ,然后可以使用write_samples_class_gmm将它们写入磁盘使用train_class_gmm 确定分类器中心参数(如上定义)。此外,可以使用write_class_gmm保存它们,供以后分类。

根据混合概率和中心密度函数p(x | j),可以通过以下公式计算概率密度函数p(x): 


概率密度函数p(x)可以针对特征向量xvaluate_class_gmm进行评估classify_class_gmm对p(x)进行排序,因此发现了特征向量中最可能的类。

参数PreprocessingNumComponents可用于预处理训练数据并减小其尺寸。这些参数在操作符create_class_mlp的描述中进行了说明 

create_class_gmm用随机数初始化中心的坐标。为确保使用train_class_gmm训练分类器的结果可再现,将随机数生成器的种子值传递 给RandSeed

并行化

  • 多线程类型:可重入(与非排他运算符并行运行)。

  • 多线程作用域:全局(可以从任何线程调用)。

  • 未经并行处理。

该运算符返回一个句柄。请注意,此句柄类型的实例的状态可以由特定的运算符更改,即使这些运算符将句柄用作输入参数也是如此。

参量

NumDim(input_control)  整数→ (整数)

特征空间的维数。

默认值: 3

建议值: 1、2、3、4、5、8、10、15、20、30、40、50、60、70、80、90、100

限制:NumDim> = 1

NumClasses(input_control)  整数→ (整数)

GMM的类数。

默认值: 5

建议值: 1、2、3、4、5、6、7、8、9、10

限制:NumClasses> = 1

NumCenters(input_control)  整数(数组)→ (整数)

每个班级的中心数。

默认值: 1

建议值: 1、2、3、4、5、8、10、15、20、30

限制:NumClasses> = 1

CovarType(input_control)  字符串→ (字符串)

协方差矩阵的类型。

默认值: “球面”

值列表:'diag''full''spherical'

预处理(input_control)  字符串→ (字符串)

用于转换特征向量的预处理类型。

默认值: “规范化”

值列表:“ canonical_variates”“ none”“ normalization”“ principal_components”

NumComponents(input_control)  整数→ (整数)

预处理参数:变换后的特征数量(对于Preprocessing = 'none'Preprocessing = 'normalization'忽略)。

默认值: 10

建议值: 1、2、3、4、5、8、10、15、20、30、40、50、60、70、80、90、100

限制:NumComponents> = 1

RandSeed(input_control)  整数→ (整数)

随机数生成器的种子值,用于使用随机值初始化GMM。

默认值: 42

GMMHandle(output_control)  class_gmm → (整数)

GMM手柄。

示例(HDevelop)

*高斯混合模型分类create_class_gmm(NumDim,NumClasses,[1,5],“完整”,“无”,\
     NumComponents,42,GMMHandle)*添加训练数据对于J:= 0到NumData-1乘1
    *功能:= [...]
    * ClassID:= [...]
    add_sample_class_gmm(GMMHandle,功能,ClassID,随机化)Endfor*训练GMMtrain_class_gmm(GMMHandle,100,0.001,'training',0.0001,Centers,Iter)*在“功能”中对未知数据进行分类classify_class_gmm(GMMHandle,功能,1,ID,概率,密度,KSigmaProb)clear_class_gmm(GMMHandle)

结果

如果参数有效,则运算符create_class_gmm 返回值2(H_MSG_TRUE)。如有必要,将引发异常。

可能的继任者

add_sample_class_gmm, add_samples_image_class_gmm

备择方案

create_class_mlp, create_class_svm, create_class_box

也可以看看

clear_class_gmm, train_class_gmm, classify_class_gmm, evaluate_class_gmm, classify_image_class_gmm

参考文献

Christopher M. Bishop:“用于模式识别的神经网络”;牛津大学出版社,牛津;1995年
。Mario AT Figueiredo:“有限混合模型的无监督学习”;IEEE Transactions on Pattern Analysis and Machine Intelligence,第一卷。24,第3号;2002年3月。


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864