OpenCV3 机器学习
本专栏主要介绍OpenCV3中的相关机器学习算法及其在图像处理中的应用。
阿卡蒂奥
这个作者很懒,什么都没留下…
展开
-
opencv3/C++ 机器学习-神经网络ANN_MLP识别数字
神经网络ANN_MLP识别数字 环境:win7+VS2012+OpenCV3 利用OpenCV3中的ANN_MLP神经网络,使用如图所示图片进行训练,实现简单的数字识别功能。 训练测试代码:#include #include #include #include #include using namespace cv;using namespace ml;int原创 2018-02-02 10:57:13 · 9223 阅读 · 16 评论 -
opencv3/C++ 机器学习-神经网络ANN_MLP
ANN_MLP简介OpenCV中的ML模块实现了前馈人工神经网络,具体地说是多层感知器(MLP),是最常用的神经网络类型。 MLP由输入层,输出层和一个或多个隐藏层组成。 MLP的每一层包括一个或多个与来自上一层和下一层的神经元定向连接的神经元。 如图所示,一个具有三个输入,两个输出的三层感知器,隐藏层包括五个神经元: MLP中的所有神经元都是相似的。它们中的每一个都有几个输入链接(它将原创 2018-01-31 19:46:59 · 5419 阅读 · 0 评论 -
opencv3/C++ 机器学习-SVM应用实例:药品(胶囊)识别与分类
问题描述:现对6种不同颜色药品(胶囊)分别进行图像采集,并进行类别标注(0-5)。如图所示(文末附有图像源文件链接): 现使用胶囊的RGB通道的均值作为特征,利用SVM建立分类器模型并进行训练,然后利用训练好的模型,在多个样本混合的图像中将各类样本标记出位置并识别出其所属类别。 具体详细处理过程见代码及注释。示例代码:#include #include#include原创 2018-02-07 11:58:37 · 4826 阅读 · 3 评论 -
opencv3/C++ 机器学习-支持向量机SVM & 单分类器 : ONE_CLASS
支持向量机(SVM)最开始用于二分类情况。 后来SVM被扩展到回归和聚类问题。 SVM基于内核方法,使用核函数将特征向量映射到高维空间,并在该空间中建立最佳的线性判别函数或适合于训练数据的最优超平面。 在SVM中内核没有明确定义,但需要定义超空间中任意两点之间的距离。 分离超平面和来自两个类别(二分类情况下)的最近特征向量之间的距离最大时,该解是最优的。 离超平面最近的特征向量被称为支持向量,即...原创 2018-02-05 13:34:37 · 2957 阅读 · 3 评论 -
opencv3/C++ 机器学习-EM算法/Expectation Maximization
EM算法/Expectation MaximizationEM算法包含两步:E,求期望(Expectation),利用概率模型参数的现有估计值,计算隐藏变量的期望;M,求极大(Maximization),利用E 步上求得的隐藏变量的期望,对参数模型进行最大似然估计。所得参数估计值用于下个E步的计算,重复至收敛。期望最大化/EM算法以具有一定数量混合物的高斯混合分布的形式估计多变量概率密度函...原创 2018-03-05 09:52:39 · 2770 阅读 · 0 评论 -
opencv3/C++ 机器学习-最邻近算法KNN识别字符
如图,有如下字母表; 现尝试采用最邻近算法KNN,取前10列字符作为训练数据,然后识别字母表中的字符。创建训练数据首先通过获取前10列字符的轮廓外接矩形,将字符裁剪出作为训练样本建立图库。#include <string>#include <iostream>#include <opencv2\opencv.hpp>#includ...原创 2018-02-03 21:03:20 · 2928 阅读 · 8 评论 -
opencv3/C++ 机器学习-提升算法/Boosting
提升算法/Boosting提升算法/Boosting是一种提高弱分类器准确度的方法。通常在分类问题中,boosting通过改变训练样本的权重,学习多个分类器,并将这些分类器线性组合,提高分类性能。 Kearns 和 Valiant分别在1988和1989年提出了“强可学习”和“弱可学习”的概念。1990年Robert Schapire在论文The Strength of Weak Lear...原创 2018-03-02 19:04:31 · 2032 阅读 · 0 评论 -
opencv3/C++ 机器学习-随机森林/Random Trees
随机森林简介随机森林由许多决策树组成:通过随机抽取训练样本构建每棵决策树,从特征属性中随机抽取的特征属性中选取最佳分裂属性。 随机森林/Random Forests的一般方法最早由Ho于1995年提出。Leo Breiman在Random Forests中提出随机森林概念,随后与Adele Cutler系统研究和发展了这一理论并注册了商标(包括RF、 RandomForests,、Rando...原创 2018-03-01 21:45:06 · 9626 阅读 · 4 评论 -
opencv3/C++ 机器学习-决策树/DTrees
决策树/Decision Tree决策树/Decision Tree是一棵二叉树(每棵非叶子节点有两个子节点的树)。可用于分类或回归问题。对于分类问题(形成分类树),每个叶节点都标有一个类标签;多个叶节点可能具有相同的标签。对于回归问题(形成回归树),每个叶结点分配一个常量,所以回归函数是分段常量。决策树从根结点递归构造。所有训练数据(特征向量和响应)用于分割根节点。在每个节点中,根据一些标准找到最原创 2018-03-03 20:55:12 · 3164 阅读 · 1 评论 -
opencv3/C++ 机器学习-正态贝叶斯分类器
正态贝叶斯分类模型假设每个类的特征向量是正态分布的(但不一定是独立分布的)。所以,假设整个数据分布函数是一个高斯混合函数,每个类为一个分量。使用训练数据,该算法估计每个类的均值向量和协方差矩阵,然后将其用于预测。用于正态分布数据的贝叶斯分类器NormalBayesClassifier类继承基类StatModel,在NormalBayesClassifier类中增加了两个方法:1、估计输...原创 2018-01-27 15:15:50 · 1209 阅读 · 0 评论