OpenCV训练分类器

来源:互联网 发布:深圳海关数据 编辑:程序博客网 时间:2024/05/21 10:00

训练分类器步骤和代码

 

 

 

 

假设文件都在e盘的train文件夹里面。。train里面有两个文件夹,faces和nonfaces.

 

如下图所示:

                             

 

 

一.负样本生成dat文件

1   e:                        进入E盘

2   cd train\nonfaces          进入负样本文件夹

3   dir /b >nonfaces.dat     生成dat文件

 

 

 

生成的dat如下图所示:

二.正样本生成dat文件

1   e:                         进入E盘

2   cd train\faces             进入正样本文件夹

3   dir /b >faces.dat         生成dat文件

4   打开faces.dat文件,用txt里面的编辑——>替换,把bmp全部替换为bmp 1 1 1 23 23 .

 

生成的正样本dat文件如下:

 

三.正样本dat文件生成正样本vec文件

HaarTraining训练时输入的正样本是vec文件,所以需要使用OpenCV自带的CreateSamples程序将准备好的正样本转换为vec文件。

 

假如createsamples.exe所在的路径为 

C:\ProgramFiles\OpenCV\bin\createsamples.exe

 

 

 

则代码为:

 "C:\Program Files\OpenCV\bin\createsamples.exe"  -info "E:\train\faces.dat" -vec E:\train\faces\faces.vec   -num49  -w 20 -h 20

 

表示有49个样本,样本宽20,高20,正样本描述文件为E:\train\faces.dat,结果输E:\train\faces\faces.vec

 

代码与结果如下:

 

生成的vec文件如下:

 

 

四、训练分类器

"C:\Program Files\OpenCV\bin\haartraining.exe"  -data

 E:\train\faces   -vec E:\train\faces\faces.vec 

-bg E:\train\nonfaces\nonfaces.dat  -npos 49   -nneg20  mem 200

-mode ALL -w 20 -h 20

 

程序如下图所示:规定到第5级停止

结果:(第二级就停止了,可能是负样本太少

 

结果faces的文件夹里面多了三个文件夹

文件夹里面生成的txt文件

 

 

五、生成xml文件

0 0
原创粉丝点击