I3D与T3D读后笔记

I3D

论文:《Quo Vadis ,Action Recognition? A New Model and the Kinetics Dataset》

这篇论文的主要内容分为3个部分:
1、介绍了Kinetics数据集。
2、提出了一种用imageNet数据集预训练3D卷积模型的方法,避免了3D卷积模型从0开始训练。
3、构建了3D卷积的双流结构。在UCF-101上测试出准确率高达98%的好效果。

Kinetics数据集

这个数据集有400个人物动作类,每个类有400个视频剪辑。它比UCF-101和HMDB-51高出了两个数量级。这个数据集在当时被提出来时挺新鲜的,但现在用它做实验的也挺多的了。作者在论文中像用它做之前各种流行模型做预训练,然后再用UCF-101和HMDB-51上做训练和测试,比较精确度的提高。

imageNet数据集预训练

用imageNet数据集做预训练在2D卷积模型(视频中人物动作识别)经常用到,它可以有效的减小了了视频数据集数量小而产生过拟合的缺点。但imageNet数据集毕竟都是图片,3D卷积模型附加了内核维度,所以这给获取imageNet训练来的参数造成了困难。但作者想到了一个很奇特的方法:用把多个相同的图片当视频的帧堆叠在一起,构成一个无聊的视频。这样就可以把imageNet数据集变成一个由无聊视频组成的数据集。用无聊视频做预训练可以获得我们想要从学习图片中得到的参数。

模型构建

作者在很多模型上做了实验,这些模型分别学习了imageNet数据集上的二维参数,在Kinetics数据集上进行了预训练,用UCF-101和HMDB-51进行训练和测试,不出意外,有好的预训练比没有好的预训练能得到更高的准确值。(下图中K表示视频的总帧数,而N表示视频相邻帧的子集)

I3D与T3D读后笔记_第1张图片
以上各类模型在有imageNet和没有imageNet上做预训练,在Kinetics训练测试的效果比较,()里的是Top-5精度。从下表可以发现一个细节,光流的准确值比RGB的要低,这和在UCF-101和HMDB-51上实验结果是不同的。这种情况可能是因为Kinetics数据集动作比较复杂,运动时间更长:
I3D与T3D读后笔记_第2张图片
在以上5种模型中,表现最突出的即是双流I3D模型。双流I3D模型的输入端同时放入连续的RGB帧和连续的光流图。可以说,两个输入流都包含了视频中运动信息,这样便于该模型充分的学习它们。
除了C3D,所有模型都使用ImageNet预训练的Inception-V1[13]作为基础网络(这也就是它为什么叫I3D)。除了最后一个卷积层生成每个网络的类分数外,每个卷积层之后都有一个批量标准化的层和ReLU激活函数。论文的2.5部分是实验的细节,大致看了一点,目前不复现代码,就不细细总结了。
I3D与T3D读后笔记_第3张图片
下面是5个模型在UCF-101或HMDB-51上训练(Original),和前面在Kinetics上训练,最后一层在UCF-101或HMDB-51上训练(Fixed),和用Kinetics端到端预训练,最后在UCF-101或HMDB-51微调(Full-FT)三种结果的比较。/分割的是使用ImageNet预先训练好的权重和不使用。
I3D与T3D读后笔记_第4张图片

T3D

论文《Temporal 3D ConvNets: New Architecture and Transfer Learning for Video Classification》

这篇文章主要贡献有两点:1、作者构建了一种新的时间层在3DCNN中,这个时间层名为Temporal Transition Layer,即TTL。这个时间层可以综合性捕捉视频中短期、中期和长期的时间信息。2、提出了一种新的迁移学习的方法,便于把模型在imageNet上学到的权重迁移到3DCNN模型里。

I3D与T3D读后笔记_第5张图片
图的上部分是T3D模型,它的输入是视频剪辑,输出是视频级的预测。该网络由DenseNet网络结构改造,用3D内核替换了原来的2D内核。
TTL的优势是在不同的时间深度上运行,因此允许模型从短期、中期和长期捕获外观和时间信息。TTL由几个可变深度的3D卷积核和一个平均池化层构成。将前一层的输出的特征图作为TTL的输入,分别经过K个不同深度的3D卷积核卷积后得到K个特征图{S1,…,Sk}。这k个特征图的(h,w)大小是一样的,但t不一样。最后把k个特征图简单的合并成一个张量[S1,…,Sk],再喂给池化层。这个过程很简单,但却很好的整合了多个时间段的特征信息。

I3D与T3D读后笔记_第6张图片
上图是迁移学习2D网络中训练imageNet后模型参数的过程。图由一个2D卷积网络,一个3D卷积网络组成和一个二进制(0/1)匹配分类器构成。迁移学习的步骤分两步,首先是用imageNet训练好一个2D卷积网络,固定住2D卷积网络中的所有参数。然后是训练3D卷积网络,取500k个没有标签的视频剪辑作为迁移学习的输入。在训练3D卷积网络的过程中,喂给2D卷积网络的是一个时间段内x个帧,喂给3D卷积网络是一段视频,若视频与帧匹配则记为正,否则记为负。反向传播中只修改3D卷积网络中的参数,等训练反馈的结果趋近于正时,就代表3D卷积学习到了2D卷积的参数。

以上两种方法适用于各种基础模型,并且比原始模型有更好的效果,下表是作者在多个模型上运用迁移学习方法后的在UCF101上训练测试得到的效果,其中第二列是首先在Kinetics数据集上训练,然后在UCF-101上训练。

I3D与T3D读后笔记_第7张图片
作者实验了各种模型在Kinetics数据集上预训练,在用UCF-101和HMDB51微调,比较了下准确值。I3D与T3D读后笔记_第8张图片
表中的T3D+TSN很有意思,作者在实验的时候并没有用到光流图作为输入,只是运用了TSN的方法。使用来自每个视频的5个非重叠剪辑,用TSN聚合的方式得到最后的预测值,最后效果也很好。虽然T3D最后的结果达不到I3D那么高,但T3D的实验里没有用到光流,这点算是比I3D要进步的地方。

你可能感兴趣的:(I3D与T3D读后笔记)