dataset = {
'split': {
'xsub_train': ['S001C001P004R002A026', 'S001C002P004R001A016', 'S001C001P008R001A051', 'S001C001P001R001A001',..., 'S002C003P008R002A001'],
'xsub_val': ['S002C001P007R002A056', ..., 'S001C002P007R002A041']
},
'annotations': [
{
'frame_dir': 'S001C001P004R002A026',
'label': 26,
'img_shape': (540, 960),
'original_shape': (540, 960),
'total_frames': 90,
'num_person_raw': 1,
'keypoint': numpy.array([[[[501.2, 145.1],
[502.3, 146.7],
# ... additional keypoint coordinates
]]])
},
# ... additional annotation dictionaries
]
}
其中:
dataset
是一个最外层的字典'split'
字段是一个字典,包含训练集和验证集的视频标识符列表'annotations'
字段是一个列表,每个元素都是一个包含视频、关键点等信息的字典
每个注释字典包含了视频标识符、标签、图像尺寸、总帧数、检测到的人数以及关键点坐标等信息。关键点坐标保存在一个 NumPy 数组中。
这种结构可以方便地存储和访问动作识别数据集的各种信息。
定义一个 Python 字典的基本语法如下:
dictionary = {
"key1": value1,
"key2": value2,
"key3": value3,
# ...
}
其中:
dictionary
是字典的变量名- 整个字典用花括号
{}
括起来 - 每个键值对用逗号
,
分隔 - 键用双引号
"
括起来,键可以是字符串、整数、浮点数等 - 值可以是任意的 Python 对象,如数字、字符串、列表、元组、字典等
例如:
person = {
"name": "John Doe",
"age": 35,
"city": "New York",
"hobbies": ["reading", "swimming", "hiking"]
}
在这个例子中:
- 字典的变量名是
person
- 字典包含 4 个键值对
- 键有字符串类型和整数类型
- 值有字符串、整数和列表类型
总之,定义一个字典的基本语法就是使用花括号 {}
包裹键值对,每个键值对用逗号 ,
分隔。
参考:
https://github.com/kennymckormick/pyskl/blob/main/tools/data/README.md