图像分类
图像分类对给定的一张图像裁剪计算固定类别集的分数,再选最大值。本课的真实 SqueezeNet 结果中,完整上下文裁剪的 Samoyed 为 61.6%;同中心缩小后仍第一,为 33.4%;保持大小右移后,chow 以 19.3% 胜出。
裁剪决定模型收到的问题。它只看到方框内的像素,不知道原照片在框外还有什么,也不知道拍摄者想突出哪个对象。
输入约定与分类输出
单标签分类器接收固定尺寸张量,对词表中每类给分。本课 SqueezeNet 有 1,000 个 ImageNet 类别。它不先独立定位“狗”;一张裁剪输入对应一个排名。argmax 选择最大分数,即使前几名很接近也会产生 top-1。预测不会改写真实标签:本照片固定标签为 Samoyed,chow 胜出仍是错误。
原图是 1280×853 的 CC0 萨摩耶照片。裁剪为正方形,边长是源图高度的 cropSize 百分比,竖直中心固定,focusX 控制横向中心,再将越界部分约束回图内。
方形裁剪直接缩放为 224×224 RGB,数值缩到 [0,1],再用 ImageNet 均值 [0.485, 0.456, 0.406] 和标准差 [0.229, 0.224, 0.225] 标准化。SqueezeNet 1.1输出 1,000 个 logit,稳定 softmax 为:
p_i = exp(z_i - max(z)) / Σ_j exp(z_j - max(z))
减最大值防止指数溢出,不改变数学概率。图表固定 0–1 轴,只列前五名,剩余合为“其他 995 个类别”;不把前五名重新归一化,否则会抹去尾部质量并夸大显示值。
所有 25 个允许的裁剪组合已用同一图像、预处理、模型和标签离线计算。浏览器回放导出结果,不在样本之间猜分数。
逐步演示
默认最终裁剪是 { focusX: 60, cropSize: 40 },通过两次单变量变化到达。
- 定义任务:一张裁剪生成 1,000 类分数,取最大值,真实标签始终为
Samoyed。 - 参考输入
{50,100}:边长853,源图横向范围213.5–1066.5,框外像素不进入模型。 - 完整上下文结果:
Samoyed61.6%、white wolf33.9%。前五类合计 98.3%,其余 995 类合计 1.7%。 - 只缩小:保持
focusX = 50,把cropSize改为 40。边长0.40 × 853 = 341.2像素。改变的是裁剪尺寸及随之改变的输入内容和缩放,不是横向移动。 - 同中心小裁剪:
Samoyed仍第一,33.4%;white wolf30.0%,Arctic fox17.4%。分布改变,赢家未变。 - 只移动:保持
cropSize = 40,将focusX从 50% 改为 60%。最终边界为[597.4, 255.9, 938.6, 597.1]。大小、竖直中心、预处理、模型和标签均不变。 - 右移结果:
chow19.3%、Great Pyrenees17.3%、Eskimo dog16.2%、Samoyed16.0%、white wolf13.8%。胜出品种错误,真实类降至第四。 - 比较两条箭头:完整裁剪到同中心小裁剪改变置信度,但未改赢家;同大小右移才改变赢家。每步只改一个裁剪参数,才能区分这两项观察。
- 限定结论:这个模型回答它实际收到的裁剪,不证明缩小总有害、右移总翻转,或其他模型会产生相同百分比。
画布紫框表示输入,绿标签表示真实类别。结尾三个卡片固定保留输入与结果,箭头分别标示只缩小、只移动。
实验能说明什么
不能说“小裁剪必然答错”:居中的 40% 裁剪只让 Samoyed 从 61.6% 降至 33.4%,仍获胜;随后同样大小右移才使 chow 胜出。实验没有定位具体哪个像素造成翻转,只说明输入几何和整个预处理流程属于被评估系统的一部分。
百分比总和为一也不能证明校准。61.6% 是这个模型对这张裁剪的归一化分数;校准需要在一批数据上检查,预测接近 61.6% 的样本是否约有 61.6% 正确。
实际使用
部署要匹配评估时的缩放、裁剪、颜色通道顺序、数值范围和标准化常量。模型不变,输入流程变化仍会改变问题。
用有代表性的数据评估裁剪策略,检查合理裁剪是否改变赢家、压低真实类排名。需要定位物体就用目标检测;一图允许多个独立标签则用多标签分类。单个 argmax 不承担这两项功能。
边界情况
- 满高度且靠边:
cropSize = 100、focusX = 30%或70%会越界,方框被约束到图像边缘,不补虚构像素。 - 不改大小:
cropSize = 100的只缩小对照等于参考,讲解说明未改变尺寸。 - 不改位置:
focusX = 50的最终裁剪等于同中心对照,移动节拍说明中心未变。 - 真实类不在前五:另列真实类的实际概率和名次,不挤掉前五中的其他类。
- 其他图像或模型:这些数字只属于一张照片和 2016 年的 SqueezeNet,不是视觉模型通用表现。
常见错误
- 把预测当真实标签。最大分数可以错。
- 从
{50,100}一步跳到{60,40},混淆尺寸与位置;需加入{50,40}对照。 - 把
cropSize = 40理解成放大 40%。它表示边长为源高度 40%,输入的源像素更少。 - 将前五类按自身总和重新归一化,隐去其余 995 类。
- 期待一个类别输出能定位多个对象或给出多个独立标签。
模型范围
这是输入流程实验,不是视觉基准。用一个紧凑的 2016 分类器、一张照片、竖直中心固定的方形裁剪、25 组预计算结果。没有检测框、多标签输出、校准测量、数据增强、现代模型比较或任意上传图像。