I3D模型_2017_CVPR

I3D模型在视频动作识别中的应用
本文探讨了I3D模型在视频动作识别领域的显著效果,特别是在Kinetics数据集上的预训练如何提升了模型在其他数据集(如HMDB-51, UCF-101)的表现。I3D模型基于2D卷积网络,通过增加时间维度来捕捉视频中的时序信息,展现出优于传统方法的性能。

作者的观点:

若在足够大的视频动作识别数据集上训练(Kinetics),是否能提升模型在其他数据集(HMDB-51,UCF-101)上的表现呢?

 

论文核心内容:

  1. 对于不同模型,这种方法(见观点)提升性能程度相差很大,于是提出 Two-Stream Inflated 3D ConvNet ( I3D ) 模型
  2. 实验分析,现有最好的动作识别方法在数据集Kinetics上的表现,其次是在对Kinetics进行预训练之后,对较小的基准数据集的性能有多大提高。
  3. I3D模型之所以会有如此好的表现,是因为该模型具有很高的时间分辨率。即输入的训练帧数多。(它们以每秒25帧的速度训练64帧视频片段,并在测试时处理所有视频帧,这使得它们可以捕获细粒度的时间动作结构。)

 

 

论文主要贡献:

  1. 提出一种新模型I3D,基于2D卷积网络的增强版。
  2. 在视频动作识别数据集上训练(Kinetics),获得的网络可以提升模型在其他数据集(HMDB-51,UCF-101)上的表现。

 

 

展望/待解决问题:

  1. 对于其他视频任务(例如语义视频分割,视频对象检测或光流计算)使用Kinetics预训练是否有益仍有待观察。【研究点!!!】
  2. 作为未来的工作,我们计划使用Kinetics而不是miniKinetics重复所有实验,使用和不使用ImageNet预训练,并探索inflat其他的2D ConvNets

 

 

1.Introduction

I3D:以最新的图片分类模型为基础结构,将kernels膨胀(inflate)结合到3D Conv。基于2D卷积网络的增强版。将非常深图片的卷积分类的卷积核与池化核扩展为3D,使得可以从视频中学习无缝的时空特征提取器,同时利用成功的ImageNet架构设计甚至其参数。

 

 

2 Action Classification Architectures

2.2 The Old II: 3D ConvNets

在这篇文章中,作者提出一种C3D的变体,它包括8个卷积层,5个池化层和两个全连接层。输入是从视频中截取的大小为112*112共16帧的片段。使用批正则化(batch normalization)的方法。不同于C3D,该方法在第一个池化层使用的temporal strde为2而不是1,这种改进减少内存占用并允许更大批量。

 

2.3. The Old III: Two-Stream Networks

       I3D模型也参考了Two-Stream,还结合了 Inception-V1,网络的输入为相隔10帧的5个连续RGB帧,以及相应的光流片段。在Inception-V1的最后一个平均合并层(5×7×7特征网格,对应于时间,x和y维度)之前的空间和运动特征通过具有512个输出通道的3×3×3 3D卷积层, 然后是3×3×3 3D最大池层并通过最终的完全连接层。

 

 

2.4 The New : Two-Stream Inflated 3D ConvNet

3D ConvNets能直接从RGB流中学习时域信息模式,当再加上输入光流,这个性能将进一步提升。

 

Inflating 2D ConvNets into 3D

简单的将成功的2D分类器扩展为3D卷积。卷积层(N*N)和池化层(N*N)都增加一个时间维度(N*N*N)。

 

Bootstrapping 3D filters from 2D Filters

3D卷积核的参数可以通过ImageNet模型学习,通过将ImageNet上的2D图片重复叠加成一个连续的视频。

 

 

Pacing receptive field growth in space, time and network depth

这个boring video fixed-point使得调整网络变得相当灵活,可以根据时间维度膨胀池化层操作,也可以设置卷积层或池化层的temporal stride。

 

Two 3D Streams

虽然I3D网络能直接从RGB输入中学习运动特征,但它始终只是执行前馈计算,而光流算法在某种意义上是周期性的计算。所以实验设计,分别在RGB和光流两种输入上训练I3D,最后作平均再预测。

 

 

2.5 Implementation Details

除了C3D模型之外,所有模型都使用ImageNet预训练Inception-V1的到基础网络。除了最后一层卷积层外(需计算出全连接层得到分类结果),在模型中的其它卷积层后,紧跟着batch normalization(批处理)和 ReLU激活函数。

 

3.The Kinetics Human Action Video Dateset

大致介绍Kinetics数据集,本文并没有使用完整的Kinetics进行训练。而是使用其中数据集的小一部分(miniKinetics)。

 

 

 

4.Experimental Comparison of Architectures

实验比较第二部分中的几种结构在不同数据集下的表现。

 

实验得到几个很有价值的信息:

  1. 在ImageNet上进行模型预训练,同样会对3D ConvNets有帮助。(在别的视频处理应用中,能否用得上??)
  2. 实际探究Kinetics数据集发现,其中视频具有更多的摄像机运动,这可能Flow的工作更加困难。所以在miniKinetics上的Flow精度低于RGB精度。

从上图可看出,I3D模型比其他模型在对Flow输入处理时更有优势。(可能是I3D有longer temporal receptive 和更集成的时间特征提取机制)

 

  作者认为,RGB流具有更多的辨别力,相反却很难用自己的眼睛从Flow流(Kinetics数据集)中辨别视频中的动作。这也许是未来研究的一个方向——整合某种形式的运动稳定到这些架构中。

 

 

 

5. Experimental Evaluation of Features

  这部分主要内容是,研究Kenetics上训练的网络的泛化能力。

文中设计了两种方法:

(这两种方法的网络都在Kenetics上预训练)

  1. 通过固定网络的权重,使用网络模型处理UCF-101/HMDB-51数据集,得到结果①。接下来使用UCF-101/HMDB-51的训练集训练网络模型的multi-way soft-max 分类器,然后在测试集上验证。
  2. 用UCF-101/HMDB-51 微调网络,然后在测试集上评估性能。

 

以上模型中,除了3D-ConvNet之外,都是基于Inception-v1模块,而且在ImageNet上预训练。

Original:在当前数据上训练,再进行验证。

Full-FT:在miniKinetics上预训练,再在各自处理的数据集上微调。

 

在mini-Kenetics(固定)预训练后训练模型的最后几层也比直接训练UCF-101和HMDB-51的I3D模型具有更好的性能。

 

5.1 Comparison with the State-of-the-Art

在UCF-101和HMDB-51上,比较I3D与现有最好的模型的性能,

 

 

6.Discussion

本文证明在视频处理方面也能像图片处理一样,进行迁移学习。即在更大的数据集(Kenetics)上预训练,然后提高网络在其他数据集(UFC-101/HMDB-51)上识别性能。对于其他视频任务(例如语义视频分割,视频对象检测或光流计算)使用Kinetics预训练是否有益仍有待观察。【研究点!!!】

作为未来的工作,我们计划使用Kinetics而不是miniKinetics重复所有实验,使用和不使用ImageNet预训练,并探索膨胀其他状态的2D ConvNets

 

【论文笔记下载地址】

链接: https://pan.baidu.com/s/1sU4lr8mjCCh2llR263_YgQ

提取码: 64mq

 

<think>根据用户历史记录,已知用户已经克隆了仓库SRFBN_CVPR19,并且执行了`cdSRFBN_CVPR19`进入了该目录。现在用户想要切换到子目录`Set5SRFBN_CVPR19`,但由于该目录名称较长,用户可能担心输入错误,或者希望得到一些技巧。需要分析:1.当前目录结构:根据引用内容,项目SRFBN_CVPR19下应该包含多个文件和目录,其中可能包括一个名为`Set5SRFBN_CVPR19`的目录(或者是其他类似的目录,但用户明确指定了该名称)。2.用户已经进入了克隆后的项目根目录,即`SRFBN_CVPR19`目录下。因此,用户的目标是进入当前目录下的`Set5SRFBN_CVPR19`子目录。操作步骤:1.首先,确认当前在项目根目录(即`SRFBN_CVPR19`目录)下。可以通过`pwd`命令查看当前路径。2.使用`cd`命令进入子目录`Set5SRFBN_CVPR19`。由于目录名称较长且可能大小写敏感(通常Linux系统区分大小写),建议用户准确输入目录名。同时,考虑到用户可能不确定目录的确切名称,可以提供通配符方法或列出目录内容的方法。具体操作:###方法1:直接进入(如果知道确切名称)```bashcdSet5SRFBN_CVPR19```###方法2:使用通配符(如果目录名称唯一且前缀已知)```bashcdSet5*```###方法3:列出目录内容确认后再进入```bashls#查看当前目录下的所有文件和目录,找到名为Set5SRFBN_CVPR19的目录cdSet5SRFBN_CVPR19#然后进入```###注意事项:-如果目录名称包含空格(但根据引用中目录名似乎没有空格),则需使用引号:`cd"dirname"`-如果目录名大小写不一致,请注意准确输入。根据引用[1]中克隆后进入的是`SRFBN_CVPR19`目录,然后用户想进入的`Set5SRFBN_CVPR19`应该在该目录下。但需要说明的是,在官方仓库的默认结构中,我们并没有看到`Set5SRFBN_CVPR19`这个目录的明确提及(引用内容中没有列出项目内的目录结构),因此用户可能是自己创建了该目录,或者它是项目测试数据的一部分(比如常见的测试集Set5)。如果该目录不存在,用户需要确认是否创建过或下载过该目录。所以,在回答中也要提示用户:如果目录不存在,需要先确认目录是否存在。###完整回答步骤:1.确认当前已在项目根目录(`SRFBN_CVPR19`)。2.列出当前目录内容查看是否存在`Set5SRFBN_CVPR19`目录(使用`ls`)。3.若存在,使用`cd`命令进入。根据用户提供的信息,用户上一次已经进入了`SRFBN_CVPR19`目录,所以现在只需进入其子目录。生成相关问题:1.如何快速返回上一级目录?2.如何列出目录的详细内容?3.如果目录不存在,如何创建该目录?注意:使用中文回答,并正确引用。</think> ### 如何进入 `Set5SRFBN_CVPR19` 目录 根据您当前位于项目根目录的情况(通过 `cd SRFBN_CVPR19` 已进入克隆的仓库[^1]),以下是进入 `Set5SRFBN_CVPR19` 目录的完整步骤: #### 方法1:直接进入目录 ```bash cd Set5SRFBN_CVPR19 ``` #### 方法2:使用通配符(当不确定完整名称时) ```bash cd Set5* ``` #### 关键操作说明: 1. **确认当前路径** 执行前用 `pwd` 确认当前位置,确保已在项目根目录 `SRFBN_CVPR19` ```bash /home/user/SRFBN_CVPR19$ # 正确位置应显示此路径 ``` 2. **目录存在性检查** 若提示 `No such file or directory`: - 用 `ls` 查看所有目录 - 测试大小写差异:Linux 系统区分大小写,尝试 `cd set5*` 或 `cd Set5*` - 完整目录列表:`find . -type d -name "*Set5*"` 3. **路径补全技巧** 输入 `cd Set` 后按 `Tab` 键自动补全目录名 4. **跨目录进入**(若不在根目录) ```bash cd /完整路径/SRFBN_CVPR19/Set5SRFBN_CVPR19 ``` #### 注意事项: - `Set5SRFBN_CVPR19` 可能是测试数据集目录,在图像超分辨率项目中通常存储基准测试集[^4] - 操作前建议先激活虚拟环境(如引用[4]的 `conda activate torch14`) - 需确保已正确安装依赖项(Pytorch/OpenCV等)[^5]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值