想象你是一位小学美术老师,布置了一份“照片拼图”作业。每个孩子交上来的是一张把图片涂满颜色的“答案纸”——汽车涂蓝色、行人涂红色、天空涂黄色。你手里也有一张标准答案图。要判断谁涂得好,你不可能只数“涂对的格子总数”,因为天空占了半张纸,只要天空涂对,总分就虚高。聪明的做法是:对每一类色块,分别看“孩子涂的范围”和“标准范围”的重叠程度,再把所有类别的得分平均起来。这就是 mIoU——图像分割领域最权威的“批改规则”。 在多模态大模型时代,模型不仅要“看懂”图片,还要把“某个区域”精确地圈出来。mIoU 成了衡量这种“视觉-语言”能力是否靠谱的标尺——它就像一把全校统一的“视力表”,让不同模型的“圈画水平”可以公平比较。
对 AI 从业者而言,掌握 mIoU 等于掌握一套通用的“模型视力体检表”,能从算法、评测、基准对齐三个层面把模型能力说清楚,是进入多模态评估领域的必备基本功。
可视化演示
展示IoU交并比计算原理、多类别mIoU平均计算过程、以及mIoU对边界质量不敏感的局限性分析。
本节配有交互动效(进入视口后自动加载,约 3KB)。
'+_captions.iou+'
任务定义
小美老师把一张街景照片复印成空白底稿,要求孩子们给每个像素涂上颜色:汽车涂蓝、行人涂红、天空涂黄、路面涂灰。这种“给每个像素发一张类别身份证”的任务,在 AI 领域就叫图像分割。它与目标检测最大的区别是:检测只画一个方框把物体“框住”,而分割要画出物体精确的轮廓,像剪纸一样把每个物体从背景中“抠”出来。
图像分割内部还分为两种主流玩法。语义分割只关心“这是什么类别的区域”,比如把整片天空看成同一个类,哪怕天空被电线杆切成了几块;实例分割则更进一步,要求区分“同一个类别里不同的个体”,比如左边这辆车和右边那辆车虽然都是“车”,但它们是两个不同的对象,要分别涂成两种深浅不同的蓝色。
无论哪种玩法,模型的输出本质都是同一件事:对输入图片的每一个像素,给出一个类别编号。这就像把所有像素点都送进一个“分类考场”,每个考生都要交出自己的答案。
回到拼图比喻:孩子们交上来的涂色纸,就是 Y;小美老师手里的标准答案,是真实的 Y。而 mIoU 要解决的,正是“怎么公平地给这些涂色纸打分”这个核心问题。
- 输入图像 II 表示一张待分割的照片,尺寸是 H(高)×W(宽),每个像素由红绿蓝 3 个通道描述,所以记作 H×W×3。
- 映射箭头长箭头表示“模型执行翻译动作”,把一种形式的数据变换成另一种形式,就像学生把照片临摹成涂色画。
- 输出标签图 YY 是与输入同尺寸的一张“标签图”,每个像素位置上是一个类别编号,比如 1=汽车、2=行人、3=天空。
- 类别总数 CC 是数据集里所有类别的数量,编号从 1 取到 C,每个类别对应一种“颜色涂法”。
指标原理
小美老师打分的第一个困惑是:不能只看“涂对了多少格”,因为天空占了大半张纸。她改用了一个更聪明的办法——对每个色块,把“孩子涂的范围”和“标准答案的范围”都拿出来,先算它们重叠的部分(交集),再算它们总共覆盖的部分(并集),用重叠面积除以总覆盖面积。这个比值就是 IoU(Intersection over Union,交并比)。
IoU 的直觉非常好懂:如果孩子的涂色和标准答案完全一致,交集等于并集,比值就是 1,满分;如果两张图完全没有重叠,比值就是 0,零分。它既惩罚了“漏涂”(真实区域没覆盖到),又惩罚了“多涂”(把背景也涂了进去),是一把很全面的尺子。
在正式计算时,我们针对每一个类别 c 单独算一次 IoU:把模型预测为类别 c 的像素集合记为 P_c,把真实标注为类别 c 的像素集合记为 G_c,再做交并比。这样一来,每个色块都得到自己独立的分数,互不干扰。
IoU 把“这孩子涂得怎么样”变成一个 0 到 1 之间的分数。1 分是完美复刻,0 分是完全跑偏,0.5 分意味着“对了一半,也错了一半”——就像拼图只拼上了半块区域。
- 预测集合 P_cP_c 是模型“认为”属于类别 c 的所有像素的集合,相当于孩子涂成某种颜色的所有格子。
- 真实集合 G_cG_c 是标准答案中真正属于类别 c 的像素集合,相当于小美老师手里的标准色块。
- 交集符号 ∩ 表示“两者共同拥有的像素”,即孩子和标准答案都涂成这个类别的格子。
- 并集符号 ∪ 表示“只要任意一方涂了这个类别的格子都算进来”,包含交集、孩子多涂的部分、以及真实存在但孩子漏涂的部分。
- 竖线与比值两对竖线表示“统计集合里有多少像素”,比值就是重叠面积占总覆盖面积的比例。
计算流程
小美老师发现,每个孩子交上来的涂色纸里通常有七八种颜色(类别),只算一张色块的分数不够公平,必须把每个色块都单独批一遍,最后再求平均。这个“逐类算 IoU,最后取平均”的过程,就是 mIoU(mean Intersection over Union,平均交并比)的计算流程。
计算前要先建一本“记分册”——混淆矩阵。矩阵的行表示模型预测的类别,列表示真实类别,每个格子 M[i][j] 记录“真实是 j 类却被预测成 i 类的像素个数”。主对角线上的格子就是预测正确的像素,其余格子都是各种“认错”。有了这本记分册,每一类的 TP(正确预测)、FP(多预测)、FN(漏预测)都能直接数出来。
接着对每一类算一次 IoU,最后把所有类的 IoU 加起来除以类别数 C,就得到 mIoU。它给每个类别平等的投票权——哪怕“行人”在整张图里只占巴掌大,它的分数和占半张天的“天空”一样重要。
这套流程就像小美老师批完全班作业后,把每个色块的平均分再算一遍总评。mIoU 越高,说明这个孩子(模型)在“各种颜色的涂法”上都比较靠谱,而不是只有大片天空涂得好。
- 类别求和∑ 符号表示“从第 1 类一直加到第 C 类”,把每个类别的 IoU 全部累加起来,就像把所有色块的批改分汇总。
- 倒数系数前面的 1/C 是平均系数,把总和平均分摊到 C 个类别上,得到每个类别的“平均待遇”。
- 整体平均把求和结果乘以 1/C,等价于“总分 ÷ 类别数”,这就是 mIoU 的完整含义。
评测意义
有人说,直接数“涂对的格子占总格子的比例”(像素精度)不是更简单吗?但小美老师发现这个指标有个大漏洞:如果天空占全图 70%,只要把天空涂对,正确率就有 70%,哪怕行人、汽车全涂错也能拿到高分。mIoU 按类别平均,正好堵住了这个漏洞。
不过 mIoU 也不是万能的。它对所有类别一视同仁,但现实中有些类别出现的频率极低,比如“摩托车”可能一百张图里才出现一次,它的表现对总分影响仍然是 1/C。为了更细致地评估,业界还设计了频率加权 IoU(FWIoU):按每个类别在真实标注中的像素占比给 IoU 加权,占比大的类别对总分影响更大。
在实际评测中,mIoU 和 FWIoU 往往一起报告。mIoU 反映“模型对小类别的良心”,FWIoU 反映“模型在大面积类别上的整体表现”,两者互补,就像老师既要看“偏科生的短板科目”,也要看“全班平均分”。
- 权重定义 w_cw_c 是类别 c 在数据集中出现的“面积占比”,占的面积越大权重越高,就像小美老师统计这个色块在班级作业里出现的总次数。
- 分子为加权 IoU 和每个类别的 IoU 先乘上自己的权重再求和,常见类别对总分的贡献自然变大。
- 分母为权重的总和除以所有权重之和,保证结果仍然落在 0 到 1 之间,相当于做了一次“规模归一化”。
基准评测
每个孩子涂完色,总得有个统一的考场。图像分割领域最著名的考场就是 PASCAL VOC、COCO、Cityscapes 这几个经典数据集。它们提供了大量带像素级标注的图片,每一张都相当于“标准答案拼图”。PASCAL VOC 有 20 个物体类别,COCO 的标注细到 80 类,Cityscapes 则专注城市街道场景,专门为难自动驾驶里的“路况拼图”。
在这些基准上,官方发布评测协议:参赛者把模型预测的掩码图提交到服务器,由官方统一计算 mIoU。这个设计非常关键——就像小美老师手里攥着标准答案,绝不让学生自己给自己打分。为什么?因为“自己改自己的卷子”很容易手滑,官方统一评测才能保证公平。
排行榜按 mIoU 从高到低排序,成了行业公认的“英雄榜”。模型在榜单上每前进 0.1 个百分点,都需要在数据结构、训练策略、损失函数上做不少文章。mIoU 因此成为衡量模型强弱的硬通货。
这份“官方考卷”的存在,让 AI 社区的比拼有了公认的坐标系。小美老师只需要宣布“按 VOC 的 mIoU 排名”,所有孩子就都清楚规则:涂得全、涂得准、不漏涂、不多涂,才有高分。
- TP_c 正确预测数TP_c 是真实为类别 c 且模型也预测为 c 的像素数,即“孩子涂对的那部分”。
- FP_c 多预测数FP_c 是模型预测为 c 但真实不是 c 的像素数,即“孩子多涂出去的部分”。
- FN_c 漏预测数FN_c 是真实为 c 但模型没预测为 c 的像素数,即“孩子漏涂的部分”。
- 三者之和作分母TP + FP + FN 恰好等于并集的像素数,与 IoU 的“交集 ÷ 并集”完全等价,只是换了一套记号。
多模态应用
如今拼图玩法升级了:老师不再直接给照片,而是说一句“请把右边那辆红车圈出来”,孩子要根据这句话去照片里找到目标并涂色。这就是多模态分割任务,典型如参照分割(Referring Segmentation)模型,输入是“图片 + 文本描述”,输出是描述对应区域的掩码,本质上跨了“语言”和“视觉”两道关口。
这类模型的评测难点在于:文本描述五花八门,“红车”“左边的店员”“戴帽子的人”都可能是目标。评测时需要把文本和图片配对成一个样本,对每个样本单独计算预测掩码与真实掩码的 IoU,再在所有样本上平均。这样既能测出模型“听不听得懂话”,也能测出它“圈得准不准图”。
mIoU 在这里扮演了“跨模态考官”的角色:它不关心模型内部用了什么花哨的对齐技巧,只看最终“圈出来的区域”和标注是否吻合。这正是多模态评测最需要的中立标尺。
回到比喻:孩子从“看图涂色”变成了“听指令涂色”,小美老师的批改标准却没变——依然用交并比看涂得全不全、准不准。mIoU 把语言理解和图像分割这两门功课的成绩,合并成了同一个分数。
- 样本编号 nn 表示第 n 个样本,每个样本由一张图和一句描述组成,是评测的最小单位。
- 预测掩码 Ŷ_nŶ_n 是模型根据第 n 张图和文本输出预测的区域掩码,相当于孩子听了老师的描述后涂出的色块。
- 真实掩码 Y_nY_n 是人工标注的标准区域,即老师心里的标准答案。
- 样本数 N 与平均把所有样本的 IoU 求和后除以 N,得到该模型在整批多模态样本上的平均表现。
工程实践
在真实代码里实现 mIoU,第一件事就是根据预测结果和真实标签构建混淆矩阵。假设预测掩码 pred 和真实掩码 gt 都是尺寸相同的整数数组,类别总数是 num_classes,那么遍历图像里所有像素、按“预测 i 行真实 j 列”计数,就能得到矩阵。这个矩阵是一切指标的数据源头。
编写实现时要小心两类细节。第一是类别不均衡:如果某个类别在训练数据里像素极少,模型可能直接放弃预测它,导致该类别 IoU 偏低,必须在分析报告里单独指出。第二是空类别:如果某个类别在真实标注里从未出现,有的实现直接跳过它,有的则记为 0 分,两种口径得出的 mIoU 不同,提交论文时必须写清楚。
更稳健的做法是:除了报 mIoU,同时给出每个类别的 IoU 明细和混淆矩阵热力图。这样能一眼看出模型是“整体平庸”还是“偏科严重”,为下一步优化指明方向——就像小美老师在评语里写“全景图不错,但行人涂色总是偏右”。
在工程代码里,这个矩阵往往是几十行代码就写完的“小事”,但决定了模型评估的所有结论。小美老师深知:记分册如果记错了格子,后面所有评语都是空谈。
- 像素位置 pp 遍历图像上的每一个像素位置,是统计的最小单元。
- 预测类别ŷ_p 是模型在 p 处的预测类别,对应混淆矩阵的行索引 i。
- 真实类别y_p 是该像素的真实类别,对应混淆矩阵的列索引 j。
- 集合计数外层两条竖线和花括号表示“把所有满足条件的像素收集成一个集合,再数个数”。
发展趋势
mIoU 用了几十年,小美老师也发现它有些“钝感”:两个模型整体 mIoU 相同,但一个边界模糊、边缘像狗啃过,另一个边界锐利、线条顺滑——普通 IoU 看不出差别。为此研究者提出边界 IoU(Boundary IoU):只取真实掩码和预测掩码边界周围一小圈像素,在这个“边境地带”算交并比。边界越整齐的模型,这一项得分越高。
另一条发展路线上,评测正在从“单图打分”走向“多模态统一”。新的多模态分割基准开始把“文本描述 + 图片 + 掩码”成套发布,既测分割精度,也测文本理解;同时评测协议越来越规范,统一了空类别处理、样本筛选、提交格式等细节,让各家报告的 mIoU 真正可对比。
这些新指标并不是要取代 mIoU,而是在它基础上“加考”更细的科目。就像老师既保留总平均分,又增加了“书写工整分”和“听题理解分”,多个维度拼在一起,才构成完整的能力画像。
拼图界的新潮流是:“涂得全”还不够,还要“涂得齐”。mIoU 作为基础分继续存在,而边界 IoU、多模态统一基准等新规则,正在让 AI 的“拼图能力”考试变得越来越严格、越来越立体。
- 预测边界带 P_∂P_∂ 是把预测掩码的轮廓往外扩张几圈后得到的像素集合,只关心“边境线附近”。
- 真实边界带 G_∂G_∂ 同理,来自真实掩码的轮廓扩张,构成标准答案的“边境线”。
- 交集与并集两个边界带的交集是“双方边缘重合的像素”,并集是“任一边缘触及的像素”,二者相除就是边界 IoU。
AI 应用场景
自动驾驶语义分割评测
阶段:模型评测与基准测试
解决的问题:自动驾驶系统需要实时识别道路、车辆、行人、交通标志。传统评测靠司机主观感受或少量测试,既不全面也不可复现。用 mIoU 在 Cityscapes 等道路数据集上量化评估每一个类别(尤其是行人和骑行者这类小目标),能客观比较不同分割模型的优缺点,让选型有据可依。
具体案例:某自动驾驶团队在 Cityscapes 验证集上对比了两个分割模型:模型 A 的 mIoU 是 74.5%,模型 B 是 73.8%。查看逐类 IoU 后发现模型 A 的“骑手”类别高出 6 个百分点,而“建筑”略低,团队据此选择模型 A 并追加了骑手数据的训练样本。
多模态大模型统一评测
阶段:多模态能力评估与基准对齐
解决的问题:指令分割模型要根据一句自然语言描述圈出图中对应物体,比如“左数第二件红色外套”。传统做法只做定性展示,难以量化。使用 mIoU 对图文样本对逐对计算掩码重合度,再在全部样本上取平均,就能给“听指令圈图”能力打一个公平可比的分数。
具体案例:某大模型团队参加 RefCOCO 参照分割基准评测,提交模型的 mIoU 为 68.2%,而基线模型为 62.5%。团队利用逐类 IoU 分析发现差距主要来自“多个同色物体”的歧义场景,于是针对性加入对抗样本微调,一个月后 mIoU 提升到 71.3%。
医学影像分割临床验证
阶段:模型评估与临床验证
解决的问题:CT/MRI 影像中肿瘤区域的勾画直接关系治疗方案。传统人工勾画费时费力且医生间一致性有限。用 mIoU 作为金标准指标,可评估自动分割模型与资深医生标注的一致性,辅助医院决定模型能否进入临床辅助诊断流程。
具体案例:某医疗 AI 公司在肝脏肿瘤 CT 分割项目中,以资深放射科医生标注为真实掩码,测得模型 mIoU 为 0.87;进一步按肿瘤尺寸分组后发现小肿瘤(<2cm)的 IoU 仅 0.71,团队据此优化了小目标特征提取,最终整体 mIoU 提升到 0.89。
Python 演示
import numpy as np def compute_confusion_matrix(pred, gt, num_classes): cm = np.zeros((num_classes, num_classes), dtype=np.int64) for i in range(num_classes): for j in range(num_classes): cm[i, j] = np.sum((pred == i) & (gt == j)) return cm def compute_miou(pred, gt, num_classes): cm = compute_confusion_matrix(pred, gt, num_classes) ious = [] for c in range(num_classes): tp = cm[c, c] fp = cm[c, :].sum() - tp fn = cm[:, c].sum() - tp union = tp + fp + fn if union == 0: ious.append(float('nan')) else: ious.append(tp / union) valid_ious = [x for x in ious if not np.isnan(x)] miou = float(np.mean(valid_ious)) return miou, cm def compute_fwiou(cm, ious): total = cm.sum() weights = cm.sum(axis=0) valid_pairs = [(w, i) for w, i in zip(weights, ious) if not np.isnan(i)] total_w = sum(w for w, _ in valid_pairs) if total_w == 0: return 0.0 return float(sum(w * i for w, i in valid_pairs) / total_w) if __name__ == "__main__": np.random.seed(42) pred = np.random.randint(0, 3, (128, 128)) gt = np.random.randint(0, 3, (128, 128)) miou, cm = compute_miou(pred, gt, 3) ious = [] for c in range(3): tp = cm[c, c] fp = cm[c, :].sum() - tp fn = cm[:, c].sum() - tp union = tp + fp + fn ious.append(0.0 if union == 0 else tp / union) fwiou = compute_fwiou(cm, ious) print("混淆矩阵:") print(cm) print("逐类 IoU:", [round(x, 4) for x in ious]) print("mIoU =", round(miou, 4)) print("FWIoU =", round(fwiou, 4))
cm[i, j] = np.sum((pred == i) & (gt == j))统计“预测为 i、真实为 j”的像素个数,构建混淆矩阵,这是所有后续指标的数据基础。tp = cm[c, c]主对角线上第 c 类预测正确的像素数,相当于“孩子涂对的那块拼图”。fp = cm[c, :].sum() - tp第 c 行去掉主对角线的和,是多预测出去的像素,对应“多涂的部分”。fn = cm[:, c].sum() - tp第 c 列去掉主对角线的和,是漏预测的像素,对应“漏涂的部分”。union = tp + fp + fn三个数相加恰为并集,IoU 就是 tp/union,与交集除以并集完全等价。valid_ious = [x for x in ious if not np.isnan(x)]过滤掉真实与预测都不存在的空类别,避免 NaN 污染平均值。weights = cm.sum(axis=0)按列求和得到每个类别的真实像素总数,作为 FWIoU 的权重。miou = float(np.mean(valid_ious))对所有有效类别的 IoU 取平均,得到最终 mIoU 分数。
常见误区
误区我直接统计预测正确的像素数占总像素数的比例,这难道不就是 mIoU 吗?模型准确率 98%,指标不是挺高吗?
正解像素精度(PA)被大类别主导,当背景占 95% 时,把行人、汽车全部漏掉也能达到 95% 的 PA。mIoU 逐类平均,每个类别权重相同,小物体一旦漏掉,分数会显著下降。就像全班平均分被一个好学生拉高,看不出其他人的真实水平,必须看“每个学生的分数”(逐类 IoU)才算数。
为何常见:PA 的定义简单直观,字面上就是“正确率”,初学者很容易想当然地把它等同于模型质量。
误区测试集里没有“轮船”这个类别,那我在算 mIoU 时直接跳过它不就行了?这样分数还能好看一些。
正解要区分“真实标注中不存在”与“预测中不存在”两种情况。若某类在真实标注中从未出现,而模型却预测出了该类像素,说明模型产生了“幻觉”,按严格协议应记 0 分。主流实现(如 mmsegmentation)默认对空类记 0,若选择跳过,必须在报告中声明,否则不同模型之间的 mIoU 无法公平比较。
为何常见:跳过空类能让分数“变好看”,不少实现为了省事默认忽略,导致口径混乱。
误区mIoU 和 Dice 系数差不多吧,都是衡量分割重叠程度的东西,用哪个不都一样?
正解Dice = 2|P∩G| / (|P|+|G|) 与 IoU 虽然有单调对应关系,但数值并不相同,IoU 对“过分割”(多涂出去)更敏感。精确率和召回率则是另外两个方向:一个看“预测出来的东西有多少是对的”,一个看“真实的东西有多少被抓到了”,IoU 是综合两者的总账,不能混为一谈。
为何常见:这些指标都描述“预测与真实的重叠”,公式结构相似,缺乏公式推导经验的初学者很容易把它们当成同义反复。
误区在验证集上试了很多次效果都一般,那我直接在测试集上迭代几次,哪个 mIoU 高用哪个,分数变高说明模型确实改进了。
正解排行榜的 mIoU 基于固定测试集,反复用它调参等于把测试集答案“背”给了模型,得到的分数无法反映真实泛化能力。正确做法是把测试集当作“期末考卷”,只能在验证集上反复实验,最终提交一次。就像小美老师不可能把期末答案先给学生讲一遍再考试。
为何常见:追求榜单名次、急于看到“提升”,让人容易对测试集越界使用,这是学术诚信与工程规范的双重红线。
面试题
Q1. 图像分割中,IoU(交并比)的正确含义是什么?
- A.预测正确像素数占总像素数的比例
- B.预测与真实交集面积除以并集面积← 正确答案
- C.预测像素面积占真实标注面积的比例
- D.真实标注面积占预测像素面积的比例
答案:B。IoU 是交集除以并集,即预测与真实重叠的面积占两者总覆盖面积的比例。A 是像素精度;C 是“预测像素占真实像素”的比例,接近召回率;D 接近精确率的倒数关系。就像批改拼图时不能只数涂对的格子,要看“重合区域 ÷ 总区域”。
Q2. 某分割模型在 3 个类别上的 IoU 分别为 0.9、0.6、0.3,其 mIoU 等于多少?
- A.0.90
- B.0.60← 正确答案
- C.0.45
- D.0.30
答案:B。mIoU 是把所有类别的 IoU 加起来再除以类别数,(0.9 + 0.6 + 0.3) / 3 = 0.6。它给每个类别平等的投票权,所以 0.3 这个“小类别低分”不会被 0.9 完全掩盖。
Q3. 混淆矩阵 M 中,M[i][j] 表示的含义是什么?
- A.真实类别 i 被预测为 j 的像素数
- B.真实类别 j 被预测为 i 的像素数← 正确答案
- C.预测类别 i 与真实类别 i 的像素交集
- D.所有类别中第 i 类的像素总数
答案:B。约定行索引 i 为预测类别、列索引 j 为真实类别时,M[i][j] 就是“真实 j 被预测成 i”的像素数。主对角线 M[i][i] 是预测正确的像素,其他位置都是“认错”的像素。混淆矩阵是统计 TP、FP、FN 的基础。
Q4. 评测时某类别在真实标注中从未出现,但模型预测中出现了该类别像素,官方严格协议下该类 IoU 应记为多少?
- A.该类别 IoU 记为 0← 正确答案
- B.跳过该类别取其余类别平均
- C.把该类别并入背景类再计算
- D.自动补一个极小数值避免除零
答案:A。模型输出了真实标注中根本不存在的类别,说明产生了“幻觉”像素,交集为 0,IoU 应记 0 分。跳过会掩盖这种错误,并入背景或补小数值都会扭曲指标口径。严格实现(如 mmsegmentation 默认)会把空类记 0 并给出警告。
Q5. 数据集类别分布极不均衡时,单独报告 mIoU 而无视像素精度的风险是什么?
- A.mIoU 一定低于 PA 且结果不可信
- B.mIoU 与 PA 的排序必然完全相反
- C.两者类别权重有别,易忽略背景整体正确率← 正确答案
- D.像素精度无法衡量任何类别的真实性能
答案:C。mIoU 按类别平均,每个类别同等权重;PA 按像素平均,大面积背景主导。二者评估视角不同,容易给出矛盾结论。最稳妥的做法是同时报告两者,并配合逐类 IoU 明细,才能看清模型是“整体靠谱”还是“偏科严重”。
Q6. 频率加权 IoU(FWIoU)与 mIoU 的关键区别是什么?
- A.FWIoU 只计算背景类别
- B.FWIoU 用各类别像素占比对 IoU 加权平均← 正确答案
- C.FWIoU 使用预测面积而非真实面积加权
- D.FWIoU 不再依赖混淆矩阵
答案:B。FWIoU 的权重 w_c 来自类别 c 的真实像素占所有真实像素的比例,常见类别权重高、对总分影响大。它和 mIoU 互补:mIoU 给小类别平等发言权,FWIoU 反映“常见类型”的整体表现,两者都基于混淆矩阵计算。
Q7. 评估“根据文本描述分割图像”的模型时,下列做法正确的有哪些?
- A.对每个图文样本对分别计算预测掩码与真实掩码的 IoU← 正确答案
- B.将所有样本掩码合并后再计算一次全局 IoU
- C.汇总所有样本的逐类 IoU 后取平均得到 mIoU← 正确答案
- D.直接比较文本嵌入的余弦相似度代替掩码评测
答案:AC。多模态分割评测以“图文样本对”为最小单位逐对计算 IoU,再在所有样本上平均得到 mIoU。A 和 C 正确。B 把所有样本混合会掩盖单样本的严重错误;D 衡量的是文本语义相似度,与“圈得准不准”没有直接关系。
Q8. 关于边界 IoU(Boundary IoU),下列说法正确的有哪些?
- A.只选取预测掩码的边缘像素计算交并比
- B.对真实与预测掩码边界附近区域计算交并比← 正确答案
- C.对细长物体的评价比普通 IoU 更敏感
- D.边界 IoU 结果不一定小于普通 IoU← 正确答案
答案:BD。边界 IoU 同时对预测和真实掩码的边界区域做膨胀,取两者边界附近像素计算交并比,B 对,A 把真实边丢掉了。它对边缘质量敏感,细长物体一旦边界偏差就会被放大,C 对。由于只统计边界带,数值通常与整体 IoU 不同但并非必然更小,D 对。
Q9. 在 PASCAL VOC 等标准分割基准中,官方 mIoU 评测通常要求参赛者怎么做?
- A.提交预测图片由官方统一评测← 正确答案
- B.自行计算并直接报告最高分数
- C.将验证集与测试集混在一起评测
- D.把所有类别像素数相加求比例
答案:A。标准基准的测试集标注不公开,参赛者只能提交预测掩码,由官方服务器统一计算 mIoU。这是为了防止“自己给自己批卷”,保证分数可复现、可对比。验证集仅供调参,绝不能混入测试集。
Q10. 处理类别不均衡的分割任务时,以下哪些策略是合理的?
- A.同时报告 mIoU 与 FWIoU← 正确答案
- B.使用加权损失配合加权指标← 正确答案
- C.忽略小类别只优化大类别
- D.用混淆矩阵分析小类别误差来源← 正确答案
答案:ABD。mIoU 与 FWIoU 分别从“类别平等”和“面积加权”两个视角评估,互补使用更稳健;加权损失能缓解小类别被淹没的问题;混淆矩阵能定位小类别到底是被“漏了”还是“认错成别类”。忽略小类别只会让 mIoU 虚高、实际部署露馅。