3

我使用检测算法在 100 张图像中检测到对象,每张图像正好包含 2 个真值,即每张图像包含 2 个对象。然后我添加了噪音并找到了最好的。我计算了检测结果和ground truth intArea的交集区域,以及联合区域unionArea = rectA + rectB - intArea。然后我打算使用这些比率来绘制 ROC 曲线如下:

init TP, FP as 100X1 array.
for threshold = 0..1, step = 0.01
    curIdx = 1;
    for each ratio(i), i = 1..100
        if ratio(i) > threshold then
           TP(curIdx) = TP(curIdx) + 1;
        else
           FP(curIdx) = FP(curIdx) + 1;
     end
end

然后我用TP/100作为Y轴值,TP/(TP+FP)作为X轴值来绘制ROC曲线。但结果不如预期:(我现在无法发布图片,因为我是新用户-_-) https://lh4.googleusercontent.com/-cuNKyobdV7E/UMkiJmrhTFI/AAAAAAAEQg/B5twqcZtlQA/s560/roc。 jpg

那么,有人会帮助我并告诉我我错在哪里吗?谢谢你们!

4

2 回答 2

1

VLFeat实现了一个非常简单的方法,可以在 Matlab 环境下绘制 ROC 曲线。请查看此链接:http ://www.vlfeat.org/overview/plots-rank.html

于 2013-01-02T07:44:43.407 回答
0

如果您想了解 ROC 图生成的内部原理,可以阅读Tom Fawcett 关于 ROC Graphs 的报告或他的 ScienceDirect 文章

如果您只想生成绘图而不涉及其技术细节,您可以使用Yard phyton 库ROCR R 包

于 2013-08-15T13:04:24.613 回答