拓冰建站拓冰建站
首页 / 资讯中心 / 正文

MMPose 关键点标注实战:5分钟走通半自动标注流程

MMPose 关键点标注实战5分钟走通半自动标注流程【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose晚上十一点你刚标完第 300 张图——一张两个人击球的照片每人 17 个关键点队列里还压着一万多张。这个速度数据要标两个月。别硬扛这篇文章带你用 MMPose 走一遍半自动标注流水线模型先打底稿人只管改错把两个月压缩到一周内。MMPose 这套工具链帮你省了什么MMPose 是 OpenMMLab 的姿态估计工具箱除了训练推理它还自带一套标注配套模型批量预标注、Label Studio 标注平台格式互转、数据集可视化校验全在仓库里现成可用。它帮你省的不是标注这件事本身而是三块机械劳动框人体检测模型批量给出每个人的 bounding box你不用一张一张框打第一遍关键点姿态模型先把 17 个关节点画出来你只需挪动偏移的点格式转换标注平台导出的结果一条命令转成 COCO 训练格式整条链路是导入图像 → 模型预标注 → 人工修正 → 格式转换 → 数据集校验。下面按这个顺序动手。十分钟装环境并跑通第一次预标注先拿到代码并装依赖全程一条命令串下来git clone https://gitcode.com/GitHub_Trending/mm/mmpose cd mmpose conda create -n mmpose python3.9 -y conda activate mmpose pip install -r requirements.txt pip install -U openmim mim install mmengine mmcv mmdet3.0.0rc4 pip install -e .mim是 OpenMMLab 的统一包管理器负责按版本兼容矩阵装好 mmengine、mmcv 这些底层库省掉你手动对版本号的麻烦。装完确认没报错就可以跑第一条预标注命令了。把要标注的图丢进data/raw_images目录图片放一个文件夹就行然后执行仓库自带的推理脚本python demo/inferencer_demo.py \ data/raw_images \ --pose2d rtmpose-m_8xb256-420e_coco-256x192 \ --bbox-thr 0.3 --kpt-thr 0.3 \ --vis-out-dir data/vis \ --pred-out-dir data/predictions--pose2d直接填模型名权重会自动下载不用自己去官网翻文件。--bbox-thr和--kpt-thr是两个置信度门槛低于它的人体框和关键点会被丢掉先各设 0.3 跑一遍看效果。跑完后data/vis里是每个关节点都画在图上的可视化结果data/predictions里是每张图一份的 JSON 预测结果——前者给你抽查用后者是后续流程的底稿。半自动标注四步走预标注 → 修正 → 转换 → 校验四步各干一件事前两步产出人确认过的标注后两步把它变成能直接训练的 COCO 数据集。第一步模型批量预标注就是上面那条inferencer_demo.py命令。几个调参直觉人比较小、背景复杂 → 调低--bbox-thr到 0.2 左右宁可多框几个错的图里人很大、很清晰 → 可以调高--kpt-thr到 0.5把没把握的点直接丢给人想要更高精度 → 把--pose2d换成更大规格的模型牺牲一点速度抽查data/vis里 20 张左右如果偏移点占比超过三成说明这个场景模型不适配先换模型再谈批量。第二步预标注导入 Label Studio 人工修正Label Studio 是一个开源标注平台本地装一个就行MMPose 的约定是三种标签组件KeyPointLabels标关键点、PolygonLabels标分割多边形、RectangleLabels标人体框。在项目 Settings → Labeling Interface → Code 里粘贴View KeyPointLabels namekp-1 toNameimg-1 Label valueperson background#D4380D/ /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 格式标注完成后在 Label Studio 里 Export 成 JSON执行仓库自带的转换脚本python tools/dataset_converters/labelstudio2coco.py \ data/label_interface.xml \ data/labelstudio_export.json \ data/coco/result.json第一个参数是你上面那段 Labeling Interface 的 XML存个文件即可第二个是导出的 JSON第三个是输出路径目录不存在会自动创建。转换后把图片文件夹放进输出目录摆成这样的结构. ├── images │ └── 38b480f2.jpg └── result.json转换细节比如 bbox 和 area 怎么取可以打开 labelstudio2coco.py 的注释看写得很清楚。第四步校验数据集能不能直接喂给训练在数据集配置里指向刚才的产物dataset dict( typeCocoDataset, data_rootdata/coco_custom/, data_modebottomup, ann_fileresult.json, data_prefixdict(imgimages/), pipelinetrain_pipeline, )保存成配置后跑一次可视化校验python tools/misc/browse_dataset.py your_config.py \ --phase test --mode original --output-dir data/vis_result它会按加载流程把图读出来、画上标注存到输出目录。抽查几张点落在关节上、框贴着人、人数和实例数对得上这份数据就可以进训练了。三个高频坑和解法前面四步顺利跑通只是及格线真正耗时的是处理下面这些反复出现的意外。坑一转换后的 COCO 缺实例或者 bbox 和分割对不上现象result.json里实例数量明显少于标的人数或者框和多边形不是一套的。原因是标注顺序乱了——关键点、多边形、矩形没按同一人标完再换人的规则走脚本就归并错了。解法回 Label Studio 按顺序补标或者写个小脚本比对每个实例的 keypoint 数量和 bbox 是否为空把不合规的挑出来返工。坑二密集场景漏人远处小人关键点漂移现象一张图三个人只检出两个剩下那个人要么没框要么整组点糊成一团。原因是检测端漏检--bbox-thr过高或姿态模型对远距离小样本本来就弱。解法降--bbox-thr重跑预标注补框对小人体可以加--disable-norm-pose-2d参数避免把小框放大到模型不适配的尺寸。坑三导出的 JSON 里图片路径对不上现象数据集配置指向images/却报找不到图。原因是 Label Studio 会对过长文件名截断你直接用它上传的原始文件夹就会缺图或错名。解法用 Export 功能里的 COCO 格式工具导出的图片压缩包那个文件夹里的文件名和 JSON 是一一对应的直接放进images/目录。交付之后的三个延伸方向数据集能训练只是起点往这三条路上走收益最大用标好的数据训一个轻量模型比如 RTMPose-tiny反过来给下一批图打预标注标注成本会持续下降跑 generate_bbox_file.py 用检测模型批量生成 bbox 文件适合只有关键点标注需求、不想标分割的场景对疑难样本遮挡、多主体交互再叠一个更高精度的 top-down 模型对比结果两套预测都偏的点就是最需要人工盯的标注这件事机器打底、人工收尾、脚本保真流程跑顺之后瓶颈只剩人手的排期。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门