论文名称:DetNAS: Backbone Search for Object Detection
论文链接:https://arxiv.org/abs/1903.10979
开源代码: https://github.com/megvii-model/DetNAS

物体检测器通常使用图像分类网络的Backbone,由于和检测任务存在一定差异,这些Backbone往往不是最优的。本文中,旷视研究院提出DetNAS,这是首个用于设计更好的物体检测器Backbone的神经网络搜索方法;由DetNAS搜索出的框架在COCO上的性能超越了ResNet-50与ResNet-101,且模型计算量更低。本文已收录于神经信息处理系统大会NeurIPS 2019。

目录

  • 导语
  • 简介
  • 方法
    • DetNAS Pipeline
    • 空间搜索设计
    • 搜索算法
  • 实验
    • 实验结果
    • DetNAS架构
  • 结论
  • 参考文献
导语

在目标检测器中,Backbone起着非常重要的作用,目标检测器的性能高度依赖于Backbone所提取的特征。大多数目标检测器直接使用为图像分类而设计的网络来作为Backbone,但这种方法往往不是最优的,因为图像分类仅关注的是图中主要物体是什么,而目标检测试图在图像中找到每个目标的位置和类别。

虽然目前依靠手工设计的网络能够实现部分性能的提升,但手工设计需要研究人员非常精通领域知识,同时还需要进行反复漫长的调试才能完成。对此,NAS技术可以提供帮助。

近年来,NAS技术取得了巨大突破。在图像分类任务上,通过搜索得到的网络能够匹敌甚至是超越传统手工设计的网络。然而,在目标检测领域使用NAS搜索Backbone仍然具有挑战。

简介

简单将之前的NAS方法用于搜索目标检测器的Backbone并不能解决问题。通常来说,检测器训练需要将Backbone网络先在ImageNet上预训练。但是这会对搜索目标检测器的Backbone造成两个困难:

难以优化:NAS不能用预训练的精度来作为监督信号,需要是最终在目标任务上的效果作为反馈信息。
效率低:在搜索过程中,将每个结构都先预训练,再在检测数据集上进行微调(fine-tuning),这种方法成本太高。

另外,虽然不进行预训练(train from scratch)也是一种选择,但它需要更多的训练时间以补偿没有进行预训练的问题。

有鉴于此,旷视研究院提出了第一个用于搜索目标检测器Backbone的方法。在旷视原创技术one-shot NAS的启发之下,研究员通过将权重训练和结构搜索解耦来进行检测器Backbone的搜索。

图1:DetNAS Pipeline

大部分之前的NAS方法都以一种嵌套的方式来同时优化权重与结构,然而,只有通过将其拆解为两步,预训练才能更加高效。该框架避免了预训练带来的低效问题,使搜索Backbone得以可行。

方法
  • DetNAS Pipeline

如图1所示,DetNAS由三步组成,1)在ImageNet上预训练Supernet,2)在检测数据集上微调Supernet以及,3)在训练好的Supernet上进行结构搜索。

第一步:预训练Supernet。在ImageNet上进行预训练对于后续微调步骤而言至关重要。在一些one-shot方法中,它们将实际上离散的搜索空间变换为一个连续空间,这样会导致搜索空间中各个网络的权重耦合严重。相反,在Supernet的预训练过程中,旷视研究院采用逐路径方案,从而确保了预训练的Supernet能够反映候选网络的相关性能。具体而言,在每次迭代过程中,只有单个路径会被采样进行前馈与反馈传播,该过程中Supernet图上的其他路径或节点的梯度与权重都不会进行更新。

第二步:微调Supernet。这一过程也是以逐个路径方式进行。将预训练好的Supernet上加上检测器的head,并在目标检测数据集下进行训练。另一个需要强调的细节是批归一化(BN)过程。BN是优化中常用的归一化方法。通常情况下,在微调过程中BN的参数固定为预训练时的参数。然而,在DetNAS中不能沿用此法,因为在不同路径上要归一化的特征并不相等。另外,与图像分类不同,由于目标检测器使用高分辨率的图像进行训练,所以受到显存的限制,批大小会较小,这严重降低了BN的精度。为此,研究人员在Supernet训练过程中使用同步批归一化(SyncBN)作为替代。SyncBN可以在多个GPU上计算批统计量,相当于变相“增加”了批大小(batch size)。

第三步:用进化算法在Supernet上进行搜索。在该步骤中,系统会在已训练好的Supernet上用进化算法进行结构搜索。在这步中一个需要注意的环节依然是BN。在搜索过程中,不同的子网络会在Supernet中逐路径进行采样。然而其中的问题是,各个路径上的批统计量需要彼此相对独立。因此,在评估每条支路前,需要重新统计每条路径上的批统计量。对于DetNAS而言,该过程必不可少,研究员从训练集抽取出一个小子集来重新计算待被评估的那条路径的批数据。此步骤仅为BN累计适量的running mean与running variance,不涉及梯度反传。

  • 空间搜索设计

表1介绍了搜索空间的具体细节。本方法使用的搜索空间基于ShuffleNetv2的块(block)。ShuffleNetv2是一种高效轻量级的卷积网络架构,包含channel split与channel shuffle操作。研究员设计了两个不同大小的搜索空间,大的用于得到主要结果的网络搜索,小的用于消融实验。

表 1:DetNAS 搜索空间

大空间(40个块)主要用于搜索与手工Backbone相比较的网络。其中,每个stage的通道与块用c_1、n_1表示。对每个stage来说,第一个块会以stride为2进行降采样。另外,除了首个stage,其余4个stage共包含8+8+16+8个块用于搜索。对每个被搜索的块来说,都有4个来自ShuffleNetv2的块以供选择:改变核大小{3×3,5×5,7×7};或者将该分支用Xception 块(三个重复、分离的 depthwise3×3 卷积)代替。因此,很容易可以算出大搜索空间候选架构有440≈1.2×1024之多。其中,大部分网络的计算量大于1G FLOPs。小空间(20个块)与大空间相似,每个stage的通道与块用c_2、n_2表示。

  • 搜索算法

框架搜索步骤基于进化算法。首先,对一个种群的网络P进行初始化,每个网络P由其架构P.θ以及其适应度P.f组成。任何违反约束η的架构将会被移除,并且系统会选择一个新架构进行替代。在初始化以后,系统对有适应度P.f的网络P.θ在验证集V_Det上进行评估。然后,研究员会在经评估的网络中选取最佳的 |P|个结构作为父本,以其生成子代网络。

进一步,第二代网络由父本在约束η下变异(mutation)和组合交叉(crossover)所得到。通过在迭代过程中重复此操作,可以找到一条验证集上精度最高的路径。

与基于RL和梯度的NAS方法相比,进化搜索能够很好地满足限制因素(如FLOPs或速度)。为了优化FLOPs或速度,基于RL的方法需要对反馈函数仔细调参。而基于梯度的方法则需要对损失函数仔细调参。虽然如此,它们的输出结果仍然很难全部满足限制要求。为此,DetNAS选择使用进化搜索算法。

实验
  • 实验结果

基于FPN检测器,按照本文方法在上述提到的大空间中进行搜索,得到了DetNASNet结构,结构具体信息参见原论文。表6展示了主要结果。研究员选取了4个手工设计的网络作为对比,包括ResNet-50,ResNet-101,ShuffleNetv2-40和ShuffleNetv2-40 (3.8)。DetNASNet以40.2%mmAP,大小1.3G FLOPs的优势超越了ResNet-50,与ResNet-101性能相当。

表2:两种设置下的DetNASNet与手工设计网络的性能对比

为了消除来自搜索空间的影响,研究员专门对比了ShuffleNetv2-40,它是搜索空间的Baseline。其包含40个块,大小为1.3G FLOPs,与DetNASNet相同。结果显示,ShuffleNetv2-40在COCO上比DetNAS的mAP分数低了1.0个百分点。这证明DetNAS的效果不仅来自于搜索空间。

进一步,研究人员引入搜索空间的影响,将DetNASNet的通道数提升了1.8倍,让网络大小达到了3.8G FLOPs,即DetNASNet (3.8),这等价于ResNet-50的FLOPs。实验结果显示,它以42.0%mmAP分数超越了ResNet-50 4.7个百分点,超越ResNet-101 2.0个百分点。

  • DetNAS架构

相比于图像分类框架搜索给出的结果,本文提出的目标检测框架搜索展示出了其价值所在。图2展示了在20个块的小空间中搜索出的3个神经网络架构,最上面为在ImageNet分类数据上搜索得到的ClsNASNet,下面两个分别为用FPN、RetinaNet搜索得到的Backbone。图像展示了其中每个块的情况,黄色与橙色代表5×5、7×7的ShuffleNetv2 块,蓝色的块的核大小为3。稍大一些的蓝色块代表Xception ShuffleNetv2块。

图4:在小空间(20块)搜索的框架之间模式的对比

从图4可以发现,在DetNAS中,蓝色块几乎都聚集在stage3、4;而在ClsNASNet中,只有一个Xception ShuffleNetv2块出现在高层级中。该规律在同样为图像分类搜索框架ProxylessNAS于ImageNet数据集上得出的结果相符。以上这些区别满足本文的假设,即用于图像分类的Backbone网络对于物体检测来说不是最优的。

结论

本文提出DetNAS方法,这是第一个用于搜索物体检测任务Backbone的框架。它由三个步骤组成:在ImageNet上预训练Supernet;在检测测数据集上微调Supernet;用遗传算法在训练好的Supernet上搜索。表4给出了每一步所消耗的GPU和时间。DetNAS的计算消耗(在COCO上为44GPU days)仅为训练一个常用物体检测器的两倍。实验结果显示,DetNAS的主要搜索结果的性能在COCO上超越了ShuffleNet和ResNet等传统手工网络结构。

表4:COCO每一步的消耗对比

另外,为了展示DetNAS的有效性,旷视研究院团队在DetNAS上测试了多个物体检测器(FPN和RetinaNet),并且也使用了不同的数据集(COCO与VOC)进行验证。进一步讨论显示,在结构层面,图像分类与物体检测任务之间存在不同的规律,这可能会为手工模型设计提供新的灵感。

参考文献

  • Gabriel Bender, Pieter-Jan Kindermans, Barret Zoph, Vijay Vasudevan, and Quoc V. Le. Understandingand simplifying one-shot architecture search. In ICML, 2018.
  • Andrew Brock, Theodore Lim, James M. Ritchie, and Nick Weston. SMASH: one-shot model architecture search through hypernetworks. CoRR, abs/1708.05344, 2017.
  • Han Cai, Ligeng Zhu, and Song Han. Proxylessnas: Direct neural architecture search on target task and hardware. ICLR, 2019.
  • Golnaz Ghiasi, Tsung-Yi Lin, Ruoming Pang, and Quoc V. Le. NAS-FPN: learning scalable feature pyramid architecture for object detection. CVPR, 2019.
  • Ross Girshick, Ilija Radosavovic, Georgia Gkioxari, Piotr Dollár, and Kaiming He. Detectron, 2018.

NIPS2019:旷视提出DetNAS:首个搜索物体检测Backbone的方法相关推荐

  1. DetNAS:首个搜索物体检测Backbone的方法 | NeurIPS 2019

    点击我爱计算机视觉标星,更快获取CVML新技术 物体检测器通常使用图像分类网络的Backbone,由于和检测任务存在一定差异,这些Backbone往往不是最优的. 本文中,旷视研究院提出DetNAS, ...

  2. NeurIPS 2019 | DetNAS:首个搜索物体检测Backbone的方法

    物体检测器通常使用图像分类网络的Backbone,由于和检测任务存在一定差异,这些Backbone往往不是最优的.本文中,旷视研究院提出DetNAS,这是首个用于设计更好的物体检测器Backbone的 ...

  3. CVPR 2020 | 旷视提出新型人-物交互检测框架,实现当前最佳

    本文转载自旷视研究院 本文提出一种新型人-物交互检测算法,可直接把人-物交互关系检测为一系列的交互点,进一步预测朝向人和物体中心的交互向量:接着,这些交互点可以配对组合人与物体的检测结果,以生成最终的 ...

  4. CVPR 2020 Oral | 旷视提出目前最好的密集场景目标检测算法:一个候选框,多个预测结果...

    作为 CVPR 2020 Oral展示论文之一, 该文提出一种简单却有效的基于候选框的物体检测方法,尤其适用于密集物体检测.该方法通过一个候选框.多个预测框的概念,引入 EMD Loss.Set NM ...

  5. 一个方法多个return_CVPR 2020(Oral) | 旷视提出CrowdDetection:密集场景检测新方法:一个候选框,多个预测结果...

    点击上方"CVer",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转载自:旷视研究院 本文是CVPR 2020论文系列解读第8篇. ...

  6. ICCV2019 | 旷视提出轻量级目标检测网络ThunderNet

    ICCV2019 | 旷视提出轻量级目标检测网络ThunderNet 本文作者:Liyang 作者学校:复旦大学 论文地址:https://arxiv.org/pdf/1903.11752.pdf 源 ...

  7. 今日新出!旷视提出One-Shot模型搜索框架的新变体

    点击我爱计算机视觉标星,更快获取CVML新技术 这篇文章为旷视科技来稿,解读了今天arXiv新出论文Single Path One-Shot Neural Architecture Search wi ...

  8. ThunderNet:国防科大、旷视提出首个在ARM上实时运行的通用目标检测算法

    点击我爱计算机视觉标星,更快获取CVML新技术 今天跟大家分享一篇前天新出的论文<ThunderNet: Towards Real-time Generic Object Detection&g ...

  9. 旷视提出AutoML新方法,在ImageNet取得新突破 | 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 来源 | 旷视研究院 近日,来自旷视研究院的郭梓超.张祥雨.穆皓远.孙剑等人发表一篇新论文"Sing ...

最新文章

  1. Yii CGridView 基本使用(三)关联表相关字段搜索
  2. LOADRUNNER 登陆功能测试实例(转)
  3. cnn stride and padding_CNN中的stride、kernel、padding计算
  4. sql 数据库前两列值乘_数据库的基本概念:
  5. linux远程代码执行漏洞,Bash远程任意代码执行安全漏洞(最严重漏洞)
  6. js压缩代码后怎么生成source map_??markdown生成导航? #x27;[toc]#x27;足矣
  7. 要用Identity Server 4 -- OAuth 2.0 超级简介
  8. 学生档案c语言编程,学生档案管理问题
  9. leetcode 134. 加油站
  10. CSS Reset(css的初始化)
  11. 微信开发七(配置js-SDK,步骤2)
  12. 阿里云主机CentOS添加硬盘
  13. memcpy()和memmove()函数之间区别
  14. 广度优先算法_算法浅谈——走迷宫问题与广度优先搜索
  15. 变量类型 ROWID 和 UROWID
  16. RV1126--qt实现rtmp拉流(转换本机rtsp)
  17. 攻防世界-MISC-练习区-06(坚持60s)
  18. 远程桌面计算机用户名,远程桌面设置及使用
  19. UVA 11134 Fabled Rook 枚举 multiset加速
  20. python中用plt画图

热门文章

  1. 前端js数组元素的筛选,修改,新增属性小技巧一---前端数据筛选filter()函数,更新数组map()函数;
  2. 设计模式-结构型模式(7)装饰者模式
  3. chapter 2 古典密码技术
  4. 华为发布业界首款5G基站芯片:天罡
  5. 凭证打印纸的规格(打印凭证选择什么型号的纸)
  6. 解决vue项目中@mousemove 事件 子元素触发了父元素事件
  7. 华为P40的软文营销文案
  8. HTTPS原理、单向和双向认证
  9. 计算机网络知识面试常考
  10. 2022年10月前端学习笔记