毕业设计-基于slowFast的视频内容分析系统设计与实现

1、摘要

本文提出了用于视频识别的SlowFast网络。我们的模型包括:
(1)一条slow pathway,以低帧速率运行,以捕获空间语义;
(2)一条fast pathway,以高帧速率运行,以精细的时间分辨率捕获运动。
fast pathway可以通过减少通道容量而变得非常轻量,但可以学习有用的时间信息用于视频识别。模型在视频动作分类和检测方面都取得了较好的性能,我们的slowfast概念针对性能有很大的改进。并在Kinetics,Charades和AVA等基准上取得了最好的效果。

2、介绍
在识别图像I(x, y)时,习惯对称地处理两个空间维度x和y。自然图像的统计数据证明了这些合理性,即图像各向同性(所有方向都是等可能的)。但是视频中所有时空方向的可能性并不相同,慢动作比快动作更可能发生(事实上,我们所看到的世界大部分在某一时刻都处于禁止状态),我们可以分解网络结构来分别处理空间信息和时间事件。

空间范畴的语义演化缓慢,比如挥手不会改变“手”的类别,一个人从步行转为跑步,也总是处于“人”的类别。因此,对分类语义(以及他们的颜色、纹理、光照等)的识别可以相对缓慢地刷新。但对于正在执行的动作可以比其主体身份更快地发展,例如拍手、挥手、摇晃、步走或跳跃。可以期望使用快速刷新帧(高时间分辨率)来有效地模拟可能快速变化的运动。

基于上述推论,提出了一个视频识别的双路径slowfast模型。根据上述描述,slow路径显然是为了捕获空间语义信息,并且顾名思义,该路径以较低的帧速度和较慢的刷新速度运行。fast路径负责捕获快速变化的运动,以快速刷新速度和高时间分辨率运行。尽管这条路径具有很高的时间速率,但它非常轻,约占总计算量的20%。这是由于该路径有较少的通道和较弱的能力来处理空间信息,因为空间信息可以由slow路径提供。这两条path是由横向连接融合。

fast pathway由于其轻量性,不需要时间池化操作(因为它可以在所有中间层的高帧速率下运行,并保持时间准确性)。slow pathway由于时间速率较慢,更加关注空间语义。通过以不同的时间速率处理原始视频,这两种途径在视频建模方面拥有自己的专业知识(fast掌握时间信息,slow掌握空间信息)。

另外,还有一种著名的视频识别架构即two-stream模型,它也是双流设计,但它没有探索不同时间速度的潜力,而这是我们方法中的一个关键概念。此外,two-stream方法对两个流采用相同的主干结构,而我们的快速路径更轻。我们的方法不计算光流,因此,我们的模型是从原始数据端到端的学习的。在实验中,我们观察到slowfast更有效。我们对kinetics行为分类的综合消融实验证明了slowfast的效果。重要的是,slowfast 在四个数据集(kinetics400,kinetics600,AVA,Charades)上都实现了最高的水准。

我们的方法部分受到了灵长类视觉系统中视网膜神经节细胞的生物学研究的启发,尽管不可否认这个类比是粗糙和不成熟的。这些研究结果表明,在这些细胞中,大约80%是小细胞(p细胞),大约15-20%是巨细胞(m细胞)。m细胞的工作频率很高,对快速的时间变化有反应,但对空间细节或颜色不敏感。p细胞提供良好的空间细节和颜色,但较低的时间分辨率,对刺激反应缓慢。我们的框架在以下几个方面是类似的:(i)我们的模型有两个路径分别在低和高时间分辨率下工作;(ii)我们的Fast路径旨在捕捉快速变化的运动,但捕获的空间细节较少,类似m细胞;(iii)我们的Fast路径是轻量级的,类似于m细胞的小比例。我们希望这些关系将启发更多的计算机视觉模型用于视频识别。

我们评估了我们的方法在Kinetics-400,Kinetics-600,Charades,AVA数据集上。我们在Kinetcs动作分类方面的综合消融实验证明了SlowFast的有效性。
慢速网络在所有数据集上都取得了最新的进展,比文献中先前的系统有显著的进步。我们的综合能力

2、相关工作

时空滤波器:动作可以表示为时空对象,并通过时空中的定向滤波捕获,如HOG3D和cuboids。3D ConvNets将2D图像模型扩展到时空域,同样处理时空维度。也有相关的方法专注于长期滤波和利用时间跨距的池化,以及将卷积分解为单独的二维空间和一维时间滤波器。

除了时空过滤或其可分离版本,我们的工作追求通过使用两种不同的时间速度来更彻底地分离知识建模。

视频识别的光流:基于光流的手工时空特征是一个经典的研究分支。这些方法,包括流直方图、运动边界直方图和轨迹,在深度学习普及之前,这些方法已经在动作识别方面表现出了竞争性能。

在深度神经网络的背景下,双流方法利用光流作为另一种输入模态。该方法是文献中许多竞争结果的基础。然而,考虑到光流是一种手工设计的表示,它在方法上是不令人满意的,而且双流方法往往不是与流一起端到端学习的。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装SlowFast模型的顺序如下: 1. 安装Ubuntu操作系统(如果您已经安装了Ubuntu,则可以跳过此步骤)。 2. 安装CUDA和cuDNN。您可以通过以下链接下载适合您的CUDA和cuDNN版本: - CUDA:https://developer.nvidia.com/cuda-downloads - cuDNN:https://developer.nvidia.com/cudnn 安装过程中,请按照提示进行操作。 3. 安装Anaconda。您可以从以下链接下载适合您的Anaconda版本: - https://www.anaconda.com/products/individual 安装过程中,请按照提示进行操作。 4. 创建Anaconda环境。您可以使用以下命令创建一个名为"slowfast"的环境: ``` conda create --name slowfast python=3.7 ``` 5. 激活环境。您可以使用以下命令激活名为"slowfast"的环境: ``` conda activate slowfast ``` 6. 安装PyTorch和torchvision。您可以使用以下命令安装适合您的PyTorch和torchvision版本: ``` conda install pytorch torchvision cudatoolkit=11.1 -c pytorch -c nvidia ``` 7. 安装其他依赖项。您可以使用以下命令安装其他依赖项: ``` pip install opencv-python-headless av einops pyyaml yacs ``` 8. 克隆SlowFast代码库。您可以使用以下命令将SlowFast代码库克隆到本地: ``` git clone https://github.com/facebookresearch/SlowFast.git ``` 9. 安装SlowFast依赖项。进入SlowFast代码库的根目录,并使用以下命令安装SlowFast的其余依赖项: ``` pip install -r requirements.txt ``` 10. 编译运行库。进入SlowFast代码库的根目录,并使用以下命令编译并安装运行库: ``` python setup.py build develop ``` 安装完成后,您就可以使用SlowFast模型了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值