什么导致opencv_traincascade.exe在接收阴性样本时崩溃?

时间:2016-05-29 22:31:57

标签: java opencv opencv3.0 cascade-classifier

我的目标是训练一个级联来识别骰子的某个面部。

我有106个未生成的样本被opencv_createsamples转换为vec文件(名为dice1.vec),并带有参数-w 32 -h32。另外,我有一个文本文件negTxt1.txt,大约420行引用其他骰子面(32x32 .png文件),大约600行引用其他任意的640x480大小的bg文件。

我试图在Windows计算机上使用以下参数运行opencv_traincacade.exe,其内存为16GB: tools\opencv_traincascade.exe -data positives/testclassifier -vec positives/1/dice.vec -bg positives/negTxt1.txt -numStages 20 -numPos 100 -numNeg 1000 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -acceptanceRatioBreakValue .0001 -w 32 -h 32 -mode ALL

但是,在使用负样本时,程序会在尝试使用负样本时崩溃,而崩溃前的最后一行是NEG current samples: 427。然后错误窗口" opencv_traincascade已停止工作......"出现,没有错误消息。

我已经查看了SO和此处的建议(例如herehere),但建议的修复似乎没有帮助。尝试将-numPos减少到80并不能防止崩溃,并且缓冲区大小参数足够大。试图将-numNeg减少到< 427适用于第一阶段,但在下一阶段崩溃,在训练的同一点(当它显示NEG current samples: ...时)在另一个阶段崩溃。

我可以采取哪些措施来防止此次崩溃,并成功创建分类器?

1 个答案:

答案 0 :(得分:1)

似乎更新和使用OpenCV的3.1.0工具和库(来自他们的网站)解决了这个问题。