文档章节

OpenCV 训练联级叠层分类器, 识别你想要的任何物体

denua_
 denua_
发布于 2017/06/04 20:47
字数 740
阅读 96
收藏 2

OpenCV物体检测需要的叠层分类器, OpenCv自带的训练器

OpenCV 2.4

windows 7 64

<1> 收集样本

样本分为正样本和负样本,并且大小要一致, 一般为20 *20大小的图片, 正样本是包含要检测的物体, 不能包含其他物体, 负样本只要不是要检测的物体就可以.例如要检测人脸, 则正样本只能包含人脸. 不能有其他, 负样本则不能包含有人脸, 样本最好是能突显所要检测物体的特性.

样本的数量, 多样性决定了分类器的准确性.

将收集的样本分别放在两个文件夹, 这里的两个文件夹为, 正样本face\ , 负样本 neg\

在两个样本文件夹下分别新建一个文本文档, 命名为正样本info.txt,  负样本bg.txt. 并且在这两个文件夹下执行命令 dir /d > infi.txt ,  dir /d > bg.txt, 则所有样本文件名都被导入文本文档,将每行改为如下格式,

样本1.bmp 1 0 0 20 20

样本2.bmp 1 0 0 20 20

  1是样本数量, 0是开始区域左上坐标, 20是右下坐标, 在本例中, 整个图片都为要样本有效区则0开始20结束:

 

<2>创建样本文件

生成样本文件程序在OpenCv 目录下的位置, :

OpenCv\opencv\build\x64\cv12\bin\ opencv_createsamples.exe

在OpenCv\opencv\build\x64\cv12\bin\ 目录下执行命令,

opencv_createsamples.exe -info face\info.txt -vec data.vec  -num 2700    -w 20 -h 20

参数说明:

Info

正样本描述文件位置

Vec

生成的样本保存位置

Num

样本数量

W

样本宽度

H

样本高度

...

其他参数

执行以上命令后将生成一个样本文件.vec

<3>训练联级分类器

训练程序路径;OpenCv\opencv\build\x64\cv12\bin\

训练命令: opencv_haartraining.exe -vec data.vec -data dat -bg nonfaces\bg.txt -npos 2710 -nneg 2710 -nstages 5 -nsplits 3 -mem 512 -minpos 100 -w 20 -h 20

参数说明:

Vec

样本文件路径(用traininssample创建)

Data

存放训练好的分类器的路径

Bg

负样本描述文件路径

Npos

用来训练正样本的数量

Nneg

用来训练的负样本数量

Nstages

训练的层数

Nsplits

决定用于阶段分类器的弱分类器.如果为1,则应该简单的stump classifier

被使用,如果是2或更多,则带有number_of_splits个内部节点的CART分类器被使用

Mem

预算内存, 越大速度快

Nosnsym

是否垂直对称

Mode

表示haar特征集

W h

训练样本的尺寸

结果:

N: 层数 %

  SMP: 样本使用率

F: +表示通过翻转,否则是 -

   ST.THR: 分类器阈值

   HR: 当前分类器 对正样本识别正确的概率

   FA: 当前分类器 对负样本识别错误的概率

  EXP.ERR:分类器的期望错误率

© 著作权归作者所有

共有 人打赏支持
denua_
粉丝 0
博文 9
码字总数 10642
作品 0
九江
私信 提问
19- OpenCV+TensorFlow 入门人工智能图像处理-刷脸识别实现

章节介绍 实现一个刷脸识别 输入一张图片,找到图片中的人脸,识别这个是哪一个人。 案例代码简单 人工网络层级低。 隐层只有一层。 综合: 样本收集 + 图像预处理 + TensorFlow神经网络 pyth...

天涯明月笙
05/19
0
0
图片人脸检测(OpenCV版)

图片人脸检测 人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看. 功能展示 识别一种图上的所有人的脸,并且标出人脸的位置,画出人眼以及嘴的位置,展示效果图如下...

vipstone
05/21
0
0
图片人脸检测——OpenCV版(二)

图片人脸检测 人脸检测使用到的技术是OpenCV,上一节已经介绍了OpenCV的环境安装,点击查看. 往期目录 视频人脸检测——Dlib版(六) OpenCV添加中文(五) 图片人脸检测——Dlib版(四) 视...

王磊的博客
04/19
0
0
tensorflow实现人脸检测及识别(简单版)

本教程主要是对人脸检测及识别python实现系列 及碉堡了!程序员用深度学习写了个老板探测器(付源码) 的实现。主要实现的功能是用网络摄像头自动识别在工位通道走过的人脸,如果确认是老板的...

gavinmiaoc
05/28
0
0
人脸检测原理及示例(OpenCV+Python)

前言 关于opencv OpenCV 是 Intel 开源计算机视觉库 (Computer Version) 。它由一系列 C 函数和少量 C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 拥有包括 300 多个 ...

张卫泉
2012/09/12
0
2

没有更多内容

加载失败,请刷新页面

加载更多

js前端图片处理例子

首先需要了解几个api FileReader FileReader主要用于将文件内容读入内存,通过一系列异步接口,可以在主线程中访问本地文件。 <table> <tr> <th>方法定义</th> <th>描述</th> </tr> <tr> <t......

别人说我名字很长
3分钟前
0
0
前端常用插件、工具类库汇总(下)

前言 对本文感兴趣可以先加个收藏,也可以转发分享给身边的小伙伴,以后遇到类似的场景就来看看具体的插件及其用法。 上一篇《前端常用插件、工具类库汇总(上)》内容摘要: 动画库 滚动库 ...

我的卡
9分钟前
2
0
jq 的 $ 符号冲突解决办法

百度了一下,都是 感觉挺负责的,我只是想当前页面 简单使用jq ,解决冲突即可。 很简单的 将 $ 符号换成 jQuery 即可,就不怕冲突了。 jQuery('#message').val();...

之渊
10分钟前
0
0
如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

前提 Cordova Android 7.0.0开始改变了项目安卓平台的架构。新建一个空项目分别添加Android 6.4.0 和 Android 7.0.0平台: cordova platform add android@6.4.0cordova platform add androi...

极光推送
18分钟前
0
0
移动端Appium自动化测试框架的优势

众所周知,现在市面上的移动端操作系统已被Android和IOS占领,其中Android的份额更是在80%以上。那么面对市面上林林总总的自动化测试框架和工具,为什么说Appium在自动化测试框架的统治级优势...

程序猿拿Q
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部