Richly Activated Graph Convolutional Network for Robust Skeleton-based Action Recognition

TCSVT2020

丰富的激活图表卷积网络,用于基于骨骼的骨骼动作识别


现有方法大多使用完整的骨架,但是现实生活中,捕获不完全的或嘈杂的骨架是不可避免的,当某些信息关节被遮挡或受到干扰时,这可能会降低性能。探索在所有骨架关节上传播充分辨别特征使得分布式冗余表示将动作模型的灵敏程度降低到非标准骨架。具体地,一系列有序流延伸骨干GCN,该流是通过前面流较少激活的关节学习辨别特征。通过类激活映射class activation maps(CAM)测量每个GCN流的骨架关节激活程度。并且只有来自未激活的关节的信息将被传递到下一个流,通过其获得所有源关节丰富的特征。richly activated GCN(RA-GCN)。

显示了由于场景中的其他人而显示的一些遮挡行为的示例。嘈杂的数据将严重损坏模型的性能。因此,如何增强基于骨架的动作识别模型的稳健性仍然是一个紧迫和具有挑战性的问题。

在本文中,通过集合学习的成功启发,文章提出了一种基于GCN的多流模型,旨在从骨架运动序列中学习丰富的鉴别特征,从而提高所提出的模型的鲁棒性。方法中每条流的目的是探索以前流未激活的骨架关节上的一组有区别的特征。**骨架关节上的已经学习了的多余但互补的特征提供了处理嘈杂或不完整的骨架数据的有效策略。**例如,当我们认识到动作投掷时,最多的有区别的关节位于对象投掷过程中的两臂之间,而身体摇曳以及手的上下文的子行动也可以用来推断投掷的行动。

为了区分每个流中最具有信息性的关节,文章成功引入技术:class activation maps(CAM),它最初旨在在负责可视分类的最终CNN层可视化激活的热图。通过之前的GCN流获得的activation maps被累计作为掩模矩阵mask matrix来告诉新流哪些关节已经被激活了。新流将会被迫从未激活的关节中探索新的可区分的特征。richly activated GCN (RA-GCN),在丰富的发现和互补性特征将提高模型对非标准骨架的鲁棒性。第一次采用CAM来通过扩展激活骨架关节来减轻骨架行为识别中闭塞和抖动问题。

Y.-F. Song, Z. Zhang, and L. Wang, “Richly activated graph convolutional network for action recognition with incomplete skeletons,” in IEEE Int. Conf. Image Process (ICIP), 2019.

  1. 在以前的工作中,激活掩码是通过激活模块中softmax函数获得的,旨在每个流激活一些关节。相反,现在提出使用归一化激活函数来扩展激活范围,因此相应的流将会获得一个更好的更好说明的激活图activation map。
  2. 和之前工作相比,文章将原来的损失函数扩展到每个单独的网络流上的许多额外的跨熵正常化cross-entropy regularizations,以便更有效的学习特征。
  3. 合成的数据集由更多的劣化运算符扩展,其中遮挡劣化进一步分为四种类型,包括帧、部分、块和随机,并且新构造了两个合成抖动集,进行更多实验以验证所提出的方法在不同降解条件下的有效性和鲁棒性。

RA-GCN来探索所有骨架关节的充分可区别性的特征,构造多留网络,每个流都负责从一组激活的关节中提取特征。以这种方式,当由第一个流提取的关节被遮挡了,该模型还是可以从其他流中发现可区分的信息。

V是关节数,T是一个序列的帧数,输入数据 x \bf x x的大小为 C i n × T × V , C i n = 1 C_{in}\times T\times V,C_{in}=1 Cin​×T×V,Cin​=1。

提出的方法包括三个主要步骤:

  1. 在预处理模块,对提取更加具有信息的特征,输入数据x被转换为x‘,随后被送入所有GCN流。
  2. 对每个流,x’的骨骼关节将被掩模矩阵逐元素相乘过滤,该掩模矩阵记录了最近未被激活的关节。这些关节通过积累同前面流激活模块而计算的激活图activated maps来区分。每个流的掩码矩阵被初始化为和x‘相同形状的全1矩阵。在掩蔽操作后,每个流的操作只包含前面流中未激活的关节,并通过baseline网络来获得一个基于不完整骨架关节的特征表示。
  3. 所有流的特征在输出模块中连接,并使用带有softmax激活函数的全连接层获得最终输入x。

a)数据预处理:关节的相对坐标比绝对坐标更具有信息量。在模型中应用相对坐标和运动特征的几何特征来增加动作识别的识别信息,在分发到所有GCN流之前要预处理输入数据。相对坐标可以被识别为每个帧中的所有关节和中心关节(中脊柱)的差异,所有关节都转换为相对坐标,对位置变换信息更具有鲁棒性。为了提取更具有信息的运动特征,计算 x ˙ t = x t + 1 − x t \dot{\bf x}_t={\bf x}_{t+1}-{\bf x}_t x˙t​=xt+1​−xt​。

b)Richly Activated GCN

1)baseline:ST-GCN

spatial graph convolutional空间图卷积操作: f o u t ( v t i ) = ∑ v t j ∈ B ( v t i ) 1 Z t i ( V t j ) f i n ( v t j ) ⋅ w ( l t i ( v t j ) ) f_{out}(v_{ti})=\sum_{v_{tj}\in{\mathcal B}_{(v_{ti})}}\frac{1}{Z_{ti}(V_{tj})}f_{in}(v_{tj})\cdot {\bf w}(l_{ti}(v_{tj})) fout​(vti​)=∑vtj​∈B(vti​)​​Zti​(Vtj​)1​fin​(vtj​)⋅w(lti​(vtj​))

应用邻接矩阵 A \bf A A后: f o u t = ∑ d = 0 D W d f i n ( Λ d − 1 2 A d Λ d − 1 2 ⊗ M d ) {\bf f}_{out}=\sum_{d=0}^D{\bf W}_d{\bf f}_{in}(\Lambda_d^{-\frac{1}{2}}{\bf A}_d\Lambda_d^{-\frac{1}{2}}\otimes{\bf M}_d) fout​=∑d=0D​Wd​fin​(Λd−21​​Ad​Λd−21​​⊗Md​),其中D是预定义的最大距离, A d {\bf A}_d Ad​是距离d的邻接矩阵, Λ d i i = ∑ k A d i k + α \Lambda_d^{ii}=\sum_k A_d^{ik}+\alpha Λdii​=∑k​Adik​+α是归一化对角矩阵。

空间图卷积块后是一个1×L的卷积层来从输出图 f o u t {\bf f}_{out} fout​中提取时间信息,L是时间窗口的大小。时间和空间卷积层后面是BN层和一个relu层,整个ST-GCN层包含一个残差连接。在每个空间卷积层和时间卷积层中间加dropout层drop率0.5来避免过拟合。

一个STGCN层的结构:

2)激活模块:

RA-GCN中的激活模块来区分每个流的激活关节,然后通过积累前面流激活图来指导新流的学习过程。主要通过将CAM技术扩展到GCN领域来实现。原始CAM技术将CNN中特定类图像区域本地化,c类所有像素的分数 s c o r e c ( x , y ) = ∑ k w k c f k ( x , y ) score_c(x,y)=\sum_kw_k^cf_k(x,y) scorec​(x,y)=∑k​wkc​fk​(x,y), f k ( ⋅ , ⋅ ) f_k(·,·) fk​(⋅,⋅)表示全局平均池化前的特征图,w是权重。文章中,用骨骼序列中t帧和i关节的特征图替换坐标(x,y),能够定位激活的关节。

激活图 m a p c s = ε ( s c o r e c s m a x ( s c o r e c s ) − δ ) map_c^s=\varepsilon(\frac{score_c^s}{max(score_c^s)}-\delta ) mapcs​=ε(max(scorecs​)scorecs​​−δ)。sth流的掩码矩阵 m a s k s = ( ∏ i = 1 s − 1 m a s k i ) ⊗ ( 1 − m a p c s − 1 ) mask_s=(\prod_{i=1}^{s-1}mask_i)\otimes(1-map_c^{s-1}) masks​=(∏i=1s−1​maski​)⊗(1−mapcs−1​),矩阵主元素相乘,在第一个流中掩码矩阵是一个全1矩阵,sth流的输入 x s = x ′ ⊗ m a s k s {\bf x}_s={\bf x}'\otimes mask_s xs​=x′⊗masks​,sth流的输入只包括前面流未激活的关节,因此RA-GCN将充分探索所有关节的可区分性的特征。

3)损失函数:

之前的文章中损失函数只监督总网络,本文中为每个单独的流扩展了许多额外的损耗,从而可以更有效的学习该特征。损失函数 L = − y log ⁡ y ^ − ∑ s = 1 S y log ⁡ y ^ s L=-{\bf y}\log\hat{\bf y}-\sum_{s=1}^S{\bf y}\log\hat{\bf y}_s L=−ylogy^​−∑s=1S​ylogy^​s​, y ^ s \hat{\bf y}_s y^​s​是sth流的输出, y ^ \hat{\bf y} y^​是整个模型的输出,y是ground truth,C是类数量,S是流的数量。




发现骨架关节丰富特征RA-GCN,减少嘈杂或不完整骨骼的影响,提高鲁棒性。baseline ST-GCN。

RA-GCN:Richly Activated Graph Convolutional Network for Robust Skeleton-based Action Recognition相关推荐

  1. 图卷积网络 GCN Graph Convolutional Network(谱域GCN)的理解和详细推导

    文章目录 1. 为什么会出现图卷积神经网络? 2. 图卷积网络的两种理解方式 2.1 vertex domain(spatial domain):顶点域(空间域) 2.2 spectral domai ...

  2. Adaptive Propagation Graph Convolutional Network

    翻译一篇TNN 的论文仅用于学习 原文章链接 有道翻译的也是用了第一人称.如果有错,一定是你对. 题目:Adaptive Propagation Graph Convolutional Network ...

  3. GNN Algorithms(2): GCN, Graph Convolutional Network

    目录 GCN Algorithm Background 传统卷积公式:在graph上不行 定义Graph Fourier 传统Fourier transformation 传统Inverse Four ...

  4. paper reading:Part-based Graph Convolutional Network for Action Recognition

    paper reading:Part-based Graph Convolutional Network for Action Recognition 文章目录 paper reading:Part- ...

  5. 【GCN】《Adaptive Propagation Graph Convolutional Network》(TNNLS 2020)

    <Adaptive Propagation Graph Convolutional Network>(TNNLS 2020) 为每个节点赋予一个停止单元,该单元输出一个值控制Propaga ...

  6. CaEGCN: Cross-Attention Fusion based Enhanced Graph Convolutional Network for Clustering 2021

    问题:现有的深度聚类方法往往忽略了数据之间的关系. 本文提出了一种基于交叉注意的深度聚类框架--基于交叉注意融合的增强型图形卷积网络(CaEGCN) ,该网络包含四个主要模块: 交叉注意融合模块,创新 ...

  7. 论文笔记(SocialGCN: An Efficient Graph Convolutional Network based Model for Social Recommendation)

    一个有效的基于图卷积神经网络的社交推荐模型 原文链接:SocialGCN: An Efficient Graph Convolutional Network based Model for Socia ...

  8. 行人轨迹论文:STUGCN:A Social Spatio-Temporal Unifying Graph Convolutional Network for Trajectory Predictio

    STUGCN:A Social Spatio-Temporal Unifying Graph Convolutional Network for Trajectory Prediction用于轨迹预测 ...

  9. 多尺度动态图卷积神经网络----Multi-scale Dynamic Graph Convolutional Network for Hyperspectral Image Classificati

    一.摘要 卷积神经网络(CNN)在表示高光谱图像和实现高光谱图像分类方面表现出令人印象深刻的能力.然而,传统的CNN模型只能对固定大小和权重的规则正方形图像区域进行卷积,因此不能普遍适用于具有不同对象 ...

最新文章

  1. 返回子串CF 312A(Whose sentence is it?-strstr(s,p))
  2. Cobbler 2.4.4 安装
  3. asyncio简单入门(二)
  4. 消息和事件的区别 VC++解惑
  5. 知识点的积累(零碎的积累)
  6. 融合趋势下基于 Flink Kylin Hudi 湖仓一体的大数据生态体系
  7. Backbone - create model的实现原理
  8. [转]Android笔记:ScrollView嵌套ViewPager的滚动冲突解决方法
  9. 需要在html上引用脚本文件myjs,需要在 html 页面上引用脚本文件myJs.js,下列语句中,正确的是()...
  10. python集合中的元素不能是哪些数据类型_Python内置类型及常见问题
  11. WIFI断网: 802.11协议Deauthentication Reason Codes
  12. RedHat as4 u2下的oracle9.2.0.4安装
  13. 支付中心接口调用逻辑解析
  14. swift语法再温习
  15. 元搜索推荐:比比猫!(马丁编辑)
  16. 全国大学生物联网设计竞赛作品 | 智慧养鸡小助手
  17. MySQL——创建表
  18. Python | 凸多边形间重叠面积计算
  19. 2022年废纸价格预测
  20. [第四届-强网杯]:upload

热门文章

  1. 自媒体推广的方法和技巧有哪些?
  2. ​UG塑胶模具设计结构分析是如何挤压成型的
  3. mysql中avg函数如果有空值_对于 AVG 函数,如果列中所有行的值都是 null,那么 AVG 函数返回的值是( )...
  4. 1.8.8 配置防盗链
  5. [转载] 黄志敏:一条数据新闻是如何用7步生产出来的?
  6. 个人家用nas_希捷个人云评测:家用NAS中的佼佼者
  7. How to use Hibernate - XML Configuration
  8. %2d、%6d(c语言)
  9. CString、CStringA 和 CStringW
  10. 【超越白皮书7】你需要知道关于ETH2.0的几个事实