实例分割指标详解


实例分割的准确率和召回率计算方法类似于图像分类和目标检测中的计算方法,但由于实例分割涉及对每个像素的预测,计算会更加细致。 通常,实例分割的性能评价基于像素级别的准确率和召回率,以及目标级别的准确率和召回率。

实例分割指标详解

一、像素级别的准确率和召回率

  • 准确率 (Precision)
    Precision = TP TP + FP \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} Precision=TP+FPTP
    其中,TP(True Positives)是真正的正例像素数,即被正确分类为前景的像素数。FP(False Positives)是假正例像素数,即被错误分类为前景的背景像素数。

  • 召回率 (Recall)
    Recall = TP TP + FN \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} Recall=TP+FNTP
    其中,FN(False Negatives)是假负例像素数,即被错误分类为背景的前景像素数。

二、目标级别的准确率和召回率

对于实例分割中的目标级别评价,通常需要对每个实例进行匹配和比较。常用的评估指标包括Intersection over Union (IoU) 和基于IoU的准确率和召回率。

  • Intersection over Union (IoU)
    IoU = Area of Intersection Area of Union \text{IoU} = \frac{\text{Area of Intersection}}{\text{Area of Union}} IoU=Area of UnionArea of Intersection
    对于每个预测的实例,与真实标签进行匹配,计算其重叠区域与总区域的比值。

  • 准确率 (Precision)
    Precision = Number of correctly predicted instances Number of predicted instances \text{Precision} = \frac{\text{Number of correctly predicted instances}}{\text{Number of predicted instances}} Precision=Number of predicted instancesNumber of correctly predicted instances
    在这种情况下,正确预测的实例通常是指其IoU超过某个阈值(例如0.5)的实例。

  • 召回率 (Recall)
    Recall = Number of correctly predicted instances Number of ground truth instances \text{Recall} = \frac{\text{Number of correctly predicted instances}}{\text{Number of ground truth instances}} Recall=Number of ground truth instancesNumber of correctly predicted instances
    正确预测的实例定义同上。

三、示例计算

假设我们有以下混淆矩阵(基于像素级别):

Predicted PositivePredicted Negative
Actual PositiveTP (True Positives) = 1000FN (False Negatives) = 200
Actual NegativeFP (False Positives) = 50TN (True Negatives) = 4750

像素级别计算

  • 准确率:
    Precision = 1000 1000 + 50 = 1000 1050 ≈ 0.952 \text{Precision} = \frac{1000}{1000 + 50} = \frac{1000}{1050} \approx 0.952 Precision=1000+501000=105010000.952

  • 召回率:
    Recall = 1000 1000 + 200 = 1000 1200 ≈ 0.833 \text{Recall} = \frac{1000}{1000 + 200} = \frac{1000}{1200} \approx 0.833 Recall=1000+2001000=120010000.833

目标级别计算

假设有5个真实目标和6个预测目标,其中4个预测目标与真实目标的IoU > 0.5。

  • 准确率:
    Precision = 4 6 ≈ 0.667 \text{Precision} = \frac{4}{6} \approx 0.667 Precision=640.667

  • 召回率:
    Recall = 4 5 = 0.8 \text{Recall} = \frac{4}{5} = 0.8 Recall=54=0.8

四、实例分割的整体评估

在实例分割中,还可以使用更综合的指标,例如Mean Average Precision (mAP),它是多个IoU阈值下平均准确率的均值,能够更全面地反映算法的性能。

mAP

在实例分割任务中,mAP(mean Average Precision,平均精度均值)是评估模型性能的重要指标之一。计算mAP的过程通常包括以下几个步骤:

  1. 预测结果与真值匹配

    • 对于每张图片,模型会生成多个实例分割结果,每个结果包含一个分割掩码(mask)和一个置信度分数。
    • 将预测结果与真实标注的实例进行匹配,通常使用IoU(Intersection over Union,交并比)来衡量预测结果与真实标注之间的相似度。通常,IoU阈值(如0.5)被用来判断一个预测结果是否与真实标注匹配。
  2. 计算每个类别的Precision-Recall曲线

    • 对于每个类别,按照置信度分数对所有预测结果进行排序。
    • 计算Precision(精确率)和Recall(召回率):
      • 精确率(Precision)是指正确预测的正例占所有预测为正例的比例。
      • 召回率(Recall)是指正确预测的正例占所有实际正例的比例。
  3. 计算每个类别的AP(Average Precision,平均精度)

    • 根据Precision-Recall曲线,计算AP。AP是Precision-Recall曲线下的面积。
    • 一般使用插值法来计算AP,例如:在每个Recall点上,取该点及其右侧所有点的最大Precision值,然后计算这些点下的面积。
  4. 计算mAP

    • 对于所有类别的AP取均值,即为mAP。

具体的计算步骤如下:

  • 匹配预测与真值:对每个预测结果,根据IoU阈值与真实标注进行匹配,记录下True Positives(TP,真阳性)、False Positives(FP,假阳性)、False Negatives(FN,假阴性)。
  • 排序:按照置信度分数对预测结果排序。
  • 计算Precision和Recall
    Precision = T P T P + F P Recall = T P T P + F N \text{Precision} = \frac{TP}{TP + FP} \\ \text{Recall} = \frac{TP}{TP + FN} Precision=TP+FPTPRecall=TP+FNTP
  • 计算AP:根据Precision-Recall曲线计算AP,通常在不同的Recall阈值下进行计算。
  • 计算mAP:对所有类别的AP取均值。

在实例分割任务中,mAP的计算与目标检测中的mAP类似,但需要考虑的是每个实例的分割掩码而不仅仅是边界框。

PR曲线

Precision-Recall(PR)曲线是用于评估分类器性能的工具,特别适用于不平衡数据集。在实例分割任务中,PR曲线展示了不同阈值下的精确率(Precision)和召回率(Recall)。计算PR曲线的步骤如下:

  1. 收集预测结果和真值

    • 对每个实例分割结果,模型会输出一个置信度分数。
    • 根据IoU阈值(如0.5),将预测结果与真实标注进行匹配,记录下True Positives(TP,真阳性)、False Positives(FP,假阳性)、False Negatives(FN,假阴性)。
  2. 按置信度排序

    • 对所有预测结果按置信度分数从高到低排序。
  3. 计算Precision和Recall

    • 初始化TP、FP和FN计数器。
    • 逐一处理排序后的预测结果,更新TP、FP和FN计数器,并计算相应的Precision和Recall:
      Precision = T P T P + F P Recall = T P T P + F N \text{Precision} = \frac{TP}{TP + FP} \\ \text{Recall} = \frac{TP}{TP + FN} Precision=TP+FPTPRecall=TP+FNTP
  4. 绘制PR曲线

    • 将每个阈值下的Precision和Recall值绘制在图表上,形成PR曲线。
具体计算步骤:
  1. 初始化

    • 获取所有预测结果,记录其置信度分数及是否为TP或FP。
    • 计算总的正例数量(实际正例数量,即所有的TP + FN)。
  2. 排序

    • 根据置信度分数对预测结果从高到低进行排序。
  3. 逐一处理预测结果

    • 初始化TP、FP计数器为0。
    • 遍历排序后的预测结果,对于每个预测结果:
      • 如果是TP,TP计数器加1。
      • 如果是FP,FP计数器加1。
      • 计算当前的Precision和Recall,并记录下来。
  4. 插值计算AP(如果需要)

    • 根据插值法计算AP,在每个Recall点上取该点及其右侧所有点的最大Precision值,然后计算这些点下的面积。

(1)假设已经得出一系列样本被划分为正类的概率score值,按照大小排序。
(2)从高到低,依次将“score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个阈值时,我们认为它为正样本,否则为负样本。
(3)每次选取一个不同的阈值threshold,得到一组precision和recall,以recall值为横坐标、precision值为纵坐标,描点。
(4)根据(3)中的坐标点,绘制曲线。

示例:

假设有如下预测结果,按置信度分数排序:

置信度真实标签TP/FP
0.95正例TP
0.90负例FP
0.85正例TP
0.80正例TP
0.75负例FP
  1. 初始化:TP = 0, FP = 0, 总正例数量 = 3。
  2. 处理第一个预测结果(置信度0.95):TP = 1, FP = 0。
    Precision = 1 1 + 0 = 1.0 Recall = 1 3 = 0.33 \text{Precision} = \frac{1}{1+0} = 1.0 \\ \text{Recall} = \frac{1}{3} = 0.33 Precision=1+01=1.0Recall=31=0.33
  3. 处理第二个预测结果(置信度0.90):TP = 1, FP = 1。
    Precision = 1 1 + 1 = 0.5 Recall = 1 3 = 0.33 \text{Precision} = \frac{1}{1+1} = 0.5 \\ \text{Recall} = \frac{1}{3} = 0.33 Precision=1+11=0.5Recall=31=0.33
  4. 处理第三个预测结果(置信度0.85):TP = 2, FP = 1。
    Precision = 2 2 + 1 = 0.67 Recall = 2 3 = 0.67 \text{Precision} = \frac{2}{2+1} = 0.67 \\ \text{Recall} = \frac{2}{3} = 0.67 Precision=2+12=0.67Recall=32=0.67
  5. 处理第四个预测结果(置信度0.80):TP = 3, FP = 1。
    Precision = 3 3 + 1 = 0.75 Recall = 3 3 = 1.0 \text{Precision} = \frac{3}{3+1} = 0.75 \\ \text{Recall} = \frac{3}{3} = 1.0 Precision=3+13=0.75Recall=33=1.0
  6. 处理第五个预测结果(置信度0.75):TP = 3, FP = 2。
    Precision = 3 3 + 2 = 0.6 Recall = 3 3 = 1.0 \text{Precision} = \frac{3}{3+2} = 0.6 \\ \text{Recall} = \frac{3}{3} = 1.0 Precision=3+23=0.6Recall=33=1.0

将各个点的Precision和Recall值绘制成图,即为PR曲线。通过上述步骤,能得到不同阈值下的Precision和Recall,从而绘制出完整的PR曲线。

本课程适合具有一定深度学习基础,希望发展为深度学习计算机视觉方向的算法工程师和研发人员的同学们。基于深度学习计算机视觉是目前人工智能最活跃的领域,应用非常广泛,如人脸识别和无人驾驶中的机器视觉等。该领域的发展日新月异,网络模型和算法层出不穷。如何快速入门并达到可以从事研发的高度对新手和中级水平的学生而言面临不少的挑战。精心准备的本课程希望帮助大家尽快掌握基于深度学习计算机视觉的基本原理、核心算法和当前的领先技术,从而有望成为深度学习计算机视觉方向的算法工程师和研发人员。本课程系统全面地讲述基于深度学习计算机视觉技术的原理并进行项目实践。课程涵盖计算机视觉的七大任务,包括图像分类、目标检测、图像分割(语义分割、实例分割、全景分割)、人脸识别、图像描述、图像检索、图像生成(利用生成对抗网络)。本课程注重原理和实践相结合,逐篇深入解读经典和前沿论文70余篇,图文并茂破译算法难点, 使用思维导图梳理技术要点。项目实践使用Keras框架(后端为Tensorflow),学员可快速上手。通过本课程的学习,学员可把握基于深度学习计算机视觉的技术发展脉络,掌握相关技术原理和算法,有助于开展该领域的研究与开发实战工作。另外,深度学习计算机视觉方向的知识结构及学习建议请参见本人CSDN博客。本课程提供课程资料的课件PPT(pdf格式)和项目实践代码,方便学员学习和复习。本课程分为上下两部分,其中上部包含课程的前五章(课程介绍、深度学习基础、图像分类、目标检测、图像分割),下部包含课程的后四章(人脸识别、图像描述、图像检索、图像生成)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值