Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记

前言

目前的single-stage目标检测器依然存在两个问题:

  • 在检测小目标时,性能不是很好。比如RetinaNet在检测COCO上的大目标时能达到47的AP,而小目标的AP只有14;
  • 大多数single-stage检测器采用在ImageNet上经过预训练的backbone来进行分类任务,然后利用目标检测数据集进行微调以实现快速收敛。但是分类任务和定位任务之间仍存在较大差异,尤其是在IoU阈值较高的情况下。

虽然一些研究表明从零开始训练检测模型可以弥补这种差异,但与基于微调的网络相比,从零开始训练一个非常深的网络需要更长的训练时间。由此,本文将预训练与从零开始训练相结合,提出了一种新的检测框架,该框架包含一个经过预训练的backbone,和一个轻量级从零开始训练的辅助网络。辅助网络为backbone提供低/中级信息的补充,有利于中小目标的检测。

由于低/中级信息和高级语义对于不同尺度的目标检测(尤其是小目标)来说都是非常重要的,虽然一些检测器使用FPN来进行特征表示,但在FPN中,由于是top-down结构,因此它只向前面的层注入了高级信息。因此本文还提出一种双向网络,将高级信息与前一层融合,低/中级信息与后一层融合,以实现更精确的多尺度目标检测。


方法实现

Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
上图是本文提出的检测框架的整体结构,主要由三部分组成:

  • 标准的SSD网络;
  • 轻量级的从零开始训练的网络(LSN);
  • 双向网络

1. SSD

本文采用经过预训练的SSD作为backbone,选取conv4_3,FC_7,conv8_2,conv9_2,conv10_2,conv11_2作为主干网络特征。

2. LSN

LSN网络与SSD的特征层紧密相连,它用来构建低/中级的特征表示,称为LSN特征。
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
上图是SSD中的特征提取策略,通过多个卷积块和最大池化操作以最终生成语义丰富的特征。这一类特征提取策略对于分类任务来说是非常有帮助的,因为分类任务要求的是平移不变性,即不论目标位于何处,最后输出的类别信息应该是一致的。但是在目标检测中,还需要进行目标定位,因此需要准确的目标轮廓信息,而低/中级特征正好包含这种轮廓信息,因此非常重要。

Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
上图是LSN中的特征提取策略,这样做是为了弥补backbone在提取特征时的损失。首先通过池化操作对输入图像进行下采样,将其大小调整到SSD中第一层的输入大小。然后被送入到一个轻量级的连续操作(LSO)中,LSO包括卷积、批归一化和ReLU层。

LSN的参数是随机初始化,然后从零开始训练的,它的结构类似于SSD的金字塔特征层次结构:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
其中nn表示特征金字塔的层数,与相应的SSD的特征层的大小相匹配。

首先对输入图像II进行下采样,得到与SSD第一层相同的大小,然后使用下采样后的图像ItI_t生成初始LSN特征sint(0)s_{int(0)}
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
其中φint(0)\varphi_{int(0)}表示一系列操作,包括一个3×33 \times 3和一个1×11 \times 1的卷积块。然后由初始特征sint(0)s_{int(0)}生成中间特征sints_{int},使用第(k1)(k-1)个中间特征来生成第kk个中间特征:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
其中k=(1,...,n)k=(1,...,n)φint(k)()\varphi_{int(k)}(\cdot)表示一个3×33 \times 3的卷积块。当k=1k=1时,那么第(k1)(k-1)个中间特征其实就是初始LSN特征。最后,对第kk层的中间特征应用一个1×11 \times 1的卷积块,以生成SpS_p在第kk个层级上的LSN特征:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
其中φtrans(k)()\varphi_{trans(k)}(\cdot)表示一个1×11\times 1的卷积块,用来将LSN特征的通道数转换为与相应的SSD特征相匹配。

总结一下就是,先根据经过下采样的图像得到LSN的初始特征,然后采用递归的方式依次得到第kk个层级的中间特征,最后由这些中间特征得到第kk个层级的LSN特征。然后将这些特征注入到相应的SSD特征层中,与主干网络特征相结合。

3. 双向网络

双向网络在检测网络中传播低/中级和高级语义信息,主要包括bottom-up通路和top-down通路。

bottom-up通路

Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
如上图所示是bottom-up通路,它把backbone和LSN特征结合起来,将不同层级的结合后的特征以级联的方式进行前向传播,得到前向特征(forward feature),将这一过程称为自底向上的特征传播(BFP),第kk层前向特征为:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
sks_k表示LSN在第kk层得到的特征,oko_k表示SSD在第kk层得到的主干网络特征,wk1w_{k-1}表示一个3×33 \times 3的卷积块,步长为2,fk1f_{k-1}表示第(k1)(k-1)层的前向特征,ϕk()\phi_k(\cdot)表示一系列操作,包括ReLU和3×33 \times 3的卷积块。

f1f_1被表示为:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记

最后,所有层级的前向特征构成一个前向特征金字塔:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记

top-down通路

Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
为了进一步将高级语义特征从后一层注入到前一层,还引入了top-down通路,如上图所示,它将后一层的所有特征连接到当前层,它通过网络中独立的并行连接来传播高级语义信息。后向特征金字塔BpB_p就可以表示为:
Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
接下来具体说一下bnb_n是怎么得到的。首先用一个1×11 \times 1的卷积块来降低FpF_p中所有前向特征的通道数,对于第kk个层级,对kk之后所有层级的前向特征进行降维并融合到一起,然后连接到当前层级kk的前向特征,以得到后向特征bkb_k,进行最终的预测:

Learning Rich Features at High-Speed for Single-Shot Object Detection 论文笔记
WiW_i是一个1×11 \times 1的卷积块用于降低特征的通道数,WmkW_{mk}是一个1×11 \times 1的卷积块用于融合所有高级特征,μk\mu_k是上采样操作,γk()\gamma_k(\cdot)是一个3×33\times 3的卷积块用于融合所有的前向特征。

注意到第nn层的前向特征已经是*的语义特征了,因此它不需要任何来自前面层的语义特征。也就是说,在top-down网络中,如果本身位于特征层中的最高层,那么就不要融合任何底层特征,这意味着最高层的前向特征可以被直接用作预测。

总结来说就是:

  • bottom-up网络涉及到的是LSN特征和主干网络特征,对于层级kk,将LSN特征sks_k和主干网络特征oko_k融合之后,连接到前一层的前向特征fk1f_{k-1},从而得到层级kk的前向特征fkf_k
  • top-down网络是在前向特征金字塔FpF_p的基础上进行特征融合的,对于层级kk,先将kk之后左右层级的前向特征进行融合,然后连接到当前层级kk的前向特征fkf_k,从而得到层级kk的后向特征bkb_k

结论

LSN中有一个特征金字塔结构SpS_p,它的层数与SSD的层数相匹配,每层最终都会得到一个LSN特征,LSN特征其实就是对SSD特征的补全,它主要关注低/中级特征。LSN特征与SSD特征的结合发生在bottom-up网络中,并由此得到前向特征FpF_p。然后top-down网络在前向特征FpF_p的基础上得到后向特征BpB_p,最终用于预测的就是BpB_p