当前位置: 代码迷 >> VC/MFC >> opencv 的adaboost haar特征锻炼
  详细解决方案

opencv 的adaboost haar特征锻炼

热度:501   发布时间:2016-05-02 03:24:22.0
opencv 的adaboost haar特征训练
我在调用opencv的opencv_haartraining.exe,出现如下错误:
Opencv Error: Assertion failed <elements_read ==1 >in unknown function,\..\..\apps\haartraining\cvhaartraing.cpp,line 1859.
出现上面提示的错误,我看到过别人也有问出现这种问的,有人回答说是可能是样本选取不合理,但是我用的是网上下载的MIT人脸检测图片库啊,2千多张正样本,4千多张负样本,MIT的样本库,人家的样本应该很合理吧,我训练到一级的时候就提示出现这种错误,麻烦各位大神给帮帮忙啊,

------解决思路----------------------
我也遇到同样的问题
------解决思路----------------------
楼主的问题解决了吗,我也是出现了这个问题,不知道怎么解决
------解决思路----------------------
刚学OpenCV的飘过~
------解决思路----------------------
http://stackoverflow.com/questions/10863560/haar-training-opencv-assertion-failed
这个帖子里,后面answer1给了答案,得翻译一下
------解决思路----------------------
楼主的问题解决了么?
------解决思路----------------------
楼主用opencv2.4.4试试看,之前我是用opencv2.1,自己配置的静态库,后来opencv2.4.4不用自己配置了,自己已经生成好了。而且工程配置也简单,只需要加lib,不需要加路径了
------解决思路----------------------
楼主把训练时设置的参数贴出来瞧瞧,有可能是细节出了问题。我训练时用的是2.4.6版本的,haarTraining.exe是用opencv自带的haarTraining.cpp重新建立工程生成的
------解决思路----------------------
请问楼主的问题解决了吗?我也遇到同样的问题
------解决思路----------------------
这个好像是个BUG,cvhaartraining.cpp的第1859行,是读取负样本的程序,代码中是先判断负样本是否读完,再把已读负样本的个数++,这样导致读完最后一个负样本后还未达到退出条件,这时候继续读入样本就会越界;应该改为已读负样本个数先++,再判断是否已读完负样本;这个函数是在第二级训练的时候才会调用,所以训练完第一级、开始训练第二级的时候才会出错。
------解决思路----------------------
是不是opencv_creatasamples.exe的时候样本太少了,把-num的值调大试试?