资讯动态

MMPose 关键点标注指南:把上万张图变成可训练的 COCO 数据集

发布时间:2026/9/20 13:28:19 来源:尧图企业网站定制
MMPose 关键点标注指南把上万张图变成可训练的 COCO 数据集【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose如果你手里有一批等着标关键点的人体图像纯人工标 1 万张基本等于几个标注员干上一两周。MMPose 的半自动标注流程思路很直接先让预训练姿态模型打一遍伪标注人只负责挑错修正最后统一转成 COCO 格式数据集——检测框、关键点、可见性训练配置拿来就能用。整套流程依赖仓库里四个脚本和 Label Studio开源标注平台下面按你实际会经历的路径走一遍。先跑通单图推理确认模型值得你信模型预标注的前提是它在你这类图上够准。先拿一张典型图验证python demo/image_demo.py tests/data/coco/000000000785.jpg \ configs/body_2d_keypoint/rtmpose/coco/rtmpose-m_8xb256-420e_coco-256x192.py \ ${MMPOSE_CHECKPOINT_FILE} --out-file vis.jpg${MMPOSE_CHECKPOINT_FILE}是 RTMPose-M256x192COCO 预训练的权重文件从 MMPose 官方 Model Zoo 下载即可。跑完你会看到原图上画出 17 个关节点顺手抽 20 张你的目标场景图各跑一遍错得离谱的多就换更高分辨率的配置比如 384x288 版本。更详细的用法见 demo/docs/en/2d_human_pose_demo.md。批量伪标注检测器找人姿态模型打点Top-down 姿态模型只负责给框打点框得先有。MMPose 用两个脚本把这件事拆开先跑检测器对数据集里每张图输出带分数的 person 框python tools/misc/generate_bbox_file.py \ ${DET_CONFIG} ${DET_WEIGHT} bbox.json \ --pose-config configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrnet-w32_8xb64-210e_coco-256x192.py这里有个容易忽略的细节--pose-config只用来构建图像列表读它的 test set所以这个配置里的数据路径要指向你自己的图。检测器配置仓库里也备好了见 demo/mmdetection_cfg/RTMDet、Faster R-CNN 等前提是装好 mmdet。脚本内部会做置信度过滤 NMS输出标准 COCO bbox json。然后拿 bbox 文件喂给姿态模型批量生成伪标注python tools/misc/keypoints2coco_without_mmdet.py \ ${MMPOSE_CONFIG} ${MMPOSE_CHECKPOINT} \ --json-file bbox.json --img-root data/images \ --out-json-file pseudo.json --kpt-thr 0.3--kpt-thr是关键低于 0.3 置信度的点会被丢弃而不是错标宁缺勿错。这一步完成后你就有一份看起来能训练的 COCO 伪标注——但记住它没有遮挡状态而且小人、遮挡处的点大概率是错的所以下一步不能省。人工修正用 Label Studio 接管模型犯的错Label Studio 本身不能直接导出 MMPose 需要的 COCO 格式但 tools/dataset_converters/labelstudio2coco.py 补上了这一环。它要求你在 Label Studio 的标注界面Settings → Labeling Interface → Code里同时配置三类标签View KeyPointLabels namekp-1 toNameimg-1 Label valueleft_shoulder background#D4380D/ !-- 按数据集 keypoint 顺序列全 17 个点 -- /KeyPointLabels PolygonLabels namepolygonlabel toNameimg-1 Label valueperson background#0DA39E/ /PolygonLabels RectangleLabels namelabel toNameimg-1 Label valueperson background#DDA0EE/ /RectangleLabels Image nameimg-1 value$img/ /View三类标签分别对应 COCO 的keypoints、segmentation、bbox。两个规则必须遵守否则转换脚本会连错片顺序同一个实例必须先标完全部关键点再标多边形/矩形框——脚本靠连续的 keypointlabels 属于同一实例、矩形/多边形回填到上一个实例来合并数据数量KeyPointLabels 的个数和顺序要和 MMPose 配置里dataset_info的关键点定义一致。标注完成后导出 JSON一行命令转 COCOpython tools/dataset_converters/labelstudio2coco.py \ config.xml annotations.json output/result.json转完把图片目录放进 output 下就是一个完整数据集。官方文档对这一步有更完整的说明docs/en/user_guides/label_studio.md。训练前的最后质检browse_dataset.py标注看起来没问题和训练时真没问题是两回事。MMPose 自带一个按训练管线加载数据并画出来的脚本python tools/misc/browse_dataset.py ${MMPOSE_CONFIG} \ --not-show --output-dir vis/它会走真实的 dataset pipeline把关键点画在原图上存盘。你亲眼能看到点有没有标到肩膀外、多人图里实例有没有串、bbox 和关键点是不是同一个人。这一步发现 90% 的格式与标注错配问题成本是几分钟。脚本源码在 tools/misc/browse_dataset.py。前后对比到底省了什么环节纯人工模型预标注 人工修正检测框每张图手选检测器自动出框NMS 后人工确认17 个关键点逐点点击模型先打点人只修正错点遮挡/可见性标注员凭经验标转换器只能给可见/不可见两态需人工补格式风险手工拼 COCO 易错脚本统一转换 可视化质检人力成本的大头选框 逐点定位被模型接管后标注员的单位时间产出大致翻几倍且多人协作时的一致性也更好——大家是在改同一份模型结果而不是各画各的。容易翻车的几个坑症状信号长什么样怎么绕实例合并错乱两个人共享一套关键点违反关键点先于框的标注顺序按顺序重标该图可见性全是 2转换后keypoints第三位没有 0/1 混排Label Studio 无遮挡态转换器只输出 2可见和 0坐标为 (0,0) 的点遮挡点转完要人工补图片路径对不上file_name被截断Label Studio 会截断长文件名别用直传文件改用其 COCO 导出功能里的图片包bbox 与 polygon 面积不一致同一实例两种算出的值不同取决于标注顺序后标的那类为准混用时心里有数即可小人漏点严重--kpt-thr过滤后点数偏少换 384x288 高分辨率模型配置或对密集小人群体单独重标generate_bbox_file.py 报缺 mmdet启动即提示安装该脚本依赖 mmdet 的 DetInferencer装好再跑下一步可以往哪走当前这条线解决的是2D 关键点从 0 到能训练的问题边界也很清楚伪标注不含遮挡状态、密集小人群体仍要人工兜底。顺着仓库里的既有能力最值得延伸的是两件事——用关键点置信度筛低分样本做主动学习迭代以及把同一套流程套到全身、手部、动物等其它关键点上configs/ 下 wholebody/hand/animal 的数据集配置都已备好格式转换和质检脚本都不用换。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价