DDGCN: A Dynamic Directed Graph Convolutional Network for Action Recognition

Introduction
作者认为解决如下两个问题能有效增强GCN在动作识别中的能力:
1.在人类骨骼的不同部位中有着时空关联性,但这些关联性是动态的,而且在时空域中不同的动作关联性也是不同的。标椎卷积操作普遍采纳的传统GCN是静态的,而且仅仅描述了邻居节点的空间联系,因而不能准确的获得这样的动态时空联系。

2.骨骼的空间层次结构和运动的时间序列特性都编码了序列信息,这在动作识别中是重要的。但是大多数现存的ST图(spatial-temporal graph)模型描述动作使用的是无向图,它不能获得这样的序列信息。

为了解决上述的问题,作者提出了端到端的Dynamic Directed Graph Convolutional Network (DDGCN),作者还提出了三个新的模型,它能自适应的学习时空联系和建模时间与空间的序列信息。

Dynamic Convolutional Sampling (DCS).在时间与空间的相连关节之间的关系称之为ST correlations,而且每一个节点 v v v描述这种关系使用特征向量 f S T ( v ) f_{ST}(v) fST(v),在点 v v v和它的邻居点集 B ( v ) B(v) B(v),我们计算 f S T ( v ) f_{ST}(v) fST(v)使用一个共享核权值 W W W的卷积。 B ( v ) B(v) B(v)包括了 v v v的时空相连节点。在不同的动作中 B ( v ) B(v) B(v)是不同的,作者提出动态的建模ST correlations,并且计算每一个节点的邻居节点集。因此在不同的动作作者设计DCS模型自适应的使用ST correlations来定义B。

Dynamic Convolutional Weights (DCW).为了在点 v v v的邻居 B ( v ) B(v) B(v)内执行元素阶卷积,我们需要对 v v v的邻居节点分配学习权重 W W W。然而邻居结点的空间顺序是模糊的。为了让GCN保持序列不变性,我们开发了DCW模型以自适应和动态的过程来计算权重W的顺序。

Directed Spatial-Temporal Graph (DSTG) Features.特征提取模型

在这里插入图片描述
在这里插入图片描述

Dynamic Convolutional Sampling (DCS)
DCS运行在静态图 G 0 G_0 G0,我们首先初始化 v v v的邻居j节点列表 B ( v ) B(v) B(v),然后DCS算法更新 B ( v ) B(v) B(v)来包含非邻接节点。DCS计算每一个节点 v i v_i vi特征值分两步:
1.首先观察所有的相连节点对 ( v i , v j ) , v i , v j ∈ G 0 (v_i,v_j),v_i,v_j\isin{G_0} (vi,vj),vi,vjG0,然后我们把这些非邻接节点统一纳入每个 v i v_i vi的邻居集 B ( v i ) B(v_i) B(vi)中,然后把 v i v_i vi与新纳入的非邻接节点 v j v_j vj连接成一个新的边。上述都是由动态采样程序执行并使用下标变化来更新他们顺序。我们使用函数 p i p_i pi来表示对 v i v_i vi的采样, Δ p i \varDelta{p_i} Δpi表示一个下标变换。因此 p i ( B ( v i ) ) + Δ p i ( B ( v i ) ) p_i(B(v_i))+\varDelta{p_i(B(v_i))} pi(B(vi))+Δpi(B(vi))排序了所以节点 v j v_j vj和输出了下标的序列。然后迭代更新 v i v_i vi邻居节点的序列来发现一个更好的排序。
2.在 v i v_i vi与它的邻居 v j v_j vj连接的边,定义它们之间的相关特征为 f ( v i , p i ( B ( v i ) ) + Δ p i ( B ( v i ) ) ) f(v_i,p_i(B(v_i))+\varDelta{p_i(B(v_i))}) f(vi,pi(B(vi))+Δpi(B(vi))),其中 v j = p i ( B ( v i ) ) + Δ p i ( B ( v i ) ) v_j=p_i(B(v_i))+\varDelta{p_i(B(v_i))} vj=pi(B(vi))+Δpi(B(vi)).

在这里插入图片描述

Dynamic Convolutional Weights
在图中,每个节点的邻接节点通常是无序的,邻居的数量可能是不同的,为了保持顺序不变性,作者提出了DCW权值分配模型。
节点 v v v和它的邻居节点 B ( v ) B(v) B(v),DCW分配重排序核权值 W W W,我们将这个赋值计算为 r × 2 r×2 r×2矩阵 P v = D T W p a t h ( W , B ( v ) ) P_v=DTW_{path}(W,B(v)) Pv=DTWpath(W,B(v)),它使两个向量 B ( v ) B(v) B(v)和重序 W W W之间的距离最小化, P v P_v Pv的第一列定义了W中元素的以排序下标,第二列表示 B ( v ) B(v) B(v)中备选择的元素和它的顺序。我们使用Dynamic Time Warping(DTW)算法计算 p v p_v pv
DCW分配本质是获得 B ( v ) B(v) B(v)不同大小,当核大小 r r r被固定时, B ( v ) B(v) B(v)的大小表示了 K K K可能的改变。注意 K K K v v v的价加上它不相邻的相关顶点集的大小。如果 K K K大于 r r r,则将考虑前 r r r个有效节点(使用DTW算法),而忽略其他节点。这允许我们在无需调整共享内核层的情况下完全连接这个超内核层。

Directed Spatial-Temporal Graph
DSTG特征提取模型增强了从DCS和DCW模型获取的初始特征 f S T f_{ST} fST,与现有的方法使用三维关节/骨骼坐标合并空间和时间顺序信息不同,DSTG使用从关节 v i v_i vi的特征向量指向其相关关节 v j v_j vj的特征向量的高维特征向量。为每一个点 v i v_i vi我门分配了一个特征向量 F i = { f i J , f i B , f i T } F_i=\{f_i^J,f_i^B,f_i^T\} Fi={fiJ,fiB,fiT},它是关节特征 f i J f_i^J fiJ,骨骼特征 f i B f_i^B fiB,时间特征 f i T f_i^T fiT三个特征向量的串联。

Network Architecture
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201009201001811.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2ExMDEzNTUyNDE1,size_16,color_FFFFFF,t_70#pic_center

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
使用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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值