当前位置: 首页 > wzjs >正文

qq人脸解冻自助网站创建网站教程

qq人脸解冻自助网站,创建网站教程,内蒙建设工程信息网站,常州手机网站建设文章目录 前言机器学习例1:支持向量机(SVM)做平面向量二分类例2: K邻近算法(KNearest)实现分类 总结 前言 需要下载安装OpenCV工具包的朋友,请前往 此处 ;系统要求:Wind…

文章目录

  • 前言
  • 机器学习
    • 例1:支持向量机(SVM)做平面向量二分类
    • 例2: K邻近算法(KNearest)实现分类
  • 总结


前言

  1. 需要下载安装OpenCV工具包的朋友,请前往 此处 ;
  2. 系统要求:Windows系统,LabVIEW>=2018,兼容32位和64位。

机器学习

OpenCV 的机器学习算法位于 ml 模块,主要由基于统计学的 StatModel 类实现。

StatModel 是一个基类,根据不同的算法,衍生出一系列子类。

StatModel
ANN_MLP
DTrees
EM
KNearest
LogisticRegression
NormalBayesClassifier
SVM
SVMSGD
RTrees
Boost

选板如下,子目录下的函数,是子类私有方法,外部的是共有方法。

在这里插入图片描述


例1:支持向量机(SVM)做平面向量二分类

  • 第1步:准备训练数据(TrainData)

训练数据需要两个矩阵:Samples 和 Responses,即 样本矩阵 和 响应矩阵。

在本例中,随机生成(300 * 300)平面中的200个 (x, y) 坐标,组成 (200 * 2) 的二维 Mat 作为 Samples。

然后,按照某种线性规则将上述200个坐标分成两类(用 1 和 2 代表),组成 (200 * 1)的二维 Mat 作为 Responses。

注意,Samples 矩阵的数据类型须是浮点数,Responses 矩阵的数据类型须是整型数(CV_32S)。

插入一个 TrainData 类的 create 函数,输入上述的 Samples 和 Responses,并将布局设为“ROW_SAMPLE”,即每行一个样本。由此创建的 TrainData 对象,作为将来 SVM 算法的训练数据。

在这里插入图片描述

  • 第2步:创建SVM,设置参数并训练

插入一个 StatModel 类的 create 函数,切换多态标签至 “SVM”。

接着,插入多个 SVM 子类的私有函数 SVM_set,通过切换模式,设置不同的参数。

然后,插入一个 StatModel 类的公共函数 train,切换模式为 “TrainData”,并连接第1步准备好的TrainData对象。

在这里插入图片描述

  • 第3步:用新样本进行预测,评估训练效果

本例遍历(300 * 300)平面的每一个像素坐标,组成(90000 * 2) 的二维 Mat 作为测试样本矩阵。

插入一个 StatModel 类的公共函数 predict,输入上述测试样本矩阵,运行后获得预测结果矩阵。

可视化:根据预测结果(1或2),对(300 * 300)平面的每一个像素进行染色。

同时把训练时的200个散点也绘制在平面上,根据分类用不同的颜色进行区分。

完整过程如下图(可视化过程略),详见范例:examples/Molitec/OpenCV/ml/ml_1(StatModel_SVM).vi

在这里插入图片描述

在这里插入图片描述

从上图中可以看出,SVM 用线性边界将平面分割成了两类,而且在靠近边界的区域,允许存在一定的样本误差。

以上是一个简单的 SVM 应用,样本是二维向量。其实 SVM 还可以用在多维向量分类上,比如一张图片的特征向量。通过 SVM 找出多维向量样本在 “超平面” 上的最佳分割方案,进而对图片进行二分类。

感兴趣的读者,可以提前看一看 features2d 模块的范例:
examples/Molitec/OpenCV/features2d/features2d_5(BOW_SVM_train).vi


例2: K邻近算法(KNearest)实现分类

K近邻算法是一种基于实例的学习方法,主要用于分类和回归任务。其核心思想是:对于一个新的、未知类别的数据点,通过计算其与已知类别训练集中的数据点的距离,找出与其最近的K个邻居,并依据这K个邻居的多数类别来决定新数据点的类别归属‌。

  • 第1步:准备训练数据

训练数据需要两个矩阵:Samples 和 Responses,即 样本矩阵 和 响应矩阵。

本例围绕平面上的两个中心点,分别生成 50 个随机 (x, y) 坐标,组成 (100 * 2) 的二维 Mat 作为 Samples。

根据所属中心的不同,将上述100个点分类成1或2,组成 (100 * 1)的二维 Mat 作为 Responses。

数据类型要求与上文相同。本次不创建 TrainData 对象,直接使用 Samples 和 Responses 参与将来的训练。

在这里插入图片描述

  • 第2步:创建KNearest,设置参数并训练

插入一个 StatModel 类的 create 函数,切换多态标签至 “KNearest”。

接着,插入一个或多个 KNearest子类的私有函数 KNearest_set,通过切换模式,设置不同的参数。

然后,插入一个 StatModel 类的公共函数 train,切换模式为 “Samples”,连接第1步准备好的 Samples 和 Responses ,并将布局设为“ROW_SAMPLE”。

在这里插入图片描述

  • 第3步:引入新的样本,进行K邻近分类

插入一个 KNearest 子类的私有函数 KNearest_findNearest,设置K=5,输入新样本,运行后获得预测分类结果。

KNearest_findNearest 还有两个可选输入输出:neighborResponses 和 dist,可以返回K个相邻点的分类和距离。

完整过程如下图(可视化过程略),详见范例:examples/Molitec/OpenCV/ml/ml_2(StatModel_KNearest).vi

在这里插入图片描述

在这里插入图片描述

在上图中,新引入的样本点(150,150)位于画面中心的 “+” 标识,与其相邻的 K (5) 个点中,有3个属于1类(蓝色),有2个属于2类(红色),所以新样本的分类结果为1类。

KNearest 同样可以用于多维向量分类。通过找出 “超平面” 上K个最相邻的已知样本,对新样本进行分类。


总结

  1. 本系列博文作为LabVIEW工具包—OpenCV的教程,将以专栏的形式陆续发布和更新。
  2. 对工具包感兴趣的朋友,欢迎下载试用:秣厉科技 - LabVIEW工具包 - OpenCV
  3. 各位看官有什么想法、建议、吐槽、批评,或新奇的需求,也欢迎留言讨论。
http://www.dtcms.com/wzjs/13161.html

相关文章:

  • wordpress框架播放器搜索引擎优化是什么?
  • 嘉善县科正建设网站口碑营销的方法
  • 做网站的文案html网页制作案例
  • 绍兴网站建设优化seo sem论坛
  • 网址导航推荐太原建站seo
  • 手机网站404页面模板电商平台有哪些
  • 网站安装环境配置竞价sem托管
  • wordpress国主题河北网站seo地址
  • 做网站服务百度高级搜索
  • 开发菏泽网站建设中国培训网
  • 美国做短视频网站好百度员工收入工资表
  • 被收录的网站怎么没了百度问一问客服人工在线咨询
  • 上海专业网站建设报百度竞价推广登陆
  • 郑州做网站助企泰州seo推广
  • wordpress最底部版权前端seo主要优化哪些
  • 西安网站建设怎样自动引流推广软件
  • 网站建设多少钱实惠湘潭磐石网络安全又舒适的避孕方法有哪些
  • 运河经济开发区建设局网站指数型基金怎么买
  • 物流公司网站 源码运营推广公司
  • 会员类网站模板百度推广工作怎么样
  • wordpress free template惠州百度推广优化排名
  • 做ui什么图库网站好呀软文营销步骤
  • 美妆网站怎么做seo网站建站
  • 网站上的flash怎么做的百度推广产品有哪些
  • 旅游网站开发的意义谷歌推广平台
  • 网站建设公司没有业务iis搭建网站
  • 广州网站建设公司哪家好商业推广软文范例
  • 淄博企业网站设计公司seo关键词排名优化制作
  • 姑苏区网站建设网络营销促销策略有哪些
  • b站广告投放抖音账号权重查询入口