6

我正在使用opencv 2.4.4,通過Mac OS X 10.7.5上的python 2.7.5安裝。Python,OpenCV:無法使用opencv_traincascade創建自定義LBP級聯

我想訓練級聯以尋找男性的正面。但是我得到了terminate called throwing an exceptionAbort trap: 6錯誤。我請SO社區幫我弄清楚可能會出現什麼問題。

負(背景)圖像是從谷歌採取:googleImages_noFaces(293個圖像)

陽性圖像從卡羅林斯卡數據庫採取:trainingSet(70個圖像)

我創建指示的文本文件背景圖像的相對位置:bgDesc.txt

我還創建了一個文本文件,指出圖像中的相對位置,正實例的數量(總是1)和對象的邊界區域(它是整個圖像) :maleDesc.txt

所有這些文件都可以從here下載。

文件的組織形式如下:

/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的不同值,分別爲30,60等等,最多293個。我嘗試使用numPos值小於numNeg值,甚至那些大於。我也嘗試了不同的-numStages值,如1,5,10,20和100,但在所有這些嘗試中,我都得到相同的錯誤。

我還沒有嘗試-minHitRate,-maxFalseAlarmRate,-weightTrimRate,-maxDepth,-maxWeakCount的不同值,因爲我不太瞭解它們是如何影響opencv_traincascade算法的行爲的。

任何幫助非常感謝:)

回答

2

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回答更多的澄清對哈爾和LBP培訓過程:https://stackoverflow.com/a/16834901/1463143

兩週,因爲錯字而浪費了50次獎勵:|

-3

我幫助編譯OpenCV的函數TBB how to do opencv_traincascade on Ubuntu

尺寸負像(寬度&高度)>陽性樣品

+0

謝謝你的鏈接。這是俄文版,我用谷歌翻譯,它有一個解釋類似[opencv doc for traincascade](http://docs.opencv.org/trunk/doc/user_guide/ug_traincascade.html)。我所嘗試的方法與文檔中提供的程序以及您分享的鏈接相同,但對我無效。但我不明白你評論的第一部分。你是否建議我用TBB編譯opencv? – samkhan13

+0

尺寸負片圖像(寬度和高度)>尺寸正片 – Airvikar

相關問題