2016-05-29 112 views
0

我的目標是訓練級聯以識別骰子的某個面。什麼是導致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: ...)在另一個階段崩潰。

我能做些什麼來防止這種崩潰,併成功創建分類器?

回答

1

看來,更新和使用OpenCV的3.1.0的工具和庫(從他們的網站)修復了這個問題。

+0

你有哪些OpenCV版本?我對2.4.8感到不安,並且會更新到2.4.13或3.1並再試一次。 –

+0

我不記得,但它最有可能是最新的穩定的2.x版本。 –