训练Haar级联分类器常见问题的分析与解决方法

一、概述

       在计算机视觉领域中,需要进行目标分类和位置跟踪时,从图像数据中提取相应特征对产生稳定分类结果和跟踪结果很重要。OpenCV提供了尺度不变Haar级联的分类器和跟踪器,OpenCV3的源码中提供了所有OpenCV的用于人脸检测的XML文件,这些文件可以检测静止图像、视频和摄像头所获得图像中的人脸。用户可以利用性能强劲的计算机,创建自己的级联,训练分类器去检测各种对象。

二、常见问题的分析与解决方法

1、OpenCV Error: Unspecified error (No element name has been given) in cv::operator <<, file C:\builds\2_4_PackSlave-win64-vc12-shared\opencv\modules\core\include\opencv2/core/operations.hpp, line 2913

       无法识别的工具错误。使用相应工具(例如:opencv_traincascade)时,如果工具没有在当前目录,则添加工具的的绝对路径,对于中间有空格的路径可以用双引号将路径进行包含。

2、Training parameters are loaded from the parameter file in data folder!  Please empty the data folder if you want to use your own set of parameters.          
OpenCV Error: Parsing error (data/params.xml(7): Duplicated key) in cvGetFileNode, file C:\builds\2_4_PackSlave-win64-vc12-shared\opencv\modules\core\src\persistence.cpp, line 711

        一般训练模型过程中,如果训练被中断,下次训练时会自动加载之前的参数继续训练。如果要重新开始,应该将data文件夹(保存着训练过程中各层网络的参数和最终的分类器文件)清空。

3、OpenCV Error: Bad argument (Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file.) in CvCascadeImageReader::PosReader::get, file C:\builds\2_4_PackSlave-win64-vc12-shared\opencv\apps\traincascade\imagestorage.cpp, line 162

       训练参数设置的不正确。训练分类器时参数numPos的值要小于vec_file文件里面给的参数num,一般取numPos=0.9num_in_vec或者0.8num_in_vec。

4、Train dataset for temp stage can not be filled. Branch training terminated.

       现阶段的网络层级的训练样本不足,训练提前终止。参考可能的三个方面:
(1)级联参数minHitRate(即每层级的最小检测率)默认为0.995,可以修改得更大一点。
(2)基本参数precalcValBufSize和precalcIdxBufSize(即特征值缓存和特征索引缓存)设置得过小。通常这两个参数默认  1024M,但是电脑的硬件配置不够的话,是没有办法进行训练的,所以根据电脑的性能修改这两个参数的值,但是值太小也是无法训练的。
(3)正负样本尺寸设置问题。负样本的尺寸要大于正样本的尺寸,通常是负样本尺寸为正样本尺寸的6倍左右,不然当训练层级较大时,无法进入下一层级进行训练。

5、1415: error: (-213) HOG cascade is not supported in 3.0 in function read

       训练分类器时,级联参数featureType默认为Haar,可以更改为HOG或者LBP,但是训练出来的基于HOG描述符的分类器在OpenCV3中是不支持的(使用OpenCV3+Python2.7测试分类器)。

6、terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted

       内存溢出问题。可以将正样本图片尺寸改小一点,通常的尺寸是24x24或者32x32等等。

三、其他

1、训练用的正负样本都是灰度图,训练之前需要将彩色图转化为灰度图,并且尺寸应保持统一。

2、使用性能强劲的计算机,训练效率和训练结果更佳。

3、训练之初,由用户给出分类器训练的基本参数,而级联参数通常有默认的值,也是可以根据实际情况进行更改的。

4、训练样本中尽量不要有相同的样本。

5、样本的质量和数量会影响到分类器的分类效果。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值