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结构,因此它只向前面的层注入了高级信息。因此本文还提出一种双向网络,将高级信息与前一层融合,低/中级信息与后一层融合,以实现更精确的多尺度目标检测。
方法实现
上图是本文提出的检测框架的整体结构,主要由三部分组成:
- 标准的SSD网络;
- 轻量级的从零开始训练的网络(LSN);
- 双向网络
1. SSD
本文采用经过预训练的SSD作为backbone,选取conv4_3,FC_7,conv8_2,conv9_2,conv10_2,conv11_2作为主干网络特征。
2. LSN
LSN网络与SSD的特征层紧密相连,它用来构建低/中级的特征表示,称为LSN特征。
上图是SSD中的特征提取策略,通过多个卷积块和最大池化操作以最终生成语义丰富的特征。这一类特征提取策略对于分类任务来说是非常有帮助的,因为分类任务要求的是平移不变性,即不论目标位于何处,最后输出的类别信息应该是一致的。但是在目标检测中,还需要进行目标定位,因此需要准确的目标轮廓信息,而低/中级特征正好包含这种轮廓信息,因此非常重要。
上图是LSN中的特征提取策略,这样做是为了弥补backbone在提取特征时的损失。首先通过池化操作对输入图像进行下采样,将其大小调整到SSD中第一层的输入大小。然后被送入到一个轻量级的连续操作(LSO)中,LSO包括卷积、批归一化和ReLU层。
LSN的参数是随机初始化,然后从零开始训练的,它的结构类似于SSD的金字塔特征层次结构:
其中表示特征金字塔的层数,与相应的SSD的特征层的大小相匹配。
首先对输入图像进行下采样,得到与SSD第一层相同的大小,然后使用下采样后的图像生成初始LSN特征:
其中表示一系列操作,包括一个和一个的卷积块。然后由初始特征生成中间特征,使用第个中间特征来生成第个中间特征:
其中,表示一个的卷积块。当时,那么第个中间特征其实就是初始LSN特征。最后,对第层的中间特征应用一个的卷积块,以生成在第个层级上的LSN特征:
其中表示一个的卷积块,用来将LSN特征的通道数转换为与相应的SSD特征相匹配。
总结一下就是,先根据经过下采样的图像得到LSN的初始特征,然后采用递归的方式依次得到第个层级的中间特征,最后由这些中间特征得到第个层级的LSN特征。然后将这些特征注入到相应的SSD特征层中,与主干网络特征相结合。
3. 双向网络
双向网络在检测网络中传播低/中级和高级语义信息,主要包括bottom-up通路和top-down通路。
bottom-up通路
如上图所示是bottom-up通路,它把backbone和LSN特征结合起来,将不同层级的结合后的特征以级联的方式进行前向传播,得到前向特征(forward feature),将这一过程称为自底向上的特征传播(BFP),第层前向特征为:
表示LSN在第层得到的特征,表示SSD在第层得到的主干网络特征,表示一个的卷积块,步长为2,表示第层的前向特征,表示一系列操作,包括ReLU和的卷积块。
被表示为:
最后,所有层级的前向特征构成一个前向特征金字塔:
top-down通路
为了进一步将高级语义特征从后一层注入到前一层,还引入了top-down通路,如上图所示,它将后一层的所有特征连接到当前层,它通过网络中独立的并行连接来传播高级语义信息。后向特征金字塔就可以表示为:
接下来具体说一下是怎么得到的。首先用一个的卷积块来降低中所有前向特征的通道数,对于第个层级,对之后所有层级的前向特征进行降维并融合到一起,然后连接到当前层级的前向特征,以得到后向特征,进行最终的预测:
是一个的卷积块用于降低特征的通道数,是一个的卷积块用于融合所有高级特征,是上采样操作,是一个的卷积块用于融合所有的前向特征。
注意到第层的前向特征已经是*的语义特征了,因此它不需要任何来自前面层的语义特征。也就是说,在top-down网络中,如果本身位于特征层中的最高层,那么就不要融合任何底层特征,这意味着最高层的前向特征可以被直接用作预测。
总结来说就是:
- bottom-up网络涉及到的是LSN特征和主干网络特征,对于层级,将LSN特征和主干网络特征融合之后,连接到前一层的前向特征,从而得到层级的前向特征。
- top-down网络是在前向特征金字塔的基础上进行特征融合的,对于层级,先将之后左右层级的前向特征进行融合,然后连接到当前层级的前向特征,从而得到层级的后向特征。
结论
LSN中有一个特征金字塔结构,它的层数与SSD的层数相匹配,每层最终都会得到一个LSN特征,LSN特征其实就是对SSD特征的补全,它主要关注低/中级特征。LSN特征与SSD特征的结合发生在bottom-up网络中,并由此得到前向特征。然后top-down网络在前向特征的基础上得到后向特征,最终用于预测的就是。