SpineNet: 通过NAS发现目标检测新架构

2020-09-02 19:01:14 浏览数 (1)

机器暴力美学大佬Quoc V. Le 组的最新CVPR 2020 paper, "SpineNet: A Novel Architecture for Object Detection Discovered with Neural Architecture Search" 解读。核心思想是通过搜索特征图尺度重排,解决传统骨干网络尺度持续缩小导致的信息丢失问题。

作者:Google Research 编译:McGL

为图像任务创建的卷积神经网络 通常把输入图像编码为一系列中间特征以获取图像的语义(从局部到全局) ,其中每个后面层都有较低的空间维度。然而,这种尺度缩小(scale-decreased)模型可能不能为多尺度的视觉识别任务提供强大的特征,而这些任务中识别和定位都很重要(例如目标检测 和 分割)。一些工作包括FPN 及DeepLabv3 3 提出用多尺度编解码器结构来解决这个问题,其中一个缩放网络(例如ResNet) 作为编码器(通常称为骨干模型)。然后在骨干上应用解码器网络恢复空间信息。

虽然这种结构在图像识别和定位任务方面取得了更大的成功,但它仍然依赖于尺度缩小的骨干,下采样丢弃了空间信息,然后解码器必须尝试恢复这些信息。不如我们设计一个替代的骨干模型,可以避免这种空间信息的丢失,从而本质上非常适合于同时进行图像识别和定位呢?

在最近的CVPR 2020 论文 "SpineNet: Learning Scale-Permuted Backbone for Recognition and Localization"中, 我们提出了一种叫做尺度重排(scale-permuted )的元结构模型,对主干结构设计进行了两个主要改进。首先,中间特征图(feature maps)的空间分辨率应该能够随时增加或减少,以便模型能够随着深度的增加而保留空间信息。其次,特征图之间的联系应该能够跨特征尺度,以促进多尺度特征融合。然后我们使用神经结构搜索 (NAS) 结合一个新颖的搜索空间设计,其中包括上面这些功能,以发现一个有效的尺度重排模型。我们证明了这个模型在多尺度视觉识别任务中是成功的,比标准的、尺度缩小的骨干网络性能更好。为了方便在这个领域继续探索,我们已经将 SpineNet 代码开源,包括Tensorflow 1版的 Tensorflow TPU GitHub 库 和Tensorflow 2 版的 TensorFlow Model Garden GitHub 库

左边是尺度缩小的骨干,右边是尺度重排的骨干。每个矩形代表一个构建块。颜色和形状代表不同的空间分辨率和特征维度。箭头表示构建块之间的连接

SpineNet 结构设计

为了有效地设计 SpineNet 的结构,避免耗费大量时间手工搜索什么是最优的,我们利用 NAS 来确定最优的结构。骨干模型在目标检测任务COCO 数据集上训练学习,这需要同时识别和定位。在结构搜索中,我们学到了三件事:

  • 尺度排列: 网络构建块的排序非常重要,因为每个块都只能从已经存在的(即“序列较低的”)块中构建。通过重新排列中间块和输出块,我们定义了尺度排列的搜索空间。
  • 跨尺度的连接: 我们为搜索空间中的每个块定义两个输入连接。父块可以是排序较低的或来自骨干网络的任何块。
  • 块调整(可选) : 我们允许块调整它的尺度级别和类型。

结构搜索过程:从一个尺度缩小的骨干网到一个尺度重排的骨干网。

采用ResNet-50 骨干作为 NAS 搜索的种子,我们首先学习了尺度排列和跨尺度连接。 因为我们只是改变特征块的顺序来获得候选模型,所以搜索空间中的所有候选模型与 ResNet-50的计算量大致相同。学习到的尺度重排模型在目标检测任务中平均精度 (AP) 超过ResNet-50-FPN 2.9%。通过添加搜索选项来调整每个候选特征块的尺度和类型(如ResNet家族中的残差块 或 瓶颈块) 效率还可以进一步提高(-10% FLOPs ) 。

我们命名学习到的49层尺度重排骨干结构为 SpineNet-49。SpineNet-49可以进一步扩展到 SpineNet-96/143/190,方法是重复块2、3或4次并增加特征维数。下面展示了 ResNet-50-FPN 和最终的 SpineNet-49之间的结构比较。

ResNet 骨干网(左)和 基于它由NAS产生的SpineNet 骨干网(右)之间的结构比较。

性能

通过与 ResNet-FPN 模型的比较,我们验证了 SpineNet 模型的性能。使用相似的构建块,在不同尺寸上,SpineNet 模型比 ResNet-FPN 模型的 AP 性能高出约3% ,而FLOPs 则减少了10-20% 。特别值得一提的是,我们最大的型号 SpineNet-190在COCO上 AP 达到了52.1%,对于一个单模型,推理过程中没有进行多尺度测试,这个成绩明显优于之前的检测器。SpineNet 还可以用在分类任务中,iNaturalist 细粒度数据集上top-1分类准确率提升了5%.

在 COCO 检测中, 采用 RetinaNet 检测框架的 SpineNet 模型和 ResNet-FPN 模型的性能比较

ImageNet 分类和 iNaturalist 细粒度图像分类任务上,SpineNet 模型和 ResNet 模型的性能比较。

总结

在这项工作中,我们发现传统的尺度缩小模型,即使有解码器网络,也不能有效的同时识别和定位。为了解决这个问题,我们提出了一种新的元体系结构——尺度重排模型。为了证明尺度重排模型的有效性,我们通过目标检测的神经结构搜索学习了 SpineNet,并证明它可以直接用于图像分类。在未来,我们希望该模型能够成为超越检测和分类的多视觉任务的骨干网络元架构设计。

原文:https://ai.googleblog.com/2020/06/spinenet-novel-architecture-for-object.html

0 人点赞