人脸识别的xml文件生成

时间:2024-05-19 09:25:38

转自https://blog.****.net/kevin_ut/article/details/5838389

一.         把所有正样本图片放在posdata的文件夹下,把所有负样本图片放在negdata文件夹下

二.         分别为正样本和负样本创建描述文件

 

A.  为正样本创建描述文件格式文件info.txt,并且把这个文件放在与样本图片同一目录下,例如我的目录为C:/OpenCV2.1/bin/posdata

a)      在命令行下 输入以下命令: dir /b > info.txt

 人脸识别的xml文件生成

b)      打开info.txt, 按ctrl+h, 把所有的bmp 换成 bmp 1 0 0 20 20

c)      删除info.txt最后一行的 “info.txt”

三.         创建样本。

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

如图: 人脸识别的xml文件生成

 

结果如图:

 人脸识别的xml文件生成

 

(关于 opencv_createsamples.exe 的参数用法,在参考英文资料网址http://note.sonots.com/SciSoftware/haartraining.html#e134e74e,里有详细介绍;

 

需要说明的是,我这里用的参数并没有 –bg, 因为根据那份文档,有了 –vec 和 –info 之后,就表示:Create training samples from some (从很多正样本中创建sample, 没有distortions)

 

      经历千辛万苦,我们终于看到sample被创建成功了,接下来的工作就简单多了

 

▼训练分类器

 

还是在…/OpenCV2.1/bin目录下,输入命令:

opencv_haartraining.exe  -data data -vec C:/OpenCV2.1/bin/a.vec -bg I:/negdata/bg.txt -npos 250 -nneg 800 -nstages 4 -nsplits 2 -mem 512 -nonsym -w 20 -h 20 -minpos 100

 人脸识别的xml文件生成

 

 

回车

(注意:

1.      参数-vec 一定要是刚刚创建样本产生的a.vec,且把完整路径也写上去,我试过用相对路径,但总会训练失败; bg.txt 也要用绝对路径;

2.      –w 和 –h 都要写上与样本大小的一致的尺寸

3.      若遇到“内存什么不能read”的问题,很有可能是bg.txt的格式有误,回去

4.      关于 opencv_haartraining.exe 的参数用法,在参考英文资料网址http://note.sonots.com/SciSoftware/haartraining.html#e134e74e,里有详细介绍

(5.    需要注意的是参数-npos和-nneg的值的比例要符合possample和negsample的数量比,否则会出错)

 

结果如下:

 人脸识别的xml文件生成

(可能实际结果与上图有出入, 但看到最后的 人脸识别的xml文件生成,就说明训练成功了。

 

在bin目录会生成一份可爱的data.xml文档,这个就是我们想要的结果了!

--------------------- 本文来自 tyt2222008 的**** 博客 ,全文地址请点击:https://blog.****.net/kevin_ut/article/details/5838389?utm_source=copy