参考:https://zhuanlan.zhihu.com/p/36795554
本文仅供学习,如有侵权,请私聊
caffe源码
pytorch源码
1、Introduction
主要提出了两点:
- 使用单帧的图像,在很多情况下已经可以获得一个不错的初始分类结果了,而相邻帧间的很多信息都是冗余的。因此,ECO 中在一个时序邻域内仅使用单帧图像。
- 为了获得长时程的图像帧间的上下文关系,仅仅使用简单的分数融合(aggregation) 是不足够的。因此,ECO 中对较远帧之间采取对 feature map 进行 3D 卷积的方式进行 end-2-end 的融合。
2、主要工作
- 与TSN类似,我们从整个视频中抽取固定数量的帧来覆盖长期时间结构,以便理解视频。这样,采样帧跨越整个视频,与视频的长度无关。
- 与TSN不同的是,我们使用3D网络来学习帧间的关系,并在整个视频中跟踪它们。该网络经过端到端训练,以学习这种关系。
- 该网络直接提供视频级别的分数,不需要事后的特征聚合。
因此,即使在小型计算设备上,它也可以在线模式和实时运行
3、结构
ECO网络的基本结构如上图所示,S1-SN是从视频中采样得到的N个RGB 的 segment。
- 对于每个segment,采用共享的2D卷积子网络 来得到96 个 2828大小的 feature map,堆叠后得到一个 N282896 大小的特征volume。此处使用的是BN-Inception 网络中的第一部分(到 inception-3c 层前)。
- 对于得到的特征volume,采用一个3D子网络进行处理,直接输出对应动作类别数目的一维向量。此处采用了3D-Resnet18[6]中的部分层。
如上的两部分,就构建了这篇文章中构建的第一种网络结果 ECO-Lite。除了用 3D 卷积进行融合,还可以同时使用2D卷积,如下图所示,即为 ECO-Full 网络结构。此处多的一个 2D 网络分支采用的是 BN-Inception 网络中 inception-4a 到最后一个 pooling 层间的部分,最后再采用average-pooling得到video-level的表示,与3D net的结果 concat 后再得到最后的action分类结果。
4、在线视频理解
5、实验
在UCF101和HMDB51数据集上的表现,此处只使用RGB作为输入。
在不考虑I/O读取时间的前提下的速度/精度比较。VPS(videos per second)指每秒处理多少段视频。此实验基于单卡Tesla P100
不同采样帧下的精度性能对比。
可视化时间精度效果,在UCF101数据集上。
在线视频分类问题通常以 early action recognition 的形式来评估。如上图所示,横轴显示的是可以看到的视频的前百分之几,纵轴则是对应的精度。
6、总结
- 与TSN类似的视频帧采样
- 采用3D卷积做融合( two-stream 网络文章[7]中是用于 video clip 内的融合)
直观的motivation+简单有效的框架设计