【人工智能学习之HDGCN训练自己的数据集】

【人工智能学习之HDGCN训练自己的数据集】

  • HD-GCN
  • 准备事项
    • 项目代码
    • 开源数据集
      • 第一行:帧数
      • 第二行:body数
      • 第三行:关节附加信息
      • 第四行:关节数
      • 5-29行:每个关节的数据
      • 之后的帧
      • 总结:
    • 自定义2D数据集
    • 模型移植与修改
      • 文件移动
      • 文件修改
      • 成功运行

HD-GCN

HD-GCN的核心在于其独特的HD-Graph构造与Attention-guided Hierarchy Aggregation (A-HA) 模块。HD-Graph将每个关节节点分解为多个集合,以便在同一语义空间内构建具有显着结构相邻和远处边缘的关系图。而A-HA模块则用来突出重要的层次边集,增强模型对重要特征的捕捉能力。此外,项目还引入了一种仅依赖关节和骨骼流的六路集成策略,无需任何运动流信息也能获得出色表现。
在这里插入图片描述

HD-GCN推动了骨架数据动作识别技术的发展,并为实际应用提供了强大的工具,相较于STGCN和CTRGCN在多个数据集上有更好的表现。

在这里插入图片描述

准备事项

项目代码

hd-gcn代码下载与环境配置:
github开源地址

开源数据集

数据集开源采用开源数据集:NTU-RGB-D
在这里插入图片描述
分析3D skeleton数据集:

文件命名格式:(示例:S010C001P019R001A010.skeleton)
S:设置号,共有17组设置;
C:相机ID,共有3架相机;
P:人物ID,共有40个人;
R:同一个动作的表演次数;
A:动作类别,共有60个。
在这里插入图片描述
该文件的每一帧记录了关于人体骨骼的数据,内容和行的解释如下:

第一行:帧数

  • 数字71表示该文件共有71帧数据。每一帧代表一个时间点上身体的骨骼信息。
  • 每帧可能包含多个人体(body)和该帧中每个体的骨骼关节数据。

第二行:body数

  • 数字1表示该视频帧中有1个人体(body)。可能是多人场景,每一帧可能有多个“body”。如果是多人,数字会增加,表示当前帧中存在多少个检测到的人体。

第三行:关节附加信息

这一行包含了10个数字,描述与人体的相关附加信息,具体如下:

  1. bodyID:每个body(人体)的唯一标识符,用于区分不同的人体。
  2. clipedEdges:一个标记,表示当前人体是否被图像的边缘剪裁(如人体部分超出画面边界)。
  3. handLeftConfidence:左手检测的置信度,表示检测到左手的准确度或置信度,通常范围从0到1,值越高表示越有信心。
  4. handLeftState:左手的状态,通常为0(无状态)或1(有动作状态)。
  5. handRightConfidence:右手检测的置信度,表示检测到右手的准确度或置信度,范围从0到1。
  6. handRightState:右手的状态,类似于左手状态,表示右手是否有动作。
  7. isResticted:是否受限制,通常表示该人体是否处于受限区域内,例如是否在某个限制区内或者某些物理限制下。
  8. leanX:人体的左右倾斜角度(X轴方向),可能用于表示人体姿势的倾斜或偏移。
  9. leanY:人体前后倾斜角度(Y轴方向),表示人体在前后方向的倾斜度。
  10. trackingState:跟踪状态,表示当前帧中人体骨架是否被正确跟踪,通常是0(未跟踪)或1(已跟踪)。

第四行:关节数

  • 数字25表示该人体骨骼模型中共有25个关节。不同的模型可能有不同数量的关节,25个是一个典型的配置,可能代表全身的主要关节。

5-29行:每个关节的数据

  • 这部分是该帧中每个关节的详细数据,共包含25个关节,每个关节有12个数据,依次表示:
    1. x:关节在图像中的水平坐标。
    2. y:关节在图像中的垂直坐标。
    3. z:关节的深度坐标,表示离摄像头的距离。
    4. depthX:关节在深度图像中的水平坐标。
    5. depthY:关节在深度图像中的垂直坐标。
    6. colorX:关节在彩色图像中的水平坐标。
    7. colorY:关节在彩色图像中的垂直坐标。
    8. orientationW:关节的四元数表示的姿态信息(旋转部分)。
    9. orientationX:关节的四元数表示的旋转信息。
    10. orientationY:关节的四元数表示的旋转信息。
    11. orientationZ:关节的四元数表示的旋转信息。
    12. trackingState:关节的跟踪状态,通常是0(未跟踪)或1(已跟踪)。

每一行对应一个关节的信息,共25个关节。每个关节的坐标和姿态信息对于3D姿态估计任务是至关重要的,特别是旋转(orientation)和跟踪状态。

之后的帧

每一帧的数据遵循上述规则。每个帧记录了人体的位置信息、关节坐标、手势状态等,适用于连续的视频数据或者动态姿态估计任务。

总结:

  • 帧数:表示视频的总帧数。
  • body数:每一帧中检测到的人体数量。
  • 关节附加信息:提供与每个人体相关的附加信息,例如手部状态、是否受限制等。
  • 关节数:该文件使用的骨骼模型的关节数量。
  • 每个关节的数据:每个关节的位置、姿态、跟踪状态等。

自定义2D数据集

无法制作3D数据集或需要使用2D关键点检测的场景,可以自定义所需的数据集:
请参考【人工智能学习之STGCN训练自己的数据集】

模型移植与修改

如果在原始框架当中,还需要修改feeders和其他部分内容,太麻烦了,所以我移植到了STGCN的框架当中训练。

文件移动

得到pkl和npy文件后,我们可以将HDGCN的核心代码移植到STGCN的框架当中,需要移动这三个文件:
在这里插入图片描述
在这里我将tools和ntu_rgb_d_hierarchy俩个文件进行了合并HDhierarchy,HDGCN改名为hd_gcn,俩个文件置于utils目录下:
在这里插入图片描述

文件修改

然后我们需要对俩个文件一部分内容进行修改。
这里为适应18关键点我改的地方比较多,同学们可自行查阅,如有错误和疑问欢迎留言:
【人工智能学习之HDGCN18关键点修改】

成功运行

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】

竣工测量是建筑项目竣工阶段的一个至关重要的环节,它为建筑工程的质量验收和成果核查提供了核心的参考依据。传统的竣工测量方法,如全站仪测量,主要依赖于现场人工操作,存在一些明显的局限性,例如作业时间长、工作量大…

Unity A*算法实现+演示

注意: 本文是对基于下方文章链接的理论,并最终代码实现,感谢作者大大的描述,非常详细,流程稍微做了些改动,文末有工程网盘链接,感兴趣的可以下载。 A*算法详解(个人认为最详细,最通俗易懂的一…

MoonBit 核心编译器正式开源!

由 IDEA研究院基础软件中心打造的 MoonBit (月兔)AI 原生开发平台,今日宣布正式开源其核心的编译器 WebAssembly(简称“Wasm”) 后端。开发者现在可以利用 MoonBit 的能力做性能优化,且直接参与 MoonBit 的…

JS使用random随机数实现简单的四则算数验证

1.效果图 2.代码实现 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</ti…

linux0.11源码分析第一弹——bootset.s内容

&#x1f680;前言 本系列主要参考的《linux源码趣读》&#xff0c;也结合之前《一个64位操作系统的设计与实现》的内容结合起来进行整理成本系列博客。在这一篇博客对应的是《linux源码趣读》第一~四回 目录 &#x1f680;前言&#x1f3c6;启动后的第一步&#x1f4c3;启动区…

OpenIPC开源FPV之Adaptive-Link天空端代码解析

OpenIPC开源FPV之Adaptive-Link天空端代码解析 1. 源由2. 框架代码2.1 消息机制2.2 超时机制 3. 报文处理3.1 special报文3.2 普通报文 4. 工作流程4.1 Profile 竞选4.2 Profile 研判4.2.1 回退策略4.2.2 保持策略 4.3 Profile 应用 5. 总结6. 参考资料7. 补充资料7.1 RSSI 和 …

【译】仅有 Text2SQL 是不够的: 用 TAG 统一人工智能和数据库

原文地址&#xff1a;Text2SQL is Not Enough: Unifying AI and Databases with TAG 摘要 通过数据库为自然语言问题提供服务的人工智能系统有望释放出巨大的价值。此类系统可让用户利用语言模型&#xff08;LM&#xff09;的强大推理和知识能力&#xff0c;以及数据管理系统…

【自动驾驶】单目摄像头实现自动驾驶3D目标检测

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;传知代码 欢迎大家点赞收藏评论&#x1f60a; 目录 概述算法介绍演示效果图像推理视频推理 核心代码算法处理过程使用方式环境搭建下载权重文件pytorch 推理&#xff08;自动选择CPU或GPU&#x…

什么是Modbus协议网关?

在工业自动化领域&#xff0c;设备间的通信与数据交换是实现高效、智能控制的关键。Modbus协议作为一种广泛应用的通信协议&#xff0c;自1971年由Modicon公司首次推出以来&#xff0c;便以其标准、开放、支持多种电气接口等特点&#xff0c;在工业控制系统中占据了重要地位。然…

《云原生安全攻防》-- K8s安全框架:认证、鉴权与准入控制

从本节课程开始&#xff0c;我们将来介绍K8s安全框架&#xff0c;这是保障K8s集群安全比较关键的安全机制。接下来&#xff0c;让我们一起来探索K8s安全框架的运行机制。 在这个课程中&#xff0c;我们将学习以下内容&#xff1a; K8s安全框架&#xff1a;由认证、鉴权和准入控…

如何利用Python爬虫获得1688商品详情

在这个信息爆炸的时代&#xff0c;数据就像是一块块美味的奶酪&#xff0c;而爬虫就是我们手中的瑞士军刀。今天&#xff0c;我要带你一起潜入1688这个巨大的奶酪洞穴&#xff0c;用Python爬虫捞起那些香气四溢的商品详情。别担心&#xff0c;我们的工具箱里有各种各样的工具&a…

CAN配置---波特率中断引脚等---autochips-AC7811-ARM-M3内核

1、配置工具 虽然不怎么好用&#xff0c;但比没有强多了。具体看图&#xff1a; 时钟选着 NVIC配置 GPIO配置 2、生成的具体配置信息 NXP的配置工具里面&#xff0c;具体的波特率可以直接显示&#xff0c;这个工具没有&#xff0c;怎么办&#xff1f; 它放到了生成的代码里面…

MySQL的并发控制与MVCC机制深度解析

目录 1. MySQL中的并发问题2. 数据库的隔离级别3. MVCC&#xff08;多版本并发控制&#xff09;机制3.1 MVCC的实现原理3.2 Read View详解3.3 当前读与快照读 4. MVCC在不同隔离级别下的工作方式5. MVCC解决幻读问题6. MVCC的优缺点优点&#xff1a;缺点&#xff1a; 7. MVCC在…

网络编程 02:IP 地址,IP 地址的作用、分类,通过 Java 实现 IP 地址的信息获取

一、概述 记录时间 [2024-12-18] 前置文章&#xff1a;网络编程 01&#xff1a;计算机网络概述&#xff0c;网络的作用&#xff0c;网络通信的要素&#xff0c;以及网络通信协议与分层模型 本文讲述网络编程相关知识——IP 地址&#xff0c;包括 IP 地址的作用、分类&#xff…

游戏AI实现-寻路算法(Dijkstra)

戴克斯特拉算法&#xff08;英语&#xff1a;Dijkstras algorithm&#xff09;&#xff0c;又称迪杰斯特拉算法、Dijkstra算法&#xff0c;是由荷兰计算机科学家艾兹赫尔戴克斯特拉在1956年发现的算法。 算法过程&#xff1a; 1.首先设置开始节点的成本值为0&#xff0c;并将…

【第二节】Git 工作流程、概念及仓库创建

目录 一、Git 工作流程 二、Git 基本概念 2.1 工作区 2.2 暂存区 2.3 版本库 2.4 操作流程 三、Git 仓库创建 3.1 初始化仓库 3.2 克隆仓库 一、Git 工作流程 Git 的工作流程通常包括以下几个步骤&#xff1a; 1. **克隆 Git 资源**&#xff1a;将远程 Git 仓库克隆到…

概率论得学习和整理30: 用EXCEL 描述泊松分布 poisson distribution

目录 1 泊松分布的基本内容 1.1 泊松分布的关键点 1.1.1 属于离散分布 1.1.2 泊松分布的特点&#xff1a;每个子区间内概率相等 &#xff0c; λ就是平均概率 1.2 核心参数 1.3 pmf公式 1.4 期望和方差 2 例1&#xff1a;用EXCEL计算泊松分布的概率 3 比较λ不同值时…

【机器学习】【无监督学习——聚类】从零开始掌握聚类分析:探索数据背后的隐藏模式与应用实例

从零开始掌握聚类分析&#xff1a;探索数据背后的隐藏模式与应用实例 基本概念聚类分类聚类算法的评价指标&#xff08;1&#xff09;内部指标轮廓系数&#xff08;Silhouette Coefficient&#xff09;DB指数&#xff08;Davies-Bouldin Index&#xff09;Dunn指数 &#xff08…

灵活接入第三方接口,解析第三方json数据,返回我们想要的json格式

需求&#xff1a;我想接入任意第三方http 接口&#xff08;暂不考虑鉴权问题&#xff09;、接口返回任意json数据。 1、要求返回的json数据通过我的R< T > 返回。 2、我的R< T > 里面包含参数 data&#xff0c;code&#xff0c;msg&#xff0c;success标识。 3、…

Nginx 在不同操作系统下的安装指南

Nginx 在不同操作系统下的安装指南 一、Linux 系统下 Nginx 的安装 &#xff08;一&#xff09;基于 Ubuntu 系统 更新软件包列表 打开终端&#xff0c;首先执行sudo apt-get update命令。这一步是为了确保系统的软件包列表是最新的&#xff0c;能够获取到最新版本的 Nginx 及…