[论文阅读]DDGCN: A Dynamic Directed Graph Convolutional Network for Action Recognition

DDGCN: A Dynamic Directed Graph Convolutional Network for Action Recognition

作者 | Matthew Korban, Xin Li
单位 | 路易斯安那州立大学
论文地址 | https://www.ecva.net/papers/eccv_2020/papers_ECCV/papers/123650749.pdf
会议 | ECCV 2020

摘要

提出了一种动态有向图卷积网络(DDGCN),从人体行为的骨架表示出发,对人体行为的时空特征进行建模

DDGCN由三个新的特征建模模块组成:

  1. 动态卷积采样(DCS)
  2. 动态卷积权重(DCW)
  3. 有向图时空(DGST)特征提取

DCS和DCW模块可以有效地捕捉动态的非相邻关节之间的时空相关性

DSTG特征提取模块,通过包含时空的有序信息来增强动作的特征

网络架构在这里插入图片描述

动态卷积采样(DCS)

人体非相邻的子部分在人类行为中往往是相互关联的,且这种关联是动态的
在这里插入图片描述

DCS算法可以总结如下

  1. 按照骨架模板初始化静态图 G S G_S GS,并相应地初始化所有节点的索引

  2. 初始化邻居采样:对于∀vi∈GS,分两步创建其初始有序近邻集合pi(B(Vi))

    • 创建包括图中所有其他节点的有序节点集合Oi,该有序节点集合Oi包括根据图到vi的图距离排序的图中的所有其他节点。 当两个节点Vj和Vr具有相同的图距离(例如,都离Vi有r跳距离)时,则根据它们的初始化索引对它们进行排序
    • 给定核大小r,从Oi中选取前r个节点,这些节点在此步骤pi(B(Vi))中形成有序的邻集
  3. 更新采样邻域:∀vi,通过学习减少识别损失的最优偏移量∆pi来更新索引偏移量和邻域采样

最后,在 G S T G_{ST} GST上,通过如下公式(1)的图形卷积计算特征图 f S T f_{ST} fST
f S T ( v i ) = ∑ v j ∈ B ( v i ) w ( v i ) ⋅ ( p i ( v j ) + Δ p i ( v j ) ) f_{S T}\left(v_{i}\right)=\sum_{v_{j} \in B\left(v_{i}\right)} w\left(v_{i}\right) \cdot\left(p_{i}\left(v_{j}\right)+\Delta p_{i}\left(v_{j}\right)\right) fST(vi)=vjB(vi)w(vi)(pi(vj)+Δpi(vj))
其中i和j分别是中心采样节点和相邻采样节点的索引,B是动态相邻采样节点集合,w是动态权重函数,pi是动态相邻采样函数,∆pi是偏移采样函数

动态卷积权重(DCW)

DCW权重分配模块动态地将权重 w i w_i wi分配给 v i v_i vi的相邻节点

使用动态时间规整(DTW)算法来计算 P v = D T W p a t h ( W , B ( v ) ) P_v=DTW_{path} (W,B(v)) Pv=DTWpath(W,B(v))

在这里插入图片描述

P v P_v Pv中的第一列定义了W中元素的排序索引,第二列表示所选元素及其在 B ( V ) B(V) B(V)中的顺序

有向时空图(DSTG)特征

在这里插入图片描述

骨骼特征 f i B = f i − 1 f i ‾ = f i − 1 − f i f_{i}^{B}=\overline{f_{i-1} f_{i}}=f_{i-1}-f_{i} fiB=fi1fi=fi1fi

时间特征 f i T = f i t − f i t − 1 f_{i}^{T}=f_{i}^{t}-f_{i}^{t-1} fiT=fitfit1

串联得到节点v_i的特征向量 F i = { f i J , f i B , f i T } F_{i}=\left\{f_{i}^{J}, f_{i}^{B}, f_{i}^{T}\right\} Fi={fiJ,fiB,fiT}

实验

在NTURGB-D 60和Kinetics数据集上性能均优于其他方法
在这里插入图片描述

消融实验

DSTG模块对于性能提升最大,完整的DDC模块可得到最高的准确率

在这里插入图片描述

识别不完整的动作

对丢失帧的动作识别进行的实验,分为以下3中情况

  • 运动开始时丢失帧

  • 运动结束时丢失帧

  • 序列中随机丢失的帧

结论是运动开始时的序列存在大部分特征
在这里插入图片描述

总结

提出了一种基于骨架图的动态有向图卷积网络(DDGCN)动作识别算法

DDGCN由三个新模块组成,动态卷积抽样(DCS)、动态卷积权重分配(DCW)和有向图时空(DGST)特征提取

这些新模块有助于更好地捕捉时空依赖关系,骨架的层次结构和时序特征。 实验表明,DDGCN在多个公共数据集上的动作识别准确率优于最先进的算法

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
使用C++实现有向图的邻接矩阵,以及可达矩阵的计算算法。 请完成Project05.cpp中DirectedGraph类的成员函数,具体要求如下: DirectedGraph类: 用来表示一个有向图。 成员变量: m_AdjMat:邻接矩阵 m_ReachabilityMat:可达矩阵 成员函数: DirectedGraph():默认构造函数,构造一个空图。 ~DirectedGraph():析构函数 DirectedGraph(string filepath):解析文件filepath,构造一个DirectedGraph对象。 filepath文件格式与项目四相同,但本项目的图为有向图。 DirectedGraph(const Graph & graph):复制构造函数 operator=(const Graph & graph):赋值运算符 ClearGraph():清空图的邻接矩阵和可达矩阵。 OutputGraph():输出图的邻接矩阵 operator*(const DirectedGraph & graph): 乘法运算符,用于实现可达矩阵运算中的矩阵逻辑乘 DirectedGraph Pow(int power):邻接矩阵的整数次幂。 用法如下: DirectedGraph a; a = a.Pow(5); 即a的5次幂,相当于a = a * a * a * a * a; 注意要考虑0次幂的情况。 该函数适合以递归实现。 DirectedGraph MatOr(DirectedGraph graph):矩阵逐元素的逻辑或运算。 例如: 1 0 0 1 与 0 1 1 0 运算后的结果为 1 1 1 1 void CalcReachabilityMat():计算可达矩阵,要求该函数基于*运算符和Pow函数实现 void OutputReachabilityMat():输出可达矩阵 IsConnected(int src, int dst):基于可达矩阵判断从节点src与dst之间是否存在通路,如存在返回真,否则返回假
最新发布
05-30

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值