Wholebody 3D keypoint估计:从H3WB开始

news2024/11/24 7:18:27

目录

  • 前言
  • 一、H3WB
    • 1.下载
    • 2.标注格式
    • 3.任务分析
    • 验证
    • 评估
  • 总结


前言

这份工作是首次尝试去检测3D全人体姿态的工作.我们使用的数据集是基于Human3.6M的3D全人体关键点数据集.


一、H3WB

H3WB: Human3.6M 3D WholeBody Dataset and Benchmark
它是一个大规模的3D全人体姿态估计数据集.他是Human3.6M的一个扩展,包含133个关键点,其骨架展开与COCO whole body一样.
在这里插入图片描述

1.下载

原始的图片可以从Human3.6M官网下载:
Link:Human3.6M

注意:进入官网,需要申请一个帐号登录,才能下载里面的内容.这里,我们进入:Download->Training Data->By subject,将所有列举的Videos下载.
每个Subject的视频都比较长,6-11G的大小,慢慢下载.

参看H3WB的官网,提供来脚本,来处理Human3.6m视频,建立图片到对应标注的连接.

script代码如下(示例):

import cv2
import os

def convert_mp4_to_image(inpath, outpath, each_x_frame=1):
    print("load "+inpath)
    vidcap = cv2.VideoCapture(inpath)
    success, image = vidcap.read()
    count = 0
    while success:
        if count % each_x_frame == 0:
            cv2.imwrite(outpath+str(count).zfill(4)+".jpg", image)  # save frame as JPEG file
        success, image = vidcap.read()
        if success:
            count += 1
            if count % 100 == 0:
                print('Finish frame: ', count)
                # time.sleep(1)
    print("Finish all ", count, " images")


def convert_h36m_mp4_to_image(base_path, each_x_frame=1):
    subjects = ['S1', 'S5', 'S6', 'S7', 'S8']
    # subjects = ['S1', 'S5', 'S6', 'S7', 'S8', 'S9', 'S11']
    for subject in subjects:
        inpath_base = base_path+subject+"/Videos"
        outpath_base = base_path+subject+"/Images"
        if not os.path.exists(outpath_base):
            os.makedirs(outpath_base)
        videos = os.listdir(inpath_base)
        for video in videos:
            inpath = inpath_base + "/" + video
            outpath = outpath_base + "/" + video[:-4]
            if not os.path.exists(outpath):
                os.makedirs(outpath)
            outpath = outpath + "/frame_"
            convert_mp4_to_image(inpath, outpath, each_x_frame)

if __name__ == "__main__":
    path = "./"
    convert_h36m_mp4_to_image(path+'Human36m/')

对应的标注下载链接如下:
H3WB annotations
并且默认放在datasets/json/文件夹下

2.标注格式

每个json文件参考以下的格式,但不是每个json都包含这所有值.
Json结构(示例):

XXX.json --- sample id --- 'image_path'
                        |
                        -- 'bbox' --- 'x_min'
                        |          |- 'y_min'
                        |          |- 'x_max'
                        |          |- 'y_max'
                        |
                        |- 'keypont_2d' --- joint id --- 'x'
                        |                             |- 'y'
                        |
                        |- 'keypont_3d' --- joint id --- 'x'
                                                      |- 'y'
                                                      |- 'z'
                        

作者同样提供处理Json文件的脚本,详情:json_loader

3.任务分析

我们要做的端到端的3D全人体姿态估计,即给定一张GRB图片,就能给出图片中的人体3D全姿态。官网也给了分析流程:
1、使用RGBto3D_train.json用于训练和验证。它包含了80K图片路径,边界框和2D关键点。
2、它包含有与2Dto3D_train.json相同的样本,因此也可以访问2D关键点,如果有必要的话。
3、使用RGBto3D_test_img.json用于在排行榜上进行测试。它包含20K图片路径和边界框。此测试集的图片id打乱了。

验证

作者没有提供验证集,但建议采用5-fold的交叉验证去得到均值和标准差。

评估

可以将预测的3D全人体结果保存为“XXto3D_pred.json”,并提供一个可下载的链接到此邮箱:wholebody3d@gmail.com
with subject Test set evaluation request。样式文件可以参考以下链接:
json_test_samples


总结

这就是H3WB的调查现状,更多细节可以参考:benchmark.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/744204.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【宝塔】宝塔部署ThinkPHP项目

最近搞了个培训教育的小程序,后端服务用的是ThinkPHP。使用的过程中,发现对于这种小项目用php还是很不错的选择,开发便捷,轻量级。宝塔神器也是很不错的,值得推荐使用。 下面介绍一下项目中用宝塔部署ThinkPHP项目&…

USB枚举过程详解

1 USB枚举流程 1.1 USB枚举流程 USB SETUP command的状态阶段的状态包是个ZLP。 Anchor chips -> Netchip -> PLX -> Avago -> Broadcom The USB3380 is EOL and the kits that were by Taiwan Bplus. PLX USB3380设备控制器使用2个32bit寄存器存放setup的8个字节&…

数据库-表的增删改查

这里写目录标题 新增(Create)查询条件查询运算符逻辑运算符分页查询 修改(Update)删除(Delete) 注释:在SQL中可以使用“–空格描述”来表示注释说明 新增(Create) 语法…

spark3新特性之动态分区裁剪

Spark3.0为我们带来了许多令人期待的特性。Spark中的静态分区裁剪在介绍动态分区裁剪之前,有必要对Spark中的静态分区裁剪进行介绍。因此,在这种情况下,我们不能再应用静态分区裁剪,因为filter条件在join表的一侧,而对…

【小米的技术分享】拯救程序员的“救命稻草”:Git回滚命令大揭秘!

大家好,我是小米。作为一名热爱技术的程序员,经常使用Git进行版本控制是我们的家常便饭。但是,难免会遇到一些意外,比如不小心提交了错误的代码或者合并了错误的分支,这时候就需要用到Git回滚命令了。今天,…

chrome谷歌浏览器书签不同步的解决办法

背景:多台电脑使用时,发现浏览器书签并没有及时同步,找到最终的解决办法: 第1步:chrome地址栏中输入: chrome://sync-internals/ 第2步:点击 Disable Sync (Clear Data) 点击Request Start 第3…

马上掌握的LayUI树形权限菜单,助力你的权限管理!

目录 一、树形菜单的介绍 1、什么是树形菜单? 二、实现思路流程 三、实现步骤 1、查看数据 1)表数据 2) 最终效果 2、编程 1)实体类编写 2)PermissionDao编写(难点) 第一 在线转json…

vue+springboot基于Web的电子产品销售系统设计与实现 gqon2a

随着人们生活水平的高速发展,电子产品销售方面在近年来呈直线上升,人们也了解到电子产品的实用性,因此电子产品的销售数量也逐年递增,电子产品销售的增加加大了在管理上的工作难度。为了能更好的维护电子产品销售管理秩序&#xf…

Grafana 图形面板定制方案

Grafana 在一个 Panel 中添加多数据源同时展示以及修改通过 transform 修改图表图例的方式。 多个数据在一个折线图中 在 Grafana 中我们可能会希望多个数据在一个Panel 中展示,比如: 通过编辑 Panel 增加 Query 数据我们即可做到:像上面中…

SQL数据库连接类型与常用函数

目录 1. 创建表插入数据 2. 连接类型 2.1 内连接 2.2 外连接 2.2.1 左外连接 2.2.2 右外连接 2.3 交叉连接 2.4 子查询&公用表达式 2.5 UNION连接 3. SQL常用函数 3.1 CASE WHEN函数 3.2 COALESCE函数 3.3 NULLIF函数 3.4 LEAST 和 GREATEST函数 3.5 DISTINCT…

LayUi之树形结构的详解(附有全案例代码)

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于LayUi的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. 什么是树形结构 二.树形结构在什么时…

表格编程之争:Python VS VBA?Excel用户:新编程语言才真香

Python和VBA哪个更好用? Python和VBA是两种不同的编程语言,它们都有自己的特点和优缺点。在表格编程方面,VBA在Excel中的应用非常广泛,可以通过宏来实现自动化操作和数据处理,也可以通过VBA代码来实现自定义函数和界面…

python qt安装软件包

安装 opencv pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple/ 安装pyqt5 pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple/ 安装pyqt5-tools pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple/

RLHF-基于人类反馈的强化学习

RLHF 文章目录 RLHF强化学习基础回顾为什么要使用基于人类反馈的强化学习大纲RLHF的起源大预言模型中的RLHF案例 ChatGPT RLHF中的技术细节预训练语言模型训练奖励模型基于RL进行微调 RLHF 的未来 强化学习基础回顾 智能体通过采取行动与环境进行交互,并返回状态和奖…

【C语言督学营 第十八天】考研408排序大题初探(将排序思想融入题目)

文章目录 题目一分析代码实战 题目二分析代码实战 补充(快排与归并)数据结构大题注意点!!!(评分标准) 题目一 分析 (1)算法的基本设计思想 由题意知,将最小的nl2个元素放在Ai中,其余的元素放在A2中&#x…

FreeRTOS实时操作系统(十三)任务通知

系列文章目录 文章目录 系列文章目录任务通知任务通知值和通知状态任务通知值通知状态 任务通知API函数发送通知函数接收通知函数 实验测试模拟二值信号量实验模拟计数型信号量模拟事件标志组实验模拟消息邮箱实验 任务通知 任务通知:用来通知任务的,任…

ATMEGA16 Proteus仿真自动人体感应电风扇DS18B20温度 -0069

ATMEGA16 Proteus仿真自动人体感应电风扇DS18B20温度 -0069 Proteus仿真小实验: ATMEGA16 Proteus仿真自动人体感应电风扇DS18B20温度 -0069 功能: Protues版本:7.8 程序编写:ICCAVR:7.12 硬件组成:ATMEGA16单片机…

嵌入式开发之编码器速度采集

光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。这是应用最多的传感器,光电编码器是由光源、光码盘和光敏元件组成。光栅盘是在一定直径的圆板上等分地开通若干个长方形孔。由于光电码盘与电动机同轴,…

spark和zeppelin认证不一致:Only one of --proxy-user or --principal can be provided

spark和zeppelin认证不一致:Only one of --proxy-user or --principal can be provided 如果配置principal认证方式,zeppelin走的是hadoop权限,如果配置proxy-user认证方式,zeppelin走的是当前登录用户的权限(ranger控…

GitHub上cambel的ur3项目调试经验

按照https://github.com/cambel/ur3/wiki/Compile-from-source配置环境时,遇到以下问题: catkin clean时报错 [clean] Error: The current or desired workspace could not be determined. Please run catkin clean from within a catkin workspace or…