2016-03-03 68 views
1

這是我第一次嘗試使用opencv的級聯訓練機制。我正在嘗試基於一個正面和負面圖像的小圖像集。我跟着instructions of the official opencv documentationOpenCV Traincascade.exe崩潰而不輸出

負圖像由描述文件bg.txt參考:

Negative/t1.jpg 
Negative/t2.jpg 
Negative/t3.jpg 

負圖像具有不同的大小(都在一個「1920×東西」像素範圍)。

的正面形象被用來生成

opencv_createsamples.exe -img Positive/p1.jpg -num 5000 -w 100 -h 60 -show -vec vecFile.vec 

一切至今工作沒有錯誤矢量文件。我猜想,矢量文件vecFile.vec由於存儲了5000張圖像而不可讀,這很正常。

當我現在想通過使用

opencv_traincascade.exe -data TrainData/ -vec vecFile.vec -bg bg.txt -w 100 -h 60 -npos 10 -nneg 10 

程序崩潰,沒有任何輸出應用級聯訓練(下稱「計劃已停止工作」)。任何想法爲什麼發生這種情況?我忘記了一些重要的參數嗎?

我使用的是Windows 10和OpenCV 3.

回答

0

當我試圖去年培訓的級聯,我有這個同樣的問題。我發現它非常消耗內存,所以如果您使用的5000張圖像以您所寫的大小(-w 100 -h 60)進行採樣,那麼您的PC可能會出現內存不足(或其他問題,例如堆大小限制) 。在我看來,trainscascade會將所有樣本數據放入RAM中進行訓練。

您可能不得不嘗試更小的尺寸,例如您提到的文檔示例-w 24 -h 24,並在小尺寸範圍內增加,直到尺寸良好但沒有崩潰。

+0

這真的好像修好了,非常感謝。有趣的是,在它崩潰之前,我有一個內存不足的異常(寫在控制檯輸出中)並且已經減少了。所以我沒想到這個問題仍然存在,因爲控制檯輸出不在那裏。 24 x 24聽起來很小:-) – user3419950