mmpose 2d姿态转json文件 coco转h36m

该博客介绍了如何将2D关键点的COCO格式转换为H36M格式,用于2D姿态估计的标注和修正。文章提到了转换过程中的问题,如Labelme工具的不便,并提供了转换脚本和模板文件的下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

coco格式和h36m格式对比示意图

参考 

模板文件下载地址:

这个有个问题,labelme关节之间不能联动,标注起来不方便。

python预测代码:

coco格式转h36m

coco json标注转npz训练代码改进


背景:mmpose或者其他2d关键点,bad case标注是个难题,这个脚本可以把mmpose预测的关键点,转为json文件,方便进行二次标注或修改。

coco格式和h36m格式对比示意图

左边是coco格式,右边是h36m格式

参考 

https://github.com/tud-amr/pose_annotation_tool

模板文件下载地址:

<
### 将数据换为适用于 mmposeCOCO 格式 为了使数据集能够被 mmpose 使用,将其换为 COCO 格式的必要性在于该格式具有良好的结构化信息表示能力以及广泛的支持度。具体来说,在基于 Labelme 创建的手部关键点数据集中,由于 Open-MMLab 更好地支持 COCO 格式,因此推荐将此类数据化为 COCO 格式[^1]。 #### 数据预处理阶段 当面对单个目标的关键点标注时,可以采用 labelme 工具完成初步的点位标记工作。然而需要注意的是,labelme 默认并不直接提供符合 COCO 要求的 `x, y, v` 坐标格式输出;这里 `v` 表示可见性标志。为此,需编写额外的 Python 脚本来实现从 labelme JSON 文件到标准 COCO JSON 文件之间的换操作[^2]。 ```python import json from pathlib import Path def convert_labelme_to_coco(labelme_jsons_dir: str, output_path: str): coco_data = { "images": [], "annotations": [], "categories": [{"id": 1, "name": "hand", "supercategory": "", "keypoints": ["palm", ...], "skeleton": []}] } image_id = 0 annotation_id = 0 for file_name in Path(labelme_jsons_dir).glob('*.json'): with open(file_name) as f: data = json.load(f) # Add Image Info img_info = {"file_name": data['imagePath'], "height": data['imageHeight'], "width": data['imageWidth'], "id": image_id} coco_data["images"].append(img_info) keypoints = [] num_keypoints = 0 for shape in data['shapes']: if shape['shape_type'] != 'point': continue x, y = shape['points'][0] visible = 2 # Assuming all points are labeled and visible keypoints.extend([float(x), float(y), int(visible)]) num_keypoints += 1 ann_info = { "segmentation": [], "num_keypoints": num_keypoints, "area": 0, "iscrowd": 0, "keypoints": keypoints, "image_id": image_id, "bbox": [min_x, min_y, width, height], "category_id": 1, "id": annotation_id } coco_data["annotations"].append(ann_info) image_id += 1 annotation_id += 1 with open(output_path, 'w') as outfile: json.dump(coco_data, outfile) convert_labelme_to_coco('/path/to/your/labelme/json/files', '/output/path/coco_format.json') ``` 上述脚本展示了如何读取由 labelme 导出的一系列 JSON 文件,并按照 COCO 关键点检测任务的标准构建相应的图像和注解条目。其中特别注意到了对每个关键点位置及其可见性的编码方式。 对于多目标场景下的关键点标注,则建议使用专门设计用于此目的的工具如 coco-annotate 来简化流程并提高效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法网奇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值