人体姿态估计MPII数据集详解

数据集总览

在这里插入图片描述

数据集下载连接

链接: 官网下载.

数据集介绍

MPII人体姿势数据集是用于评估关节人体姿势估计的最先进的基准。该数据集包括大约25K张图像,其中包含超过40K个带有注释的身体关节的人。这些图像是使用建立的每天人类活动的分类法系统地收集的。总体而言,该数据集涵盖410个人类活动,并且每个图像都提供了一个活动标签。每一张图片都是从YouTube视频中提取的,并提供了前后未加注释的帧。此外,对于测试集,我们获得了更丰富的注释,包括身体部分闭塞和3D躯干和头部方向。
在这里插入图片描述官网中对数据集的标注的最后生成形式是用MATLAB打开的.mat格式·
后续因为实验需要,也有专家和学者将MPII数据集整合成了json形式以及h5格式。

本文主要将对.mat形式的MPII数据集做一个详解

在这里插入图片描述
用MATLAB打开标注文件后,发现本文件由六部分解释,在MPII官方网站也对这六部分做出了介绍
在这里插入图片描述

注:idx是英文index的缩写表示索引的意思     类似于数组的下标

1.annolist: 大小:24987 里面共涵盖了可以用作姿态估计的24987张图片的标注信息,这里先做粗略介绍,下文将重点介绍这个结构,以及所包含的信息
2.img_train(imgidx):0/1分别表示测试集/训练集
3.version:是数据集的版本号
4.single_person:如果图片中有1个分离的人,会给出1个标注人的矩形框 ,这里存放的是标注框的索引,如果存在两个人会给出数组大小是二的结构,并存放其索引;如下图所示
在这里插入图片描述
可以清晰的看到索引5的照片对应有两个矩形框 应该有两个分离的人。
在annolist中有关于图片名字的一列(下文将详细解释annolist中的各个字段)
在这里插入图片描述

import cv2
image=cv2.imread("D:\\015601864.jpg")
cv2.imshow('origin',image)
cv2.waitKey(0)

在这里插入图片描述
图中心处有两个分离的冰壶运动员
5.act:图片对应的活动种类和具体动作
在这里插入图片描述

注第一列给出的是活动种类第二列是具体活动 后面是相对应的id可以与官网给出的下图一一对应

在这里插入图片描述
6.video_list:指定YouTube提供的视频ID。要在YouTube上观看视频,请访问https://www.youtube.com/watch?v=video_list(videoidx) 具体内容如下:
在这里插入图片描述

对annolist中的标注信息做一个详解以015601864.jpg为例

在这里插入图片描述
在这里插入图片描述
1.image:打开后是对应图片的名字
在这里插入图片描述
2.annorect
在这里插入图片描述
由六部分组成
(x1,y1)表示head的左上坐标 (x2.y2)是head的右下坐标 根据这两个坐标可以获得一个head框
我用python对其相关像素做了改变效果如下
在这里插入图片描述
annopoints
在这里插入图片描述
包括16个身体关节的标注
0-右踝
1-右膝
2-右臀
3-左髋关节
4-左膝
5-左踝
6-骨盆
7-胸
8-上颈
9-头顶
10-右腕
11-右肘
12-右肩
13-左肩
14-左肘
15-左腕
标注后效果如下(这里为了方便观看,我将每个像素点放大了4倍 11放大到44):
在这里插入图片描述
scale和objpos:原作者表示scale=人体框高度/200 以objpos为粗略的人体中心点可以做出一个正方形的大致人体框,在我的计算和实验下仍不能准确的框出人体,若有小伙伴对这个有相关的了解可以私信探讨一下,我对这两个信息处理并使用后得到的效果如下。
在这里插入图片描述
这里的人体框会露出脚的部分。
3.frame_sec
4.vididx
第三部分是当前图片在视频的那一秒出现
第四部分是当前图片在哪个视频出现
第三和第四以及video_list综合使用可以找到这张图片的出处。
以上是我对这个数据集做出的详细解释,若出现错误请及时留言指正

<think>好的,用户之前询问了关于COCO数据集是否有行为分类,比如站、坐、躺。我回答COCO没有直接的分类,但提到了关键点标注和替代数据集,其中包括MPII Human Pose。现在用户进一步询问MPII数据集的详细信息,特别是数据集的结构和GT(标注)是什么样的。 首先,我需要回忆MPII Human Pose数据集的主要特点。MPII是一个广泛使用的人体姿态估计数据集,包含多人图像,标注了身体关键点。用户可能对它的规模、标注内容、格式以及如何访问感兴趣。 用户可能的需求是进行行为分类,比如站、坐、躺,所以需要了解MPII是否包含这些行为的标签。虽然MPII主要关注姿态估计,但它确实有活动标签,可能涵盖多种动作,这可能对用户有用。 接下来,我需要详细说明数据集的组成,比如图片数量、标注的关键点数量(例如16个关键点),以及每个标注的具体信息,如坐标、可见性等。此外,用户提到GT(ground truth),需要解释标注文件的结构,比如JSON格式中的字段,例如"joints_vis"表示可见性,"activity"表示活动类别,可能包含用户需要的行为标签。 还需要考虑用户可能的技术背景,可能需要具体的示例代码或处理数据的方法。例如,如何加载标注文件,解析关键点,或者如何利用活动标签进行分类任务。 另外,用户可能想知道如何获取数据集,所以提供下载链接和引用信息是必要的。同时,可能需要比较MPII与其他数据集的优缺点,帮助用户决定是否适合他们的项目。 最后,要确保回答结构清晰,分点说明,可能包括数据概览、标注细节、标注示例、活动类别示例、使用工具和注意事项,这样用户能快速找到所需信息。</think>好的!以下是关于 **MPII Human Pose Dataset** 的详细介绍,包括其数据格式、标注内容(Ground Truth, GT)和典型应用场景: --- ### **1. 数据集概览** - **发布时间**:2014年,由马克斯·普朗克研究所发布 - **核心用途**:人体姿态估计(2D关键点检测)和动作识别 - **数据规模**: - 约 **25,000张图像**(包含40,000+人体标注) - 覆盖 **410种人类活动**(如跑步、举重、瑜伽等) - 关键点标注:**16个身体关键点**(比COCO少1个,未标注鼻子) --- ### **2. 标注内容(GT)详解** #### **标注文件结构** 数据集以 **MATLAB .mat文件** 和 **JSON格式** 提供标注,主要包含以下字段: ```json { "annolist": [ { "image": "images/000001.jpg", "annorect": [ { "x1": [x_min], "y1": [y_min], # 人体框左上角坐标 "x2": [x_max], "y2": [y_max], # 人体框右下角坐标 "scale": 1.25, # 相对尺度(用于数据增强) "objpos": {"x": 100, "y": 200},# 人体中心点坐标 "annopoints": { "point": [ {"id": 0, "x": 150, "y": 180, "is_visible": 1}, # 右踝 {"id": 1, "x": 160, "y": 170, "is_visible": 0}, # 右膝(不可见) ... # 共16个关键点(顺序见下方) ] }, "activity": "sitting on a chair" # 动作类别描述 } ] } ] } ``` #### **关键点定义** MPII的 **16个关键点顺序** 如下(索引从0开始): ``` 0: 右踝 4: 左髋 8: 头顶 12: 左肘 1: 右膝 5: 左肩 9: 颈部 13: 左腕 2: 右髋 6: 右肩 10: 右肘 14: 右腕 3: 左膝 7: 右耳 11: 左耳 15: 胸腔中心 ``` #### **可见性标注规则** - `is_visible` 字段: - `1`: 关键点可见且已标注 - `0`: 关键点被遮挡或超出图像范围 - 未标注:关键点未出现在图像中 --- ### **3. 动作分类标签示例** MPII的动作标签与姿态强相关,部分类别可直接对应到“站、坐、躺”: | 动作类别(英文) | 中文翻译 | 对应姿态 | |----|----------|----------| | `sitting on a chair` | 坐在椅子上 | 坐姿 | | `lying on the ground` | 躺在地面 | 躺姿 | | `standing with hands on hips` | 双手叉腰站立 | 站姿 | | `bending forward` | 前倾 | 混合姿态 | --- ### **4. 数据特点与挑战** #### **优势** - **多样场景**:包含室内、室外、运动、日常活动等 - **复杂姿态**:大量遮挡、截断、非常规角度的案例 - **多尺度标注**:同一图像中可能包含远近不同的人体 #### **挑战** - 关键点标注密度较低(相比COCO缺少鼻子) - 部分标注存在歧义(如“半躺半坐”) --- ### **5. 典型应用代码示例** #### **加载MPII标注(Python)** ```python import h5py import json # 读取标注文件 with open('mpii_human_pose_v1_u12_2/mpii_annotations.json', 'r') as f: data = json.load(f) # 提取第一个人的标注 first_person = data['annolist'][0]['annorect'][0] keypoints = first_person['annopoints']['point'] # 可视化关键点 import matplotlib.pyplot as plt from PIL import Image img = Image.open('images/' + data['annolist'][0]['image']) plt.imshow(img) for pt in keypoints: plt.scatter(pt['x'], pt['y'], c='red') plt.show() ``` #### **姿态到行为的简单分类** ```python def classify_pose(keypoints): # 计算髋部与踝关节的垂直距离 y_hip = keypoints[2]['y'] # 右髋 y_ankle = keypoints[0]['y'] # 右踝 if y_ankle - y_hip < 10: # 髋踝高度接近 return "坐姿" elif y_ankle - y_hip > 100: return "站姿" else: return "其他姿态" ``` --- ### **6. 数据下载与使用** - **官网地址**:[MPII Human Pose Dataset](http://human-pose.mpi-inf.mpg.de/) - **下载内容**: - 图像文件(需单独申请下载) - 标注文件(`mpii_human_pose_v1_u12_2.zip`) - **许可协议**:仅限非商业研究用途 --- 如果需要更具体的应用案例(如训练姿态估计模型),可以告诉我你的需求方向(分类/检测/生成等),我可以提供针对性建议!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值