《Single-Shot Object Detection with Enriched Semantics》论文笔记

1. 概述

导读:这篇文章提出了新的一阶段检测算法Detection with Enriched Semantics(EDS),该算法在检测网络中通过semantic Segmentation branch以及global activation module增强了目标检测的语义特征,采用的是attention的思想增强特征中重要的成分。global activation module使用自监督的方法学习通道与目标类别之前的关系。基于VGG16的EDS算法在VOC2007数据集上获得了81.7的mAP,COCO上获得32.8的mAP,帧率为31.5FPS。

这篇文章的算法是基于SSD算法的改进,在SSD算法中大目标使用高阶的特征去预测,小目标使用浅层的特征去预测。文中指出这样会带来两个问题:

  • 1)由于浅层的特征只是一些基本的视觉特征,就使得小目标检测性能并不好;
  • 2)由于浅层特征的不理想也会影响高层次特征的检测性能;

对于第一个问题:使用图1中左下角的语义分割分支用于增强检测网络中的低层次特征。图2中的几幅图很好解释了语义分割分支增强特征的过程,原始的低层次特征(B)被语义分割的特征(C)**(增强)之后得到强化之后的特征(D),这样特征(D)就兼容了语义分割和目标检测的特征,这个过程可以看做是attention的过程。
《Single-Shot Object Detection with Enriched Semantics》论文笔记
对于第二个问题:文章提出的网络结构还加入了Global Activation Module,该模块排除了定位的信息,使用自监督的方式学习特征通道与目标类别之间的关系,这样可以增强在较高层级中目标检测特征的语义信息。

文章的贡献:通过使用语义分割分支以及Global Activation Module增强了特征的语义信息,从而提升检测器的检测性能。为毛不在高层次的特征里面也使用Segmentation增强呢?文中给出的解释是低层次的特征里面已经做过了这样的操作,而且高层次的特征本来就是高度融合,分辨率也比较小,分割并不适合;

2. 网络设计

2.1 网络整体结构

《Single-Shot Object Detection with Enriched Semantics》论文笔记

2.2 低层次特征的的语义增强

这里的语义分割是使用弱监督的形式,使用每个目标框的标注作为该分类的分割标注,这样就不需要额外的分割数据标注。整个的语义分割分支的结构见下图3所示,其中涉及到的先关过程及字母标志解析见下文。
这里使用XRCHWX\in R^{C*H*W}代表检测分支的低层次特征图,G{0,1,2,,N}HWG\in \{0,1,2,\dots,N\}^{H*W}代表分割的GT,其中的参数NN代表检测分类的数目(VOC时为20,COCO为80),语义分割的输出YR(N+1)HWY\in R^{(N+1)*H*W},因而可以用数学形式表示为:
Y=F(g(X))Y=F(g(X))
其中满足:Y[0,1](N+1)HW,c=0NYc,h,w=1Y\in [0,1]^{(N+1)*H*W},\sum_{c=0}^{N}Y_{c,h,w}=1
分割的中间结果gRCHWg\in R^{C^{'}*H*W}是分割的中间结果,用于产生最后的分割结果也用来生成**特征Z=H(g(x))RCHWZ=H(g(x)) \in R^{C*H*W}。之后**特征通过与原始特征点乘得到激励之后的输出,该输出被用来替换掉原始的输入XX
《Single-Shot Object Detection with Enriched Semantics》论文笔记
对于分割任务中GT的设置,分割的标注是来自于检测标注信息,其标注产生的原则见下图4:
《Single-Shot Object Detection with Enriched Semantics》论文笔记

2.3 高层次特征的语义增强

高层次的特征由Global Activation Module完成,该模块由三个阶段组成:spatial pooling、channel-wise learning和broadcasted multiplying。对于输入的特征XRCHWX\in R^{C*H*W},spatial pooling可以被描述为:
Zi=1HWh,wXihwZ_i=\frac{1}{HW}\sum_{h,w}X_{ihw}
chanel-wise learning由**函数产生:
S=Sigmoid(W2ReLU(W1Z))RC11S=Sigmoid(W_2 \cdot ReLU(W_1 Z))\in R^{C*1*1}
对于broadcasted multiplying就是对应通道上的点乘了。

2.4 网络的损失函数

对于原有的检测网络其定位的损失描述为:Ldet(I,B)L_{det}(I,B),而在文章中有为其增加了分割分支,因而还需要加入分割分支的损失:
L(I,B,G)=Ldet(I,B)+αLseg(I,G)L(I,B,G)=L_{det}(I,B)+\alpha L_{seg}(I,G)
文章给出的结论显示α=0.1\alpha=0.1所取得的效果是最好的。

3. 实验结果

在VOC数据集上的检测性能:
《Single-Shot Object Detection with Enriched Semantics》论文笔记
COCO数据集上的检测性能:
《Single-Shot Object Detection with Enriched Semantics》论文笔记