文档章节

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

denua_
 denua_
发布于 2017/06/04 20:47
字数 740
阅读 165
收藏 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...

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

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

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

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

王磊的博客
2018/04/19
0
0
人脸检测原理及示例(OpenCV+Python)

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

张卫泉
2012/09/12
0
2
主题:人脸检测原理及示例(OpenCV+Python)

发表时间:2009-09-06 < > 猎头职位: 北京: ITeye网站诚聘社区编辑 相关文章: OpenCV库的简介 OpenCV+Ruby构建图像处理研究平台 python django opencv 脸部识别的小游戏 推荐群组: HTML5 更多...

晨曦之光
2012/05/28
941
0

没有更多内容

加载失败,请刷新页面

加载更多

IDE 插件新版本发布,开发效率 “biu” 起来了

近日,Cloud Toolkit正式推出了面向 IntelliJ 和 Eclipse 两个平台的新款插件,本文挑选了其中三个重大特性进行解读,点击文末官网跳转链接,可查看详细的版本说明。 本地应用一键部署到任何...

阿里云云栖社区
37分钟前
6
0
金丝雀发布、滚动发布、蓝绿发布到底有什么差别?关键点是什么?

根据 2017 年的 DevOps 发展报告,高效能组织和低效能组织在软件交付的效率上有数量级上的差异。技术组织的软件交付能力是一种综合能力,涉及众多环节,其中发布是尤为重要的环节。 作为技术...

问题终结者
今天
5
0
Kubernetes Client-go Informer 源码分析

几乎所有的Controller manager 和CRD Controller 都会使用Client-go 的Informer 函数,这样通过Watch 或者Get List 可以获取对应的Object,下面我们从源码分析角度来看一下Client go Informe...

阿里云官方博客
今天
4
0
传统IDC部署网站(三)

11. 重置密码 密钥和密码都支持远程登陆, 二选一 两个都可以登陆, 密钥相对于密码来说,相对安全一点 本地登陆无法是用密钥 修改密码 root 用户 passwd root 修改普通用户 passwd usernam...

miko0089
今天
6
0
bash特性

1.支持别名 alias 2.命令替换 $(COMMANS) 或者 `COMMAND` 3. bash支持的引号: `` :命令替换 "":弱引用,可以实现变量替换 '':强引用,不实现变量替换 4.文件名通配 globbing:(man 7 glo...

忙碌的小蜜蜂
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部