论文:CoupleNet: Coupling Global Structure with Local Parts for Object Detection
来源:ICCV 2017
1. Motivation
- R-FCN使用位置敏感得分图( position-sensitive score maps)实现共享计算,提高了目标检测速度,但是,R-FCN的PSRoI pooling只利用到了局部信息,缺少全局信息。
- Faster R-CNN的RoI poiling只使用全局信息,缺少局部信息。
- 由于存在前景类别(如,human and dog)的遮挡,sofa被分成很多小patch,只使用局部信息的PSRoI pooling将其正确识别为sofa的置信度非常低;尽管RoI poiling关注了物体的全部特征,但由于遮挡所引入的噪声太大,Faster R-CNN将其正确识别为sofa的置信度也只有0.45。
- 对此,CoupleNet同时使用PSRoI pooling和RoI poiling,分别提取局部信息和全局信息。
2. CoupleNet
2.1 整体结构
-
以ResNet-101作为backbone,提取CNN特征;
-
Region Proposal Network (RPN) 生成候选区域;
-
PSRoI pooling提取局部信息,得到位置敏感得分图后,得出类别概率和预测边界框(R-FCN head);
-
RoI poiling提取全局信息,并得出类别概率和预测边界框(Fast R-CNN head);
-
对上述2个head所得结果进行耦合(couple)。
-
CoupleNet同时使用了Local FCN分支和Global FCN分支进行检测,那么要考虑的关键问题就是如何对结果进行耦合,以及在耦合之前要如何做normalize。下面以分类子任务进行介绍
2.2 Normalization
为什么在耦合前要进行normalize?
- 来自CNN不同层的特征具有不同的scale:Local FCN分支和Global FCN分支所输出的 C + 1 C+1 C+1维向量是原始输出,并未经过softmax得到类别概率,所以这两者的取值范围是不一样的,比如Local FCN分支输出的 C + 1 C+1 C+1维向量的元素值在 [ 0 , 0.5 ] [0, 0.5] [0,0.5]内,而Global FCN分支所输出的 C + 1 C+1 C+1维向量的元素值在 [ 0 , 0.01 ] [0, 0.01] [0,0.01]内,显然由于取值范围不同,不能直接耦合,所以要normalize到同一取值范围下,保证两者的scale相同。
使用何种normalization?
- L2 normalization
- 1 × 1 1\times1 1×1 convolutional layer to learn the scale
实验结果
- 使用L2 normalization比不使用任何normalization的效果更差。作者对使用L2 normalization前后的向量进行研究,发现使用L2 normalization后不同类别分数之间的差异变小了,使得分类结果更差。L2 normalization后元素会落入单位超球面内。
2.3 Coupling strategy
-
element-wise sum
-
element-wise product
-
and element-wise maximum
-
实验结果表明,element-wise sum的效果最好。目前的ResNet一般也采用element-wise sum作为整合前层信息的有效方式,极大地促进了信息的流通,实现了优势互补。