论文笔记 之 Deep Feature Flow for Video Recognition

1,要解决的问题:

目标检测和语义分割往往都是在单帧图像上进行的,但实际上我们获得的更多是视频信息,因此探究如何对视频进行目标检测和语义分割是根据有实际意义的。直观的方法是直接将单帧的目标检测/语义分割算法在视频的每一帧上进行(如图Figure2(a)所示),但是这样会使得速度很慢。由于视频中邻近帧十分相似,包含大量的冗余信息,这意味着单帧方法应用于视频时很多计算是重复的。那么如何减少冗余信息的重复计算,从而提高速度呢?
在这里插入图片描述

2,本文提出的方法:

使用神经网络处理图像的流程往往是:
首先,用CNN处理原始图像,获得高级特征图。这部分采用的网络一般称为Backbone,在本文中我们称之为Nfeat(含义是sub-network for feature extraction),其往往是一些著名的DCNN,例如VGG、Reset等等。Nfeat往往是非常复杂的网络,占据着整个网络绝大部分的计算量。
然后,将高级特征图输入到完成特定任务的特定网络中,在本文中我们称这部分网络为Ntask(含义是sub-network for task),然后获得结果,如语义分割的Mask,目标检测的Box和label等等。

我们研究发现:
    1,视频中邻近帧的高级特征图比邻近帧原图更加相似,如图Figure1前两行所示。
    2,通过光流,可以将某帧的高级特征图很好的传播到其邻近帧,结果与直接在邻近帧上计算出的高级特征图非常接近。如图Figure1后两行所示。而且,光流计算量+传播计算量 << 高级特征图的计算量。

基于以上两点,我们提出解决问题的思路是:
只对视频中某些帧(key frame),采用单帧算法(Nfeat+Ntask),对于keyframe附近的帧(current frame),我们计算其与keyframe的光流,然后利用该光流将keyframe的高级特征图传播到current frame,获得current frame近似的高级特征图。
再将该高级特征图送入到Ntask中进行计算,获得结果。从而避免了对current frame在Nfeat中的计算,提高了速度。如图Figure2(b)所示,F是计算两帧间光流的网络。

对于keyframe的计算采用已有的单帧算法就可以了,下文内容主要解释current frame近似的高级特征图的计算过程。
在这里插入图片描述

3,网络结构:

3.1,特征计算网络Nfeat

首先,我们使用了[16]提出的ResNet-50和ResNet-101 两个模型,默认在IImageNet classification上进行预训练,去掉其最后的全连接分类层。
其次,我们将两个模型中conv5的第一个卷积层的stride由2变为1,并将holing algorithm [4] (dilation=2) 应用于conv5的所有3x3卷积核上,以保证感受野不变。因此Nfeat整体的stride是16,即Nfeat的输出是原图的1/16。
最后,我们在conv5后添加了一个3*3卷积核holing algorithm [4] (dilation=6)的卷积层,将输出深度由2048变为1024

3.2,光流计算网络F:

我们采用通过[9]提出的光流计算网络FlowNet(Simple版本)计算光流(图Figure2(b)中的F)。
为减少光流计算量,我们设计了FlowNet的两个变体:
    1,FlowNet Half(将FlowNet每层的卷积核数量减为原来的1/2,于是神经网络的复杂度变为原来的1/4)
    2,FlowNet Inception(使用了[43]中的 Inception structure,将网络复杂度变为原来的1/8)。
F的输入是原图的1/2下采样,F的stride是4,因此F的输出(光流场)是原图的1/8。为了保证光流场的尺度和高级特征图一致,我们采用双线性差值对其进行1/2下采样。

3.3,利用光流传播高级特征:

符号说明:
    标记Nfeat的输出(key frame的高级特征图)为fk,其深度为1024
    标记F的输出(光流场)为Mi→k,其深度为2(两个通道分别保存行列坐标偏差)
    标记current frame高级特征图为fi,其深度为1024

如前所述,我们希望通过fk和Mi→k计算fi

Mi→k记录的是某个特征在fi中的位置p与其在fk中的位置p+dp之间的偏差dp,即dp = Mi→k( p )。
注:p是在高级特征图中的行列坐标,dp是在高级特征图中的行列坐标偏差,均为而为二维坐标。

由于dp是神经网络的输出,因此一般是小数而非整数。所以我们采用双线性差值计算fi

对于fi在p位置c通道的元素值,由公式(1)计算:
在这里插入图片描述
公式(1)中的c表示通道。q表示给坐标(p+dp)进行双线性差值涉及到的四个坐标。其中G(,)的计算见公式(2)
在这里插入图片描述
通过上面的公式,我们能够通过fk和Mi→k计算fi,为表示方便我们把上面的计算过程用W(,)表示:

fi =W( fk, Mi→k)

上面的计算是准确的,但是有两个前提:
    1,光流没有误差
    2,fk和fi 中的特征确实能够一一对应

但是上面两点是无法满足的,于是上面的计算是不可能准确的。一般来说我们应该对误差进行建模,但是在深度学习的思维下,我们可以直接引入一个可学习的参数,来减少误差。
我们在学习光流场Mi→k的同时学习一个尺度场Si→k,其深度和fk相同,分辨率和Mi→k相同(应该也是要通过双线性差值进行下采样)。
实际上,这是我们将原来输出Mi→k的那层神经网络的输出深度增加了1024,直接获得的。
获得尺度场Si→k后,我们在公式(1)右边的乘积项上再乘一个Sci→k(q)从而通过这个缩放系数减少误差。

3.4, key frame的选取策略:

应该选择图像内容变化比较大的图像作为key frame,但在本文中我们不深入研究这个问题。我们采用固定间隔选取key frame的方式:

3.5,任务网络Ntask

3.5.1, 语义分割任务:

Ntask是单层卷积网络,1*1卷积核,输出深度为C+1(C是语义类别数量,1是背景),后接softmax层。
也就是说Ntask的输出的第i个通道表明该位置的元素是第i个类别的概率。
这个结构类似于[5].
注:我还没有看[5],具体解析等我看了[5]后补上

3.5.2, 目标检测任务:

Ntask采用了[35]的设计。具体细节在此不赘述了,我不是很关心这部分。

3.6,算法伪代码:

在这里插入图片描述

4,训练:

不想写了

5,实验

在这里只写两个关键(我认为的)实验:

5.1,速度-精度-模型相关性验证

前面提到,我们采用了2种Nfeat网络和3中F网络,我们比较了这些模型的组合对速度和精度的影响。没啥好说的,见图Figure3:
在这里插入图片描述

5.2,Split point of Ntask

如前所述,N = Nfeat+Ntask,是一个完整的单帧目标检测/语义分割网络。
那我们从哪个位置(Split point )将N切分成Nfeat和Ntask比较好呢?
我们采用了Reset作为Nfeat,所以在本实验中,我们将Reset末端的一部分划给Ntask,观察Ntask层数变化对精度的影响。
注:我们在划分后的Nfeat中添加了一些网络结构。

结论是:Ntask层数变化对精度影响不大(甚至减少为0层都能取得相当好的效果),但是会造成计算量的快速增加。
结果见表Table5:
在这里插入图片描述

参考文献:

[4] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, andA. L. Yuille. Semantic image segmentation with deep con-volutional nets and fully connected crfs. InICLR, 2015. 1,2, 3, 5, 6
[5] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, andA. L. Yuille. Deeplab: Semantic image segmentation withdeep convolutional nets, atrous convolution, and fully con-nected crfs.arXiv preprint, 2016. 5, 6, 7
[9] A. Dosovitskiy, P. Fischer, E. Ilg, P. Hausser, C. Hazirbas,and V. Golkov. Flownet: Learning optical flow with convo-lutional networks. InICCV, 2015. 2, 3, 4, 5, 7, 8, 11
[16] K. He, X. Zhang, S. Ren, and J. Sun. Deep residual learningfor image recognition. InCVPR, 2016. 1, 2, 3, 5, 8
[35] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: To-wards real-time object detection with region proposal net-works. InNIPS, 2015. 1, 2, 3, 6
[43] C. Szegedy, V. Vanhoucke, S. Ioffe, J. Shlens, and Z. Wojna.Rethinking the inception architecture for computer vision. InCVPR, 2016. 5, 11, 12

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值