簡體   English   中英

Python,OpenCV:無法使用opencv_traincascade進行自定義LBP級聯

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM