ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Horse-10 数据集与 MMPose 使用指南:面向马的 2D 姿态估计数据管线详解

Horse-10 数据集与 MMPose 使用指南:面向马的 2D 姿态估计数据管线详解 Horse-10 数据集与 MMPose 使用指南面向马的 2D 姿态估计数据管线详解【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose本篇技术指南以 MMPose 仓库中 Horse-10 论文条目docs/src/papers/datasets/horse10.md为核心结合数据集元信息配置、数据集类实现与单元测试系统梳理 Horse-10 数据集的论文出处、22 关键点与骨架定义、数据下载与目录组织、MMPose 中的加载与使用方式。读完本文你将掌握如何在 MMPose 中正确接入 Horse-10 数据并理解其底层数据集元信息契约。一、数据集背景与论文出处Horse-10 是由 Mathis 等人于 2021 年发表于 IEEE/CVF Winter Conference on Applications of Computer VisionWACV的动物姿态估计数据集。其配套论文题为Pretraining boosts out-of-domain robustness for pose estimation核心研究方向是预训练对姿态估计模型跨域鲁棒性的提升——即模型在某一采集环境下训练后能否在未见过的环境光照、背景、马匹个体差异等中依然保持关键点定位能力。仓库中的论文卡片 docs/src/papers/datasets/horse10.md 完整记录了该论文的标准引用信息在学术论文、报告或模型卡中引用 Horse-10 时可直接使用以下 BibTeXinproceedings{mathis2021pretraining, title{Pretraining boosts out-of-domain robustness for pose estimation}, author{Mathis, Alexander and Biasi, Thomas and Schneider, Steffen and Yuksekgonul, Mert and Rogers, Byron and Bethge, Matthias and Mathis, Mackenzie W}, booktitle{Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision}, pages{1859--1868}, year{2021} }在 MMPose 的 动物 2D 关键点数据集总览 中Horse-10 与 AP-10K、AnimalPose、MacaquePose 等数据集并列收录是仓库支持的动物姿态估计基准之一。二、数据集元信息配置22 个关键点与 18 条骨架连线MMPose 通过统一的dataset_info结构描述一个数据集的全部元信息Horse-10 的定义位于 configs/base/datasets/horse10.py。该配置由五个部分组成dataset_name、paper_info、keypoint_info、skeleton_info、joint_weights与sigmas。2.1 关键点定义keypoint_infoHorse-10 共标注22 个关键点每个关键点包含name名称、id编号0~21、color可视化 RGB 颜色、type部位类型与swap水平翻转对应点本文中全部为空。完整清单如下idnamecolortype0Nose[255, 153, 255]upper1Eye[255, 153, 255]upper2Nearknee[255, 102, 255]upper3Nearfrontfetlock[255, 102, 255]upper4Nearfrontfoot[255, 102, 255]upper5Offknee[255, 102, 255]upper6Offfrontfetlock[255, 102, 255]upper7Offfrontfoot[255, 102, 255]upper8Shoulder[255, 153, 255]upper9Midshoulder[255, 153, 255]upper10Elbow[255, 153, 255]upper11Girth[255, 153, 255]upper12Wither[255, 153, 255]upper13Nearhindhock[255, 51, 255]lower14Nearhindfetlock[255, 51, 255]lower15Nearhindfoot[255, 51, 255]lower16Hip[255, 153, 255]lower17Stifle[255, 153, 255]lower18Offhindhock[255, 51, 255]lower19Offhindfetlock[255, 51, 255]lower20Offhindfoot[255, 51, 255]lower21Ischium[255, 153, 255]lower关键点命名遵循马匹解剖学结构Near*与Off*分别对应观察者视角的近侧/远侧肢体部位如 Nearknee/Offknee、Nearfrontfoot/Offfrontfoot、Nearhindhock/OffhindhockWither马肩隆、Girth胸围、Stifle膝关节、Ischium坐骨等则覆盖躯干核心区域。值得注意的两点swap字段全部为空与人体关键点数据集如 COCO 中 left_shoulder↔right_shoulder 的成对定义不同Horse-10 没有声明任何水平翻转对称关键点对。从配置结构可以推断由该字段推导出的flip_indices/flip_pairs元信息在水平翻转数据增强时不会发生关键点索引重排。type划分为 upper/lower以马匹躯干为分界头部与前肢关键点属upper后肢与臀部关键点属lower。该信息会进入元信息中的upper_body_ids与lower_body_ids可供分区评估如 keypoint_partition_metric.py或分区可视化使用。2.2 骨架连线定义skeleton_infodataset_info同时定义了18 条骨架连线用于可视化与骨架级评估Nose-Eye, Eye-Wither, Wither-Hip, Hip-Ischium, Ischium-Stifle, Stifle-Girth, Girth-Elbow, Elbow-Shoulder, Shoulder-Midshoulder, Midshoulder-Wither, Nearknee-Nearfrontfetlock, Nearfrontfetlock-Nearfrontfoot, Offknee-Offfrontfetlock, Offfrontfetlock-Offfrontfoot, Nearhindhock-Nearhindfetlock, Nearhindfetlock-Nearhindfoot, Offhindhock-Offhindfetlock, Offhindfetlock-Offhindfoot这些连线将头部Nose/Eye经 Wither 连接到躯干主链Wither-Hip-Ischium-Stifle-Girth-Elbow-Shoulder并分别向四条腿延伸构成完整的马匹骨架拓扑。2.3 joint_weights 与 sigmas配置末尾的joint_weights[1.] * 22表示 22 个关键点在损失计算中的权重均为 1.0无重点加权sigmas[]表示该数据集未提供逐关键点的高斯标准差先验部分数据集会据此生成自适应热图标准差。paper_info字段则冗余记录了论文作者、标题、会议与年份与论文卡片一致。三、数据集加载实现Horse10Dataset 与元信息机制3.1 类定义Horse-10 在 MMPose 中的加载实现位于 mmpose/datasets/datasets/animal/horse10_dataset.py类声明极为简洁DATASETS.register_module() class Horse10Dataset(BaseCocoStyleDataset): Horse10Dataset for animal pose estimation. ... METAINFO: dict dict(from_fileconfigs/_base_/datasets/horse10.py)这体现了 MMPose 3.x 的数据集设计哲学元信息与代码解耦。Horse10Dataset本身不内嵌任何关键点定义而是通过METAINFO的from_file机制在运行时加载上一节介绍的 configs/base/datasets/horse10.py数据解析与增广逻辑则全部继承自BaseCocoStyleDatasetCOCO 风格标注格式即images/annotations/categories三件套的 JSON 结构。新增一个动物数据集时通常只需仿照该模式编写一个派生类并挂载对应的dataset_info配置。3.2 关键构造参数从类文档字符串docstring可以确认该数据集类支持以下常用参数ann_file标注文件路径默认bbox_file检测结果文件路径。若设置评估时将使用该文件中的检测框替代 GT 框仅评估阶段有效即test_modeTrue时data_mode数据采样模式topdown每样本单实例或bottomup每样本含图中全部实例默认topdowndata_rootdata_prefix与ann_file的根目录data_prefix训练数据的路径前缀默认dict(imgNone, annNone)filter_cfg数据过滤配置如按bbox_score_thr过滤检测框test_modeTrue表示测试阶段不做随机增广、可加载 bbox 文件lazy_init是否在实例化时立即加载标注仅需元信息如可视化场景时设False可跳过标注加载以节省时间。3.3 元信息派生由 configs/base/datasets/horse10.py 与加载逻辑共同派生出的dataset.metainfo包含dataset_name、num_keypoints22、keypoint_id2name/keypoint_name2id双向映射、upper_body_ids/lower_body_ids、flip_indices/flip_pairs、keypoint_colors、num_skeleton_links18、skeleton_links/skeleton_link_colors、dataset_keypoint_weights等字段为训练管线、评估器与可视化器提供统一入口。四、数据下载与目录组织4.1 下载与版权声明Horse-10 的图像需从数据集官方主页下载标注文件则从 OpenMMLab 发布的horse10_annotations.tar中获取数据准备完整说明见 docs/en/dataset_zoo/2d_animal_keypoint.md 的 Horse-10 小节。注意根据作者声明该数据集及其标注仅限非商业用途使用前请阅读horse10.deeplabcut.org上的许可信息。4.2 目录结构将图像与标注解压后应组织为如下结构放在仓库根目录的data/下mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs ── data │── horse10 │-- annotations │ │-- horse10-train-split1.json │ |-- horse10-train-split2.json │ |-- horse10-train-split3.json │ │-- horse10-test-split1.json │ |-- horse10-test-split2.json │ |-- horse10-test-split3.json │-- labeled-data │ │-- BrownHorseinShadow │ │-- BrownHorseintoshadow │ │-- ...标注目录下共6 个 JSON 文件train/test 各 3 个 split。split1/2/3的划分与论文中跨环境跨域鲁棒性的评测设定直接相关——不同 split 对应不同采集环境如BrownHorseinShadow、BrownHorseintoshadow等子目录分别代表不同光照/场景的视频片段用于验证模型在训练环境之外的泛化能力这正是论文标题 out-of-domain robustness 的落点。五、在训练与评估配置中接入 Horse-10由于 configs/base/datasets/horse10.py 位于_base_目录任何 top-down 或 bottom-up 训练配置都可以通过继承方式引用它。一个典型的接入方式是在自定义训练配置中以_base_字段引入该数据集元信息并配套设置数据集类、数据根目录、标注文件与增广管线_base_ configs/_base_/datasets/horse10.py # 以 topdown 模式为例 dataset_type Horse10Dataset data_root data/horse10/ train_dataloader dict( batch_size64, num_workers8, persistent_workersTrue, samplerdict(typeDefaultSampler, shuffleTrue), datasetdict( typedataset_type, data_rootdata_root, data_modetopdown, ann_fileannotations/horse10-train-split1.json, data_prefixdict(img), pipelinetrain_pipeline, )) val_dataloader dict( batch_size32, num_workers8, datasetdict( typedataset_type, data_rootdata_root, data_modetopdown, ann_fileannotations/horse10-test-split1.json, data_prefixdict(img), pipelineval_pipeline, test_modeTrue, ))需要说明的是上述片段为示意性写法_base_中仅含dataset_info元信息实际训练时还需组合train_pipeline、val_pipeline及优化器、调度器、评估器等配置可参考 configs 目录下 animal_2d_keypoint 各模型完整示例。按论文设定进行跨域评测时可以用某个 split 训练、另一个 split 测试以复现 out-of-domain 评估协议。训练完成后若希望用检测器输出的框而非 GT 框评估可设置bbox_file并保持test_modeTrue。六、单元测试元信息契约与参数校验仓库为 Horse-10 数据集提供了完整的单元测试 tests/test_datasets/test_datasets/test_animal_datasets/test_horse10_dataset.py其验证内容可作为接入数据时的契约清单元信息校验test_metainfo断言dataset_name horse10、num_keypoints 22且keypoint_colors、dataset_keypoint_weights长度均为 22skeleton_links与skeleton_link_colors长度一致。这反向验证了 configs/base/datasets/horse10.py 中定义的一致性。topdown / bottomup 双模式两种data_mode下训练与测试均能正确构建且data_info的关键字段类型符合预期——topdown 模式返回img_id / img_path / bbox / bbox_score / keypoints / keypoints_visible / idbottomup 模式额外包含invalid_segs。异常路径data_mode非法时抛出got invalid data_modebbox_file仅在test_modeTrue时允许设置且仅限 topdown 模式bbox_score_thr过滤仅限 topdown 模式。这些校验保证了用户不会在错误场景下静默得到异常行为。测试使用仓库自带的 tests/data/horse10 迷你样本3 张图片 1 个test_horse10.json可在无完整数据集的情况下验证数据集类的加载逻辑。七、小结从论文卡片到可运行数据集回顾全文Horse-10 在 MMPose 中的落地形成了清晰的三层结构论文层docs/src/papers/datasets/horse10.md 承载引用信息WACV2021、BibTeX保证学术引用可溯源元信息层configs/base/datasets/horse10.py 以dataset_info声明 22 关键点、18 骨架连线、权重与颜色通过METAINFO挂载实现层horse10_dataset.py 以极简的派生类复用BaseCocoStyleDataset的全部解析与采样逻辑并由 单元测试 锁定行为契约。理解这一模式后你不仅能直接复用 Horse-10 进行马的姿态估计训练与跨域鲁棒性实验还能照此范式快速接入其他 COCO 风格的动物姿态数据集。【免费下载链接】mmposeOpenMMLab Pose Estimation Toolbox and Benchmark.项目地址: https://gitcode.com/GitHub_Trending/mm/mmpose创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表