视频理解综述学习 p1 自用笔记
主要包括除开Video Transformer以外的主线文章

Deep Video:
Large-scale Video Classification with Convolutional Neural Networks - CVPR 2014
深度学习时代使用神经网络处理视频理解的早期工作,团队提出Sports 1M数据集,与两年后提出的YouTube 8M数据集,与Action Detection的AVA数据集,很大程度上推动视频理解领域发展。

四种基础架构的网络的实验结果并不好,甚至,“展示了”深度学习在视频理解任务上碰壁的一个情况,引发了更多的人来开拓这个任务。
此时的2D网络还没有很好的结构却外抽取与学习视频的“时序信息”,是深度学习在视频动作识别领域表现不好的主要原因。
Two-stream Net:
Two-Stream Convolutional Networksfor Action Recognition in Videos - 2014
前文介绍过 双流网络 可回看。
额外添加一套卷积神经网络去处理“光流信息”,用一套网络去专门处理时序信息——本文中的光流视频帧,去学习从光流图像到分类的映射,这里的光流就涵盖了很多物体移动的信息;另一套空间流网络去学习一个从RGB图像到分类的映射;两套网络参数互相独立。

也明显有很多工作可以跟进,视频中提出:
文章在网络的最后做的是Late Fusion,且是最基本的加权平均的操作,那么在网络前面做Early Fusion的效果会不会更好,在前面的layer中更合适的Early Fusion理论上会更好。
架构为AlexNet的基本版,显然可以置换更深的网络架构如Inception块,VGG等。
两种网络最后都是直接输出分类头,但这样的操作直觉上是不能够充分利用时序信息的,在当时LSTM应该是更好的选择。
此处的视频理解基本每个片段都在2-3s之间,是否可以拓展任务到更长时间的视频理解任务,要知道现实中的很多动作完成时间都可能是很长的。
Beyond Short Snippets:
Beyond Short Snippets: Deep Networks for Video Classification - 2015 CVPR

探索pooling操作对视频理解领域的影响,包括max,average,conv,late,slow,local pooling,并试验性使用LSTM对时序信息进行处理,最后使用了convpooling和LSTM的网络结构进行视频处理。且由于convpooling和LSTM的存在,该网络可以使用的视频帧数非常多,能够更好的适用于长视频。
老师对LSTM的理解:当每个LSTM的输入差异化较大的时候,LSTM会工作的更好,故在短视频上,每一帧的差异不大,可能本身也学不到什么很有效的知识。
Convolutional Two-Stream Network Fusion for Video Action Recognition - 2016 CVPR
关注于双流网络中 Fusion 操作的文章,改进Late fusion操作,即如何在双流网络中更好的做空间或者时序上的Early Fusion操作。
spatial fusion:当存在两个网络后,去保证时间流和空间流上的特征图,在同样的layer上产生的通道上能进行联系。如max fusion 在同样的位置上去两个值上的最大值,就叫max fusion;把两个特征图直接concat ,即concatenation fusion;或者conv fusion,先进行concat后进行一次卷积操作;sum fusion,在两个特征图对应的位置做加法;bilinear fusion 给定两个特征图后在对应位置的点上,做outer product,做完乘积之后再在所有维度上做一次加权平均。文章最后展示出conv fusion的表现最好。

temporal fusion:

Early Fusion可能是一种变相的对网络的约束,让模型在早期的训练中,就能互相学习与弥补。文章做了大量消融实验,彻底将网络构建走了一路,研究了一番,让后面的研究者少走很多弯路,带来很多见解;尝试使用了3Dconv 与 3Dpooling,增加了研究者使用3D结构CNN的信心,推动3D卷积的发展——I3D。
TSN 需要细品的论文
Temporal Segment Networks: Towards Good Practices for Deep Action Recognition - ECCV 2016
贡献卓越,通过简单的思路使得长视频能够更好的处理,且提出了很多好用与有效的技巧,囊括了 数据增强,模型初始化,光流的使用,网络的选择,过拟合的防止,本文对这些问题给出了很好的答案与思路,很多技巧沿用至今。可以细读。

模型的前向过程和思路非常简单:将长视频分成”几段“,先后通过双流网络,中间的双流网络共享参数,而对于同一个长视频的到的多段的N*2个logits,分别将空间流和时间流出来的两类logits做segmental consensus,最后再将时间和空间上的”共识“做一个late fusion输出预测。
这里后续在segmental consensus的时候,完全可以根据前端视频的是否具备语义的连贯性,来选择不一样的”共识“手段,例如LSTM去模拟逻辑的递进。—— UntrimmedNet_2017
核心是 temporal segment 朱老师使用该思想进行了一项对比学习的任务,即如上图三块,分别取一帧的两个个三帧序列可以构成正样本对。该思路可以运用到更多领域!
好用的技巧:
Cross Modality Pre-training:modality指的是“多模态”,是一种预训练模型的迁移操作,把ImageNet的参数初始化用到光流网络的初始化效果也是很好的,因为光流的数据集很少,从头训练一个好的参数不太容易。具体操作:ImageNet的输入为3个channel,光流的输入为很多可能有20个channel,这里作者把三个channel做平均后直接进行20个复制即可,和I3D中的Inflation操作很像。
Regularization Techniques —— Partial BN:BN虽然可以加速训练,但在小数据集上特别容易过拟合,作者就将第一层的BN层参数“打开”,后续的所有BN全部冻住。
Data Augmentation :
corner cropping :强制在边角地区进行裁剪。
scale-jittering:改变输入图片的长宽比,来实现数据增强。