Couple Net论文阅读笔记

来源:互联网 发布:jenkins python pdf 编辑:程序博客网 时间:2024/06/05 16:07

CoupleNet: Coupling Global Structure with Local Parts for Object Detection

背景:

R-FCN在利用了FCN之后,目标检测的效果仍然十分可观并在速度上有较大提升,比faster r-cnn快2.5-20倍,R-FCN利用的是卷积产生的位敏得分feature map(一个ROI的k*k个位置对每一类均产生一个score map),基于此进行分类等后续处理,和原来的faster r-cnn的roi pooling处理不同,R-FCN强调了位置(局部信息)。该篇论文的作者抓住R-FCN没有利用全局信息的这个点对R-FCN进行了改进。(实际上,原来的roi pooling是有利用到全局信息。那如何整合局部信息和全局信息,那就两种策略一起用!见后文)
见论文中的例子:


这里写图片描述

检测图像上的沙发,只利用R-FCN(提取局部信息)置信度非常低,全局信息就显的很需要,因为这里轮廓让我们更能分出沙发。

主要贡献:

  • 融合了全局信息和局部信息用于目标检测
  • 研究了不同的针对全局信息和局部信息的融合策略
  • 在VOC和COCO上取得了领先的效果

网络结构:


这里写图片描述

由图可见,整体框架非常清晰,从RPN生成了候选ROI之后,分两路前进,一路为local FCN,PSRoI pooling提取局部信息;一路为Global FCN提取全局信息,最后融合在一起做判定。

结构详解:

Local FCN:

提取局部信息实际上就是R-FCN部分,在结构图的conv5之后,经过1*1大小,channel数为 k*k*(c+1)的卷积核,得到位敏feature map(K*K代表的是把ROI分成K*K个部分,c+1代表类别数,这里k默认取7),然后利用产生的feature map,进行position-sensitive pooling,得到(c+1)维向量,用于后面分类,具体可查阅R-FCN论文

Global FCN:

介绍背景的时候也说过了,自SPP-NET以来的ROI pooling是具有提取全局特征的特性的,因为它就像把ROI对应的feature map压缩了一下,但是大体信息还是保留的,因此作者在提取全局信息这一块就采用了原始的ROI pooling,对照结构图,ROI pooling之后仅加了两层卷积层做进一步处理,这里k也取得是7,因此Global分支,相当于一个小型的faster r-cnn,因此该网络,比R-FCN稍慢,但比faster r-cnn快。
另外,作者提到上下文信息的重要性,在全局信息提取分支,作者引入了上下文信息(什么是上下文信息?参考文中的话就是船一般是开在水面上这种相关性),如何引入上下文信息:作者是通过将ROI对应的feature map往外扩大一倍的方式获取,为什么这么做,作者给出的解释:

Despite the higher layers in deep neural network can involve the spatial context information around the objects due to the large receptive field, Zhou et al. [28] have shown that the practical receptive field is actually much smaller than the theoretical one. Therefore, it is necessary to explicitly collect the surrounding information to reduce the chance of misclassification.


这里写图片描述

对于图(a)来说,仅利用全局信息是不够的,而对于图(b)来说,显然全局信息这里发挥的作用更大。

Normalization与合并策略:

since features extracted form different layers of CNN show various of scales, it is essential to normalize different features before coupling them together. Bell et al. [1] proposed to use L2 normalization to each RoIpooled feature and re-scale back up by a empirical scale, which shows a great gain on VOC dataset. In this paper, we also explore two different normalization ways to normalize the output of local and global FCN: an L2 normalization layer or a 1x1 convolutional layer to learn the scale

这里规范化不知道具体是怎么做的,留个问号?

实验结果如下:作者选择的是通过卷积自己学习这个scale,合并的时候是对应元素相加


这里写图片描述

对应元素相乘不稳定,对应元素取最大值,则失去了合并两者的优点,相加在一定程度上也类似ResNet shortcut连接的思想,这样两者起互补的作用。

实验结果:


这里写图片描述
这里写图片描述

表4想表明作者的模型不需要ensemble,ensemble对他们的模型来说没有太大帮助,一定程度上表明其鲁棒性

还有一些实验结果见论文,由表2可以看出速度可以达到8到9fps,准确率仍然得以保持,相比faster r-cnn还是快得多。

参考文献:

Couple Net