FEATURED · 精选文章

MMPose 预训练检测模型库(MMDetection Model Zoo)完全指南:人体、手部、人脸与动物检测器的选型与使用

发布时间 / 2026/9/17 19:30:30
来源 / 创域科博编辑部
栏目 / 资讯中心
MMPose 预训练检测模型库(MMDetection Model Zoo)完全指南:人体、手部、人脸与动物检测器的选型与使用 MMPose 预训练检测模型库MMDetection Model Zoo完全指南人体、手部、人脸与动物检测器的选型与使用【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmposeMMPose 提供demo/docs/en/mmdet_modelzoo.md作为官方检测模型清单汇总了配合 top-down 姿态估计流水线使用的四类 bounding box 检测模型人体、手部、人脸与动物。本指南以该模型库为骨架结合仓库内demo/mmdetection_cfg/下的真实配置与demo/topdown_demo_with_mmdet.py推理脚本帮助你快速完成检测器的选型、权重下载、参数解读与端到端演示运行并掌握用 MMDetection 复现单类检测器的关键配置要点。为什么 top-down 姿态估计需要一个外部检测器MMPose 的 top-down 姿态估计流程是典型的两阶段结构先用检测器圈出目标实例的 bounding box再对裁剪区域进行关键点估计。检测器的质量直接决定姿态估计的输入质量——漏检会导致关键点丢失定位不准会降低关键点精度。仓库中的 demo/topdown_demo_with_mmdet.py 正是这一流程的完整落地它通过init_detectorinference_detector来自 MMDetection得到检测结果再通过init_pose_estimatorinference_topdown来自 MMPose完成关键点预测。因此运行这类 demo 前必须先安装 mmdet脚本入口处有assert has_mmdet, Please install mmdet to run the demo.的硬性校验并准备好一份可用的检测模型。检测模型从哪来两个途径复用 MMDetection 官方 Model Zoo 的 COCO 80 类预训练模型或使用本模型库列出的、基于特定数据集OneHand10K、COCO-face、MacaquePose专门训练的检测器。后者正是demo/docs/en/mmdet_modelzoo.md的核心内容下文逐一展开。人体检测模型直接使用 MMDetection 的 COCO 80 类模型对于人体 bounding box 检测MMPose 官方不额外训练专用模型而是直接复用 MMDetection 提供的 COCO 预训练模型。MMDetection 的模型库包含 80 个 COCO 类别的检测权重其中已经包含了person类别索引 0这一类别因此无需任何微调即可用于人体检测。仓库在 demo/mmdetection_cfg/rtmdet_m_640-8xb32_coco-person.py 提供了一个单类化的人体检测配置它以 MMDetection 的 RTMDet-m 为基座通过bbox_headdict(num_classes1)把输出类别数收缩为 1并通过metainfodict(classes(person,))把类别语义锁定为 person同时设置了test_cfgscore_thr0.05、nmsdict(typenms, iou_threshold0.6)、max_per_img100来控制推理时的输出。对应权重为rtmdet_m_8xb32-100e_coco-obj365-person-235e8209.pth。在 demo/docs/en/2d_human_pose_demo.md 中人体 demo 的官方示例命令如下python demo/topdown_demo_with_mmdet.py \ demo/mmdetection_cfg/rtmdet_m_640-8xb32_coco-person.py \ https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmdet_m_8xb32-100e_coco-obj365-person-235e8209.pth \ configs/body_2d_keypoint/rtmpose/body8/rtmpose-m_8xb256-420e_body8-256x192.py \ https://download.openmmlab.com/mmpose/v1/projects/rtmposev1/rtmpose-m_simcc-body7_pt-body7_420e-256x192-e48f03d0_20230504.pth \ --input tests/data/coco/000000197388.jpg --show --draw-heatmap \ --output-root vis_results/若追求更快的推理速度同一目录下的 demo/mmdetection_cfg/rtmdet_nano_320-8xb32_coco-person.py 提供了 nano 规模的人体检测配置输入 320deepen_factor0.33、widen_factor0.25适合资源受限或对实时性要求高的场景。手部检测模型OneHand10K 上的两个选项与人体不同手部检测无法直接复用 COCO 80 类模型因为 COCO 不包含手部类别。因此 MMPose 使用 MMDetection 在OneHand10K 数据集上专门训练了手部检测模型官方结果如下手部检测在 OneHand10K 测试集上的结果Hand detection results on OneHand10K test set架构ArchBox AP权重ckpt日志logCascade_R-CNN X-101-64x4d-FPN-1class0.817ckptlogRTMDet-nano0.760ckpt-两个模型代表两种取舍Cascade R-CNN X-101-64x4d 精度更高0.817而RTMDet-nano 更轻量快速0.760是官方手部 demo 的默认选择。Cascade R-CNN X-101-64x4d-FPN-1class 配置解读demo/mmdetection_cfg/cascade_rcnn_x101_64x4d_fpn_1class.py 是完整的单类 Cascade R-CNN 配置其关键设计点backboneResNeXt-101-64x4d通过init_cfgdict(typePretrained, checkpointopen-mmlab://resnext101_64x4d)加载 ImageNet 预训练权重neckFPNin_channels[256, 512, 1024, 2048]out_channels256输出 5 层金字塔特征roi_headCascadeRoIHeadnum_stages3stage_loss_weights[1, 0.5, 0.25]——三个级联阶段的回归损失权重逐级衰减这是 Cascade R-CNN 渐进式精修的标志性设计三个 bbox head 均设置num_classes1、reg_class_agnosticTrue单类别 类别无关回归配合逐级缩小的target_stds[0.1,...]→[0.05,...]→[0.033,...]使每一级 head 的监督目标越来越严格loss分类用CrossEntropyLoss回归用SmoothL1Lossbeta1.0。从模型文件名..._20e_...可以看出该模型按 20 epoch20e的训练计划产出。reg_class_agnosticTrue是1 类检测配置的重要细节类别无关的回归头对边界框坐标不区分类别这对单类检测任务是合理的简化。RTMDet-nano 手部检测配置解读demo/mmdetection_cfg/rtmdet_nano_320-8xb32_hand.py 展示了另一种思路——从 MMDetection 的 RTMDet 大模型配置出发做轻量化改造_base_ mmdet::rtmdet/rtmdet_l_8xb32-300e_coco.py直接继承 RTMDet-L 的完整训练设置模型缩放deepen_factor0.33、widen_factor0.25、use_depthwiseTrue把主干与颈部压缩为 nano 级别neck 的in_channels[64, 128, 256]、out_channels64、num_csp_blocks1也随之收缩输入分辨率input_shape 320训练与测试均以 320×320 为准训练数据ConcatDataset拼接了 OneHand10K、FreiHand、RHD、HalpeHand 四个数据集的训练集通过mmpose.OneHand10KDataset等mmpose.*数据集类型加载测试仍用 OneHand10K 测试集——这是典型的多源数据增强手部泛化做法训练技巧EMAHookExpMomentumEMAmomentum0.0002做权重滑动平均PipelineSwitchHook在 epoch 280 时切换到train_pipeline_stage2去掉 Mosaic、降低增强强度这是 YOLO 系模型大 epoch 训练后期减弱增强的经典策略。在 demo/docs/en/2d_hand_demo.md 中手部 demo 的官方示例命令python demo/topdown_demo_with_mmdet.py \ demo/mmdetection_cfg/rtmdet_nano_320-8xb32_hand.py \ https://download.openmmlab.com/mmpose/v1/projects/rtmposev1/rtmdet_nano_8xb32-300e_hand-267f9c8f.pth \ configs/hand_2d_keypoint/rtmpose/hand5/rtmpose-m_8xb256-210e_hand5-256x256.py \ https://download.openmmlab.com/mmpose/v1/projects/rtmposev1/rtmpose-m_simcc-hand5_pt-aic-coco_210e-256x256-74fb594_20230320.pth \ --input tests/data/onehand10k/9.jpg \ --show --draw-heatmap人脸检测模型COCO-face 上训练的 YOLOX-s对于人脸 bounding box 检测MMPose 使用 MMDetection 在COCO-face数据上训练了一个YOLOX-s检测器官方结果如下人脸检测在 COCO-face 测试集上的结果Face detection results on COCO-face test set架构ArchBox AP权重ckptYOLOX-s0.408ckptyolox-s_8xb8-300e_coco-face.py 这份配置的要点加载 COCO 预训练权重再微调load_from指向 MMDetection 的yolox_s_8x8_300e_coco权重在 COCO 检测能力基础上迁移到人脸任务主干与颈部CSPDarknetdeepen_factor0.33、widen_factor0.5 YOLOXPAFPN均为 YOLOX-s 的典型缩放bbox_headYOLOXHeadnum_classes1训练用SimOTAAssignercenter_radius2.5做标签分配测试时score_thr0.01、nmsdict(typenms, iou_threshold0.65)训练计划300 epochsSGDlr0.01nesterovTrue前 5 epoch 用QuadraticWarmupLR预热随后CosineAnnealingLR衰减到 eta_min0.0005custom_hooks挂载了YOLOXModeSwitchHook最后 15 epoch 关闭增强、SyncNormHook与EMAHook数据与类别训练/验证使用 COCO 格式的coco_face_train.json/coco_face_val.json并显式声明metainfodict(CLASSES(person,), ...)——即把人脸作为一个单类别来训练。在 demo/docs/en/2d_face_demo.md 中人脸 demo 的官方示例命令python demo/topdown_demo_with_mmdet.py \ demo/mmdetection_cfg/yolox-s_8xb8-300e_coco-face.py \ https://download.openmmlab.com/mmpose/mmdet_pretrained/yolo-x_8xb8-300e_coco-face_13274d7c.pth \ configs/face_2d_keypoint/rtmpose/face6/rtmpose-m_8xb256-120e_face6-256x256.py \ https://download.openmmlab.com/mmpose/v1/projects/rtmposev1/rtmpose-m_simcc-face6_pt-in1k_120e-256x256-72a37400_20230529.pth \ --input tests/data/cofw/001766.jpg \ --show --draw-heatmap动物检测模型COCO 动物类别与 Macaque 专项模型COCO 数据集中的 10 个常见动物类别COCO 数据集共 80 个目标类别其中包含10 个常见动物类别类目 id 与名称对应如下(14: bird, 15: cat, 16: dog, 17: horse, 18: sheep, 19: cow, 20: elephant, 21: bear, 22: zebra, 23: giraffe)如果检测目标属于以上类别可以直接从 MMDetection 的 COCO 80 类模型库中挑选相应模型然后在运行 demo 时用--det-cat-id指定目标类别的索引即可例如--det-cat-id15表示只保留检测结果为 cat 的框。MacaquePose 测试集上的猕猴检测结果针对 COCO 之外的猕猴macaque检测MMPose 提供了两个专门训练的模型官方结果如下架构ArchBox AP权重ckpt日志logFaster_R-CNN_Res50-FPN-1class0.840ckptlogCascade_R-CNN X-101-64x4d-FPN-1class0.879ckptlog注意两个模型共用同一个 cascade_rcnn_x101_64x4d_fpn_1class.py 配置文件结构只是训练数据OneHand10K 手部 vs MacaquePose 猕猴不同这正是一份单类检测配置 换数据集重训复用模式的体现。其中 faster_rcnn_r50_fpn_1class.py 是经典的 Faster R-CNN 配置ResNet50 主干pretrainedtorchvision://resnet50frozen_stages1、FPN 颈部、RPN StandardRoIHeadnum_classes1训练使用 COCO 1x scheduletotal_epochs 12SGD lr0.02step 在 [8, 11] 处衰减测试时score_thr0.05、NMSiou_threshold0.5、max_per_img100。动物 demo 示例在 demo/docs/en/2d_animal_demo.md 中动物姿态 demo 使用 COCO 检测器 --det-cat-id筛选类别的官方示例python demo/topdown_demo_with_mmdet.py \ demo/mmdetection_cfg/rtmdet_m_8xb32-300e_coco.py \ https://download.openmmlab.com/mmdetection/v3.0/rtmdet/rtmdet_m_8xb32-300e_coco/rtmdet_m_8xb32-300e_coco_20220719_112220-229f527c.pth \ configs/animal_2d_keypoint/topdown_heatmap/animalpose/td-hm_hrnet-w32_8xb64-210e_animalpose-256x256.py \ https://download.openmmlab.com/mmpose/animal/hrnet/hrnet_w32_animalpose_256x256-1aa7f075_20210426.pth \ --input tests/data/animalpose/ca110.jpeg \ --show --draw-heatmap --det-cat-id15其中--det-cat-id15表示只使用标签为 cat 的检测框15 是 COCO 中 cat 的类别索引对视频输入则把--det-cat-id换成目标动物的索引即可如 16 对应 dog。其余动物如猕猴则使用上文的专项检测模型。统一推理入口topdown_demo_with_mmdet.py 参数详解上述所有 demo 共用同一个脚本 demo/topdown_demo_with_mmdet.py完整命令模板为python demo/topdown_demo_with_mmdet.py \ ${MMDET_CONFIG_FILE} ${MMDET_CHECKPOINT_FILE} \ ${MMPOSE_CONFIG_FILE} ${MMPOSE_CHECKPOINT_FILE} \ --input ${INPUT_PATH} \ [--output-root ${OUTPUT_DIR}] [--save-predictions] \ [--show] [--draw-heatmap] [--device ${GPU_ID or CPU}] \ [--bbox-thr ${BBOX_SCORE_THR}] [--kpt-thr ${KPT_SCORE_THR}]从脚本源码parser.add_argument部分可以整理出完整参数表参数默认值说明det_config必填MMDetection 检测器配置文件位置参数如demo/mmdetection_cfg/rtmdet_m_640-8xb32_coco-person.pydet_checkpoint必填MMDetection 检测器权重路径或 URL位置参数pose_config必填MMPose 姿态估计配置文件位置参数pose_checkpoint必填MMPose 姿态估计权重路径或 URL位置参数--input输入图像/视频路径或webcam调用摄像头--showFalse是否弹窗显示结果--output-root可视化结果保存目录不指定则不保存--save-predictionsFalse是否把预测结果保存为 JSON需配合--output-root--devicecuda:0推理设备CPU 推理传cpu--det-cat-id0检测模型输出的类别索引用于筛选目标类别动物 demo 的关键参数--bbox-thr0.3检测框得分阈值--nms-thr0.3检测框 NMS 的 IoU 阈值--kpt-thr0.3关键点可视化置信度阈值--draw-heatmapFalse是否同时可视化热图仅对 heatmap 类模型有效--show-kpt-idxFalse是否在关键点上显示索引编号--skeleton-stylemmpose骨架可视化风格可选mmpose/openpose--radius3关键点绘制半径--thickness1骨架连线粗细--show-interval0视频逐帧之间的睡眠秒数--alpha0.8检测框的透明度--draw-bboxFalse是否绘制检测框脚本内部的检测→姿态估计调用链也值得了解对应process_one_image函数见 demo/topdown_demo_with_mmdet.pyinference_detector(detector, img)得到pred_instances按pred_instance.labels args.det_cat_id与scores args.bbox_thr过滤框再用nms(bboxes, args.nms_thr)做非极大值抑制把最终 bbox 交给inference_topdown(pose_estimator, img, bboxes)逐框估计关键点merge_data_samples合并结果后交给visualizer.add_datasample可视化。理解这条链路后你就能自由组合任意 MMDetection 检测器 任意 MMPose 姿态模型而不局限于官方示例。进阶从这些配置学习单类检测器的训练要点综合四个方向的配置可以总结出用 MMDetection 训练1 类检测器专用于姿态估计前置检测的通用配方输出类别收缩把 bbox head 的num_classes改为 1如 Cascade R-CNN 配置中的num_classes1对类别无关回归reg_class_agnosticTrue可进一步简化。类别语义声明通过metainfodict(CLASSES(person,))RTMDet 与 YOLOX 配置或直接修改数据集元信息把单类语义写进配置。数据来源可以使用单一数据集OneHand10K、COCO-face、MacaquePose也可以用ConcatDataset拼接多个数据集如手部配置拼接 OneHand10K FreiHand RHD HalpeHand以增强泛化。预训练迁移无论是init_cfgdict(typePretrained, checkpointopen-mmlab://resnext101_64x4d)主干预训练还是load_from整个 COCO 检测权重YOLOX 人脸配置迁移学习都是在小数据集上快速收敛的关键。测试输出控制test_cfg中的score_thr、NMS 的iou_threshold与max_per_img决定最终送给姿态模型的框数量与质量应根据任务场景调参。这些配置与权重在 demo/mmdetection_cfg/ 目录下均可直接查看与复用。加速推理的小技巧关闭测试时的翻转增强在姿态估计配置中设置model.test_cfg.flip_testFalse各任务的官方示例可见 2d_human_pose_demo.md、2d_animal_demo.md 等文档可显著减少前向次数代价是少量精度。换用更快的检测器在检测精度可接受的前提下把 Cascade R-CNN X-101 这类重模型换成 RTMDet-nano、RTMDet-tiny 或 YOLOX-s 等轻量模型是 top-down 流水线最常见的提速手段——这也是模型库同时提供高精度与轻量两档选项的原因。相关文档导航完整的演示命令可继续查阅 2d_human_pose_demo.md、2d_hand_demo.md、2d_face_demo.md、2d_animal_demo.md本模型的英文原版清单见 demo/docs/en/mmdet_modelzoo.md中文版见 demo/docs/zh_cn/mmdet_modelzoo.md。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻