2014-11-17 16 views
7

Nesneleri tanımak için bir Haar sınıflandırıcısı oluşturmaya çalışıyorum ancak her aşamada üretilen sonuç tablosunun ne anlama geldiğini anlayamıyorum.OpenCV Haar Sınıflandırıcı sonuç tablosu açıklaması

E.g. 1

===== TRAINING 1-stage ===== 
<BEGIN 
POS count : consumed 700 : 700 
NEG count : acceptanceRatio 2500 : 0.452161 
Precalculation time: 9 
+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  1| 
+----+---------+---------+ 
| 2|  1|  1| 
+----+---------+---------+ 
| 3|  1|  1| 
+----+---------+---------+ 
| 4|  1|  1| 
+----+---------+---------+ 
| 5|  1| 0.7432| 
+----+---------+---------+ 
| 6|  1| 0.6312| 
+----+---------+---------+ 
| 7|  1| 0.5112| 
+----+---------+---------+ 
| 8|  1| 0.6104| 
+----+---------+---------+ 
| 9|  1| 0.4488| 
+----+---------+---------+ 
END> 

Ör

===== TRAINING 2-stage ===== 
<BEGIN 
POS count : consumed 500 : 500 
NEG count : acceptanceRatio 964 : 0.182992 
Precalculation time: 49 
+----+---------+---------+ 
| N | HR | FA | 
+----+---------+---------+ 
| 1|  1|  1| 
+----+---------+---------+ 
| 2|  1|  1| 
+----+---------+---------+ 

2 Ben N, HR ve FA Bu durumların her birinde atıfta ne emin değilim. Birisi neye katlandığını ve ne anlama geldiğini açıklayabilir mi?

cevap

11

OpenCV source'da "HR" için arama yapmak this dosyasını açar. Çizgiler 1703-1707 masaya baskı CvCascadeBoost::isErrDesired iç:

cout << "|"; cout.width(4); cout << right << weak->total; 
cout << "|"; cout.width(9); cout << right << hitRate; 
cout << "|"; cout.width(9); cout << right << falseAlarm; 
cout << "|" << endl; 
cout << "+----+---------+---------+" << endl; 

Yani İK ve FA isabet oranı ve yanlış alarm için durmak. Kavramsal olarak: hitRate = Doğru şekilde sınıflandırılan pozitif örneklerin% 'si. falseAlarm = Negatif örneklerin% 'si yanlış olarak pozitif olarak sınıflandırıldı. döngü

cout << "+----+---------+---------+" << endl; 
cout << "| N | HR  | FA  |" << endl; 
cout << "+----+---------+---------+" << endl; 

do 
{ 
    [...] 
} 
while(!isErrDesired() && (weak->total < params.weak_count)); 

Sadece bu bakıyor ve artırılması özellikleriyle ilgili pek bilmeden biz eğitim hatası kadar çalıştığını eğitimli bir tahmin yapabilirsiniz ederken CvCascadeBoost::train için kod okuma

, aşağıdaki görebilirsiniz falseAlarm tarafından ölçülen kadar düşük.

+0

Sadece% hakkında bir soru. '1' yazdırdığında, sırasıyla% 1 veya% 100 '0.7432'% 0.7 veya% 74 olur? – Colin747

+2

Burada 1, 100% ve 0.7432% 74.32% –

+0

Ön hesaplama zamanı nedir? dakika mı, saat mi? – speedious