关于这两个曲线的概念可以看wiki
http://en.wikipedia.org/wiki/ROC_curve roc
http://en.wikipedia.org/wiki/Precision_and_recall precision
recall 翻译为召回,或者叫做查全率,我理解叫做调出率更好。
ap就是平均正确率,average precision,还有map,mean ap,宏平均正确率
这里主要涉及如何画这两个曲线。
opencv中的例子,生成的是plt文件,这个文件可以用gnuplot来运行。
gnuplot的使用可以看
http://t16web.lanl.gov/Kawano/gnuplot/intro/working-e.html
例子已经生成了plt文件。
只要通过 gnuplot < **。plt就可以了。例子中的输出是一个png文件,一开始还以为会跳出一个窗口,后来看了plt文件才明白,输出的是一个png文件,在当前目录下。plt文件可以用记事本打开看。
bows例子中这个曲线是怎么产生的呢?
大致步骤如下:1)计算每个图像的confidence,2)计算每个类的precision/recall 3) 生成plt文件。
最后 如果要对数据进行更多的处理,可以打开vocabulary。xml文件。
例子中默认内存大小是200M,大概用了30%的图片和中的30%的特征向量。识别结果,ap低的可怜。
我设置为2000M,结果在left 2153个图片处出错了。。没提示信息,自动退出。debug 跟踪提示是内存定位错误,估计是内部不够引起的。而且出错了重头开始有要重新计算sift特征。很是不效率。而且后面计算图像描述的时候还是要计算sift特征。如果可以从文件中读,就好多了。。接下去就做这个改进吧。否则实验做不下去了。电脑和大牛的不能比啊。