基于骨骼的行为识别笔记(NTU RGBD数据集解析)

1. 人类行为(层次):

  1. 身体的一部分移动(比如手势识别)
  2. 单个人类活动(比如跑步、拳击)
  3. 两个或者两个以上的多人交互活动(会议握手)
    多人团体活动(篮球比赛、足球比赛)

2. 输入数据

  1. RGB video
  2. RGBD video(有深度信息、基于骨架)

3. 基于骨架的行为识别

输入:骨架序列(video)
输出:动作类别标签
来源:Kinect,Human pose estimation algorithms
优点:不受环境的干扰,数据量级小,可以实现端到端的系统

4. 数据集

目前使用的是NTU RGBD中的Action Recognition中的3D skeletons(body joints),大小为5.8GB。

4.1 NTU RGBD

4.1.1 下载方式

下载地址:http://rose1.ntu.edu.sg/datasets/login.asp?DS=3

4.1.2 Benchmark

  • Cross-Subject
    我们将40个志愿者划分为training和testing团体。每个团体包含20个志愿者,其中1,2,4,5,8,9,13,14,15,16,17,18,19,25,27,28,31,34,35,38为训练集,其余为测试集。
  • Cross-View
    我们将cameras2和3作为训练集,1为测试集。
    4.1.3 Skeleton数据集详解
    否NTU RGBD包含60个动作种类以及56880个录像。数据集是由三个kinect V2摄像机实时捕获。NTU RGBD数据集中的RGB录像大小为19201080,深度矩阵和红外录像大小为512424。而在3D skeletal数据集中包含志愿者在每一帧的三维坐标(包含每帧25个主要身体关节的三维位置)。3D骨骼节点信息是通过Kinect相机中的骨骼追踪技术获得的。

在这里插入图片描述
每个数据集的格式为SsssCcccPpppRrrrAaaa(eg:S001C001P001R001A001.skeleton)。每个符号代表的意思分别为:

  • sss是下载的顺序号(整个数据集特别大,所以要分开放)
  • ccc是摄像头ID,分别是degree、front、side
  • ppp是志愿者编号
  • rrr是同一个动作的表演次数
  • aaa动作类别

关于具体如何使用该数据集,简单代码实现为(matlab):https://github.com/shahroudy/NTURGB-D/blob/master/Matlab/read_skeleton_file.m
事实上,在打开skeleton文档后,我们看到的是如下画面:
在这里插入图片描述

  • 102表示共有102帧3d骨架图;
  • 1是指单张骨架图中有多少骨架,
  • 72057594037931691是指追踪的骨架编号;
  • 接下来是6个整型数,分别是clipedEdges,handLeftConfidence,handLeftState,handRightConfidence,handRightState,isResticted,
  • 该行接下来是骨架的x,y偏置(骨架位置?),该行最后一个数字是该骨架的trackingState(?);
  • 25表示有25个关键点(关节)信息,接下来有25行;每个关键点信息行上有11个数据,前三个是关键点的3D位置(x,y,z),第四五个是在2D帧中的位置(用于匹配IR帧),第六第七个是在2D帧中的位置(用于匹配RGB帧),第八第九第十第十一是该关键点的方向(WXYZ)
  • 第十二个是该关键点的trackingState(?)
    是keleton的60个动作类别

5. 相关论文

5.1 Skeleton-based Action Recognition with Convolution Neural Networks(2017.8 海康威视)

5.1.1 论文亮点

  1. 在该论文发表之前,大部分的基于骨骼的行为识别都使用了LSTM网络,并以LSTM为基础进行改进。该论文提出了双流CNN,取得了比起LSTM(STA-LSTM、VA-LSTM)更快更好的结果(在NTU RGBD数据集上达到了89.3%的准确度)。
    事实上,双流CNN(2014)并不是该论文的首创。在传统的数据集(基于视频而非人体骨架的数据集)上,双流CNN一直都是主流算法。在RGB视频数据集上,双流CNN的输入为原始RGB图和光流图。
  2. 该论文使用的双流CNN是第一次在基于骨骼的动作识别上使用的RCNN
    在这里插入图片描述
  3. 上图是论文设计的用于裁剪后(代码实现为30帧)的骨骼序列识别高效CNN网络。输入分为两部分,一部分是正常的骨骼序列,一部分是连续序列的移动(motion,从代码上实现其实就是相邻两帧之间做差)。论文同时提出了一种新的结构叫Skeleton Transformer(事实上是一种线性函数),这种网络结构据说可以自动学习一种更好的骨架排序,比人工选取相应的骨架有更好的效果(有点类似于注意力机制,选择更加重要的骨架,选择更重要的帧)。为了处理多骨架任务,使用了maxout来合并不同骨架的特征。每一个骨架最后的输入其实是T(帧数)*N(骨架数)*3的图像。
  4. 论文网络中未执行任何的正则化。
  5. 在这里插入图片描述

5.2 Co-ocurrence Feature Learning from Skeleton Data for Action Recognition and Detection with Hierachial Aggregation(2018.8)

5.2.1 论文亮点

  1. 论文指出基于骨骼行为识别任务要解决两个方面的问题:首先是,同一帧内骨架同时出现的表示;然后是骨架随时间变化的帧间表示
  2. 论文提出一种端到端的卷积共现(co-occurrence)特征学习框架,这种共现特征是以分层的方式进行学习,这种分层使不同层次的语义信息逐渐聚合。
  3. CNN模型卓越的能力在抽象高层次的信息,它们能够使用来从骨架中学习时空特征[Du et al.,2016;Ke at al.,2017]。
  4. 由于在空间维度的权值共享,CNN模型不能够学习到所有骨架的参数,这些是论文提出一个能够从所有骨架得到整体反馈来探索不同骨架之间的相关性。
    在这里插入图片描述
  5. 如上图,在最开始,输入的大小是framesjoints3,在红色(0,2,1)部分,joints变为了channel。这里的依然使用的是双流CNN的想法,一个输入是frames,一个输入是motions。
  6. 在这里插入图片描述
  7. 不同的人在第六层卷积后进行融合。
    在这里插入图片描述
  8. 最后的损失函数使用了交叉熵。
    在这里插入图片描述

5.3 Skeleton-based action recognition with synch(2019.6.12)

5.3.1 论文亮点

  1. 提出了一种残差频次注意力机制(rFA,residual frequency attention)来关注一些经常出现的域;同时提出了一种同步局部以及非局部的块(SLnL,synchronous local and non-local)来捕获在时空
Vivado2023是一款集成开发环境软件,用于设计和验证FPGA(现场可编程门阵列)和可编程逻辑器件。对于使用Vivado2023的用户来说,license是必不可少的。 Vivado2023的license是一种许可证,用于授权用户合法使用该软件。许可证分为多种类型,包括评估许可证、开发许可证和节点许可证等。每种许可证都有不同的使用条件和功能。 评估许可证是免费提供的,让用户可以在一段时间内试用Vivado2023的全部功能。用户可以使用这个许可证来了解软件的性能和特点,对于初学者和小规模项目来说是一个很好的选择。但是,使用评估许可证的用户在使用期限过后需要购买正式的许可证才能继续使用软件。 开发许可证是付费的,可以永久使用Vivado2023的全部功能。这种许可证适用于需要长期使用Vivado2023进行开发的用户,通常是专业的FPGA设计师或工程师。购买开发许可证可以享受Vivado2023的技术支持和更新服务,确保软件始终保持最新的版本和功能。 节点许可证是用于多设备或分布式设计的许可证,可以在多个计算机上安装Vivado2023,并共享使用。节点许可证适用于大规模项目或需要多个处理节点进行设计的用户,可以提高工作效率和资源利用率。 总之,Vivado2023 license是用户在使用Vivado2023时必须考虑的问题。用户可以根据自己的需求选择合适的许可证类型,以便获取最佳的软件使用体验。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值