摘要

目前检测的准确率受物体视频中变化的影响,如运动模糊,镜头失焦等。现有工作是想要在框的级别上寻找时序信息,但这样的方法通常不能端到端训练。我们提出了flow-guided feature aggregation,一个用于视频物体检测的端到端学习框架。在特征级别上利用时序信息,通过相邻帧的运动路径提高每帧的特征,从而提高检测的准确率。

简介

特征提取网络提取出每帧的feature maps。为了enhance被处理帧的特征,用一个光流网络(flownet)预测相邻帧和该帧之间的motions。从邻近帧得到的feature maps 被光流 warped to the reference frame。The warped feature maps以及its own feature maps在一个自适应的加权网络中聚合。聚合后的feature maps are fed to 检测网络得到该帧最后的检测结果。其中,所有的特征提取模型都是trained end-to-end。

框架的主要思想如上图。最后一层为原图,可以发现第t帧经过光流处理的特征并不明显,而第t-10帧及t+10帧较明显,于是用motion-guided spatial warping预测帧之间的motion。得到warping后的feature maps,将这些特征融合。将融合后的feature map fed to detection network得到最后的检测结果。

由上文可知,框架需要两个主要模型,一是motion-guided spatial warping, 另一个是feature融合。

框架介绍

1. flow-guided warping

对于相邻两帧,首先用flownet得到 a flow field(Mi->j = F(Ii,Ij))。之后warping得到的初始化feature maps,得到flow-guided warp(fj->i = W(fj, Mi->j))。

2. feature aggregation

如何求解融合的weights?首先在不同的空间位置用不同的weights,让所有的特征通道用相同的空间weights。得到的weights记作wj->i。每个位置的wj->i(p)都被normalized,即相邻2k+1帧该点的weights之和为1。

3. adaptive weight

adaptive weight表示相邻2K帧对当前帧影响的程度。if fj->i(p) is close to fi(p), 则将被分配一个较大的weight,相反。用余弦相似度来测量两者之间close的程度。

除此之外,不直接用融合得到的特征,而是用一个tiny fcn处理 fi 和 fj->i,用于计算embedding features。

4. 算法流程

上图对算法流程介绍的很详细,就不再一一解释了。

实验

光流用的flownet, feature network实验了resnet-50, resnet-101,tiny fcn只有三层,检测网络用的R-FCN。

论文中对不同运动速度及不同网络不同条件下的实验结果做了详细介绍。

福利:代码这个月已经在github上开源 : https://github.com/msracver/Flow-Guided-Feature-Aggregation

 

Flow-Guided Feature Aggregation for Video Object Detection论文笔记的更多相关文章

  1. video object detection

    先说一下,我觉得近两年最好的工作吧.其他的,我就不介绍了,因为我懂得少. 微软的jifeng dai的工作. Deep Feature Flow   github: https://github.co ...

  2. 【Network Architecture】Feature Pyramid Networks for Object Detection(FPN)论文解析(转)

    目录 0. 前言 1. 博客一 2.. 博客二 0. 前言   这篇论文提出了一种新的特征融合方式来解决多尺度问题, 感觉挺有创新性的, 如果需要与其他网络进行拼接,还是需要再回到原文看一下细节.这里 ...

  3. 论文笔记:AdaScale: Towards real-time video object detection using adaptive scalingAdaScale

    AdaScale: Towards real-time video object detection using adaptive scaling 2019-02-18 16:14:17 Paper: ...

  4. Parallel Feature Pyramid Network for Object Detection

    Parallel Feature Pyramid Network for Object Detection ECCV2018 总结: 文章借鉴了SPP的思想并通过MSCA(multi-scale co ...

  5. 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)

    Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...

  6. Feature Pyramid Networks for Object Detection比较FPN、UNet、Conv-Deconv

    https://vitalab.github.io/deep-learning/2017/04/04/feature-pyramid-network.html Feature Pyramid Netw ...

  7. 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation

    在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...

  8. 『计算机视觉』FPN:feature pyramid networks for object detection

    对用卷积神经网络进行目标检测方法的一种改进,通过提取多尺度的特征信息进行融合,进而提高目标检测的精度,特别是在小物体检测上的精度.FPN是ResNet或DenseNet等通用特征提取网络的附加组件,可 ...

  9. 目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Tech report

    目标检测系列 --- RCNN: Rich feature hierarchies for accurate object detection and semantic segmentation Te ...

随机推荐

  1. Vue.js 基本功能了解

    一.写在前面 隔了这么久才来出Vue的第二篇文章,真是堕落了,自己先惩罚下/(ㄒoㄒ)/~~ 回过头看自己第一篇相关文章<初试 Vue.js>(http://www.cnblogs.com ...

  2. Maven学习专题--Maven入门及安装

    因为项目需要,新项目需要使用Maven开发,但是组内大部分没有接触过maven.我就毅然承担搭建maven环境的任务了.因为一切重头开始,就想把自己的整个搭建环境.项目创建.框架整合和模块管理整个过程 ...

  3. Lucene的使用与重构

    忽然一想好久不写博客了,工作原因个人原因,这些天一直希望一天假如36个小时该多好,但是,假如不可能. 由于近期在项目中接触了lucene,这个已经没有人维护的全文搜索框架,确实踩了不少坑,为什么用lu ...

  4. jvm005 从jvm的角度谈谈线程的实现

    一.线程的实现 在谈谈线程之前,我们要先知道线程是何物?在学习操作系统时,我们得知进程和线程的概念,接下来我们将开始揭示线程. 什么是进程?通过任务管理器我们就看到了进程的存在.而通过观察,我们发现只 ...

  5. 最小生成树之Prim算法和Kruskal算法

    最小生成树算法 一个连通图可能有多棵生成树,而最小生成树是一副连通加权无向图中一颗权值最小的生成树,它可以根据Prim算法和Kruskal算法得出,这两个算法分别从点和边的角度来解决. Prim算法 ...

  6. 国内网站遭遇SYN攻击事如何及时解决问题

    1.SYN/ACK Flood攻击:这种攻击方法是经典最有效的DDOS方法,可通杀各种系统的网络服 务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗 尽或忙 ...

  7. C#中的Infinity和NaN

    C#中double和float类型有两个特殊值: Infinity(无穷大):5.0 / 0.0 = Infinity NaN(not a number):0.0 / 0.0 = NaN 计算表达式 ...

  8. 用Node.JS+MongoDB搭建个人博客(安装环境)(一)

    Node.JS是什么? Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效. Nod ...

  9. TensorFlow conv2d原理及实践

    tf.nn.conv2d(input, filter, strides, padding, use_cudnn_on_gpu=None, data_format=None, name=None) 官方 ...

  10. swift3.0 基础练习-实现99乘法表

    用的方法比较笨 大致效果是这样 思路: 第一行 拼接一次 第二行 拼接二次 ... 第九行 拼接九次 //num控制个数 var num = 1 //result为结果 var result = &q ...