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

视频理解开山之作 “双流网络”

1 论文核心信息

1.1核心问题

  • 任务:如何利用深度学习方法进行视频中的动作识别(Action Recognition)。
  • 挑战
    • 视频包含时空信息,既需要捕捉静态外观特征(Spatial Information),也需要建模运动信息(Temporal Information)。(空间以及时间)
    • 现有基于单帧输入的 CNN 模型在视频理解任务上的表现不如传统的手工特征(如 Dense Trajectories)。
  • 解决方案:提出双流卷积神经网络(Two-Stream ConvNets),分别建模静态和运动信息。

1.2 论文主要贡献 

  • 提出 Two-Stream ConvNet 架构:由空间流(Spatial Stream)时间流(Temporal Stream) 组成:

    • 空间流(Spatial Stream):基于单帧 RGB 图像进行分类。
    • 时间流(Temporal Stream):基于**多帧密集光流(Dense Optical Flow)**进行分类。
    • 两个流的 softmax 预测结果融合,提高识别性能。
  • 证明光流作为输入有助于学习时序信息:相比直接输入多帧 RGB 图像,基于光流的方法效果更好

  • 利用多任务学习(Multi-task Learning):在多个数据集上进行联合训练,提高泛化能力。

  • 在 UCF-101、HMDB-51 数据集上达到 SOTA:比之前 CNN 方法显著提升,并接近于基于手工特征的 SOTA 方法

2 深度技术细节

2.1 神经架构

(1) 输入数据

  • 输入视频(左侧):视频序列被送入两个不同的 CNN 流。

  • 空间流(Spatial Stream ConvNet)(上方绿色框):

    • 输入单帧 RGB 图像(single frame)。

    • 主要学习静态外观信息,如背景、物体形状等。

  • 时间流(Temporal Stream ConvNet)(下方紫色框):

    • 输入多帧光流(multi-frame optical flow)。

    • 主要学习运动信息,如物体的移动方向、速度等。

(2) CNN 结构

两个流的 CNN 结构基本相同:

  • conv1:7×7 卷积核,stride=2,norm,pooling 2×2
  • conv2:5×5 卷积核,stride=2,pooling 2×2
  • conv3, conv4, conv5:3×3 卷积核,stride=1,pooling 2×2
  • 全连接层(FC)
    • fc6:4096 维 + dropout(40%)
    • fc7:2048 维 + dropout(40%)
    • softmax 分类

(3) 结果融合

  • 两个 CNN 输出的 softmax 结果融合(右侧红色框)。

  • 融合方式

    • 平均融合(Averaging)

    • SVM 训练(支持向量机)

2.2 为什么使用光流? 

  • 光流(Optical Flow) 提供了显式的运动信息,使网络能够直接学习时序关系,而不需要 CNN 直接从 RGB 帧中推导运动。(de就是竖直和水平方向)
  • 试验表明,使用多帧 RGB 作为输入时,CNN 无法有效建模运动信息,而光流可以显著提升性能。

2.3   训练策略

  • 空间流 CNN 预训练于 ImageNet,然后迁移到 UCF-101 和 HMDB-51 进行微调。
  • 时间流 CNN 直接在视频数据集上训练,因没有类似 ImageNet 的大规模视频数据可供预训练。
  • 采用多任务学习(Multi-task Learning),在 UCF-101 和 HMDB-51 数据集上联合训练,以增强泛化能力。

3 优缺点分析(现在)

双流网络(Two-Stream Networks)是一种常见的深度学习架构,通常用于视频分析、动作识别等任务。它的基本思想是通过两个不同的网络流来处理不同类型的信息流。最典型的例子是视频分类任务中的两个流,一个处理静态图像信息(通常是视频的每一帧),另一个处理动态信息(通常是光流,描述了视频帧之间的运动)。下面是双流网络的优缺点分析:

优点

  1. 能够处理多模态信息

    双流网络能够同时处理不同类型的输入信息,例如静态图像流和动态光流流。通过结合这两种信息,可以更全面地理解视频内容,尤其在动作识别中,静态图像能够捕捉物体的外观信息,而动态流可以捕捉物体的运动信息。
  2. 增强表达能力

    每个流都专注于不同的特征提取任务,从而有助于模型提取更多的信息并增强分类的准确性。例如,光流流能够捕捉时间上的运动变化,静态图像流则可以捕捉空间上的细节。
  3. 提高鲁棒性

    由于网络通过不同流处理不同类型的信息,能够在某种信息缺失的情况下,仍然保持较强的鲁棒性。例如,如果一个流受到噪声影响,另一个流仍然能提供有用的信息。

缺点:

  1. 计算开销大

    • 双流网络需要两个独立的网络处理不同的流,这意味着需要更多的计算资源,尤其是在处理长视频或高分辨率图像时。两条流分别进行计算和特征提取,导致网络参数量和计算复杂度较高。

  2. 训练难度高

    • 双流网络需要同时训练两个流,这可能会增加训练过程的复杂性,并且两个流之间的学习过程可能不完全同步,导致训练过程不稳定或收敛速度较慢。

  3. 难以共享信息

    • 虽然两个流可以分别处理不同的信息,但它们并不总是能够很好地共享信息。这可能导致某些信息在流之间没有得到有效融合,降低模型的整体性能。

  4. 对数据质量要求高

    • 双流网络依赖于不同类型的数据(如图像和光流),如果数据不充分或质量不高,可能会导致信息缺失或冗余,影响最终的识别效果。


http://www.kler.cn/a/577508.html

相关文章:

  • 导入 Excel 规则批量修改或删除 Excel 表格内容
  • 解锁日常养生密码,拥抱健康生活
  • PyTorch 学习路线
  • AI建模工具三国杀:凡拓FunCity如何助力建筑生抢占智慧城市C位?
  • Yashan DB 实例
  • 55. 跳跃游戏(力扣)
  • 【大模型】Llama 3.2 大语言模型初探:模型权重下载
  • 一文读懂深度学习中的损失函数quantifying loss —— 作用、分类和示例代码
  • 一篇文章讲解清楚ARM9芯片启动流程
  • JAVASE(二)
  • 字符串中的数字之和
  • 「DataX」数据迁移-IDEA运行DataX方法总结
  • C++ string类(前)
  • AI数字人| Fay开源项目、UE5数字人、本地大模型
  • Visual Studio工具
  • Uniapp中图片预览,并且进行长按图片保存
  • 防火墙旁挂组网双机热备负载均衡
  • GStreamer —— 2.5、Windows下Qt加载GStreamer库后运行 - “教程5:GUI 工具包集成(gtk)“(附:完整源码)
  • Scala(Array,List,Set,Map,Tuple,字符串 使用的简单介绍)
  • 1. 树莓派上配置机器人环境(具身智能机器人套件)