[英]Python, OpenCV: unable to make custom LBP cascade using opencv_traincascade
我在mac os x 10.7.5上使用通過macports安裝的opencv 2.4.4和python 2.7.5。
我想訓練一個級聯來尋找男性正面。 但是我得到了terminate called throwing an exceptionAbort trap: 6
錯誤。 我要求SO社區幫我弄清楚可能出現的問題。
負面(背景)圖片來自谷歌:googleImages_noFaces(293張圖片)
正面圖像來自Karolinska數據庫:trainingSet(70圖像)
我創建了一個文本文件,指示背景圖像的相對位置:bgDesc.txt
我還創建了一個文本文件,指示相對位置,圖像中正實例的數量(始終為1)和對象的邊界區域(整個圖像):maleDesc.txt
所有這些文件都可以從這里下載。
文件的組織采用以下形式:
/trainingSet
image1.jpg
image2.jpg
.
.
.
/googleImages_noFaces
image1.jpg
image2.jpg
.
.
.
/cascadeFiles
maleDesc.txt
bgDesc.txt
當我使用opencv_createsamples時,使用以下行成功創建了maleDesc.vec
文件:
opencv_createsamples -vec maleDesc.vec -info maleDesc.txt -bg bgDesc.txt -num 70 -w 24 -h 24
如果我使用-show
參數我可以看到創建了24x24像素圖像。
然后我試試
opencv_traincascade -data cascadeFiles -vec maleDesc.vec -bg bgDesc.txt -numPos 70 - numNeg 293 -numStages 1 -precalcValBufSize 500 -precalcIdxBufSize 500 -featureType LBP -w 24 -h 24
這給了我一個錯誤。
我嘗試了不同的-numPos
值,例如10,20等等,最多70個,不同的-numNeg
值為-numNeg
等等,直到293.我嘗試使用小於numNeg值的numPos值甚至那些大於。 我也嘗試了不同的-numStages
值,如-numStages
和100,但在所有這些嘗試中我得到了相同的錯誤。
我沒有嘗試過-minHitRate,-maxFalseAlarmRate,-weightTrimRate,-maxDepth,-maxWeakCount的不同值,因為我真的不明白它們如何影響opencv_traincascade算法的行為。
任何幫助深表感謝 :)
terminate called throwing an exceptionAbort trap: 6
錯誤是由於拼寫錯誤。 我設法復制行為並在下面的代碼中驗證它
opencv_traincascade -data cascadeFiles -vec maleDesc.vec -bg bgDesc.txt -numPos 70 - numNeg 293 -numStages 1 -precalcValBufSize 500 -precalcIdxBufSize 500 -featureType LBP -w 24 -h 24
-
和numNeg
之間有一個空格應該是-numNeg
此外,即使樣本非常低,訓練也會進行,但numPos必須是numNeg的兩倍
請參閱此SO答案以獲得有關haar和lbp培訓流程的更多說明: https ://stackoverflow.com/a/16834901/1463143
由於輸入錯誤,兩周和50美元的聲譽被浪費了:|
我幫忙編譯OpenCV一個函數TBB 如何在Ubuntu上做opencv_traincascade
尺寸負像(寬度和高度)>陽性樣本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.