EdgeNeXt:移动视觉应用中有效融合的CNN-Transformer架构
为了追求不断提高的精度,通常需要开发大型和复杂的神经网络。这种模型需要很高的计算资源,因此不能部署在边缘设备上。由于资源高效的通用网络在多个应用领域都很有用,因此构建资源高效的通用网络具有很大的意义。在这项工作中,我们努力有效地结合CNN和Transformer模型的优点,提出一种新的高效混合体系结构EdgeNeXt。具体来说,在EdgeNeXt中,我们引入了分裂深度转置注意(SDTA)编码器,它将输入张量分割成多个信道组,并利用纵深卷积和跨通道维度的自注意来隐含地增加感受野并编码多尺度特征。我们在分类、检测和分割任务上的大量实验表明了所提出的方法的优点,在相对较低的计算要求下优于最先进的方法。我们使用1.3M参数的EdgeNeXt模型在ImageNet-1K上达到了71.2%的TOP-1准确率,性能优于MobileViT,绝对收益为2.2%,LOPS减少了28%。此外,我们的EdgeNeXt模型具有5.6M参数,在ImageNet-1K上达到了79.4%的TOP-1精度。
卷积神经网络(CNN)和最近引入的视觉Transformer(VITS)在几个主流计算机视觉任务中极大地推动了最先进的技术,包括目标识别、检测和分割。总的趋势是使网络体系结构更加深入和复杂,以追求日益增长的准确性。在追求更高的同时准确性,大多数现有的基于CNN和VIT的体系结构忽略了计算效率(即模型大小和速度)这一方面,这对于在资源受限的设备 (如移动平台)上运行是至关重要的。在许多现实世界的应用中,例如机器人和自动驾驶汽车,在资源受限的移动平台上,希望识别过程既准确又具有低延迟。
大多数现有的方法通常利用精心设计的高效卷积变体来在资源受限的移动平台上实现速度和精度之间的折衷。除了这些方法,很少有现有的作品使用硬件感知神经体系结构搜索(NAS)来为移动设备构建低延迟准确的模型。问题1:虽然这些轻量级CNN易于训练并在编码局部图像细节方面高效,但它们并不显式地对像素之间的全局交互进行建模。
自注意机制在视觉Transformer(VITS)中的引入使得有可能对这种全局交互作用进行显式建模,问题2:然而,这通常是以由于自注意计算而导致的缓慢推理为代价的。这成为为移动视觉应用设计轻量级VIT变体的一个重要挑战。
现有的大多数作品采用基于CNN的设计来开发高效的模型。然而,卷积运算在CNN中继承了两个主要的局限性:第一,它具有局部的接受域,因此无法建模全局上下文;第二,学习到的权值在推理时是固定的,使得CNNs不能灵活地适应输入内容。虽然这两个问题都可以通过transformer得到缓解,但它们通常需要大量计算。最近有一些研究通过结合CNNs和VITS的优点来设计用于移动视觉任务的轻量级体系结构。问题3:然而,这些方法主要集中在优化参数上,需要进行更高的乘加(MAdds)操作,限制了移动设备上的高速推断。由于注意块的复杂度是输入大小的二次元,因此MAdds更高。由于网络体系结构中存在多个注意力块,这变得更加成问题。我们的想法:在这里,我们认为在设计一个统一的移动架构时,模型的大小、参数和MAdds都希望相对于资源受限的设备更小,从而有效地结合了CNNs和VITs的互补优势(见图1)。
图1。我们提出的EdgeNeXt模型与SOTA vit和混合架构设计的比较。x轴显示乘法-加法(MAdd)操作,y轴显示ImageNet-1K分类精度的top-1。图中每个对应点提到的参数个数。与最近的方法相比,我们的EdgeNeXt显示了更好的计算(参数和MAdds)和准确性权衡。
贡献。我们提出了一种新的轻量级架构,名为EdgeNeXt,该架构在模型大小、参数和MAdds方面很有效,同时在移动视觉任务的准确性方面更优越。具体来说,我们引入了分割深度转置注意(SDTA)编码器,它可以有效地学习局部和全局表示,以解决CNNs中接收域有限的问题,而不增加参数和MAdd操作的数量。与最先进的移动网络相比,我们提出的架构在包括图像分类、目标检测和语义分割在内的各种任务上表现出了良好的准确性和延迟性能。我们的EdgeNeXt骨干具有5.6M参数和1.3G MAdds,实现了79.4%的top-1 ImageNet-1K分类精度,优于其最近引入的MobileViT对应的[29],同时减少了35%的MAdds。对于目标检测和语义分割任务,与文献中发表的所有轻量级模型相比,提出的EdgeNeXt以更少的MAdds和可比较的参数数量实现了更高的mAP和mIOU。
近年来,针对移动视觉任务,设计轻量级、硬件高效的卷积神经网络已经在文献中得到了很好的研究。目前的方法主要集中在为低功率边缘器件设计高效的卷积。在这些方法中,MobileNet是应用最广泛的体系结构,它采用了深度可分离卷积。另一方面,ShuffleNet使用信道洗牌和低成本的群卷积。MobileNetV2引入了具有线性瓶颈的反向剩余块,在各种视觉任务中取得了良好的性能。ESPNetv2利用深度扩张卷积在不增加网络复杂度的情况下增加了网络的接收域。硬件感知神经体系结构搜索(NAS)也已被探索,以在移动设备上找到速度和准确性之间的更好权衡。虽然这些CNNs在移动设备上训练和推断的速度更快,但它们缺乏像素之间的全局交互,这限制了它们的准确性。(与问题1一样)
最近,Desovitskiy等人提出了一种基于视觉任务自注意机制的视觉Transformer架构。他们提出的体系结构利用大规模训练前数据(例如JFT-300M)、大量的数据增强和更长的训练计划来实现具有竞争力的性能。随后,DeiT提出将蒸馏集成到该架构中,并且只在ImageNet-1K数据集上进行训练。此后,文献中提出了几种vit的变体和混合架构,在vit中添加了图像特异性的诱导偏差,以提高在不同视觉任务上的性能。
ViT模型实现了几种视觉识别任务的竞争性结果。然而,由于多头自关注算法的计算成本较高,很难在资源受限的边缘设备上部署这些模型。最近有研究为移动视觉任务设计轻型混合网络,结合CNN和Transformer的优点。MobileFormer采用了MobileNetV2和ViTs的并行分支,通过桥接两个分支,实现本地-全局交互。Mehta等人将Transformer视为卷积,并提出了一个用于局部-全局图像上下文融合的MobileViT块。他们的方法在图像分类方面取得了优越的性能,超过了以前的轻量级CNN和ViTs使用类似的参数预算。
尽管MobileViT主要关注于优化参数和延迟,但MHA仍然是该模型的主要效率瓶颈,尤其是对于MAdds的数量和边缘设备的推理时间。在MobileViT中,MHA的复杂性与输入大小成二次方,考虑到他们在MobileViT-S模型中现有的九个注意力块,这是主要的效率瓶颈。在这项工作中,我们努力为移动设备设计一个新的轻量级架构,该架构在参数和MAdds方面都很高效,同时在移动视觉任务的准确性上也很出色。我们提出的架构,EdgeNeXt,是建立在最近引入的CNN方法之上的。ConvNeXt,它按照ViT的设计选择对ResNet架构进行了现代化改造。在我们的EdgeNeXt中,我们引入了一个SDTA块,它将深度卷积与自适应内核大小以及转置注意以一种有效的方式结合在一起,获得了最佳的精度-速度权衡。
这项工作的主要目标是开发一种轻型混合设计,有效融合VITs和CNNs的优点,用于低功率边缘设备。在VITs(例如,MobileViT)中的计算开销主要是由于自注意操作。与MobileViT相比,我们模型中的注意块相对于输入空间维度O(nd2)具有线性复杂度,其中N为patch的数量,d为特征/通道维度。在我们的模型中,自注意操作被应用于跨通道维度,而不是空间维度。此外,我们还证明,只要注意力块的数量少得多(在MobileViT中是3块,而在MobileViT中是9块),我们就可以超过他们的表现。通过这种方式,所提出的框架可以用有限数量的MAdds对全局表示进行建模,这是保证边缘设备低延迟推理的基本准则。为了激发我们提出的架构,我们提出了两个理想的属性。
a)对全局信息进行高效编码。自注意学习全局表征的内在特征对视觉任务至关重要。为了有效地继承这一优势,我们使用交叉协方差注意将注意力操作纳入跨特征通道维度,而不是在相对较少的网络块内的空间维度。该方法在令牌数量上降低了初始自注意操作的复杂度,由原来的二次型降到线性型,并有效地隐式编码了全局信息。
b)自适应内核大小。众所周知,大内核卷积的计算成本很高,因为参数和FLOPs的数量会随着内核大小的增长而二次增长。尽管更大的内核大小有助于增加接收域,但在整个网络层次中使用如此大的内核是昂贵的,而且不是最优的。我们提出了一种自适应的内核大小机制来降低这种复杂性,并捕获网络中不同级别的特征。受CNN层次结构的启发,我们在卷积编码器块的早期阶段使用较小的核,而在后期阶段使用较大的核。这种设计选择是最优的,因为CNN的早期阶段通常捕捉低级特征,较小的核适合这个目的。然而,在网络的后期阶段,需要大型卷积内核来捕获高级特性。接下来我们将解释我们的架构细节。
总体架构。图2说明了EdgeNeXt架构的概述。主要成分有两方面:(1)自适应N ×N卷积编码器,(2)分深度转置注意(SDTA)编码器。我们的EdgeNeXt架构建立在ConvNeXt的设计原则上,并在四个阶段的四个不同尺度上提取层次特征。输入图像sizeH×W ×3在网络开始处通过一个patchify 层,使用4×4非重叠卷积和层范数实现,得到 × ×C1特征图。然后,输出被传递到3×3 卷积编码器r以提取局部特征。第二阶段从使用2×2跨卷积实现的降采样层开始,它将空间大小减少一半,并增加通道,产生 × ×C2特征映射,随后是两个连续的5×5卷积编码器。在第二阶段的SDTA块之前加入了位置编码(PE)。我们观察到PE对于密集的预测任务(例如,目标检测和分割)是敏感的,并且在所有阶段添加PE会增加网络的延迟。因此,我们在网络中只添加一次,对空间位置信息进行编码。输出的特征图进一步传递到第三和第四阶段,分别生成 × ×C3和 × ×C4维度特征。
图2。顶层:我们的框架的整体架构是一个舞台设计。在这里,第一阶段使用4 × 4步卷积和3 × 3卷积(Conv.)编码器对输入图像进行1/4分辨率的下采样。在第2-4阶段,开始时使用2 × 2步卷积进行下采样,随后使用N ×N卷积和Split depth-wise Transpose Attention (SDTA)编码器。下图:我们介绍了卷积编码器(左)和SDTA编码器(右)的设计。卷积编码器使用N ×N深度卷积用于空间混合,然后是两个点卷积用于信道混合。SDTA编码器将输入张量分成B信道组,并应用3 × 3深度卷积实现多尺度空间混合。分支之间的跳跃连接增加了网络的整体接收域。B3和B4分支在第3和第4阶段逐渐被激活,增加了网络更深层次的整体感受野。在提出的SDTA中,我们利用了转置注意力和轻量级MLP,该MLP将注意力应用于特征通道,并且相对于输入图像具有线性复杂度。
卷积编码器。该块由具有自适应核大小的深度可分卷积组成。我们可以通过两个独立的层来定义它:(1)深度卷积与自适应N ×N核。对于阶段1、2、3和4,我们分别使用k = 3、5、7和9。然后,(2)使用两个点卷积层来丰富局部表示,同时使用标准层归一化 (LN)和高斯误差线性单元 (GELU)激活来进行非线性特征映射。最后,添加一个跳过连接,使信息在网络层次中流动。该块类似于ConvNeXt块,但内核大小是动态的,并随阶段而变化。我们观察到,与静态内核尺寸相比,卷积编码器中的自适应内核尺寸性能更好(表7)。卷积编码器可以表示为
其中x i表示形状的输入特征图H×W×C,线性G是一个点式卷积层,然后是GELU,Dw是k×k深度卷积,LN是一个正常化层。而x i+1表示卷积编码器的输出特征图。
SDTA编码器。在提出的分深度转置注意(SDTA)编码器中有两个主要组成部分。第一部分通过编码输入图像中的各种空间层次来学习自适应的多尺度特征表示,第二部分隐式编码全局图像表示。我们编码器的第一部分受到Res2Net的启发,我们采用多尺度处理方法,将分层表示开发为单个块。这使得输出特征表示的空间接收场更加灵活和自适应。与Res2Net不同的是,我们SDTA编码器中的第一个块没有使用1×1点态卷积层,以确保具有有限数量的参数和MAdds的轻量级网络。此外,我们使用自适应数量的子集每个阶段,以允许有效和灵活的特征编码。在我们的STDA编码器中,我们将输入张量H×W ×C分成s个子集,每个子集用xi表示,并且与C/s通道具有相同的空间大小,其中i∈{1,2,…, s}和C为通道数。每个特征映射子集(第一个子集除外)被传递给3×3深度卷积,用di表示,输出用yi表示。将di−1的输出(yi−1)添加到特征子集xi中,然后输入di。子集的数量s是基于阶段数t自适应的,其中t∈{2,3,4}。我们可以这样写yi:
每个深度操作di,如图2的SDTA编码器所示,接收来自前面所有拆分{xj, j≤i}的特征映射输出。
如前所述,变换器的开销自身注意力层的开销对于边缘设备上的视觉任务来说是不可行的,因为它的代价是更高的MAdds和延迟。为了缓解这个问题并有效地编码全局环境,我们在SDTA编码器中使用转置的查询和关键注意力特征图。这种操作具有线性的复杂性,通过应用MSA的点乘操作在通道维度上而不是空间维度上,这使得我们可以计算跨通道的交叉协方差,以生成具有全局表征隐含知识的注意力特征图。给定一个形状为H×W×C的归一化张量Y,我们使用三个线性层计算查询(Q)、关键(K)和价值(V)的投影。三个线性层,得到Q=W Q Y,K=W K Y,V=W V Y,尺寸为HW×C,其中W Q,W K,和W V分别为Q、K和V的投影权重。然后,在计算交叉协方差注意之前,对Q和K应用L2规范,因为它可以稳定训练。我们不在Q和K之间沿空间维度应用点乘,即(HW×C)-(C×HW),而是在Q和K之间的通道二维应用点乘,即(C×HW)-(HW×C),产生C×C的softmax缩放注意分数矩阵。为了得到最终的注意力图,我们将分数乘以V,并将其相加。转置的注意力操作可以表示为:
其中X为输入,ˆX为输出特征张量。然后,使用两个1×1点卷积层,LN和GELU激活生成非线性特征。表1给出了卷积和STDA编码器各层对应输入尺寸的序列,更多的是特特小、特小和小模型的设计细节。
表1.EdgeNeXt架构。关于输出大小、内核大小和输出通道的模型层描述,重复n次,以及模型MADD和参数。小、超小和超小的输出通道数选择超小型模型,使参数数量与对应的MobileViT模型相匹配。我们在Conv.Encoder中使用自适应内核大小来降低模型复杂度并捕获不同级别的特征。此外,我们填充最后一级的输出大小,以便能够应用9×9滤波器。
在本节中,我们在ImageNet-1K分类、COCO对象检测和Pascal VOC分割基准上评估我们的EdgeNeXt模型。
我们在所有分类实验中使用ImageNet-1K数据集。该数据集为1000个类别提供了大约128万张训练图像和5万张验证图像。按照文献[17,29],我们报告了所有实验中验证集的前1个准确率所有实验的验证集上的最高准确率。对于物体检测,我们使用COCO[22]数据集,该数据集提供了大约118K训练图像和5K验证图像。 我们使用COCO数据集,该数据集分别提供了大约118k训练图像和5k验证图像。对于分割,我们使用Pascal VOC 2012数据集 。该数据集提供了近1万张带有语义分割的图像。分割掩码。按照[29]中的标准做法,我们也使用了来自[22]和[13]的额外数据和注释。
我们训练EdgeNeXt模型的输入分辨率为256×256,有效批次大小为4096。所有的实验都是用AdamW运算器运行300个历时,学习率和权重衰减分别为6e-3和6e-3。 所有的实验都是用AdamW运算器运行300次,学习率和权重衰减分别为6e-3和 0.05。我们使用余弦学习率计划[26],线性预热20个epoch。在训练过程中,我们使用的数据增量在训练过程中使用的数据增加是随机调整作物(RRC)。水平翻转,和RandAugment,其中RandAugment只用于EdgeNeXt-S模型。我们还使用了训练时使用多尺度采样器。进一步的随机速率为0.1的随机深度仅用于EdgeNeXt-S模型。在训练过程中,我们使用动量为0.9995的EMA。在训练过程中。对于推理,图像的大小被调整为292×292,然后以256×256的分辨率进行中心裁剪。我们还训练并报告了我们的EdgeNeXt-S模型在224×224分辨率下的准确度,以便与之前的方法进行公平的比较。以前的方法进行比较。分类实验运行在在八个A100 GPU上运行,平均训练时间为EdgeNeXt-S模型的平均训练时间为30小时。
对于检测和分割任务,我们按照[29]中的类似设置对EdgeNeXt进行微调,并报告IOU为0.50-0.95的平均平均精度(mAP)和union上的平均交点(mIOU)。实验在4块A100 gpu上进行,检测和分割的平均训练时间分别为~ 36和~ 7小时。
我们还报告了我们的模型在NVIDIA Jetson Nano 1和NVIDIA A100 40GB GPU上的延迟情况。对于Jetson Nano,我们将所有模型转换为TensorRT 2引擎,并在FP16模式下使用1的批次大小进行推理。对于A100,类似于[25],我们使用PyTorch v1.8.1,批次大小为256来测量延时。
表2将我们提出的EdgeNeXt模型与之前最先进的全卷积(ConvNets)进行了比较。基于变换器的模型(ViTs)和混合模型。总的来说。与所有三类方法相比,我们的模型表现出更好的准确性与计算量(参数和MAdds)的权衡(见图1)。
与ConvNet进行比较。EdgeNeXt在具有类似参数的TOP-1精度方面远远超过轻量级ConvNet(表2)。通常情况下,由于不需要进行注意力计算,ConvNets的MAdd比Transform模型和混合模型要少,但它们缺乏全局接受场。例如,EdgeNeXtS比MobileNetV2[33]具有更高的MAdds,但它在参数数量较少的情况下获得了4.1%的TOP-1精度提升。此外,我们的EdgeNeXt-S的性能分别比ShuffleNetV2[28]和MobileNetV3[16]高4.3%和3.6%,参数数量相当。
表2。在ImageNet- 1K验证集.上,我们提出的EdgeNeXt模型与最先进的轻量级完全卷积、基于Transformer和混合模型的分类性能比较。我们的模型优于SOTA模型,并在精度和计算(即参数和乘加(MAdds)操作)之间实现了更好的权衡。
与ViTs的比较。我们的EdgeNeXt在ImageNet1K数据集上以较少的参数和MAdds超过了最近的ViT变种。例如,EdgeNeXt-S获得了78.8%的最高准确率,以2.3%和6.6%的绝对优势超过了T2T-ViT[41]和DeiTT[37]。
与混合模型的比较。EdgeNeXt以较少的参数和较少的MAdds超过了MobileFormer, ViT-C [39], CoaT-Lite-T [7](表2)。为了与MobileViT进行公平的比较,我们在256×256的输入分辨率下训练我们的模型,并在不同的模型尺寸下显示出一致的收益。不同的模型尺寸(即S、XS和XXS)都有一致的收益。边缘设备上的MAdds和快速推理(表3)。例如,我们的EdgeNeXt-XXS模型只用了1.3M就达到了71.2%的准确率达到71.2%,超过了与之对应的MobileViT模型的1.3M参数。响应的MobileViT模型2.2%。我们的EdgeNeXt-S模型在ImageNet上仅用5.6M的参数就达到了79.4%的准确率,与相应的MobileViT-S模型相比有1.0%的差距。这表明了我们设计的有效性和通用性。
表3. EdgeNeXt的不同变体与MobileViT的对应模型的比较。最后两栏分别列出了Jetson Nano和A100设备上的延迟,单位为ms和µs。我们的EdgeNext模型在每个模型大小上都提供了更高的精度和更低的延迟。
我们计算了EdgeNeXt模型在NVIDIA Jetson Nano边缘设备上的推理时间,并与最先进的MobileViT模型进行比较(表3)。所有的模型都被转换为TensorRT引擎,推理以FP16模式进行。我们的模型在边缘设备上实现了低延迟,参数相似,MAdds较少,top-1精度较高。表3还列出了MobileViT和EdgeNeXt模型在A100 GPU上的推理时间。可以看出,我们的EdgeNeXtXXS模型在A100上比MobileViT-XSS模型快34%,而在Jetson Nano上只快8%,说明EdgeNeXt与MobileViT相比,更好地利用了先进的硬件。MAdds,以及更高的top-1精度。表3还列出了MobileViT和EdgeNeXt模型在A100 GPU上的推理时间。可以看出,我们的EdgeNeXtXXS模型在A100上比MobileViT-XSS模型快34%,而在Jetson Nano上只快8%。表明与MobileViT相比,EdgeNeXt更好地利用了先进的硬件。
我们在SSDLite中使用EdgeNeXt作为骨干,并在COCO 2017数据集[22]上微调模型,输入分辨率为320×320。SSD[23]和SSDLite的区别在于,在SSD头中,标准卷积被替换为可分离卷积。结果在表4中重新报告。EdgeNeXt的性能一直优于MobileNet骨干网,与MobileVit骨干网相比,它的性能具有竞争力。在MAdds减少38%和参数相当的情况下,EdgeNeXt取得了27.9个盒子的AP,比MobileViT多0.2个点。
表4.与SOTA在COCO目标检测方面的比较。EdgeNeXt比以前的方法有所改进。
表5.与SOTA在VOC语义分割方面的比较。与以前的方法相比,我们的模型提供了合理的收益。
我们在DeepLabv3中使用EdgeNeXt作为骨干,并在输入分辨率为512×512的Pascal VOC数据集上微调模型。DeepLabv3使用级联设计中的扩张卷积以及空间金字塔池对多尺度特征进行编码,这对多尺度物体的编码非常有用。我们的模型在验证数据集上获得了80.2 mIOU,比MobileViT增加了1.1分,MAdds减少了36%。
在这一节中,我们对我们提出的EdgeNeXt模型中的不同设计选择进行了消减。提出的EdgeNeXt模型的不同设计选择。
SDTA编码器和自适应核大小。表6显示了SDTA编码器和自适应核大小在我们提出的架构中的重要性。用卷积编码器代替SDTA编码器会降低1.1%的精度,这表明它在我们的设计中是有用的。当我们在网络的所有四个阶段将核大小固定为7时,它进一步降低了0.4%的准确性。总的来说,我们提出的设计提供了一个最佳的速度-准确度权衡。
我们还在表6中消除了SDTA组件(如自适应分支和位置编码)的贡献。去除自适应分支和位置编码后,准确率略有下降。
表6. EdgeNeXt和SDTA编码器设计的不同组件上的消融。结果显示了SDTA编码器和自适应内核在我们设计中的好处。此外,我们的SDTA模块中的自适应分支和位置编码(PE)是需要得到良好的精度。
混合设计。表7介绍了我们EdgeNeXt模型的不同混合设计选择。在MetaFormer的启发下,我们用SDTA编码器替换了最后两阶段的所有卷积模块。结果显示,当最后两个阶段的所有块都是SDTA块时,性能更优,但它增加了延迟(第2行与第3行)。我们的混合设计中,我们建议使用SDTA模块作为最后三个阶段的最后一个块,提供了一个最佳的速度-精度权衡。 准确度的最佳权衡。
表7所示。对卷积编码器和SDTA编码器混合架构的烧蚀。使用一个SDTA编码器作为最后三个阶段的最后一个块提供了最佳的精度-延迟权衡。
表8提供了在不同阶段使用SDTA编码器的重要性。在网络的不同阶段使用SDTA编码器的重要性。值得注意的是,逐步增加SDTA编码器作为最后三个阶段的最后一个块,可以提高精度,但在推理延迟方面会有一些损失。在推理延迟方面有一些损失。然而,在第4行,我们发现 准确度和速度之间的最佳权衡。在这里,SDTA编码器被添加到网络的最后三个阶段的最后一个块中。网络的最后三个阶段。此外,我们注意到,将全局性的SDTA编码器添加到 我们注意到,在网络的第一阶段添加一个全局的SDTA编码器,在特征不多的情况下是没有帮助的。在特征不是很成熟的情况下没有帮助。
表8所示。烧蚀了在网络不同段使用SDTA编码器的问题。在后三个阶段中加入SDTA编码器可以提高性能,而在网络的第一阶段使用全局SDTA编码器则没有帮助。
我们还提供了一个关于在每个阶段开始时使用SDTA模块与在每个阶段结束时使用SDTA模块的消融。表9显示,在每个阶段的末尾使用全局SDTA编码器更为有利。在每个阶段结束时使用全局SDTA编码器更有利。这一观察与最近的工作一致。
表9所示。EdgeNeXt在每 个阶段开始和结束时使用SDTA消融。结果表明,在各阶段未采用SDTA一般是有利的。
激活和归一化。EdgeNeXt在整个网络中使用GELU激活和层归一化。我们发现,目前PyTorch对GELU和层归一化的实现对于高速推理来说并不是最佳的。为此,我们用HardSwish取代GELU,用batch-norm取代layer-norm,并重新训练我们的模型。图3表明,它稍微降低了准确率。然而,它却大大降低了延迟的程度。
图3。消融使用不同激活函数和规范化层对网络变量的准确性和延迟的影响。使用Hard Swish激活和批处理归一化来代替GELU和层归一化,可以显著提高延迟,但代价是一些准确性的损失。
图4和图5分别显示了EdgeNeXt-S检测和分割模型的定性结果。我们的模型可以精确地检测和分割各种视图中的物体。
图4。我们的EdgeNeXt检测模型在COCO验证数据集上的定性结果。该模型在具有80个检测类的COCO数据集上进行训练。该模型能够有效地对不同场景中的物体进行定位和分类。
图5。EdgeNeXt-S分割模型在未见COCO验证数据集上的定性结果。该模型在含有20个分割类的VOC数据集上进行训练。(a)显示了预测的语义分割掩码,其中“黑色”颜色表示背景像素。(b)将预测的掩码显示在原始图像的顶部。(c)表示显示的分段掩码的所有VOC类的颜色编码。我们的模型在看不见的COCO图像上提供高质量的分割面具。
与CNN相比,Transformer模型的成功带来了更高的计算开销。与基于CNN的移动架构相比,自注意力操作是造成这种开销的主要原因,这使得边缘设备上的视觉Transformer速度较慢。在本文中,我们介绍了一种由卷积和高效的基于自关注的编码器组成的混合设计,以有效地联合建模局部和全局信息,同时在视觉任务的参数和MADD方面都是有效的,与最先进的方法相比具有优异的性能。我们的实验结果表明,对于EdgeNeXt的不同变体,该模型具有良好的性能,这证明了该模型的有效性和泛化能力。
现有的神经网络为了追求不断提高的精度,通常设计的都很复杂,需要很高的计算资源,因此不能部署在边缘设备上,因此构建资源高效的通用网络具有很大的意义。
1. 现在大多数设计在资源受限的移动平台都是使用精心设计的高效卷积变体,以此来实现轻量化的效果。虽然这些轻量级CNN易于训练并在编码局部图像细节方面高效,但它们并不显式地对像素之间的全局交互进行建模。以及CNN两个局限性:1.它具有局部的接受域,因此无法建模全局上下文;2.学习到的权值在推理时是固定的,使得CNNs不能灵活地适应输入内容。
解决办法:自注意机制在视觉Transformer(VITs)中的引入使得有可能对这种全局交互作用进行显式建模。
2. 自注意计算会导致推理速度缓慢。
解决办法:最近有一些研究通过结合CNNs和VITs的优点来设计用于移动视觉任务的轻量级体系结构构。
3. 然而,这些方法主要集中在优化参数上,需要进行更高的乘加(MAdds)操作,限制了移动设备上的高速推断。由于网络体系结构中存在多个注意力块,注意块的复杂度是输入大小的二次元,因此这使得MAdds更高。
我们的想法:我们认为在设计一个统一的移动架构时,模型的大小、参数和MAdds都希望相对于资源受限的设备更小,从而有效地结合了CNNs和VITs的互补优势。
我们提出了一种新的轻量级架构,名为EdgeNeXt,该架构在模型大小、参数和MAdds方面很有效,同时在移动视觉任务的准确性方面更优越。
EdgeNeXt引入了分割深度转置注意(SDTA)编码器,它可以有效地学习局部和全局表示,以解决CNNs中接收域有限的问题,而不增加参数和MAdd操作的数量。
EdgeNeXt框架采用标准的“四阶段”金字塔式设计规范,主要成分有两方面:
(1)自适应N ×N卷积编码器
(2)分深度转置注意(SDTA)编码器。
EdgeNeXt架构建立在ConvNeXt的设计原则上,并在四个阶段的四个不同尺度上提取层次特征。
第一阶段:输入图像大小为H×W ×3在网络开始处通过一个“Patchify”层,使用4×4非重叠卷积和层范数实现,得到H/4 × W/4 ×C1特征图。然后,输出被传递到3×3 卷积编码器以提取局部特征。
第二阶段:DownSampling采用步长为(2,2)的卷积来实现,产生H/8 × W/8×C2特征映射,随后是两个连续的5×5 卷积编码器。在第二阶段的SDTA块之前加入了位置编码。
输出的特征图进一步传递到第三和第四阶段,分别生成W/16 × H/16 ×C3和H/32 ×W/32 ×C4维度特征。
卷积编码器。该块由具有自适应核大小的深度可分卷积组成。我们可以通过两个独立的层来定义它:
(1)深度卷积与自适应N ×N核。对于阶段1、2、3和4,我们分别使用k = 3、5、7和9。 (2)使用两个点卷积层来丰富局部表示,同时使用标准层归一化(LN)和高斯误差线性单元(GELU)激活来进行非线性特征映射。最后,添加一个跳过连接,使信息在网络层次中流动。该块类似于ConvNeXt块,但内核大小是动态的,并随阶段而变化。
其中xi表示形状的输入特征图H×W×C,线性G是一个点式卷积层,然后是GELU,Dw是k×k深度卷积,LN是一个正常化层。而x i+1表示卷积编码器的输出特征图。
SDTA编码器。在提出的分深度转置注意(SDTA)编码器中有两个主要组成部分。
第一部分通过编码输入图像中的各种空间层次来学习自适应的多尺度特征表示;
第二部分隐式编码全局图像表示。
第一部分:
采用多尺度处理方法,将分层表示开发为单个块。我们将输入张量H×W ×C分成s个子集,每个子集用xi表示,并且与C/s通道具有相同的空间大小,其中i∈{1,2,…, s}和C为通道数。每个特征映射子集(第一个子集除外)被传递给3×3深度卷积,用di表示,输出用yi表示。将di−1的输出(yi−1)添加到特征子集xi中,然后输入di。子集的数量s是基于阶段数t自适应的,其中t∈{2,3,4}。我们可以这样写yi:
每个深度操作di,如图2的SDTA编码器所示,接收来自前面所有拆分{xj, j≤i}的特征映射输出。
第二部分:
在前面说过自注意力层的代价是更高的MAdds和延迟。为了缓解这个问题并有效地编码全局环境,我们在SDTA编码器中使用转置的查询和关键注意力特征图。
给定一个形状为H×W×C的归一化张量Y,我们使用三个线性层计算查询(Q)、关键(K)和价值(V)的投影。三个线性层,得到Q=W Q Y,K=W K Y,V=W V Y,尺寸为HW×C,其中W Q,W K,和W V分别为Q、K和V的投影权重。然后,在计算交叉协方差注意之前,对Q和K应用L2规范,因为它可以稳定训练。我们不在Q和K之间沿空间维度应用点乘,而是在Q和K之间的通道二维应用点乘,即(C×HW)*(HW×C),产生C×C的softmax缩放注意分数矩阵。为了得到最终的注意力图,我们将分数乘以V,并将其相加。转置的注意力操作可以表示为:
其中X为输入,ˆX为输出特征张量