Press "Enter" to skip to content

从结构到模块!华为提出最新两步搜索的目标检测SM-NAS

点击 我爱计算机视觉 标星,更快获取CVML新技术

 

本文转载自知乎,经作者授权转载。

 

原文链接:

 

https://zhuanlan.zhihu.com/p/104357348

 

背景

 

《SM-NAS: Structural-to-Modular Neural Architecture Search for Object Detection》是AAAI 2020 的论文,作者来自华为和中山大学。

 

 

该论文的出发点和谷歌EfficientDet非常相似,将输入分辨率、主干网络、特征融合和head一起考虑,进行模型结构的搜索。主要的区别在于该方法将搜索分成由粗到细的两步,并且在结构搜索中,搜索空间也包含了two-stage的方法。

 

 

该文算法E0~E5与其他SOTA算法推断时间和在COCO数据集上精度比较

 

一、研究动机

 

目前NAS在目标检测中的应用主要还是单独搜索backbone或者FPN和head等,还不能够整体搜索检测框架,其主要原因还是在于搜索空间太大。该论文提出了一种由结构到模块的两步搜索策略,先搜索整体结构,在在每个子结构中(backbone、FPN、head等)搜索具体的网络。

 

作者还做了一组实验说明了搜索整体结构的重要性:

1)在COCO上RetinaNet相比faster rcnn要更慢,主要还是因为COCO的类别太多,RetinaNet的head采用conv,其计算量太大 ;而faster rcnn采用的是全连接,计算量增加较小。相较而言,在VOC上,类别较少的时候,RetinaNet更快。这说明其实要考虑数据集来确定检测框架。

 

2)在COCO上,基于ResNet50的cascade rcnn比ResNet101的faster rcnn要速度更快,准确率也更高。这说明要综合考虑分辨率、主干网络等。

 

二、研究方法

整体方法结构如图所示,包含两个stage:

 

1)结构搜索

 

首先将检测框架分成input、backbone,feature fusion neck, rpn和rcnn部分,搜索空间如下:

 

input:512×512, 800×600, 1080×720 和1333×800。(1080×720这个输入分辨率比较少见,720P应该是1280×720)

 

backbone:ResNet系列、ResNeXt系列和MobileNet v2,并且采用ImageNet的预训练模型。

 

Feature fusion neck:包括P1-P6。

 

RPN:no RPN,RPN和GA-RPN。

 

RCNN:RCNN,RetinaNet head和Cascade RCNN。(这里包含了one-stage和two-stage目标检测算法)

 

这部分评价指标是inference-time和准确率。

 

2)模型搜索

 

首先在结构搜索中得到帕累托前沿面,选择其中的几个最优解,再进行细致搜索。

 

搜索空间如图所示,主要包括基本的通道数,ResNet的basic block/bottleneck和ResNeXt和MobileNet的block。

 

这部分评价指标是floaps和准确率。

 

3)train from scratch

 

在stage2中,为了更加准确地反映目标检测模型的性能,采用train from scratch的方法,为了防止梯度爆炸,采用了GN和WS的方法对weight和activation做了约束。

 

三、实验结果

 

stage1的搜索结果如下图所示:

这里有一个和其他论文不太一样的结论,在第2幅小图中,MobileNet v2是不在帕累托前沿面上的,论文解释是说depthwise 卷积在GPU上优化不好导致的,虽然计算量低,但是效率不高,该论文采用inference time作为评价指标。但是这里其实存在一个不公平的地方,所有的主干网络模型是用ImageNet预训练模型的,而MobileNet v2的预训练模型的weight decay是4e-5,和ResNet的1e-4是不一样的,而在整个搜索中是采用1e-4的,这对MobileNet v2的性能是有影响的(可能会有1个点),也就是上说 预训练MobileNet v2和搜索采用的weight decay是不适配的,这个结论对比不够公平 。

 

最终作者采用C0-C5的结果进入到模块搜索中。

 

stage2的搜索结果如下图所示:

对每个子结构进行了搜索,其性能都有较大的提升。可以看到two-stage的方法(特别是cascade head)占据了较大的优势地位。

 

最后的结果如下:

四、总结分析

 

该论文首次采用结构-模块两步搜索的方法对检测框架进行了搜索,并且首次把two-stage的框架也加入进来,效果也比较好。

 

从出发点上说和EfficientDet很像,EfficientDet在FPN的搜索上更加细致,并且其backbone也是EfficientNet中的,效果更好。另外就是SM-NAS中关于depthwise的讨论也需要更加公平的对比。

 

论文地址:

 

https://arxiv.org/pdf/1911.09929.pdf

 

目前还未发现该文有开源代码。

 

Be First to Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注