Cascade Opencv -- train new model
来源:互联网 发布:硕鼠一样的软件 编辑:程序博客网 时间:2024/05/29 07:26
前言
Haar与Adaboost结合即经典的VJ人脸检测,后续衍生很多特征如LBP、HOG、SURF同Cascade(即Adaboost)结合进行对象检测;Adaboost和Cascade的算法流程图如下两图描述:
opencv将参数存储于xml文件中,在检测时直接load即可;因为需要检测新的物体(电表中的某个螺丝),所以直接需要重新训练。
编译训练环境
unbuntu 13.04 32bit
opencv2.4.11
1. 准备
新建工作目录,./traincascade/
1.1 工具
编译opencv后,生成可执行文件,opencv_createsamples 和opencv_traincascade ,并复制到./traincascade/目录下。
1.2 样本
因正样本最后完全包含待检测对象,所以使用手动鼠标划取ROI。宽高约为sampSize=260*200;获得550个尺寸在posSize附近的图像,然后
标准化至sampSize;并存储于./traincascade/pos文件夹内。
反样本使用random方式,随机生成一定的反例(不包含待检测对象);宽高也为sampSize,并存储于neg文件夹内。
最后新建./traincascade/data文件夹用于存储训练后生成的cascade.xml
1.3 信息
正例信息,需要包含正例的目录文件名以及对象在图像中的位置,因为正例图像中全部为待检测对象,所以位置可以直接设定为0,0,width,height。
ls ./pos/*.jpg > metre.info
然后使用.jpg 1 0 0 260 200 替换.jpg
反例信息,仅需要包含反例的目录文件名
ls ./neg/*.jpg > bg.txt
2. 训练
2.1 生成 *.vec
opencv_createsamples -info metre.info -num 550 -w 65 -h 50 -vec metre.vec
-w,-h根据数据库中的数据来确定,此处为260*200缩小4倍,-num后的参数550为pos文件夹内正样本的最大数量。
2.2 生成*.xml
opencv_traincascade -data data -vec metre.vec -bg bg.txt -numStages 10 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5 -numPos 500 -numNeg 500 -w 65 -h 50-numStages为cascade训练的层数,-numPos 500小于opencv_createsamples生成*.vec时的数目550,一般约定为0.9
最后生成的cascad.xml在data目录下。
3. 测试
使用opencv提供的人脸检测sample,载入xml,然后测试训练后得到的xml文件能否正常工作。
4. 总结
检测结果并不理想,所以就不在这里贴图了,需要进行参数修正和样本整理。另一种思路是继续研究latent svm即cascade dmp
参考
【1】 TRAINCASCADE AND CAR DETECTION USING OPENCV
【2】 Coding Robin
【3】 OpenCV haartraining
【4】 How to train cascade properly
【5】 about traincascade paremeters, samples, and other...
【6】 haar training OpenCV assertion failed
- Cascade Opencv -- train new model
- train model note
- 在opencv中训练cascade分类器,出现Train dataset for temp stage can not be filled
- 用opencv 训练cascade
- OPENCV中CASCADE的生成
- Using Your Own Model in train
- hybris new data model
- [New Yorker]NIGHT TRAIN TO FRANKFURT
- opencv学习-Cascade Classifier-人脸人眼识别
- soft cascade(opencv dev-3.00 version)
- opencv 3.0 DPM cascade contrib模块
- opencv的cascade分类器源码分析
- OpenCV 中Cascade 分类器训练
- TRAIN YOUR OWN OPENCV HAAR CLASSIFIER
- 10004---Trail ~ New Data Model
- (1.4) Trail ~ New Data Model
- 【caffe使用记录】caffe的train和test网络model
- train data 和 model bias 对 Mutilayer Perceptrons 的影响
- Ios开发-第一天-Tom猫
- Dagger 源码解析
- 数据库调优教程(七)索引的代价
- 【Android开发】android-AsyncTask介绍
- 金山词霸在360极速浏览器下不能取词
- Cascade Opencv -- train new model
- Linux Netlink通信机制详解(下)
- leetcode unique paths ii
- java.sql.SQLException: 无效的列索引: getValidColumnIndex
- 从网上获取一个网页,在一个TextView中将其源代码显示出来
- 杭电ACM 1003:Max Sum
- xUtils 源码解析
- Qt使用总结
- Java 获取文件夹里文件的名字