转载请注明出处
一:准备正负样本
正样本:含有兴趣区域的图像
负样本:不含兴趣区域的图像
正样本的大小大致要在32*32-64*64之间,才可以训练
二:建立正负样本说明文件
在cmd下进入正/负样本文件夹目录里,
输入 dir /b > 1.txt,回车就会在当前目录下生成1.txt文件,如图:
打开该文件,正样本的txt文件需要加上大小描述:
201772115484.jpg 1 0 0 48 48
(1表示图片包含一个正样本目标,0 0 48 48表示矩形区域)
201706261706216_0.jpg 1 0 0 48 48
201706261706419_1.jpg 1 0 0 48 48
201706261706432_2.jpg 1 0 0 48 48
201706261706446_3.jpg 1 0 0 48 48
如果.exe工程文件在样本目录上一级,则不需要在图片名加目录。
如不是请在图片名前边加上目录,如:
posData/201706261706432_2.jpg 1 0 0 48 48
同样的方法进入neg文件夹内,用同样的方法建立描述文件neg.txt,负样本不需要大小描述,如:
201772115484.jpg
三:创建正样本vec文件:
将opencv_createsamples.exe和 opencv_traincascade.exe(都在opencv安装的bin目录下,D:\Program\opencv-2.4.11\opencv\build\x86\vc12\bin。。。。这是我的安装目录)放到图片文件夹的上层目录,需要用到opencv_createsamples.exe工具
然后创建一个.bat文件,写入下面的命令,双击即可使用
D:\\samples_set\\zhangkun\\SFR\\singleIMG_recog\\opencv_createsamples.exe -vec 1.vec -info 1/1.txt -bg 0/0.txt -w 48 -h 48 -num 15570
其中的-vec是指定后面输出vec文件的文件名,-info指定正样本描述文件,-bg指定负样本描述文件,-w和-h分别指正样本的宽和高,-num表示正样本的个数。执行完该命令后就会在当前目录下生产一个1.vec文件了。
四:训练级联分类器
训练的.bat文件
D:\\samples_set\\zhangkun\\SFR\\singleIMG_recog\\opencv_traincascade.exe -data dt -vec 1.vec -bg 0/0.txt -numPos 15570 -numNeg 12908 -numSta