MMPose 关键点半自动标注:5 步跑通实战
2026/9/20 21:21:15 网站建设 项目流程

MMPose 关键点半自动标注:5 步跑通实战

【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose

数据集到 5000 张还在一张张手标?单人 17 个关键点加上框和分割,纯人工标注不仅慢,遇到遮挡、密集多人场景时一致性还会崩。MMPose 在工具箱里内置了一整套关键点标注工具链:人工侧对接 Label Studio,半自动侧提供让姿态模型先"做一遍"、人工只改错的伪标签脚本,全部落在tools/目录,拿来即用。

工具定位:模型粗标,人工改错

一句话定位:Label Studio 负责"标",MMPose 负责"脏活"。Label Studio 本身无法把关键点数据直接导出成 MMPose 需要的 COCO 格式,tools/dataset_converters/labelstudio2coco.py补上了这个缺口;而tools/misc/下的伪标签脚本则让检测模型先出框、姿态模型先出点,人只修错。与纯人工标注平台的区别就在这一点——参考文章给出的估算里,千张图片的全流程周期从约 24 天压到 6 天以内。

几个关键默认值先记住:关键点置信度阈值--kpt-thr 默认 0.3,检测框 NMS 阈值默认 0.65,一个实例需要关键点、框、分割三类标注齐全。

最小可用的标注路径

从零到跑通只需 5 步,每步一条命令或一个动作:

  1. 装环境:MMPose 依赖 OpenMMLab 全家桶,用 mim 最省事:
pip install openmim mim install "mmpose"
  1. 配置 Label Studio 标注界面:项目 Settings → Labeling Interface 粘贴官方示例 XML,必须包含KeyPointLabelsPolygonLabelsRectangleLabels三种标签,且标注顺序严格"关键点在前、框或分割在后"(完整示例见 docs/zh_cn/user_guides/label_studio.md)。
  2. 模型先跑一遍:检测模型出框,RTMPose 出伪标签:
# 1) 目标检测先生成人体 bbox python tools/misc/generate_bbox_file.py <det_config> <det_weight> data/bbox.json \ --score-thr 0.5 --nms-thr 0.65 # 2) RTMPose 过一遍,输出 COCO 伪标签 python tools/misc/keypoints2coco_without_mmdet.py \ configs/body_2d_keypoint/rtmpose/coco/rtmpose-m_8xb256-420e_coco-256x192.py \ <ckpt> --json-file data/bbox.json --img-root data/imgs \ --out-json-file data/pseudo.json --kpt-thr 0.3
  1. 人工修正:把伪标签结果导入 Label Studio,重点修遮挡关节、偏移的框和多人混淆点。
  2. 转换与校验:导出 JSON 转 COCO,再可视化抽查:
# config.xml 即标注界面 Code 内容 python tools/dataset_converters/labelstudio2coco.py config.xml export.json data/coco.json # 抽样浏览标注结果 python tools/misc/browse_dataset.py <train_config> --not-show --output-dir data/vis

把图片文件夹和result.json放在同一目录,COCO 数据集就成型了。

进阶能力:按场景挑策略

  • 密集多人场景:框重叠时先收紧--score-thr(0.5 起步往上试),再看 NMS;仍混乱就换 bottom-up 模型出点。
  • 遮挡关键点:Label Studio 无法标"可见性",转换脚本默认把非零点可见性置 2、原点 (0,0) 视为不可见(0)——所以被完全挡住的关节可以不标,脚本会正确处理。
  • 质量提升:主动学习 ≈ 先全量做一遍,再挑错题重点练。按伪标签里关键点得分低的图像排序,优先人工复核这批"模型没把握"的样本,比平均用力省时间。
  • 大规模处理:按场景类型(室内/室外)、人体密度拆分批次并行标注,每批用browse_dataset.py抽样校验后再合流。
策略适用规模人工成本质量
纯人工标注<1k 张最高、最一致
伪标签 + 全量人工复核1k–10k高,适合正式数据集
伪标签 + 抽检修正>10k够用,需定期抽检防漂移

高频坑与解法

现象可能原因快速验证处理方向
转换后实例缺 bbox/segmentation标注顺序不是"关键点在前"转换脚本日志会出现 warning按 关键点→框/分割 顺序重标,对照 label_studio 文档
图片与标注对不上Label Studio 截断过长文件名导出 COCO 格式比对图片目录使用 COCO 导出压缩包内的图片文件夹,别用原上传文件
伪标签大量被丢弃--kpt-thr过高降到 0.1 重跑,对比输出 annotation 数量0.3 保干净;要召回就降阈值后人工筛
密集场景出框重复--score-thr过低提到 0.6 重跑数框与 NMS 默认 0.65 联动调整
看不出标注对错没有可视化环节browse_dataset.py --not-show导出图--mode original/transformed对照原图

选型建议:按规模分层

  • 如果你只有几百张:Label Studio 纯人工 + 转换脚本即可,伪标签是可选加速项,别过度设计。
  • 如果是1k–10k 的中等规模:直接走本文最小路径,伪标签全量出点、人工全量复核,这是性价比最高的一档。
  • 如果是万级以上:按场景与人体密度拆批并行,叠加低置信度优先修正的主动学习策略,每批校验通过再合流。

需要说明的是,本文没覆盖:3D 关键点/网格标注、视频逐帧时序一致性校验,以及多人实时协同标注平台——3D 相关可另行参考仓库中 H3.6M 等数据集的配置与文档。

收尾

MMPose 标注工具链的价值就一句话:模型粗标、人工改错、脚本校验,把标注从体力活变成审核活。跑通 5 步路径后,建议顺手读一遍 docs/zh_cn/user_guides/label_studio.md 和数据集准备文档,再看demo/inferencer_demo.py验证你的数据能直接喂给推理接口。

【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询