[骨架动作识别]STA-LSTM: Spatio-Temporal Attention Model for Human Action Recognition from Skeleton Data

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013608336/article/details/81075837

An End-to-End Spatio-Temporal Attention Model for Human Action Recognition from Skeleton Data 这是来自微软亚洲研究院的一篇文章,兰翠玲老师组的,他们在骨架动作识别方面出过不少佳作,微软毕竟是kinect亲妈。只是代码不开源,略坑。

网络结构

网络(Main LSTM Network)用于对特征进行提取、时域相关性利用和最终的分类。时域注意力子网络 (Temporal Attention)用于给不同帧分配合适的重要性。空域注意力子网络(Spatial Attention)用于给不同关节点分配合适的重要性。
这里写图片描述
序列中的空域注意力和时域注意力具体为多大是没有参考的(不知道Groundtruth)。网络是以优化最终分类性能来自动习得注意力,以及加上一些正则项。

Spatial Attention with Joint-Selection Gates

就是普通的soft-attention 机制
这里写图片描述
这里写图片描述
这里写图片描述

Temporal Attention with Frame-Selection Gate

与空间注意力不同的是,这里用了relu作为激活函数,没用softmax,而且是直接与lstm输出 z t 相乘。
至于为什么用relu文章说它收敛性好,至于没用softmax,原因不祥
这里写图片描述
这里写图片描述
最后的softmax层用于分类
这里写图片描述

 训练过程

目标函数
因为有两个子网络,序列中的空域注意力和时域注意力没有groundtruth,只靠类别的交叉熵损失函数来训练,力度是不够的。于是又加上了三项惩罚项。
这里写图片描述
第一个正则项,因为发现空间注意力模型很容易忽视一些重要的关节点,为了让它动态地focus在更多的空间点上。这个正则项等价于 t = 1 T α t , k T , K代表关节点的个数. 根据文章《show attend and tell 》中的解释,代表注意力平均的加在每一个位置,这一点是非常重要的,but,为什么还要除以一个T。
《show attend and tell 》中的损失函数
这里写图片描述
第二个正则项,给时域注意力加上l2正则化,避免梯度消失
第三个正则项,l1正则化为了避免过拟合, W 表示所有的连接矩阵

除了加regularization,训练过程也要下功夫

  1. 预训练时间注意力模型
    空间S-LSTM都设置为1, 联合训练主网络和T-LSTM, 固定T-LSTM为1,只训练主网络
  2. 预训练空间注意力模型
  3. 训练主lstm网络
  4. 三个部分一起训练

这里写图片描述

实验结果

本实验在SBU NTU-RGBD数据集上进行了验证
这里写图片描述

猜你喜欢

转载自blog.csdn.net/u013608336/article/details/81075837