【问题标题】:Open CV traincascade gets stuck with a Hit rate of 1 and a False alarm rate of 0Opencv train cascade 的命中率为 1,误报率为 0
【发布时间】:2013-10-24 16:35:29
【问题描述】:

我想训练一个 LBP 分类器。我有 103 个正样本和 500 个负样本。我几乎使用了默认值,-featureType LBP-numPos 88 除外。

opencv_traincascade -data "$NAME"_Output \
                    -vec "$NAME".vec \
                    -bg "$NAME"_Negative.txt \
                    -numPos 88 \
                    -numNeg 500 \
                    -numStages 20 \
                    -stageType BOOST \
                    -featureType LBP \
                    -w 32 \
                    -h 48 \
                    -bt GAB \
                    -minHitRate 0.995 \
                    -maxFalseAlarmRate 0.5 \
                    -weightTrimRate 0.95 \
                    -maxDepth 1 \
                    -maxWeakCount 100

在第 1 阶段获得完全命中率和零误报率后,分类器卡在第 2 阶段。我尝试使用 numPos、numNeg 和 bt 参数,但总是得到大致相同的结果。

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   88 : 88
NEG count : acceptanceRatio    500 : 1
Precalculation time: 1
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|    0.046|
+----+---------+---------+
END>

===== TRAINING 1-stage =====
<BEGIN
POS count : consumed   88 : 88
NEG count : acceptanceRatio    500 : 0.0456038
Precalculation time: 0
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        0|
+----+---------+---------+
END>

===== TRAINING 2-stage =====
<BEGIN
POS count : consumed   88 : 88

我对此知之甚少,但我的猜测是它在第 1 阶段之后完成,但它仍在尝试再生成 18 个阶段。我的数据集非常简单,正面应该都非常相似,而负面图像大小相同。

  • 是否可以有一个只有 2 个阶段的分类器? (阶段 0 和阶段 1)
  • 以前有没有人使用过 LBP 分类器,还是我应该坚持使用 HAAR?
  • 我的参数或输入数据有错误吗?

【问题讨论】:

    标签: c++ opencv computer-vision


    【解决方案1】:

    取决于您的训练数据。如果区分正负数据真的很简单,那么很可能两个阶段就足以完成这项工作。现在的问题是,它在测试数据上的表现如何,即您的训练数据是否代表测试,或者您是否需要更多(和更复杂)的训练样本。如果没有,你就完成了。恭喜。

    【讨论】:

    • 是的——我的数据很简单。我在想它可能只需要 2 个阶段就可以训练好,但我希望对 Open cv 有足够的信心来确定是这种情况还是它已经坏了。令人沮丧的是,程序没有意识到它已经完成。谢谢你的回答:)
    猜你喜欢
    • 1970-01-01
    • 2019-07-31
    • 2015-02-14
    • 1970-01-01
    • 2018-10-15
    • 2015-07-15
    • 2016-11-10
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多