读取mmpose的输出(.json),并且给关键点打上新标签

# 有标签的json读取
#   "frame_id": 0,
#     "instances": [
#       {
#         "keypoints": [
#           [
#             -0.0,
#             0.0,
#             0.5933557152748108
#           ],...

df = pd.read_json(path_or_buf="./2.json", orient="r", encoding="utf-8")
# 打印 DataFrame
print(df)
print(type(df))


# 新建空列表,用于存储提取的数据
extracted_data = []

# 循环遍历 DataFrame 的行
#iterrows() 方法用于遍历 DataFrame 的行,row['instances'] 提取了 Series 中名为 'instances' 的列的值
labels = ['hip','rhip','rknee','rfoot','lhip','lknee','lfoot','spine','thorax','neck','head','lshoulder','lelbow','lwrist','rshoulder','relbow','rwrist']
#复制130次
labels_multiplied = labels * 130
print(labels_multiplied)
# print(size(labels_multiplied))
print(zip(labels_multiplied))
for index, row in df.iterrows():
    # 提取 'instances' 列中的 'keypoints' 列的所有元素
    keypoints_list= row['instances'][0]['keypoints']

    # (keypoints_list)
     # 将提取的数据添加到 DataFrame 中
    #一共是130*17=2210个元素,对于这个示例的数据来说
    #zip(keypoints_list)作用是把(130*17)所有的点压缩成一列,并且按照每个帧数先后顺序来排列
    for j,(label, keypoint) in enumerate(zip(labels_multiplied,keypoints_list)):
        extracted_data.append({
            'frame_id': row['frame_id'],
            'keypoint_label': label,
            'keypoint_index': j,
            'keypoint_coord': keypoint
        })
result_df = pd.DataFrame(extracted_data)
result_df_sorted = result_df.sort_values(by='keypoint_index')
# 'keypoint_label': label,
# df['hip'] = extracted_data
print(result_df)
print(result_df[result_df['keypoint_label'] == 'rhip'])
print(labels_multiplied)

程序的目的是提取关键点,并且给关键点按身体部位打上标签

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值