[上下文建模系列]Inside-outside net

文章标题:Inside-outside net: Detecting objects in context with skip pooling and recurrent neural network
解决的关键问题:图像中的上下文关系建模问题

**motivation:**众所周知,上下文和多尺度表示对于精确的视觉识别是很重要的。
本文要做的工作:提出Inside-Outside Net(ION), 一个目标检测器能够应用感兴趣区域的内部信息以及外部信息。在感兴趣区域之外的上下文信息是利用空间循环神经网络来整合。Inside这部分,我们利用跳级池化来提取多喝尺度和水平的信息。

通过实验,我们评估了设计空间,并给读者提供了什么样的tricks是比较重要的这样的overview。

该文章的优点:在2016年提出的网络中,精度是最高的,超过Faster-RCNN\HyperNet\MRCNN

2. Prior work

Spatial RNNs
循环神经网络(RNNs)有很多的扩展版本,包括双向RNNs,即同时处理从左到右和从右到左的两个序列。作为一个低复杂度的选择,文献[2,40]在特征图上以空间(或横向)运行RNN来代替卷积。本文提出为语义分割和图像分类分别应用一个空间RNNs。我们把空间RNNs作为一个计算上下文特征的机制应用到目标检测中。

Skip-layer connections
Skip-layer connections是一个传统的神经网络的思想,其中来自较低层的激活跳过中间层,直接连接到最高层。具体的连接和组合方法因模型和应用而异,我们的跳级连接应用的是被Sermanet 等人应用到行人能检测中的(多阶段特征)。和文献34中的内容不同,我们发现在结合不同的层之前对对不同层的activations进行L2正则化是很重要的。
当融合不同的层之前进行activation正则化的需要师由Liu等人提出(ParseNet),这个ParseNet是在语义分割为了充分利用全局图像的背景特征而提出的。跳级连接在语义分割也很流行,比如说文献【24】中的全连接卷积网络,以及实例分割,比如文献【12】中的hypercolumn特征

3. Architecture: Inside-Outside Net(ION)

在这里插入图片描述
ION的框架如Figure2所示,一个检测器和提出的描述ROI的inside和outside的描述子。
首先利用一个深度ConvNet来处理一张图片,并将ConvNet的每一个阶段的卷积特征图存储起来。在网络的顶部,利用两个连续的4向IRNN来计算能够全局和局部地描述图片的上下文信息。这些上下文特征有着与conv5同样的维度。除此之外,我们有大量的可能包含对象的建议区域(ROIs)。这个工作在每一张图片中都有做。对于每一个ROI,我们从多个层(conv3, conv4, conv5和上下文特征)获得一个固定长度的特征描述器。这些描述其都被L2标准化,级联,重新缩放,以及降维(11卷积)来产生对每一个建议区域的固定大小为5127*7的特征描述器。两个全连接层处理每一个描述器并产生两个输出:一个one-of-K的目标分类预测(softmax),以及对建议区域的调整。

3.1 多层池化
现有的成功的检测器比如Fast R-CNN, Faster R-CNN以及SPPnet, 都是在VGG16的最后一个卷积层池化。为了把这个操作扩充到多层,我们一定要考虑维度和振幅(??)的问题。
因为我们知道在ImageNet上预训练对于实现SOTA的效果是很重要的,并且我们希望能应用已经训练的VGG16网络,因此保持已经有的层的形状设定很重要。因此,我们想要池化更多的层,最终的特征一定也是形状为51277的,再把这个结果送到第一个全连接层,也就是fc6中。除了匹配最初的大小,我们也要匹配原始激活振幅,从而能够把我们的特征送到fc6中。

为了匹配需要的51277的形状,我们把每一个池化的特征沿着通道级联,并通过1*1的卷积进行降维。为了匹配最初的振幅,我们L2规范化每一个池化后的ROI并重新缩放为经验决定的尺度。我们的试验应用了一个“缩放层”,可学习的每个通道的大小初始化为1000(在训练集上测量)。

最终,随着更多的特征被级联到一起,我们需要相应地减小1x1卷积的初始权值,所以我们使用“Xavier”初始化

3.2 利用IRNNs的上下文特征
我们的计算上下文特征的框架如Figure3所示.在最后一个卷积层(conv5)的一开始,我们利用RNN横向穿过图像。一般来说,一个RNN是沿着一个序列从左到右,在每一步都消耗一个输入,在更新它的隐藏层状态,在产生一个输出。我们把这个方式扩展到两个维度,即沿着图像每行和每列的RNN。最终,会有四个RNN分别沿着:向右,向左,向下和向上的方向。每一个RNN都会得到和conv5一样的大小。

已经有许多的可能的RNN的形式,GRU,LSTM和tanhRNN。本文使用的是修正的线性单元(Relu)组成的RNN。对于四个独立的IRNN,为了尽可能有效的实施这些IRNN,我们把内部的IRNN的计算分解成独立的逻辑层。通过这种方式,我们能够看到输入到隐藏层的转换是一个11的卷积层,并且它能够在不同的方向共享。共享这样的转换允许我们移除6个卷积层,并对精度的影响可以忽略不计。偏置项能够以同样的方式共享,再融合成一个11的卷积层。IRNN层就只需要应用循环矩阵,以及在每一步实施的非线性化处理。从IRNN得到的输出是通过级联4个方向得到的隐藏层来计算的。

在这里插入图片描述

IRNN的向右的更新原理如下,
在这里插入图片描述
对每一个方向,我们都能并行计算所有的独立的行、列,在利用一个简单的矩阵成把所有的IRNN聚合到一起。在GPU中计算的速度相比于一次只计算一个RNN有了很大的提升。

也利用语义分割的labels来规范化IRNN的输出。当使用这些标签的时候,我们增加一个反卷积和裁剪层。这个反卷积层利用一个32*32的核上采样16倍,并且我们增加一个额外的softmax损失层。

interpretaion

在第一个4方向IRNN(两个IRNN中的一个)之后,我们得到了一个特征图,它概括了图像中每个位置的附近对象。如图4所示,我们可以看到第一个IRNN在每个单元格的左/右/上/下创建了一个特性摘要。随后的1x1卷积将这些信息混合在一起作为降维
在第二个四方向IRNN之后,输出上的每个单元都依赖于输入的每个单元。这样,我们的上下文特性既具有全局性又具有局部性。特征随空间位置而变化,每个单元是图像相对于特定空间位置的全局摘要

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值