我的目標是訓練級聯以識別骰子的某個面。什麼是導致opencv_traincascade.exe崩潰時採取負樣本?
我有106個非生成樣本通過opencv_createsamples轉換成vec文件(名爲dice1.vec
),參數爲-w 32 -h32
。另外,我有一個文本文件negTxt1.txt
,其中420行指向其他骰子面(32x32 .png文件),大約600行指向其他任意640x480大小的bg文件。
我試圖在Windows計算機上使用的RAM和16GB運行opencv_traincacade.exe
具有以下PARAMS: 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停止工作...」,並且沒有錯誤信息。
我已經看過來自SO和這裏的建議(即here,here),但建議的修復似乎沒有幫助。嘗試將-numPos減少到80並不能防止崩潰,並且緩衝區大小參數足夠大。試圖減少-numNeg到< 427適用於第一階段,但在下一階段崩潰,在訓練中的同一點(當它說NEG current samples: ...
)在另一個階段崩潰。
我能做些什麼來防止這種崩潰,併成功創建分類器?
你有哪些OpenCV版本?我對2.4.8感到不安,並且會更新到2.4.13或3.1並再試一次。 –
我不記得,但它最有可能是最新的穩定的2.x版本。 –