文件夹
  • opencv训练文件
    • xml
  • negdata
  • posdata
说明

negdata目录: 放负样本的目录
posdata目录: 放正样本的目录
xml目录: 新建的一个目录,为之后存放分类器文件使用
neg.txt: 负样本路径列表
pos.txt: 正样本路径列表
pos.vec: 后续自动生成的样本描述文件
opencv_createsamples.exe: 生成样本描述文件的可执行程序(opencv自带)
opencv_haartraining.exe: 样本训练的可执行程序(opencv自带)

步骤
  1. 生成文件目录:
    在posdata文件夹中执行dir /b/s/p/w *.jpg > pos.txt
    在negdata文件夹中执行dir /b/s/p/w *.jpg > neg.txt
  2. 文件拷贝
    拷贝生成的文件到“opencv训练文件”文件夹下
  3. 修改拷贝的文件
    将pos.txt的jpg替换为jpg 1 0 0 20 20
  4. 在cmd命令中运行以下命令
opencv_createsamples.exe -vec pos.vec -info pos.txt -num 18500 -w 20 -h 20
opencv_createsamples.exe -vec neg.vec -info neg.txt -num 10500 -w 50 -h 50
-info,指样本说明文件
-vec,样本描述文件的名字及路径
-num,总共几个样本,要注意,这里的样本数是指标定后的20x20的样本数,而不是大图的数目,其实就是样本说明文件第2列的所有数字累加
-w -h指明想让样本缩放到什么尺寸。这里的奥妙在于你不必另外去处理第1步中被矩形框出的图片的尺寸,因为这个参数帮你统一缩放!(我们这里准备的样本都是20*20)
  1. 新建文件traincascade.bat
opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 500 -numNeg 656 -numStages 20 -w 20 -h 20 -mode ALL

pause
  1. 将第3步修改的文件改回原来的样子
  2. 双击traincascade.bat开始训练(训练结束后会在xml目录下生成如图文件(其中cascade.xml就是我们训练得到的分类器))
01-16 16:40