对于opencv的一些图像变换函数暂时先不再这里进行说明,后续有使用到的时候在整理。
要训练自己的xml文件的基本步骤
1、准备正样本、负样本并生成相应的txt文件
2、使用opencv_createsamples.exe 生成vec文件
3、使用opencv_traincascade.exe 生成xml文件
1、负样本很好准备一不用归一化这里主要讲解正样本的准备,网上介绍的文章有很多,在这里进行归纳总结
主要有一下几点:1)正样本最好尽量小,使用灰度图像,所有正样本使用相同的大小。
最后生成pos.txt文件文件格式如下
如果是一张图片有多个目标可以使用objectmarker.exe工具进行生成txt文件。 https://download.youkuaiyun.com/download/wenjie8756/11065022
负样本neg.txt
注意:txt文件文件名前面加相对路径最后目录情况 pos中放正样本 neg中放负样本
生成vec文件cmd,cd到当前目录运行命令.\opencv_createsamples.exe -info pos.txt -bg neg.txt -num 550 -vec pos.vec -w 100 -
h 40 550为正样本的数量 100 正样本图像宽度 40正样本图像高度
训练xml文件 .\opencv_traincascade.exe -data classifier -vec pos.vec -bg neg.txt -numStages 20 -
minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 400 -numNeg 200 -w 100 -h 40 -mode ALL -precalcIdxBufSize 1024 -featureType LBP
其中上文的550 应 >= (numPos + (numStages-1) * (1 - minHitRate) * numPos) + 负样本数量
运行命令前需要建立-data指定的文件夹此处应建立classifier文件夹后再执行命令