DES(Detection with Enriched Semantics)算法详解

论文背景

论文全称:Single-Shot Object Detection with Enriched Semantics
论文链接:https://arxiv.org/abs/1712.00433
论文日期:2018.4.8

本文基于丰富语义信息的方式提出了一个新型的单阶段神经网络算法,使用一个特殊的深度神经网络结构来丰富目标检测特征的语义。整个算法结构可以被分为两个部分:

  • 一个是语义分割分支(semantic segmentation branch),是一个由弱分割真实标签监督的模型,不需要过多的注释;
  • 一个是全局激活模型(global activation module),是一个以自监督的模式去学习通道与目标类别之间的关系。

实验结果

本文最终在PASCAL VOC 与MS COCO数据集上进行了综合实验。基于VGG16设计的DES算法,在VOC2007测试集上实现了81.7mAP的准确率,在COCO的测试-验证集上实现了32.8mAP的准确率,并且每张图片只花费31.5ms。

算法简介

SSD算法是使用一个多层的特征图生成结构,通过分层的方式学习语义信息,低层特征图检测更小的目标,高层的特征图检测大目标。但是低层特征只具备基础视觉信息,而没有很多语义信息,这会导致两个问题:(1)只是利用了浅层的特征,并没有用到高层的语义特征,小目标的检测效果不好;(2)不良的低层特征也会破坏高层特征的质量。

算法结构

DES算法将神经网络分为两个部分,一个检测分支与一个分割分支。
在这里插入图片描述

  • 检测分支是图片中的上半部分,也是一个单阶段结构,使用VGG16作为主干,然后在不同的层提取多个特征图。
  • 分割分支是图片中的下半部分,segmentation module用于得到attention mask,从而提高low level的feature map的语义信息。global activation module用于提高high level的feature map的语义信息。使用强语义信息来增强低层检测特征图,以低层检测特征图作为输入(边界框级的分割真实标签:下半部分的带黄色边框的黑色图),由边界框级的分割真实标签(弱分割真实标签)来监督学习语义分割,从而使用语义上有意义的特征来增强低级语义特征。

语义信息增强过程

在这里插入图片描述
B:低层检测特征;
C:语义意义特征;
D:增强的低层特征;既具有基础视觉特征,又具有语义信息。
原始低级特征图的每一个通道都被语义上有意义的注意力图激活。全局激活块可以删除位置信息,并以自我监督的方式学习特征检测通道和对象类之间的语义关系,这增加了更高层的对象检测特征映射的语义信息。

与之前算法的区别

语义分割要求将每一个像素进行分类,DeepLab与FCN都是对每一个像素的标签进行训练,本文证明,针对边界框或图像级的弱标签也能进行语义分割。

特征级联的方法在之前就有使用,之前有方法通过连接到更高级的特征来增强检测特征,(Object detection via a multiregionandsemanticsegmentation-awarecnnmodel),本文是利用分割信息在低级特征图上进行激活而不是连接。

算法细节

Semantic enrichment at low level layer

以conv4_3的语义增强为例,以conv4_3与边界框级别的分割真实标签为输入,生成一个具有相同维度的语义上有意义的特征图,这个特征图通过像素级的矩阵相加方式来激活conv4_3。
在这里插入图片描述
低级特征图:
在这里插入图片描述
分割真实标签:
在这里插入图片描述在这里插入图片描述
N:类别数量
分割分支进行每个像素的分割,使用一个softmax函数,feature map的某个点在所有channel上的累加和是1,而且值最大的那个点对应的标签就是分割得到的图像中对应点的标签。 :

在这里插入图片描述
中间步骤结果:
在这里插入图片描述
g(x)会被用来生成语义上有意义的特征图:
在这里插入图片描述
从而激活低级检测特征图,值被返回到检测分支,并覆盖原始特征图:
在这里插入图片描述
生成像素级边界框:
对于一个像素Ghw在一个边界框内部,那么将这个边界框的标签设为Ghw的标签,如果一个像素点同时落在多个边界框内部,则选择尺寸最小的那个。若像素点没有落在任何边界框内部,那么就定义为背景。

Semantic enrichment at higher level layers

我们对于更高层的分割,使用了global activation module,通过消除空间信息,能学习通道与对象类之间的关系。
包含三部分:

  1. 空间池化,生成Z;
    在这里插入图片描述
  2. 通道级学习,生成激活特征;
    在这里插入图片描述
  3. 传播倍增,X被激活;
    在这里插入图片描述
    在整个过程中保持:
    在这里插入图片描述

多任务训练

交叉熵损失函数:
在这里插入图片描述
原始目标检测损失函数:
在这里插入图片描述
新损失函数:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/woduitaodong2698/article/details/85327403
今日推荐