2014-10-09 142 views
1

我試圖訓練級聯分類器來檢測圖像中的鹿。問題是我的分類器在輸入圖像的直接中心總是返回一個正面命中。對於測試圖像,來自正集合的訓練圖像以及來自負集合的訓練圖像都是如此。OpenCV Traincascade返回垃圾

對於我的正面訓練集,我使用的是CIFAR-10數據集中的鹿圖像集(http://www.cs.toronto.edu/~kriz/cifar.html)。這給了我不同姿勢鹿的5000 32x32彩色圖像。對於負面訓練集,我使用Labelme12-50k數據集(http://www.ais.uni-bonn.de/download/datasets.html)中的圖像,該圖像爲我提供了39000個隨機圖像。我將所有這些圖像的大小調整爲32x32,以使尺寸與正面訓練集一致。

我然後創造的積極矢量用下面的命令:

./opencv_createsamples -info posFiles.txt -w 32 -h 32 -num 5000 -vec posVector.vec 

載體似乎是成功創建。

./opencv_traincascade -data /home/mitchell/ece492/Deerinator_Software/Deerinator_Software/trunk/Haar/data -vec posVector_5000.vec -bg negFiles.txt -numPos 4000 -numNeg 39000 -w 32 -h 32 -featureType LBP -numStages 18 

級聯分類大約需要5個小時的火車,並似乎有0.038負廢品率。然而,每當我使用的測試圖像上的分類:然後,我用命令的培訓我的級聯分類命令:

./c-example-facedect --cascade=cascade.xml img.png 

我總是得到相同的結果:在圖像中心單擊。這發生在測試圖像,來自正訓練集的圖像以及來自負訓練集的圖像。我不知道現在要做什麼 - 在這一點上,我只是使用opencv示例可執行文件。我不確定該過程是否與我的輸入訓練集或我對分類器的使用情況一致。任何人有任何建議?

回答

0

我認爲這失敗了,因爲圖片樣本太小。我認爲他們只是32乘32。那麼怎樣才能用於陽性樣本呢?如果我錯了,圖片實際上更大,那麼教我如何解開它們,我敢打賭,我可以讓它爲你運行。