3

所以我遇到了很多關於OpenCV的haartraining和級聯培訓工具的教程。特別是我有興趣使用createsamples工具來訓練一個汽車分類器,但是關於-w和-h參數的地方似乎存在衝突的聲明,所以我很困惑。 我指的命令:OpenCV正面樣本維度?

$ createsamples -info samples.dat -vec samples.vec -w 20 -h 20 

我有以下三個問題:

  • 據我瞭解,陽性樣品的縱橫比應該是一樣的縱橫比你從上面的-w和-h參數。但是,所有陽性樣本的-w和-h參數是否必須與大小相同?例如。我有近1000張圖片。他們都必須在種植後的大小相同嗎?

  • 如果它不是尺寸,但縱橫比是重要的,那麼與OpenCV工具中提到的-w和-h參數相比,正確樣本的縱橫比必須有多高精度匹配?我的意思是,分類器是非常敏感的,所以即使幾個像素在這裏和那裏會影響其性能?或者你會說,只要眼睛的比例大致相同,就可以安全地使用圖像。

  • 我已經裁剪幾個圖像到相同的大小。但爲了使它們的尺寸完全相同,其中一些包圍在邊框中的背景比其他一些更多,而另一些則具有略微不同的邊緣。 (例如,請參閱下面的兩張圖片:較大的汽車佔據了更多的圖像,但較小的汽車周圍有較寬的邊距)。我只是想知道是否有像這樣的圖像集合是好的,或者它會降低分類器的準確性,因此我應該確保圍繞所有感興趣的對象(在這種情況下是汽車)更緊的邊界框?

big carsmall car

+0

我只能評論說,有更好的汽車檢測方法比haar/LBP級聯更好。 – GilLevi

+0

嗯,我不能幫助,因爲我已經被僱用遵循這種方法,但是您認爲什麼是更好的方法呢? – user961627

+0

latent-svm-detector。你可以很快得到它,它會給出更好的結果。 – GilLevi

回答

3

第一個問題:是的,可以使用所有的圖像進行培訓已成爲大小相同。 (至少在最後一次我做了面部檢測樣本訓練,在這裏應該是一樣的,如果我沒有錯,如果圖像尺寸不一樣,會出現錯誤,但是你可以試試看看是否有時間許可證。)

第二個問題:不太確定你在這裏問什麼。但分類器並不像你想象的那樣敏感。距離感興趣的對象幾個像素,比如說手,如果小指缺少幾個像素(由於裁剪),並且其他圖像對於拇指缺少少許像素,則分類器將仍然是能夠檢測到手。因此,在這裏和那裏缺少幾個像素或添加了幾個背景像素,在一天結束時不會影響分類器。

第三個問題:您應該裁剪圖像以使其僅由最大效果組成。儘量消除儘可能多的背景。我做了一個基於具有嘈雜背景,黑色背景和最小背景裁剪樣本的樣本的研究。從我所記得的情況來看,在背景最小的情況下裁剪出的樣本在假陽性和假陰性方面顯示出最好的結果。

U可以使用對象標記來做到這一點:http://achuwilson.wordpress.com/2011/02/13/object-detection-using-opencv-using-haartraining/

繁瑣的方法是使用塗料來調整所有的圖像以相同的像素值裁剪後。

這個鏈接也應該回答你的問題:http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html

我也同意GilLevi有比較哈爾,豕,LBP級聯更好的檢測方法。培訓圖像可能需要數天時間(取決於訓練圖像的數量)。如果您真的需要使用級聯方法,並且您希望儘量減少訓練時間,那麼使用Haar-like特徵進行訓練比使用HoG或LBP需要更長的訓練時間。但結果明智,我不確定哪個能確保更好的性能和穩健性。

希望我的回答對你有幫助。如果還有更多問題,請發表評論。

+0

謝謝...我在這裏有另一個問題:http://stackoverflow.com/questions/21401827/building-positive-samples-for-rotated-images-for-cascaded-training- in-opencv,有什麼想法? – user961627

+0

當然。我看看......這裏的答案確實幫助你了嗎?它基於我在分類器培訓大約2年的經驗。 – rockinfresh

+0

哦,是的,絕對有幫助! – user961627