私の目標は、サイコロの特定の面を認識するようにカスケードをトレーニングすることです。
dice1.vec
params を使用して、opencv_createsamples によって106 個の生成されていないサンプルを vec ファイル (という名前) に変換しました-w 32 -h32
。negTxt1.txt
さらに、他のサイコロ面 (32x32 .png ファイル) を参照する約 420 行と、他の任意の 640x480 サイズの bg ファイルを参照する約 600 行を含むテキスト ファイルがあります。
opencv_traincacade.exe
16 GB の RAM を搭載した Windows コンピューターで、次のパラメーターを使用し
て実行しようとしました。tools\opencv_traincascade.exe -data positives/testclassifier -vec positives/1/dice.vec -bg positives/negTxt1.txt -numStages 20 -numPos 100 -numNeg 1000 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -acceptanceRatioBreakValue .0001 -w 32 -h 32 -mode ALL
ただし、負のサンプルを消費している間、プログラムは負のサンプルを消費しようとしてクラッシュし、クラッシュする前の最後の行はNEG current samples: 427
. 次に、「opencv_traincascade has stopped working...」というエラー ウィンドウが表示され、エラー メッセージは表示されません。
SO とここ (つまり、ここ、ここ) からの提案を見てきましたが、提案された修正は役に立たなかったようです。-numPos を 80 に減らしてもクラッシュは回避されず、バッファ サイズ パラメータは十分に大きいです。-numNeg を 427 未満に減らそうとすると、最初の段階ではうまくいきますが、次の段階NEG current samples: ...
で別の数でトレーニングの同じ時点で (それが と言うとき) クラッシュします。
このクラッシュを防ぎ、分類子を正常に作成するには、どのような手順を実行できますか?