用opencv封装的opencv_haartraining.exe训练分类器

首先,网上有很多网页都有说的,本文章就简述,主要详细讲解可能遇到的一些问题。

训练流程如下:

1.只做样本,肯定分为正样本和负样本,样本制作好以后,还要进行一些处理才能进行下一步,否则会出各种问题。

(a.样本要进行灰度化处理,批量灰度处理的程序可以到这里去下载,可能要自己改一下程序里面的图片路径:http://download.csdn.net/detail/u013419097/9684234;

b.我用的opencv版本是2.4.10,电脑是64位的,之前我一直用x64里面的exe结果不行,然后换成x86位的就解决了程序根本运行不了的问题。

c.用haartraining.exe训练要记得把图片归一化也就是统一图片尺寸到一个比较小的值,我原本宽和高设的是100x200,结果就会报错,后来改成25x50就可以了,否则就会出现下面的问题:


2.第二步,在正负样本文件夹下面生成对应的data文件。


注意:正负样本文件夹都要操作的步骤:完成上面后,分别打开.data文件,运用查找功能,去掉.data文件里面的.data那一行。ps对于正样本的.data文件,还要将里面的jpg替换成jpg 1 0 0 25 50(按照自己的尺寸设)。

3.生成vec文件。

返回到放exe和正负样本的文件夹下(ps:要把exe和正负样本文件夹放在同一个目录下。)

然后在cmd下面cd 到改目录,接着输入指令:opencv_createsamples.exe -info pos\positive.data -vec pos.vec -bg neg\negative.data -num 1822 -w 25 -h 50(1822是我的正样本数)。

如果你出现下面的错误:

那就代表你的vec没创成功,你要检查一下你的正样本的jpg 有没替换成 jpg 1 0 0 25 50.如果成功了,会出现像下图那样:


4.可以开始运行opencv_haartraining.exe开始训练了。在刚才cd到的文件夹的地方,在终端输入:opencv_haartraining.exe -data xml -vec pos.vec -bg neg/negative.data -nstages 20 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -npos 1822 -nneg 4600 -w 25 -h 50  -mem 1024 -mode ALL

注意:xml:这个是放结果的文件夹,你要在exe相同文件夹下面自己建一个,可以自己随便命名。

4600:这个是负样本数,可以大于实际样本。在用traincascade.exe训练的时候发现这个不能比正样本数大,这个数目以及-npos后的数在用traincascade.exe的时候要用一个公式计算,具体见:http://blog.csdn.net/u013419097/article/details/53186316,

最后开始训练了:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值