如何绘制由 TrainCascadeObjectDetector 生成的检测器的 ROC 曲线?
How to plot a ROC curve of a detector generated by TrainCascadeObjectDetector?
在我使用 TrainCascadeObjectDetector function of matlab you can see also here 的图像对象检测项目中,此函数使用 opencv train cascade 并用于训练一组图像(正面和负面):
正面:图像包含感兴趣的对象。
负片:图像不包含感兴趣的对象,但必须包含正片背景以便在训练后更加精确。
这个函数还需要一些参数:
-级联级数。
-真阳性率。
-误报率。
-负样本因子。
-对象训练大小。
-特征型(HOG,LBP,Haar).
我使用 HOG(定向梯度直方图),这个函数的结果是一个 .xml 文件:
trainCascadeObjectDetector(outputXMLFilename,positiveInstances,negativeImages)
我使用输出来定位图像中感兴趣的对象:
detector = vision.CascadeObjectDetector(XMLFILE)
所以我得到了一个检测器,我用它来绘制边界框:
BBOX = step(detector)
我想评估结果的性能,我发现可以绘制 ROC 曲线,here 我的问题。
ROC是真阳性率VS假阳性率曲线,所以需要TPR和FPR的值。
全局TPR和FPR是这样计算的:
TruePositiveRate^numberOfStages and FalseAlarmRate^numberOfStages
但它们只是 2 个值,并不是用来绘制曲线的。
我还尝试通过从这个 topic 进行二进制比较来获得 TPR 和 FPR,我通过比较我的地面实况图像和结果图像并采用最大 FPR 和 TPR 来做到这一点,现在我有 1 个 TPR 和 1 个 FPR最后阶段的整体形象。
如何从前面的阶段获得其他人?
我的图形用户界面:
ROC 是为参数化分类器定义的,其中影响 FPR/TPR 的每个连续参数都有自己的曲线。您可以通过重复选择不同的参数值来近似这条曲线,然后 运行 您的验证集通过您的分类器。
在我使用 TrainCascadeObjectDetector function of matlab you can see also here 的图像对象检测项目中,此函数使用 opencv train cascade 并用于训练一组图像(正面和负面):
正面:图像包含感兴趣的对象。
负片:图像不包含感兴趣的对象,但必须包含正片背景以便在训练后更加精确。
这个函数还需要一些参数:
-级联级数。
-真阳性率。
-误报率。
-负样本因子。
-对象训练大小。
-特征型(HOG,LBP,Haar).
我使用 HOG(定向梯度直方图),这个函数的结果是一个 .xml 文件:
trainCascadeObjectDetector(outputXMLFilename,positiveInstances,negativeImages)
我使用输出来定位图像中感兴趣的对象:
detector = vision.CascadeObjectDetector(XMLFILE)
所以我得到了一个检测器,我用它来绘制边界框:
BBOX = step(detector)
我想评估结果的性能,我发现可以绘制 ROC 曲线,here 我的问题。 ROC是真阳性率VS假阳性率曲线,所以需要TPR和FPR的值。 全局TPR和FPR是这样计算的:
TruePositiveRate^numberOfStages and FalseAlarmRate^numberOfStages
但它们只是 2 个值,并不是用来绘制曲线的。 我还尝试通过从这个 topic 进行二进制比较来获得 TPR 和 FPR,我通过比较我的地面实况图像和结果图像并采用最大 FPR 和 TPR 来做到这一点,现在我有 1 个 TPR 和 1 个 FPR最后阶段的整体形象。 如何从前面的阶段获得其他人?
我的图形用户界面:
ROC 是为参数化分类器定义的,其中影响 FPR/TPR 的每个连续参数都有自己的曲线。您可以通过重复选择不同的参数值来近似这条曲线,然后 运行 您的验证集通过您的分类器。