当前位置: 首页 > news >正文

行为识别SlowFast

一、基本思想

  • 动作在变,环境不变
  • 如何获取动作信息、以及环境信息
  • 他们两个如何融合

        如下图,环境没变,但是这些人的动作或多或少的发生了改变。其中动作的信息比较重要,是这个任务的目的,但是环境信息就不重要吗?当然不是,我们需要获取环境的信息。

        获取环境的信息或许比较简单,对于一张静止的图像,可以提供一些环境的特征。对于视频,拿出其中一两帧,进行卷积计算,以拿到图像的信息。

        对于动作的信息,我们将视频分为几个序列(如,第5帧-第10帧,第10帧-第15帧),基于这个序列,提取以下这个人在做什么。对于序列进行卷积,利用的是3D卷积。

主要贡献:

  • 一个通用的行为识别框架(facebook),自己的项目轻松套用
  • 对比试验很丰富,网络结构设计及其预训练模型提供
  • 思想比较直接,高频与低频特征通吃,直接融合特征进行预测
  • 源码资源丰富,可直接当作模板使用

二、网络结构

2.1 网络主干       

以下就是核心的网络结构。

        观察下图,红色框圈出的就是环境提取,因为环境信息的提取,不需要很多图像,只需要几张典型的某些帧即可。由于只有很少的静止图像,后续的网络需要更复杂一点(卷积核小一点,特征图多一点),虽然这样计算量较大,但是提取了更好的特征。

        下面蓝色是提取动作信息,需要连续的序列,再进行这个连续序列的特征提取的时候,若做3D卷积,面对如此庞大的输入数据,速度会很慢,所以,3D卷积设计的要比较简单一些,让特征图少一些,窗口大小也小一点。可以看到有\alpha\beta(都是0.25或0.125)。保证环境提取和动作提取可以同时或时间相仿的完成,再进行融合。

        继续观察,特征融合的箭头都是由动作的部分指向环境的部分,即动作往环境中融合,论文中指出,无论是动作往环境中融合,还是环境往动作中融合,都没有关系,都是可以的。但是显然环境的特征信息和动作的特征信息大小并不一致(差了ɑ和β倍,论文中提供了三种方法融合,在后续的2.3解释)。可以看出融合了多次,用最后融合的特征进行预测,

即:

  1. 分别获取高频和低频的图像数据
  2. 分别进行特征提取
  3. 特征融合
  4. 预测

2.2 网络细节

        首先换取图像片段,这里是64*224^2(64帧,224^2是长宽都是224)。

        然后是data layer视频数据采样,利用不同的stride值,获取不同帧的数据(主要H和W必须相同)。可以看出,Slow pathway(环境)的stride是16,即每隔16帧获取一个静态图像,Fast pathway(动作)的stride是2,即每隔2帧获取一个静态图像,所以output sizes是Slow:4*224^2;Fast:32*224^2。

        data layer之后其实就是ResNet,进行特征提取。对于Slow(环境),3D卷积是1*7^2,64,第一个1就是时间维度,但是它只是1,数值很小,因为在环境提取的时候,时间信息并不重要。而在Fast(动作)是5*7^2,8这里时间维度是5,这里就能体现出时间信息了,stride是1,即每次取5帧,以提取动作信息。这是环境slow与动作fast最大的区别,而第二个区别就是输出特征图个数,slow是64,而fast是8,这原因在2.1中提到过。然后他们的stride是一样的1,2^2,步长为1,进行下采样。最终输出即就是Slow:4*112^2;Fast:32*112^2。

        接下来是池化层,过程类似。在下面是Resnet层,可以发现,前两次resnet的slow的时间维度是1,但是后面是3,貌似这里的环境slow看重了时间信息,论文作者没有过多的解释,作者只是发现或许在深层时,加上图片与图片之间的关系,可能会把特征做的更好,但是没有解释原因。fast一开始就加上时间信息。 

2.3 特征融合

对于                                slow:\left \{T,S^{2},C \right \}                fast:\left \{\alpha T,S^{2},\beta C \right \}

三种融合方案:

  1. Time-to-channel:将fast的数据进行reshape,改为\left \{ T,S^{2},\alpha \beta C \right \},是前俩维度一样,再进行融合,这也是最常见的方法。
  2. Time-strided sampling:将fast的输出进行采样,得到与之相同的帧数个数,即将fast改为\left \{ T,S^{2},\beta C \right \},从而进行融合。
  3. Time-strided convolution:做一个3D卷积,让stride=α,将fast改为\left \{ T,S^{2},\beta C \right \}

这三种方法,第三种好一点,因为多做了一次卷积,即多了一次特征提取,第二种会丢失信息,而第一种,在很多情况也会使用,但是进行reshape,不知道将特征安排为多少合适,而交给卷积,让网络怎么合适怎么来,论文中也是第三种。

三、效果分析


http://www.mrgr.cn/news/60238.html

相关文章:

  • 【spring cloud】深入探讨 集群,分布式,微服务
  • Java最全面试题->数据库/中间件->MongoDB面试题
  • CSS实现回到顶部且平滑过渡
  • Oracle SQL语句 某字段重复数据只取一条
  • web相关知识学习笔记
  • ⭐ Unity 序列帧播放脚本
  • 【MAE】掩码自回归编码器(论文复现)
  • Python小白学习教程从入门到入坑------第十七课 内置函数拆包(语法基础)
  • turtle海龟画图print
  • 轨迹规划 | 基于差速运动学的有模型PID算法(附ROS C++仿真)
  • 重磅!WebStorm 个人版免费开放:JetBrains 为个人开发者带来福音
  • 2024年北京海淀区中小学生信息学竞赛预选赛初复题目难度
  • Python忍者:如何悄无声息地获取Taobao商品详情?
  • 陈文自媒体:1年600万+,彻底改变命运!
  • 个人防护装备分割系统:全面扶持小白
  • 构建数据湖仓的开源技术栈有哪些
  • MacOS下载安装Logisim(图文教程)
  • 数据结构-拓扑排序笔记
  • 【RAG】RAG概述
  • 聚焦汽车智能化与电动化︱AUTO TECH 2025 华南展,以展带会,已全面启动,与您相约11月广州!
  • 跨境电商内部售卖系统:基于php的开源解决方案
  • iOS静态库(.a)及资源文件的生成与使用详解(OC版本)
  • conda激活环境失败
  • 趋势丨2024遍地开花的新能源大模型
  • 智能ai写作界黑马,4款神器集锦,你pick哪一款?
  • 无线测温产品在地铁项目中的应用