MMPose 服装关键点检测实战:基于 DeepFashion2 数据集的 ResNet-50 热图方案

发布时间:2026/11/5 16:03:28

MMPose 服装关键点检测实战:基于 DeepFashion2 数据集的 ResNet-50 热图方案 MMPose 服装关键点检测实战基于 DeepFashion2 数据集的 ResNet-50 热图方案【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose本篇技术指南聚焦 OpenMMLab 姿态估计工具箱 MMPose 中的服装关键点Fashion 2D Keypoint / Fashion Landmark检测任务以 DeepFashion2 数据集的 ResNet-50 配置家族 为线索完整解析Simple BaselineResNet-50 顶层热图Top-down Heatmap方案在 13 个服装类别上的工程实现。读完本文你将掌握 DeepFashion2 数据集的标注结构、MMPose 配置文件中从模型、编解码器、数据管道到评估器的完整参数语义并能直接基于仓库内的 13 份配置在任意类别上复现训练、验证与推理。任务背景DeepFashion2 与服装关键点检测DeepFashion2 是 2019 年 CVPR 上提出的通用服装理解基准论文题为A Versatile Benchmark for Detection, Pose Estimation, Segmentation and Re-Identification of Clothing Images除目标检测、分割与行人重识别外还提供了细粒度的**服装关键点fashion landmark**标注用于刻画衣领、袖口、下摆、腰带、拉链等服饰结构点。MMPose 将其纳入 2D 时尚关键点数据集家族任务定义为给定一张服装图像预测预定义的关键点坐标。该任务与人体姿态估计同源但又有自身特点关键点数量随服装类别变化、服装形变剧烈、类别间共享的语义点较少。为此MMPose 采用了一个类别一套配置的策略在 deepfashion2 配置目录 下为 13 个服装类别分别提供了独立的训练配置并共用一份数据集元信息文件。算法与骨架Simple Baseline ResNet-50本系列模型采用 SimpleBaseline2DXiao et al., ECCV2018提出的**顶层热图top-down heatmap**范式第一阶段由外部检测器给出服装目标的边界框第二阶段在框内对单个目标进行关键点估计——网络直接输出 K 通道的似然热图每个通道对应一个关键点的概率分布而不是直接回归坐标。模型骨架为 ResNet-50He et al., CVPR2016由 ImageNet 预训练权重初始化配置中init_cfg指定checkpointtorchvision://resnet50。整条链路在配置中的体现如下model dict( typeTopdownPoseEstimator, data_preprocessordict( typePoseDataPreprocessor, mean[123.675, 116.28, 103.53], std[58.395, 57.12, 57.375], bgr_to_rgbTrue), backbonedict( typeResNet, depth50, init_cfgdict(typePretrained, checkpointtorchvision://resnet50), ), headdict( typeHeatmapHead, in_channels2048, out_channels294, lossdict(typeKeypointMSELoss, use_target_weightTrue), decodercodec), test_cfgdict( flip_testTrue, flip_modeheatmap, shift_heatmapTrue, ))其中几个值得注意的设计HeatmapHead的out_channels294对应数据集中全部 13 个服装类别的关键点总数。DeepFashion2 的标注体系将每个类别独立编号例如 short_sleeved_shirt 的sss_kpt1~sss_kpt16、long_sleeved_shirt 的lss_kpt1~lss_kpt33合计 294 个关键点具体定义见 数据集元信息。KeypointMSELossuse_target_weightTrue对每个关键点的 MSE 损失乘以对应权重天然处理遮挡/缺失关键点。flip_testTrueflip_modeheatmapshift_heatmapTrue测试时对输入做水平翻转将两路热图融合含 1 像素偏移校正可稳定提升精度。13 个类别与配置文件家族deepfashion2 配置目录 下共 13 份td-hm_res50_*xb64-210e_deepfasion2-*-256x192.py配置文件命名规范为模型-批量(批数xbatch)-轮数_数据集-类别-输入尺寸。除批量大小与auto_scale_lr基数外各配置的模型、优化器、学习率策略、数据管道与评估器完全一致。服装类别配置文件仓库相对路径批次批数×64short_sleeved_shirttd-hm_res50_6xb64-...-short-sleeved-shirt-256x192.py6×64long_sleeved_shirttd-hm_res50_8xb64-...-long-sleeved-shirt-256x192.py8×64short_sleeved_outweartd-hm_res50_8xb64-...-short-sleeved-outwear-256x192.py8×64long_sleeved_outweartd-hm_res50_8xb64-...-long-sleeved-outwear-256x192.py8×64vesttd-hm_res50_4xb64-...-vest-256x192.py4×64slingtd-hm_res50_4xb64-...-sling-256x192.py4×64shortstd-hm_res50_3xb64-...-shorts-256x192.py3×64trouserstd-hm_res50_2xb64-...-trousers-256x192.py2×64skirttd-hm_res50_1xb64-...-skirt-256x192.py1×64short_sleeved_dresstd-hm_res50_4xb64-...-short-sleeved-dress-256x192.py4×64long_sleeved_dresstd-hm_res50_1xb64-...-long-sleeved-dress-256x192.py1×64vest_dresstd-hm_res50_1xb64-...-vest-dress-256x192.py1×64sling_dresstd-hm_res50_4xb64-...-sling-dress-256x192.py4×64批次大小反映各类别样本量的差异样本充足的类别如长袖衬衫使用 8×64样本稀疏的类别如半身裙、长袖连衣裙、背心裙使用 1×64通过增大单卡 batch 使每个 epoch 的迭代次数保持在合理范围。相应地各配置的auto_scale_lr dict(base_batch_size批量总数)训练时会依据实际总 batch size 自动线性缩放学习率。配置参数全解析以 short_sleeved_shirt 配置 td-hm_res50_6xb64-210e_deepfasion2-short-sleeved-shirt-256x192.py 为模板逐段解读_base_ [../../../_base_/default_runtime.py] # runtime train_cfg dict(max_epochs210, val_interval10) # optimizer optim_wrapper dict(optimizerdict(typeAdam, lr5e-4)) # learning policy param_scheduler [ dict(typeLinearLR, begin0, end500, start_factor0.001, by_epochFalse), # warm-up dict(typeMultiStepLR, begin0, end210, milestones[170, 200], gamma0.1, by_epochTrue) ] # automatically scaling LR based on the actual training batch size auto_scale_lr dict(base_batch_size384)训练轮次max_epochs210每val_interval10个 epoch 做一次验证。优化器Adam初始学习率5e-4。相比 SGDAdam 在服装关键点这类相对小规模任务上收敛更稳定。学习率调度前 500 个迭代by_epochFalse即按迭代计用LinearLR从 0.001 倍学习率线性热身随后MultiStepLR在 epoch 170 与 200 处各衰减 0.1 倍属于典型的长训练 末期阶梯衰减策略。auto_scale_lrbase_batch_size384即 6×64。配置中带auto_scale_lr时MMEngine 会按新总batch/384的比例自动缩放学习率并输出建议。编解码器Codec是 MMPose 连接图像空间关键点坐标与热图表示的桥梁codec dict( typeMSRAHeatmap, input_size(192, 256), heatmap_size(48, 64), sigma2)MSRAHeatmap即 Simple Baseline 论文中的 MSRA 高斯热图方案实现位于 mmpose/codecs/msra_heatmap.py编码阶段将关键点坐标绘制成(K, H, W)的高斯热图sigma2控制高斯核宽度其构造函数还支持unbiasedTrue的 DarkPose 无偏形式解码阶段则从预测热图中取最大值位置get_heatmap_maximum并可选做亚像素细化refine_keypoints/refine_keypoints_dark。输入尺寸 256×192 对应输出热图 64×48即 4 倍下采样。数据管道Pipeline分为训练与验证两套train_pipeline [ dict(typeLoadImage), dict(typeGetBBoxCenterScale), dict(typeRandomFlip, directionhorizontal), 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) ]训练管道依次完成读取图像 → 由标注框计算中心点与尺度 → 水平随机翻转数据增强需与元信息中关键点的swap映射配合→ 对框做随机平移/缩放 → 仿射变换裁剪到 256×192 → 通过MSRAHeatmap编码器生成高斯热图标签 → 打包输入验证管道不含随机增强直接裁剪并对齐到网络输入。数据加载器data_root data/deepfasion2/训练集标注为train/deepfashion2_short_sleeved_shirt_train.json、图像前缀train/image/验证集对应validation/目录test_dataloader val_dataloader复用验证集。数据集实现类为DeepFashion2Dataset见 mmpose/datasets/datasets/fashion/deepfashion2_dataset.py继承BaseCocoStyleDataset通过METAINFO从 数据集元信息 加载 13 个类别的关键点定义、可视化配色与左右对称swap关系。评估指标与结果评估器统一使用三项指标实现见 keypoint_2d_metrics.pyPCK0.2预测点落在距真值 0.2×躯干直径范围内的比例AUC不同归一化阈值下 PCK 曲线的面积反映整体定位精度EPE关键点平均像素误差越小越好。配置中对应为val_evaluator [ dict(typePCKAccuracy, thr0.2), dict(typeAUC), dict(typeEPE), ] test_evaluator val_evaluator同时default_hooks中checkpointdict(save_bestAUC, rulegreater)会按 AUC 保存最佳权重。官方在 DeepFashion2 验证集上的 ResNet-50 结果如下模型权重与训练日志可通过对应配置文件在 MMPose 模型库中获取详见 model-index 元数据类别架构输入尺寸PCK0.2AUCEPEshort_sleeved_shirtResNet-50256×1920.9880.70310.2long_sleeved_shirtResNet-50256×1920.9730.58716.6short_sleeved_outwearResNet-50256×1920.9660.40824.0long_sleeved_outwearResNet-50256×1920.9870.51718.1vestResNet-50256×1920.9810.64312.7slingResNet-50256×1920.9400.55721.6shortsResNet-50256×1920.9750.68212.4trousersResNet-50256×1920.9730.62514.8skirtResNet-50256×1920.9520.65316.6short_sleeved_dressResNet-50256×1920.9800.60315.6long_sleeved_dressResNet-50256×1920.9760.51820.1vest_dressResNet-50256×1920.9800.60016.0sling_dressResNet-50256×1920.9670.54419.5各类别的结果汇总同样收录于 topdown_heatmap 总览 README 的 DeepFashion2 一节。从结果可以看出一个明显规律结构规整、形变小的类别短袖衬衫、短裤、马甲精度高而褶皱多、遮挡严重的类别吊带、短袖外套精度相对偏低这也为后续在服装关键点任务上引入更强骨干或基于 DARK 无偏热图的改进提供了基线参考。训练、测试与复现数据准备按配置文件约定将 DeepFashion2 数据置于data/deepfasion2/下目录结构为train/image/、train/*_train.json、validation/image/、validation/*_validation.json具体准备步骤可参考 数据集准备指南。单卡训练任意类别将CONFIG替换为目标类别的配置文件路径python tools/train.py CONFIG多卡分布式训练使用 tools/dist_train.shbash tools/dist_train.sh CONFIG 8测试WORK_DIR/epoch_210.pth或best_AUC_epoch_*.pth为训练产出的权重路径python tools/test.py CONFIG WORK_DIR/epoch_210.pth # 或分布式 bash tools/dist_test.sh CONFIG WORK_DIR/epoch_210.pth 8借助配置文件内建的auto_scale_lr当你在不同卡数/批量下复现时学习率会自动按实际总 batch 相对base_batch_size的比例缩放无需手工调参。训练过程中的日志、checkpoint 以及按 AUC 选择的最佳模型会写入work_dirs/下的对应目录。小结本文以 res50_deepfashion2.md 为骨架完整梳理了 MMPose 中 DeepFashion2 服装关键点检测的 ResNet-50 顶层热图方案从任务背景、Simple Baseline 架构、13 份类别配置的差异设计到 codec、数据管道、评估指标与训练复现命令并下钻到DeepFashion2Dataset、MSRAHeatmap等源码实现。这套一类一配置的工程范式同样适用于其他服装理解场景——只需替换数据集元信息、调整out_channels与标注文件即可快速迁移到自定义的时尚关键点任务上。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/24 13:19:58

LPDDR3精解:标准、选型、ZQ校准与初始化调试

简介:JESD209-3 LPDDR3精解是一份面向硬件工程师、嵌入式开发者和内存调试人员的标准解读文档。资源基于JEDEC JESD209-3规范,以通俗问答方式拆解LPDDR3核心难点,涵盖DDR3L/DDR3U与LPDDR3的关系、LPDDR3与DDR4的定位差异、Deep Power Down数据…

2026/10/23 23:49:22

Velero 恢复参考指南:跨命名空间恢复与 PV/PVC 存储类映射

Velero 恢复参考指南:跨命名空间恢复与 PV/PVC 存储类映射 【免费下载链接】velero Backup and migrate Kubernetes applications and their persistent volumes 项目地址: https://gitcode.com/GitHub_Trending/ve/velero 本文基于 Velero 仓库中的 restore…

2026/11/5 14:57:07

GJB 438B软件质量保证报告:V模型九阶段十八张检查表自动化

简介:《软件质量保证报告.docx》是一份面向软件质量工程师、配置管理员及军用/嵌入式软件项目成员的规范化质量记录模板,适用于遵循GJB 438B-2009《军用软件开发文档通用要求》的软件研制项目。资源包共1个docx文件,约32KB,为单文…

2026/11/5 15:00:49

基于Hadoop+Spark的民宿智能推荐系统设计与实现

1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享…

2026/11/5 14:10:30

ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配RS485,解决远距离温度监控难题

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 14:10:30

UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 13:55:19

GD32E10x官方例程入门:从GPIO点灯到串口调试

简介:这份GD32E10x系列官方例程面向嵌入式硬件与单片机开发者,基于ARM Cortex-M3内核,汇集兆易创新GD32E10x的示例代码,适合工业控制、消费电子、通信设备等场景的学习、验证与二次开发。压缩包共935个文件,约11.16MB&…

2026/11/5 13:50:18

基于Django的运维平台实战:资产、发布、巡检、告警一体化

简介:这份资源是一套基于Django框架开发的运维平台源码,面向具备Python基础、希望了解Web运维系统实现思路的开发者与运维人员,可用于学习主机管理、服务监控、日志查看、任务调度、权限控制、资源统计、脚本执行与故障告警等常见运维模块的落…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/5 15:39:06

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

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

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

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