Inside-Outside Net (ION)

论文:Inside-Outside Net: Detecting Objects in Context with Skip Pooling and
Recurrent Neural Networks
发表时间:2016
发表作者:(Cornell University)Sean Bell, C. Lawrence Zitnick,(Microsoft Research)Kavita Bala, Ross Girshick
论文链接:论文链接

本文主要关注目标检测过程中的上下文信息以及多尺度信息两个方面,提出了Inside-Outside Net:
Inside Net: 采用skiping pooling的方式连接不同卷积层输出的feature map,实现多尺度特征的融合
Outside Net: 采用IRNN的结构,整合contextual infomation
在2016年提出的网络中,精度是最高的,超过Faster-RCNN\HyperNet\MRCNN.

  • VOC2007, with a mAP of 79.2%,
  • VOC 2012, with a mAP of 76.4%,
  • COCO, with a mAP of 24.9%.

框架

ION整体框架

采用的是Fast RCNN的基本框架(VGG),通过SS和EB提取Proposal,对于每一个ROI,提取conv3/conv4/conv5对应的特征,fix到固定的长度;
然后将conv5输出的feature map输入到两个IRNN单元提取上下文信息。同样,在输出的context feature map上提取ROI对应的特征,fix到固定长度。
然后将multi-scale特征和context特征先normalize/scale(不同feature map激活值不一样,会导致unstable learning),然后concate到一起。通过1*1卷积进行降维。输出到分类器去进行cls和reg.

spatial Recurrent Neural Network (RNNs)

RNNs在每一层空间上,通过水平或者垂直的四个方向进行提取上下文信息。使用两个RNNs,保证可以获取整张image的信息。
对比其他common methods for adding contextual information: 还有 global average pooling 和 additional convolutional layers,都很相似。

skip pooling

将multi-scale的feature maps经过roi-pooling layer之后pooling到7x7大小的feature maps,将从不同scale pooled得到的feature maps进行concatenate,然后再利用 1x1Conv layer将feature maps resize到512x7x7的大小。

context features with IRNNs

对于一个feature maps,有四个独立的RNN对其进行上下左右四个方向的移动。

ION2

总结:
(1)paper 使用了multi-scale 进行object detection,在浅层Conv层对其feature maps进行roi-pooling, 增强了对small object的detect能力。
(2)使用了RNN对其周围的region的信息,增强feature信息,促进classification。

Paper Reading:ION的更多相关文章

  1. Paper Reading: Stereo DSO

    开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...

  2. [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph

    <Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...

  3. Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection

    Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11  19:47:46   CVPR 20 ...

  4. Paper Reading: In Defense of the Triplet Loss for Person Re-Identification

    In Defense of the Triplet Loss for Person Re-Identification  2017-07-02  14:04:20   This blog comes ...

  5. Paper Reading - Attention Is All You Need ( NIPS 2017 ) ★

    Link of the Paper: https://arxiv.org/abs/1706.03762 Motivation: The inherently sequential nature of ...

  6. Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★

    Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...

  7. Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★

    Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...

  8. Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )

    Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...

  9. Paper Reading - Mind’s Eye: A Recurrent Visual Representation for Image Caption Generation ( CVPR 2015 )

    Link of the Paper: https://ieeexplore.ieee.org/document/7298856/ A Correlative Paper: Learning a Rec ...

随机推荐

  1. Flutter状态管理Provider,简单上手

    在之前的文章中介绍了 Google 官方仓库下的一个状态管理 Provide.乍一看这俩玩意可能很容易就被认为是同一个东西,仔细一看,这不就差了一个字吗,有什么区别呢. 首先,你要知道的最大的一个区别 ...

  2. LNMP V1.4正式版本安装及新增Let's Encrypt一键安装和其他功能

    军哥的LNMP一键安装包已经有一些年头了,着实给需要在Linux VPS.服务器中安装WEB环境的用户提供不小的帮助,而且每年儿童节都会有较大版本的更新和升级.老左在二月份的时候有体验过LNMP V1 ...

  3. 当你登录Github要求你邮箱验证身份,但是你的邮箱登录不了?

    事情发送在两天前,我如标题所示......,它给出的tyningling@163我真的不知道什么时候注册的了,尝试了N个密码登录不上,验证密保吧,看到手机号突然想起来,这是拿以前同学的手机号注册的.. ...

  4. Hystrix多个线程池切换执行超时带来的问题(图解)

      线程池切换带来的超时问题 ​ 上图有什么问题: Controller的Hystrx线程池已经到了超时时间,而FeignClient的Hystrx线程池还没到超时时间. 场景: Controller ...

  5. codevs1227:方格取数2

    题目描述 Description 给出一个n*n的矩阵,每一格有一个非负整数Aij,(Aij <= )现在从(,)出发,可以往右或者往下走,最后到达(n,n),每达到一格,把该格子的数取出来,该 ...

  6. 后ARM时代,嵌入式工程师的自我修养

    1 嵌入式学习的一些概念理解误区 很多嵌入式初学者认为,学嵌入式,就是学习ARM,就是学习开发板.买一块开发板,然后在上面“移植”u-boot.Linux内核,再使用busybox制作一个根文件系统, ...

  7. docker(学习笔记)

    # 1. Docker介绍## 1.1 什么是容器?## 1.2 容器的前世今生FreeBASE jail ------> Linux vserverchroot ----> 完整的根文件 ...

  8. 如何使用Curator监听zookeeper事件变化

    掌握zookeeper事件监听机制,非常重要,可以说是跨入了进阶的门槛,只有掌握了如何监听某个节点或路径,我们才能在节点变化后,做一些我们想做的事,包括: 1,配置文件同步 2,主从切换 3,分布式队 ...

  9. coverage代码覆盖率的使用~~

    我们看下代码覆盖率的统计~,这个不必太揪心,觉得可以帮助你优化代码,可以看看,也不要带在意~ 1.先在cmd命令窗口在线安装coverage pip install coverage 2.安装完毕后我 ...

  10. C++Primer 5th Chap6 Functions

    局部静态变量,关键字static修饰,即使函数结束执行也不受影响,生存期直到程序终止. java中static的单一存储空间的概念与其或有异曲同工之妙. 函数的形参可以无名,但有名可以使其意义更加清晰 ...