新智元报道
来源:arxiv
编辑:肖琴
目前用于目标检测的最先进的卷积架构都是人工设计的。
近日,谷歌大脑的研究人员发表最新成果,他们采用神经结构搜索发现了一种新的特征金字塔结构NAS-FPN,可以更好地用于目标检测。论文已被CVPR 2019接收。
论文地址:
https://arxiv.org/pdf/1904.07392.pdf
研究人员采用神经结构搜索,在一个新的可扩展搜索空间中发现了一种新的特征金字塔架构。
这个被发现的架构被命名为 NAS-FPN,可实现比 Mask R-CNN、FPN、SSD 更快更好的目标检测。
与目前最先进的目标检测模型相比,NAS-FPN与RetinaNet框架中各种主干模型相结合,可以实现更好的精度和延迟权衡。
与MobileNetV2中最先进的SSDLite相比,NAS-FPN在移动检测精度方面提高了2 AP,达到48.3 AP,超过了Mask R-CNN的检测精度,并且计算时间更少。
学习视觉特征表示是计算机视觉中的一个基本问题。近年来,针对图像分类和目标检测的深度卷积网络(ConvNets)模型架构的设计取得了很大进展。与预测图像类别概率的图像分类任务不同,目标检测有其自身的挑战,即在多种尺度和位置上检测和定位多个对象。为了解决这一问题,许多先进的目标检测器通常使用金字塔特征表示,它以多尺度特征层来表示图像。
特征金字塔网络(FPN)是产生用于目标检测的金字塔特征表示的典型模型架构之一。该方法采用通常用于图像分类的主干模型,通过自顶向下的连接和横向连接,将主干模型特征层中的相邻两层按顺序组合,从而构建特征金字塔。
设计特征金字塔结构的挑战在于其巨大的设计空间。组合来自不同尺度的特征的可能连接的数量随层数呈指数增长。
最近的研究表明,神经结构搜索算法在巨大搜索空间中可以有效发现性能最佳的图像分类架构。受此启发,我们提出可扩展架构的搜索空间,用以生成金字塔表示。
本研究的主要贡献是设计了涵盖所有可能的跨尺度连接的搜索空间,以生成多尺度特征表示。
在搜索过程中,我们的目标是发现一个原子架构(atomic architecture),它具有相同的输入和输出特性级别,并且可以重复应用。
模块化搜索空间使搜索金字塔架构易于管理。模块化金字塔结构的另一个好处是能够随时检测目标(或“提前退出”)。
所发现的架构名为NAS-FPN,为构建对象检测架构提供了很大的灵活性。NAS-FPN适用于各种主干模型,如MobileNet、ResNet和AmoebaNet。它为快速移动模型和精确模型提供了更好的速度和精度的权衡。在相同的推理时间下,结合RetinaNet框架中的MobileNetV2主干网络,其性能优于目前最先进的基于MobileNetV2的SSDLite移动检测模型,精度提高了2 AP。
凭借强大的AmoebaNet-D主干模型,NAS-FPN在单次测试中达到48.3 AP单模型精度。
NAS-FPN的检测精度也超过了Mask R-CNN,且所需推理时间更短。
我们的结果摘要如图1所示。
图1:移动设备上精确模型(上)和快速模型(下)的平均精度vs每张图像的推理时间。绿色曲线突出了NAS-FPN与RetinaNet组合的结果。
我们的方法基于RetinaNet框架,因为它简单有效。RetinaNet框架有两个主要组件:主干网络(通常是最先进的图像分类网络)和特征金字塔网络(FPN)。该算法的目标是为RetinaNet找到一个更好的FPN架构。图2显示了RetinaNet架构。
图2:具有NAS-FPN的RetinaNet。在我们的方法中,特征金字塔网络将由一个神经结构搜索算法来搜索。主干模型和用于类和边界框预测的子网络遵循了RetinaNet的原始设计。FPN的架构可以堆叠N次,以获得更高的精度。
为了找到一个更好的FPN,我们利用了B. Zoph等人提出的神经结构搜索框架[44]。神经结构搜索利用强化学习训练一个控制器(controller),在给定的搜索空间中选择最优的模型结构。controller利用搜索空间中子模型的精度作为奖励信号来更新其参数。因此,通过反复试验,controller学会了随着时间的推移生成更好的架构。正如之前的研究所指出的,搜索空间对于架构搜索的成功起着至关重要的作用。
接下来,我们将为FPN设计一个搜索空间来生成特征金字塔表示。为FPN的可伸缩性(即,这样一个FPN架构就可以在RetinaNet中重复堆叠),在搜索过程中,我们还强制FPN自身重复N次,然后连接成一个大型架构。我们将这个特征金字塔结构称为NAS-FPN。
架构的搜索空间
在搜索空间中,特征金字塔网络由许多“合并单元”组成,这些单元将许多输入层组合成RetinaNet的表示。
特征金字塔网络
特征金字塔网络以多尺度特征层为输入,在相同尺度下生成输出特征层,如图2所示。
合并单元(Merging cell)
在以往的目标检测工作中,一个重要的发现是,需要在不同尺度上“合并”特征。跨尺度连接允许模型将具有强语义的高级特性和具有高分辨率的低级特性结合。
我们提议merging cell,这是FPN的一个基本构建块,将任意两个输入特性层合并到一个输出特性层中。
在我们的实现中,每个merging cell接受两个输入特性层(可能来自不同scale),应用处理操作,然后将它们组合起来,生成一个所需规模的输出特性层。
构建merging cell的过程如图3所示。
图3:merging cell中需要四个预测步骤。
每个 merging cell 有4个预测步骤:
步骤1:从候选项中选择一个特征层;
步骤2:从候选项中选择另一个特性层,无需替换;
步骤3:选择输出特性分辨率
步骤4:选择一个二进op,将步骤1和步骤2中选择的hi和hj组合起来,生成具有步骤3中选择的分辨率的特征层。
在步骤4中,我们在搜索空间中设计了两个二进操作,sum和global pooling,如图4所示:
图4:Binary operations
我们在实验中使用了RetinaNet的开源实现。实验设置细节请参考原论文。
模型在COCO train2017上进行训练,大部分实验采用COCO val2017进行评估。在表1中,我们报告了test-dev的准确度,以便与现有方法进行比较。
表1:使用NAS-FPN和其他最先进的检测器的RetinaNet在COCO的test-dev set上的性能比较
架构搜索找到的特征金字塔结构
什么是好的特性金字塔结构?我们希望通过可视化所发现的架构来阐明这个问题。
在图7(b-f)中,我们绘制了在RL训练过程中奖励逐渐提高的NAS-FPN架构。
图7:NAS-FPN架构图。
图7中,每个点代表一个特征层。同一行的特征层具有相同的分辨率。分辨率在自底向上下降。箭头表示内部层之间的连接。图中左侧是输入层。金字塔网络的输入用绿色圆圈标记,输出用红色圆圈标记。(a)基线FPN架构。(b-f)通过对RNN控制器的训练进行神经结构搜索发现的7-cell NAS-FPN结构。(f)我们在实验中使用的NAS-FPN。
可扩展的特征金字塔结构
在本节中,我们展示了如何通过调整(1)主干模型、(2)重复金字塔网络的数量和(3)金字塔网络的维数来控制模型容量。我们将讨论这些调整如何权衡计算时间和速度。
叠加金字塔网络。
我们的金字塔网络有一个很好的特性,它可以通过叠加多个重复的架构来扩展成更大的架构。
在图8a中,我们显示了普通FPN架构的叠加并不总是提高性能,而NAS-FPN的叠加显著提高了精度。
这个结果突出了我们的搜索算法可以找到可扩展的架构,这可能很难手工设计。
图8:通过(a)叠加金字塔网络,(b)改变主干结构,(c)增加金字塔网络的特征维数,可以控制NAS-FPN的模型容量。
采用不同的主干架构。
在对象检测架构的准确性和速度之间进行权衡的一种常见方法是更改主干架构。
图8b显示了不同主干上的NAS-FPN的性能。在MobilenetV2上应用NAS-FPN时,我们在160B FLOPs时得到了36.6 AP的精度。
调整特征金字塔网络的特征维数。
另一种提高模型容量的方法是在NAS-FPN中增加特征层的特征维数。图8c显示了采用ResNet-50主干架构的NAS-FPN中128、256和384个特征维度的结果。毫无疑问,增加特征维可以提高检测性能。
高检测精度的架构
利用可扩展的NAS-FPN架构,我们讨论了如何在保持效率的同时构建准确的模型。
图9显示,与现有方法相比,NAS-FPN与最先进的Mask R-CNN模型一样精确,且计算时间更短。
图9:检测精度与推理时间(左)、FLOPs(中)和参数(右)的关系。
本文提出利用神经结构搜索进一步优化用于目标检测的特征金字塔网络的设计过程。在COCO数据集上的实验表明,神经结构搜索发现的架构,名为NAS-FPN,具有良好的灵活性和高性能,可用于构建精确的检测模型。在广泛的精度和速度权衡方面,NAS-FPN在许多主干架构上产生了显著的改进。
论文地址:
https://arxiv.org/pdf/1904.07392.pdf
更多阅读
新智元春季招聘开启,一起弄潮 AI 之巅!
岗位详情请戳:
【加入社群】
新智元 AI 技术 + 产业社群招募中,欢迎对 AI 技术 + 产业落地感兴趣的同学,加小助手微信号:aiera2015_2 入群;通过审核后我们将邀请进群,加入社群后务必修改群备注(姓名 - 公司 - 职位;专业群审核较严,敬请谅解)。