Haar训练
来源:互联网 发布:mac删除flash 编辑:程序博客网 时间:2024/04/28 13:10
分类器的训练分为两个阶段:
A:创建样本,用OpenCV自带的createsamples.exe来完成。
B:训练分类器,生成xml文件,由OpenCV自带的haartraining.exe完成。
(以上用到的两个可执行文件在OpenCV的bin目录下:C:/Program Files/OpenCV/bin。以下的所有操作均在该目录下完成。)
1. 先准备好大量的正样本和负样本图片,分别存入文件夹img和-img。
2. 创建正样本文件img.txt,文件的内容如下:
img/1.jpg 1 0 0 60 40
img/2.jpg 1 0 0 60 40
img/3.jpg 1 0 0 60 40
img/4.jpg 1 0 0 60 40
img/5.jpg 1 0 0 60 40
……
其中,后面的两个参数分别表示样本的大小为60×40。可修改
3. 创建负样本文件-img.txt,文件内容如下:
-img/1.jpg
-img/2.jpg
-img/3.jpg
-img/4.jpg
-img/5.jpg
……
4. createsamples训练样本:
//----- --从DOS命令行输入以下参数,生成w.vec文件-------
createsamples.exe -vec Vec_Directory.vec -num Num -w Width -h Height
l Vec_Directory:建立此信息文件的文件名及位置。
l Num_:正样本的数量。
l Width:目标object最佳宽度,单位为pixel。
l Height:目标object最佳高度,单位为pixel。
例如,输入参数为:
opencv_createsamples.exe -info ./haartraining.txt -vec ./w.vec -num 25 -w 60 -h 40
5. haartraining训练分类器
//--------从DOS命令行输入以下参数,生成data/cascade文件夹和cascade.xml文件--------
haartraining.exe -data classifier_directory –vec data/ Vec_Directory.vec -bg negatives_info_directory.txt -npos Num_of_Positives -nneg Num_of_Negatives -nstages Num_of_Stages -nsplits Num_of_Splits -mem Mem_Allocated -mode Mode -w Width -h Height
l classifier_directory:cascade classifier的数据夹位置。
l Vec_Directory.vec:create samples时所建立信息文件的位置。
l negatives_info_directory.txt:negative images的信息文件。
l Num_of_Positives:positive images的数量。
l Num_of_Negatives:negative images的数量。
l Num_of_Stages:the number of stages you want to train。(-nstages最后的s一定要记得)
l Num_of_Splits:默认值为1,使用2时,效果明显比1好很多,但耗时。(-nsplits亦同)
l Mem_Allocated:分配使用的内存。
l Mode: BASIC(预设)| CORE | ALL,BASIC用于正立的object,ALL旋转的也适用。
l Width:目标object的宽度,必须与create samples时设定的相同。
l Height:目标object的高度,必须与create samples时设定的相同。
例如,输入参数为:
训练结果如下:
- Haar训练
- haar训练
- haar训练
- haar训练
- 训练haar分类器
- haar人脸训练
- haar人脸训练问题
- Haar 特征训练步骤详
- HAAR、LBP分类器训练
- opencv haar训练--训练样本(4)
- opencv haar训练--训练样本(4)
- opencv haar训练--训练样本(4)
- opencv haar训练样本准备(1)
- opencv haar训练样本准备(1)
- opencv haar训练样本准备(1)
- 用Haar特征训练分类器
- OpenCV编程->Haar训练(1)
- OpenCV编程->Haar训练(2)
- Java中使用ReentrantLock控制线程执行顺序
- 使用django创建项目最终代码
- Servlet与jsp间的传值问题
- 架构之美第十一章-架构结构
- FreeBSD内核网络处理流程分析
- Haar训练
- 在线文档处理--FlexPaper
- 除了内核对象外,你的应用程序也可以使用其他类型的对象
- Java 6 JVM参数选项大全(中文版)
- c++输出缓冲区刷新
- java实现计算器的代码
- Android 如何将定制的Launcher成为系统中唯一的Launcher
- JQuery中位置选择器:nth-child(N)与:eq(N)的区别
- 互联网封闭的新时代