mmaction2-时空动作检测slowfast笔记

2023-11-23 18:50

本文主要是介绍mmaction2-时空动作检测slowfast笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

slowfast 介绍

目前使用mmaction2开发时空动作识别的算法,检测识别出项目视频中人是否有“打架”、“扔垃圾”、“抽烟”,“打电话”等行为动作。故写了对视频识别网络slowfast的一些理解和笔记。

论文地址:链接: https://arxiv.org/pdf/1812.03982.pdf

一、SlowFast Networks for Video Recognition是怎么来的?
在图片处理中人们习惯将xy两个维度对称的对待(symmetrically),当然由于各向异性和移位不变性(shift-invariant)这是可以的,但是,如果对于视频(x,y,t)呢?因为光流孔径问题,我们不能将时间维度与空间维度对称的处理(而这正是时空卷积的视频方法所默认的《learning spatiotemporal features with 3D convolutional networks》),在我们一般所见的世界中的某一个特定时刻,世界一般是静止的,空间的语义信息一般是不变的,或者是及其缓慢的(slow)但是在对于一些动作,比如“拍手”,“跑步”,他们渴望的是更加迅速(fast)的帧数(更高的时间分辨率)去有效的建模快速运动的状态改变(ues fast refreshing frames(high temproal resolution) to effectively model the potentialy fast chaning motion).

基于这个想法,论文作者设计出了一种基于双通道的SlowFast model来做动作检测,用来提取视频信息

二、是怎么实现的?
在图片中,I(x,y)I(x,y)I(x,y) 有各向同性 (isotropic), 那么视频信号中是否有呢?

空域和时域显然是不具备向同性的。所以想法就是将空域和时域分开来处理,分别通过低采样和高采样来实现。
基于这种想法就构建了两条通路, 一条用来检测图片语义,使用低帧率。另一条用来检测移动,动作(motion)通过高帧率。
这两条路径我们根据处理时间速度(temporal speed)的差异,将它们命名为slow和fast路径。他们通过侧向连接融合。
SlowFast与我们传统的视频处理模型——双流结构(two-stream)最大的区别在于,双流结构没有探索不同的时间速度(different temporal speeds),并且对两个流而言,它们的采用完全相同的骨干网络(Bone net), 然而Fast路径更加快,更加轻量,因为没有计算光流等等(potical flow), 并且还是端到端(end-to-end from raw data)

*低采样:提取空间语义(spacial sematics)**高采样:提取时域上的运动*

在这里插入图片描述

Slow Pathway:
Slow pathway 可以使任何一种可以在一段剪辑过得视频上工作的时空卷积模型,重点在于 T,γ
γ是采样步长,即将原始视频按照该步长取样,一般取16, 即16帧取一张关键帧,
T是采样次数,即一共采样多少次。
所以慢通道的一次输入总帧数为 T × γ

Fast Pathway:

与之平行的Fast pathway拥有以下属性:

  1. 高帧率(High frams rate)
  2. 高时间分辨率特征(High temporal resolution)
  3. 较低的通道容量(low channel capacity)

第一点:
α 是 帧 采 样 倍 数 , β 是 通 道 倍 数
对于快通道来说,他的采样步长是γ/α ,采样次数是 α T
第二点:
除了输入是时间高分辨的输入,对于时间特征我们也是使用的高分辨。
从始至终在fast中,我们使用的都是不降低时间采样率的层(而不是时间池化或者时域跨度卷积)
第三点:
fast的卷积核个数是慢通道的 1/ β​ 倍,较小的卷积核降低了其在空间语义上的表达能力,但是却提高了它在时域上的表达能力,这正是Fast通道所要做的,同时它在论文中也提到了根据实验的进行,使用各种方式减少fast通道中空间语义的表达也能带来准确率的提升:

侧向链接

侧向链接主要是用来融合不同通路的时间与空间的语义信息的,他经常被用于上面所提到的基于双流和光流的结构。

它被应用于两条通路的每一层上,尤其是Resnets的pool1, res2, res3, and res4.这些链接紧随其后。

链接是单向的,从fast流融合进Slow流,测试过双流结构,但是效果差不多

最后,来自两条通路的信息池化成为特征向量之后通过同通过一个全连接分类层

在这里插入图片描述
上面是一个实例对象,T代表采样的次数,S代表空间的分辨率

stride 16 1^2 代表{时间步长,空间步长}

对于卷积核来说 {T×S^2, C} ,代表时空卷积核大小,以及数量

对于Slow通道来说,在较早的层中使用时间卷积会降低准确性。我们认为这是因为当对象快速移动且时间步长很大时,除非空间感受野足够大),否则非时间感受野内几乎没有相关性。

对于fast通道来说,每个块都有非退化的时间卷积。

对于侧向链接:
特征图的形状可以写作:
Slow pathway as{T,S2,C},
Fast pathway is{αT,S2,βC}.

他们采用了一下三种方案:

1、将所有的a帧打包到一帧中
2、从每个a帧中随机采样一帧
3、使用 2βC 输出通道和 stride=α 执行5×1^2 核的 3D 卷积

最后发现,是第三种方法最好。

三、实现了什么目标?

在动作识别以及检测都有很显著提升测试集:Kinetics, Charades, AVA

在这里插入图片描述

在AVA2.1和2.2上都进行了实验验证
1.结果在最佳的3d卷积上sf有3.0%的提升。

2.同时确定了三个有可能的改进方向或者说问题:
削弱Fast 路径的空间输入,半空间输入,更大的 β (FLOPS 几乎一致),灰度处理。
“时间差帧”,通过用前一帧减去当前帧来计算。
输入光流。

3.Fast通道的低通道容量
表现最好的 β 值是 1/6 和 1/8(默认值)。然而,令人惊讶的是,我们的 SlowFast 模型中从 β=1/32 到 1/4 的所有值都可以改进仅慢速模型。特别是,当 β=1/32 时,Fast 通路仅增加了 1.3 GFLOPs(相对 ∼5%),但导致了 1.6% 的改进

有趣的是,仅仅只有Fast路径的话只有51.7左右的acc,但是他却可以为Slow路径带来3.0%的提升,说明由Fast路径建模的底层表征在很大程度上是互补的。

在AVA的训练中,使用了kinetic的权重作为初始化,采用的学习率调整策略是warm-up(是一种学习率调整策略,简单来说就是在一开始使用较小的学习率,然后慢慢变大),但验证集损失变化趋于饱和的时候就10倍的减少学习率。

在这里插入图片描述

将SO基线与其 SlowFast 对应物进行了比较,每个类别的 AP 显示在图 3 中。SF从 19.0 到 24.2 大幅提高了 5.2mAP(相对 28%)。。在类别方面(图 3),我们的 SlowFast 模型在 60 个类别中的 57 个类别中有所改进,与它的仅慢速对应物。 “拍手”(+27.7AP)、“游泳”(+27.4 AP)、“跑步/慢跑”(+18.8 AP)、“跳舞”(+15.9 AP)和“吃”( +12.5 接入点)。我们还观察到“跳跃/跳跃”、“挥手”、“放下”、“投掷”、“命中”或“切入”的较大相对增加。这些是建模动力学至关重要的类别。 SlowFast 模型仅在“接听电话”(-0.1 AP)、“谎言/睡眠”(-0.2 AP)、“射击”(-0.4 AP) 3 个类别中较差,并且它们的减少相对于其他人的增加较小。

这篇关于mmaction2-时空动作检测slowfast笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420010

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit