【问题标题】:Opencv_traincascade - After 5 stages - Train dataset for temp stage can not be filled. Branch training terminatedOpencv_traincascade - 5 个阶段后 - 无法填充临时阶段的训练数据集。分行培训终止
【发布时间】:2016-07-05 08:13:35
【问题描述】:

我查看了this answer,它指出当使用不同于Opencv_createSamples 的工具创建负片图像的描述文件时,可能会出现此问题,但这里不是这种情况。

中断发生在第四和第七阶段之间。在另一篇文章中,有人提出这个消息意味着分类器无法改进,但只有 5 个阶段,至少是奇怪的。

对于训练,我使用numPos=800,而 vec 文件 (60x60 px) 包含 1200 个正样本。此外,我使用了 1491 个负样本(30x30 像素)。我对参数进行了各种更改,但都没有奏效。

最后一次尝试我使用的参数如下:

cascadeDirName: 15stages
vecFileName: pos.vec    
bgFileName: neg_dir.txt

numPos: 800
numNeg: 1491
numStages: 15

precalcValBufSize[Mb] : 1024
precalcIdxBufSize[Mb] : 1024

acceptanceRatioBreakValue : -1
stageType: BOOST
featureType: HAAR
sampleWidth: 60
sampleHeight: 60
boostType: GAB
minHitRate: 0.9999
maxFalseAlarmRate: 0.3
weightTrimRate: 0.9
maxDepth: 1
maxWeakCount: 100
mode: ALL

【问题讨论】:

  • 你应该在另一个 stackexchange 网站上发布这个 - 更面向 ML
  • 欢迎使用 Stack Overflow!我编辑了您问题的格式,使其更具可读性,将您在搜索解决方案时遇到的其他帖子链接起来可能会有所帮助。
  • 你所说的“更面向 ML”是什么意思?!?抱歉,我有点迷路了……

标签: opencv3.0 training-data haar-classifier cascade-classifier


【解决方案1】:

我之前也有这个问题。但是在我减少参数 [maxFalseAlarmRate] 之后,就像设置小于 0.1 一样,它工作正常。希望这能有所帮助。

【讨论】:

    【解决方案2】:

    我也遇到了同样的问题,经过大量研究后,我得到了应该提供给 opencv_traincascade 的最佳参数。

    如果您使用的是矩形图像,请指定 -w 24 -h 24,此外请确保您的正数多于负数并将 -maxFalseAlarmRate 设置为 0.5。

    这对我很有效,希望对你也有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 2017-07-27
      • 2012-04-12
      相关资源
      最近更新 更多