# 数据集格式转换脚本 MMPose 提供了一些工具来帮助用户处理数据集。 ## Animal Pose 数据集
Animal-Pose (ICCV'2019) ```bibtex @InProceedings{Cao_2019_ICCV, author = {Cao, Jinkun and Tang, Hongyang and Fang, Hao-Shu and Shen, Xiaoyong and Lu, Cewu and Tai, Yu-Wing}, title = {Cross-Domain Adaptation for Animal Pose Estimation}, booktitle = {The IEEE International Conference on Computer Vision (ICCV)}, month = {October}, year = {2019} } ```
对于 [Animal-Pose](https://sites.google.com/view/animal-pose/),可以从[官方网站](https://sites.google.com/view/animal-pose/)下载图像和标注。脚本 `tools/dataset_converters/parse_animalpose_dataset.py` 将原始标注转换为 MMPose 兼容的格式。预处理的[标注文件](https://download.openmmlab.com/mmpose/datasets/animalpose_annotations.tar)可用。如果您想自己生成标注,请按照以下步骤操作: 1. 下载图片与标注信息并解压到 `$MMPOSE/data`,按照以下格式组织: ```text mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs `── data │── animalpose │ │-- VOC2012 │ │-- Annotations │ │-- ImageSets │ │-- JPEGImages │ │-- SegmentationClass │ │-- SegmentationObject │ │-- animalpose_image_part2 │ │-- cat │ │-- cow │ │-- dog │ │-- horse │ │-- sheep │ │-- PASCAL2011_animal_annotation │ │-- cat │ │ |-- 2007_000528_1.xml │ │ |-- 2007_000549_1.xml │ │ │-- ... │ │-- cow │ │-- dog │ │-- horse │ │-- sheep │ │-- annimalpose_anno2 │ │-- cat │ │ |-- ca1.xml │ │ |-- ca2.xml │ │ │-- ... │ │-- cow │ │-- dog │ │-- horse │ │-- sheep ``` 2. 运行脚本 ```bash python tools/dataset_converters/parse_animalpose_dataset.py ``` 生成的标注文件将保存在 `$MMPOSE/data/animalpose/annotations` 中。 开源作者没有提供官方的 train/val/test 划分,我们选择来自 PascalVOC 的图片作为 train & val,train+val 一共 3600 张图片,5117 个标注。其中 2798 张图片,4000 个标注用于训练,810 张图片,1117 个标注用于验证。测试集包含 1000 张图片,1000 个标注用于评估。 ## COFW 数据集
COFW (ICCV'2013) ```bibtex @inproceedings{burgos2013robust, title={Robust face landmark estimation under occlusion}, author={Burgos-Artizzu, Xavier P and Perona, Pietro and Doll{\'a}r, Piotr}, booktitle={Proceedings of the IEEE international conference on computer vision}, pages={1513--1520}, year={2013} } ```
对于 COFW 数据集,请从 [COFW Dataset (Color Images)](https://data.caltech.edu/records/20099) 进行下载。 将 `COFW_train_color.mat` 和 `COFW_test_color.mat` 移动到 `$MMPOSE/data/cofw/`,确保它们按照以下格式组织: ```text mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs `── data │── cofw |── COFW_train_color.mat |── COFW_test_color.mat ``` 运行 `pip install h5py` 安装依赖,然后在 `$MMPOSE` 下运行脚本: ```bash python tools/dataset_converters/parse_cofw_dataset.py ``` 最终结果为: ```text mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs `── data │── cofw |── COFW_train_color.mat |── COFW_test_color.mat |── annotations | |── cofw_train.json | |── cofw_test.json |── images |── 000001.jpg |── 000002.jpg ``` ## DeepposeKit 数据集
Desert Locust (Elife'2019) ```bibtex @article{graving2019deepposekit, title={DeepPoseKit, a software toolkit for fast and robust animal pose estimation using deep learning}, author={Graving, Jacob M and Chae, Daniel and Naik, Hemal and Li, Liang and Koger, Benjamin and Costelloe, Blair R and Couzin, Iain D}, journal={Elife}, volume={8}, pages={e47994}, year={2019}, publisher={eLife Sciences Publications Limited} } ```
对于 [Vinegar Fly](https://github.com/jgraving/DeepPoseKit-Data),[Desert Locust](https://github.com/jgraving/DeepPoseKit-Data), 和 [Grévy’s Zebra](https://github.com/jgraving/DeepPoseKit-Data) 数据集,请从 [DeepPoseKit-Data](https://github.com/jgraving/DeepPoseKit-Data) 下载数据。 `tools/dataset_converters/parse_deepposekit_dataset.py` 脚本可以将原始标注转换为 MMPose 支持的格式。我们已经转换好的标注文件可以在这里下载: - [vinegar_fly_annotations](https://download.openmmlab.com/mmpose/datasets/vinegar_fly_annotations.tar) - [locust_annotations](https://download.openmmlab.com/mmpose/datasets/locust_annotations.tar) - [zebra_annotations](https://download.openmmlab.com/mmpose/datasets/zebra_annotations.tar) 如果你希望自己转换数据,请按照以下步骤操作: 1. 下载原始图片和标注,并解压到 `$MMPOSE/data`,将它们按照以下格式组织: ```text mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs `── data | |── DeepPoseKit-Data | `── datasets | |── fly | | |── annotation_data_release.h5 | | |── skeleton.csv | | |── ... | | | |── locust | | |── annotation_data_release.h5 | | |── skeleton.csv | | |── ... | | | `── zebra | |── annotation_data_release.h5 | |── skeleton.csv | |── ... | │── fly `-- images │-- 0.jpg │-- 1.jpg │-- ... ``` 图片也可以在 [vinegar_fly_images](https://download.openmmlab.com/mmpose/datasets/vinegar_fly_images.tar),[locust_images](https://download.openmmlab.com/mmpose/datasets/locust_images.tar) 和[zebra_images](https://download.openmmlab.com/mmpose/datasets/zebra_images.tar) 下载。 2. 运行脚本: ```bash python tools/dataset_converters/parse_deepposekit_dataset.py ``` 生成的标注文件将保存在 $MMPOSE/data/fly/annotations`,`$MMPOSE/data/locust/annotations`和`$MMPOSE/data/zebra/annotations\` 中。 由于官方数据集中没有提供测试集,我们随机选择了 90% 的图片用于训练,剩下的 10% 用于测试。 ## Macaque 数据集
MacaquePose (bioRxiv'2020) ```bibtex @article{labuguen2020macaquepose, title={MacaquePose: A novel ‘in the wild’macaque monkey pose dataset for markerless motion capture}, author={Labuguen, Rollyn and Matsumoto, Jumpei and Negrete, Salvador and Nishimaru, Hiroshi and Nishijo, Hisao and Takada, Masahiko and Go, Yasuhiro and Inoue, Ken-ichi and Shibata, Tomohiro}, journal={bioRxiv}, year={2020}, publisher={Cold Spring Harbor Laboratory} } ```
对于 [MacaquePose](http://www2.ehub.kyoto-u.ac.jp/datasets/macaquepose/index.html) 数据集,请从 [这里](http://www2.ehub.kyoto-u.ac.jp/datasets/macaquepose/index.html) 下载数据。 `tools/dataset_converters/parse_macaquepose_dataset.py` 脚本可以将原始标注转换为 MMPose 支持的格式。我们已经转换好的标注文件可以在 [这里](https://download.openmmlab.com/mmpose/datasets/macaque_annotations.tar) 下载。 如果你希望自己转换数据,请按照以下步骤操作: 1. 下载原始图片和标注,并解压到 `$MMPOSE/data`,将它们按照以下格式组织: ```text mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs `── data │── macaque │-- annotations.csv │-- images │ │-- 01418849d54b3005.jpg │ │-- 0142d1d1a6904a70.jpg │ │-- 01ef2c4c260321b7.jpg │ │-- 020a1c75c8c85238.jpg │ │-- 020b1506eef2557d.jpg │ │-- ... ``` 2. 运行脚本: ```bash python tools/dataset_converters/parse_macaquepose_dataset.py ``` 生成的标注文件将保存在 `$MMPOSE/data/macaque/annotations` 中。 由于官方数据集中没有提供测试集,我们随机选择了 90% 的图片用于训练,剩下的 10% 用于测试。 ## Human3.6M 数据集
Human3.6M (TPAMI'2014) ```bibtex @article{h36m_pami, author = {Ionescu, Catalin and Papava, Dragos and Olaru, Vlad and Sminchisescu, Cristian}, title = {Human3.6M: Large Scale Datasets and Predictive Methods for 3D Human Sensing in Natural Environments}, journal = {IEEE Transactions on Pattern Analysis and Machine Intelligence}, publisher = {IEEE Computer Society}, volume = {36}, number = {7}, pages = {1325-1339}, month = {jul}, year = {2014} } ```
对于 [Human3.6M](http://vision.imar.ro/human3.6m/description.php) 数据集,请从官网下载数据,放置到 `$MMPOSE/data/h36m` 下。 然后执行 [预处理脚本](/tools/dataset_converters/preprocess_h36m.py)。 ```bash python tools/dataset_converters/preprocess_h36m.py --metadata {path to metadata.xml} --original data/h36m ``` 这将在全帧率(50 FPS)和降频帧率(10 FPS)下提取相机参数和姿势注释。处理后的数据应具有以下结构: ```text mmpose ├── mmpose ├── docs ├── tests ├── tools ├── configs `── data ├── h36m ├── annotation_body3d | ├── cameras.pkl | ├── fps50 | | ├── h36m_test.npz | | ├── h36m_train.npz | | ├── joint2d_rel_stats.pkl | | ├── joint2d_stats.pkl | | ├── joint3d_rel_stats.pkl | | `── joint3d_stats.pkl | `── fps10 | ├── h36m_test.npz | ├── h36m_train.npz | ├── joint2d_rel_stats.pkl | ├── joint2d_stats.pkl | ├── joint3d_rel_stats.pkl | `── joint3d_stats.pkl `── images ├── S1 | ├── S1_Directions_1.54138969 | | ├── S1_Directions_1.54138969_00001.jpg | | ├── S1_Directions_1.54138969_00002.jpg | | ├── ... | ├── ... ├── S5 ├── S6 ├── S7 ├── S8 ├── S9 `── S11 ``` 然后,标注信息需要转换为 MMPose 支持的 COCO 格式。这可以通过运行以下命令完成: ```bash python tools/dataset_converters/h36m_to_coco.py ``` ## MPII 数据集
MPII (CVPR'2014) ```bibtex @inproceedings{andriluka14cvpr, author = {Mykhaylo Andriluka and Leonid Pishchulin and Peter Gehler and Schiele, Bernt}, title = {2D Human Pose Estimation: New Benchmark and State of the Art Analysis}, booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)}, year = {2014}, month = {June} } ```
对于 [MPII](http://human-pose.mpi-inf.mpg.de/) 数据集,请从官网下载数据,放置到 `$MMPOSE/data/mpii` 下。 我们提供了一个脚本来将 `.mat` 格式的标注文件转换为 `.json` 格式。这可以通过运行以下命令完成: ```shell python tools/dataset_converters/mat2json ${PRED_MAT_FILE} ${GT_JSON_FILE} ${OUTPUT_PRED_JSON_FILE} ``` 例如: ```shell python tools/dataset/mat2json work_dirs/res50_mpii_256x256/pred.mat data/mpii/annotations/mpii_val.json pred.json ```