opencv分类器训练步骤总结

 

 

    自己训练了一个识别五角星的分类器,不过只用了50个正样本,2000个负样本(不含正样本的背景图),所以用起来误判率很高,

    把训练步骤弄清楚,只要背景和正样本选取得足够多,足够好,就可以较准确的识别物体.

    现在把步骤总结一下.

    训练分类器最终用到一个 haartraining的自带程序,

    haartraining  -data cascade         //样本输出目录

 -vec   pos.vec          //正样本vec文件

 -bg    negdata.dat   //负样本表述文件

 -npos x                    //正样本图片个数

 -nneg x                    //负样本图片个数 

 -mem  500               //程序可用空间,尽量大些,越大越快!

 -mode ALL             

 -w 20                      //正样本图片宽度

 -h  20                      //正样本图片高度 一般取20

 

先创建负样本:      ,一般几千张,越多越准确,但耗时多. 在windows下用命令  dir /b>dataname 生成dataname的表述文件,再把里面不要的东西删除,只留下图片路径和文件名,文件名最好不要空格.先创建好负样本描述文件待用.

 

创建正样本vec文件: 先用上述方法创建一个正样本描述文件 posdata.dat,再用createsamples程序生成.vec的文件.

createsamples  -info  posdata.dat  //正样本描述文件

 -vec  pos.vec          //正样本.vec文件 输出

 -num 50                 //正样本图片个数  ,我只用了50幅

   -w   20                   //正样本图片宽度 

 -h    20                   //正样本图片高度  

 

在训练完后2.1版的会自动执行  performance. 而生成.xml的文件,之后就可以用xml分类器进行物体识别了

在PC机上  ,50正样本,2000负样本就花了1个多小时,上万幅的样本估计要几天几夜了!

 

 

 

你可能感兴趣的:(opencv分类器训练步骤总结)