《ThunderNet: Towards Real-time Generic Object Detection》
(一)论文地址:
https://arxiv.org/pdf/1903.11752.pdf
(二)解决的问题:
如今基于卷积神经网络的目标检测准确率越来越高,但是需要的计算开销也越来越大,使得目标检测真正地应用在资源受限场景较为困难;
one-stage 方法(如 SSD)虽然计算消耗和复杂度较小,但是在目标检测框的预测上,与 two-stage 方法(如 Faster-RCNN)还有较大差距;
因此,作者在这里探索了如何将具有高准确度的 two-stage 方法,应用到嵌入式或者其他计算资源有限的场景中,提出的 ThunderNet 实现了ARM平台上的第一个实时检测器和最快的单线程速度;
(三)ThunderNet 的核心思想:
作者提出,如今大部分的实时目标检测器的主干网络都倾向于使用复杂的分类网络和较大的输入图片,但是这样会大大增加计算消耗;
并且,目标检测和图像分类网络有所不同:目标检测需要大的感受野和浅层信息(low-level feature)来增强定位能力,而图像分类则需要深层语义信息;
为此,作者在 ThunderNet 中提出了以下几点:
- 基于 ShuffleNetV2 提出了专门用于目标检测任务的、具有较大感受野和更多融合信息的 backbone(主干网络),称之为 SNet;
- 基于 Light-Head R-CNN 提出了进一步压缩模型的 RPN 网络和 R-CNN 子网络,进一步减小参数和扩大感受野;
- 提出了 Context Enhancement Module(上下文增强模块,简称 CEM),用来代替图像金字塔的繁杂操作,融合不同感受野大小的特征层并扩大感受野;
- 提出了 Spatial Attention Module(空间注意力模块,简称 SAM),用来增强训练过程中的前景信息,并优化特征层的特征分布;
(四)Backbone Part——SNet:
SNet 的设计理论基于以下几点:
1. Receptive Field(感受野):
感受野的大小在 CNN 模型中非常重要,因为局部感知的特点,卷积只能够接收到感受野之内的信息;
因此,较大的感受也会影响更多的上下文信息,并且使得大范围内像素与像素之间的联系更为紧密,这对目标检测和语义分割任务非常重要;
2. Early-stage and Late-stage Features:
在主干网络中,较浅的(Early-stage)特征层更大,并且包含了更多浅层的描述空间特征的信息(比如边缘,角,颜色等);较深的(Larly-stage)特征层更小,包含的更多的是深层次的语义信息;
总体来说,目标检测(Localization)对于浅层信息更为敏感,而目标分类(classification)对于深层信息更敏感;
并且在研究中发现,目标检测(Localization)相比于分类更为困难,因此浅层信息就至关重要;而且深层信息对于提高分类和坐标框精度也有重要作用;
3. SNet 的结构:
这里作者提出了可以使用 SNet49(更快)、SNet535(更准确)、SNet146(平衡)作为主干网络;
ShuffleNetV2 的结构如图:
对于 SNet49,我们将 ShuffleNetV2_49 中的 3×3 DWconv(深度分离卷积)全部换成 5×5 大小,在不过多增加计算消耗的前提下,提高特征层的感受野大小(从121提高到了193);并将 ShuffleNetV2_49 中的 Conv5 通道数压缩为512,并增加浅层网络的通道数,从而在浅层和深层信息中达到平衡;
对于 SNet146 和 SNet535,我们移除 ShuffleNetV2_49 中的 Conv5移除并增加浅层网络的通道数,从而生成更多浅层信息;
(五)上下文增强模块——CEM:
这里作者提出了一个高效的用于扩大感受野、融合不同level特征的模块——Context Enhancement Module(上下文增强模块,简称 CEM);
CEM 融合了三个不同大小的特征层: ,其中 是通过 进行全局平局池化层(global average pooling)得到的,从而生成全局特征;
CEM 的结构如图:
及每个特征层( )都通过 1×1 卷积降维到 channels 大小,其中参数 和 是 Position Sensitive ROI Pooling(位置敏感的候选区域池化,简称PSRoI)的参数,下面会详细介绍;
并且 通过步长为 2 的上采样、 通过 Broadcast 的方法放大到跟 同样大小,然后将三个特征层相加进行融合;
(六)Compressed RPN and Detection Head:
这里基于 MobileNets 将原来 RPN 网络中的 256-channels 3×3卷积,分解成了一个 5×5 的 DW conv和一个 256-channels 1×1卷积,从而进一步扩大 RPN 模块的感受野并减少计算复杂度;
同时预选框采用了 共 5 个大小, 共 5 种长宽比;
其他的参数跟 RPN 网络相同;
(七)Position Sensitive ROI-Pooling:
Position Sensitive ROI Pooling(位置敏感的候选区域池化,简称PSRoI)是检测框架 R-FCN 的主要创新点;
其主要思想是在特征聚集时人工引入位置信息,从而有效改善较深的神经网络对物体位置信息的敏感程度;同时,R-FCN的大部分操作都直接对整张图片进行,这也大大优化了网络的运行速度;
如上图,每一个候选区域(ROI)被平均分割成 个矩形单元,前序特征图先通过一层 1×1 的卷积核生成通道数为 的特征图;
此时, 代表一个ROI里所有矩形单元的数量, 代表所有的类别数加上背景;
这 张特征图每 张分成一组、共包含 组,每组负责向对应的矩形单元进行响应;
池化每一个ROI时,各个点(一共 个),均由上一层中对应分组的对应位置区域通过平均池化获得,由此获得一组 张特征图;
最后,将这些特征图经过全局平均池化,得到 维的向量,即为目标分类(含背景)的预测向量;
注意 ThunderNet 中 不再代表目标分类数目,而是记为参数 ;
(八)空间注意力模块——SAM:
Spatial Attention Module(空间注意力模块,简称 SAM)用来增强训练过程中的前景信息,并优化特征层的特征分布;
SAM 的结构如图:
即将 RPN 网络的输出 先通过函数 (即 245-channels 1×1 卷积)降维,在通过BatchNorm 和 Sigmoid 函数激活,使其矩阵值分布限制在区间 之间,再与 CEM 的输出 做点乘,最终得到 ;
(九)实验结果:
简单来说,又快又准: