工程路径已跑通
从 ImageNet 预训练的 yolo26s-cls.pt 出发,分类头自动收缩为 1280 → 2;freeze=null,主干与分类头全部参与训练。正式最佳模型 SHA-256 为 61b178…1071b6。
Model training review · 2026-08-03
在 Apple M5 上以完全相同的 Stage A 鸟/非鸟数据和训练口径完整微调 YOLO26s-cls。更大模型将验证集 Top-1 提高了 0.099 个百分点,却没有提高跨域排序上限;当前瓶颈主要是极小模糊正样本、真实拍鸟负样本不足,以及“整图分类”与最终框选任务之间的目标错位。
模型产物和同口径评测均已完成。结论不是 YOLO26s 本身无效,而是在当前 Stage A 数据上,扩大容量没有换来更好的鸟/非鸟可分性。
从 ImageNet 预训练的 yolo26s-cls.pt 出发,分类头自动收缩为 1280 → 2;freeze=null,主干与分类头全部参与训练。正式最佳模型 SHA-256 为 61b178…1071b6。
最佳 Top-1 为 95.891%,比 n 高 0.099 pp;但 COCO-vs-昆虫/蜘蛛 OI 的 ROC-AUC 从 n 的 0.9239 降到 s 的 0.9113。模型更大,并未学到更稳健的跨域“鸟性”。
五视图取最大概率会提高小鸟召回,也会放大任一裁片的偶发误报。s 多视图在自动阈值下 COCO 召回 97.6%,OI 特异度却只有 49.5%。
保留 YOLO26s 最佳权重作为可复现实验基线,但暂不替换 YOLO26n,也不继续在原 Stage A 上堆轮数。下一笔训练预算应先用于清洗正样本、补本地困难负样本和重建本地验证集,再以 n/s 三随机种子复赛。
这是一次容量消融实验。n 与 s 均为 YOLO26 Classify,而不是 COCO Detect;它们只输出整图的 p_bird,不会输出鸟框或姿态点。
device=mps,workers=0,amp=false| 数据层 | Bird | No bird | 总量 | 组成与用途 |
|---|---|---|---|---|
| Stage A train(视图) | 13,320 | 13,320 | 26,640 | CUB 5,993 全图;COCO 3,237 全图+4,090 框感知 tile;负样本按昆虫、飞行物、动物、人分配并循环采样 |
| Development val | 1,010 | 1,010 | 2,020 | CUB dev 1,000 鸟+本地 10 鸟;负验证 1,000+本地 10,用于早停和自动阈值 |
| Frozen evaluation | 5,939 | 2,116 | 8,055 | CUB stress、COCO val、负验证、OI 官方 test 昆虫/蜘蛛、本地 val 与 regression;训练 SHA 重叠为 0 |
正样本包含同一 COCO 原图的全图与 tile;负样本池只有 6,395 张物理训练图,却被循环到 13,320 个视图。审计证明训练与评测没有哈希泄漏,但视图重复仍会降低有效多样性,这是“无泄漏”之外的第二个数据质量维度。
扩大模型使每轮成本上升 1.73 倍;尽管 s 只执行 8 轮,完整墙钟时间仍比执行 10 轮的 n 高 38.8%。
| 指标 | YOLO26n-cls binary | YOLO26s-cls binary | s 相对 n | 解释 |
|---|---|---|---|---|
| 参数 / 384 px GFLOPs | 1,533,666 / 1.2 | 5,445,570 / 4.4 | 3.55× 参数 | 两者均为 86 层;预训练 1,000 类头被 2 类头替换 |
| 最佳权重体积 | 3.19 MB | 11.02 MB | 3.46× | 本地正式权重文件字节数 |
| 执行轮数 / 最佳轮 | 10 / epoch 3 | 8 / epoch 1 | 更早过拟合 | 两者均因 patience 触发早停 |
| 墙钟 / 每执行轮 | 43m 38s / 261.8s | 60m 34s / 454.3s | 1.39× / 1.73× | 同一 M5、MPS、batch 32 |
| 最佳 Top-1 | 95.792% | 95.891% | +0.099 pp | 提升小于单随机种子通常可解释的波动,不能单独证明升级 |
| 最佳 val loss | 0.11661 | 0.11199 | −3.96% | 同分布验证略好,但不能替代跨域测试 |
s 从最佳轮到最终轮,train loss 从 0.24022 降至 0.04593,说明它继续拟合训练数据。
同期 val loss 从 0.11199 升至 0.17862,方向与训练损失相反,是明确的泛化裂缝。
最终 Top-1 降到 94.554%。早停和 best checkpoint 避免交付 last.pt,但无法消除数据瓶颈。
自动阈值在开发集上要求本地 10 张鸟 100% 召回、CUB dev 至少 98% 召回,再最大化负样本特异度。COCO-90 和 OI-95 则使用冻结测试标签反推,只能表示 oracle 边界,禁止直接上线。
| 模式 / 模型 | 工作阈值 | CUB stress 召回 | COCO 召回 | OI 昆虫/蜘蛛特异度 | 本地 regression Recall / Spec |
|---|---|---|---|---|---|
| Full · n | 自动 0.015 | 99.94% | 98.4% | 50.3% | 100% / 0% |
| Full · s | 自动 0.065 | 99.27% | 93.6% | 72.7% | 100% / 30% |
| Multiview · n | 自动 0.270 | 99.77% | 93.6% | 66.9% | 90% / 40% |
| Multiview · s | 自动 0.095 | 99.87% | 97.6% | 49.5% | 100% / 40% |
Full 模式下,s 用 4.8 pp COCO 召回换来了 22.4 pp OI 特异度,所以它更像是换了操作点。公平判断模型排序能力,应比较同召回、同特异度和 ROC-AUC。
| 公平边界(冻结集后验诊断) | YOLO26n Full | YOLO26s Full | YOLO26n Multi | YOLO26s Multi |
|---|---|---|---|---|
| COCO 召回同为 90.4% 时:OI 特异度 | 79.29% | 74.91% | 72.81% | 65.15% |
| OI 特异度同为 95.07% 时:COCO 召回 | 57.6% | 50.4% | 52.8% | 41.6% |
| COCO-vs-OI ROC-AUC | 0.9239 | 0.9113 | 0.9067 | 0.8728 |
n 为 181.2 张/秒,s 为 138.0 张/秒。s 在 M5 上仍足够做离线筛选,但慢 23.9%。
n 为 49.8 张/秒,s 为 40.8 张/秒;每图 5 个视图。速度损失尚可,误报代价不可接受。
各自自动 Full 阈值下,s 修正 648 张、退化 119 张;修正主要来自 n 极低阈值造成的负样本误报,并不推翻同召回边界更差的结论。
Stage A proxy 统一 EXIF 校正、RGB、等比例缩放和灰色填充为 512×512,再以 JPEG q90 编码。通常 q90 不是主要损失;危险的是先把原图中只有数个像素的鸟放大,再加模糊。
blurred=1。标签技术上有鸟,但人类几乎无法确认。COCO 框感知鸟类 tile 总数。
其中被额外加入高斯模糊,占 29.7%。
最大鸟框面积低于整图 0.05% 的 tile。
最大鸟框面积低于整图 0.1% 的 tile。
当“水面小白点、草地纹理、模糊斑块”频繁带着 Bird 标签出现,容量更大的 s 能更快记住这些捷径。它随后会把没有主体的水面高光、树叶斑点或昆虫轮廓判为鸟。该样本不应作为普通正样本,而应移入低可见性压力集或从训练中剔除。
以下概率来自 YOLO26s Full;以 COCO 90.4% 召回对应阈值 0.07417 复核。前五张为高置信误报,后五张为低置信漏报。原因是目视工程判断,不是注意力框或因果证明。
FP 01 · OI butterfly
p_bird 0.9858三角翼、尖头方向和绿色自然背景与“侧面停栖鸟”形成形状捷径;宏观轮廓压过了昆虫细节。
FP 02 · OI beetle
p_bird 0.9778高对比白底、椭圆身体与向左上方伸出的角,类似鸟身与喙。训练虽有甲虫负样本,但构图和个体外观覆盖不足。
FP 03 · OI bee-like insect
p_bird 0.9636昆虫的毛、眼、翅和树干停栖环境都接近鸟片的局部纹理;整图分类器没有解剖约束去验证“是否真有鸟的头身结构”。
FP 04 · OI spider
p_bird 0.9461大眼、毛发和浅景深是高质量鸟类近摄也常见的视觉统计。缺少对象位置与关键点时,模型只能用相关性排除。
FP 05 · JULY-097
p_bird 0.9247这是最关键的本地域误报。绿色背景、散乱白点和模糊纹理与极小鸟 tile 的标签捷径高度一致,说明“无对象自然纹理”负样本明显不足。
FN 06 · CUB hummingbird
p_bird 0.00053翅膀成为透明模糊带,主体轮廓远离常见停栖全身鸟。对拍鸟筛选而言,这恰好是必须召回的困难姿态。
FN 07 · CUB woodpecker
p_bird 0.00081可见眼部和胸腹轮廓很少,羽毛纹理与树皮混在一起。需要背面、攀树和伪装姿态专项正样本。
FN 08 · CUB flycatcher
p_bird 0.00611全局池化面对混合对象时,人手比鸟占比更大;同时训练里的 person 被当作负类,可能进一步压低 Bird 分数。
FN 09 · CUB swallow
p_bird 0.00612鸟头被巢洞包围,缺少身体、脚和完整轮廓。它验证了边缘裁切、遮挡和部分主体增强不能只停留在理论规划。
FN 10 · COCO mixed object
p_bird 0.01393图片级标签要求“任何位置有鸟”即为正类,但整图分类会让占比更大的猫竞争特征。目标检测或多实例学习比单一全局分类更符合需求。
飞蛾、甲虫、蜂与跳蛛会共享尖头、翼、眼、毛发和自然背景。需要更多与本地拍摄构图一致的困难负样本,而不只是网络宏观类别。
水面高光、叶片斑点、树枝交叉和远处黑点目前没有独立负样本组,却正是“误拍空帧”中最常见的内容。
运动翼、背面、攀树、遮挡、半只鸟和多对象场景召回不足。对最终姿态和对焦模块,这些不是边角案例。
下一阶段不追求更多类别,而追求更明确的任务语义:什么尺寸、可见度和状态算“有鸟”,以及漏一张鸟片与多收一张空帧分别有多贵。
将 bbox_ratio < 0.0005 的 COCO tile 从主训练移入压力集;若 bbox_ratio < 0.001 且 blurred=1,也移出主训练。优先人工复核 298 张最极端样本,再扩到 898 张低于 0.1% 的样本。
从七月空帧与误报中标 1,000–2,000 张:水面高光、草叶斑点、树枝、远处人畜、蝴蝶/蜻蜓、失焦黑点。任何“人也无法确认”的图片进入 ambiguous,不强制二分类。
至少 500 张本地正样本+1,000 张本地负样本;按连拍组和日期分组隔离。阈值门槛建议:本地鸟召回 ≥98%,本地硬负特异度 ≥95%,昆虫特异度 ≥95%。
同一 Stage A-clean,seed 42/123/3407。先不改结构,比较同召回特异度、AUC、校准误差和速度;只有 s 的均值和置信区间持续胜出才升级。
Stage A-clean 单种子预计 n 约 45 分钟、s 约 60–90 分钟;s 三种子约 3–4.5 小时,加全图和多视图冻结评测约 15–20 分钟。数据人工复核的收益将远高于再增加十轮训练。
若清洗和补本地数据后,s 在“同本地鸟召回 98%”下仍不能把本地/昆虫特异度稳定提高至少 2 pp,就停止 s-classify 扩容,转向 n 预筛+Bird Detect/Pose。不要用验证 Top-1 的微小波动延长整图分类路线。
公开报告只记录相对工程标识和校验值,不包含本地绝对路径;完整文件仍保留在项目实验目录。
| 交付物 | 相对位置 / 标识 | 校验或状态 | 用途 |
|---|---|---|---|
| YOLO26s 最佳模型 | models/yolo26s_bird_presence_a_stage_a_seed42_best.pt | 61b178…1071b6 · 11.02 MB | 正式二分类权重 |
| 训练账本 | runs/stage_a_seed42/results.csv / run_config.json | status=completed · 8 epochs | 训练曲线、超参和耗时 |
| 冻结逐图预测 | results/stage_a/full / multiview | 各 8,055 行;样本签名强制一致 | 同口径 n/s 指标与失败排序 |
| 分析摘要 | artifacts/training_analysis.json / comparison_analysis.json | 已生成 | 报告指标的机器可读来源 |
没有证明 YOLO26s 在更干净、更本地化的数据上仍会输;没有证明模型具体“看了”图片哪个位置;没有提供检测框、姿态点或物种分类能力;也没有把测试集后验阈值冒充上线阈值。结论只适用于当前 Stage A、当前预处理和单个 seed 42。
软件和模型能力采用官方文档;性能、时间、参数、阈值和失败样本全部来自 2026-08-03 本地正式运行产物。