常见指标 Iou,dice,accuracy,recall,sensitivity,precision,F1-score,specificity 图解以及计算代码

本文详细介绍了图像分割任务中常见的性能评价指标,包括IOU、Dice系数、F1-score等,并提供了具体的计算方法及Python代码实现。

指标解释

开始之前需要了解混淆矩阵的知识。另外我还在公式中添加了1e-7作为分子。原因为了避免代码中出现分子为0的情况。本次介绍时,直接写到公式里面。

混淆矩阵如图,如何看呢?在进行图像分割时
比如某个像素点,我们预测为类别P ,真实情况是类别P。那么这个像素点的情况就是“一个预测正确的P”,记为TP (True Positive)
比如某个像素点,我们预测为类别P ,真实情况是类别N。那么这个像素点的情况就是“一个预测错误的P”,记为FP (False Positive)
其他(FN,TN)同理。

将混淆矩阵放到真实图像中,就是这样的情况。
如图是一张图片的情况,GT就是我们数据集图片标注的区域,predict就是我们模型预测出的区域。

predict与GT一定存在差异,这些差异需要依靠评价指标来衡量。不同的评价指标对不同方向的差异有不同侧重点。
下面介绍评价指标:

IOU,Jaccard index

IOU(Intersection over Union)即交并比,顾名思义,即交集与并集的比值。在图像分割中,我们就计算 GT,Predict的交集与并集的比值。

很多论文还会说的杰卡德指数(Jaccard index),其实就是交并比。

混淆矩阵 公式 公式图解

Dice coefficient,F1-score

网上有很多关于这两个指标的计算,其实就是同一个计算(不服请推导)。

F1-score是为了能够评价不同算法的优劣,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。F1-score(均衡平均数)是综合考虑了模型查准率和查全率的计算结果,取值更偏向于取值较小的那个指标。F1的定义如下:

Dice 系数,也称为 F1 分数,是两个集合之间重叠的度量,范围为 0 到 1。值为 1 表示完全重叠,而 0 表示没有重叠。
dice损失,和dice系数(dice coefficient)的关系是:dice loss = 1-dice coefficient。
这个指标很常见,用的频次比 IOU 还多,主要有:

  1. Dice 系数广泛用于评估图像分割模型的性能,因此使用 Dice 损失有助于优化该指标的模型

  2. Dice 损失可以处理类别不平衡,这通常是医学图像分割中的一个问题,其中某些类别可能比其他类别更普遍。

  3. Dice 损失是可微的,这使得它可以与基于梯度的优化算法结合使用。

混淆矩阵 公式 公式图解

Accuracy

accuracy指的是正确预测的样本数占总预测样本数的比值,它不考虑预测的样本是正例还是负例。如果在代码中只考虑正样本,可以在公式中去掉分子tn。

混淆矩阵 公式 公式图解
### MM-Detection 模型的精确率、召回率和 F1-Score 计算方式 在目标检测任务中,MM-Detection 模型的评估指标主要包括精确率(Precision)、召回率(Recall)和 F1-Score。这些指标用于衡量模型对不同类别目标的检测性能。 #### 精确率(Precision) 精确率是衡量模型预测为正类的样本中有多少是真正类的比例。公式如下: \[ \text{Precision} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Positives}} \] 其中: - True Positives (TP):模型正确预测为目标的样本数。 - False Positives (FP):模型错误预测为目标的样本数。 在 MM-Detection 中,可以通过设置 IoU 阈值来判断预测框是否与真实框匹配[^1]。 #### 召回率(Recall) 召回率是衡量模型能够找到所有实际正类样本的比例。公式如下: \[ \text{Recall} = \frac{\text{True Positives}}{\text{True Positives} + \text{False Negatives}} \] 其中: - True Positives (TP):模型正确预测为目标的样本数。 - False Negatives (FN):模型未能预测为目标但实际上是目标的样本数。 召回率反映了模型对目标检测的覆盖能力[^1]。 #### F1-Score F1-Score 是精确率和召回率的调和平均值,综合了两者的表现。公式如下: ```math F1 = 2 \cdot \frac{\text{Precision} \cdot \text{Recall}}{\text{Precision} + \text{Recall}} ``` F1-Score 的取值范围为 [0, 1],值越高表示模型性能越好。在 MM-Detection 中,通常通过计算每个类别的 PrecisionRecall 来得到 F1-Score,并进一步计算加权平均或宏平均以评估整体性能。 #### 示例代码 以下是一个简单的代码示例,展示如何使用 Python 和 `sklearn.metrics` 计算 PrecisionRecallF1-Score: ```python from sklearn.metrics import precision_score, recall_score, f1_score # 假设这是真实的标签和预测结果 y_true = [0, 1, 2, 0, 1, 2, 0, 2, 1] y_pred = [0, 1, 1, 0, 1, 2, 0, 1, 2] # 计算 Precision precision = precision_score(y_true, y_pred, average='macro') # 计算 Recall recall = recall_score(y_true, y_pred, average='macro') # 计算 F1-Score f1 = f1_score(y_true, y_pred, average='macro') print(f"Precision: {precision}") print(f"Recall: {recall}") print(f"F1-Score: {f1}") ``` #### 评估指标计算方法 在 MM-Detection 中,评估指标通常基于 COCO 数据集的标准进行计算。具体步骤包括: 1. **IoU 阈值**:设定 IoU 阈值(如 0.5)来判断预测框与真实框是否匹配。 2. **分类阈值**:设定分类置信度阈值(如 0.5)来过滤低置信度的预测。 3. **多类别处理**:分别计算每个类别的 PrecisionRecallF1-Score,再进行加权平均或宏平均[^3]。
评论 11
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值