人体姿态检测数据集
人体姿态估计 数据集在这里插入图片描述

包括coco数据集,mpii数据集,crowdpose数据集,ochuman数据集以及posetrack数据集在这里插入图片描述

做人体姿态估计方向常用的几个数据集

如何使用这些常用的人体姿态检测数据集进行人体姿态估计的详细步骤。这些数据集包括 COCO、MPII、CrowdPose、OCHuman 和 PoseTrack。我们将详细介绍如何准备数据集、安装必要的依赖、训练模型以及评估模型性能。

一、数据集介绍

  1. COCO (Common Objects in Context)
    简介:COCO 是一个大规模的目标检测、分割和人体关键点检测数据集。
    网址:COCO 官方网站
    关键点:17 个关键点
  2. MPII (Max Planck Institute for Informatics)
    简介:MPII 是一个广泛使用的人体姿态估计数据集,主要关注日常活动。
    网址:MPII 官方网站
    关键点:16 个关键点
  3. CrowdPose
    简介:CrowdPose 是一个专门针对拥挤场景的人体姿态估计数据集。
    网址:CrowdPose 官方网站
    关键点:14 个关键点
  4. OCHuman
    简介:OCHuman 是一个包含复杂场景和遮挡情况的人体姿态估计数据集。
    网址:OCHuman 官方网站
    关键点:17 个关键点
  5. PoseTrack
    简介:PoseTrack 是一个多目标跟踪和人体姿态估计数据集,主要用于视频中的多目标跟踪。
    网址:PoseTrack 官方网站
    关键点:17 个关键点
    二、安装依赖
    确保你已经安装了人体姿态估计所需的依赖。可以使用以下命令安装:

bash
深色版本
pip install torch torchvision
pip install pyyaml
pip install opencv-python
pip install matplotlib
pip install numpy
pip install tqdm
pip install pycocotools
三、下载数据集

  1. 下载 COCO 数据集
    bash
    深色版本

下载 COCO 数据集

wget http://images.cocodataset.org/zips/train2017.zip
wget http://images.cocodataset.org/zips/val2017.zip
wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip

解压数据集

unzip train2017.zip -d coco
unzip val2017.zip -d coco
unzip annotations_trainval2017.zip -d coco
2. 下载 MPII 数据集
bash
深色版本

下载 MPII 数据集

wget http://datasets.d2.mpi-inf.mpg.de/andriluka14cvpr/mpii_human_pose_v1.tar.gz
wget http://datasets.d2.mpi-inf.mpg.de/andriluka14cvpr/mpii_human_pose_v1_u12_2.zip

解压数据集

tar -xzf mpii_human_pose_v1.tar.gz -C mpii
unzip mpii_human_pose_v1_u12_2.zip -d mpii
3. 下载 CrowdPose 数据集
bash
深色版本

下载 CrowdPose 数据集

git clone https://github.com/Jeff-sjtu/CrowdPose.git
cd CrowdPose
bash download.sh
4. 下载 OCHuman 数据集
bash
深色版本

下载 OCHuman 数据集

git clone https://github.com/MVIG-SJTU/OCHuman.git
cd OCHuman
bash download.sh
5. 下载 PoseTrack 数据集
bash
深色版本

下载 PoseTrack 数据集

git clone https://github.com/posetrack/posetrack-code.git
cd posetrack-code
bash download_data.sh
四、训练模型

  1. 选择模型框架
    这里我们选择使用 PyTorch 和 OpenPose 作为示例。你可以根据需要选择其他框架,如 Detectron2、MMPose 等。

  2. 安装 OpenPose
    bash
    深色版本

安装 OpenPose

git clone https://github.com/CMU-Perceptual-Computing-Lab/openpose.git
cd openpose
mkdir build
cd build
cmake …
make -jnproc
3. 准备配置文件
创建一个配置文件 config.yaml,内容如下:

yaml
深色版本

数据集路径

data:
train: path/to/train
val: path/to/val

模型参数

model:
type: openpose
keypoints: 17 # 根据数据集选择关键点数量

训练参数

training:
epochs: 100
batch_size: 16
learning_rate: 0.001
device: cuda
4. 训练模型
python
深色版本
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader
from torchvision import transforms
from datasets import COCODataset, MPIIDataset, CrowdPoseDataset, OCHumanDataset, PoseTrackDataset
from models import OpenPose
from utils import train_one_epoch, evaluate

配置文件

config = {
‘data’: {
‘train’: ‘path/to/train’,
‘val’: ‘path/to/val’
},
‘model’: {
‘type’: ‘openpose’,
‘keypoints’: 17
},
‘training’: {
‘epochs’: 100,
‘batch_size’: 16,
‘learning_rate’: 0.001,
‘device’: ‘cuda’
}
}

数据预处理

transform = transforms.Compose([
transforms.Resize((256, 256)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

加载数据集

train_dataset = COCODataset(config[‘data’][‘train’], transform=transform)
val_dataset = COCODataset(config[‘data’][‘val’], transform=transform)

train_loader = DataLoader(train_dataset, batch_size=config[‘training’][‘batch_size’], shuffle=True, num_workers=4)
val_loader = DataLoader(val_dataset, batch_size=config[‘training’][‘batch_size’], shuffle=False, num_workers=4)

初始化模型

model = OpenPose(num_keypoints=config[‘model’][‘keypoints’]).to(config[‘training’][‘device’])

损失函数和优化器

criterion = nn.MSELoss()
optimizer = optim.Adam(model.parameters(), lr=config[‘training’][‘learning_rate’])

训练模型

for epoch in range(config[‘training’][‘epochs’]):
train_one_epoch(model, train_loader, criterion, optimizer, config[‘training’][‘device’])
evaluate(model, val_loader, criterion, config[‘training’][‘device’])

保存模型

torch.save(model.state_dict(), ‘openpose_model.pth’)
五、评估模型
python
深色版本
import torch
from torch.utils.data import DataLoader
from datasets import COCODataset
from models import OpenPose
from utils import evaluate

配置文件

config = {
‘data’: {
‘val’: ‘path/to/val’
},
‘model’: {
‘type’: ‘openpose’,
‘keypoints’: 17
},
‘training’: {
‘batch_size’: 16,
‘device’: ‘cuda’
}
}

数据预处理

transform = transforms.Compose([
transforms.Resize((256, 256)),
transforms.ToTensor(),
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])

加载数据集

val_dataset = COCODataset(config[‘data’][‘val’], transform=transform)
val_loader = DataLoader(val_dataset, batch_size=config[‘training’][‘batch_size’], shuffle=False, num_workers=4)

加载模型

model = OpenPose(num_keypoints=config[‘model’][‘keypoints’]).to(config[‘training’][‘device’])
model.load_state_dict(torch.load(‘openpose_model.pth’))

评估模型

evaluate(model, val_loader, nn.MSELoss(), config[‘training’][‘device’])
六、注意事项
数据集路径:确保数据集路径正确,特别是图片和标注文件的路径。
硬件资源:训练大型模型可能需要较多的计算资源,建议使用 GPU。
超参数调整:根据实际情况调整学习率、批量大小等超参数,以获得更好的训练效果。
数据增强:为了提高模型的泛化能力,可以在训练过程中使用数据增强技术,如随机裁剪、翻转等。
七、引用数据集
如果你需要在论文中引用这些数据集,可以参考以下格式:

  1. COCO
    bibtex
    深色版本
    @inproceedings{lin2014microsoft,
    title={Microsoft COCO: Common objects in context},
    author={Lin, Tsung-Yi and Maire, Michael and Belongie, Serge and Hays, James and Perona, Pietro and Ramanan, Deva and Doll{'a}r, Piotr and Zitnick, C Lawrence},
    booktitle={European conference on computer vision},
    pages={740–755},
    year={2014},
    organization={Springer}
    }
  2. MPII
    bibtex
    深色版本
    @inproceedings{andriluka14cvpr,
    title={2D Human Pose Estimation: New Benchmark and State of the Art Analysis},
    author={Andriluka, Mykhaylo and Pishchulin, Leonid and Gehler, Peter and Schiele, Bernt},
    booktitle={CVPR},
    year={2014}
    }
  3. CrowdPose
    bibtex
    深色版本
    @inproceedings{li2019crowdpose,
    title={CrowdPose: An Advanced Pose Estimation Dataset},
    author={Li, Jiefeng and Wang, Can and Zhu, Hao and Liu, Hao and Luo, Jiebo},
    booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
    pages={10973–10982},
    year={2019}
    }
  4. OCHuman
    bibtex
    深色版本
    @inproceedings{zhang2019ochuman,
    title={OCHuman: A Large-scale Dataset for Occluded Human Parsing and Pose Estimation},
    author={Zhang, Shu and Yang, Wei and Zhang, Sheng and Shen, Xiaoyong and Huang, Kaiqi and Tian, Qi},
    booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
    pages={9384–9393},
    year={2019}
    }
  5. PoseTrack
    bibtex
    深色版本
    @inproceedings{andriluka2018posetrack,
    title={Posetrack: A benchmark for human pose estimation and tracking},
    author={Andriluka, Mykhaylo and Iqbal, Umar and Insafutdinov, Eldar and Pishchulin, Leonid and Milan, Anton and Gall, Juergen and Schiele, Bernt},
    booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
    pages={5167–5176},
    year={2018}
    }
    希望这些步骤和脚本能帮助你成功训练一个人体姿态估计模型。
Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐