opencv之利用opencv_traincascade训练分类器

1、首先,问什么要训练这个.xml文件?
    这个的用途有很多,就是利用Adaboost算法,进行训练一些数据,典型应用是:进行人脸识别。本次就利用人脸识别进行说明,训练的流程。其实进行人脸识别还可以用 opencv_haartraining分类,但是经过一些看网上的人的经验(本人没试), opencv_haartraining存在很多问题,比如有: 检测效果很一般,识别率低。经验证,利用opencv_traincascade训练效果要好,而且支持Haar和LBP两种特征,并且易于增加其他特征,与Haar特征相比,LBP特征是整数特征,因此训练和检测都比Haar特征快几倍。LBP和Haar特征用于检测准确率,是依赖于训练过程中的训练数据的质量和训练参数。训练一个与Haar特征同样准确率的LBP特征的分类器是可能的。
如下是用的LBP特征:
step1:首先进行人脸识别嘛,要有正负样本图片。正样本就是人脸,副样本就是非人脸,一些背景什么的东西。正样本整成一样的大小的,方便后面的使用(至于不整成一样的大小行不行,本人没试,但是后面会很麻烦,不知道会不会有简单办法)。可以写程序实现,当然也可以使用软件,我试了,美图秀秀软件可以用(可以批量处理,很给力)。

step2:正负样本有了,现在提取正负样本的图片所在的路径,分别放到两个txt文件中,正样本pos.txt,副样本neg.txt.(这要注意,这的路径是相对于dos里面的路径的。假如图片路径为d:\picture\pos\图片数,而dos里面的路径为d:\picture,则txt文件中只需要写pos\图片名(我感觉自己都说不清楚了))。然后在txt的每张图片的后面加上1+图片大小,提取图片路径有个很简单的办法是:在dos里面敲命令dir/b > pos.txt。那么该路径下的所有的图片的名字都会保存到pox.txt下。可以试一试,一试就明白了。
例如图片为30*30的,则为 1 0 0 30 30.

opencv之利用opencv_traincascade级联分类器训练.xml文件

step:3

创建vec文件:将opencv_createsamples.exe和opencv_traincascade.exe放到图片文件夹的上层目录,利用opencv_createsamples.exe应用程序在该目录下使用如图cmd命令:

其中的-vec是指定后面输出vec文件的文件名,-info指定正样本描述文件,-bg指定负样本描述文件,-w和-h分别指正样本的宽和高,-num表示正样本的个数。执行完该命令后就会在当前目录下生产一个pos.vec文件了。


所以这个.exe可执行文件的作用就是生成.vec文件。而这个生成的.vec文件有什么作用呢?

答:opencv_createsamples用来准备训练用的正样本数据和测试数据。opencv_createsamples能够生成能被opencv_haartraining和opencv_traincascade程序支持的正样本数据。他的输出是以.vec为扩展名的文件,该文件以二进制方式存储图像。现在知道.vec文件的作用了吧。简单点说就是:它存储了一些可以被opencv_haartraining和opencv_traincascade使用的数据,而这些数据在下面要用到。


opencv之利用opencv_traincascade级联分类器训练.xml文件

step4:

使用opencv_traincascade.exe文件进行训练

首先在当前目录下新建一个dt文件夹用于存放生成的.xml文件。

在当前目录使用cmd命令:

D:\>opencv_traincascade.exe -data dt -vec pos.vec -bgneg/neg.txt -numPos 67 -n

umNeg 300 -numStages 16 -precalcValbufSize 200 -precalcdxBufSize1000 -featureTy

pe LBP -w 100 -h 50


其中-data 输出目录,-numPos正样本数目-numNeg负样本数目-numStages训练级数


opencv之利用opencv_traincascade级联分类器训练.xml文件
opencv之利用opencv_traincascade级联分类器训练.xml文件
opencv之利用opencv_traincascade级联分类器训练.xml文件

如果想知道详细的各个参数和信息和每个参数代表的意思以及更详细的训练步骤。请参考http://blog.csdn.net/liulina603/article/details/8598681
训练的时候需要注意的一些事项
http://blog.csdn.net/zwlq1314521/article/details/9789897

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值