STM: SpatioTemporal and Motion Encoding for Action Recognition 论文阅读

news2024/11/29 2:44:19

STM: SpatioTemporal and Motion Encoding for Action Recognition 论文阅读

  • Abstract
  • 1. Introduction
  • 2. Related Works
  • 3. Approach
    • 3.1. Channel-wise SpatioTemporal Module
    • 3.2. Channel-wise Motion Module
    • 3.3. STM Network
  • 4. Experiments
  • 5. Conclusion

文章信息:
在这里插入图片描述

原文链接:https://arxiv.org/abs/1908.02486

无源码

发表于:ICCV 2019

Abstract

我们知道,时空和运动特征是视频动作识别中两种互补且至关重要的信息。最近的最新方法采用了一个3D CNN流来学习时空特征,并采用另一个流来学习运动特征。在这项工作中,我们旨在在一个统一的2D框架中有效地编码这两种特征。为此,我们首先提出了一个STM块,其中包含一个通道级时空模块(CSTM)来表示时空特征,以及一个通道级运动模块(CMM)来有效地编码运动特征。然后,我们将ResNet架构中的原始残差块替换为STM块,通过引入非常有限的额外计算成本,形成了一个简单但有效的STM网络。大量实验证明,提出的STM网络在时空相关数据集(即Something-Something v1和v2以及Jester)和场景相关数据集(即Kinetics400、UCF-101和HMDB-51)上胜过了最先进的方法,这得益于将时空和运动特征一起编码。

在这里插入图片描述
图1. STM块的特征可视化。第一行是输入帧。第二行是Conv2 1块的输入特征图。第三行是CSTM的输出时空特征图。第四行是CMM的输出运动特征图。最后一行是通过TV-L1提取的光流。

1. Introduction

随着云计算和边缘计算的快速发展,我们习惯于参与社交平台并生活在摄像头下。与此同时,各行各业,如安全和交通,收集了大量包含丰富信息的视频,涵盖了人们的行为、交通等各个方面。大量的视频信息吸引了越来越多的研究人员涉足视频理解领域。视频理解的第一步是动作识别,旨在识别视频中的人类动作。动作识别中最重要的特征是时空和运动特征,前者编码了不同时间戳之间的空间特征关系,而后者呈现了相邻帧之间的运动特征。

现有的动作识别方法可以总结为两类。第一种类型是基于双流神经网络的方法,包括一个RGB流,其输入为RGB帧,以及一个光流流,其输入为光流。空间流模型化外观特征(而不是时空特征),而不考虑时间信息。光流流通常被称为时间流,旨在建模时间线索。然而,我们认为将光流流称为时间流是不准确的,因为光流仅表示相邻帧之间的运动特征,而其结构几乎与具有2D CNN的空间流相同。因此,这种光流流缺乏捕捉长距离时间关系的能力。此外,光流的提取在时间和空间上都很昂贵,这限制了其在现实世界中的广泛工业应用。

另一种类别是基于3D卷积网络(3D CNNs)的方法,旨在捕捉时空特征。3D卷积能够同时表示时空特征和空间特征,得益于扩展的时间维度。通过堆叠3D卷积,3D CNN能够捕捉长距离的时间关系。最近,由于发布了大规模视频数据集(如Kinetics),对这种框架的优化变得流行起来。通过在大规模视频数据集上进行预训练,基于3D CNN的方法已经实现了比基于2D CNN的方法更优越的性能。然而,尽管3D CNN可以直接从RGB输入中建模时空信息,许多方法仍然将独立的光流动作流集成到其中,以进一步利用运动特征来提高性能。因此,这两种特征在动作识别中是互补的。然而,将卷积核从2D扩展到3D以及采用双流结构必然会将计算成本增加一个数量级,这限制了其真实应用。

受到上述观察的启发,我们提出了一种简单而有效的方法,称为STM网络,将时空和运动特征集成到统一的2D CNN框架中,而无需任何3D卷积和光流预计算。给定输入特征图,我们采用一个通道级时空模块(CSTM)来表示时空特征,并采用一个通道级运动模块(CMM)来编码运动特征。我们还插入了一个恒等映射路径,将它们组合成一个名为STM块的模块。STM块可以很容易地插入到现有的ResNet架构中,通过替换原始残差块来形成带有可忽略额外参数的STM网络。如图1所示,我们用CSTM和CMM特征可视化了我们的STM块。CSTM已经学习到了时空特征,与原始输入特征相比,更加关注动作交互的主要对象部分。至于CMM,它捕捉到了与光流类似的明显边缘的运动特征。我们工作的主要贡献可以总结如下:

  • 我们提出了一个通道级时空模块(CSTM)和一个通道级运动模块(CMM),在统一的2D CNN框架中编码互补的时空和运动特征。
  • 我们提出了一种简单而有效的网络,称为STM网络,通过引入非常有限的额外计算成本,可以将我们的STM块插入到现有的ResNet架构中。
  • 大量实验证明,通过将时空和运动特征整合在一起,我们的方法在包括Something-Something、Kinetics、Jester、UCF101和HMDB-51等几个公共基准数据集上优于最先进的方法。

2. Related Works

随着深度卷积网络在计算机视觉领域取得巨大成功,大量基于CNN的方法已被提出用于动作识别,并逐渐超越了传统方法的性能。一系列进展采用2D CNN作为骨干,并通过简单地聚合逐帧预测来对视频进行分类。然而,这些方法仅独立地对每帧的外观特征建模,而忽略了帧间的动态关系,导致在识别与时间相关的视频时性能较差。为了解决上述缺点,引入了基于双流的方法,通过使用两个网络分别建模外观和动态,并在中间或最后融合两个流。在这些方法中,Simonyan等人首次提出了具有空间和时间网络的双流ConvNet架构。Temporal Segment Networks(TSN)提出了一种稀疏的时间采样策略,用于双流结构,并通过加权平均在最后融合两个流。Feichtenhofer等人研究了两个流中间的融合策略,以获取时空特征。然而,这些类型的方法主要存在两个限制。首先,这些方法需要预先计算光流,这在时间和空间上都很昂贵。其次,从多个段获得的学习特征和最终预测仅使用加权或平均求和进行简单融合,使其不如建模时空关系。

另一类方法尝试直接从RGB帧中使用3D CNN学习时空特征。C3D是第一个使用深度3D CNN学习时空特征的工作。然而,由于需要优化的参数庞大,并且缺乏高质量的大规模数据集,C3D的性能仍然不理想。I3D将ImageNet预训练的2D核扩展到3D,以捕获时空特征,并使用另一个光流流来建模运动特征。在高质量的大规模Kinetics数据集和双流设置的帮助下,I3D在基准数据集上取得了非常有竞争力的性能。由于3D CNN尝试沿着输入通道学习局部相关性,STCNet将其STC块插入到3D ResNet中,以在整个网络层中捕获空间通道和时间通道的相关信息。Slowfast涉及慢路径来捕获空间语义,快速路径来以细粒度的时间分辨率捕获运动。尽管基于3D CNN的方法已经达到了最先进的性能,但它们仍然面临着巨大的计算压力,使其难以在现实世界的应用中部署。

为了处理3D CNN的高计算量,提出了几种方法来在精度和速度之间找到平衡。Tran等人和Xie等人讨论了几种时空卷积的形式,包括在早期层使用3D卷积和在更深层使用2D卷积(底层重)或颠倒组合(顶层重)。P3D和R(2+1)D尝试通过将其分解为2D空间卷积和1D时间卷积来减少3D卷积的成本。TSM进一步引入了沿时间维度移动部分通道的时间卷积。我们提出的CSTM分支在学习时空特征方面与这些方法类似,但我们采用通道级1D卷积来捕获不同通道的不同时间关系。虽然这些方法在平衡3D CNN的高计算量方面取得了成功,但它们不可避免地需要双流网络的帮助,其中包括光流流以获得最佳性能。运动信息是视频识别与图像识别任务之间的关键差异。然而,使用TV-L1方法计算光流在时间和空间上都很昂贵。最近,已经提出了许多方法来使用CNN估计光流或探索光流的替代方法。TSN框架涉及两帧之间的RGB差异来表示视频中的运动。赵等人使用成本体积处理来建模显著运动。光流引导特征(OFF)包含一组操作符,包括Sobel和逐元素减法用于OFF生成。MFNet采用了五个固定的运动滤波器作为运动块,以找到两个相邻时间步之间的特征级时间特征。我们提出的CMM分支也旨在找到更好但更轻量级的替代运动表示。主要区别在于我们学习不同的运动特征,为每两个相邻的时间步长的不同通道。

3. Approach

在本节中,我们将介绍我们方法的技术细节。首先,我们将描述提出的CSTM和CMM,展示如何分别进行通道级时空融合和提取特征级别的运动信息。随后,我们将展示这两个模块的组合,将它们组装成一个构建模块,可以插入到现有的ResNet架构中,形成我们的STM网络。

在这里插入图片描述

图2. 通道级时空模块和通道级运动模块的架构。特征图显示为其张量的形状。“ ⊖ \ominus ”表示逐元素减法。

3.1. Channel-wise SpatioTemporal Module

CSTM旨在进行高效的空间和时间建模。通过引入非常有限的额外计算成本,CSTM提取丰富的时空特征,可以显著提升与时间相关的动作识别性能。如图2(a)所示,给定一个输入特征图 F ∈ R N × T × C × H × W \mathbf{F}\in\mathbb{R}^{N\times T\times C\times H\times W} FRN×T×C×H×W,我们首先将F重新塑形为: F → F ∗ ∈ R N H W × C × T F\to F^{* }\in \mathbb{R} ^{NHW\times C\times T} FFRNHW×C×T,然后在 T T T维上应用通道级1D卷积来融合时间信息。采用通道级卷积而不是普通卷积有两个主要优势。首先,对于特征图 F ∗ \mathbf{F}^{*} F,不同通道的语义信息通常是不同的。我们认为不同通道的时间信息的组合应该是不同的。因此,采用通道级卷积来为每个通道学习独立的卷积核。其次,与普通卷积相比,计算成本可以减少一个因子 G G G,其中 G G G是组数。在我们的设置中, G G G等于输入通道的数量。形式上,通道级时间融合操作可以被表述为:
在这里插入图片描述
其中 K i c \mathbf{K}_i^c Kic是属于通道 c c c的时间组合核权重, i i i是时间核的索引, F c , t + i ∗ \mathbf{F}_{c,t+i}^* Fc,t+i是输入特征序列, G c , t \mathbf{G}_{c,t} Gc,t是通道级时间融合特征的更新版本。这里时间核的大小设置为3,因此 i ∈ [ − 1 , 1 ] i\in [-1, 1] i[1,1]。接下来,我们将G重塑为原始输入形状(即 [ N , T , C , H , W ] [N,T,C,H,W] [N,T,C,H,W]),并通过2D卷积来建模局部空间信息,其卷积核大小为3x3。

我们可视化了CSTM的输出特征图,以帮助理解这个模块,如图1所示。将第二行的特征与第三行的特征进行对比,我们可以发现CSTM已经学习到了更加关注动作主要部分的时空特征,比如第一列中的手部,而背景特征较弱。

3.2. Channel-wise Motion Module

正如在[29, 2]中发现的那样,除了3D CNN直接从RGB流中学习的时空特征外,通过包含光流运动流,性能仍然可以大大提高。因此,除了CSTM,我们提出了一个轻量级的通道级运动模块(CMM),用于提取相邻帧之间的特征级别运动模式。请注意,我们的目标是找到一种能够以高效方式识别动作的运动表示,而不是两个帧之间的精确运动信息(光流)。因此,我们将只使用RGB帧,不涉及任何预计算的光流。

给定输入特征图 F ∈ R N × T × C × H × W \mathbf{F}\in\mathbb{R}^{N\times T\times C\times H\times W} FRN×T×C×H×W,我们首先利用一个1x1卷积层将空间通道减少 r r r倍,以减轻计算成本,在我们的实验中设置为16。然后,我们从每两个连续的特征图生成特征级别的运动信息。以 F t \mathbf{F}_t Ft F t + 1 \mathbf{F}_{t+1} Ft+1为例,我们首先对 F t + 1 F_{t+1} Ft+1应用2D通道级卷积,然后从 F t \mathbf{F}_t Ft中减去以获得近似的运动表示 H t \mathbf{H}_t Ht
在这里插入图片描述

其中 c , t , h , w c,t,h,w c,t,h,w分别表示特征图的空间、时间通道和两个空间维度, K i , j c \mathbf{K}_{i,j}^c Ki,jc表示第 c c c个运动滤波器,下标 i , j i,j i,j表示核的空间索引。这里核大小设置为 3 × 3 3\times3 3×3,因此 i , j ∈ [ − 1 , 1 ] i,j\in[-1,1] i,j[1,1]

如图2(b)所示,我们对每两个相邻的特征图在时间维度上执行提出的CMM,即 F t \mathbf{F}_t Ft F t + 1 \mathbf{F}_{t+1} Ft+1 F t + 1 \mathbf{F}_{t+1} Ft+1 F t + 2 \mathbf{F}_{t+2} Ft+2等。因此,CMM将产生 T − 1 T-1 T1个运动表示。为了保持时间尺寸与输入特征图兼容,我们简单地使用零来表示最后一个时间步的运动信息,然后在时间维度上将它们串联在一起。最后,另一个1x1的2D卷积层被应用来将通道数恢复为 C C C

我们发现,即使设计非常简单,提出的CMM也可以提升整个模型的性能,这证明了通过CMM获取的运动特征是对CSTM中的时空特征的补充。我们在图1中可视化了CMM学习到的运动特征。从中我们可以看到,与CSTM的输出相比,CMM能够捕捉到具有明显边缘的运动特征,就像光流一样。

3.3. STM Network

在这里插入图片描述

图3. STM网络的整体架构。首先将输入视频均匀分成N个段,然后从每个段中采样一个帧。我们采用2D ResNet-50作为骨干网络,并用STM块替换所有残差块。除了最后的得分融合阶段外,不执行任何时间维度的降维。

为了保持框架的有效性和轻量级,我们将提出的CSTM和CMM组合在一起,构建一个STM块,可以同时编码时空和运动特征,并且可以轻松插入到现有的ResNet架构中。STM块的整体设计如图3的下半部分所示。在这个STM块中,第一个1x1的2D卷积层负责减少通道维度。然后,压缩后的特征图分别通过CSTM和CMM来提取时空和运动特征。通常有两种不同类型信息的聚合方式:求和和串联。我们通过实验发现,求和比串联更有效地融合这两个模块。因此,在CSTM和CMM之后应用了一个逐元素求和操作来聚合信息。然后,另一个1x1的2D卷积层被应用来恢复通道维度。类似于普通的残差块,我们还从输入到输出添加了一个无参数的恒等快捷连接。

由于提出的STM块与普通的残差块兼容,我们可以简单地将其插入到任何现有的ResNet架构中,以形成我们的STM网络,而且额外的计算成本非常有限。我们在图3的上半部分说明了STM网络的整体架构。STM网络是一个2D卷积网络,避免了任何3D卷积和预先计算光流。除非另有说明,否则我们选择2D ResNet-50作为我们的骨干网络,因为它在准确性和速度之间有一个平衡。我们用提出的STM块替换了所有的残差块。

4. Experiments

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

5. Conclusion

在本文中,我们提出了一种简单而有效的网络,通过在统一的2D CNN网络中将时空和运动特征编码在一起来进行动作识别。我们将ResNet架构中的原始残差块替换为STM块,以构建STM网络。一个STM块包含一个CSTM来建模通道级时空特征,以及一个CMM来共同建模通道级运动表示。在没有任何3D卷积和预计算光流的情况下,我们的STM在时空相关数据集和场景相关数据集上取得了最先进的结果,与TSN基线相比,仅增加了1.2%的FLOPs。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1670548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vin查询接口如何对接

vin查询接口是VIN车辆识别代码查询接口的简称,也叫vin查询车辆信息接口、车架号查询接口,指的是输入车辆VIN识别码(车架号),返回车辆相关信息,如车辆品牌、车型、油耗、车身形式、排量等。那么vin查询接口如…

数据治理平台有哪些核心功能?十款热门数据治理平台盘点

数据治理是管理企业数据资产全过程中的决策、监督和执行控制,旨在引导和影响组织内所有其他数据管理活动,核心目标是确保数据按照既定的管理制度和行业最佳实践得到妥善管理。不论企业是否设有正式的数据治理职位,那些确立了正式数据治理流程…

高德地图:标点-连线-自定义图标-文字提示的使用

目录 下面是使用高德地图进行标点连线的使用: 1.定义一个装载地图的容器,并定义进行标点和连线的数据 2.在组件的mounted钩子函数中初始化地图,给地图添加点击事件监听器。 3.使用高德地图的Polyline类来绘制连接线。 这是上面代码的效果…

人工智能生成图像的兴起:区分事实与虚构

人工智能生成图像的兴起:区分事实与虚构 概述 在人工智能 (AI) 已融入我们日常生活的时代,人工智能生成图像的快速发展引发了人们对数字内容真实性的担忧。最近,人工智能生成的图像甚至欺骗了最敏锐的眼睛,这引发了人们对批判性…

Shell生成支持x264的ffmpeg安卓全平台so

安卓 FFmpeg系列 第一章 Ubuntu生成ffmpeg安卓全平台so 第二章 Windows生成ffmpeg安卓全平台so 第三章 生成支持x264的ffmpeg安卓全平台so(本章) 文章目录 安卓 FFmpeg系列前言一、实现步骤1、下载x264源码2、交叉编译生成.a3、加入x264配置4、编译ffmp…

数字水印 | Python 基于离散小波变换 DWT 的图像水印嵌入(下)

🍍原文: 基于 dwt (离散小波变换) 实现彩色图像水印嵌入部分_2.0 🍍写在前面: 本文在原文的基础上进行了代码补全。 正文 修改了尺寸变换导致的图像失真问题,同时简化了部分代码。 效果确实很好😉 1 通道…

15W 3KVAC隔离 宽电压输入 AC/DC 电源模块——TP15AL系列

TP15AL系列产品是一款小体积裸板式电源,该系列电源输出功率为15W,具有低漏电流小于0.35mA,隔离耐压高达3KV等特点。产品安全可靠,EMC性能好,该系列产品广泛应用于智能家居、充电桩、安防、物联、工控等行业中,如应用于电磁兼容比较恶劣的环境…

Kerberos修改协议为TCP

部署前 修改模板/home/cloud-setup/deploy-forklift/mids/forklift-basic/kde/v1.0/impl/plays/roles/krb5-client/templates/krb5.conf.j2 添加如下参数 udp_preference_limit 1 部署后 界面修改 添加如下参数,并勾选下发配置按钮,重启刷新服务

Linux-04

账号管理 添加账号 useradd 选项 用户名 useradd -m dai删除帐号 userdel 选项 用户名 userdel -r dai修改帐号 usermod 选项 用户名usermod -d /home/user dai (修改位置)切换帐号 su username su dai退出账号 exit $表示普通用户 #表示超级用户&#…

源代码防泄密的关键点:烧录管控

源代码作为企业技术核心的一部分,其保密性和安全性显得尤为重要。然而,随着开源文化的发展,以及开发过程中不可避免的与外界交流,源代码防泄密工作面临着前所未有的挑战。特别是在烧录过程中,由于涉及到硬件层面的操作…

PyWebIO,用 Python 写网站

在Python的世界里,PyWebIO是一个简单而强大的库,它能让你的Python脚本快速拥有一个交互式的网页界面。想象一下,你不需要懂得前端开发,就能创建出用户友好的网页应用,这是多么酷的一件事!今天,我…

排序-快速排序(Quick Sort)

快排的简介 快速排序(Quick Sort)是一种高效的排序算法,采用分治法的策略,其基本思想是选择一个基准元素,通过一趟排序将待排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据要…

aop获取方法运行时间

Slf4j Component Aspect//aop类 public class TimeAspect {/*Around 环绕通知 用ProceedingJoinPoint Before 前置通知 用JoinPoint(是ProceedingJoinPoint的父类型),用它可以获得方法执行的相关信息,如目标类名,方法…

我是如何免费抵御一个多月的 DDos/CC 攻击的?

今天明月给大家详细分享一下我的博客是如何免费抵御了长达一个多月的 DDos/CC 攻击的,在【现在 DDos/CC 攻击门槛低的可怕!】一文里明月就说过现在 DDos/CC 攻击几乎是没有门槛的,任何一个老鼠屎在群里看到你的博客都可以轻松便捷的发动一次 …

ADOP带你了解:800G OSFP光收发器:演进发布

引言 随着云计算、大数据和人工智能等技术的不断进步,对数据中心的带宽和处理能力要求也在不断提高。在这样的背景下,800G OSFP光收发器的问世,为我们提供了更高速度和更高效率的数据传输解决方案。 800G OSFP光收发器演进路线 路线 1&…

CSS3私有前缀+新增盒模型相关属性+新增背景属性(如果想知道CSS3私有前缀、新增盒模型相关属性的知识点,那么只看这一篇就足够了!)

前言:CSS3 是CSS2 的升级版本,它在CSS2 的基础上,新增了很多强大的新功能,从而解决一些实际面临的问题。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下本篇文章的…

vue3 自定义调控参数-简易生成器

vue3 自定义调控参数-简易生成器 文章目录 封装生成器控件如下父组件使用如下: 此功能好像是某厂的在线视频笔试题,当时写完也没有结果。。。我觉得此 demo 适用场景:自定义动态表单时需要定制字段、用户自定义信息等 封装生成器控件如下 /…

阿里云短信提示被攻击怎么解决!!

你是否收到过这样的短信,【阿里云】尊敬的用户:您的IP: 实例名称: 受到攻击流量已超过云盾DDoS基础防护的带宽峰值,服务器的所有访问已被屏蔽,如果35分钟后攻击停止将自动解除否则会延期解除。详情请登录云盾控制台DDo…

SPSS之主成分分析

SPSS中主成分分析功能在【分析】--【降维】--【因子分析】中完成(在SPSS软件中,主成分分析与因子分析均在【因子分析】模块中完成)。 求解主成分通常从分析原始变量的协方差矩阵或相关矩阵着手。 (1)当变量取值的度量…

MySQL中的子查询

子查询,在一个查询语句中又出现了查询语句 子查询可以出现在from和where后面 from 表子查询(结果一般为多行多列)把查询结果继续当一张表对待 where 标量子查询(结果集只有一行一列)查询身高最高的学生,查询到一个最高身高 列子查询(结果集只有一行多列) 对上表进行如下操作 …