2018-06-27-关于如何使用opencv训练目标级联分级器

opencv训练分级器的简介:


OpenCV提供了两个程序可以训练自己的级联分类器opencv_haartraining与opencv_traincascade。opencv_traincascade是一个新程序,使用OpenCV

2.x API 以C++编写。这二者主要的区别是opencv_traincascade支持 Haar和 LBP

(Local BinaryPatterns)两种特征,并易于增加其他的特征。与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。LBP和Haar特征用于检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。训练一个与基于Haar特征同样准确度的LBP的分类器是可能的。

与其他分类器模型的训练方法类似,同样需要训练数据与测试数据;其中训练数据包含正样本pos与负样本neg。训练程序opencv_haartraining.exe与opencv_traincascade.exe对输入的数据格式是有要求的,所以需要相关的辅助程序:

   opencv_createsamples 用来准备训练用的正样本数据和测试数据。opencv_createsamples 能够生成能被opencv_haartraining 和 opencv_traincascade 程序支持的正样本数据。它的输出为以 *.vec 为扩展名的文件,该文件以二进制方式存储图像。

opencv训练分级器的步骤


1、准备训练数据

2、训练级联分类器

3、测试级联分级器的性能

4、利用训练好的级联分级器做目标检测、



准备训练数据


准备正样本:


1、首先将左右的正样本图像截图——最小外接矩形(减少计算难度,减少不必要的干扰)。注意:所有的样本背景最好一致

2、将图像归一化处理、利用美图秀秀等软件将所有的图像转换成大小一致的图像(推荐尺寸25*25,减少计算难度、避免内存不够用)

3、将图像灰度处理GRAY

4、生成pos.text  格式为:图片路径     检测目标在图片中的个数     起始监测点坐标(x,y)        图片大小(w,h)

5、训练分级器  dos运行opencv_createsamples.exe -vec pos.vec -info pos.txt -num 100 -w 30 -h 30   得到得到pos.vec文件



准备负样本



  1、.不要求样本尺寸,但要大于等于正样本的大小;且负样本不能重复,要增大负样本的差异性。

 2、负样本灰度化,同正样本操作相同。

地址:https://www.cnblogs.com/linmengran/p/6514410.html

你可能感兴趣的:(2018-06-27-关于如何使用opencv训练目标级联分级器)