Video Feature extracting

视频特征提取

1. 基于单帧的识别方法

一种最直接的方法就是将视频进行截帧,然后基于图像单帧的进行deep learninig 表达, 如下图所示,视频的某一帧通过网络获得一个识别结果。下图为一个典型的CNN网络,红色矩形是卷积层,绿色是归一化层,蓝色是池化层 ,黄色是全连接层。然而一张图相对整个视频是很小的一部分,特别当这帧图没有那么的具有区分度,或是一些和视频主题无关的图像,则会让分类器摸不着头脑。因此,学习视频时间域上的表达是提高视频识别的主要因素。当然,这在运动性强的视频上才有区分度,在较静止的视频上只能靠图像的特征了。
Video Feature extracting_第1张图片

2. 基于CNN扩展网络的识别方法

它的总体思路是在CNN框架中寻找时间域上的某个模式来表达局部运动信息,从而获得总体识别性能的提升。下图是网络结构,它总共有三层,在第一层对10帧 (大概三分之一秒)图像序列进行MxNx3xT的卷积(其中 MxN是图像的分辨率,3是图像的3个颜色通道,T取4,是参与计算的帧数,从而形成在时间轴上4个响应),在第2、3层上进行T=2的时间卷积,那么在第3层包含了这10帧图片的所有的时空信息。该网络在不同时间上的同一层网络参数是共享参数的。

它的总体精度在相对单帧提高了2%左右,特别在运动丰富的视频,如摔角、爬杆等强运动视频类型中有较大幅度的提升,这从而也证明了特征中运动信息对识别是有贡献的。在实现时,这个网络架构可以加入多分辨的处理方法,可以提高速度。

Video Feature extracting_第2张图片

3. 双路CNN的识别方法

这个其实就是两个独立的神经网络了,最后再把两个模型的结果平均一下。上面一个就是普通的单帧的CNN,而且文章当中提到了,这个CNN是在ImageNet的数据上pre-train,然后在视频数据上对最后一层进行调参。下面的一个CNN网络,就是把连续几帧的光流叠起来作为CNN的输入。 另外,它利用multi-task learning来克服数据量不足的问题。其实就是CNN的最后一层连到多个softmax的层上,对应不同的数据集,这样就可以在多个数据集上进行multi-task learning。网络结构如下图所示。

Video Feature extracting_第3张图片

改进1 CNN网络进行了spatial以及temporal的融合
这篇论文的主要工作为:
1. 在two stream network的基础上,
利用CNN网络进行了spatial以及temporal的融合,从而进一步提高了效果。
2. 此外,该文章还将基础的spatial和temporal网络都换成了VGG-16 network。
实验效果:UCF101-92.5%,HMDB51-65.4%

改进2 LSTM网络 融合双流 spatial以及temporal
这篇文章主要是用LSTM来做two-stream network的temporal融合。效果一般

4. 基于LSTM的识别方法

它的基本思想是用LSTM对帧的CNN最后一层的激活在时间轴上进行整合。这里,它没有用CNN全连接层后的最后特征进行融合,是因为全连接层后的高层特征进行池化已经丢失了空间特征在时间轴上的信息。相对于方法2,一方面,它可以对CNN特征进行更长时间的融合,不对处理的帧数加以上限,从而能对更长时长的视频进行表达;另一方面,方法2没有考虑同一次进网络的帧的前后顺序,而本网络通过LSTM引入的记忆单元,可以有效地表达帧的先后顺序。网络结构如下图所示

Video Feature extracting_第4张图片

上图中红色是卷积网络,灰色是LSTM单元,黄色是softmax分类器。LSTM把每个连续帧的CNN最后一层卷积特征作为输入,从左向右推进时间,从下到上通过5层LSTM,最上的softmax层会每个时间点给出分类结果。同样,该网络在不同时间上的同一层网络参数是共享参数的。在训练时,视频的分类结果在每帧都进行BP(back Propagation),而不是每个clip进行BP。在BP时,后来的帧的梯度的权重会增大,因为在越往后,LSTM的内部状态会含有更多的信息。

在实现时,这个网络架构可以加入光流特征,可以让处理过程容忍对帧进行采样,因为如每秒一帧的采样已经丢失了帧间所隐含的运动信息,光流可以作为补偿。

5. 3维卷积核(3D CNN)法

3D CNN 应用于一个视频帧序列图像集合,并不是简单地把图像集合作为多通道来看待输出多个图像(这种方式在卷积和池化后就丢失了时间域的信息,如下图左), 而是让卷积核扩展到时域,卷积在空域和时域同时进行,输出仍然是有机的图像集合(如下图右)。
Video Feature extracting_第5张图片

实现时,将视频分成多个包含16帧的片段作为网络的输入(维数为3 × 16 × 128 × 171)。池化层的卷积核的尺寸是d x k x k, 第一个池化层d=1,是为了保证时间域的信息不要过早地被融合,接下来的池化层的d=2。有所卷积层的卷积核大小为3x3x3,相对其他尺寸的卷积核,达到了精度最优,计算性能最佳。 网络结构如下图所示。这个是学习长度为16帧(采样后)视频片段的基础网络结构。对于一个完整的视频,会被分割成互相覆盖8帧的多个16帧的片段,分别提取他们的fc6特征,然后进行一个简单平均获得一个4096维的向量作为整个视频的特征。

在这里插入图片描述

通过可视化最后一个卷积层对一个连续帧序列的特征表达,可以发现,在特征开始着重表达了画面的信息,在特征的后面着重表达的是运动信息,即在运动处有相对显著的特征。如下图。
Video Feature extracting_第6张图片

和单帧图特征在视频测试集上进行对比,3D CNN有更强的区分度,如下图。
Video Feature extracting_第7张图片

改进 I3D[Facebook]
即基于inception-V1模型,将2D卷积扩展到3D卷积。

T3D 时空 3d卷积
一方面是采用了3D densenet,区别于之前的inception和Resnet结构;
另一方面,TTL层,即使用不同尺度的卷积(inception思想)来捕捉讯息。

P3D [MSRA]
改进ResNet内部连接中的卷积形式。然后,超深网络,一般人显然只能空有想法,望而却步

CDC
思路:
这篇文章是在CDC网络的基础进行改进的,CDC最后是采用了时间上上采样,
空间下采样的方法做到了 per-frame action predictions,而且取得了可信的行为定位的结果。
但是在CDC filter之前时间上的下采样存在一定时序信息的丢失。
作者提出的TPC网络,采用时序保留卷积操作,
这样能够在不进行时序池化操作的情况下获得同样大小的感受野而不缩短时序长度。

双流法,C3D方法多用于动作识别,能否用于视频质量分析?

实验

数据集) UCF-101
一共13320个视频, 共101个类别.

Video Feature extracting_第8张图片

Video Feature extracting_第9张图片

Video Feature extracting_第10张图片

你可能感兴趣的:(质量评价,计算机视觉,深度学习,cnn)