使用opencv训练问题及解决办法
来源:互联网 发布:软件项目保密协议范本 编辑:程序博客网 时间:2024/06/05 12:47
在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样本了,因而没法跳出循环!解决方法是,增大负样本数目,增大负样本之间的变化! 因为负样本原则应该是无强大而且多样性越大越好,这在现实中是不可行的,所以我们采集的负样本一般无论从数量上还是多样性上都很难满足要求,所以出现上述问题就很正常了,不过此时的分类器已经完全额、可以使用,因为它的误检率已经很低,从实用性上时没有任何问题的。注:该解释转自:http://www.opencv.org.cn/forum.PHP?mod=viewthread&tid=33579
未完待续
- 使用opencv训练问题及解决办法
- 使用opencv训练问题及解决办法
- openCV训练分类器是一些错误及解决办法
- openCV训练分类器是一些错误及解决办法
- 关于opencv使用svm训练的问题
- 初学opencv遇到的问题及解决办法
- Faster RCNN 训练中的一些问题及解决办法
- Faster RCNN 训练中的一些问题及解决办法
- Eclipse使用问题及解决办法
- 初学opencv遇到的问题及解决办法(2)
- 初学opencv遇到的问题及解决办法(3)
- OpenCV Haartraining训练相关问题
- OpenCV中SUFR、SIFT无法使用的原因及解决办法
- centos下安装tessrect-ocr及训练工具问题分析及解决办法
- AspectJ使用过程中问题及解决办法
- Android Xutils框架使用问题及解决办法
- Jenkins使用中的一些问题及解决办法
- android studio使用问题及解决办法汇总
- Android常用的四种布局(或者说是五种)
- 一个简单的Web标签页
- 226. Invert Binary Tree
- 如何注册Mathmatica 11
- <转>Framebuffer device驱动程序
- 使用opencv训练问题及解决办法
- 1107
- Java编写一个程序,获取10个1~20的随机数.要求随机数不能重复.
- openCV任意几何形状感兴趣区域(ROI)提取
- 高手详解SQL性能优化十条经验
- Win7 64bit 安装AutoCAD 2008
- 亲密爱人在哪里
- 1. 代码无错就是优? ---简单工厂模式(Simple Factory Pattern)
- GUI