10.13日志__评估指标:mIoU(语义分割)、AP/APmask(实例分割)

一、mIoU(语义分割)

mIoU = mean Intersection over Union(平均交并比)
语义分割是给每个像素分类,比如这张图里哪些像素是“猫”、哪些是“狗”、哪些是“背景”。它不区分“第一只猫”和“第二只猫”,所有猫的像素都算“猫”这一类

IoU = 预测为猫 且 真实为猫 的像素数
      ─────────────────────────────────
      预测为猫 或 真实为猫 的像素数(并集)
IoU = TP / (TP + FP + FN)

直观理解:
IoU 范围 0~1,越大越好
mIoU = 0.5 意味着平均每个类别的预测区域和真实区域有一半重叠
每个类别权重相同,所以小类别(比如“行人”)和大类别(比如“天空”)一样重要
常见数据集:Cityscapes 上优秀模型 mIoU 约 80%+,PASCAL VOC 约 85%+

二、mIoU(语义分割)和 AP / APmask(实例分割 )对比

mIoU AP / APmask
任务 语义分割 实例分割
评估对象 每个像素的类别 每个物体实例
是否区分个体 否 是
核心计算 每类 IoU 再平均 P-R 曲线下面积
IoU 作用 直接作为指标 作为命中判定阈值
关注点 像素分类覆盖率 实例检测+分割质量
典型数据集 Cityscapes, VOC COCO, LVIS

APmask:每个物体画个 mask,按置信度排序,看在不同召回下精确率如何,算 P-R 曲线面积;用 mask 的 IoU 判断是否命中。
mask 是一张和原图同尺寸的二值图(矩阵),其中值为 1 的像素构成了这个物体。
但实际存储时,没人真的存一张 8×8 或 100×100 的全矩阵,太浪费空间。常用两种压缩方式:
RLE(游程编码): 只存"从第几个像素开始,连续多少个 1",长度和物体边界复杂度有关。
多边形:只存物体轮廓的几十个顶点,长度和物体形状复杂度有关。
这两种表示都不直接体现原图大小,所以容易让人以为"mask 就是物体那一小块"。但逻辑上,mask 仍然是定义在原图坐标系里的。

三、 AP / APmask(实例分割 )

实例1: 类别=猫, mask=区域A, 分数=0.95
实例2: 类别=猫, mask=区域B, 分数=0.87
实例3: 类别=狗, mask=区域C, 分数=0.72
其中分数是模型前向传播时直接输出的一个数,表示模型认为“这里确实存在一个该类别实例”的置信度/概率

注意:每个实例 = 类别 + mask + 分数。其中类别 指的是语义类别,也就是“这东西是什么”。猫1 和猫2 在语义上都是“猫”,所以类别字段都写 猫。

区分猫1和猫2靠的是 mask,不是类别。流程:
1、模型输出一堆实例,每个带分数
2、按分数从高到低排序
3、依次拿每个实例和真实标注比 IoU
IoU ≥ 阈值 → TP
IoU < 阈值 → FP
没被匹配到的真实标注 → FN
4、每处理一个实例,就算一次 Precision 和 Recall
5、画 P-R 曲线,算面积 = AP

posted @ 2026-10-14 22:09  小小冰&碎冰冰  阅读(5)  评论(0)    收藏  举报