论文解读:MnasFPN: Learning Latency-aware Pyramid Architecture for Object Detection on Mobile Devices

摘要

尽管在资源受限的环境中架构搜索前瞻性任务取得了巨大的成功,但设备上对象检测架构的设计大部分还是手动完成的。很少有自动搜索工作以非移动友好搜索空间为中心,或者不受设备延迟的影响。我们提出了MnasFPN,这是用于检测头的移动友好搜索空间,并将其与延迟感知体系结构搜索相结合,以生成有效的对象检测模型。当与MobileNetV2主体配合使用时,学习到的MnasFPN头在性能上要比MobileNetV3 + SSDLite高1.8mAP。在Pixel上也有类似的延迟。与NAS-FPNLite相比,它既准确1mAP,又更快10%。消融研究表明,性能提升的绝大部分来自搜索空间的创新。进一步的探索揭示了搜索空间设计与搜索算法之间的有趣耦合,为此,MnasFPN搜索空间的复杂性是适当的。

简介

设计神经网络体系结构以在移动设备上进行有效部署不是一件容易的事:人们必须谨慎地权衡计算量与准确性,同时要考虑到设备所支持和支持的一组操作。神经体系结构搜索(NAS,[33])提供了使设计过程自动化的框架,其中RL控制器将学习在用户指定的搜索空间内生成快速而准确的模型。尽管NAS论文的重点一直放在改进搜索算法上,但搜索空间设计仍然是关注较少的关键性能因素。
当前Nas都是主要用在图像分类上,很少有用在目标检测上的,这是由于跟主干相连的检测头搜索的复杂性,骨干网络是特征提取器,在图像分类中是连续地以越来越精细的尺度提取特征。当前的NAS要么使用重新分类的分类特征提取器进行检测,要么在固定检测头的同时搜索主干。由于主干由一系列层组成,因此其搜索空间是连续的。相反,检测头可能是高度不连续的。它需要在多个尺度上融合和重新生成要素,以便更好地进行类预测和定位。因此,搜索空间包括要融合的要素,以及融合它们的频率和顺序。这是一项具有挑战性的任务,几乎没有NAS框架显示出处理能力。
NAS-FPN [7]是一个例外,它是第一本解决检测头非顺序搜索空间的NASpaper。当仅针对准确性进行优化时,它展示了最新的性能,其手动设计的变体NAS-FPNLite在移动设备上具有出色的性能。但是,NAS-FPNLite在三个方面都受到限制。 1)生成架构的搜索过程不受计算复杂度或设备延时要求的限制;2)手动调整了架构,使其可与移动设备配合使用,其流程可能会进一步优化; 3)最初的NAS-FPN搜索空间并非针对移动用例量身定做。我们的工作解决了上述限制。我们提出了一个名为MnasFPN的搜索空间,该搜索空间专门针对深度卷积得到合理优化的移动设备进行了设计。我们的搜索空间将反向残差块[22]重新引入到检测头中,该残差块被证明对移动CPU有效。我们在由设备上延迟信号指示的搜索空间上执行NAS。搜索发现了一种非常简单但性能很高的体系结构。我们的贡献包括:1)用于检测头的特定于移动设备的搜索空间; 2)第一次尝试进行等待时间感知的搜索以进行对象检测; 3)一组性能优于SS-DLite [22]和NAS-FPNLite [7]的检测头架构; 4)消融研究表明,我们明智地为当前NAS控制器选择了搜索空间设计。

相关工作

移动目标检测模型
移动设备上最常见的检测模型是由人工手动设计的。其中包括单阶段检测模型,例如YOLO ,SqueezeDet 和Pelee 以及两阶段检测器,例如FasterRCNN [21],R-FCN [5]和ThunderNet [19]。 .SSDLite 是最流行的轻型检测头架构。它用可分离的卷积代替了SSD头中昂贵的3×3完全积算,从而减轻了移动设备的计算负担。 NAS-FPNLite 还采用了这种技术,以使NAS-FPN适应移动设备。 SSDLite和NAS-FPNLite与高效的主干网(例如MobileNetV3 [9])配对使用,可以生产出最先进的移动目标检测模型。由于我们设计了移动友好型检测头,因此SSDLite和NAS-FPNLite都是展示我们有效性的关键基准。

我们的NAS搜索以来自设备上测量结果的延迟信号为指导。延迟感知型NAS首先由NetAdapt 和AMC 普及,以学习预训练模型的channel尺寸。查找表(LUT)用于根据网络各部分的时延总和有效地估计网络的端到端延迟。此想法随后在MnasNet [24]中得到扩展,可以使用以下方法搜索通用体系结构参数NAS框架[33],其中RL控制器在观察了数千种架构的延迟和准确性后学会生成高效的架构。

资源有限的重新搜索者无法访问MnasNet样式的搜索。因此,大量的NAS文献专注于提高搜索效率。这些方法利用超参网络和权重共享的思想来提高搜索效率。尽管在移动分类方面取得了成功,但是在资源受限的情况下,这些有效的搜索技术尚未扩展到高度非连续的搜索空间,因此在移动目标检测中尚未见到许多应用。

目标检测的架构搜索
由于上述目标检测的非序列化性质,NAS在目标检测方面的工作普遍受到限制。NAS-FPN是解决检测头搜索的开创性工作。它提出了一个基于特征金字塔网络的总体搜索空间。该设计涵盖了许多流行的检测头。我们的工作主要是受到NAS-FPN的启发,但其目标是提出一种更加便于在移动设备上部署的搜索空间。另一项开创性的工作是Auto-Deeplab,它将NAS搜索扩展到了语义分割。我们的工作面临着跨特征分辨率学习连通性模式的类似挑战。DetNAS致力于提高检测主干网络的搜索效率。它处理了(在搜索过程中对每个采样体系结构进行ImageNet预训练所导致的难以管理的)计算。相反,我们的工作只搜索头部。最近,NAS-FCOS 将重量共享扩展到检测头,以加快对象检测的搜索过程。与NAS-FPN相似,它们用于检测头的搜索空间基于完全卷积,而不是针对移动设备。我们的工作与他们的工作相辅相成,因为我们可以通过他们的权值共享策略来加快基于移动友好搜索空间的延迟感知搜索。在移动方面,很少将对象检测体系结构优化为主要目标。相反,它们由为分类而设计的轻型骨架和预定义的检测头组成。

图1.可搜索的MnasFPN块。 MnasFPN将反向残差块(IRB)重新引入到NAS-FPN磁头中。连接输入和新功能的任何路径(如蓝色虚线矩形所示)类似于IRB。 MnasFPN还采用黑色矩形所示的大小相关排序(SDO)对特征合并之前的大小调整操作和1×1卷积进行重新排序。可搜索的组件以红色突出显示。

首先,FPN和MnasFPN都是通过从特征提取器和可重复的结构(从已存在的特征中融合出新特征)来构建检测网络。每个单元以不同的分辨率消耗一个特征图的集合,并以相同的分辨率集输出另一个集合,从而使该结构可以重复应用。一个单元由一组块组成。每个块将可能具有不同分辨率的两个特征图合并到一个中间特征中,该特征由可分离的卷积处理并由该块输出。 MnasFPN与NAS-FPN(Lite)的不同之处主要在于块级别,我们将在下面进行介绍。

广义反向残差块(IRB)
反向残差块(IRB)是众所周知的块体系结构,广泛用于NAS搜索空间。 IRB的关键见解是在低维度上通信以减少内存影响,并扩展深度卷积的特征维,以便在移动CPU中利用其轻量级特性。与基于可分离卷积的常规块设计相比,它具有更高的性能。这激发了我们探索在NAS-FPN搜索空间中采用类似IRB的设计的可能性,其中主要的挑战和创新在于对NAS-FPN块中的非线性结构进行改进。
补充一下什么是IRB反向残差块?:
本质是一个残差网络设计,传统Residual block是block的两端channel通道数多,中间少,而本文设计的inverted residual是block的两端channel通道数少,block内channel多,类似于沙漏和梭子形态的区别。该结构与传统的residual block中维度先缩减后扩增相反,而是先将输入的低维feature map扩增到高维,然后用depthwise convolution方式做卷积运算,然后再使用一个线性的卷积将其映射到低维空间中。好处:1. 复用特征, 2. 旁支block内先通过1x1升维, 再接depthwise conv以及ReLU, 通过增加ReLU的InputDim, 来缓解特征的退化情况。

可扩展的中间功能
在Nas-FPN当中,所有特征图共享相同的可搜索通道数C,C是提前设计好的,不同的是,MnasFPN对于中间层的特征尺度F给出了灵活性,F同样是可搜索的而且跟C独立。通过调正F和C,中间层可以作为扩展或者一个bottleneck.这种不对等的输入和特征融合可以看作是非对称的FPN网络,1*1的卷积在输入特征的层是有必要的,因为要把通道从C变成F.
可学习的块的数量
在Nas-FPN当中,一个cell里面的block数量是预先确定的。因为在特征融合机制当中,有时候需要上下对应层相同大小特征图,进行叠加。在MnasFPN当中,中间特征通常不是跟输出具有相同的通道数,所以,无用的block就被丢弃掉,这给了在时延-精度平衡上额外的灵活性。
cell内的残差
当连接变得越来越稀薄的时候,我们发现增加相同分辨率输入输出之间的残差模块可以增强信息流。与IRB相似,我们在中间层添加Relu非线性函数,输出层不添加。这是由于输入输出层的通道数C为了节省内存开销都比较小,没有必要添加非线性层来抑制信息流;
未完待续。。。。。。

猜你喜欢

转载自blog.csdn.net/weixin_39326879/article/details/115875975