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

发布时间:2026/9/17 22:25:55

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/9/17 22:25:55

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

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

2026/9/17 22:25:55

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/9/17 22:25:55

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

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

2026/9/17 23:11:04

从状态机到权限矩阵:用软件工程思维拆解合伙协议

简介:这是一份面向计划共同出资创办公司的创业者与合伙人团队的多方股份合作协议书范本,可帮助解决多人合伙时权责不清、出资比例与利润分配不明等核心问题。协议逐项列明合伙人身份确认、出资总额与股份占比、股利分配与保底收益、合伙期限、入股退股及…

2026/9/17 23:11:04

如何 10 分钟用通 Notepad-- 的 Markdown 预览:编译、高亮到换肤

如何 10 分钟用通 Notepad-- 的 Markdown 预览:编译、高亮到换肤 【免费下载链接】notepad-- 一个支持windows/linux/mac的文本编辑器,目标是做中国人自己的编辑器,来自中国。 项目地址: https://gitcode.com/GitHub_Trending/no/notepad--…

2026/9/16 12:52:37

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

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

2026/9/17 0:03:13

WiFi密码安全测试:从原理到实战的字典暴力破解指南

1. 写在前面:我为什么要研究WiFi密码这件事先交代一下背景。我身边有不少朋友,家里的WiFi密码常年是"12345678"或者"88888888",问就是"好记"。直到有一次,隔壁邻居蹭网蹭到我家路由器后台都进不去&…

2026/9/17 0:03:13

redis-py服务控制与监控函数实战:从ping到slowlog的巡检指南

我用 redis-py 写了快五年的业务代码,坦白说,真正让我觉得这个客户端“像一个成熟工具箱”的,不是 get/set 那套基本操作,而是它那批专门做服务控制与状态监控的辅助函数。日常开发里,大家把redis.Redis(host..., deco…

2026/9/17 0:03:13

SpringBoot+Vue3实现中小企业设备管理系统开发实践

1. 项目概述与核心价值中小企业设备管理系统是制造业、服务业等领域的基础信息化工具。传统设备管理往往依赖Excel表格或纸质记录,存在数据孤岛、流程混乱、维护成本高等痛点。这套基于Java SpringBootVue3MyBatis的技术方案,通过前后端分离架构实现了设…

2026/9/16 22:55:57

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

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

2026/9/16 22:56:09

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

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

2026/9/16 22:56:16

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

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

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

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

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