我使用Windows 7上的vs2010構建了源代碼(OpenCV 2.4.0)中的opencv_traincascade.exe工具。我想訓練一個LBP分類器,因此我使用opencv_traincascade.exe以下參數錯誤「無法填充臨時舞臺的訓練數據集。」同時使用OpenCV的traincascade工具
-data D:\OpenCV\Classifiers\lbpclassifier1\temp\data -vec D:\OpenCV\Classifiers\lbpclassifier1\temp\samples.vec -bg D:\OpenCV\Classifiers\lbpclassifier1\temp\negative\infofile.txt -numPos 40 -numNeg 40 -precalcIdxBufSize 500 -precalcValBufSize 500 -stageType BOOST -featureType LBP -w 24 -h 24
的錯誤消息,我得到的是:
PARAMETERS:
cascadeDirName: D:\OpenCV\Classifiers\lbpclassifier1\temp\data
vecFileName: D:\OpenCV\Classifiers\lbpclassifier1\temp\samples.vec
bgFileName: D:\OpenCV\Classifiers\lbpclassifier1\temp\negative\infofile.txt
numPos: 2
numNeg: 40
numStages: 20
precalcValBufSize[Mb] : 500
precalcIdxBufSize[Mb] : 500
stageType: BOOST
featureType: LBP
sampleWidth: 24
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 2 : 2
Train dataset for temp stage can not be filled. Branch training terminated.
這個問題已經被問過:Error while using opencv_train cascade 和解決方案建議有即。使正面和負面樣本的數量相等,在這種情況下不起作用。
我認爲這個錯誤可能與此錯誤有關:http://code.opencv.org/issues/1834 因此,我從該頁面下載了最新版本的imagestorage.cpp,並重新構建了opencv_traincascades工具。 此外,.vec文件中的示例總數爲45.因此,如comment中所建議的,我已將numPos參數更改爲2,以便我不會用完.vec文件中的示例。 .vec文件中的樣本數爲45.
任何幫助都非常感謝。謝謝。
嗨。我不明白這是如何幫助的。我應該從不同的來源獲得一些庫嗎?有沒有可以應用的補丁?我正在運行opencv 2.4.10版本,當它到達階段3時,在訓練中我得到了這個錯誤。 – 2015-01-16 02:34:31
您可以基本上以調試和發佈模式構建您的應用程序。您獲得的庫通常是爲發佈而構建的,因此您也需要構建應用程序以進行發佈。但是,由於在第3階段發生錯誤,這可能是另一個錯誤。我建議你獲得opencv源代碼,並調試整個事情,以檢查什麼是錯的。 – xeed 2015-01-16 10:12:11