opencv的opencv_haartraining.exe训练器训练模型

1.生成训练用的.vec 文件:
命令行运行如下命令(注意要在opencv_createsamples.exe 的目录下操作,一般在opencv\build\x64\vc12\bin\ 目录下,将前边生成的pos.data 复制到此目录下,

关于pos.data可参考http://blog.csdn.net/m0_38128647/article/details/70919826):

opencv_createsamples.exe -vec pos.vec -info pos.data -num 100 -w 30 -h 30

得到pos.vec 文件。
2.负样本:不包含检测目标的任何图片。
1.不要求样本尺寸,但要大于等于正样本的大小;且负样本不能重复,要增大负样本的差异性。
此处同样可参考pos.data 的生成方法,链接为http://blog.csdn.net/m0_38128647/article/details/70919826
3.开始训练:
同样是在此目录下操作opencv\build\x64\vc12\bin\ ,首先新建一个目录xml 此目录下应包含正样本文件夹、负样本文件夹、pos.vec neg.data 文件 和 xml 文件夹,有多余的东西无所谓,这几个是必须要有的,在命令行先切换到此目录下,然后输入opencv_haartraining.exe -data xml -vec pos.vec -bg neg.dat -nstages 10 -nsplits 1 -npos 315 -nneg 16 -mem 1280 -mode all -w 30 -h 30 命令,即开始训练,训练完之后会在此目录下生成xml.xml 文件,这个文件就是我们训练好的模型,直接调用即可。
参数说明:
-data xml 存储训练时的生成的文件
-vec pos.vec 调用.vec文件,与neg.data放在同一目录下
-bg neg.txt 负样本生成文件,可以理解成是负样本的索引
-nstages 10 训练级数
-nsplits 1 2表示弱分类器二叉决策树的分裂数 1表示使用简单stump 分类(只有一个树桩)
-npos 315 正样本数量
-nneg 16 负样本数量
-mem 1280 训练时内存预留的空间1280MB
-mode all 级联器的类型,all代表所有类型
-w 30 图片的宽30像素,必须与之前一致
-h 30 图片的高30像素,必须与之前一致

你可能感兴趣的:(opencv,训练器)