0

我想训练一个 LBP 分类器。我有 103 个正样本和 500 个负样本。我使用了几乎默认值,除了-featureType LBPand -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?
  • 我是否在参数或输入数据方面犯了任何错误?
4

1 回答 1

1

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

于 2013-11-28T17:22:10.190 回答