转自:http://blog.csdn.net/tyt2222008/article/details/5838389
在网上找了中文资料,发现大多都是转载那两篇文章,而且那两篇文章讲的都有误差,经过两天的摸索,我终于训练分类器成功了,在此与大家分享。
参考英文资料网址: http://note.sonots.com/SciSoftware/haartraining.html#e134e74e
整个过程分为两步:
1.
2.
现在让我一一讲述。
1.
◆
◆
◆
集合文件格式(collection file format)就是如下形的描述文件:
[filename]
[filename]
[filename]
…
描述文件格式(description file format)就是如下形的描述文件:
[filename] [# of objects] [[x y width height] [... 2nd object] ...]
[filename] [# of objects] [[x y width height] [... 2nd object] ...]
[filename] [# of objects] [[x y width height] [... 2nd object] ...]
…
….
(x, y) 指左上角的坐标,width和 height 分别是样本的宽和高,这里我的图片是20*20的,所以两个值都是20
◆
▼创建样本步骤:
一.
(这里我以人脸图片样本为例)
(注:以上这些 20*20 的图片均来自MIT人脸库,可以在csdn下载)
二.
A.
a)
b)
c)
d)
B.
a)
b)
c)
三.
Opencv 自带有创建样本的exe 文件,在 …/OpenCV2.1/bin 目录下, 这里我创建10个sample:
命令是: opencv_createsamples.exe -info C:/OpenCV2.1/bin/posdata/info.txt -vec a.vec -num 10 -w 20 -h 20
如图:
结果如图:
(关于 opencv_createsamples.exe 的参数用法,在参考英文资料网址http://note.sonots.com/SciSoftware/haartraining.html#e134e74e,里有详细介绍;
需要说明的是,我这里用的参数并没有 –bg, 因为根据那份文档,有了 –vec 和 –info 之后,就表示:Create training samples from some (从很多正样本中创建sample, 没有distortions)
▼训练分类器
还是在…/OpenCV2.1/bin目录下,输入命令:
opencv_haartraining.exe
回车
(注意:
1.
2.
3.
4.
)
结果如下:
(可能实际结果与上图有出入, 但看到最后的
在bin目录会生成一份可爱的data.xml文档,这个就是我们想要的结果了!
Whew….done!