matlab中的级联分类器,如何正确训练级联分类器traincascade

言:最近做了将近一个月的关于级联分类器的工程,下面总结了训练级联分类器的过程以及需要注意的地方,希望可以与博友们多多交流。

训练级联分类器traincascade需要opencv中的两个exe文件,这两个文件分别是opencv_createsamples.exe和opencv_traincascade.exe文件。

训练过程可分为以下几步:

(1)准备正负训练样本。

正样本:

正样本尺寸保持一致,但在采集过程中也可不一致,后续可自己编程实现尺寸统一。

负样本:

负样本的尺寸无需统一,负样本越多,检测结果误检率越小。

准备好训练样本后,创建两个文件夹,假设为pos以及neg分别存放正负样本,并将这两个文件夹与opencv_createsamples.exe和opencv_traincascade.exe文件放在同一目录下(如下图所示)。

a4c26d1e5885305701be709a3d33442f.png

正负样本的差异越大,所训练的分类器性能越好。

(2)在DOS环境下生成正负样本描述符,具体命令如下:

首先进入到正负样本所在的目录。若处于正样本所在目录,输入命令:dir/b>pos.txt则生成正样本描述文件。

若处于负样本所在目录,输入命令:dir/b>neg.txt,则生成负样本描述文件。生成的正负样本描述文件为.txt文件,打开后可见其为一个个样本的名称,然后将正负样本作以下处理:

对于负样本:

在样本名字前加上”neg/”,即为负样本所在的文件夹,所有的样本名称都要修改,修改完后把最后一行的neg.txt去掉,还有最后一行的空行去掉,切记,否则训练过程会报错。

a4c26d1e5885305701be709a3d33442f.png

对于正样本:

除了在样本名字前加上其所在的文件夹名称,还要在后缀名后面加上样本描述,即样本的尺寸大小,1表示样本数为1,0

0表示的是样本左上角的坐标即为(0,0), 4 4 表示右下角的坐标。同样修改完后把最后一行的pos.txt以及空行去掉。

a4c26d1e5885305701be709a3d33442f.png

至此,正负样本描述文件已全部处理完。

(3)生成.vec文件

生成.vec文件需要用到opencv_createsamples.exe文件,.vec文件是为后面训练分类器所准备的。在dos环境下的相对目录下键入以下命令:

opencv_createsamples.exe -vec pos.vec -info pos.txt -num 1000 -w

30 –h 30

此时可在opencv_createsamples.exe文件所在目录中看到所生成的.vec文件。

由命令行可知,-w 30 –h

30为正样本的尺寸大小,也间接说明了正样本的尺寸大小必须一致。-num为需要生成的正样本数目。对于负样本则无需生成.vec文件。接下来就要利用opencv_traincascade.exe来开始训练分类器了。

(4)级联分类器的训练

在命令行键入以下命令:

opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt

-numPos 900 numNeg 788 -numStage 20 -precalValBufSize 300

-precalIdxBufSize 100 -featureType HAAR -w 4 -h 4 -mode ALL

便开始训练分类器了。其中各个含义现在一一来说明。

-data xml

Xml为一个文件夹的名字,该文件夹需要自己新建,用来存放训练好的分类器。-data即为分类器所在的文件夹。

-bg numPos 900

这个是训练正样本的数目,为何这个地方不是1000呢,而创建样本时创建了1000个?这个我也不是很清楚,总之要是能看源代码就能搞清楚了。

-bg

这个很明显是负样本文件。

numNeg 788

负样本数目。

-numStage 20

训练阶数

关于多尺度特征检测函数detectMultiScale()检测尺度表:

尺度倍数 检测次数 检测最小尺寸。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值