Once you have a *.xml file that you created from training the classifier then you can test the performance of that classifier cascade against your prositive test or you could create a validation test set to test performance against. OpenCV comes with a built in performance utility
C:\OpenCV2.2\bin>opencv_performance.exe -data "C:\My Documents\HaarClassifier\haarcascade\haarcascade.xml" -info "C:\My Documents\Positive Test Set\positivesoutput.txt"
Explanation of the code above:
opencv_performance.exe is a utility distributed with the OpenCV library. This is usually contained int the “bin” folder in the directory you installed OpenCV.
ex. C:\OpenCV2.2\bin
Below are the options available for this utility as well as what the defaults are.
C:\OpenCV2.2\bin>opencv_performance.exe Usage: opencv_performance.exe -data <classifier_directory_name> -info <collection_file_name> [-maxSizeDiff <max_size_difference = 1.500000>] [-maxPosDiff <max_position_difference = 0.300000>] [-sf <scale_factor = 1.200000>] [-ni] [-nos <number_of_stages = -1>] [-rs <roc_size = 40>] [-w <sample_width = 24>] [-h <sample_height = 24>]
-ni – If specified it will not output the resultant image files with detections. If NOT specified it WILL create a new image for every image it opens and it will save it as det-[image filename] and it will contain boxes around the positive detections.
A small excerpt from the performance output:
+================================+======+======+======+ | File Name | Hits |Missed| False| +================================+======+======+======+ | 20100627_001220_1024_0193.jpg| 0| 1| 19| +--------------------------------+------+------+------+ | 20100627_002044_1024_0193.jpg| 1| 0| 16| +--------------------------------+------+------+------+ | 20100627_004432_1024_0193.jpg| 1| 0| 17| +--------------------------------+------+------+------+ | 20100627_005956_1024_0193.jpg| 1| 0| 20| +--------------------------------+------+------+------+ | 20100627_010132_1024_0193.jpg| 1| 0| 16| +--------------------------------+------+------+------+ | 20100627_011308_1024_0193.jpg| 0| 1| 22| +--------------------------------+------+------+------+ | 20100627_014044_1024_0193.jpg| 1| 0| 21| +--------------------------------+------+------+------+ | 20100627_015444_1024_0193.jpg| 1| 0| 18| +--------------------------------+------+------+------+ | 20100627_015956_1024_0193.jpg| 1| 0| 17| +--------------------------------+------+------+------+ | 20100627_021220_1024_0193.jpg| 1| 0| 18| +--------------------------------+------+------+------+ | 20100627_021932_1024_0193.jpg| 1| 0| 18| +--------------------------------+------+------+------+ ... ... +--------------------------------+------+------+------+ | Total| 1009| 352| 10532| +================================+======+======+======+ Number of stages: 18 Number of weak classifiers: 98 Total time: 9.734000 18 41 93 0.431579 0.978947 41 93 0.431579 0.978947 41 93 0.431579 0.978947 39 38 0.410526 0.400000 38 28 0.400000 0.294737 38 22 0.400000 0.231579 34 16 0.357895 0.168421 ... ...
For metrics and data analysis this can be very helpful as it will not only give you the performance but also the number of stages the classifier used and the number of weak classifiers used in this cascade.
This is an easy way of seeing your classifiers performance right away, and based on the results you can tell whether your classifier is really performing poorly (No Hits and/or Alot of False Hits). If this is the case it would be best to start the process over and maybe get more positive and negative training samples.
Example of image file created when I did not use the -ni option. (It will mark all the objects it calculates as”positive” areas, so hits and false hits will show up).
Tags: command prompt, Haar Classifier, haar training, opencv, thesis
Hi,
can you please explain me the output of the performance.exe? What does the second part mean?
41 93 0.431579 0.978947
41 93 0.431579 0.978947
41 93 0.431579 0.978947
Those are the values that can be used for a ROC plot graph. Its a way of showing the sensitivity and specificity of your classifier.
For example:
[Hits] [False Alarms] [True Positive Rate (TPR)] [False Positive Rate (FPR)]
41 93 0.431579 0.978947
ROC Plots
Hope this helps!
My results show as follows:
+================================+======+======+======+
| File Name | Hits |Missed| False|
+================================+======+======+======+
|3_28-3-326-348_20021120143759.bm| 0| 1| 0|
+——————————–+——+——+——+
| face02425.bmp| 0| 1| 0|
+——————————–+——+——+——+
| face02426.bmp| 0| 1| 0|
+——————————–+——+——+——+
| face02427.bmp| 0| 1| 0|
+——————————–+——+——+——+
| face02428.bmp| 0| 1| 0|
+——————————–+——+——+——+
| face02429.bmp| 0| 1| 0|
+——————————–+——+——+——+
| GULF_159.bmp| 0| 1| 0|
+——————————–+——+——+——+
| GULF_160.bmp| 0| 1| 0|
+——————————–+——+——+——+
| GULF_161.bmp| 0| 1| 0|
+——————————–+——+——+——+
| GULF_162.bmp| 0| 1| 0|
+——————————–+——+——+——+
| GULF_163.bmp| 0| 1| 0|
+——————————–+——+——+——+
| GULF_164.bmp| 0| 1| 0|
+——————————–+——+——+——+
| Total| 0| 12| 0|
+================================+======+======+======+
Number of stages: 7
Number of weak classifiers: 82
Total time: 0.017000
7
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
0 0 0.000000 0.000000
Can you tell me why this case happens?
Can you tell me the format of the file “positivesoutput.txt”?
Whether the format is “face02407.bmp 1 0 0 20 20”?
yes,how to modify
hi!
using the performance.exe with the parameter “-ni” works out just fine, but when I also want to save the images, I get an error saying “could not save the image”. I didn’t compile the performance.exe by myself, so I cannot debug it -could you upload a working performance.exe for me somewhere and share the link? that would be just great !!
Thank you,
Tony
Can any one tell me the positiveoutput.txt file format????
thanks