提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 摘要
- Abstract
- 文献阅读:基于骨骼的动作识别的行动结构图卷积网络
- 1、研究背景
- 2、方法提出
- 3、关键结构
- 3.1、A-links inference module (AIM)
- 3.2、Structural Links (S-links)
- 4、方法优势
- 5、试验
- 6、结论
- 二、U-net代码结构学习
- 总结
摘要
本周主要阅读了CVPR文章,基于骨骼的动作识别的行动结构图卷积网络。文章提出了一种名为AS-GCN的新型网络结构,用于处理基于骨架数据的人体动作识别问题。AS-GCN通过引入编码器-解码结构的A-link推理模块,可以直接从动作中捕捉到动作特定的潜在依赖关系。AS-GCN还扩展了现有的骨架图,以表示更高阶的依赖关系,即结构链接。通过将这两种类型的链接合并到一个通用的骨架图中。除此之外,还学习学习了U-net代码的学习。
Abstract
This week, I mainly read CVPR articles on action structure graph convolutional networks for skeleton based action recognition. The article proposes a novel network structure called AS-GCN for handling human motion recognition problems based on skeleton data. AS-GCN can directly capture action specific potential dependencies from actions by introducing an A-link inference module with an encoder decoding structure. AS-GCN also extends the existing skeleton graph to represent higher-order dependencies, namely structural links. By merging these two types of links into a common skeleton diagram. In addition, I also learned how to learn U-net code.
文献阅读:基于骨骼的动作识别的行动结构图卷积网络
Title: Vision Transformer with Super Token Sampling
Author:Maosen Li1, Siheng Chen, Xu Chen, Ya Zhang, Yanfeng Wang, and Qi Tian
From:2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)
1、研究背景
基于骨骼数据的动作识别方法逐渐受到研究者的关注。与RGB图像相比,骨骼数据具有对光照、颜色等外部因素不敏感的特性,因此更加鲁棒。此外,骨骼数据能够直接描述人体的运动状态,包含了丰富的动作信息。因此,基于骨骼数据的动作识别方法具有更高的识别准确率和更强的适应性。然而,尽管基于骨骼数据的动作识别方法具有诸多优势,但仍然存在一些挑战。例如,如何有效地提取和利用骨骼数据中的空间和时间信息,以及如何捕捉不同关节点之间的依赖关系等。针对这些问题,研究者们提出了一系列基于图卷积网络(GCN)的骨骼动作识别方法。这些方法通过构建人体骨骼图,并利用图卷积操作来提取骨骼数据中的特征,取得了显著的效果。
2、方法提出
文章提出了一种名为AS-GCN的新型网络结构,用于处理基于骨架数据的人体动作识别问题。AS-GCN通过引入编码器-解码结构的A-link推理模块,可以直接从动作中捕捉到动作特定的潜在依赖关系,即动作链接。同时,AS-GCN还扩展了现有的骨架图,以表示更高阶的依赖关系,即结构链接。通过将这两种类型的链接合并到一个通用的骨架图中,AS-GCN进一步提出了动作结构图卷积网络(AS-GCN),该网络将动作结构图卷积和时序卷积作为基本构建块,以学习用于动作识别的空间和时间特征。此外,AS-GCN还添加了一个未来的姿态预测头,通过自我监督来捕捉更详细的动作模式。
3、关键结构
3.1、A-links inference module (AIM)
AIM由一个编码器和一个解码器构成,通过对两个节点之间的Action-link(即潜在的隐性依赖关系)进行推断,来预测未来节点的位置,即进行未来行为预测。具体来说,AIM的工作流程大致如下:首先将上一时刻节点的关系数据放入编码器进行编码,然后解码器对编码后的数据进行解码。通过这一编码-解码过程,AIM能够推断出节点之间的潜在依赖关系,即Action-link,从而预测未来节点的位置和行为。
3.2、Structural Links (S-links)
Structural Links(S-links)是一种关键的链接方式,主要用于提取骨骼数据中关节点之间的结构信息。S-links特别关注于物理上相邻的关节点之间的关系,这有助于模型捕捉人体骨架的局部结构特征。通过S-links,AS-GCN能够更精确地理解人体各个部分如何协同工作以完成各种动作。这对于动作识别和行为分析至关重要,因为人体动作通常是由多个关节的协同运动所构成的。
4、方法优势
过去的方法主要存在两点不足的地方:1、仅仅基于关节之间的固定骨架建模;2、仅捕获关节之间的局部物理依赖性。相比过去的方法AS-GCN 利用 actional links 去捕捉任何结点之间的潜在关系,利用 structural links 去捕捉一些 high order features。通过解决这些问题AS-GCN有着以下的有点:
- 强大的表征能力:通过图卷积的方式,AS-GCN能够自动学习人体骨骼数据中的空间和时间模式,从而实现对复杂动作的准确识别。
- 良好的泛化性能:由于AS-GCN是从数据中自动学习特征,因此它对于不同的动作类型和场景具有较强的适应性,能够较好地应对各种复杂情况。
- 高鲁棒性:人体骨骼数据对光照、颜色等外部因素的变化不敏感,因此基于骨骼的动作识别方法通常具有更高的鲁棒性。
5、试验
首先,实验采用了多个公开的骨骼动作识别数据集,如NTU RGB+D、Kinetics等,用于训练和测试AS-GCN模型。这些数据集包含了丰富的动作类别和样本,有助于全面评估模型的性能。其次,实验对比了AS-GCN与其他先进的骨骼动作识别方法的性能。通过比较准确率、召回率、F1值等评估指标,实验证明了AS-GCN在动作识别任务上的优越性。特别是在处理复杂动作和捕捉细微动作差异方面,AS-GCN表现出了更高的识别精度。
此外,实验还探究了AS-GCN模型中各个组件(如A-links、S-links和Action-link inference module)对性能的影响。通过对比不同配置下的模型性能,实验分析了各个组件的作用和贡献,进一步验证了AS-GCN设计的合理性。
6、结论
文章提出了用于基于骨架的动作识别的动作结构图卷积网络(AS-GCN)。A-link推理模块捕获动作依赖关系,还扩展了骨架图来表示高阶关系。广义图被馈送到AS-GCN块以更好地表示动作。一个额外的未来姿势预测头通过自我监督捕捉更详细的模式。在实验步骤,使用两个数据集NTU-RGB+D和Kinetics验证了AS-GCN的行为识别。与以前的方法相比,AS-GCN实现了很大的改进。此外,AS-GCN在未来姿态预测方面也显示出了很有希望的结果。
二、U-net代码结构学习
class UNet(nn.Module):
def __init__(self, in_channels: int, out_channels: int):
super().__init__()
# 初始化下采样路径的卷积层
self.down_conv = nn.ModuleList([DoubleConvolution(i, o) for i, o in
[(in_channels, 64), (64, 128), (128, 256), (256, 512)]])
# 初始化下采样操作
self.down_sample = nn.ModuleList([DownSample() for _ in range(4)])
# 初始化最底层(桥接部分)的卷积层
self.middle_conv = DoubleConvolution(512, 1024)
# 初始化上采样路径的上采样操作
self.up_sample = nn.ModuleList([UpSample(i, o) for i, o in
[(1024, 512), (512, 256), (256, 128), (128, 64)]])
# 初始化上采样路径的卷积层
self.up_conv = nn.ModuleList([DoubleConvolution(i, o) for i, o in
[(1024, 512), (512, 256), (256, 128), (128, 64)]])
# 初始化拼接操作,用于将上采样后的特征图与下采样路径的特征图拼接
self.concat = nn.ModuleList([CropAndConcat() for _ in range(4)])
# 初始化最终的卷积层,用于输出
self.final_conv = nn.Conv2d(64, out_channels, kernel_size=1)
def forward(self, x: torch.Tensor):
# 用于存储下采样路径的特征图,以便在解码时拼接
pass_through = []
# 下采样路径
for i in range(len(self.down_conv)):
x = self.down_conv[i](x) # 通过卷积层
pass_through.append(x) # 保存特征图用于上采样时拼接
x = self.down_sample[i](x) # 进行下采样
# 最底层卷积
x = self.middle_conv(x)
# 上采样路径
for i in range(len(self.up_conv)):
x = self.up_sample[i](x) # 上采样
# 拼接下采样路径中保存的特征图
x = self.concat[i](x, pass_through.pop())
x = self.up_conv[i](x) # 通过卷积层
x = self.final_conv(x)
return x
总结
本周主要阅读了CVPR文章,基于骨骼的动作识别的行动结构图卷积网络。文章提出了一种名为AS-GCN的新型网络结构,用于处理基于骨架数据的人体动作识别问题。AS-GCN通过引入编码器-解码结构的A-link推理模块,可以直接从动作中捕捉到动作特定的潜在依赖关系。AS-GCN还扩展了现有的骨架图,以表示更高阶的依赖关系,即结构链接。通过将这两种类型的链接合并到一个通用的骨架图中。除此之外,还学习学习了U-net代码的学习。下周再接再厉!