前言
大规模目标检测指的是识别与定位图像中大量的属于不同类别的目标,类别之间的不平衡(有的类别的样本很少)、遮挡、模糊和小目标问题是大规模目标检测面临的主要挑战。当前的很多目标检测方法都是对每个候选区域独立地进行检测,因此需要高质量的特征表示,以及每个类别的充足的标记数据,它们并没有考虑目标之间的语义依赖关系,因此缺乏在常识的帮助下进行推理的能力。
上图说明了全局知识推理的一个例子。当一个人看到图(a)中红色框内的小目标CCTV时,关于这个东西是什么,会经历以下推理阶段:
- 首先在大脑里搜寻有没有曾经见过的东西与它很相似;
- 然后这个人注意到这个东西被装在建筑物上,并且监视着马路上来来往往的车辆,因此这个东西是CCTV!
作者认为人们丰富的常识可以用知识图谱来表达,然后通过视觉推理整合到detection pipeline中。
目前关于视觉推理的工作可以通过知识整合策略被分为两类:
- 不依赖人的先验知识。这种方法对图像自身的空间关系进行建模,也就是说它学到的是每个候选区域内部的关系,而没有考虑候选区域之间的关系,并且学习的方式是隐式的不受控制的,因此系统性能有限;
- 依赖人的先验知识。这种方法通过定义知识图谱将人的语义先验知识整合到网络中,但是它只考虑通过固定的先验知识在图像中的局部传播特征,也就是说,当图像中存在遮挡或模糊问题时,依然不能成功进行推理,并且它通过GRU将3个推理模块堆叠起来,结构非常的复杂。
本文提出Reasoning-RCNN网络,它不仅传播图像上的视觉特征,还涉及到所有类别的高级语义表示,也就是说无需担心一些很弱的视觉特征,比如遮挡和模糊,因为它们可以被推理出来。
Reasoning-RCNN的工作方式有以下几步:
- 建立一个对于所有类别的全局语义池(global semantic pool),每个类别的权重来自于传统目标检测网络中的分类层。
- 设计一个类别级别的知识图谱来编码存在的语义知识(比如属性和关系)。在语义池中的不同类别的高级语义信息根据知识图谱中的连接节点进行传播。但是并没有传播所有的语义信息,因为它们中的有些是噪声,自适应全局推理通过attention机制进一步对当前图像进行自适应编码,以自动发现与每个目标有关的特征的大多数相关类别。
- 被增强的类别信息通过soft-mapping机制被映射回原始region中,可以对先前阶段中不正确的分类结果进行优化,也就是对分类特征的增强。
- 最后每个region中新的被增强的特征与原始特征结合起来,提高分类与定位的性能。
本文采用两种知识形式:关系和属性。
因此Reasoning-RCNN通过增强的特征可以处理遮挡、模糊和小目标问题,并且通过共享和提取frequent/rare类别中的基本特征,可以缓解类别不平衡问题。
设计方法
Reasoning-RCNN可以被堆叠到任意一个one/two stage的目标检测方法中,如下图所示是Reasoning-RCNN的整体结构。从图中可以看出,由base detector中的分类层的权重生成全局语义池,然后知识图谱被引入,在语义池中的不同类别的高级语义信息根据知识图谱中的连接节点进行传播。然后被送入自适应全局推理模块中,输出增强的类别特征,然后将增强的类别特征通过soft-mapping机制映射回原始region中。最终,将每个region中新的被增强的特征与原始特征结合起来,提升分类与定位的性能。接下来着重介绍一下全局推理模型
全局推理模块
设 f = { f i } i = 1 N r , f i ∈ R D f=\lbrace f_{i}\rbrace^{N_r}_{i=1},f_i\in \Bbb{R}^{D} f={
fi}i=1Nr,fi∈RD,是从所有region proposal中提取的视觉特征的集合, N r = ∣ N ∣ N_r=|N| Nr=∣N∣是region proposal的数量。接下来的目的就是增强原始的特征 f f f,具体的方法是利用确定的常识知识形式,比如成对儿的关系知识(man rides bicycles)和一些属性知识(apple is red)。
上图是自适应全局推理模块的整体结构。一个整体的描述就是:
- 全局池化层 M M M整合了所有类别的高级语义表示,其中类别的权重来自于base deteactor中的分类层;
- 然后根据知识图谱 G G G传播 M M M中的信息进行全局推理;
- 引入attention机制强调每个图像中更具有相关性的类别
- 被增强的特征 f f f通过soft-mapping机制被映射回原始proposal中,得到 f ′ f^{'} f′;
- 最后将