迁移主体,重建 Pose 头
原始模型的 COCO 17 人体点头被替换为 NABirds 11 鸟体点头,795/879 项权重成功迁移;backbone、neck 与可兼容检测分支继续微调。
MODEL TRAINING & KEYPOINT AUDIT · 2026-08-20
从原始 YOLO26s-pose 权重出发,在 NABirds 48,562 张单鸟图上完成 11 点训练;本次更新进一步逐图重跑全部 24,633 张官方测试图,用带点名的真值/预测叠加图展示准确定位、轻度偏移、明显错位、关键点漏检和整鸟漏检。
结论只使用本次本地训练、独立验证和官方测试集实测;没有把验证图片混入最终测试。
原始模型的 COCO 17 人体点头被替换为 NABirds 11 鸟体点头,795/879 项权重成功迁移;backbone、neck 与可兼容检测分支继续微调。
全测试集按关键点 conf≥0.50 再审计后,90.5% 的真值可见点落在鸟框长边 10% 内;翼和尾明显弱于眼、喙。
该模型适合为后续鸟眼、鸟翼与局部清晰度判断提供坐标先验;是否直接用于生产,应结合 A7R6 PreviewImage 的域外实拍再验收。
NABirds 是精心收集的单鸟照片,和暗光、强遮挡、运动模糊、远距离小鸟的 A7R6 实拍分布不同。官方测试成绩证明同域学习效果,不等同于相机工作流中的最终效果。
NABirds 给每张图定义固定顺序的 11 个部位中心点。它不是骨架,也没有眼—喙—翼之间的连线;左右点因视角和遮挡天然更稀疏。
训练图,官方训练集的 90%
按物种分层验证图
未参与调参的官方测试图
全部图片使用硬链接,避免重复 9.4GB
绿色空心环 G0–G10 是 NABirds 数据集真值,粉色实心点 P0–P10 是模型预测;白线表示两者接近,橙线表示鸟框长边 5%–10% 的轻度偏移,红线表示超过 10% 的明显错位,真值点上的红叉表示模型关键点置信度低于 0.50。绿色框是真值鸟框,粉色框是预测鸟框。
可见率表示数据集有多少图片把该部位标为可见;PCK越高越好,分别要求误差不超过鸟框长边5%/10%;NME越低越好,0.040代表平均偏移约为鸟框长边4%。完整公式和好坏解释见“指标”章节。
| 特征点 | 全库真值可见率 | 严格命中 PCK@.05 ↑ | 宽松命中 PCK@.10 ↑ | 平均相对偏移 NME ↓ |
|---|---|---|---|---|
| 喙bill | 98.6% | 94.4% | 98.0% | 0.021 |
| 头顶crown | 97.7% | 93.8% | 98.6% | 0.023 |
| 后颈nape | 94.1% | 84.1% | 95.9% | 0.032 |
| 左眼left_eye | 52.1% | 96.8% | 98.7% | 0.013 |
| 右眼right_eye | 51.3% | 96.8% | 98.7% | 0.013 |
| 腹部belly | 82.1% | 63.4% | 91.6% | 0.049 |
| 胸部breast | 92.4% | 74.1% | 95.3% | 0.040 |
| 背部back | 80.8% | 73.6% | 94.0% | 0.042 |
| 尾部tail | 90.2% | 68.1% | 87.8% | 0.056 |
| 左翼left_wing | 59.7% | 46.5% | 77.6% | 0.078 |
| 右翼right_wing | 58.7% | 45.3% | 75.1% | 0.082 |
parts/parts.txt 定义 0–10 的点名;parts/part_locs.txt 每行格式为 image_id part_id x y visible,其中 x/y 是原图像素坐标,visible 为 0/1;鸟框在 bounding_boxes.txt。
yolo_pose/dataset/labels/{train,val,test}/<image_id>.txt。每行是 0 cx cy w h x0 y0 v0 … x10 y10 v10,坐标按整图归一化;缺失点 visibility=0,可见点=2。点名与顺序还写在 dataset/nabirds-pose.yaml。
只有真值 visible=1 的点才参与准确率与本次错误分类。真值不可见时,模型即使给出一个坐标也没有可验证目标,因此图中不画,也不判对错。训练水平翻转使用 [0,1,2,4,3,5,6,7,8,10,9] 同步交换左右眼和左右翼。
图中的蓝框和彩点是训练数据真值经过增强后的可视化,不是模型预测;batch 选择与训练效率结果放在其后。
这张图只含 Ground Truth(数据集标注)。它用来发现旋转、缩放、Mosaic、水平翻转后,框和点是否仍贴在鸟身上。要判断模型对错,必须看后文同时出现绿色 G 真值、粉色 P 预测和二者偏移线的逐图审计。
增强后的真值鸟框,不是预测框。框住鸟说明框标注随几何变换保持对齐。
类别编号:本数据集只有一类,0 = bird。它不是第0号关键点,也不是置信度。
增强后的11个真值关键点。Ultralytics 拼图只用颜色区分,不写点号和点名,所以不能靠这张拼图认出每个部位。
来自旋转后的填充、缩放和 Mosaic/批次排版。它们是训练增强效果,不代表原始照片损坏。
| Batch | 短测吞吐 | 峰值 MPS 内存 | 决策 |
|---|---|---|---|
| 16 | 12.86 img/s | 8.56 GB | 采用 |
| 24 | 13.62 img/s | 12.70 GB | 不采用 |
12 epochs · 640 px · batch 16 · AdamW · cosine LR · MPS BF16 · workers 4 · mosaic 0.5,最后 2 轮关闭 mosaic。模型参数约 11.1M,COCO 17 点头在启动时替换为 NABirds 11 点头。
两者都把鸟的大小纳入计算,但回答的问题不同:OKS 用于标准检测式 AP 评估,PCK/NME 更容易直接换算成像素误差。
可把它理解成“关键点版 IoU”:预测点越接近真值,OKS 越接近 1;偏得越远,越接近 0。它对所有真值可见点的相似度取平均。
dᵢ 是第 i 个预测点到真值点的像素距离,A 负责消除大鸟/小鸟的尺度影响,σᵢ 控制容忍度。
本报告令 L 为真值鸟框长边,先计算每个可见点的归一化误差:
例如鸟框长边 400 px:PCK@0.05 要求误差≤20 px,PCK@0.10 要求误差≤40 px。PCK 越高越好;NME 越低越好。
NABirds 是自定义11点,当前 nabirds-pose.yaml 没有提供鸟类专用 kpt_oks_sigmas;Ultralytics 8.4.115 因而对11点统一使用 σ=1/11。所以这套 OKS 适合本模型在同一配置下做内部比较,但不应直接与 COCO 人体 Pose 榜单横向比较,也还没有体现“眼应更严格、翼中心可稍宽松”的业务差异。
AP 是把预测按置信度从高到低排列后得到的 Precision–Recall 曲线面积;本项目只有 bird 一类,所以 mAP 主要是在多个匹配阈值间取平均。
| 指标 | 本次结果 | 具体含义 | 怎样评价 |
|---|---|---|---|
| Pose mAP50 | 99.3% | 预测姿态与真值的 OKS≥0.50 即可匹配,再计算 AP。 | 同域很好,但门槛较宽。不是“99.3%的点完全正确”。 |
| Pose mAP50–95 | 82.1% | 在 OKS=0.50、0.55…0.95 十个阈值分别算 AP 后平均。 | 同域较强。高阈值更要求整套点位贴近真值,因此比 mAP50 低。 |
| Box mAP50 | 99.3% | 用框的 IoU≥0.50 判断匹配;IoU=交集面积/并集面积。 | 检出鸟很稳定。但不代表框边界非常准。 |
| Box mAP50–95 | 71.3% | 框 IoU 从0.50到0.95的十档 AP 平均。 | 边界精度仍有空间。从99.3%降到71.3%说明严格框阈值更难。 |
| PCK@0.05 | 76.9% | 点误差≤真值鸟框长边5%;整鸟漏检计错。 | 严格定位约四分之三通过。对眼部裁剪比 PCK@.10 更有参考性。 |
| PCK@0.10 | 92.6% | 点误差≤真值鸟框长边10%;整鸟漏检计错。 | 宽松定位很好。但400 px鸟框允许40 px误差,不足以证明眼点足够精细。 |
| 检出后平均 NME | 0.040 | 鸟框已经检出时,可见点平均偏移约为鸟框长边的 4.0%。 | 整体较低。平均值会掩盖翼和尾的长尾错误。 |
| 整图检测率 | 99.5% | box confidence≥0.25 时找到至少一只鸟的图片比例。 | 同域很好。仍有 115 张整鸟漏检。 |
Precision 问“模型报出的结果里有多少是真的”,Recall 问“真值目标里有多少被找到了”;AP 综合整条 Precision–Recall 曲线。confidence 是模型对某个框或点的自信程度,不是几何误差;把阈值调低会输出更多点、减少表面漏点,但也可能放进更多错位点。
分母是 211,126 个真值可见关键点,来自全部 24,633 张官方测试图。先看点的置信度,再看归一化距离;14张图用于把各类结果具体画出来。
严格准确:点 conf≥0.50 且 NME≤0.05。它是右侧90.5%中的一部分,不应再与90.5%相加。
同域严格定位较好达到当前可用线:点 conf≥0.50 且 NME≤0.10,其中包含左侧75.7%的严格准确点和14.8%的轻度偏移点。
宽松定位良好明显错位:模型对点有足够信心并输出,但距离真值超过鸟框长边10%。这是比低置信更危险的错误。
需要重点减少低置信未采用:整鸟已经找到,但该点 conf<0.50。模型可能仍有一个猜测坐标,本报告按部署规则视为漏点。
阈值与训练共同影响前面的 PCK 只按坐标距离判断;这里增加了部署阈值:关键点 confidence 低于0.50,即使模型内部坐标碰巧接近,也归为“低置信未采用”。所以本节更严格,目的是把可信可用坐标与低置信猜测分开。
90.5% 的点在10%鸟框尺度内,且整图检测率 99.5%;作为 NABirds 同域结构先验,结果是好的。
总体 75.7% 在5%尺度内,但左右翼只有约42%–44%达到这一档;结果好坏混合,不能只看总体平均。
这些数来自 NABirds,同域好成绩不能证明逆光、模糊、小鸟和遮挡场景同样有效;目前尚未完成生产验收。
| 真值可见点 | 数量 | 精确 ≤.05 | 轻偏 .05–.10 | 明显错位 >.10 | 低置信漏点 | 整鸟漏检造成 |
|---|---|---|---|---|---|---|
| 喙bill | 24,278 | 94.3% | 3.6% | 1.6% | 0.1% | 0.4% |
| 头顶crown | 24,077 | 93.7% | 4.7% | 0.9% | 0.3% | 0.4% |
| 后颈nape | 23,169 | 84.1% | 11.6% | 3.6% | 0.3% | 0.4% |
| 左眼left_eye | 12,828 | 93.8% | 1.2% | 0.3% | 4.2% | 0.5% |
| 右眼right_eye | 12,650 | 93.7% | 1.3% | 0.4% | 4.2% | 0.4% |
| 腹部belly | 20,168 | 62.3% | 27.4% | 7.2% | 2.7% | 0.3% |
| 胸部breast | 22,801 | 73.9% | 20.8% | 4.0% | 0.9% | 0.4% |
| 背部back | 19,920 | 71.5% | 19.2% | 4.4% | 4.6% | 0.4% |
| 尾部tail | 22,170 | 67.3% | 19.1% | 11.1% | 2.2% | 0.3% |
| 左翼left_wing | 14,664 | 43.6% | 27.9% | 16.5% | 11.6% | 0.4% |
| 右翼right_wing | 14,401 | 42.2% | 26.4% | 17.6% | 13.5% | 0.4% |
左右翼的明显错位率分别为 16.5% 与 17.6%,低置信漏点率为 11.6% 与 13.5%;眼和喙明显稳定。原因与部位面积大、形变强、遮挡多、左右翼真值可见样本少共同相关。
这些图所有真值可见点都满足 NME≤0.05;注意未标出的点是数据集判定不可见,并非模型漏检。
橙线把 5%–10% 的偏移显式画出,常见于背部、腹部和翼中心这类边界不尖锐的语义部位。
红线对应 NME>0.10。这里把具体错误点列进图注;部分案例同时伴随预测框过大或抓到遮挡物,说明框错误会传导到 Pose。
前两张是鸟框存在但若干点低于 0.50;后两张是整只鸟没有达到 box conf 0.25,因此全部可见点都无法输出。
红线和红叉都以数据集真值为参照。数据集本身仍可能存在人工标注噪声,但要确认真值错误必须回到原图与 parts/part_locs.txt 逐条复核;本次没有把预测与真值不一致自动归罪于数据集。
当前基线已经回答“模型能否学会 11 个鸟体点”。后续投入应由真实 PreviewImage 上的失败模式决定。
从 A7R6 PreviewImage 中覆盖逆光、飞鸟、遮挡、小目标和模糊,人工标注约 300–500 张作为域外验收,不加入本轮训练。
本次全量审计已证明弱点主要在左右翼、尾和躯干中心。优先复核这些点的真值、遮挡与姿态分布,再做困难样本增量训练。
如果 A7R6 错误主要来自小鸟像素不足,再从本轮 best.pt 以 896/960 px、低学习率精修;如果是域差异,则优先混入实拍标注。
PCK 对鸟框尺度归一化,适合跨大小比较,但不能直接代表眼部是否清晰;关键点坐标可作为后续局部裁剪先验,清晰度仍需独立模型或成像指标判断。
公开链接用于任务与数据定义;训练产物日期为 2026-08-19,逐图关键点审计与指标释义更新于 2026-08-20。
models/yolo/pose/val.py 与 utils/metrics.py;确认自定义11点默认统一 σ=1/11、面积系数0.53。parts/parts.txt、parts/part_locs.txt、bounding_boxes.txt;转换后标签:dataset/labels 与 dataset/nabirds-pose.yaml。results.csv、官方测试 evaluation-summary.json、全量逐图审计 keypoint-audit-summary.json 与 best.pt。