本机完整训练 · Apple M5 / MPS · 2026-08-07

四套鸟类数据,训练一只可解释的 YOLO26s

GBDD1433-2023、IBERBIRDS、NABirds 与 Big Bird 被统一为单类鸟检测任务;在事件级划分和感知哈希去泄漏之后,先覆盖全量数据,再做域平衡精调,并逐域检验结果。

单类 bird 检测固定 960 pxAdamW + 两阶段课程证据截至 2026-08-07
204,697清洗后的图像 / 切片记录
0.699全量验证 mAP50–95
19.8 h训练与分域评估墙钟
19.4 MB最终 best.pt
Executive decision

结论先行:能做什么,不能做什么

总分只回答“这套混合验证集上表现如何”。是否适合项目,要看分域结果、真实无反样本和失败样例。

01 · MODEL

训练链路已跑通

最终模型在全量验证集上取得 Precision 0.949、Recall 0.902、mAP50 0.963 与 mAP50–95 0.699。这是一套可复现的一类鸟检测基线。

02 · DOMAIN

跨数据域差异显著

分域 mAP50–95 最强为 GBDD 测试 0.767,最弱为 Big Bird 测试 0.424。差距说明采摄视角和目标尺度不能被一个汇总指标抹平。

03 · NEXT

还不能声称适配现代无反

公开集主要是低分辨率网络图、北美长焦图、飞鸟截图和无人机俯拍。进入项目部署前,仍需用项目自己的无反原图按连拍事件建立独立测试集并微调。

建议决策

把本次 best.pt 作为“公共数据预训练基线”,而不是最终生产模型。优先补 2,000–5,000 张现代无反目标域图片,至少覆盖枝头、飞行、逆光、遮挡、远距离小目标与空景;按拍摄事件切分后再决定是否升级到 P2 小目标头或更大模型。

Chapter 01

四套数据如何进入同一个任务

这里的数量来自实际可解析文件和最终划分,不沿用压缩包条目数或原始 JSON 的重复记录。

四个数据集的代表样本及鸟框
本地样本抽查。 从上到下分别展示 GBDD、IBERBIRDS、NABirds 与 Big Bird;相同的“鸟框”任务覆盖了截然不同的像素、视角和主体尺度。
数据集 / 年份实际进入统一集最终框数原始标定鸟种丰富度拍摄特点 / 训练角色
GBDD1433-2023
2023
140,159 图142,594COCO [x,y,w,h];清洗后折叠为 bird实包 1,432 类目录网络来源广、主体通常大,但像素很低;承担覆盖阶段主样本
IBERBIRDS
2025
4,000 图4,000每图 1 个 YOLO 框10 种 × 400 图中远距离单只飞鸟;按 eBird checklist 分组,补充飞行域
NABirds
2015
48,562 图48,562每图 1 框;另有 11 部位点555 视觉类,约 404 物种长焦主体大、背景虚化常见;按 1,031 个摄影者分组
Big Bird
版本 2026-03
11,976 个 1024 切片
来自 4,824 张航拍原图
80,842COCO 框,部分目标另有 polygon101 个命名物种 + 通用 bird无人机俯拍、密集小目标和空图;用于小目标与难负样本

GBDD 清洗

原 JSON 含 140,393 个唯一图像 ID。最终落盘 140,159 图;缺失 231 图,裁剪 472 个越界框,丢弃 3 个无效框。

Big Bird 切片

原图中只有 1,615 张含目标。使用 1024 px、20% 重叠切片,保留 10,524 个正样本与 1,452 个负样本,避免把 12 MP 原图整体压到 960 后让鸟退化成点。

统一输出

全部转为 YOLO 单类 class cx cy w h。最终 train / val / test 为 165,329 / 20,763 / 18,605,共 275,998 个框;来源和组 ID 仍保留在 manifest 中用于审计。

Chapter 02

先去泄漏,再相信验证分数

随机按单图切分会把网络转载图、连拍近似图和同一观察事件分散到训练与测试,形成虚高分数。

感知哈希发现的近重复鸟类照片
pHash 近重复示例。 文件名和来源可能不同,但画面几乎相同;同簇必须归入同一个 split。
AUDIT

192,721

对非 Big Bird 原始图做 pHash64 审计,汉明距离阈值 ≤ 4,解码失败 0 张。

DUPLICATES

15,038 簇

共涉及 33,841 张重复或近重复图,其中 348 个簇跨数据源。

BEFORE

5,372 簇

审计前同时出现在多个 split,会直接污染泛化评估。

AFTER

0 组重叠

重分配 11,581 条记录后,组级 train / val / test 重叠归零,最终校验通过。

审计边界

Big Bird 没有纳入全分辨率 pHash:它已经按航次代理组划分,且超大无人机原图做近邻搜索代价高、跨公开鸟图库重复概率低。这是明确记录的工程折中,不代表 Big Bird 完全不存在近重复。

Chapter 03

为什么这样训练

参数不是从默认表里随意抄取,而是由目标尺寸、数据构成和 Apple MPS 实测共同约束。

Stage 1 · Coverage165,329 图 × 1 epoch把所有清洗训练图至少看一次 · 8.9 小时
Stage 2 · Balance24,000 图 × 8 epochs55% GBDD / 20% NAB / 20% Big / 5% IBER · 10.6 小时
Stage 3 · Evaluate5 个独立评估域全量 val + 四个来源 test · 18 分钟
参数最终设置依据
模型YOLO26s,COCO 预训练约 9.5M 融合参数、20.7 GFLOPs;比 n 有更充足的小目标表征,又能在 32 GB M5 上维持 batch 8
输入 / batch960 / 81024 Big Bird 切片只做少量缩放;batch 8 烟雾测试起始约 10.6 GB,正式覆盖 / 均衡阶段观测峰值分别为 16.6 / 19.5 GB MPS 内存
优化器AdamW,lr0=0.0003覆盖阶段从 0.001 起;平衡精调使用 0.0003,避免在缩小且重采样的数据上快速遗忘
学习率cosine,lrf=0.01,warmup=0.24 epoch8 epoch 短精调需要平滑退火;warmup 按总 epoch 的 3% 设置并设下限
几何增强mosaic 0.3,mixup 0.05,scale 0.35,rotate ±10°覆盖阶段原用 mosaic 0.5;观察到 251 实例 batch 后,平衡精调降至 0.3,以保留小目标组合同时降低密集航拍切片叠加的内存尾部风险;相机照片不使用垂直翻转
多尺度 / 精度固定 960;MPS AMP 关闭动态 800–1216 实测出现 MPS 内存持续增长至约 29.7 GB,故停掉失败试跑并锁定尺寸;MPS 路径不启用 AMP
可复现性seed 0,deterministic,cache off固定划分和增强随机源;不缓存 20 万张图,减少统一内存压力
环境Apple M5 / 10 核 GPU;MPS
PyTorch 2.13.0 · Ultralytics 8.4.115
本表与墙钟只描述本机运行;MPS 与 CUDA 的混合精度、吞吐和显存行为不可直接互推
Balanced fine-tune

mAP50–95

0.5830.5038 epochs
Balanced fine-tune

训练分类损失

1.0090.5698 epochs
一次有价值的失败试跑

最初启用 multi_scale=0.25,输入在 800–1216 间变化;MPS 内存上升到约 29.7 GB,因而在第 10 batch 后主动终止。最终配置仍保留 scale=0.35 的图像内容缩放增强,但输入张量固定为 960×960。两者不是同一个参数。

Chapter 04

分域结果比总分更重要

所有指标使用同一最终 best.pt、960 输入和 batch 8。Precision / Recall / mAP 均为 Ultralytics 单类检测验证输出。

Held-out domain comparison

mAP50–95

全量验证
0.699
GBDD 测试
0.767
IBERBIRDS 测试
0.757
NABirds 测试
0.715
Big Bird 测试
0.424
评估集图像 / 切片PrecisionRecallmAP50mAP50–95推理
全量验证20,7630.9490.9020.9630.69913.2 ms
GBDD 测试13,8340.9750.9620.9910.76713.0 ms
IBERBIRDS 测试2920.9600.9180.9840.75715.2 ms
NABirds 测试3,2490.9730.9570.9850.71513.6 ms
Big Bird 测试1,2300.8120.7030.7920.42418.5 ms
GBDD 测试批次的 YOLO26s 预测
GBDD 测试批次。 网络来源、低像素、主体尺度变化大的常规鸟图。
NABirds 测试批次的 YOLO26s 预测
NABirds 测试批次。 更接近地面长焦构图,但公开图片仍经过缩放。
IBERBIRDS 测试批次的 YOLO26s 预测
IBERBIRDS 测试批次。 中远距离飞鸟,背景多为天空或模糊地景。
Big Bird 测试切片的 YOLO26s 预测
Big Bird 测试切片。 无人机俯拍、密集小目标与负样本是最不同的来源域。

覆盖阶段

全量 1 epoch 结束时,开发验证集 mAP50–95 为 0.422。它的作用是把四域的长尾视觉模式先写入权重,不追求完全收敛。

平衡精调

8 epoch 中最佳开发验证 mAP50–95 出现在第 7 epoch,为 0.583。最终报告与分域评估使用训练器保存的 best.pt

耗时解释

全流程共 19.8 小时,包含覆盖训练、平衡精调与五次验证。墙钟是这台 10 核 GPU 的 Apple M5 / 32 GB 统一内存本机实测,不可直接外推到 CUDA。

如何读数

mAP50 更接近“鸟有没有被大致框住”,mAP50–95 同时惩罚框的位置与大小偏差。现代无反鸟片常见大主体,对框精度要求更高;部署判断应优先看 mAP50–95、Recall 以及目标域漏检样例。

Chapter 05

模型卡:边界、风险和下一轮

这是 bird / non-bird 定位器,不是鸟种分类器;公开数据成绩不等于真实相机域成绩。

目标域缺口

GBDD 中位像素约 0.05 MP;IBERBIRDS 与 NABirds 多数最长边约 1024;Big Bird 是俯拍。现代无反原图的高频羽毛细节、机内锐化、长焦景深和连拍序列都没有被充分覆盖。

标签语义

四套数据的“框”来源不同:单体长焦框、飞鸟框、通用鸟框和密集航拍框混在同一类。模型会学到 bird 的共同外观,但不保证各物种、幼鸟、剪影和极端姿态公平。

部署用途

适合作为图库预筛、裁鸟候选框或下一轮主动学习的起点。高风险生态调查、数量统计或稀有物种结论,必须由目标域标注和人工复核支撑。

下一轮实验触发条件建议设置成功标准
无反域适配一律优先2k–5k 项目图片;按连拍事件 split;lr0 1e-4;30–50 epoch;冻结 0–5 epoch 仅作对照独立目标域 mAP50–95 与 Recall 明显提升,且不同机身/镜头差距缩小
P2 小目标头目标域短边经常 <32 px对比 yolo26s-p2.yaml;保持相同数据与预算小目标 AP / Recall 提升足以抵消延迟与显存增加
输入 1280部署算力允许且远鸟漏检batch 2–4、固定尺寸;不在 MPS 上启用动态多尺度目标域增益稳定,端侧延迟仍满足产品约束
检测 + 分类两阶段需要物种名检测框裁切后,用 NABirds / GBDD taxonomy 训练独立分类器检测 Recall 与物种 top-k 分开验收,避免背景捷径
推荐验收单元 = 拍摄事件 × 相机/镜头 × 场景 × 目标尺度 × 清晰度
推荐主指标 = 目标域 mAP50–95 + Recall + 小目标 Recall + 每事件漏检率
Reproducibility

复现实验的最短路径

脚本、清单、运行状态与权重均保存在本地训练工程;公开报告不嵌入绝对路径或凭据。

01

准备与审计

prepare_dataset.py 生成统一 manifest、YOLO 标签与组划分;audit_phash_splits.py 发现近重复并把同簇重新归并。

02

课程与训练

make_local_curriculum.py 生成 coverage / balanced 清单;run_local_curriculum.py 顺序完成两阶段训练并持续写状态文件。

03

分域与报告

evaluate_domains.py 产生机器可读 JSON;本页由该 JSON、训练 CSV 与清洗审计 JSON 自动生成,减少手抄数字。

图像解码提示

Ultralytics 在扫描阶段发现少量截断 JPEG,并执行“恢复后保存”。因此本次训练证据记录的是实际可读后的文件状态;若需要字节级复现,应从原始归档重新解包并在只读副本上训练。

Evidence

公开来源与证据边界

数据规模与年份来自项目页或论文;“进入统一集”“去泄漏”“墙钟”和所有分域指标来自本机文件审计与本次运行。

  1. GBDD1433-2023 官方仓库;论文:Bird Object Detection: Dataset Construction, Model Performance Evaluation, and Model Lightweighting
  2. IBERBIRDS Zenodo 数据记录Data in Brief 数据论文
  3. Big Bird · LILA BCRemote Sensing in Ecology and Conservation 数据论文
  4. NABirds 官方页CVPR 2015 数据集论文
  5. Ultralytics YOLO26 模型文档训练配置文档。官方页面给出的 YOLO26s 融合模型为约 9.5M 参数、20.7 GFLOPs;本次本机训练使用完整训练结构。
  6. 本地证据:统一数据 summary、manifest、pHash 审计、课程清单、训练启动配置、每 epoch CSV、最终权重与五域验证 JSON。报告生成器只读取这些产物,不根据最终观感反向改写指标。