Action Recognition-Two Stream CNN论文笔记

本文介绍Two-Stream Convolutional Networks在视频动作识别中的应用,通过空间流和时间流双路径处理,有效利用RGB图像和光流信息。采用多种策略避免过拟合,并实现multi-task learning以提升性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文主要针对论文:《Two-Stream Convolutional Networks for Action Recognition in Videos》记录自己的理解。
考虑到视频由空间和时间两个部分组成,空间部分更多表征Appearence信息,比如目标、场景等;而时间部分更多表征Motion信息,包括摄像机的运动或者目标物体的运动信息。所以该网络结构的设计考虑两个部分。
Twostream网络结构如下图所示:
(1) Spatial stream ConvNet 空间维度,用来处理RGB视频图像。
(2) Temporal stream ConvNet 时间维度,用来处理密集光流图像。
两路CNN分别对输入的视频(input video)进行分类,最后直接对两个网络的class score进行fusion(融合方法包括直接平均和在堆叠的softmax上直接训练一个SVM)
这里写图片描述
如上图所示,我们可以看到两路CNN结果基本相同,除去在temporal ConvNet 去掉第二个normalization(LRN局部响应归一化) 层,减少内存的损耗。
文章中的一些trick:
1、动作识别的数据集UCF101和HMDB51包含的视频太少,将会导致过拟合问题,因此文中考虑了以下几种策略:(1) 直接在HMDB51数据集上进行训练;(2) 先在UCF101数据集上做预训练,用训练好的模型做finetune;(3) 在HMDB51上增加了从UCF101数据集中挑选的78个classes,用重新构建的数据集来训练;(4) 在HMDB51和UCF101两个数据集上做multi-task learning;最终的做multi-task learning 的效果是最好的,如下图所示:

这里写图片描述

2、
个人感觉论文中比较核心的内容大概就是上面这些。关于用光流做为temporal网络的输入,这部分的内容可以详细看论文,此外,还有multi-task learning部分的trick。
总结:动作识别方向目前基于two-stream的工作还是很多的,是深度学习在该方向应用的一大主流方法。
实验结果:
这里写图片描述

<think>好的,用户想了解Two-in-One Stream的实现方式及应用场景,特别是在IT技术领域。首先,我需要明确Two-in-One Stream的概念。根据用户提供的引用[2],其中提到了双流架构(Two-Stream),用于视频动作识别。这可能就是用户所指的Two-in-One Stream,可能是名称上的不同翻译或变体。需要确认这个概念是否与双流假设相关,如引用中提到的腹侧流和背侧流。 接下来,实现方式方面,引用[2]提到空间流和时间流的解耦,空间流处理静态帧,时间流处理光流,然后通过后期融合结合。用户可能想知道具体的实现步骤,比如如何提取光流,如何设计两个网络,以及融合的方法。可能需要参考相关论文,比如Two-Stream Convolutional Networks for Action Recognition in Videos。 应用场景方面,视频动作识别是主要的应用,如监控、体育分析等。需要扩展可能的IT应用,比如视频内容分析、人机交互、自动驾驶中的行为预测等。 还需要注意用户提到的实现,可能需要给出技术细节,如网络结构、数据预处理、训练技巧。例如,空间网络可以用预训练的CNN,时间网络输入光流堆叠,融合方式可以是加权平均或更复杂的网络。 另外,用户可能对代码实现感兴趣,但问题中没有明确要求,可能需要询问是否需要示例代码,但根据问题描述,用户目前主要需要概念和实现方式的解释。最后,生成相关问题,引导用户深入探讨优化方法、与其他模型的对比等。</think># Two-in-One Stream双流架构实现及应用解析 ## 一、核心概念解析 Two-in-One Stream(双流架构)是视频理解领域的重要框架,其核心思想基于人类视觉系统的双流假设[^2]。该架构通过解耦空间信息和时间信息处理模块实现高效视频分析: - **空间流**:处理RGB视频帧,捕捉静态场景特征 - **时间流**:处理光流序列,提取运动模式特征 - **特征融合**:通过后期融合(late fusion)机制整合双流特征 $$ \text{最终预测} = \alpha \cdot \text{空间流输出} + \beta \cdot \text{时间流输出} $$ 其中$\alpha,\beta$为可学习权重参数 ## 二、技术实现路径 ### 2.1 输入预处理 ```python # 光流计算示例(使用OpenCV) def compute_optical_flow(prev_frame, next_frame): gray_prev = cv2.cvtColor(prev_frame, cv2.COLOR_BGR2GRAY) gray_next = cv2.cvtColor(next_frame, cv2.COLOR_BGR2GRAY) flow = cv2.calcOpticalFlowFarneback(gray_prev, gray_next, None, pyr_scale=0.5, levels=3, winsize=15, iterations=3, poly_n=5, poly_sigma=1.2, flags=0) return flow ``` ### 2.2 网络架构设计 | 模块 | 空间流 | 时间流 | |-------------|---------------------------|---------------------------| | 输入 | RGB
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值