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つの段階で十分である可能性があります。ここでの問題は、テストデータに対してどのように実行されるか、つまり、テストのトレーニングデータの代表であるか、それともより多くの(そしてより複雑な)トレーニングサンプルが必要かということです。そうでない場合は、完了です。おめでとうございます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加