0

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

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

我尝试在opencv_traincacade.exe具有 16GB 内存的 Windows 计算机上使用以下参数运行: 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 和这里的建议(即这里这里),但建议的修复似乎没有帮助。尝试将 -numPos 减小到 80 并不能防止崩溃,并且缓冲区大小参数足够大。尝试将 -numNeg 减少到 < 427 在第一阶段有效,但在下一阶段崩溃,在训练的同一点(当它说NEG current samples: ...)在另一个数字上。

我可以采取哪些步骤来防止此崩溃并成功创建分类器?

4

1 回答 1

1

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

于 2016-06-02T19:01:13.980 回答