加入极市专业CV交流群,与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度 等名校名企视觉开发者互动交流!
同时提供每月大咖直播分享、真实项目需求对接、干货资讯汇总,行业技术交流。关注 极市平台 公众号 ,回复 加群,立刻申请入群~
NAS除了应用在classification问题上,还有很多在detection上的研究。
对于detector,不管是anchor和anchor free的检测方法,主要有以下4个components:
大部分NAS for detection的Motivation很直接,就是对一个或多个component进行search。例如:
这样,Detection+NAS就转化为component的优化。
1、DetNAS: Backbone Search for Object Detection
paper:https://arxiv.org/abs/1903.10979
code:https://github.com/megvii-model/DetNAS
大多数目标检测器方法直接Backbone是图像分类设计的网络,但因为图像分类仅关注的是图中主要物体是什么,而目标检测不仅关注每个目标的类别,还有位置。受到One shot NAS的启发,DetNAS通过将权重训练和结构搜索解耦来进行检测器Backbone的搜索。
具体训练分为三步:
1)在ImageNet上预训练Supernet,
2)在检测数据集上微调Supernet,
3)在训练好的Supernet上使用进化算法进行搜索。
2、NAS-FPN: learning scalable feature pyramid architecture for object detection
paper:https://arxiv.org/abs/1904.07392
NAS-FPN讨论了检测网络的neck如何自动地进行特征分层连接,从而取得精度和速度的权衡。
首先,FPN在NAS-FPN中看做是由许多的“Merging Cells”组成的,如下图:
merging cell的机制是:从现有的feature layers中任意选取两个feature map,并选择输出的分辨率,然后选择此次的Binary Op,将选择的两个feature map融合并按照上一步选择的分辨率生成新的feature map。
然后,NAS-FPN也采用了以RNN作为控制器的强化学习搜索方法,与一般NAS搜索方法相似,为了加快搜索速度,采用了代理的方式。
3、Auto-FPN: Automatic Network Architecture Adaptation for Object Detection Beyond Classification
paper:https://openaccess.thecvf.com/content_ICCV_2019/papers/Xu_Auto-FPN_Automatic_Network_Architecture_Adaptation_for_Object_Detection_Beyond_Classification_ICCV_2019_paper.pdf
如下图示,AutoFPN的创新点在Neck和Head网络中,Neck是针对backbone的特征先做Auto-fusion操作,而Auto-head使用NAS技术搜索得到一个网络用于分类和回归。
Differentiable NAS Research Clues,https://zhuanlan.zhihu.com/p/145560220
4、NAS-FCOS
paper:https://arxiv.org/abs/1906.04423
NAS-FCOS和Auto-FPN相似,搜索的是neck和head部分,不同的是采用RL的方法进行搜索,搜索空间也略有点不同。
5、SpineNet: A Novel Architecture for Object Detection Discovered with Neural Architecture Search
paper:https://arxiv.org/abs/1912.05027
SpineNet提出了一种叫做尺度重排(scale-permuted )的元结构模型,也就是说:
显然SpineNet是对backbone的搜索,搜出来的SpineNet也可以应用于分类网络,从实验数据来看效果没这么惊艳。
6、Hit-Detector: Hierarchical Trinity Architecture Search for Object Detection.
paper:https://arxiv.org/pdf/2003.11818.pdf
code:ggjy/HitDet.pytorch
Hit-Detector是第一个同时搜索检测网络的backbone、neck和head的方法。采用的是**Differentiable NAS的搜索方式。**结构如下所示:
其中,α,β,γ分别代表了backbone, neck, and head的网络结构。C(α) 表示 backbone的FLOPs。λ 是平衡准确性和算力的系统。
最后,一张图比较这几种方法,可以看到EfficientNet-D0在非常小资源的情况下,取得了32.4的mAP,效果真的很好。Detection+NAS拟合的能力确实强悍。
if you like this article:
please upvote
# Thanks :)
推荐阅读