作者: 寒小阳 &&龙心尘 时间:2015年11月. 出处: http://blog.csdn.net/han_xiaoyang/article/details/49949535 http://blog.csdn.net/longxinchen_ml/article/details/50001979 声明:版权所有,转载请注明出处,谢谢. 1. 线性分类器 在深度学习与计算机视觉系列(2)我们提到了图像识别的问题,同时提出了一种简单的解决方法--KNN.然后我们也看到了KNN在解决这个问题…
正样本来源是INRIA数据集中的96*160大小的人体图片,使用时上下左右都去掉16个像素,截取中间的64*128大小的人体. 负样本是从不包含人体的图片中随机裁取的,大小同样是64*128(从完全不包含人体的图片中随机剪裁出64*128大小的用于人体检测的负样本). SVM使用的是OpenCV自带的CvSVM类. 首先计算正负样本图像的HOG描述子,组成一个特征向量矩阵,对应的要有一个指定每个特征向量的类别的类标向量,输入SVM中进行训练. 训练好的SVM分类器保存为XML文件,然后根据其中的…
快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在opencv中支持SVM分类器.本文尝试在python中调用它. 和前面的贝叶斯分类器一样,SVM也遵循先训练再使用的方式.我们直接在贝叶斯分类器的測试代码上做简单改动.完毕两类数据点的分类. 首先也是先创建训练用的数据.须要注意的是这里的train_label必须是整数类型,而不是float: # 训练的点数 train_pts = 30 # 创建測试的数据点,2类 # 以(-1.5, -1…
本文主要介绍支持向量机理论推导及其工程应用. 1 基本介绍 支持向量机算法是一个有效的分类算法,可用于分类.回归等任务,在传统的机器学习任务中,通过人工构造.选择特征,然后使用支持向量机作为训练器,可以得到一个效果很好的base-line训练器. 支持向量机具有如下的优缺点, 优点: 高维空间有效: 维度大于样本数量的情况下,依然有效: 预测时使用训练样本的子集(也即支持向量),节省内存: 可以使用不同的核函数用于决策: 缺点: 如果特征的数目远远大于样本的数目,性能将会降低: 不能直接提供概率…
断断续续看了好多天,赶紧补上坑. 感谢july的 http://blog.csdn.net/v_july_v/article/details/7624837/ 以及CSDN上淘的比较正规的SMO C++ 模板代码.~LINK~ 1995年提出的支持向量机(SVM)模型,是浅层学习中较新代表,当然Adaboost更新一点. 按照Andrew NG的说法: "SVM的效果大概相当于调整最好的神经网络."于是,SVM被各种神化,被誉为"未来人类的希望,世界人民的终极武器"…
opencv学习笔记(七)SVM+HOG 一.简介 方向梯度直方图(Histogram of Oriented Gradient,HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子.它通过计算和统计图像局部区域的梯度直方图来构成特征.Hog特征结合SVM分类器已经被广泛用于图像识别中,尤其在行人检测中获得了极大的成功.需要提醒的是,HOG+SVM进行行人检测的方法是法国研究院Dalal在2005的CVPR上提出的. 最近在做车标识别相关的研究,用到了SVM+HOG的方法进行识…
参考了秋风细雨的文章:http://blog.csdn.net/candyforever/article/details/8564746 花了点时间编写出了程序,先看看效果吧. 识别效果大概都能正确. 好了,开始正题: 因为本程序是提取HOG特征,使用SVM进行分类的,所以大概了解下HOG的一些知识,其中我觉得怎么计算图像HOG特征的维度会对程序了解有帮助 关于HOG,我们可以参考: http://gz-ricky.blogbus.com/logs/85326280.html http://bl…
opencv 手写选择题阅卷 (三)训练分类器 1,分类器选择:SVM 本来一开始用的KNN分类器,但这个分类器目前没有实现保存训练数据的功能,所以选择了SVN分类器; 2,样本图像的预处理和特征提取代码与识别代码中使用一样的代码. 3,训练时的输入数据主要为两个矩阵,一个矩阵保存所有样本的特征数据,每一行一个图像,另一个矩阵保存每个样本所属的类别,比如 1.0代表A,2.0代表B,0代表空白. 4,所有样本分别保存在5个文件夹中(一个是空白,四个字母ABCD),用批处理生成一个文本文件包括所有…
本文简述了以下内容: (一)生成式模型的非参数方法 (二)Parzen窗估计 (三)k近邻估计 (四)k近邻分类器(k-nearest neighbor,kNN) (一)非参数方法(Non-parametric method) 对于生成式模型(Generative model)来说,重要的地方在于类条件概率密度 $p(\textbf x|\omega_i)$ 的估计.上一篇介绍的参数方法,假定其是一个固定的分布密度形式,然后估计这个显式表达的函数中未知的参数.但这里存在两个问题:首先,假定的形式…
一 .支持向量机(SVM) 1.1 符号定义 标签 y 不再取 0 或 1,而是: y∈{-1, 1} 定义函数: 向量,没有第 0 个维度,b 为截距,预测函数定义为: 1.2 函数间隔与几何间隔 1.2.1 函数间隔 样本个体: 全体: 1.2.2 几何间隔 样本个体: 全体:   1.2.3 关系 函数间隔与几何间隔都是对预测置信度的度量,这个间隔越大,说明预测样本离着分界线越远,我们预测的结果也就更加可靠. 1.3 优化目标 假设样本是线性可分的,优化目标为 1.4 广义拉格朗日乘数法…
项目来源于 <opencv 3计算机视觉 python语言实现> 整个执行过程如下: 1)获取一个训练数据集. 2)创建BOW训练器并获得视觉词汇. 3)采用词汇训练SVM. 4)尝试对测试图像的图像金字塔采用滑动宽口进行检测. 5)对重叠的矩形使用非极大抑制. 6)输出结果. 该项目的结构如下: |-----car_detector|       |--detector.py| |--__init__.py| |--non_maximum.py| |--pyramid.py| |--slid…
支持向量机SVM算法实践 利用Python构建一个完整的SVM分类器,包含SVM分类器的训练和利用SVM分类器对未知数据的分类, 一.训练SVM模型 首先构建SVM模型相关的类 class SVM: def __init__(self, dataSet, labels, C, toler, kernel_option): self.train_x = dataSet # 训练特征 self.train_y = labels # 训练标签 self.C = C # 惩罚参数 self.toler…
Support Vector Machines 引言 内核方法是模式分析中非常有用的算法,其中最著名的一个是支持向量机SVM 工程师在于合理使用你所拥有的toolkit 相关代码 sklearn-SVM 本文要点 1.Please explain Support Vector Machines (SVM) like I am a 5 year old - Feynman Technique 2.kernel trick 一.术语解释 1.1 what is support vector? 从名词…
二类分类器svm 的loss function 是 hinge loss:L(y)=max(0,1-t*y),t=+1 or -1,是标签属性. 对线性svm,y=w*x+b,其中w为权重,b为偏置项,在实际优化中,w,b是待优化的未知,通过优化损失函数,使得loss function最小,得到优化接w,b. 对于logistic regression 其loss function是,由于y=1/(1+e^(-t)),则L=sum(y(log(h))+(1-y)log(1-h))…
介绍了SVM的概念以及如何利用SVM进行一个身高体重的训练和预测.如果类别比较简单的话,那么在二维空间上它有可能就是一条直线.如果类别比较复杂,那么投影到高维空间上它就是一个超平面.所以SVM的本质它就是寻求这样一个最优的超平面.超平面只要找到了,那么就可以利用这个超平面完成分类问题. SVM支持很多核,这里主要使用线性核. 数据准备.数据也称为训练样本.在准备训练样本的时候需要注意几个地方,第一它需要有正负样本两种情况.第二正样本和负样本的个数不一定要完全相同,也有可能是1:2.1:3甚至是2…
SVM支持向量机的核:线性核.进行预测的时候我们需要把正负样本的数据装载在一起,同时我们label标签也要把正负样本的数据全部打上一个label. 第四步,开始训练和预测.ml(machine learning(机器学习模块)). # svm本质 寻求一个最优的超平面 分类 # svm 核: line # 身高体重 训练 预测 import cv2 import numpy as np import matplotlib.pyplot as plt # 1 准备data 男生的身高体重 女生的身…
scikit-learn 是 Python 非常强大的一个做机器学习的包,今天介绍scikit-learn 里几个常用的分类器 SVM, KNN 和 logistic regression,用来做笑脸识别. 这里用到的是GENKI4K 这个数据库,每张图像先做一个人脸检测与剪切,然后提取HOG特征.这个数据库有 4000 张图,分成4组,做一个 cross validation,取平均值作为最终的识别率: import string, os, sys import numpy as np imp…
概念 将向量映射到一个更高维的空间里,在这个空间里建立有一个最大间隔超平面.在分开数据的超平面的两边建有两个互相平行的超平面,分隔超平面使两个平行超平面的距离最大化.假定平行超平面间的距离或差距越大,分类器的总误差越小. 基本模型是定义在特征空间上的间隔最大的线性分类器 SVM的的学习算法就是求解凸二次规划的最优化算法. 数学理论 评估指标 ScikitLearn 中的线性回归用法 12345678910111213 from sklearn.model_selection import tra…
本文旨在介绍支持向量机(SVM)的基本概念并解释SVM中的一个关键问题: 为什么SVM目标函数中的函数间隔取1? 一.分类问题 给定N个分属两类的样本,给出一个决策边界使得边界一侧只含一种样本(如下图) 从直观上讲,两种样本集被分开的"间隔"越大表示分类效果越好,如下图中,边界2的效果显然是最好的 传统的方法来计算间隔时,一般考虑所有样本点,比如可以使用样本集中所有样本点到决策边界的距离和来作为这个样本集到决策边界的距离.由于考虑了所有样本,因此这么做的一个缺点在于对离群值(outli…
opencv自带一个字符识别的例子,它的重点不是OCR字符识别,而主要是演示机器学习的应用.它应用的是UCI提供的字符数据(特征数据). DAMILES在网上发布了一个应用OpenCV进行OCR的例子, http://blog.damiles.com/2008/11/basic-ocr-in-opencv/. 这些例子都只能用于学习OpenCV或熟悉OCR的简单流程,因为它们与当前比较专业的OCR引擎的识别率相去甚远. 这里写下OpenCV下OCR的流程: 1. 特征提取 2. 训练 3. 识别…
CS231n简介 CS231n的全称是CS231n: Convolutional Neural Networks for Visual Recognition,即面向视觉识别的卷积神经网络.该课程是斯坦福大学计算机视觉实验室推出的课程.需要注意的是,目前大家说CS231n,大都指的是2016年冬季学期(一月到三月)的最新版本. 课程描述:请允许我们引用课程主页上的官方描述如下. 计算机视觉在社会中已经逐渐普及,并广泛运用于搜索检索.图像理解.手机应用.地图导航.医疗制药.无人机和无人驾驶汽车等领…
前言 首先声明,以下内容绝大部分转自知乎智能单元,他们将官方学习笔记进行了很专业的翻译,在此我会直接copy他们翻译的笔记,有些地方会用红字写自己的笔记,本文只是作为自己的学习笔记.本文内容官网链接:Linear Classification Note ] # number of classes, e.g. 10 loss_i = 0.0 for j in xrange(D): # iterate over all wrong classes if j == y: # skip for the…
译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Linear Classification Note,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,巩子嘉和堃堃进行校对修改.译文含公式和代码,建议PC端阅读. 原文如下 内容列表: 线性分类器简介 线性评分函数 阐明线性分类器 译者注:上篇翻译截止处 损失函数 多类SVM Softmax分类器 SVM和Softmax的比较 基于Web的可交互线性分类器原型 小结 线性分类 上一篇笔记介绍了图像分类问题.图像分类的…
一.前言 KNN 的英文叫 K-Nearest Neighbor,应该算是数据挖掘算法中最简单的一种. 先用一个例子体会下. /*请尊重作者劳动成果,转载请标明原文链接:*/ /* https://www.cnblogs.com/jpcflyer/p/11111817.html * / 假设,我们想对电影的类型进行分类,统计了电影中打斗次数.接吻次数,当然还有其他的指标也可以被统计到,如下表所示. 我们很容易理解<战狼><红海行动><碟中谍 6>是动作片,<前任…
目录 abstract 1. introduction 1.1 个性衡量方法 1.2 应用前景 1.3 伦理道德 2. Related works 3. Baseline methods 3.1 文本 3.2 音频 3.3 图像 3.4 多模态 4. Detailed overview 4.1 文本 4.1.1 LIWC/MRC 4.1.2 Receptiviti API 4.1.3 社交网络文本研究 4.1.4 深度神经网络应用 4.1.5 SenticNet 5 4.1.6 weighted…
文章转自公众号[机器学习炼丹术],关注回复"炼丹"即可获得海量免费学习资料哦! 目录 1 随机森林 2 bagging 3 神秘的63.2% 4 随机森林 vs bagging 5 投票策略 6 随机森林的特点 6.1 优点 6.2 bias 与 variance 6.3 随机森林降低偏差证明 为什么现在还要学习随机森林? 随机森林中仍有两个未解之谜(对我来说).随机森林采用的bagging思想中怎么得到的62.3% 以及 随机森林和bagging的方法是否有区别. 随机森林(Rand…
背景引言 方向梯度直方图(Histogram of Oriented Gradient,HOG)是用于在计算机视觉和图像处理领域,目标检测的特征描述子.该项技术是用来计算图像局部出现的方向梯度次数或信息进行计数.此种方法跟边缘方向直方图.尺度不变特征变换以及形状上下文方法有很多相似.但与它们的不同点是:HOG的计算基于一致空间的密度矩阵来提高准确率.即:在一个网格密集的大小统一的细胞单元上计算,而且为了提高性能,还采用了重叠的局部对比度归一化技术.HoG特征与SVM分类器结合,已经被广泛应用于图…
Authors: Sarah E. Schwarm University of Washington, Seattle, WAMari Ostendorf University of Washington, Seattle, WAPublished in: ACLtime:June 25 - 30, 2005 Association for Computational Linguistics Stroudsburg, PA, USA ©2005 数据不公开 2 reading level ass…
https://blog.csdn.net/App_12062011/article/details/88655589 这篇发表在 ACL 2018 上的论文来自于杜克大学 Lawrence Carin 教授的实验室.文章重新审视了 deep learning models(例如 CNN, LSTM)在各类 NLP 任务中的必要性. 通过大量的实验探究(17 个数据集),作者发现对于大多数的 NLP 问题,在 word embedding 矩阵上做简单的 pooling 操作就达到了比 CNN…
用HOG进行行人检测时,需要用训练好的支持向量机来对图片进行分类,在opencv中,支持向量机已经训练好,但自己来训练支持向量机才能更好的体会这一过程. 参考:http://blog.csdn.net/masikkk/article/category/2267523 (感谢这些无私奉献的博主) 下面是博主的代码. #include <iostream> #include <fstream> #include <opencv2/core/core.hpp> #includ…