现有方法回顾
对传统VL模型和较新的端到端模型做一些回顾。
纵览:视频理解算法经过了手工特征-> CNN -> Two stream ->3D卷积 ->Transformer的一步步演进,不断使模型具有更强的表征能力
- 手工特征 -> CNN(Large-scale Video Classification with Convolutional Neural Networks)
1.手工特征 -> CNN(Large-scale Video Classification with Convolutional Neural Networks)
2014年,来自Google Research的工作,可以说是最早的使用深度学习应用于视频领域的论文之一。本文尝试了各种将图片CNN迁移到视频的融合策略,同时加入多分辨率输入。
在当时普遍接受的UCF101数据集达到65.4%的准确率,该文章对于CNN图片粒度->视频粒度的融合方式做了很多尝试,为今后的工作进行了铺垫。
- two stream双流网络
(1)2015年,two stream(Two-Stream Convolutional Networks for Action Recognition in Videos)首次为视频理解任务引入了时序信息的概念,通过引入光流进入temporal网络使模型可以关注到时序信息,但是由于提光流特征计算量过大,所以也造成该网络速度较慢的缺陷。在UCF101数据集上达到了87%的准确率
(2)Beyond Short Snippets: Deep Networks for Video Classification,尝试了多种多帧帧见融合策略如convPooling、latePooling、SlowPooling、LocalPooling等方法以及使用LSTM做时序的特征融合并且在长视频方向进行了探索,在UCF101上达到88.6%
(3)Convolutional Two-Stream Network Fusion for Video Action Recognition探索了如何在RGB和光流两个特征做early fusion的特征融合,包括空间上spatial fusion的融合,时间上tmporal fusion的融合,相比于以前在最后的late fusion有明显提升。同时由于将backbone替换成vgg也有一定的提升,最后在UFC101上达到92.5%的准确率。
(4)TSN(Temporal Segment Networks: Towards Good Practices for Deep Action Recognition),大名鼎鼎的TSN,提出了很多好用的训练技巧,解决很多当时棘手的问题且并被后续论文广为引用,比如使用imageNet的预训练模型简单的修改使其成为一个较好的光流的预训练模型(该思想也被后续的I3D等文章使用,用来得到一个较好的3D卷积预训练模型),提出了partial BN来缓解公开数据集数据太少,BN训练不充分的问题。以及提出了一些数据增强的技巧,如:corner cropping 、scale-jittering通过改变crop的方式,以及输出图像长宽比等技巧,提升模型泛化性。虽然没有很华丽的方法,但是很实用。在UCF101上达到94.2%的准确率。
- 3D卷积网络
(1)由于抽取光流是个太过耗时的过程,因此大家都在探索如何替换掉该分支。C3D:Learning Spatiotemporal Features with 3D Convolutional Networks开创了该领域的先河,尝试使用3D卷积代替光流特征。本文的3D卷积简单的说就是将原来3*3的卷积,扩张成为3*3*3的3D卷积。
在UCF101上达到了90%的准确率,虽然本文在UCF101并没有很亮眼的表现,但是开创了3D卷积的先河。
(2)I3D:Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset,由于C3D并没有亮眼的实验效果,因此该文章作者认为,有个好的3D卷积预训练模型是十分重要的。因此移植了ImageNet上预训练好的InceptionNet,保持其拓扑结构不变的情况下将其膨胀为3D卷积。同时也证明了通过ImageNet预训练2D网络膨胀至3D网络的可行性,为后续文章提供了思路。最终在UCF101上达到了98%的准确率,Kinetics-400数据集达到72.1%的准确率
同时,由于UCF101数据集已经达到了很高的准确,因而人们慢慢将注意力转移至了Kinetics数据集
(3)SlowFast Networks for Video Recognition参考人类视觉对频率高低的内容有不同的感官细胞,本文提出了自己的网络结构,分快慢两个网络分支。慢分支用大网络大输入低输入帧数,快分支用小网络小输入高输入帧数。在Kinetics-400可以达到79.8%的准确率
- nonLocal 自注意力
2019年在3D卷积如火如荼的过程中,self-attention的思路也逐渐出现在人们的视野中。如 Non-local Neural Networks这篇文章,提出了一种即插即用的NonLocal自注意力机制模块,可以很明显的看出,文章中的网络结构图,其实就是Transformer中基础的KQV自注意力机制,在空间和时间上进行了自注意力机制的提升。在给I3D加入NonLocal模块后在Kinetics-400可以达到77.7%的准确率
2. Transformer自注意力
至此视频理解算法演进到了Transformer的自监督网络架构,Transformer有两个优势,(1)更强的网络表征能力,(2)更容易设计自监督的训练任务,从而可以更有效的利用无标注数据,同时也更加注重多模态的内容理解。
1.CV特征提取方式:
- OD-based Region Features
早期VLP模型一般均使用该特征提取方式,即:检测器如Faster-RCNN提取ROI视觉特征,再将其特征与NLP部分融合。其中融合方式有Co-attention和Merge attention两种
co-attention有:ViLBert和LXMERT,Merged attention有VL-BERT和UNITER,另外OSCAR也是一种变种并取得了较好的收益。但是OD-base有几个致命的缺点:
- 检测部分极其耗时
- 检测器受检测类别有限,且不能随VLP模型一起训练,降低了模型容量
- 检测器特征无法捕捉图片整体及上下文信息,导致CV信息不足
- CNN-based Grid Features
为了解决上面的问题,研究员尝试用e2e的方式训练VLP模型,如SOHO:Seeing Out of tHe bOx: EndtoEnd Pretraining for VisionLanguage Representation Learning,直接拿整张图像作为输入。为了更好对齐图像和文本特征,提出了一个会动态更新的visual dictionary来提取视觉特征,同时加入了MVM、MLM、ITM等预训练任务来做模型预训练
- ViT-based Patch Features
研究员进一步发现,如ViLT、ALBEF等直接将image patch feature作为CV的特征输入,使得CV、NLP信息更近似分布在同一特征空间,同时加入更强的图像文本对齐方式,也可以得到一个很好的e2e模型。
Align before Fuse (ALBEF): Advancing Vision-language Understanding with Contrastive Learning
ALBEF包含一个图像编码器(ViT-B/16),一个文本编码器(BERT的前6层),以及一个多模态编码器。通过共同优化以下三个目标对ALBEF进行预训练。
- Image-Text Contrastive Learning,采用CLIP文章中的INfoNCE Loss追求Image和Text之间的交互信息最大化
- Image-Text Matching,预测图文是否匹配,进一步加强图像文本的对齐
- Masked Language Modeling,利用图像和上下文文本来预测掩码单词
同时引入 Momentum Distillation 的方式,为图文对比学习生成伪标签作为pseudo-target额外监督,降低了图文匹配训练时噪音对模型的干扰
2.特征融合的方式:
- one-stream
单流网络,比较常规如VILT,适用于分类等相关的任务
two-stream
双流网络,往往是图文Image-Text Contrastive Learning训练,如CLIP及BLIP,适用于检索相关任务。
CLIP(Contrastive Language-Image Pre-Training)可以说是一篇开创性的工作,使用Image-Text Contrastive Learning的方式进行自监督训练,能够为文本和图像特征域进行对齐、跨模态检索、多模态预训练方面提供大量的帮助,也给后来的文章提供了崭新的思路
BLIP(Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation)可以看成是CLIP的思路拓展,
- CLIP通过Contrastive learning的方式图文特征对齐,是单纯的编码器任务,而BLIP尝试了编码器-解码器的模型结构。
- BLIP采用了判断-生成任务的MED,可以作为单模态编码器,基于图像的文本编码器解码器
- 采用了CapFilt的训练方法,降低噪声图文pair对训练造成的影响
- Mult-stream
Mult-stream的网络有如:VLMO(Unifified Vision-Language Pre-Training with Mixture-of-Modality-Experts)本文提出了跨模态注意的融合编码器,MOME使用了一群模态专家来取代标准Transformer中的前馈网络,即视觉专家(V-FFN)、语言专家(L-FFN)和视觉语言专家(VL-FFN)代替了Transformer中原来的FFN模块,分别对齐进行预训练,使图像-文本信息得到了极好的对齐效果
3.预训练方式
现在VLP模型常见预训练方式有:
- MLM: Masked Language Modeling
起源于bert,常规预训练方法
- MIM:Masked Image Modeling
起源于BEiT,提出了 Masked Image Modeling 自监督训练任务的概念,以此来对 ViT 进行训练。 对图像块进行随机掩码,并将掩码后的图片输入到编码器当中,基于未掩码图像块来恢复掩码图像块。
相似思路的预训练方式还有:MAE、SimMIM、MaskFeat等
- PrefixLM:Prefix Language Model
前缀语言建模Prefix Language Model,主要用于NLP部分,使模型具有实体生成能力,使得文本诱导的zero-shot具有无需fine-tuning的泛化性
- Contrastive Learning
通过一张图片,经过不同的数据增强,被神经网络所提取的特征,仍应具有高度的一致性,如:MoCoV1系列、SimCLR、BYOL等
通过寻找图文信息的关联系进行自监督训练的,如:CLIP、CLIP4CLIP、BLIP等
- WRA:Word-Region Alignment
将文本Token与图像RoI进行匹配,如UNITER中提到的WRA
- ITC:Image-Text Contrastive Learning
图像文本对比学习,用于将图像文本特征对齐,如ALBFE,CLIP等
- ITM:Image-Text Matching
Image-Text Matching预测了一对图像文本对是否匹配
参考文献
- Large-scale Video Classification with Convolutional Neural Networks
- Two-Stream Convolutional Networks for Action Recognition in Videos
- Beyond Short Snippets: Deep Networks for Video Classification
- Convolutional Two-Stream Network Fusion for Video Action Recognition
- Temporal Segment Networks: Towards Good Practices for Deep Action Recognition
- Learning Spatiotemporal Features with 3D Convolutional Networks
- Quo Vadis, Action Recognition? A New Model and the Kinetics Dataset
- SlowFast Networks for Video Recognition
- Non-local Neural Networks
- Pretraining Task-Agnostic Visiolinguistic Representations for Vision-and-Language Tasks
- Learning Cross-Modality Encoder Representations from Transformers
- Pre-training of Generic Visual-Linguistic Representations
- Object-Semantics Aligned Pre-training for Vision-Language Tasks
- EndtoEnd Pretraining for VisionLanguage Representation Learning
- Vision-and-Language Transformer Without Convolution or Region Supervision
- Vision and Language Representation Learning with Momentum Distillation
- Contrastive Language-Image Pre-Training
- Bootstrapping Language-Image Pre-training for Unified Vision-Language Understanding and Generation
- Unifified Vision-Language Pre-Training with Mixture-of-Modality-Experts