24

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

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzIwMTE1NjQxMQ%3D%3D&%3Bmid=2247490635&%3Bidx=1&%3Bsn=26c97b39c99d99e4b284a2983ba2bbf9
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

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

原文链接:

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

背景

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

IZ3meia.png!web

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

iiYBzyv.png!web

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

一、研究动机

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

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

22U73mB.jpg!web

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

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

二、研究方法

YjyeIbm.jpg!web

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

1)结构搜索

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

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

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的搜索结果如下图所示:

mMrUriu.jpg!web

这里有一个和其他论文不太一样的结论,在第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的搜索结果如下图所示:

iiAzeaj.jpg!web

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

最后的结果如下:

JnMVrum.jpg!web

四、总结分析

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

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

论文地址:

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

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

目标检测交流群

关注最新最前沿的2D/3D目标检测技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

请务必注明:目标检测

jauQfyb.jpg!web

喜欢在QQ交流的童鞋,可以加52CV官方 QQ群805388940

(不会时时在线,如果没能及时通过验证还请见谅)

UbiEbaU.png!web

长按关注 我爱计算机视觉


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK