OpenCV Haar Classifier result table explanation

前端 未结 1 1597
一向
一向 2021-02-05 14:51

I am trying to create a Haar classifier to recognise objects however I can\'t seem to figure out what the results table that is produced at each stage stands for.

E.

相关标签:
1条回答
  • 2021-02-05 15:26

    Searching for "HR" in the OpenCV source leads us to this file. Lines 1703-1707 inside CvCascadeBoost::isErrDesired print the table:

    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;
    

    So HR and FA stand for hit rate and false alarm. Conceptually: hitRate = % of positive samples that are classified correctly as such. falseAlarm = % of negative samples incorrectly classified as positive.

    Reading the code for CvCascadeBoost::train, we can see the following while loop

    cout << "+----+---------+---------+" << endl;
    cout << "| N  | HR      | FA      |" << endl;
    cout << "+----+---------+---------+" << endl;
    
    do
    {
        [...]
    }
    while( !isErrDesired() && (weak->total < params.weak_count) );
    

    Just looking at this, and not knowing much about the specifics of boosting, we can make the educated guess that training works until error is low enough, as measured by falseAlarm.

    0 讨论(0)
提交回复
热议问题