OpenCV3.2.0-----训练数据/分类
来源:互联网 发布:疯狂的美工助手注册码 编辑:程序博客网 时间:2024/05/29 16:15
目录结构
—数据
—–posdata(正样本存放)
—–negdata(负样本存放)
—–xml(分类器存放)
—–posdata.txt(第三步生成)
—–negdata.txt(第三步生成)
—–pos.vec(第四步生成)
(1)准备正样本
正样本图片是自己所检测的目标物体,故越多越好,样本间的差异越大越好。统一化大小,推荐使用20x20,处理较快。根据需要对图片进行预处理,如灰度处理等。
(2)准备负样本
负样本是正样本的背景图片,可以是任意无关的物体及背景。但也不是随意选取,最好是项目所处的环境的背景图。负样本的大小要比正样本大。
正负样本数量1:3
(3)创建样本路径及描述
3.1 进入posdata目录下,创建文本文件编辑,并更名为批处理文件XXX.bat。
内容如下:dir /b/s/p/w *.jpg > 样本描述文件.txt
双击该批处理文件,生成样本描述文件.txt
。将其剪切到上级目录下,更名为posdata.txt。
打开该文件,替换“jpg”为”jpg 1 0 0 20 20”
其中1为该文件代表的文件数量,left top(坐标原点?) width height(宽度长度,即像素20 20),
3.2进入negdata目录下,如上创建描述文件,但不用进行替换。
(4)创建正样本文件pos.vec
进入/数据目录,打开CMD,首先确保opencv已经在path路径中,输入: opencv_createsamples -info posdata.txt -vec pos.vec -num 600 -w 20 -h 20
其中info为正样本描述文件(路径 大小),-vec是生成的pos.vec文件,-num是正样本的数量,即posdata每个路径后面的1相加的和,-w -h就是像素的宽和高。
回车生成pos.vec
(5)分类
对于Opencv3.2已经放弃了haartraining文件,取而代之的是”opencv_traincascade.exe”,参数如下:
- data 训练的分类器的存储目录
- vec 正样本文件,由open_createsamples.exe生成,正样本文件后缀名为.vec
- bg 负样本说明文件,主要包含负样本文件所在的目录及负样本文件名即刚才的negdata.txt
- numPos 每级分类器训练时所用到的正样本数目,应小于vec文件中正样本的数目,具体数目限制条件为:numPos+(numStages-1)numPos(1-minHitRate)<=vec文件中正样本的数目
- numNeg 每级分类器训练时所用到的负样本数目,可以大于-bg指定的图片数目
- numStages 训练分类器的级数,强分类器的个数
- precalcValBufSize 缓存大小,用于存储预先计算的特征值,单位MB
- precalcIdxBufSize 缓存大小,用于存储预先计算的特征索引,单位MB
- baseFormatSave 仅在使用Haar特征时有效,如果指定,级联分类器将以老格式存储
- numThreads 线程数
——级联参数—— - stageType 级联类型,目前只能取BOOST 默认
- featureType 训练使用的特征类型,目前支持的特征有Haar,LBP和HOG
- w 训练的正样本的宽度,Haar特征的w和h一般为20,LBP特征的w和h一般为24,HOG特征的w和h一般为64
- h 训练的正样本的高
——BOOST参数—— - bt 训练分类器采用的Adaboost类型,Adaboost分为Getle Adaboost,Real Adaboost,Discrete Adaboost,Logit Adaboost,训练中默认采用Getle Adaboost
- minHitRate
影响每个强分类器阈值,每一级分类器最小命中率,表示每一级强分类器对正样本的的分类准确率 - maxFalseAlarm
最大虚警率,影响弱分类器的阈值,表示每个弱分类器将负样本误分为正样本的比例,一般默认值为0.5 - weightTrimRate
0-1之间的阈值,影响参与训练的样本,样本权重更新排序后(从小到大),从前面累计权重小于(1-weightTrimRate)的样本将不参与下一次训练,一般默认值为0.95 - maxDepth
每一个弱分类器决策树的深度,默认是1,是二叉树(stumps),只使用一个特征。 - maxWeakCount
每级强分类器中弱分类器的最大个数,当FA降不到指定的maxFalseAlarm时可以通过指定最大弱分类器个数停止单个强分类器
——Haar特征参数—— - mode
值为BASIC、CORE、ALL三种,根据值不同采用不同的Haar特征,BASIC是基本的Haar特征,CORE是所有的上下Haar特征,ALL是使用所有的Haar特征
——LBP特征参数—— - LBP特征,CvLBPFeatureParams继承于CvFeatureParams
无参数
——HOG特征参数—— - HOG特征,CvHOGFeatureParams继承于CvFeatureParams
无参数
输入: opencv_traincascade -data xml -vec pos.vec -bg negdata.txt -numPos 100 -numNeg 300 -numStages 20 -featureType HAAR -w 20 -h 20
回车即可生成xml形式的分类器。在Opencv中直接加载该文件即可。
- OpenCV3.2.0-----训练数据/分类
- OpenCV3.2.0中使用HOG特征训练SVM分类器时重点注意事项
- 【OpenCV3】级联分类器训练——traincascade快速使用详解
- 训练数据对分类器性能的影响
- 如何训练非平衡数据的分类器
- 如何处理分类中的训练数据集不均衡问题
- 训练自己的分类数据(only cpu)
- 《华为机试在线训练》之数据分类处理
- 训练数据对分类器性能的影响
- 基于darknet框架的imagenet数据分类预训练
- 分类中的训练数据集不均衡问题处理
- python-opencv3 kmeans图像分类
- python-opencv3 kmeans图像分类
- scikit-learn:训练分类器、预测新数据、评价分类器
- 用随机森林分类算法进行Iris 数据分类训练,是怎样的体验?
- [模式分类] 三维高斯分布数据训练三层神经网络实现分类
- OpenCV训练分类器
- 训练haar分类器
- 用proteus来玩数字电路与门和其它门
- (碎片代码)Button事件添加监听器
- VBA使用网页判断版本
- Spring Session解决分布式Session问题的实现原理
- Messenger是怎样实现单线程的
- OpenCV3.2.0-----训练数据/分类
- 给定一个数组,返回这个数组的所有子数组
- 将html页改成jsp的两种方式
- 让Idea本地服务器可以被外部访问
- in future 和 in the future用法的区别
- 如何使用反射和抽象工厂模式来写JDBC
- java反射(5)通过反射拷贝对象
- sklearn 抽样
- 【SQL Server学习笔记】21:四种表表达式的基本使用