博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
OpenCV 训练联级叠层分类器, 识别你想要的任何物体
阅读量:6504 次
发布时间:2019-06-24

本文共 1440 字,大约阅读时间需要 4 分钟。

  hot3.png

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:分类器的期望错误率

转载于:https://my.oschina.net/Denua/blog/914248

你可能感兴趣的文章
Linux输入子系统:多点触控协议 -- multi-touch-protocol.txt【转】
查看>>
稳定,实际是暴风雨来临前的死寂
查看>>
十一有感
查看>>
《OOD启思录》:61条面向对象设计的经验原则
查看>>
计算二重定积分
查看>>
1078: 输入入门(3)
查看>>
Linux内核驱动之GPIO子系统(一)GPIO的使用【转】
查看>>
关于 WebRequest.RegisterPrefix
查看>>
QName
查看>>
object does not contain a definition for get_range
查看>>
C# 串口操作系列(2) -- 入门篇,为什么我的串口程序在关闭串口时候会死锁 ? ....
查看>>
springmvc学习笔记--json--返回json的日期格式问题
查看>>
JS组件系列——分享自己封装的Bootstrap树形组件:jqTree
查看>>
一行时间的输出
查看>>
Storm概念学习系列之storm简介
查看>>
QTP的那些事--QC远程执行QTP经常出现QTP崩溃现象解决方案
查看>>
SharePoint 2013 Nintex Workflow 工作流帮助(五)
查看>>
共享库方案解决WAS中JAR包冲突
查看>>
ABP理论学习之缓存Caching
查看>>
Regsvr32.exe 用法
查看>>