MMPose 人体姿态估计:HRNet 在 Human-Art 艺术场景数据集上的 Top-Down 热图训练与评测实践

发布时间:2026/9/16 19:02:26

MMPose 人体姿态估计:HRNet 在 Human-Art 艺术场景数据集上的 Top-Down 热图训练与评测实践 MMPose 人体姿态估计HRNet 在 Human-Art 艺术场景数据集上的 Top-Down 热图训练与评测实践【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose本文围绕 MMPose 模型库中「HRNet Human-Art」这组 Top-Down 热图姿态估计模型展开介绍 Human-Art 艺术/人工场景数据集对姿态估计的挑战与价值、完整的模型库评测结果检测框、真实框、COCO 三组基准并深入解析仓库中对应的训练配置文件与数据集实现帮助你在艺术插画、游戏立绘等自然—人工混合场景中完成姿态模型的训练、评测与选型。一、背景为什么需要 Human-Art 数据集Human-ArtCVPR2023Human-Art: A Versatile Human-Centric Dataset Bridging Natural and Artificial Scenes是一个专门覆盖自然场景与人工创作场景插画、漫画、3D 渲染、CG 角色等的人体姿态数据集。真实照片中训练的姿态模型在面对艺术风格图像时往往出现明显性能衰减Human-Art 正是为弥合这一自然—人工域差距而构建的基准。该数据集的论文与数据信息在 MMPose 中由 Human-Art 数据集基础配置 维护其中定义了17 个关键点与 COCO 人体关键点命名和骨架结构完全一致nose、双眼、双耳、双肩、双肘、双腕、双髋、双膝、双踝因此可以直接复用 COCO 风格的标注格式与CocoMetric评测器关键点元信息每个关键点的id、颜色color、归属上/下身typeupper/lower供半身增强RandomHalfBody使用、左右互换关系swap供RandomFlip使用19 条骨架连线skeleton_info以及用于 PCK 等指标计算的joint_weights与sigmas。由于关键点定义与 COCO 对齐在 Human-Art 上训练/继续训练姿态模型并同时在 COCO 与 Human-Art 两个基准上评测成为一套完整的迁移学习评估范式——这正是本文档所呈现的内容。二、模型库与核心评测结果MMPose 模型库中的 hrnet_humanart.md 给出了 HRNet 系列模型在三个基准下的完整结果全部使用经典解码器classic decoder即基于高斯热图峰值的后处理解码。相关论文引用如下inproceedings{sun2019deep, title{Deep high-resolution representation learning for human pose estimation}, author{Sun, Ke and Xiao, Bin and Liu, Dong and Wang, Jingdong}, booktitle{Proceedings of the IEEE conference on computer vision and pattern recognition}, pages{5693--5703}, year{2019} }inproceedings{ju2023humanart, title{Human-Art: A Versatile Human-Centric Dataset Bridging Natural and Artificial Scenes}, author{Ju, Xuan and Zeng, Ailing and Jianan, Wang and Qiang, Xu and Lei, Zhang}, booktitle{Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR), year{2023}}2.1 Human-Art 验证集检测框human AP 56.2使用检测器在 Human-Art 验证集上给出人体框检测器 human AP 为 56.2架构输入尺寸APAP50AP75ARAR50HRNet-W32仅 COCO 训练256x1920.2520.3970.2550.3210.485HRNet-W32Human-ArtCOCO 训练256x1920.3990.5450.4200.4660.613HRNet-W48仅 COCO 训练256x1920.2710.4130.2770.3390.499HRNet-W48Human-ArtCOCO 训练256x1920.4170.5530.4420.4810.6172.2 Human-Art 验证集真实框 GT BBox用人工标注的真实边界框评测剥离检测误差考察纯姿态回归能力架构输入尺寸APAP50AP75ARAR50HRNet-W32仅 COCO 训练256x1920.5330.7710.5620.5740.792HRNet-W32Human-ArtCOCO 训练256x1920.7540.9060.8120.7830.916HRNet-W48仅 COCO 训练256x1920.5570.7820.5930.5950.804HRNet-W48Human-ArtCOCO 训练256x1920.7690.9060.8250.7960.9192.3 COCO val2017检测框human AP 56.4同时在 COCO 上评测检验加入艺术场景数据后对自然域是否产生负迁移架构输入尺寸APAP50AP75ARAR50HRNet-W32仅 COCO 训练256x1920.7490.9060.8210.8040.945HRNet-W32Human-ArtCOCO 训练256x1920.7410.9020.8140.7950.941HRNet-W48仅 COCO 训练256x1920.7560.9080.8260.8090.945HRNet-W48Human-ArtCOCO 训练256x1920.7510.9050.8220.8050.943从三组结果可以读出几个关键结论域提升显著在 Human-Art 检测框设置下加入 Human-Art 数据训练使 HRNet-W32 的 AP 从 0.252 提升到 0.39914.7 个百分点W48 从 0.271 提升到 0.417真实框设置下提升同样巨大0.533 → 0.754。无明显负迁移在 COCO 上混合训练模型的 AP 仅比纯 COCO 模型低约 0.0050.008说明艺术场景数据与真实数据可以兼顾。宽度的边际收益在艺术域更明显W48 相对 W32 在 Human-Art 检测框设置下 AP 提升约 0.0180.399 → 0.417但在 COCO 上几乎持平选型时可结合算力预算决定。模型库元数据hrnet_humanart.yml中这两个人体模型登记的训练数据为COCO Human-Art并给出了每个模型对应的权重与训练日志下载地址download.openmmlab.com上的.pth权重与.json日志。三、训练配置逐段解析下面以 td-hm_hrnet-w32_8xb64-210e_humanart-256x192.py 为例逐段解析配置内容W48 版本 td-hm_hrnet-w48_8xb32-210e_humanart-256x192.py 结构完全一致。配置文件基于 默认运行时配置。3.1 训练策略210 epoch 与学习率调度train_cfg dict(max_epochs210, val_interval10) optim_wrapper dict(optimizerdict( typeAdam, lr5e-4, )) param_scheduler [ dict( typeLinearLR, begin0, end500, start_factor0.001, by_epochFalse), # warm-up dict( typeMultiStepLR, begin0, end210, milestones[170, 200], gamma0.1, by_epochTrue) ] auto_scale_lr dict(base_batch_size512) default_hooks dict(checkpointdict(save_bestcoco/AP, rulegreater))要点说明优化器Adam基础学习率5e-4Warm-up前 500 个 iteration 用LinearLR从0.001 × lr线性升到基础学习率by_epochFalse表示按 iteration 计衰减MultiStepLR在第 170、200 个 epoch 将学习率乘以gamma0.1auto_scale_lr以base_batch_size512为基准按实际总 batch size 线性缩放学习率。W32 配置单卡batch_size648 卡即 512不缩放W48 配置单卡batch_size328 卡即 256学习率自动减半这是两个配置最直接的训练差异最佳权重保存以验证集coco/AP越大越好的规则保存 best checkpoint。3.2 模型结构TopdownPoseEstimator HRNet HeatmapHeadmodel dict( typeTopdownPoseEstimator, data_preprocessordict( typePoseDataPreprocessor, mean[123.675, 116.28, 103.53], std[58.395, 57.12, 57.375], bgr_to_rgbTrue), backbonedict( typeHRNet, in_channels3, extradict( stage1dict(num_modules1, num_branches1, blockBOTTLENECK, num_blocks(4,), num_channels(64,)), stage2dict(num_modules1, num_branches2, blockBASIC, num_blocks(4, 4), num_channels(32, 64)), stage3dict(num_modules4, num_branches3, blockBASIC, num_blocks(4, 4, 4), num_channels(32, 64, 128)), stage4dict(num_modules3, num_branches4, blockBASIC, num_blocks(4, 4, 4, 4), num_channels(32, 64, 128, 256))), init_cfgdict( typePretrained, checkpointhttps://download.openmmlab.com/mmpose/ pretrain_models/hrnet_w32-36af842e.pth), ), headdict( typeHeatmapHead, in_channels32, out_channels17, deconv_out_channelsNone, lossdict(typeKeypointMSELoss, use_target_weightTrue), decodercodec), test_cfgdict( flip_testTrue, flip_modeheatmap, shift_heatmapTrue, ))各部分职责TopdownPoseEstimatorTop-Down 范式入口输入为单个人体裁剪区域输出单个人体的关键点热图PoseDataPreprocessor按 ImageNet 统计量mean/std归一化并做 BGR→RGB 转换HRNet ImageNet 预训练权重的标准预处理HRNet主干四阶段多分辨率结构stage24 分别维护 2、3、4 条分支并通过交换融合exchange fusion保持高分辨率特征。W32 与 W48 的差异仅在分支通道数W32 为(32, 64, 128, 256)W48 为(48, 96, 192, 384)约为 1.5 倍宽度。HRNet 主干实现见 mmpose/models/backbones/hrnet.pyHeatmapHead取 HRNet 最高分辨率分支W32 为 32 通道、W48 为 48 通道作为in_channels输出 17 通道热图deconv_out_channelsNone表示不做反卷积上采样解码器直接以input_size对应 1/4 分辨率的(48, 64)热图工作损失为KeypointMSELoss且use_target_weightTrue按关键点可见性权重加权test_cfg测试时开启水平翻转增强flip_testTrueflip_modeheatmap表示对预测热图做翻转后平均shift_heatmapTrue在解码时做 1/2 像素偏移修正。3.3 热图编解码MSRAHeatmapcodec dict( typeMSRAHeatmap, input_size(192, 256), heatmap_size(48, 64), sigma2)输入裁剪图256x192宽 x 高热图为64x48宽 x 高1/4 分辨率目标热图用均值为 0.5、标准差sigma2像素的高斯核生成MSRAHeatmap编码器的经典参数。3.4 数据管线训练与验证train_pipeline [ dict(typeLoadImage), dict(typeGetBBoxCenterScale), dict(typeRandomFlip, directionhorizontal), dict(typeRandomHalfBody), dict(typeRandomBBoxTransform), dict(typeTopdownAffine, input_sizecodec[input_size]), dict(typeGenerateTarget, encodercodec), dict(typePackPoseInputs) ] val_pipeline [ dict(typeLoadImage), dict(typeGetBBoxCenterScale), dict(typeTopdownAffine, input_sizecodec[input_size]), dict(typePackPoseInputs) ]训练管线的增强组合与 COCO Top-Down 配置完全一致随机水平翻转依赖keypoint_info中的swap关系、随机半身裁剪依赖typeupper/lower标记、随机边界框形变中心/宽高抖动最后由TopdownAffine将人体裁剪到256x192。验证管线不含随机增强保证评测可复现。3.5 数据加载与评测器dataset_type HumanArtDataset data_mode topdown data_root data/ train_dataloader dict( batch_size64, ... datasetdict( typedataset_type, data_rootdata_root, data_modedata_mode, ann_fileHumanArt/annotations/training_humanart_coco.json, data_prefixdict(img), pipelinetrain_pipeline, )) val_dataloader dict( batch_size32, ... datasetdict( ... ann_fileHumanArt/annotations/validation_humanart.json, bbox_filef{data_root}HumanArt/person_detection_results/ HumanArt_validation_detections_AP_H_56_person.json, data_prefixdict(img), test_modeTrue, pipelineval_pipeline, )) val_evaluator dict( typeCocoMetric, ann_filedata_root HumanArt/annotations/validation_humanart.json) test_evaluator val_evaluator从源码结构看几个值得注意的实现事实HumanArtDataset定义在 mmpose/datasets/datasets/body/humanart_dataset.py它直接继承 COCO 风格的基类BaseCocoStyleDataset仅在类级METAINFO中指向 configs/base/datasets/humanart.py 的元信息文件——这解释了为何它能无缝复用CocoMetric评测器与全套 COCO 风格数据管线bbox_file只在评测时生效val_dataloader指定了检测器结果文件HumanArt_validation_detections_AP_H_56_person.json评测时使用检测结果提供的边界框对应结果表 2.1 的human AP 56.2若评测时不设置该文件则使用真实框对应 2.2 的 GT BBox 设置。HumanArtDataset的文档字符串明确说明bbox_file仅用于评测、test_modeFalse时被忽略评测器CocoMetric实现见 mmpose/evaluation/metrics/coco_metric.py输出的coco/AP等指标也是 checkpoint 保存的依据。此外仓库还提供了 21 关键点的变体数据集HumanArt21Datasetmmpose/datasets/datasets/body/humanart21_dataset.py与 configs/base/datasets/humanart21.py 元信息供需要更多关节点的场景使用同目录下还有 ViTPose 的 Human-Art 配置small/base/large/huge 四种规格可作为 Transformer 主干的对照选择。四、训练与评测命令在准备好 Human-Art 数据集标注文件data/HumanArt/annotations/training_humanart_coco.json与validation_humanart.json、验证集检测框文件data/HumanArt/person_detection_results/HumanArt_validation_detections_AP_H_56_person.json数据集准备方法可参考 准备数据集指南后可在仓库根目录执行以下命令复现训练以 W32 为例8 卡单机# 单卡训练 python tools/train.py \ configs/body_2d_keypoint/topdown_heatmap/humanart/td-hm_hrnet-w32_8xb64-210e_humanart-256x192.py # 8 卡分布式训练 bash tools/dist_train.sh 8 \ configs/body_2d_keypoint/topdown_heatmap/humanart/td-hm_hrnet-w32_8xb64-210e_humanart-256x192.py评测与推理# 单卡测试使用 val_dataloader 中的检测框评测 python tools/test.py \ configs/body_2d_keypoint/topdown_heatmap/humanart/td-hm_hrnet-w32_8xb64-210e_humanart-256x192.py \ checkpoint.pth --out results.jsonW48 配置只需把配置路径换成 td-hm_hrnet-w48_8xb32-210e_humanart-256x192.py配置名中的8xb32即 8 卡 × 每卡 32 的总 batch size 256auto_scale_lr会据此把学习率按比例下调。若想在 COCO 与 Human-Art 两个基准上同时评测混合训练的模型可分别使用 COCO 的 W32 训练配置 对应的val_dataloaderCOCO_val2017_detections_AP_H_56_person.json检测框进行交叉评测这正是模型库结果表 2.3 的评测口径。五、关键要点小结配置定位Human-Art 上的 HRNet Top-Down 热图模型配置集中在 configs/body_2d_keypoint/topdown_heatmap/humanart/模型库结果页为 hrnet_humanart.md机器可读的元数据为 hrnet_humanart.yml结构不变、数据域改变与 COCO 版 HRNet 配置相比Human-Art 版本在模型结构、codec、增强管线上完全一致核心差异是数据集类型HumanArtDataset、标注/检测框文件路径与评测 GT——这是做新艺术域微调时最简且可对照的实验设计性能口径引用结果时务必区分三种评测设置——Human-Art 检测框AP_H 56.2、Human-Art 真实框、COCO val2017 检测框AP_H 56.4三组 AP 数值相差很大不可混用实现可查证数据集类 humanart_dataset.py、关键点元信息 humanart.py、主干 hrnet.py、评测器 coco_metric.py 均在仓库内便于逐行核对行为。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/16 19:02:26

Awesome-Dify-Workflow上手指南:从模板到跑通第一条工作流

Awesome-Dify-Workflow上手指南:从模板到跑通第一条工作流 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-D…

2026/9/16 19:02:26

CentOS 7登录黑屏与图形界面故障深度诊断指南

1. 这不是密码错了,是系统在“装糊涂”——CentOS 7登录与界面问题的本质还原你敲下root,输入自以为牢靠的密码,回车后屏幕冷酷地返回localhost login:,像一台拒绝沟通的旧式终端。这不是你记错了密码,也不是键盘失灵&…

2026/9/16 18:57:26

关系代数、元组演算与域演算:数据库查询的数学底座全解析

关系运算这块内容,我见过太多人把它当成“背公式”来学:选择是什么、投影是什么、连接是什么,背得滚瓜烂熟,一到笔试让写表达式就懵。尤其是元组关系演算和域关系演算,市面上能找到的教程本来就少,能讲清楚…

2026/9/16 19:47:35

vmdk转qcow2完整指南:StarWind V2V迁移KVM/OpenStack与镜像瘦身技巧

做虚拟化运维的朋友应该都遇过这种尴尬:vCenter上跑得好好的虚拟机,上面承载着各种老业务,突然因为成本、架构调整或者国产化要求,需要整体迁到KVM或OpenStack这套开源虚拟化环境里。业务迁移本身倒不难,难就难在第一步…

2026/9/16 19:47:35

Quadro P620在Linux下的驱动安装流程与排雷实战

先说结论:Quadro P620这张卡本身不复杂,在Linux下装驱动真正的坑,九成不在显卡上,而在安装流程和桌面环境的配合上。如果你用的发行版是Ubuntu 22.04这类常见版本,照着下面的流程走一遍,基本能一次点亮&…

2026/9/16 19:47:35

工业设备DDR3停产危机:四大硬件兼容性陷阱与替代方案

1. 这不是换颗内存条那么简单:当DDR3突然断供,产线停摆的倒计时才真正开始“大厂停产DDR3”这八个字,最近在工业自动化、医疗设备、轨道交通和电力监控领域的工程师群里刷屏了。不是新闻标题,是真实发生的供应链地震——三星在202…

2026/9/16 19:42:34

Java原生Socket实现智能快递柜通信系统

简介:这是一份面向Java初学者与Socket网络编程学习者的实战项目源码,聚焦小区智能快递柜系统的完整服务端-客户端通信实现,不依赖任何第三方库,纯基于JDK 11原生Socket开发,适合巩固多线程、IO操作、客户端认证与本地数…

2026/9/16 12:52:37

拯救者Y7000黑屏故障排查与维修实战指南

1. 项目概述:一台黑屏的拯救者Y7000,到底卡在哪一步? 联想拯救者Y7000系列笔记本,从2018年第一代搭载i5-8300H开始,到后来的i7-9750H、i7-10750H、i5-11400H,再到2023年款的R7-7840HS,它始终是学…

2026/9/16 0:04:09

PHP源码部署实战:从环境配置到运行情侣游戏全攻略

简介:这是一套面向情侣互动场景的PHP完整源码,集成情侣飞行棋、真心话大冒险、情趣骰子等玩法,并内置完整分销制度,可自定义多种返佣比例,源码完全开源无加密,支持微信无感自动授权登录与第三方授权&#x…

2026/9/15 14:22:53

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/15 21:31:11

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/15 11:42:23

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码