Lecture 03 学习讲义
正文
工具
按问题查找
Lecture 03一张类别图怎样成为可训练的输出

一张类别图怎样成为可训练的输出

独立阅读

按问题继续

像素损失、IoU口径、粗细表示、实例身份与集合输出

本册承接 P36 的逐像素任务,解释 LAB 11 为什么需要新的目标、损失和评价。先读 logits/目标/ignore,再用 8×8 算例区分前景 IoU、两类 mIoU 和像素准确率;最后看语义类别为何不能唯一给出实例身份。

希望先看结果,可读 RGB 读出与 FCN 的对照;希望核一个指标,可引用 0.667 与 0.75 的完整算例。读完应能解释“框对了但边界仍错”和“所有杯子像素对了但实例仍未分开”这两个缺口。

坐标采样的动手入口是 LAB 03;多尺度和集合匹配留在本册后部选读。它们不要求在理解像素预测前先完成。

一个框可以同时包住杯身、杯把和杯把中的背景。框坐标全对,仍不代表我们知道每个像素属于谁。若两只杯子接触,语义分割可以把它们都标成“杯子”,但要分别计数和操作,就还需区分实例身份。这里不是同一个答案换显示颜色,而是输出空间和监督单位发生了变化。

一张类别图怎样成为可训练的输出

语义分割的输出通常为 Z∈RN×C×H×WZ\in\mathbb R^{N\times C\times H\times W},其中 NN 是 batch,CC 是类别数,H,WH,W 是空间大小。目标 Y∈{0,…,C−1}N×H×WY\in\{0,\ldots,C-1\}^{N\times H\times W} 是整数类别图。对每个有效像素做 softmax 交叉熵,再按有效像素数平均:

L=−1∣Ω∣∑(n,u,v)∈Ωlog⁡pn,Ynuv,u,v.L=-\frac{1}{|\Omega|}\sum_{(n,u,v)\in\Omega}\log p_{n,Y_{nuv},u,v}.

Ω\Omega 排除 ignore label,例如未标注区域。ignore 不应变成一个额外背景类,也不进入评价混淆矩阵。二类任务可以用一个 foreground logit 加 sigmoid/BCE,也可以用两个 logits 加 softmax;张量形状和损失接口必须与这种选择一致。

FCN 用卷积保持空间网格并输出位置相关分数,再把较粗分辨率恢复到目标大小。U-Net 的编码—解码结构把深层上下文与浅层高分辨率特征通过跳连结合;这种连接提供额外可用信息,而不仅是把同一张粗图放大。D2L §14.11 FCN · U-Net 原论文。图像和 mask 的裁剪、翻转、缩放必须使用同一几何变换,否则网络被要求把一个位置的像素对应到另一个位置的标签。

上采样能增加格子,不能单凭格子恢复被删掉的区别

最近邻复制相邻值;双线性插值对邻域数值加权。给二维网格

F=(0102030),F=\begin{pmatrix}0&10\\20&30\end{pmatrix},

在横坐标 x=0.25x=0.25、纵坐标 y=0.5y=0.5 处,四点权重为 0.375,0.125,0.375,0.1250.375,0.125,0.375,0.125,插值得到 12.5。它精确说明怎样从已有数值取连续位置,不能保证 12.5 就是原始图像那一点的真实内容。

如果两个 2×22\times2 图案“左半亮”和“右半亮”都被平均成 0.5,任何只拿这个平均值的确定性解码器都必须给二者相同输出。增加一个“左减右”通道后才可以区分。这是 LAB 03 的表示碰撞例;它解释为什么需要保留空间信息,而非只提高显示分辨率。

类别 mask 本身是离散 ID,通常用最近邻几何采样。对类别编号 1 和 3 做双线性插值,得到 2 并不意味着中间真的存在第 2 类。模型的连续 logits 或概率图则可以按适当约定插值,再 argmax/阈值。插值坐标约定也要固定,例如是否对齐端点;同样叫 bilinear 的两个设置可能在边界位置不同。

一个 8×8 反例怎样澄清四种指标

设真值前景有 16 像素,从真值 mask 平均降采样再最近邻恢复并阈值化后,预测前景有 24 像素,其中真阳性 16、假阳性 8、假阴性 0、真阴性 40。这是采样机制例,预测过程直接使用了真值 mask,不能当作看图模型的能力证据。

真值掩码、降采样恢复和错误区域

三张网格由同一组 8×8 数组绘制。目标矩形为行 2–5、列 3–6(从 0 计数);阈值化最近邻恢复多出了 8 个前景像素。

指标 计算 本例结果
前景 IoU 16/(16+8+0)16/(16+8+0) 2/32/3
背景 IoU 40/(40+0+8)40/(40+0+8) 5/65/6
两类 mIoU,含背景 (2/3+5/6)/2(2/3+5/6)/2 0.75
像素准确率 (16+40)/64(16+40)/64 0.875

“mIoU=0.667”在这个例子里错在名称:0.667 是单类前景 IoU。若报告不含背景的类均值,应写清类别集合;若某类真值和预测都为空,要说明是忽略该类还是采用约定值。背景占比很高时,全预测背景也可能有高像素准确率,所以要看逐类混淆和边界错误,而不只看一个总数。

真正视觉模型必须从图像推断 mask。LAB 11 先保留上述采样例及最近邻/双线性比较,再进入小型像素模型。两段实验分别检验采样损失和学习能力,结论不互相替代。

主实验在 2026-09-22 本地 CPU 完成训练,384 张训练图、128 张保留图,输入 48×48 RGB。三类为背景、红矩形、蓝椭圆,目标形状为 [B,48,48],logits 为 [B,3,48,48],ignore label 255 在损失与指标中均被排除。20,590 参数的小型 FCN 将 12×12 粗 logits 双线性上采样并融合精细跳连,训练 20 epoch;另训练只有 12 个参数的逐像素 RGB 线性读出作基线。

保留图像条件 小型 FCN 三类 mIoU RGB 逐像素线性读出 mIoU
原始合成图 0.99041 1.00000
对象尺度变为 0.45 倍 0.94396 1.00000
RGB 图作 5×5 模糊 0.92397 0.84996

RGB 基线满分说明原数据颜色已直接泄露类别,不能据 FCN 高分宣称它学会了复杂形状或需要深层上下文。模糊后边缘颜色混合,FCN 在这个干预下更稳健;这才是当前对照支持的具体比较。原始条件下 FCN 的逐类 IoU 为背景 0.99861、矩形 0.99833、椭圆 0.97429,较细曲线边界更难。

真实图像、mask、FCN输出与错误

小对象条件下的错误分布

保持已训练参数,测试时仅把粗 logits 的双线性插值改为最近邻,mIoU 降到 0.91180。这说明当前网络对训练时的采样约定敏感,不能把它读作“最近邻永远更差”,因为网络没有在两种上采样设置下分别重训。前面的已知 mask 热身中,双线性分支前景 IoU 仍为 2/3,背景 IoU 为 0.88462、两类 mIoU 为 0.77564;指标差异与模型泛化仍须分开。