opencv_traincascade无法找到正样本

时间:2014-09-16 02:12:16

标签: opencv

我知道这已被要求死亡,但我已经按照每个环节和解决方案无效。我正在训练一个带有10个原始正面图像的级联,并从每个图像创建200个样本。我有54​​4个底片。根据这个:How to train cascade properly,它应该有效,但是在开始第一阶段之前我失败了。我尝试过增加/减少原始样品以及制作了多少新样品,但它没有什么区别。

PARAMETERS:
cascadeDirName: classifier
vecFileName: samples.vec
bgFileName: negatives.txt
numPos: 1800
numNeg: 544
numStages: 13
precalcValBufSize[Mb] : 2048
precalcIdxBufSize[Mb] : 2048
stageType: BOOST
featureType: HAAR
sampleWidth: 24
sampleHeight: 34
boostType: GAB
minHitRate: 0.999
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: ALL

===== TRAINING 0-stage =====
<BEGIN
POS OpenCV Error: Bad argument (Can not get new positive sample. The most possible reason is insufficient count of samples in given vec-file. 

关于这个话题的大量冲突使我的困惑更加复杂,例如这篇文章http://abhishek4273.com/2014/03/16/traincascade-and-car-detection-using-opencv/指出应该有更多的消极而不是积极,而第一个链接则相反。

1 个答案:

答案 0 :(得分:0)

根据您的问题,我可以理解两种不同的情况:

  1. 您有2000个样本。如果是这种情况并且numPos是1800,那么您使用了太多的正样本,并且可能无法填充每个阶段。

  2. 您已经放入了创建样本功能200.结果就是200个样本。因此,当算法尝试从.vec文件中读取新行时,它会失败,因为只有200而不是1800.

  3. 我建议在执行createsamples函数时,在cvShowVecSamples函数之后使用,以便确定您拥有多少个样本。

    我为我的英语道歉,因为它不是我的第一语言,我希望我的答案将有助于解决您的问题。