【问题标题】:opencv_traincascade fail to find positive samplesopencv_traincascade 找不到正样本
【发布时间】:2014-11-09 15:59:21
【问题描述】:

我知道这已经被问死了,但是我已经跟踪了每个链接和解决方案,但无济于事。我用 10 个原始正图像训练一个级联,并从每个图像中创建 200 个样本。我有 544 个底片。据此: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/ 指出负面多于正面,而第一个链接则相反。

【问题讨论】:

  • 尝试以 1500 pos 运行并告诉我是否可行

标签: opencv


【解决方案1】:

通过你的问题,我可以理解两种不同的情况:

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

  2. 您已在 createsamples 函数中输入了 200 个样本。结果将有 200 个样本。因此,当算法尝试从 .vec 文件中读取新行时,它会失败,因为只有 200 而不是 1800。

我建议你在执行 createsamples 函数时,在 cvShowVecSamples 函数之后使用,这样你就知道你有多少样本了。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-11
    • 2011-10-24
    • 2017-01-07
    • 2021-12-15
    • 1970-01-01
    • 2013-01-11
    • 2019-01-28
    • 1970-01-01
    相关资源
    最近更新 更多