前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Why always OpenCV Error: Assertion failed (elements_read == 1) in unknown function ?

Why always OpenCV Error: Assertion failed (elements_read == 1) in unknown function ?

作者头像
MachineLP
发布2022-05-09 14:09:30
4180
发布2022-05-09 14:09:30
举报
文章被收录于专栏:小鹏的专栏小鹏的专栏

  在Windows下安装好opencv2.4.9之后,在"xxx/build/x64/vc10/bin"下有训练中要用到的可执行程序opencv_xxxx.exe等四个可执行程序。注意,由于本人为win7 64bits系统,安装了VS2010,故使用该目录下的可执行程序。

    当使用自带程序进行人脸检测训练时,遇到一些问题,整理如下:

1.训练中途,程序突然终止,提示"OpenCV Error: Assertion failed (elements_read == 1) in icvGetHaarTraininDataFromVecCallback, file ..\..\..\..\opencv\apps\haartraining\cvhaartraining.cpp, line 1861"

解决办法:我是用的训练参数是“D:\Program Files\opencv\build\x64\vc10\bin>opencv_haartraining.exe -data xml -vec pos.vec -bg neg_img.txt -nstage 15 -nsplits 1 -npos 1632 -nneg 3987 -w 32 -h 32 -mem 1024 -mode ALL”,其中,1632为pos.vec中样本的总数目。-npos的意思是每次训练从.vec文件中随机选取npos个正样本。由于存在虚警,在每一次训练一个强分类器之后,会把那些分类错误的从整个样本库中剔除掉,总的样本就剩下 CountVec = CountVec - (1 - minhitrate)* npos,在第二个强分类器的训练过程中就是从剩下的Countvec抽样,一直这样进行nstage次,所以就有CountVec >= (npos + (nstages - 1)*(1 -minhitrate) * npos ) + nneg 。当把npos设置与vec中总样本数相同时,第二个强分类器训练时,必然就会报错,提示样本数不足。故,将npos和nneg都减少,改成1000和2000即可。

2.训练过程中出现“Premature end of JPEG file”

解决办法:这个一般是样本存在问题可以从两个方面来检查:

(1)训练使用的是灰度图像256色,查看是否有些图片是24位图;

(2)预览图像,看是否有些图片已损坏或者存储大小明显异常。我的样本中有张352*288的灰度图像,大小才6KB。

3.训练过程中卡在某一stage,过了很久都没有动静。

解决办法:问题出现在取负样本的那个函数icvGetHaarTrainingDataFromBG中。当剩下所有的negtive样本在临时的cascade Classifier中evaluate的结果都是0(也就是拒绝了),随机取样本的数目到几百万都是找不到误检测的neg样本了,因而没法跳出循环!解决方法是,增大负样本数目,增大负样本之间的变化! 因为负样本原则应该是无强大而且多样性越大越好,这在现实中是不可行的,所以我们采集的负样本一般无论从数量上还是多样性上都很难满足要求,所以出现上述问题就很正常了,不过此时的分类器已经完全额、可以使用,因为它的误检率已经很低,从实用性上时没有任何问题的。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-11-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档