- I3D
- 简介
视频的模型,最好要在视频的数据集上进行预训练。
I3D模型在现有的数据集上,效果不错。(在本数据集上训练,然后微调,结果很好)
在视频中间选一帧,然后做动作分类。效果已经很好了。
- 摘要
(1)提出了新的数据集
以前的数据集太小,因此无法区分算法的优劣。因此重新构造了数据集。
每个视频clip有10s,并且精准的切割(标注)。
在此大规模上训练过的数据集,在小数据上有很大的提升。
(2)提出了新的模型
I3D :双流扩展的3D网络。其来自2D网络的扩展,将已经训练好的2D网络,将其中的3*3的kernel变为3*3*3.
好处,不用专门设计视频理解的网络。
并且,可以拿2D网络的参数,做3D网络的初始化。
- 引言
- imagnet 不仅仅可以训练深度神经网络,还可以对其他任务进行迁移学习。
- 目前有的数据集,才1w左右。因此,作为提出新的数据集KINECT
- Kinect400 有400个类别,每个类别有400以上的视频。
- 拿最新的模型,在此数据集上进行benchmark,测试数据集的难易程度。
- 3D虽然已经拿到的时间信息,但是不够好,因此还是增加了two-stream
- CNN + LSTM
最后一个时间戳上的结果,加上fc,softmax,进行分类。
结果:效果不好。已经被抛弃。
- 3D-ConvNet
把一个视频,分成一个个视频段。
每个视频段是1-k张图像,作为一个volume。然后把此视频扔给网络。
然后此网络就是要进行时空学习,不仅要处理二维的外观特征,还要处理时间流信息。
因此,此处的所有的卷积,池化,都是3*3*3.
导致参数量很大。需要大数据才能学习。
最后返回一个特征,然后在特征上进行全连接层,进行分类。
- Two-steam
只需要学习 光流 到 动作的映射关系。
- 3D-Fused Two-stream
加权平均,用3DCONV替代了。之前是late fusion,现在是early fusion,在没有出结果的时候,将特征融合在一起。
此处的融合,也可以用lstm做,但是效果不好,因此还是用3dconv做。
先用3d后用2d,还是先用2d,后用3d效果好么?结论:先2d,后3d效果最好。
好训练,结果也好。
- Two-stream 3D-ConvNet
有足够数据集上,3d效果,明显比2d效果好。
但是3dcnn也不是万能的,还是有一些东西学不到。
如果用光流帮助她以下,效果会更好。
因此,作者还是采用双流的网络,但是每一个分支都是3D的卷积。
既然每一分支都是3d卷积网络,因此也不存在late fusion 或者early fusion。
因此,就直接加权平均,出结果。
- Inflating 2D TO 3D
直接把2d网络直接转化为3D。
- Bootstraping 3d filter from 2d filters
验证迁移学习的参数初始化对不对,直接采用相同的输入,相同的参数,得到输出。看输出是否相同。
现在:直接将图像重复,合成视频;将参数沿时间维度重复,进行初始化。
输入为NX,参数为NW,则输出为N份的WX。
如果想要输出一致,则需要将结果除以N。
这样在往后面传递的时候,后面的参数,也不会有违和感。
《文字看不懂的时候,就看代码》
- Inflated inception – V1
时间维度,不做下采样。
即:输入4帧,输出也是64帧。这个也就1-2s,对于描述动作来说,也就不要下采样了。
但是在后面的维度上,做了下采样。
- 结果