资讯动态

MMPose 2D 手部关键点数据集使用指南:六大公开数据集的下载、目录组织与源码级实现解析

发布时间:2026/9/17 11:47:52 来源:尧图企业网站定制
MMPose 2D 手部关键点数据集使用指南六大公开数据集的下载、目录组织与源码级实现解析【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose导读本文基于 MMPose 官方数据集文档docs/en/dataset_zoo/2d_hand_keypoint.md系统讲解 OneHand10K、FreiHand、CMU Panoptic HandDB、InterHand2.6M、RHD、COCO-WholeBody-Hand 六大手部 2D 关键点数据集的下载方式、目录组织规范与 COCO 格式转换说明并结合仓库中的数据集实现类、基础配置与完整训练配置文件深入解析这些数据集在 MMPose 中的加载原理、关键点定义差异以及混合多数据集训练时的对齐技巧。读完本文你将能够独立完成任一数据集的准备并直接套用仓库现成配置启动训练与评估。数据集总览与目录约定MMPose 支持的手部 2D 关键点数据集及其在仓库中的对应实现如下表所示数据集论文/来源关键点数数据集实现类OneHand10KTCSVT201921OneHand10KDatasetFreiHandICCV201921FreiHandDatasetCMU Panoptic HandDBCVPR201721PanopticHand2DDatasetInterHand2.6MECCV202042双手InterHand2DDoubleDatasetRHDICCV201721Rhd2DDatasetCOCO-WholeBody (Hand)ECCV202021CocoWholeBodyHandDataset在动手下载前请注意两条全局约定推荐将数据集根目录符号链接到$MMPOSE/data下即data/目录与mmpose/、docs/、tests/、tools/、configs/平级。仓库中所有训练配置如data_root data/onehand10k/都基于这一目录布局编写。如果目录结构不同需要同步修改配置文件中的对应路径否则数据加载阶段会因找不到ann_file或图片而报错。除上述六个数据集外仓库还实现了HalpeHandDatasetHalpe 全人手部标注它被用于 RTMPose hand5 的混合训练见下文说明 MMPose 手部关键点任务对多数据集融合有着成熟支持。OneHand10K单色图像手部姿态估计的基准数据集论文信息与下载OneHand10K 出自论文Mask-pose Cascaded CNN for 2D Hand Pose Estimation from Single Color ImageTCSVT2019article{wang2018mask, title{Mask-pose cascaded cnn for 2d hand pose estimation from single color image}, author{Wang, Yangang and Peng, Cong and Liu, Yebin}, journal{IEEE Transactions on Circuits and Systems for Video Technology}, volume{29}, number{11}, pages{3258--3268}, year{2018}, publisher{IEEE} }原始图片从 OneHand10K 官方主页下载注释文件使用 MMPose 官方转换好的onehand10k_annotationsonehand10k_train.json与onehand10k_test.json。将注释解压到{MMPose}/data下后目录结构应为mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── onehand10k |── annotations | |── onehand10k_train.json | |── onehand10k_test.json ── Train | |── source | |── 0.jpg | |── 1.jpg | ... ── Test |── source |── 0.jpg |── 1.jpg源码实现要点OneHand10KDataset继承自BaseCocoStyleDatasetmmpose/datasets/datasets/hand/onehand10k_dataset.py其元信息通过METAINFO dict(from_fileconfigs/_base_/datasets/onehand10k.py)加载。该配置文件中完整定义了 21 个关键点的名称、颜色、骨架连接关系和joint_weights[1.] * 21是数据集加载、可视化与评估的元数据基础关键点顺序0 为腕部wrist随后按 拇指thumb1~4、食指forefinger1~4、中指middle_finger1~4、无名指ring_finger1~4、小指pinky_finger1~4排列骨架连接每个手指的 4 个关节与wrist分别构成 4 条边共 20 条边且每个手指使用独立颜色区分拇指橙、食指粉、中指蓝、无名指红、小指绿。现成训练配置仓库为 OneHand10K 提供了多种算法与骨干网络的组合配置例如 td-hm_res50_8xb32-210e_onehand10k-256x256.pycodecMSRAHeatmap输入256x256热图64x64sigma2模型TopdownPoseEstimator ResNet-50torchvision://resnet50预训练HeatmapHead输出 21 通道KeypointMSELoss训练策略210 epochAdamlr5e-4MultiStepLR在 epoch 170/200 衰减附带 500 iter 线性 warm-up评估指标PCKAccuracy(thr0.2)、AUC、EPE三项checkpoint 依据AUC选择最佳保存数据加载data_rootdata/onehand10k/训练用onehand10k_train.json验证/测试用onehand10k_test.json。除 ResNet 外configs/hand_2d_keypoint/topdown_heatmap/onehand10k 下还提供 HRNetv2-w18普通/DARK/UDP 三种编码、MobileNetV2 以及 topdown_regression 方式的 ResNet-50 配置可作为算法对比实验的起点。FreiHand无标记手部姿态与形状数据集论文信息与下载FreiHand 出自FreiHand: A Dataset for Markerless Capture of Hand Pose and Shape from Single RGB ImagesICCV2019inproceedings{zimmermann2019freihand, title{Freihand: A dataset for markerless capture of hand pose and shape from single rgb images}, author{Zimmermann, Christian and Ceylan, Duygu and Yang, Jimei and Russell, Bryan and Argus, Max and Brox, Thomas}, booktitle{Proceedings of the IEEE International Conference on Computer Vision}, pages{813--822}, year{2019} }重要注意事项官方数据集并未提供验证集MMPose 的处理方式是将训练数据随机按 8:1:1 划分为 train/val/test三份。注释文件使用官方转换好的freihand_annotationsfreihand_train.json/freihand_val.json/freihand_test.json。目录结构如下mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── freihand |── annotations | |── freihand_train.json | |── freihand_val.json | |── freihand_test.json ── training |── rgb | |── 00000000.jpg | |── 00000001.jpg | ... |── mask |── 00000000.jpg |── 00000001.jpg ...源码实现要点FreiHandDatasetmmpose/datasets/datasets/hand/freihand_dataset.py同样继承BaseCocoStyleDataset其parse_data_info有两个值得注意的实现细节整图作为检测框FreiHand 图片本身固定为224x224且每张图只有一只手因此实现直接构造bbox np.array([0, 0, 224, 224])作为单人框无需额外的人手检测器关键点可见性注释中的关键点第三维flag经np.minimum(1, ...)截断为 0/1 可见性标签再统计num_keypoints用于样本过滤。元信息同样来自 configs/base/datasets/freihand2d.py关键点顺序与 OneHand10K 一致wrist在前五根手指从拇指到小指各 4 个点。CMU Panoptic HandDB多视角自举标注的手部数据集论文信息与下载CMU Panoptic HandDB 出自Hand Keypoint Detection in Single Images using Multiview BootstrappingCVPR2017inproceedings{simon2017hand, title{Hand keypoint detection in single images using multiview bootstrapping}, author{Simon, Tomas and Joo, Hanbyul and Matthews, Iain and Sheikh, Yasar}, booktitle{Proceedings of the IEEE conference on Computer Vision and Pattern Recognition}, pages{1145--1153}, year{2017} }数据划分约定遵循 Simon et al. 的原始设置——使用 Panoptic 圆顶采集的hand143_panopticdb图像与 MPII NZSL 手势语训练集manual_train作为训练数据MPII NZSL 测试集manual_test作为测试数据。目录结构mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── panoptic |── annotations | |── panoptic_train.json | |── panoptic_test.json | ── hand143_panopticdb | |── imgs | | |── 00000000.jpg | | |── 00000001.jpg | | ... | ── hand_labels |── manual_train | |── 000015774_01_l.jpg | |── 000015774_01_r.jpg | ... | ── manual_test |── 000648952_02_l.jpg |── 000835470_01_l.jpg ...源码实现要点PanopticHand2DDatasetmmpose/datasets/datasets/hand/panoptic_hand2d_dataset.py的parse_data_info展示了与 FreiHand 不同的检测框来源它从注释中读取bboxxywh 格式并将边界框裁剪到图像范围内np.clip到[0, img_w-1]/[0, img_h-1]再转换为 xyxy 格式。由于 Panoptic 图像来自多视角同步采集其注释还额外携带head_size字段并被透传到data_info中供依赖头部尺度归一化的评估流程使用。InterHand2.6M双手交互 2D 关键点数据集论文信息与下载InterHand2.6M 出自InterHand2.6M: A Dataset and Baseline for 3D Interacting Hand Pose Estimation from a Single RGB ImageECCV2020InProceedings{Moon_2020_ECCV_InterHand2.6M, author {Moon, Gyeongsik and Yu, Shoou-I and Wen, He and Shiratori, Takaaki and Lee, Kyoung Mu}, title {InterHand2.6M: A Dataset and Baseline for 3D Interacting Hand Pose Estimation from a Single RGB Image}, booktitle {European Conference on Computer Vision (ECCV)}, year {2020} }官方注释包interhand2.6m_annotations解压到data下后目录结构如下mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── interhand2.6m |── annotations | |── all | |── human_annot | |── machine_annot | |── skeleton.txt | |── subject.txt | ── images | |── train | | |-- Capture0 ~ Capture26 | |── val | | |-- Capture0 | |── test | | |-- Capture0 ~ Capture7源码实现要点InterHand2.6M 在 MMPose 中被实现为InterHand2DDoubleDatasetmmpose/datasets/datasets/hand/interhand2d_double_dataset.py是手部数据集中最特殊的一个42 个关键点同时标注左右手每只手 21 点。索引 0~20 为右手r_thumb4到r_wrist21~41 为左手l_thumb4到l_wrist与 interhand3d.py 元信息中的swap字段左右手对称点配套使用额外必需文件构造函数要求camera_param_file相机内外参含campos/camrot/focal/princpt与joint_file世界坐标关节点两个文件三者缺一不可世界坐标到像素投影parse_data_info利用camera_to_pixel来自 mmpose/codecs/utils/camera_image_projection.py将世界坐标关节投影到图像平面同时计算根关节相对深度——右手根为索引 20r_wrist左手根为索引 41l_wrist若某只手的根关节无效则该手全部关节被标记为无效joint_valid[:20] * joint_valid[20]等根深度来源可切换use_gt_root_depthTrue时使用注释中的 GT 腕部深度设为False时则必须提供rootnet_result_fileRootNet 预测的腕部深度结果文件这对应论文中 GT depth vs. RootNet depth 的两阶段评估设定手势类型编码encode_handtype将right/left/interacting编码为 one-hot 向量[1,0]/[0,1]/[1,1]供双手交互类型相关的任务使用。从源码结构看该数据集的 2D 版本复用了 3D 数据集的元信息METAINFO指向configs/_base_/datasets/interhand3d.py在 2D 场景下仅使用投影后的keypoints二维坐标与joints_3d[..., 2]中的根相对深度信息因此它同时服务于仓库中的 2D 手部关键点 与 3D 手部关键点 两个任务目录。RHD渲染手部姿态数据集论文信息与下载RHDRendered Handpose Dataset出自Learning to Estimate 3D Hand Pose from Single RGB ImagesICCV2017TechReport{zb2017hand, author{Christian Zimmermann and Thomas Brox}, title{Learning to Estimate 3D Hand Pose from Single RGB Images}, institution{arXiv:1705.01389}, year{2017}, notehttps://arxiv.org/abs/1705.01389, urlhttps://lmb.informatik.uni-freiburg.de/projects/hand3d/ }官方注释包rhd_annotations解压后目录结构如下mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── rhd |── annotations | |── rhd_train.json | |── rhd_test.json ── training | |── color | | |── 00000.jpg | | |── 00001.jpg | |── depth | | |── 00000.jpg | | |── 00001.jpg | |── mask | | |── 00000.jpg | | |── 00001.jpg ── evaluation | |── color | | |── 00000.jpg | | |── 00001.jpg | |── depth | | |── 00000.jpg | | |── 00001.jpg | |── mask | | |── 00000.jpg | | |── 00001.jpg其中training与evaluation两个目录均包含color彩色图、depth深度图、mask掩膜三个子目录2D 关键点任务实际使用color目录。源码实现要点与关键点顺序差异Rhd2DDatasetmmpose/datasets/datasets/hand/rhd2d_dataset.py在源码注释中明确标注了 RHD 的关键点顺序与其他数据集不同0: wrist, 1: thumb4, 2: thumb3, 3: thumb2, 4: thumb1, 5: forefinger4, 6: forefinger3, 7: forefinger2, 8: forefinger1, ...即 RHD 的每个手指按指尖到指根4→1的顺序排列而 OneHand10K/FreiHand/Panoptic 等数据集是指根到指尖1→4的顺序。这个差异是混合训练时最容易踩的坑需要通过KeypointConverter进行重映射详见下文 RTMPose hand5 配置示例。COCO-WholeBody (Hand)全身标注中的手部子集论文信息与下载COCO-WholeBody 出自Whole-Body Human Pose Estimation in the WildECCV2020inproceedings{jin2020whole, title{Whole-Body Human Pose Estimation in the Wild}, author{Jin, Sheng and Xu, Lumin and Xu, Jin and Wang, Can and Liu, Wentao and Qian, Chen and Ouyang, Wanli and Luo, Ping}, booktitle{Proceedings of the European Conference on Computer Vision (ECCV)}, year{2020} }COCO-WholeBody 的手部标注直接建立在COCO 2017 的 Train/Val 图片之上需下载 COCO 2017 Train/Val 用于关键点训练与验证另有独立下载的 COCO-WholeBody 注释文件coco_wholebody_train_v1.0.json/coco_wholebody_val_v1.0.json以及 COCO val2017 的人体检测结果文件用于 top-down 评估。目录结构如下mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── coco │-- annotations │ │-- coco_wholebody_train_v1.0.json │ |-- coco_wholebody_val_v1.0.json |-- person_detection_results | |-- COCO_val2017_detections_AP_H_56_person.json │-- train2017 │ │-- 000000000009.jpg │ │-- 000000000025.jpg │ │-- 000000000030.jpg │ │-- ... -- val2017 │-- 000000000139.jpg │-- 000000000285.jpg │-- 000000000632.jpg │-- ...注意由于 COCO-WholeBody 的评估基于 Extended COCO API请额外安装xtcocotoolspip install xtcocotools源码实现要点CocoWholeBodyHandDatasetmmpose/datasets/datasets/hand/coco_wholebody_hand_dataset.py与其他数据集一样继承BaseCocoStyleDataset元信息来自 configs/base/datasets/coco_wholebody_hand.py。该元信息文件是整个手部混合训练的标准坐标系——RTMPose hand5 配置中CombinedDataset的metainfo正是引用此文件将 COCO-WholeBody-Hand 的 21 点布局作为统一标注格式。从数据到模型源码调用链与混合训练实战统一的加载基类上述除 InterHand2.6M 外的数据集都直接继承BaseCocoStyleDatasetmmpose/datasets/datasets/base/base_coco_style_dataset.py意味着注释文件全部遵循COCO 风格 JSON 格式。数据流可概括为配置文件中dataset_type如OneHand10KDataset经 mmpose/registry.py 的DATASETS注册表查找实现类基类在__init__阶段依据data_root、ann_file、data_prefix组装路径并加载注释各数据集重写parse_data_info把原始 COCO 注释转换成统一的data_info含bbox、keypoints、keypoints_visible、num_keypoints等字段训练/验证pipelineLoadImage→GetBBoxCenterScale→TopdownAffine→GenerateTarget→PackPoseInputs逐级处理生成模型输入。混合多数据集训练RTMPose hand5仓库提供了将五个手部数据集融合训练的旗舰配置 rtmpose-m_8xb256-210e_hand5-256x256.py训练集CocoWholeBodyHandDatasetOneHand10KDatasetFreiHandDatasetRhd2DDatasetHalpeHandDataset通过CombinedDataset打包并以configs/_base_/datasets/coco_wholebody_hand.py的 21 点布局统一元信息关键点顺序对齐RHD 数据集被单独包裹KeypointConverter通过 21 组mapping将指尖在前的顺序重映射到标准 21 点顺序如(1, 4)表示 RHD 索引 1 的thumb4映射到标准索引 4 的thumb1这是混合训练正确性的关键模型与训练策略CSPNeXtmmdet 作用域P5 结构deepen 0.67 / widen 0.75RTMCCHeadSimCCLabelcodecsigma5.66simcc_split_ratio2.0AdamWlr4e-3weight_decay0.05210 epoch其中最后 10 epoch 通过mmdet.PipelineSwitchHook切换到增强更轻的 stage2 pipelinescale_factor[0.75, 1.25]、dropout 概率降低进行精调配合EMAHook指数滑动平均评估指标与单数据集一致使用PCKAccuracy(thr0.2)、AUC、EPEcheckpoint 以AUC为准保存最优。测试验证仓库为每个数据集类都编写了单元测试如 tests/test_datasets/test_datasets/test_onehand10k_dataset.py覆盖了数据加载、关键点解析、test_mode行为等路径tests/data下亦提供各数据集的迷你样本图片 注释可在不下载完整数据集的条件下快速跑通数据管线。训练与测试命令数据准备完成后可直接使用仓库标准脚本启动训练与测试详见 tools/train.py 与 tools/test.py# 单卡训练 python tools/train.py configs/hand_2d_keypoint/topdown_heatmap/onehand10k/td-hm_res50_8xb32-210e_onehand10k-256x256.py # 多卡分布式训练8 卡 bash tools/dist_train.sh configs/hand_2d_keypoint/rtmpose/hand5/rtmpose-m_8xb256-210e_hand5-256x256.py 8 # 测试评估 python tools/test.py CONFIG_FILE CHECKPOINT_FILE若需在自定义目录布局下运行请同步修改配置中的data_root、ann_file与data_prefix三个字段。小结与注意事项目录结构是硬约束六个数据集的注释与图片路径均以$MMPOSE/data为锚点改动目录后必须同步更新配置关键点顺序因数据集而异RHD 为指尖优先顺序混合训练需用KeypointConverter对齐InterHand2.6M 为双手 42 点且左右手带swap对称信息FreiHand 无官方验证集MMPose 按 8:1:1 随机划分 train/val/testInterHand2.6M 依赖额外文件除注释外还需相机参数与关节世界坐标文件深度来源可选择 GT 或 RootNet 预测COCO-WholeBody 需要 xtcocotools评估阶段依赖 Extended COCO API指标口径手部 2D 任务统一采用PCK0.2、AUC、EPE三项指标模型选择以AUC为基准。更多数据集扩展方法与自定义数据集接入指引可继续参考 数据集自定义指南 与 数据集准备总览。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

免费获取报价