公司动态

3步读懂姿态估计模型评估报告:COCO AP与MPII PCK实操

📅 2026/8/24 4:47:41
3步读懂姿态估计模型评估报告:COCO AP与MPII PCK实操
3步读懂姿态估计模型评估报告COCO AP与MPII PCK实操【免费下载链接】human-pose-estimation.pytorchThe project is an official implement of our ECCV2018 paper Simple Baselines for Human Pose Estimation and Tracking(https://arxiv.org/abs/1804.06208)项目地址: https://gitcode.com/gh_mirrors/hu/human-pose-estimation.pytorch你刚训完一个 pose 模型valid.py 吐出一堆数字AP、AR、Mean0.1、分部位准确率——先看哪个和论文里的数怎么对齐这篇实操笔记围绕 human-pose-estimation.pytorch 模型评估这条链路带你 30 秒跑通评估命令再把报告里的数字逐个拆透。 先跑起来30 秒拿到第一份评估报告跑评估前先把权重下好放到对应目录MPII 的放models/pytorch/pose_mpii/COCO 的放同级pose_coco/下文件名要和 README 列的完全一致。然后直接执行# MPII python pose_estimation/valid.py \ --cfg experiments/mpii/resnet50/256x256_d256x3_adam_lr1e-3.yaml \ --flip-test \ --model-file models/pytorch/pose_mpii/pose_resnet_50_256x256.pth.tar# COCO val2017 python pose_estimation/valid.py \ --cfg experiments/coco/resnet50/256x192_d256x3_adam_lr1e-3.yaml \ --flip-test \ --model-file models/pytorch/pose_coco/pose_resnet_50_256x192.pth.tar两个命令的差异就在--cfg和--model-file前者决定数据集、输入分辨率和模型宽度后者指定权重。跑完 MPII 会直接打印PCK0.5分部位表格COCO 则先导出关键点 json再走 COCOAPI 官方的 COCOeval 算出 AP 全家桶。PCK 这个数字出自lib/core/evaluate.py里的accuracy函数核心就三步pred, _ get_max_preds(output) # 预测 heatmap 取 argmax 作为关节位置 target, _ get_max_preds(target) # GT heatmap 取 argmax dists calc_dists(pred, target, norm) # 按图像尺寸归一化后的距离归一化距离小于 0.5 就算对正确数除以有效关节总数就是PCK0.5。归一化用的是 heatmap 的宽高所以这个 0.5 是个尺度无关的相对容差而不是绝对像素。 一张表看懂PCK 和 AP 到底在比什么维度PCK0.5AP及 AP0.5 / AP0.75衡量对象每个关节的预测位置与 GT 的偏差关键点与 GT 匹配后的精度-召回表现计算逻辑归一化距离 0.5 记为正确取正确比例不同置信度阈值下积分精度按匹配规则计分适用数据集MPII单人COCO多人对多人场景敏感度不涉及单人假设高关键点归属错人直接掉分MPII 的 PCK 看着 88~90COCO 的 AP 只有 70~74先别急着下结论说哪个更难。说白了MPII 每张图默认一个人PCK 只量关节偏没偏COCO 要先靠检测框把人找出来多人场景下关节还容易张冠李戴误差源天然多一截。两边数字口径不同拿 90% 对 74% 去比模型好坏是比错了维度。 读懂报告数字背后藏着什么整体趋势先记住这三档下表全部为 flip test 结果来自 README 官方表格架构MPII val Mean%256→384COCO val2017 AP256→384ResNet-5088.53 → 89.0770.4 → 72.2ResNet-10189.13 → 90.0071.4 → 73.6ResNet-15289.62 → 90.2072.0 → 74.3→左边是小输入MPII 256x256 / COCO 256x192右边是大输入384x384 / 384x288COCO 结果基于 human AP 56.4 的人体检测器。两个规律值得留意输入从 256 升到 384 带来约 1.8 个 AP 的增益比 101→152 的差距约 0.7还大分辨率常常比堆深度更划算而 MPII 上 ResNet-15225689.62反超 ResNet-101384 的差距也在说明两个维度要分开看。分部位、分尺度弱项都藏在哪部位梯度头部96.8~97.0 肩部95.6~95.9 肘/髋 手腕83.2~86.2 脚踝79.3~82.9离躯干越远越差——遮挡更多、目标更小。AP(M) vs AP(L)分别对应中、大体型人体的 AP。表里 L 始终明显高于 M152384 为 0.816 对 0.705因为小人像素少关节偏一点就错一截。Mean0.1把 PCK 阈值收紧到 0.1 后的均值152384 为 39.43衡量算对的时候有多准和 Mean0.590.20的差距就是精细化调优的空间。AR 系列召回口径152384 的 AR 0.797 高于 AP 0.743中间的水分主要来自检测框质量和置信度排序不是姿态模型本身。 三板斧把指标再往上抬一点① flip test白捡 1~2 个点输入水平翻转两次预测的 heatmap 取平均代价只是多一次前向。上表所有数字都是开着 flip test 跑出来的所以如果你复现结果比 README 低 1~2 个点先怀疑自己漏了--flip-test。判断条件评估和上线推理时永远值得开。② 分辨率 scaling256 到 384COCO AP 从 70.4 提到 72.2约 1.8 个点是三板斧里性价比最高的一档。判断条件推理延迟预算允许再上——384x288 的像素量是 256x192 的 2.25 倍GPU 开销同步涨实时场景要自己权衡。③ 模型集成交付前的最后一步把不同深度模型如 ResNet-101 ResNet-152的 heatmap 输出取平均各模型互补各自的优势项。判断条件比赛提交或单模型确实到顶、就差临门一脚时才值得训练迭代阶段开集成代价远大于收益。 选型决策你的场景该用哪套配置场景推荐配置理由精度优先ResNet-152 384x288COCO/ 384x384MPII两套数据集都最高AP74.3、PCK0.590.20速度优先ResNet-50 256x192 / 256x256参数量最少、延迟最低AP 70.4 可作基线均衡ResNet-101 384x288比 50384 高 1.4 个 AP推理成本又低于 152想直接改配置去experiments/目录找对应的 yaml比如experiments/mpii/resnet50/256x256_d256x3_adam_lr1e-3.yaml用--cfg传入即可无需改代码。高频踩坑坑一复现结果比 README 低 1~2 个点现象是数字对不齐原因是漏了--flip-test官方表格全部带翻转测试。解法加上这个参数重跑一遍。坑二valid.py 启动即报 FileNotFoundError现象是权重加载失败原因是权重没放到models/pytorch/pose_mpii/或pose_coco/下或文件名对不上必须是 pose_resnet_50_256x256.pth.tar 这类命名。解法对照 README 的目录树逐项核对路径和文件名。坑三COCO 的 AP 低得离谱甚至接近 0现象是分数远低于预期原因是人体检测结果 json 缺失或没对准 val2017 图片集所有关键点都落不到正确的人体框里。解法按 README 补齐 COCO val2017 检测器结果文件确认它与图片集一一对应。评估姿态模型和训练一样先跑通命令再读懂报告最后才谈调参别让一堆数字牵着鼻子走。想再深入可以去读 COCO 官方的 keypoints 评估文档cocodataset.org/#keypoints-eval和 MPII 数据集页面human-pose.mpi-inf.mpg.de。【免费下载链接】human-pose-estimation.pytorchThe project is an official implement of our ECCV2018 paper Simple Baselines for Human Pose Estimation and Tracking(https://arxiv.org/abs/1804.06208)项目地址: https://gitcode.com/gh_mirrors/hu/human-pose-estimation.pytorch创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考