什么是ROC曲线?

时间:2015-04-08 08:28:56

标签: computer-vision tracking roc

有人能够解释一下ROC曲线在测试序列中的实际代表性吗? ROC曲线的一个例子如下图所示。

enter image description here

1 个答案:

答案 0 :(得分:2)

对原始问题的评论包含一些非常有用的链接,用于理解一般的ROC曲线和所讨论的歧视阈值。以下是尝试理解OP使用的参考文献(参考文献1)以及特定于检测行人问题的更多信息。

如何在(参考文献1)中获得ROC曲线,以及在这种情况下的识别阈值是什么:

  1. 运动滤波器和外观滤波器(" f_i"在方程(2)第156页中)使用"积分图像"来自视频序列的各种时间/空间差异图像。

  2. 使用所有这些过滤器,学习算法构建最佳分类器((方程(1)第156页中的C),将正例(例如:行人)与负例分开(例如:选择非行人)例子 )。分类器C是特征F的阈值和,如公式1中给出的。 (1)。功能F是一个过滤器," f_i"由特征阈值" t_i"设定阈值。

  3. 在AdaBoost训练期间计算所涉及的阈值(即滤波器阈值," t_i"和分类器阈值" Theta"),选择具有最低加权误差的要素培训实例。

  4. 如在(参考文献2)中那样,使用这种分类器的级联来使检测器非常有效。在训练期间,级联增强分类器的每个阶段都使用2250个正例(图5中的例子,第158页)和2250个反例进行训练。

  5. 最终的级联检测器在验证序列上运行以获得真阳性率和假阳性率。这是基于将级联检测器的输出(例如,行人的存在或不存在)与基础事实(基于地面事实或视频序列的人工审查在相同区域存在或不存在行人)进行比较。对于整个级联的一组阈值(" t_i"和#34; Theta"在级联中的所有分类器上),获得某个真阳性率和假阳性率。这将在ROC曲线上做出一点。

  6. 可以在此处找到一个简单的MATLAB示例,用于测量一组给定的分类器输出和基本事实的真阳性率和误报率:http://www.mathworks.com/matlabcentral/fileexchange/21212-confusion-matrix---matching-matrix-along-with-precision--sensitivity--specificity-and-model-accuracy

  7. 因此,在这种情况下,ROC曲线上的每个点将取决于为所有级联层选择的阈值(因此在这种情况下,判别阈值不是单个数字)。通过一次调整这些阈值,真阳性率和假阳性率变化的输出值(当重复步骤5时)给出ROC曲线上的其他点。

  8. 对于动态和静态探测器两种情况都会重复此过程,以获得图中的两条ROC曲线。

  9. 请通过ROC上的此链接了解更多优秀的说明和示例:

    ROC曲线可用于比较分类器在区分类别时的性能,例如行人与非行人输入样本。 ROC曲线下面积用于衡量分类器区分类别的能力。

    引言来自:

    (参考文献1)P。Viola,MJ Jones和D. Snow,"使用运动和外观模式检测行人",国际计算机视觉杂志63(2),153-161, 2005. [在线:截至2015年4月] http://lear.inrialpes.fr/people/triggs/student/vj/viola-ijcv05.pdf

    (参考文献2)P。Viola和M. J. Jones,"使用增强级联的简单特征进行快速物体检测。在IEEE计算机视觉和模式识别会议上。有关更多信息,请访问Viola-Jones Algorithm - "Sum of Pixels"?