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