论文链接:https://arxiv.org/abs/1703.10025

代码链接:https://github.com/msracver/Flow-Guided-Feature-Aggregation

这篇是MSRA发表在ICCV2017上的VID方面的论文,算是之前的工作Deep Feature Flow的一个延续。这篇文章的亮点在于利用了前后帧的信息加强当前帧的特征,从而得到较好的识别精度。但是速度上会比较慢。那我们开始吧。

1.Abstract

视频中的物体检测会受到诸如运动模糊、视频散焦、奇特姿态等的影响。现有的工作尝试从box-level使用temporal信息,但是这种方法不能端到端地进行训练。我们提出了FGFA,在frame-level使用temporal信息。它将相邻帧在motion paths上的特征聚合到当前帧的特征中,因此提高了视频识别的精度。我们的方法极大地提升了ImageNet VID上的single-frame baselines。特别是在识别快速移动的物体方面,此方法和Deep feature flow一起赢得了ImageNet 2017

2.Introduction

物体检测一般都是二阶段结构,首先CNN提取feature map,然后检测特定的网络用于从feature maps 中生成检测结果。 
这些方法对于still image效果很好,但是直接用到vedio上效果会恶化很多,例如state-of-the-art RFCN+ResNet-101在对快速运动中的物体进行识别的时候效果恶化得很厉害 
然后,视频中拥有丰富的对于单个物体实例的信息,通常会在一小段时间中的多个snapshots看到,这些时间信息用在现有的视频物体检测的方法中,则表现为:首先用物体检测器在单帧上进行检测,然后通过专用的后处理方法将这些bbox组合起来,后处理通常是通过现在的motion estimation的方法,例如光流,物体跟踪等。这些方法不会提高检测质量,性能的提升是来自启发式的后处理而不是有原则的学习过程。对于这类方法没有端到端的学习过程。我们把这些方法叫做box level methods 
我们希望能够利用时间信息提升检测或识别的质量,以一种有原则的方式。受图像识别的启发,特征很重要,因此我们利用时间域的聚合提升单帧特征的学习。注意,同一物体的特征用于视频运动的原因,在不同帧是空间不对齐的。盲目的特征聚合可能会使性能变差,这说明在学习过程中对运动进行良好的建模很重要。 
在此工作中,我们提出了FGFA,如图1所示,特征提取的网络在单帧上提取单帧的feature maps,然后为了加强当前帧的特征,一个光流网络用于估计相邻帧和当前帧的运动。相邻帧的feature maps再根据光流运动中warp到当前帧,warp后的feature map以及它自己的feature map一起通过适应权重网络进行聚合。(在当前帧)然后聚合得到的feature map再被送到检测网络中输出当前帧的检测结果。所有模块,包括特征提取,光流估计,特征聚合,检测都是端到端进行训练的,对于快速运动中的物体,普通的方法效果很差,但我们的方法有效地利用了不同snapshot间的丰富表现信息,这也是我们的方法取得VID冠军的致胜点(对于快速运动物体识别好) 

3.Flow Guided Feature Aggregation

3.1 Baseline and Motivation

给定输入的视频帧{IiIi},我们的目标是输出所有帧上的物体框{YiYi}。Baseline就是在每帧上单独使用现有的物体检测器。 
现有的CNN-based物体检测器结构相似,输入图片I,CNN提取特征得到Nfeat(II)=f feature maps,然后一个专用于detection的子网络用于生成检测结果yy=Ndet(ff)。 
视频帧会有很剧烈的表现变化,如图2所示,当画面很差的时候,单帧的检测结果很不稳定,易出错。图1给出了一个例子,在tt时刻,由于运动模糊,猫这个类的特征响应会很低。这导致单帧检测的失败,观察到邻近的帧tt-10和tt+10有比较高的响应,它们的特征可以被传递给当前的tt帧,当tt帧的特征加强后,检测成功。 
 
特征传递和加强需要两个模块实现:(1)motion-guided spatial warping.在帧间估计运动然后将feature map进行warp。(2)feature aggregation module.它用于正确地将不同帧的特征进行融合,再加上特征提取和检测网络,共同组成了我们方法的四个模块。

3.2 Model Design

Flow-guided warping.给定一帧{IiIi}和其相邻帧{IjIj}光流场Mi>jMi−>j=F(IiIi,IjIj)可以通过光流网络F参加FlowNet[8]估计。 
相邻帧的feature maps被warp到当前帧,根据光流warping function定义为: 
fj>ifj−>i=W(fjfj,Mi>jMi−>j)=W(fjfj,Mi>jMi−>j
其中W是一个双线性的warping function,用于feature maps上所有位置的每个channel,fj>ifj−>i表示从jj warp到ii帧的feature map。 
Feature aggregation.做完feature warping以后,当前帧从相邻帧累积feature map。这些feature map提供了物体实例的不同信息,例如光照、视角、姿态、非刚体变形等。聚合特征是,我们在不同空间位置使用不同的权重,并且让所有特征通道共享此空间权重,这一2D权重map定义为Wj>iWj−>i。则聚合后的特征为 
 
其中kk表示相邻帧的数量,默认kk=10。上式和attention模型的公式很像,不用的权重用于memory buffer中的不同特征。 
聚合后的特征最后被送到检测子网络中得到最终的结果:yiyi=Ndet()。 
和baseline以及box-line method相比,我们的方法在输入到最后的检测之前就进行了多帧信息聚合。 
Adaptive weight.权重用于表示所有buffer frames[IikIi−k,…,Ii+kIi+k]对于IiIi在每个空间位置上的重要程度。 
特别地,在位置PP,如果warped features fj>i(P)fj−>i(P)fi(P)fi(P)很相近,则它会被赋予一个大的权重,反之则相反这里我们使用余弦相近矩阵来衡量warped features和从当前帧得到的features之间的相似度。另外,我们不直接使用卷积特征Nfeat(II),而是使用一个小的全卷积网络,将特征f(i)f(i)fj>ifj−>i映射到新的embedding进行相似度度量。 
我们估计权重为: 
 
其中fefe=表示相似度度量的embedding features。权重Wj>iWj−>i对于所有空间位置PP,在相似帧做了归一化,=1。估计权重的过程可以看做是利用embedding features计算余弦相似度的过程。

3.3 Training and Inference

Inference.算法1归纳了inference的过程。 
 
Training.整个FGFA结构是可微的,可以端到端地进行训练。唯一需要注意的地方是特征warping的模块是通过双线性插值得到的,也是可微的,对于feature maps和光流场都是可微的。 
*Temporal dropout.在SGD训练中,聚合范围K受到内存的限制,我们在inference的时候使用一个大的K,而在训练的时候用小的K(默认为2),这是没关系的,因为adaptive weight可以在许梿和推理的时候分别进行正确的归一化。注意在训练时,相邻帧是从一个大的range中随机采样的,这个大range等于推理时用的range,这就相当于在时域上用了个dropout,用table 3可以看出,temporal dropout效果不错。 

3.4 Network Architecture

Flow network.我们用了在flying chairs数据集上预训练的Flownet(简易版)。它被使用到一半分辨率的图片上。输出stride=4。由于feature network的输出stride=16(下文有解释)。flow field再次下采样得到和feature map一样的分辨率。 
Feature network.我们使用Resnet-50,Resnet-101。Inception-Resnet作为feature network。初始的Inception-Resnet是用于图像识别的,为了解决特征不一致的问题,使其能够正确运用到物体检测中,我们使用一个modified的版本叫做Aligned-Inception Resnet[6]、Resnet50,Resnet101,Aligned-Inception-Resnet都是在ImageNet分类上预测训练的。 
预测训练的模型用于FGFA的feature network。我们稍微调整了一下这三个模型的结构用于物体检测。我们将最后的average pooling和fc层去掉,保留其他卷积层。为了提高特征分辨率,根据[4,5]的实践,将最后一个block的stride从32改为16,特别地,在最后一个block的开始(conv5),stride从2变为1。为了保持感受野的大小。最后一个block的卷积层的dilation(kernel size>1)设为2。最后随机初始化3*3卷积用在最后将特征维度降为1024。 
Embedding network.有三层,1*1*512 conv,3*3*512 conv,1*1*2048 conv,随机初始化。 
Detection network.我们使用R-FCN,并且按照[49]的设计,在1024-d feature maps的后面。RPN sub-network和R-FCN sub-network分别接前512和后512维,RPN使用9个anchor(3 scale, 3 aspect)。每张图产生300个proposals,R-FCN中的position-sensitive score maps是7*7group。

4.Experiment

4.1 Experiment Setup

**ImageNet VID dataset.**3862个video snippets用于训练,555个snippets用于验证,这些snippets全部标注好。每个视频的frame rates在25和30左右。共有30个物体分类,是ImageNet DET数据集的子类别。 
slow,medium和fast运动中分别测试了不同运动速度的map。 
Implementation Details.在训练时,和[18,23]一样,ImageNet DET和VID训练集都用于训练。两阶段的训练:第一阶段:特征网络和检测网络在ImageNet DET上进行训练,使用和VID一样的30个类,SGD,每个batch一张图进行训练,4GPU,120K iterations。lr在前80K和后40K iters分别为10310−310410−4。第二阶段,整个FGFA模型在VID上进行训练,4GPU,60K iter。lr在前40K和后20K iters分别是10310−310410−4。在训练和推理中,图片都被resize到短边600用于feature network,resize到短边300用于flow network。

4.2 Ablation Study

Table 1比较了单帧baseline 和FGFA以及其变种figure 6是单帧方法和FGFA的直观对比。 

视频物体检测(VID) FGFA:Flow-Guided Feature Aggregation for Video Object Detection相关推荐

  1. 视频目标检测--Flow-Guided Feature Aggregation for Video Object Detection

    Flow-Guided Feature Aggregation for Video Object Detection https://arxiv.org/abs/1703.10025 Our fram ...

  2. ICCV 2017 《Flow-Guided Feature Aggregation for Video Object Detection》论文笔记

    本学弱喜欢在本子上记笔记,但字迹又丑. 望看不懂我的字的大佬不要喷我,看得懂的大佬批评指正.

  3. 【物体检测快速入门系列 | 01 】基于Tensorflow2.x Object Detection API构建自定义物体检测器

    这是机器未来的第1篇文章 原文首发地址:https://blog.csdn.net/RobotFutures/article/details/124745966 CSDN话题挑战赛第1期 活动详情地址 ...

  4. 【显著性物体检测】【ECCV2018】Reverse Attention for Salient Object Detection【论文笔记】

    简介:在不怎么增加计算量的前提下,采用从粗到精的思想,由高级特征到低级特征,补全显著性检测的轮廓[最近很多都是基于这个思想].模型的速度与效果都占优.具体关注,是怎么实现特征的多级利用的. ECSSD ...

  5. 目标检测之RPN网络(Feature Pyramid Networks for Object Detection)

    最近读了几篇WSDN的文章,有一篇的paper用到了RPN网络的一些思想,因此去拜读一下RPN这篇paper.这篇paper的attribution就是取长补短的思想,在卷积神经网络中,网络层数越浅, ...

  6. 判断图像局部过暗_CVPR 2020丨基于记忆增强的全局局部整合网络:更准确的视频物体检测方法...

    编者按:在视频物体检测任务中,由于相机失焦.物体遮挡等问题,仅基于图像的目标检测器很可能达不到令人满意的效果.针对此类问题,微软亚洲研究院提出了基于记忆增强的全局-局部整合网络(Memory Enha ...

  7. 读书笔记22:Optical Flow Guided Feature: A Fast and Robust Motion Representation for Video Action Recogni

    文章题目:Optical Flow Guided Feature: A Fast and Robust Motion Representation for Video Action Recogniti ...

  8. 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》

    深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...

  9. 目标检测经典论文——R-CNN论文翻译:Rich feature hierarchies for accurate object detection and semantic segmentation

    Rich feature hierarchies for accurate object detection and semantic segmentation--Tech report (v5) 用 ...

  10. 【视频目标检测论文阅读笔记】Optimizing Video Object Detection via a Scale-Time Lattice

    1.1 论文信息 标题 Optimizing Video Object Detection via a Scale-Time Lattice 会议 CVPR 2018 原文链接 Optimizing ...

最新文章

  1. 宏基因组实战6. 不比对快速估计基因丰度Salmon
  2. 最小生成树、拓扑排序、单源最短路径
  3. GBK字符集和UTF8字符集的转换C++
  4. 基于jquery的一个javascript前端框架实现
  5. python base64库介绍
  6. PC端连接Android设备进行adb调试
  7. 基于DDDLite的权限管理OpenAuth.net 1.0版正式发布
  8. java 字符串对齐_最佳字符串对齐的Java实现
  9. 【Github开源】一站搞定各种开发文档
  10. 新手入门指导:Vue 2.0 的建议学习顺序
  11. relativelayout常用属性
  12. Java程序员技能树
  13. POJ 2229 Sumsets(递推,找规律)
  14. 机器学习基础算法18- 鸢尾花数据集分类-随机森林
  15. vue 音乐盒app_超全!孕期实用母婴类APP推荐......
  16. 线性代数:切线空间和法向量变换
  17. 蓝桥杯:填字母游戏(第八届决赛javaB第五题) 博弈+递归+回溯+map记忆化
  18. 【JAVA今法修真】 第九章 兼容并包 适配模式
  19. H5弹出是否打开微信APP的方式
  20. 【C语言】从字符串中提取正整数和负整数

热门文章

  1. java 表格识别_OpenCV3 识别图中表格-JAVA 实现
  2. 基于可见光通信的智慧路灯
  3. 至于你信不信,反正我信了
  4. 计算机图形学【GAMES-101】3、着色计算(深度缓存、着色模型、着色频率)
  5. NIST SP 800-108密钥导出函数KDF研究
  6. xpath小结preceding-sibling、following-sibling
  7. The server encountered an internal error that prevented it from fulfilling this request.解决方法
  8. android html footer 固定,footer保持在页面底部的两种方法
  9. NPOI导出Word并插入表格和图片
  10. Java与咖啡豆 - Java命名由来