级联分类器的介绍:级联分类器训练html
由于要训练负样本,windows电脑有些问题,因此就只能有mac进行训练。windows
在windows中训练,准备了负样本以后,进行三步。ide
1.opencv_createsamples 也能够用来查看和检查保存于vec正样本文件中的正样本ui
2.opencv_traincascade 和 opencv_haartraining 均可用来训练一个级联分类器spa
命令中的参数在xml
当 opencv_traincascade 程序训练结束之后,训练好的级联分类器将存储于文件cascade.xml中,这个文件位于 -data 指定的目录中。这个目录中的其余文件是训练的中间结果,当训练程序被中断后,再从新运行训练程序将读入以前的训练结果,而不需从头从新训练。训练结束后,你能够删除这些中间文件。htm
在mac中,安装opencv以后就能够进行训练了blog
在mac中训练分为两步图片
1.制做正样本get
2.级联分类器训练
step 1 :/anaconda2/bin/opencv_createsamples -info positive/info.txt -vec vector/vector.vec -num 300 -w 20 -h 20
step 2 :/anaconda2/bin/opencv_traincascade -data cascades -vec vector/vector.vec -bg negative/info.txt -numPos 300 -numNeg 688 -numStages 15 -w 20 -h 20 -minHitRate 0.9999 -maxFalseAlarmRate 0.5 -mem 2048 -mode ALL
结果在cascade.xml文件即为最终的训练结果,便可拿来进行目标检测。
在训练的过程当中遇到以下的问题
===== TRAINING 0-stage ===== <BEGIN POS count : consumed 697 : 697 Train dataset for temp stage can not be filled. Branch training terminated. Cascade classifier can't be trained. Check the used training parameters.
解决方法是负样本信息文件,是在negative文件夹下的info.txt ,文件中图片描述的路径不对,负样本文件中的每一行记录的图片名必须是从当前路径开始的。
训练的时候正样本是300张,负样本是697张。