0

這是我第一次使用opencv的haartraining。OpenCV Haartraining不會永遠完成

僅供練習,我使用了35張正面圖像和45張負面圖像。

但是當我嘗試從數據到訓練,它不會永遠完成,

即使參數都極爲調整。

(分命中率= 0.001,最大的誤報率= 0.999

我不認爲它會佔用大量的時間,因爲這種極端值)

什麼一定是錯誤的,我的實驗?

這裏是我的命令和參數。

$opencv_haartraining -data Training -vec samples.vec -bg negatives.dat -nstages 2 -nsplits  2 -minhitrate 0.001 -maxfalsealarm 0.999 -npos 30 -nneg 40 -w 20 -h 20 -nonsym -mem 512 -mode  ALL -minpos 10 

並且結果。

Data dir name: Training 
Vec file name: samples.vec 
BG file name: negatives.dat, is a vecfile: no 
Num pos: 30 
Num neg: 40 
Num stages: 2 
Num splits: 2 (tree as weak classifier) 
Mem: 512 MB 
Symmetric: FALSE 
Min hit rate: 0.001000 
Max false alarm rate: 0.999000 
Weight trimming: 0.950000 
Equal weights: FALSE 
Mode: ALL 
Width: 20 
Height: 20 
Applied boosting algorithm: GAB 
Error (valid only for Discrete and Real AdaBoost): misclass 
Max number of splits in tree cascade: 0 
Min number of positive samples per cluster: 10 
Required leaf false alarm rate: 0.998001 
Stage 0 loaded 
Stage 1 loaded 
Stage 2 loaded 
Stage 3 loaded 
Stage 4 loaded 

Tree Classifier 
Stage 
+---+---+---+---+---+ 
| 0| 1| 2| 3| 4| 
+---+---+---+---+---+ 

    0---1---2---3---4 

Number of features used : 125199 

Parent node: 4 

*** 1 cluster *** 
POS: 30 32 0.937500 
+0

確實需要很長時間。嘗試使用較低寬度(15)和高度(15)的大量正(1000)和負(900)樣本。 – Saikat

回答

4

我正確地認爲你正在使用OpenCV_Haartraining?

如果是這樣,這是一個棄用的應用程序,你應該使用opencv_traincascades。

這將

- A. Speed up the time taken to classify 
- B. Have better support 

看到這些鏈接進一步閱讀 Training Vs TrainCascadeTrainCascade Wiki

編輯:

也,改變你的分命中率和maxFalseAlarm率。

我會建議使用0.4 & 0.95的東西來開始。

這樣做的原因是,如果有的話,它將永遠需要0.999 & 0.0001。

+0

正如你所說,我正在使用opencv_haartraining – winnerrrr

+0

,opencv_traincascade確實有效!謝謝! – winnerrrr

+0

如何區分處於無限循環和程序中的程序? –

2

這是正常現象。參考this tutorial和我自己的經驗,這種培訓通常需要幾天甚至一週的時間。從教程引用:

FYI:我建議你到不同的東西 工作haartrainig同時,因爲你必須在訓練中等待了這麼多天(它 將可能需要一週)。我通常試驗如下:1.在週五運行 haartraining 2.完全忘記它3.下週五在 上查看結果4.運行另一個haartraining(循環)。

+0

如何區分處於無限循環的程序和程序? –