Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 计算ROC曲线验证分割算法的质量_Opencv_Image Processing_Machine Learning_Computer Vision_Pattern Recognition - Fatal编程技术网

Opencv 计算ROC曲线验证分割算法的质量

Opencv 计算ROC曲线验证分割算法的质量,opencv,image-processing,machine-learning,computer-vision,pattern-recognition,Opencv,Image Processing,Machine Learning,Computer Vision,Pattern Recognition,1) 假设我有一组100幅图像,从中我手动提取了前景和背景(地面真相) 2) 现在我有了一个分割算法,我将其应用于前面的数据集。结果取决于几个算法参数(假设我进行了颜色分割,因此结果取决于使用的不同颜色空间阈值)。分割的结果是一个二进制掩码 3) 因此,对于100幅图像中的每一幅,我都有一个基本事实和一个预测。我可以很容易地计算出每幅图像的混淆矩阵或所有图像的最终混淆矩阵 我的问题:如何计算ROC曲线 想法: a) 我想算法的每个参数都有一条ROC曲线。因此,我保持N-1参数不变,并在标准化的尺

1) 假设我有一组100幅图像,从中我手动提取了前景和背景(地面真相)

2) 现在我有了一个分割算法,我将其应用于前面的数据集。结果取决于几个算法参数(假设我进行了颜色分割,因此结果取决于使用的不同颜色空间阈值)。分割的结果是一个二进制掩码

3) 因此,对于100幅图像中的每一幅,我都有一个基本事实和一个预测。我可以很容易地计算出每幅图像的混淆矩阵或所有图像的最终混淆矩阵

我的问题:如何计算ROC曲线

想法:

a) 我想算法的每个参数都有一条ROC曲线。因此,我保持N-1参数不变,并在标准化的尺度[0,1]中改变另一个参数。因此,对于[0,1]中的每一个变化,我需要重新运行所有图像的分割,并计算TPR和FPR,这是ROC曲线中的一个点。但在这种方法中,我无法同时评估分类器的所有参数

b) 也许Roc曲线不是这种情况下的理想评估指标,我必须使用其他指标,例如F1分数


这是一个众所周知的问题,但在我的例子中,我无法计算图3所示的分数(如果我理解正确,它们似乎是一个指标,表明您对分类结果有多自信)。

首先,您需要定义不同分段之间的相似性度量。我认为,这不能在一般情况下定义,但很大程度上取决于对您来说重要的内容(大小、形状、面积、分段数等等)。但是你选择了混乱,这是一个很好的折衷方案

第二,ROC(接收器工作特性)曲线有其他替代品,如精度召回曲线或相同的比率,但我认为它们都希望显示I型和II型错误。我觉得ROC也不错

第三,分割算法中有多个参数。那该怎么办呢

我建议您计算所有可能的组合,然后为每个假阳性率(FPR)显示针对任何参数集获得的最大真阳性率(TPR)。简而言之:只需选择最好的(并记住参数)


然后,当您显示该ROC曲线时,对于每个FPR,您知道哪个参数集是最好的,并且您还可以获得这些参数集对FPR的依赖性。这意味着在每个FPR的TPR最大时,参数空间中有一条对应的曲线

您可以将每个混淆矩阵转换为0/1变量,并使用这些变量构建ROC。例如,如果给定图像的准确度超过0.5,则将该图像标记为1:“分类正确”,否则标记为0。