Introduction

传统的骨架建模方法通常依赖手工制作的零件或遍历规则,因此表达能力有限,难以推广。新的动态骨架模型。通过自动从数据中学习时空模式,超越了以往方法的局限性。该公式不仅有更强的表达能力,而且有更强的泛化能力。

早期使用骨架进行动作识别的方法简单地利用各个时间步的关节坐标形成特征向量,并对其进行时间分析。这些方法的能力是有限的,因为它们没有明确利用关节之间的空间关系,这对理解人类行为至关重要。

骨架是以图形的形式出现,而不是2D或3D网格。这使得使用已被证明过的模型(如卷积网络)变得困难。最近,将卷积神经网络(CNN)推广到任意结构图的图神经网络(GCN)受到了越来越多的关注,并成功地应用于许多应用中,如图像分类,文件分类和半监督学习。

作者就结合了TCN和GCN提出了一种新的 ST-GCN(Spatial Temporal Graph Convolution Networks for Skeleton Based Action Recognition),即时空图卷积网络模型,用于解决基于人体骨架关键点的人体行为识别问题。


这篇文章的主要工作大概就是:

  1. 使用OpenPose预处理视频
  2. 结合GCN和TCN提出模型
  3. 提出了ST-GCN中卷积核的设计原则,以满足骨架建模要求

OpenPose

OpenPose是一个标注人体关节(颈部、肩膀、肘部等等),连接成骨骼,进而估计人体姿态的算法。

  • 输入:RGB image 或 video sequence
  • 输出:人体关节点位置和执行度 (x,y,confidence)

OpenPose总共估计人体18个关节点,关节点顺序和名词如下:

在一个视频中,会有很多帧(Frame)。每个帧中,可能会有很多人(Man),每个人会有很多关节(Joint)。每个关节会有不同特征(位置、置信度)。

视频中的骨骼标注

所以,对于一个batch的视频,我们可以用一个5维矩阵 (N,C,T,V,M)

  • N 代表视频的数量,通常一个batch有256个视频(最好是2的指数)
  • C 代表关节的特征,通常一个关节包含3个特征:x,y,acc
  • T 代表关键帧的数量,一般一个视频有150帧
  • V 代表关节的数量,通常一个人标注18个关节
  • M 代表一帧中的人数

所以,我们只需要关注OpenPose的输出即可,因为这也是我们ST-GCN的输入

构建图-分区策略下的邻接矩阵

邻接矩阵的影响因素:

  1. 数据库:不同数据库关节点个数与连接方式都不同
  2. 分区策略

首先,要说一下,该模型是建立在一系列的骨架图之上的,G = (V,E)。每个节点对应于人体的一个关节。但是对于边,作者进行了类型分类。 有2种类型的边,即构成关节自然连接的空间边和跨连续时间连续相同关节的时间边。在此基础上,构建多层时空卷积图。

其实有点类似“控制变量”的思想,第一种边,也就是根据人体关节之间自然连接来定义的,叫 内部边 。 只考虑一帧内的关节连接,不考虑时序问题。

第二种边,是对于连续帧内的同一个关节的位置移动的边,叫 帧间边

生成标准邻接矩阵

邻接矩阵就是他的行和列都是点,而点与点有没有连接用对应矩阵的元素表示,1就代表有连接,0就代表没有连接。简单来说邻接矩阵就是描述点与边有无联系的一个矩阵。我们这篇论文用的是无向图,所以它的邻接矩阵是个对称矩阵。如果邻接矩阵的对角线都是0,这说明没有考虑自身节点的特征,只是考虑了边的特征,反之就是考虑了自身节点特征。

举一个例子:

上面是一个简易的人体关节图,是无向图,它的邻接矩阵就是根据各个关节点的连接构造的

归一化标准邻接矩阵

我们将标准的邻接矩阵进行求列和计算,继续用上面的例子进行计算,我们可以得到输出是[2.2.5.2.4.2.2] ,然后用每个元素除以所在列的列和,即可得到归一化标准邻接矩阵

分区策略

The proposed partitioning strategies for constructing convolution operations. From left to right:(a)An example frameof input skeleton. Body joints are drawn with blue dots. The receptive fields of a filter with D= 1 are drawn with red dashed circles.(b) Uni-labeling partitioning strategy, where all nodes in a neighborhood has the same label (green).(c) Distancepartitioning. The two subsets are the root node itself with distance 0(green) and other neighboring points with distance1.(blue).(d) Spatial configuration partitioning. The nodes are labeled according to their distances to the skeleton gravity center(black cross) compared with that of the root node (green). Centripetal nodes have shorter distances (blue), while centrifugalnodes have longer distances (yellow) than the root node.

a):输入骨骼序列的示意图,红色节点是本次卷积计算的中心节点,红色虚线内蓝色节点为其采样的相邻节点。因为采用D=1,即只考虑1-邻接的节点,D=2,3,...,n留作以后的工作

b):单一划分:把节点的邻域节点全划为一个子集(包括自身)

c):基于距离划分。中心节点自身, 相邻节点为另一组

d):空间配置划分 ,也就是本文所使用的

Spatial configuration partitioning。空间配置划分。由于身体骨架在空间上是局部的,我们仍然可以在划分过程中利用这种特定的空间结构。我们设计了一个策略,将邻居集划分为三个子集:1)根节点本身;2) 向心群:邻近节点比根节点更靠近骨骼重心;3) 离心组。在这里,骨架中所有关节在一个框架上的平均坐标被视为其重心。这个策略的灵感来自这样一个事实:身体部位的运动可以大致分为同心运动和偏心运动。

其中  是邻域邻域 joint 到黑色十字 × 的距离,  为 root joint。ri是训练集中所有帧上从重心到关节 i 的平均距离.

分区邻接矩阵

讲一下第三种分区策略的邻接矩阵。同样是以上面的简易关节图为例,以节点5为例说明分区策略。节点5的邻域节点有 3,6,7.

对于分区策略1:单一划分,其实并没有变化。

分区策略2:距离划分。将邻接矩阵分成了2组,一个是只有自身节点的矩阵,另一个是只有相邻节点的矩阵。

分区策略3: 空间配置划分 。 重心点为节点3.

计算节点5与重心点之间距离d=1.节点5与重心点之间距离为1=d,所以5为根节点。 节点6、7与重心点之间距离都是2>d.所以6、7是离心点。节点3与重心点之间距离为0<d ,所以3为向心点。

模型构建与源码分析

https://blog.csdn.net/m0_56698268/article/details/123678696

ST-GCN论文分析相关推荐

  1. 【论文解读】GCN论文总结

    本次要总结和分享的是ICLR2017的关于GCN方面的代表作之一论文:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS, ...

  2. 三维点云去噪无监督学习:ICCV2019论文分析

    三维点云去噪无监督学习:ICCV2019论文分析 Total Denoising: Unsupervised Learning of 3D Point Cloud Cleaning 论文链接: htt ...

  3. 最新最全的视觉Transformer教程!论文分析 + 逐行Coding,带你轻松玩转ViT

    Transformer自2017年被提出后,从横扫NLP领域的风光无二,到陷入一片对其在CV任务有效性的质疑声中,再到不久前在多项图像任务中显示出直逼CNN的优异性能 以及 ICCV2021 best ...

  4. Densenet论文解读 深度学习领域论文分析博主

    深度学习领域论文分析博主 博客链接: https://my.csdn.net/u014380165 其中一篇文章: DenseNet算法详解: https://blog.csdn.net/u01438 ...

  5. 基于论文分析Google的张量处理器TPU

    本文转载自微信公众号CPUinNUDT,由<基于论文分析Google的张量处理器TPU>及<基于论文分析Google的张量处理器TPU(补充)>两篇文章合并而成,如有相关问题, ...

  6. Accurate, Dense, and Robust Multi-View Stereopsis论文分析与代码实现(一)

    Accurate, Dense, and Robust Multi-View Stereopsis论文分析与代码实现(一) 本文版权属于重庆大学计算机学院刘骥,禁止转载 前言 本文依据论文Accura ...

  7. 《Unsupervised Salience Learning for Person Re-identification》论文分析

    <Unsupervised Salience Learning for Person Re-identification>论文分析 1.基础知识 颜色直方图(用于颜色特征的提取):它描述的 ...

  8. APP流量识别与分类论文分析

    论文分析---APP流量分类 亮点 1.1APP分类 1.2模糊数据处理 1.3提高可靠性(训练集和测试集数据来自一次提取还是不同时间提取) 1.4对比时间,版本,设备改变,操作系统版本改变的影响 1 ...

  9. TTiki-Taka: Attacking and Defending Deep Learning-based Intrusion Detection Systems 论文分析

    TTiki-Taka: Attacking and Defending Deep Learning-based Intrusion Detection Systems 论文分析 摘要 神经网络在网络入 ...

  10. 社会网络——信管考研方向之管科图情论文分析

    (一)项目介绍 项目目标是什么? 使用Python的词云库和pyecharts库以及UCINET6对论文数据进行可视化网络关系分析 (二)结果评估 目标是否完成? 完成 目标完成情况? 论文关键词词云 ...

最新文章

  1. HTTP协议Etag详解
  2. 使用Windows的SHFileOperation外壳函数实现文件操作
  3. Qt Style Sheets(qt样式表)
  4. .Net装箱拆箱编程实例
  5. 三个球数求最大值c语言,C语言中一个简单的球3个数最大数的程序中,最后一步:printf(apos;apos;max=%d\napos;apos;,max);怎么理解...
  6. 网易2017校招编程:优雅的点
  7. python安全攻防---爬虫基础--re解析数据
  8. android 模糊读取文件名_Android 从路径中获取文件名 | 学步园
  9. Ubuntu 16.04添加启动图标到Dash Home中
  10. javascript布尔值_JavaScript布尔值通过上法庭进行解释
  11. 洛谷 P2167 [SDOI2009]Bill的挑战
  12. LINUX yum用法
  13. think php5关联模型,thinkphp5中关联模型的定义与使用方法
  14. 虚拟机Windows10下载安装保姆级教程
  15. 在 linux 下如何解压扩展名为 xz 的文件
  16. linux wireshark 中文,Wireshark (简体中文)
  17. 货币金额大写格式(银行需要)
  18. 如何利用Qt 3D 渲染与 Qt Quick 2D 元素结合创建太阳系行星元素?
  19. selenium_Selenium4 Alpha –期望什么?
  20. Windows事件查看器_ID一览表

热门文章

  1. 静态网页和动态网页-个人学习理解
  2. 3.暴力破解凯撒密码
  3. CIKM 2020 | 一文详解美团6篇精选论文
  4. 两块STM32之间 SPI DMA通信
  5. 国际会计准则IAS 和 IFRS
  6. 》技术应用:大数据产品体系
  7. VB.NET获取dpi的方法
  8. python操作pdf与图片相互转换
  9. A Survey for Image Quality Assessment(综述)
  10. 用户画像 用户画像表