2014-01-31 24 views
3

沒有發佈在stackoverflow中的問題已經提到了這種情況,因此這個問題已經發布。我正在訓練用於人臉檢測的haar級聯分類器。 fae數據由我生成。參數如下。Haar級聯分類器卡在無限循環中,在2個狀態之間交替。使用OpenCV(C++)

NUmber of positive samples = 2500 
Num pos: 2000 
Num neg: 2580 
Num stages: 14 
Num splits: 2 (tree as weak classifier) 
Mem: 1024 MB 
Symmetric: FALSE 
Min hit rate: 0.995000 
Max false alarm rate: 0.500000 
Weight trimming: 0.950000 
Equal weights: FALSE 
Mode: ALL 
Width: 25 
Height: 25 
Applied boosting algorithm: RAB 
Error (valid only for Discrete and Real AdaBoost): misclass 
Max number of splits in tree cascade: 3 
Min number of positive samples per cluster: 100 
Required leaf false alarm rate: 1.52588e-05 


Tree Classifier 
Stage 
+---+---+---+---+---+---+---+---+---+---+---+---+ 
| 0| 1| 2| 3| 4| 5| 6| 7| 8| 9| 10| 11| 
+---+---+---+---+---+---+---+---+---+---+---+---+ 

    0---1---2---3---4---5---6---7---8--10--12--14 
            |   | 
            |   15 
            |   | 
            |   16 
            | 
            9--11--13--17 
Parent node: 14 

*** 1 cluster *** 
POS: 669 2500 0.267600 
NEG: 863 5.50567e-05of 863 required, 15674000 images tested 
BACKGROUND PROCESSING TIME: 297.00 
Precalculation time: 0.00 
+----+----+-+---------+---------+---------+---------+ 
| N |%SMP|F| ST.THR | HR | FA | EXP. ERR| 
+----+----+-+---------+---------+---------+---------+ 
| 1|100%|-|-1.590536| 1.000000| 1.000000| 0.161227| 
+----+----+-+---------+---------+---------+---------+ 
| 2|100%|-|-3.158675| 1.000000| 1.000000| 0.180157| 
+----+----+-+---------+---------+---------+---------+ 
. 
. 
. 
. 
+----+----+-+---------+---------+---------+---------+ 
| 16| 6%|-|-13.162083| 0.995516| 0.805330| 0.353133| 
+----+----+-+---------+---------+---------+---------+ 
| 17| 14%|-|-24.674999| 0.997010| 0.877173| 0.266971| 
+----+----+-+---------+---------+---------+---------+ 
| 18| 0%|-|-13.163441| 0.995516| 0.805330| 0.353133| 
+----+----+-+---------+---------+---------+---------+ 
| 19| 14%|-|-24.676357| 0.997010| 0.877173| 0.266971| 
+----+----+-+---------+---------+---------+---------+ 
. 
. 
. 
. 

+----+----+-+---------+---------+---------+---------+ 
| 760| 0%|-|-13.667271| 0.995516| 0.805330| 0.341384| 
+----+----+-+---------+---------+---------+---------+ 
| 761| 14%|-|-25.180187| 0.997010| 0.877173| 0.267624| 
+----+----+-+---------+---------+---------+---------+ 
| 762| 0%|-|-13.668629| 0.995516| 0.805330| 0.341384| 
+----+----+-+---------+---------+---------+---------+ 
| 763| 14%|-|-25.181545| 0.997010| 0.877173| 0.267624| 
+----+----+-+---------+---------+---------+---------+ 
| 764| 0%|-|-13.669987| 0.995516| 0.805330| 0.341384| 
+----+----+-+---------+---------+---------+---------+ 
| 765| 14%|-|-25.182903| 0.997010| 0.877173| 0.267624| 
+----+----+-+---------+---------+---------+---------+ 
| 766| 0%|-|-13.671345| 0.995516| 0.805330| 0.341384| 
+----+----+-+---------+---------+---------+---------+ 

正如人們可以看到它在兩個狀態之間交替。最後,我必須殺死程序。現在我對這裏出了什麼問題感到無能爲力。

回答

0

我在1-1.5年前遇到同樣的問題,但我沒有設法解決它完全 - 只有部分。所以這裏有你的可能性(至少我知道的那些):

  • 殺死訓練程序並重新開始。它應該從最後完成階段繼續。有一個小小的機會(我不知道它是否能解決我的問題......),這將解決您的問題。
  • 殺死訓練程序,修改參數並重新開始。它將從上一步完成後繼續,但現在它將使用新參數,因此您可以更改點擊率和/或最大虛警率,並嘗試到有問題的階段(並且最有可能與其他左側階段也一樣)。當然你的分類器在開始訓練時會比你想要的要差一點,但至少它會有正確的階段數。

//編輯:
如果贏了,不能解決你的問題,可以考慮在問這個問題上http://answers.opencv.org/questions/ - 有更大的機會,你會得到直接從OpenCV的開發人員回答。