打印
[应用相关]

论文笔记之ST-GCN

[复制链接]
663|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
通过将图卷积网络扩展到时空图模型,设计了一种(用于动作识别的骨架序列)的通用表示。
AAAI 2018 录用
论文地址:https://arxiv.org/abs/1801.07455

使用特权

评论回复
沙发
9dome猫|  楼主 | 2021-5-17 15:12 | 只看该作者
1. 摘要
动态人体骨架模型带有进行动作识别的重要信息,传统的方法通常使用手工特征或者遍历规则对骨架进行建模,从而限制了表达能力并且很难去泛化。

作者提出了一个新颖的动态骨架模型ST-GCN,它可以从数据中自动地学习空间和时间的patterns,这使得模型具有很强的表达能力和泛化能力。

在Kinetics和NTU-RGBD两个数据集上achieve substantial improvements over mainstream methods(与主流方法相比,取得了质的提升)。

使用特权

评论回复
板凳
9dome猫|  楼主 | 2021-5-17 15:13 | 只看该作者
2. 相关工作
(1)图卷积网络主要有两种主流方法:

基于光谱的观点(spectral perspective):图卷积中的位置信息被看做是以光谱分析的形式。

基于空间的观点(spatial perspective):卷积核直接被应用在图节点和他们的邻居节点。

作者采用第二种做法,限制每一个滤波只应用到一个节点的一个邻域。
————————————————

使用特权

评论回复
地板
9dome猫|  楼主 | 2021-5-17 15:19 | 只看该作者
(2)基于骨架的动作识别:

基于手工特征的方法:设计几种手工特征去捕获连接点的运动信息,比如,关节点轨迹的协方差矩阵。

基于深度学习的方法:循环神经网络,端到端进行动作识别。

在这些方法中,许多都强调了人体各部分关节建模的重要性。但是这些部分通常是使用领域知识显式分配的。作者是第一个将图卷积网络应用在基于骨架的动作识别任务中的。它和以前的方法都不同,可以隐式地通过图卷积网络将位置信息和时序动态信息结合起来。

使用特权

评论回复
5
9dome猫|  楼主 | 2021-5-17 15:28 | 只看该作者
3. 本文方法
在现有的基于骨架的动作识别方法中提出,body parts的信息对于基于骨架的动作识别非常有效。作者提出,性能的提升主要是body parts比整个骨架具有更多的局部特征,因此有了用局部信息层级表示的骨架序列,因此有了ST-GCN。

使用特权

评论回复
6
9dome猫|  楼主 | 2021-5-17 15:36 | 只看该作者
3.1 总体结构

使用特权

评论回复
7
9dome猫|  楼主 | 2021-5-17 15:38 | 只看该作者
给出一个动作视频的骨架序列信息,首先构造出表示该骨架序列信息的图结构,ST-GCN的输入就是图节点上的关节坐标向量,然后是一系列时空图卷积操作来提取高层的特征,最后用SofMax分类器得到对应的动作分类。整个过程实现了端到端的训练。

使用特权

评论回复
8
9dome猫|  楼主 | 2021-5-17 15:41 | 只看该作者
3.2 骨架的图结构
设一个有N个节点和T帧的骨架序列的时空图为G=(V,E),其节点集合为V={vti|t=1,…,T,i=1,…,N},第t帧的第i个节点的特征向量F(vti)由该节点的坐标向量和估计置信度组成。

使用特权

评论回复
9
probedog| | 2021-5-17 15:51 | 只看该作者
很不错的笔记,赞赞赞

使用特权

评论回复
10
9dome猫|  楼主 | 2021-5-17 15:54 | 只看该作者
图结构由两个部分组成:

根据人体结构,将每一帧的节点连接成边,这些边形成spatial edges ES={vtivtj|(i,j)∈H}。H是一组自然连接的人体关节。
将连续两帧中相同的节点连接成边,这些边形成temporal edges EF={vtiv(t+1)i}。

蓝色圆点表示身体关节。人体关节间的体内边缘是根据人体的自然联系来定义的。帧间边缘连接连续帧之间的相同关节。关节坐标用作ST-GCN的输入。

使用特权

评论回复
11
9dome猫|  楼主 | 2021-5-17 15:56 | 只看该作者
3.3 空间图卷积网络
以常见的图像的二维卷积为例,针对某一位置x的卷积输出可以写成如下形式:

使用特权

评论回复
12
9dome猫|  楼主 | 2021-5-17 15:59 | 只看该作者
输入通道数为c的特征图fin,卷积核大小K∗K,sampling function采样函数p(x,h,w)=x+p′(h,w),weight function通道数为c的权重函数。

使用特权

评论回复
13
9dome猫|  楼主 | 2021-5-17 16:01 | 只看该作者
(1)sampling function
在图像中,采样函数p(h,w)指的是以x像素为中心的周围邻居像素,在图中,邻居像素集合被定义为:B(vti)={vtj|d(vtj,vti)≤D},d(vtj,vti)指的是从vtj到vti的最短距离,因此采样函数可以写成p(vti,vtj)=vtj,这里的p(vti,vtj)=vtj。

使用特权

评论回复
14
9dome猫|  楼主 | 2021-5-19 09:46 | 只看该作者
(2)weight function
在2D卷积中,邻居像素规则地排列在中心像素周围,因此可以根据空间顺序用规则的卷积核对其进行卷积操作。类比2D卷积,在图中,将sampling function得到的邻居像素划分成不同的子集,每一个子集有一个数字标签,因此有lti:B(vti)→{0,…,K−1}。将一个邻居节点映射到对应的子集标签,权重方程为w(vti,vtj)=w′(lti(vtj))。

使用特权

评论回复
15
9dome猫|  楼主 | 2021-5-19 09:48 | 只看该作者
(3)空间图卷积

使用特权

评论回复
16
9dome猫|  楼主 | 2021-5-19 09:48 | 只看该作者
(4)时空模型
将空间域的模型扩展到时间域中,得到的sampling function为

使用特权

评论回复
17
9dome猫|  楼主 | 2021-5-19 09:49 | 只看该作者
3.4 划分子集的方式

(a)输入骨架的示例帧,身体关节用蓝点绘制。D=1的滤波器的接收域用红色虚线圆圈表示。

(b)唯一划分 Uni-labeling:将节点的1邻域划分为一个子集。

(c)基于距离的划分 Distance partitioning:将节点的1邻域划分为两个子集,节点本身子集与邻节点子集。

(d)空间构型划分 Spatial configuration partitioning:将节点的1邻域划分为3个子集,第一个子集连接了空间位置上比根节点更远离整个骨架的邻居节点,第二个子集连接了更靠近中心的邻居节点,第三个子集为根节点本身,分别表示了离心运动、向心运动和静止的运动特征。

使用特权

评论回复
18
9dome猫|  楼主 | 2021-5-19 09:51 | 只看该作者
3.5 注意力机制
在运动过程中,不同的躯干重要性是不同的。例如腿的动作可能比脖子重要,通过腿部我们甚至能判断出跑步、走路和跳跃,但是脖子的动作中可能并不包含多少有效信息。

因此,ST-GCN 对不同躯干进行了加权(每个 st-gcn 单元都有自己的权重参数用于训练)。

使用特权

评论回复
19
9dome猫|  楼主 | 2021-5-19 09:53 | 只看该作者
3.6 TCN
GCN 帮助我们学习了到空间中相邻关节的局部特征。在此基础上,我们需要学习时间中关节变化的局部特征。如何为 Graph 叠加时序特征,是图卷积网络面临的问题之一。这方面的研究主要有两个思路:时间卷积(TCN)和序列模型(LSTM)。

ST-GCN 使用的是 TCN,由于形状固定,可以使用传统的卷积层完成时间卷积操作。为了便于理解,可以类比图像的卷积操作。st-gcn 的 feature map 最后三个维度的形状为(C,V,T),与图像 feature map 的形状(C,W,H)相对应。

图像的通道数C对应关节的特征数C。
图像的宽W对应关键帧数V。
图像的高H对应关节数T。
在图像卷积中,卷积核的大小为『w』×『1』,则每次完成 w 行像素,1 列像素的卷积。『stride』为 s,则每次移动 s 像素,完成 1 行后进行下 1 行像素的卷积。

在时间卷积中,卷积核的大小为『temporal_kernel_size』× 『1』,则每次完成 1 个节点,temporal_kernel_size 个关键帧的卷积。『stride』为 1,则每次移动 1 帧,完成 1 个节点后进行下 1 个节点的卷积。

使用特权

评论回复
20
9dome猫|  楼主 | 2021-5-19 09:53 | 只看该作者
3.7 训练

输入的数据首先进行batch normalization,然后在经过9个ST-GCN单元,接着是一个global pooling得到每个序列的256维特征向量,最后用SoftMax函数进行分类,得到最后的标签。

每一个ST-GCN采用Resnet的结构,前三层的输出有64个通道,中间三层有128个通道,最后三层有256个通道,在每次经过ST-CGN结构后,以0.5的概率随机将特征dropout,第4和第7个时域卷积层的strides设置为2。用SGD训练,学习率为0.01,每10个epochs学习率下降0.1。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

1292

帖子

1

粉丝