opencv 分类器训练 Assertion failed (elements_read == 1) in icvGetHaarTraininDataFrom

今天进行分类器的训练,网上教程很多,开始跟着http://blog.csdn.net/txiaomiao/article/details/64132273做,完成之后没有问题,一切正常,实验发现效果不是很好,所以将负样本修改了一下,然后再次训练,也没有问题,但效果任然不理想,所以讲正样本尺寸进行了修改,完成之后再次训练出错了,提示Assertion failed (elements_read == 1) in icvGetHaarTraininDataFrom...。网上搜索了一下,这个问题很常见,大家都是说由于每次从正样本的vec中随机一些,由于虚报的存在,所以导致vec组件减小,这样到后面可能vec中的样本数量就没有给定的npos和nneg多,不能继续训练导致报错。

听起来很有道理的样子,但是无论我怎样修改我的npos和nneg,就是不行,我的vec中存在340个样本,即使我设置npos=30 nneg尝试过大于小于等于30的都不行。这就很尴尬了,又在网上看了很多文章,发现都是大同小异,按理说我的npos和nneg都调整的这么小了,样本怎么都应该是够了的,而且之前成功的步骤现在都有问题了。

最后发现是自己之前生成xml成功的时候有一个xml文件夹,保存了生成过程中的数据信息,第二次或者以后尝试最好先将之前生成的文件夹删除,不然也可能导致出现标题的问题。如果遇到调整参数无效的时候可以尝试一下这个思路。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值