本文主要是对下面网址博客中内容的实例操作:

http://blog.csdn.net/byxdaz/article/details/4907211

在上述博客中,详细的讲述了OpenCV训练分类器的做法。虽然他的步骤很详细,但是不能被人很快的利用到实践中来。所以我归纳这些内容,能够让人很快的动手操作起来,这样对于一个新手来说一个多小时就可以很快的掌握做分类器的方法了。

一:分别准备好正负样本

将正样本剪裁统一大小,放到一个的文件夹里面。

将一些和待检测图像无关的照片放入一个文件夹里面。--负样本图片大小不得小于正样本图片大小,且负样本图片内不能有要检测图像的信息。

二:基本DOS命令行介绍

打开运行搜索框((window7系统快捷键是ctrl+R,也可以在开始页面下面找)(windows8系统在开始页面的右上角))。在运行搜索框输入“cmd”就可以找到”命令提示符控制台”;

基本命令行方法:如果想要进入某个磁盘,则输入”[磁盘符号]:”+ENTER就行了。

例如:进入F盘,在命令行输入 f:  然后回车就进入了。

在磁盘内如果要进入某个文件应输入: cd [filename] +enter就可以了。

例如:进入本磁盘的Opencv文件夹就输入: cd Opencv 然后回车就可以了。

如果要清除控制台内的内容,输入cls就可以了。

如下图:

三:负样本制作和正样本准备

采用DOS命令生成负样本文件

打开命令提示符控制台:

利用命令进入你的负样本所在文件夹:例如我的在f:\Opencv\minor

1: 输入 f: 按回车

2:输入 cd Opencv\minornumber 按回车

然后输入如下命令: dir /b >minor.dat

然后在你的负样本图片相应文件夹下就会有了minor.dat文件。用word文档打开它然后删除里面的minor.dat一行就好了。

然后就可以生成负样本描述文件minor.dat了。

负样本已经准备好了,要做正样本。同样按照上述方式生成负样本描述文件。(这是为正样本准备工作)。

我做的负样本描述文件是minor.dat,,正样本描述文件是nativesample.dat

我没有截屏,这是原来博客中的截屏。这一步比较简单。下面才是最麻烦的。

四:将正文本nativesample.dat文件修改,并改成native.vec文件。

用记事本或者word文档打开nativesample.dat,最后用替换工具将“bmp”全部替换成“bmp 1 1 1 40 40”

1 1 1 40 40 代表的是图片的数量,起始位置和宽和高。

解释上面数字的意思,有一张该类型图片,从第一张开始,到第一张结束,宽40,高40

然后用DOS命令将nativesample.dat文件转化成native.vec文件。

进入nativesample.dat所在磁盘中的主文件夹。

我的磁盘及主文件夹是:F:\Opencv

输入f : 按回车

输入 cd Opencv 回车

采用DOS命令(就是指windows运行里面的命令行代码)进行转换。

在OpenCV安装包里面的一个bin文件夹里面有opencv_createsamples.exe程序

一般的bin文件地址是(OpenCV\build\x86\vc12\bin);

例如我的opencv_createsamples.exe程序在g:\OpenCV2.0\bin\下

则输入下面命令:

“g:\OpenCV2.0\bin\opencv_createsamples.exe” -info “nativenumber\nativesamples.dat” -vec background\native.vec -num 8 -w 40 -h 40

解释:

代表opencv_createsamples.exe路径:“g:\OpenCV2.0\bin\opencv_createsamples.exe”

代表nativesamples.dat文件作为参数传递到上面程序:

-info  “nativenumber\nativesamples.dat”

代表我要生成vec类型的文件,参数我要保存这个文件的路径及文件名字

-vec  background\native.vec

代表我的图片数量 -num 8

宽和高 -w 40 -h 40

五:分类器训练,生成txt文件

输入命令行:

“g:\OpenCV2.0\bin\opencv_haartraining.exe” -data background -vec background\native.vec -bg minornumber\minor.dat -npos 8 -nneg 3 -mem 200 -mode ALL -w 40 -h 40

-data background 代表的是我要把文件保存的地址,如下图所示,因为是在f:\Opencv下面执行的,background是其中的子文件夹,所以不用写全路径。

-vec background\native.vec 指的是参数native.vec的文件路径

-bg minornumber\minor.dat 指的是参数背景文件,即负样本路径

其他的全部COPY就好了(链接的博客里有详细介绍)

六:因为生成的文件是txt格式,不符合分类器的最后需求

所以需要最后一步转换文件,将txt文件转换成xml文件(它才是能够成为真正意义上的可加载的分类器文件)

将正负样本的文件(native.vec,minor.dat)放到一个文件夹下面,

然后输入如下图的代码:

前面就是convert_cascade.exe的文件路径

--size指的是图片的宽和高

F:\\Opencv\\background 是该文件的地址

最后是文件要保存的地址全路径

然后回车就好了。这样一个分类器就做好了,可以进行简单的图片检测。

OpecnCV训练分类器详细整理的更多相关文章

  1. 利用opencv源代码和vs编程序训练分类器haartraining.cpp

    如需转载请注明本博网址:http://blog.csdn.net/ding977921830/article/details/47733363. 一  训练框架 训练人脸检測分类器须要三个步骤: (1 ...

  2. vsftpd配置参数详细整理

    vsftpd配置参数详细整理  -|白王斧三又干一 vsftpd配置参数详细整理     -|白王斧三又干一 发表于 2005-10-23 20:30:00   1.vsftpd配置参数详细整理#接受 ...

  3. 如何利用OpenCV自带的级联分类器训练程序训练分类器

    介绍 使用级联分类器工作包括两个阶段:训练和检测. 检测部分在OpenCVobjdetect 模块的文档中有介绍,在那个文档中给出了一些级联分类器的基本介绍.当前的指南描述了如何训练分类器:准备训练数 ...

  4. opencv 手写选择题阅卷 (三)训练分类器

    opencv 手写选择题阅卷 (三)训练分类器 1,分类器选择:SVM 本来一开始用的KNN分类器,但这个分类器目前没有实现保存训练数据的功能,所以选择了SVN分类器; 2,样本图像的预处理和特征提取 ...

  5. OpenCV训练分类器制作xml文档

    OpenCV训练分类器制作xml文档 (2011-08-25 15:50:06) 转载▼ 标签: 杂谈 分类: 学习 我的问题:有了opencv自带的那些xml人脸检测文档,我们就可以用cvLoad( ...

  6. [PyTorch入门之60分钟入门闪击战]之训练分类器

    训练分类器 目前为止,你已经知道如何定义神经网络.计算损失和更新网络的权重.现在你可能在想,那数据呢? What about data? 通常,当你需要处理图像.文本.音频或者视频数据时,你可以使用标 ...

  7. 训练分类器 - 基于 PyTorch

    训练分类器 目前为止,我们已经掌握了如何去定义神经网络.计算损失和更新网络中的权重. 关于数据 通常来讲,当你开始处理图像.文字.音频和视频数据,你可以使用 Python 的标准库加载数据进入 Num ...

  8. SVM+HOG特征训练分类器

    #1,概念 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类.以及回归分析. SVM的主要思想可以概括为两点:⑴它是针 ...

  9. [转] 详细整理:UITableView优化技巧

      原文:http://www.cocoachina.com/ios/20150602/11968.html   最近在微博上看到一个很好的开源项目VVeboTableViewDemo,是关于如何优化 ...

随机推荐

  1. python 打包

    一.下载 pip install Pyinstaller 二.使用Pyinstaller 1.使用下载安装的方式安装的Pyinstaller打包方式 将需要打包的文件放在解压得到的Pyinstalle ...

  2. Matlab提速方法

    1. 向量化. 尽量少用for循环. 2. 循环竖着走比横着走快. 3. 内置函数也有优化的空间 不少内置函数都有大量的error check.直接用profiler找出真正干活的.不少内置函数在网上 ...

  3. mysql下分组取关联表指定提示方法,类似于mssql中的cross apply

    转至:https://stackoverflow.com/questions/12113699/get-top-n-records-for-each-group-of-grouped-results ...

  4. 用纯css改变下拉列表select框的默认样式(转)

    用纯css改变下拉列表select框的默认样式 分享到 分类 JS学习   关键字 前端   发布 kris  2015-04-01 注意 转载须保留原文链接,译文链接,作者译者等信息.     在这 ...

  5. poj 3009 (深搜求最短路)

    题目大意就是求在特定规则下的最短路,这个规则包含了消除障碍的操作.用BFS感觉选择消除障碍的时候不同路径会有影响,用DFS比较方便状态的还原(虽然效率比较低),因此这道题目采用DFS来写. 写的第一次 ...

  6. tc:逼良为娼

    tc的学习原来是想着直接从用户态学习的,但是万万没想到哇,qdisc class两个概念直接把我给搞晕了,直接看代码吧 调用:tc qdisc add dev tap0 root handle 1: ...

  7. VM新安装centos7无法连接网络的问题

    https://blog.csdn.net/u012110719/article/details/42264601 https://blog.csdn.net/kexiaoling/article/d ...

  8. 几种常见web 容器比较

     1:产品介绍 WebLogic是美国bea公司出品的一个application server确切的说是一个基于j2ee架构的中间件.BEA WebLogic是用于开发.集成.部署和管理大型分布式We ...

  9. linux 环境变量配置(node)

    控制台 env 查看当前的环境变量配置 修改/etc/profile文件,在末尾添加以下内容 export NODE_HOME=/usr/local/node //Node所在路径 export PA ...

  10. 单点登录Windows实现

    Windows实现步骤: server.xml修改方式 hosts修改方式 CAS客户端配置 CAS配置filter.txt内容如下: <!-- ======================== ...