#1,准备正负样本

正样本:可以一张图片上多个sample,也可以一张图片单独成一个sample,准备多个sample。生成描述文件如下所示:

负样本:只要不含正样本,任意图片都可以作为负样本,但是最好是正样本中的背景作为负样本,同样生成如下描述性文件:

注意:正负样本比例一般为1:3,负样本只需要名称,正样本还要个数和位置参数。

正样本要归一化为统一大小。

正样本描述文件与正样本放到一个文件夹pos中,负样本描述文件放到当前文件夹,还需要部分opencv的文件以备下用,文件组织如下所示:

#2,生成正样本的.vec文件

命令:opencv_createsamples.exe -vec pos.vec -info pos/pos.txt -bg neg.txt -w 50 -h 50 -num 1000

网上有很多关于这个命令参数的说明,可以去了解下,也可以去createsamples.cpp中查询。

我用的是一张图片上多个sample,所以我没有参数-w 50 -h 50,然后我希望描述文件中有的sample都写入.vec文件中,因此也没有-num 1000参数,在cmd中运行命令之后为:

#3,开始训练

命令:opencv_traincascade.exe -data dt -vec pos.vec -bg neg.txt -numPos 34 -numNeg 100 -numStages 16 -precalcValbufSize 200 -precalcdxBufSize 1000 -featureType HOG -w 50 -h 50

执行命令之后,会-numStages个下面的结果:

#4,结果文件夹

第三步中的-data dt参数指出的中间结果和最终结果的最终存放处,cascade.xml是最终的结果。下面是结果文件夹的截图:

还有一些细节上的问题和bug的调试没有写上来,会在后面写篇博客阐述。

用opencv的traincascade训练检测器的更多相关文章

  1. 使用opencv训练分类器时,traincascade训练报错:Train dataset for temp stage can not be filled.解决方法

    opencv分类器训练中,出错一般都是路径出错,例如, 1.opencv_traincascade.exe路径 2.负样本路径文件,neg.dat中的样本前路径是否正确 3.移植到别的电脑并修改完路径 ...

  2. OpenCV人脸识别-训练级联分类器

    OpenCV中以及附带了训练好的人脸特征分类器,3.2版本的有三种: 分别是LBP,Haar,Hug 在Data目录下. 也可以训练自己的特征库,具体参照如下: 级联分类器训练 — OpenCV 2. ...

  3. Win10中用yolov3训练自己的数据集全过程(VS、CUDA、CUDNN、OpenCV配置,训练和测试)

    在Windows系统的Linux系统中用yolo训练自己的数据集的配置差异很大,今天总结在win10中配置yolo并进行训练和测试的全过程. 提纲: 1.下载适用于Windows的darknet 2. ...

  4. OpenCv haar+SVM训练的xml检测人头位置

    注意:opencv-2.4.10 #include "stdio.h"#include "string.h"#include "iostream&qu ...

  5. opencv利用svm训练

    ]]]]]])rand2 = np.array([[]]]]]])label = np.array([[]]]]]]]]]]])data = np.vstack((rand1]]])pt_data = ...

  6. OpenCV:Adaboost训练时数据扩增

    更准确的模型需要更多的数据,对于传统非神经网络机器学习方法,不同的特征需要有各自相符合的数据扩增方法. 1.   在使用opencv_traincascade.exe 过程中,图像读取在 classi ...

  7. opencv利用Cascade Classifier训练人脸检测器

    opencv默认提供了haar特征和lbp特征训练的人脸分类器,但是效果不太好,所以我们可以用opencv提供的跑opencv_traincascade函数来训练一个LBP特征的分类器.(由于open ...

  8. 【计算机视觉】如何使用opencv自带工具训练人脸检测分类器

    前言 使用opencv自带的分类器效果并不是很好,由此想要训练自己的分类器,正好opencv有自带的工具进行训练.本文就对此进行展开. 步骤 1.查找工具文件: 2.准备样本数据: 3.训练分类器: ...

  9. 如何正确训练一个 SVM + HOG 行人检测器

    这几个月一直在忙着做大论文,一个基于 SVM 的新的目标检测算法.为了做性能对比,我必须训练一个经典的 Dalal05 提出的行人检测器,我原以为这个任务很简单,但是我错了. 为了训练出一个性能达标的 ...

随机推荐

  1. 转换Excel表格到MarkDown:exceltk

    源码和下载: 源码:https://github.com/fanfeilong/exceltk 下载:http://files.cnblogs.com/files/math/exceltk0.0.9. ...

  2. redmine 安装

    现在redmine安装部署的方法有很多,有安装包,docker,虚拟机镜像,还可以在ubuntu,centos中添加安装源. 但是最好维护方法还是从源码去部署. 一. 目标环境: 1. Redmine ...

  3. drop和delete的区别是什么

    当你不再需要该表时, 用 drop;当你仍要保留该表,但要删除所有记录时, 用 truncate;当你要删除部分记录时(always with a WHERE clause), 用 delete.

  4. SSRS报表连接超时的问题

    这段时间遇到一个问题就是ReportService 中采用了远程连接的报表偶尔会断开连接,导致报表导出异常,查阅了很多资料,几天来就是断断续续的终于解决了这个问题,下面把一些解决的点一一展示出来,便于 ...

  5. apache配置文件参数优化

    1.CentOS5.8 x86_64位 采用最小化安装,系统经过了基本优化篇2.apache版本:httpd-2.2.293.源码包存放位置:/home/oldboy/tools4.源码包编译安装位置 ...

  6. android 中Activity的onStart()和onResume()的区别是什么

    首先你要知道Activity的四种状态:Active/Runing 一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态.Paused 当 Ac ...

  7. Eclipse常用的十个方便的快捷键

    Ctrl+F:在当前代在cg中查找关键字 Ctrl+H:打开查找窗口 Ctrl+/: 屏蔽代码(注释): (以下转自:http://wenku.baidu.com/view/d291ade3172de ...

  8. HTML属性的长度问题

    越来越多的同学喜欢把数据存放在html属性上,比如 <p data-info="{a:1,b:2}">xxx</p> 一堆JSON数据放在data-info ...

  9. 通过url 下载文件

    1.问题简介 通过文件的url,将文件下载到本地.文件存储的位置为:tomcat服务器的文件夹(通过读取properties文件:可看:http://www.cnblogs.com/0201zcr/p ...

  10. 树莓派搭建安装mysql

    最近刚入手了一枚树莓派,突发奇想打算做一个小型的家用服务器,在家7*24小时一直挂着. 真的是非常小,只有巴掌大,给树莓派买了一些配件,外壳.小风扇.2片散热片.32G SD卡.HDMI线,组装之后的 ...