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
浙公网安备 33010602011771号