YoloV5改进策略:Neck和Head改进|ECA-Net:用于深度卷积神经网络的高效通道注意力|多种改进方法|附结构图

摘要

本文使用ECA-Net注意力机制加入到YoloV5Neck和Head中。我尝试了多种改进方法,并附上改进结果,方便大家了解改进后的效果,为论文改进提供思路。(改进中。。。。)

论文:《ECA-Net:用于深度卷积神经网络的高效通道注意力》

arxiv.org/pdf/1910.03151.pdf

最近,通道注意机制已被证明在改善深度卷积神经网络(CNN)的性能方面具有巨大潜力。然而,大多数现有方法致力于开发更复杂的注意模块以实现更好的性能,这不可避免地会增加模型的复杂性。 为了克服性能和复杂性折衷之间的矛盾,本文提出了一种有效的信道注意(ECA)模块,该模块仅包含少量参数,同时带来明显的性能提升。 通过剖析SENet中的通道注意模块,我们从经验上表明避免降维对于学习通道注意很重要,并且适当的跨通道交互可以在保持性能的同时显着降低模型的复杂性。因此,我们提出了一种无需降维的局部跨通道交互策略,该策略可以通过一维卷积有效地实现。 此外,我们提出了一种方法来自适应选择一维卷积的内核大小,确定局部跨通道交互的覆盖范围。提出的ECA模块既有效又有效,例如,针对ResNet50主干的模块参数和计算分别为80 vs. 24.37M和 4.7 e − 4 4.7e^{-4 } 4.7e4 GFLOP与3.86 GFLOP,Top-1准确性而言提升超过2% 。 我们使用ResNets和MobileNetV2的骨干广泛评估了ECA模块的图像分类,对象检测和实例分割。 实验结果表明,我们的模块效率更高,同时性能优于同类模块。

1、简介

深卷积神经网络(CNN)已在计算机视觉社区中得到广泛使用,并且在图像分类,对象检测和语义分割等广泛的任务中取得了长足的进步。从开创性的AlexNet [17]开始,许多研究 不断研究以进一步改善深层CNN的性能。 近来,将通道注意力并入卷积块中引起了很多兴趣,显示出在性能改进方面的巨大潜力。 代表性的方法之一是挤压和激励网络(SENet)[14],它可以学习每个卷积块的通道注意,从而为各种深层CNN架构带来明显的性能提升。

在SENet [14]中设置了压缩(即特征聚合)和激励(即特征重新校准)之后,一些研究通过捕获更复杂的通道相关性或结合额外的空间关注来改善SE块。 尽管这些方法已经实现了更高的精度,但是它们通常带来更高的模型复杂度并承受更大的计算负担。 与前面提到的以更高的模型复杂度为代价实现更好的性能的方法不同,本文重点关注的问题是:是否可以以一种更有效的方式来学习有效的通道注意力机制?

为了回答这个问题,我们首先回顾一下SENet中的通道注意力模块。 具体而言,给定输入特征,SE块首先为每个通道独立采用全局平均池化,然后使用两个全连接(FC)层以及非线性Sigmoid函数来生成通道权重。 两个FC层旨在捕获非线性跨通道交互,其中涉及降低维度以控制模型的复杂性。 尽管此策略在后续的通道注意力模块中被广泛使用[33、13、9],但我们的经验研究表明,降维会给通道注意力预测带来副作用,并且捕获所有通道之间的依存关系效率不高且不必要。

在这里插入图片描述

因此,本文提出了一种用于深层CNN的有效通道注意(ECA)模块,该模块避免了维度缩减,并有效捕获了跨通道交互。如图2所示,在不降低维度的情况下进行逐通道全局平均池化之后,我们的ECA通过考虑每个通道及其k个近邻来捕获本地跨通道交互 。实践证明,这种方法可以保证效率和有效性。请注意,我们的ECA可以通过大小为k的快速一维卷积有效实现,其中内核大小k代表本地跨通道交互的覆盖范围,即有多少个相近邻参与一个通道的注意力预测。我们提出了一种自适应确定k的方法,其中交互作用的覆盖范围(即内核大小k)与通道维成比例。如图1和表3所示,与骨干模型[11]相比,带有我们的ECA模块(称为ECA-Net)的深层CNN引入了很少的附加参数和可忽略的计算,同时带来了显着的性能提升。例如,对于具有24.37M参数和3.86 GFLOP的ResNet-50,ECA-Net50的附加参数和计算分别为80和 4.7 e − 4 4.7e^{-4} 4.7e4 GFLOP;同时,在Top-1准确性方面,ECA-Net50优于ResNet-50 2.28%。
在这里插入图片描述

表1总结了现有的注意力模块,包括通道降维(DR),通道交互和轻量级模型方面,我们可以看到,我们的ECA模块通过避免通道降维,同时以极轻量的方式捕获了不同通道间的交互。 为了评估我们的方法,我们在ImageNet-1K [6]和MS COCO [23]上使用不同的深度CNN架构在各种任务中进行了实验。
在这里插入图片描述

本文的主要工作概括如下:(1)解析SE块,并通过经验证明避免降维对于学习有效,适当的不同通道交互对于通道注意力非常重要。(2)基于以上分析,我们尝试通过提出一种有效的通道注意(ECA)来用于深度CNN的极其轻量级的通道注意模块,该模块在增加明显改进的同时,增加了很少的模型复杂性。(3)在ImageNet-1K和MS COCO上的实验结果表明,该方法具有比最新技术更低的模型复杂 度,同时具有非常好的竞争性能。

2、相关工作

事实证明,注意力机制是增强深层CNN的潜在手段。 SE-Net [14]首次提出了一种有效的机制来学习通道关注度并实现并有不错的效果。随后,注意力模块的发展可以大致分为两个方向:(1)增强特征聚合; (2)通道和空间注意的结合。具体来说,CBAM [33]使用平均池和最大池来聚合特征。 GSoP [9]引入了二阶池,以实现更有效的特征聚合。 GE [13]探索了使用深度卷积[5]聚合特征的空间扩展。 CBAM [33]和scSE [27]使用内核大小为k x k的2D卷积计算空间注意力,然后将其与通道注意力结合起来。与非本地(NL)神经网络[32]共享相似的哲学,GCNet [2]开发了一个简化的NL网络并与SE块集成在一起,从而形成了一个用于建模远程依赖性的轻量级模块。 Double Attention Networks(A2-Nets)[4]为图像或视频识别的NL块引入了一种新颖的关联函数。双重注意网络(DAN)[7]同时考虑了基于NL的信道和空间注意,以进行语义分割。但是,由于它们的高模型复杂性,大多数以上基于NL的注意力模块只能在单个或几个卷积块中使用。显然,所有上述方法都集中于提出复杂的注意力模块以提高性能。与它们不同的是,我们的ECA旨在以较低的模型复杂性来学习有效的通道注意力。
img
我们的工作还涉及为轻量级CNN设计的高效卷积。 两种广泛使用的有效卷积是组卷积和深度方向可分离卷积。 如表2所示,尽管这些有效的卷积涉及较少的参数,但它们在注意力模块中的作用不大。我们的ECA模块旨在捕获局部跨通道交互,这与通道局部卷积[36]和通道级卷积具有相似之处 [8]; 与它们不同的是,我们的方法研究了具有自适应内核大小的一维卷积来替换通道注意力模块中的FC层。与分组和深度可分离卷积相比,我们的方法以较低的模型复杂度实现了更好的性能。

3、提出的方法

在本节中,我们首先回顾了SENet[14]中的通道注意力模块(即SE块)。然后,我们通过分析降维和跨通道交互的影响,对SE块进行了实证诊断。这促使我们提出ECA模块。此外,我们开发了一种自适应确定ECA参数的方法,并最后展示了如何将其应用于深度卷积神经网络。

3.1、重新审视SE块中的通道注意力

假设一个卷积块的输出为 X ∈ R W × H × C \mathcal{X} \in \mathbb{R}^{W \times H \times C} XRW×H×C,其中 W , H W, H W,H C C C 分别是宽度、高度和通道维度(即滤波器的数量)。据此,SE块中通道的权重可以计算为

ω = σ ( f { W 1 , W 2 } ( g ( X ) ) ) , (1) \boldsymbol{\omega} = \sigma\left(f_{\left\{\mathbf{W}_{1}, \mathbf{W}_{2}\right\}}(g(\mathcal{X}))\right),\tag{1} ω=σ(f{W1,W2}(g(X))),(1)

其中 g ( X ) = 1 W H ∑ i = 1 , j = 1 W , H X i j g(\mathcal{X}) = \frac{1}{W H} \sum_{i=1, j=1}^{W, H} \mathcal{X}_{i j} g(X)=WH1i=1,j=1W,HXij 是通道级的全局平均池化(GAP), σ \sigma σ 是Sigmoid函数。令

y = g ( X ) \mathbf{y} = g(\mathcal{X}) y=g(X) f { w 1 , w 2 } f_{\left\{\mathbf{w}_{1}, \mathbf{w}_{2}\right\}} f{w1,w2} 的形式为

f { W 1 , W 2 } ( y ) = W 2 ReLU ( W 1 y ) , (2) f_{\left\{\mathbf{W}_{1}, \mathbf{W}_{2}\right\}}(\mathbf{y}) = \mathbf{W}_{2} \text{ReLU}\left(\mathbf{W}_{1} \mathbf{y}\right),\tag{2} f{W1,W2}(y)=W2ReLU(W1y),(2)

其中ReLU表示修正线性单元[25]。为了避免模型复杂度过高, W 1 \mathbf{W}_{1} W1 W 2 \mathbf{W}_{2} W2 的大小分别设置为 C × ( C r ) C \times \left(\frac{C}{r}\right) C×(rC) ( C r ) × C \left(\frac{C}{r}\right) \times C (rC)×C。我们可以看到, f { W 1 , W 2 } f_{\left\{\mathbf{W}_{1}, \mathbf{W}_{2}\right\}} f{W1,W2} 包含了通道注意力块的所有参数。虽然式(2)中的降维可以减少模型复杂度,但它破坏了通道与其权重之间的直接对应关系。例如,单个全连接层使用所有通道的线性组合来预测每个通道的权重。但是式(2)首先将通道特征投影到低维空间,然后再映射回来,这使得通道与其权重之间的对应关系变得间接。

3.2、高效通道注意力(ECA)模块

在回顾了SE块之后,我们进行了实证比较,以分析通道降维和跨通道交互对通道注意力学习的影响。根据这些分析,我们提出了高效的通道注意力(ECA)模块。

3.2.1、避免降维

如上所述,式(2)中的降维使得通道与其权重之间的对应关系变得间接。为了验证其影响,我们将原始的SE块与其三个变体(即SE-Var1、SE-Var2和SE-Var3)进行了比较,它们都不进行降维。如表2所示,没有参数的SE-Var1仍然优于原始网络,这表明通道注意力有能力提高深度卷积神经网络的性能。同时,SE-Var2独立地学习每个通道的权重,这略优于SE块,同时涉及的参数更少。这可能表明,通道与其权重之间需要直接的对应关系,避免降维比考虑非线性的通道依赖性更为重要。此外,使用单个全连接层的SE-Var3的性能优于SE块中使用降维的两个全连接层。上述所有结果都清楚地表明,避免降维有助于学习有效的通道注意力。因此,我们开发了没有通道降维的ECA模块。

3.2.2、局部跨通道交互

对于没有降维的聚合特征 y ∈ R C \mathbf{y} \in \mathbb{R}^{C} yRC,通道注意力可以通过以下方式学习:

ω = σ ( W y ) (3) \boldsymbol{\omega} = \sigma(\mathbf{W} \mathbf{y}) \tag{3} ω=σ(Wy)(3)

其中 W \mathbf{W} W 是一个 C × C C \times C C×C 的参数矩阵。特别是,对于SE-Var2和SE-Var3,我们有

W = { W var  2 = [ w 1 , 1 … 0 ⋮ ⋱ ⋮ 0 … w C , C ] , W var  3 = [ w 1 , 1 ⋯ w 1 , C ⋮ ⋱ ⋮ w 1 , C … w C , C ] , (4) \mathbf{W} = \left\{ \begin{array}{c} \mathbf{W}_{\text {var } 2} = \left[ \begin{array}{ccc} w^{1,1} & \ldots & 0 \\ \vdots & \ddots & \vdots \\ 0 & \ldots & w^{C, C} \end{array} \right], \\ \mathbf{W}_{\text {var } 3} = \left[ \begin{array}{ccc} w^{1,1} & \cdots & w^{1, C} \\ \vdots & \ddots & \vdots \\ w^{1, C} & \ldots & w^{C, C} \end{array} \right], \end{array} \right.\tag{4} W= Wvar 2= w1,100wC,C ,Wvar 3= w1,1w1,Cw1,CwC,C ,(4)

其中,SE-Var2的 W var  2 \mathbf{W}_{\text {var } 2} Wvar 2 是一个对角矩阵,包含 C C C 个参数;SE-Var3的 W var  3 \mathbf{W}_{\text {var } 3} Wvar 3 是一个全矩阵,包含 C × C C \times C C×C 个参数。如式(4)所示,关键区别在于SE-Var3考虑了跨通道交互,而SE-Var2没有,因此SE-Var3实现了更好的性能。这一结果表明,跨通道交互有助于学习通道注意力。然而,SE-Var3需要大量的参数,导致模型复杂度较高,尤其是对于通道数量较大的情况。
在SE-Var2和SE-Var3之间,一个可能的折衷方案是将 W var  2 \mathbf{W}_{\text {var } 2} Wvar 2扩展为块对角矩阵,即:

W G = [ W G 1 ⋯ 0 ⋮ ⋱ ⋮ 0 ⋯ W G G ] (5) \mathbf{W}_{G} = \left[ \begin{array}{ccc} \mathbf{W}_{G}^{1} & \cdots & \mathbf{0} \\ \vdots & \ddots & \vdots \\ \mathbf{0} & \cdots & \mathbf{W}_{G}^{G} \end{array} \right] \tag{5} WG= WG100WGG (5)

在式(5)中,我们将通道分为 G G G组,每组包含 C / G C / G C/G个通道,并在每个组内独立地学习通道注意力,从而以局部的方式捕获跨通道交互。因此,它涉及 C 2 / G C^{2} / G C2/G个参数。从卷积的角度来看,SE-Var2、SE-Var3和式(5)可以分别视为深度可分离卷积、全连接层和组卷积。这里,带有组卷积的SE块(SE-GC)表示为 σ ( G C G ( y ) ) = σ ( W G y ) \sigma\left(\mathrm{GC}_{G}(\mathbf{y})\right) = \sigma\left(\mathbf{W}_{G} \mathbf{y}\right) σ(GCG(y))=σ(WGy)

然而,正如[24]所示,过多的组卷积会增加内存访问成本,从而降低计算效率。此外,如表2所示,具有不同组数的SE-GC相比SE-Var2并没有带来性能提升,这表明它并不是一种有效的捕获局部跨通道交互的方案。原因可能是SE-GC完全忽略了不同组之间的依赖关系。

因此,我们需要寻找一种既能保持计算效率又能有效捕获局部跨通道交互的方法。这引导我们提出了高效通道注意力(ECA)模块,该模块通过一维卷积在相邻通道之间捕获局部跨通道交互,从而实现了在避免降维的同时学习有效的通道注意力。

在本文中,我们探索了另一种捕获局部跨通道交互的方法,旨在同时保证效率和有效性。具体来说,我们采用带状矩阵 W k \mathbf{W}_{k} Wk来学习通道注意力,其中 W k \mathbf{W}_{k} Wk具有如下形式:

[ w 1 , 1 ⋯ w 1 , k 0 0 ⋯ ⋯ 0 0 w 2 , 2 ⋯ w 2 , k + 1 0 ⋯ ⋯ 0 ⋮ ⋮ ⋮ ⋮ ⋱ ⋮ ⋮ ⋮ 0 ⋯ 0 0 ⋯ w C , C − k + 1 ⋯ w C , C ] (6) \left[ \begin{array}{cccccccc} w^{1,1} & \cdots & w^{1, k} & 0 & 0 & \cdots & \cdots & 0 \\ 0 & w^{2,2} & \cdots & w^{2, k+1} & 0 & \cdots & \cdots & 0 \\ \vdots & \vdots & \vdots & \vdots & \ddots & \vdots & \vdots & \vdots \\ 0 & \cdots & 0 & 0 & \cdots & w^{C, C-k+1} & \cdots & w^{C, C} \end{array} \right] \tag{6} w1,100w2,2w1,k00w2,k+1000wC,Ck+100wC,C (6)
在这里插入图片描述

显然,式(6)中的 W k \mathbf{W}_{k} Wk涉及 k × C k \times C k×C个参数,这通常少于式(5)中的参数数量。此外,式(6)避免了式(5)中不同组之间的完全独立性。如表2所示,式(6)中的方法(即ECA-NS)优于式(5)中的SE-GC。对于式(6), y i y_{i} yi的权重仅通过考虑 y i y_{i} yi与其 k k k个邻居之间的交互来计算,即:

ω i = σ ( ∑ j = 1 k w i j y i j ) , y i j ∈ Ω i k , (7) \omega_{i} = \sigma\left(\sum_{j=1}^{k} w_{i}^{j} y_{i}^{j}\right), \quad y_{i}^{j} \in \Omega_{i}^{k}, \tag{7} ωi=σ(j=1kwijyij),yijΩik,(7)

其中 Ω i k \Omega_{i}^{k} Ωik表示 y i y_{i} yi k k k个相邻通道的集合。

一种更有效的方法是让所有通道共享相同的学习参数,即:

ω i = σ ( ∑ j = 1 k w j y i j ) , y i j ∈ Ω i k . (8) \omega_{i} = \sigma\left(\sum_{j=1}^{k} w^{j} y_{i}^{j}\right), \quad y_{i}^{j} \in \Omega_{i}^{k}. \tag{8} ωi=σ(j=1kwjyij),yijΩik.(8)

注意,这种策略可以通过一个具有大小为 k k k的卷积核的快速一维卷积轻松实现,即:

ω = σ ( C 1 D k ( y ) ) , (9) \boldsymbol{\omega} = \sigma\left(\mathrm{C}1\mathrm{D}_{k}(\mathbf{y})\right), \tag{9} ω=σ(C1Dk(y)),(9)

其中C1D表示一维卷积。这里,式(9)中的方法被称为高效通道注意力(ECA)模块,它仅涉及 k k k个参数。如表2所示,我们的ECA模块在 k = 3 k=3 k=3时与SE-var 3取得了相似的结果,但模型复杂度要低得多,这通过适当捕获局部跨通道交互保证了效率和有效性。

3.2.3、局部跨通道交互的覆盖范围

由于我们的ECA模块(9)旨在适当捕获局部跨通道交互,因此需要确定交互的覆盖范围(即一维卷积的核大小 k k k)。对于不同CNN架构中具有不同通道数的卷积块,交互的优化覆盖范围可以通过手动调整获得。然而,通过交叉验证进行手动调整将消耗大量计算资源。组卷积已成功应用于改进CNN架构中[37, 34, 16],在固定组数的情况下,高维(低维)通道涉及长距离(短距离)卷积。基于类似的原理,局部跨通道交互的覆盖范围(即一维卷积的核大小 k k k)与通道维度 C C C成正比是合理的。换句话说, k k k C C C之间可能存在一个映射 ϕ \phi ϕ

C = ϕ ( k ) . (10) C = \phi(k).\tag{10} C=ϕ(k).(10)

最简单的映射是线性函数,即 ϕ ( k ) = γ ⋅ k − b \phi(k) = \gamma \cdot k - b ϕ(k)=γkb。然而,线性函数所表征的关系过于局限。另一方面,众所周知,通道维度 C C C(即滤波器的数量)通常设置为2的幂。因此,我们将线性函数 ϕ ( k ) = γ ⋅ k − b \phi(k) = \gamma \cdot k - b ϕ(k)=γkb扩展到非线性函数,即:

C = ϕ ( k ) = 2 ( γ ⋅ k − b ) . (11) C = \phi(k) = 2^{(\gamma \cdot k - b)}.\tag{11} C=ϕ(k)=2(γkb).(11)

然后,给定通道维度 C C C,可以通过以下方式自适应地确定核大小 k k k

k = ψ ( C ) = ∣ log ⁡ 2 ( C ) γ + b γ ∣ odd , (12) k = \psi(C) = \left|\frac{\log_{2}(C)}{\gamma} + \frac{b}{\gamma}\right|_{\text{odd}},\tag{12} k=ψ(C)= γlog2(C)+γb odd,(12)

其中 ∣ t ∣ odd |t|_{\text{odd}} todd表示 t t t的最接近的奇数。在本文中,我们在所有实验中分别将 γ \gamma γ b b b设置为2和1。显然,通过映射 ψ \psi ψ,高维通道具有更长的交互范围,而低维通道则通过非线性映射进行较短范围的交互。

3.3、深度卷积神经网络中的ECA模块

图2展示了我们的ECA模块的概述。在使用全局平均池化(GAP)聚合卷积特征而不进行降维之后,ECA模块首先自适应地确定核大小 k k k,然后执行一维卷积并跟随Sigmoid函数来学习通道注意力。为了将我们的ECA应用于深度卷积神经网络(CNNs),我们按照[14]中的相同配置,用ECA模块替换SE块。得到的网络被命名为ECA-Net。图3提供了我们ECA模块的PyTorch代码。
在这里插入图片描述

4、实验

在本节中,我们使用所提出的方法在ImageNet [6]和MS COCO [23]数据集上的大规模图像分类,目标检测和实例分割任务进行评估。 具体来说,我们首先评估内核大小对ECA模块的影响,然后与ImageNet上的最新技术进行比较。 然后,我们使用Faster R-CNN [26],Mask R-CNN [10]和RetinaNet [22]验证了ECA-Net在MS COCO上的有效性。

4.1、实现细节

为了评估我们的ECA-Net在ImageNet分类任务上的性能,我们采用了四种广泛使用的卷积神经网络作为骨干模型,包括ResNet-50 [11]、ResNet-101 [11]、ResNet-512 [11]和MobileNetV2 [28]。对于使用ECA的ResNet训练,我们完全采用[11, 14]中的相同数据增强和超参数设置。具体来说,输入图像被随机裁剪为 224 × 224 224 \times 224 224×224大小,并随机进行水平翻转。网络参数通过带有权重衰减1e-4、动量0.9和小批量大小为256的随机梯度下降(SGD)进行优化。所有模型均在100个周期内进行训练,初始学习率设置为0.1,每30个周期减少10倍。对于使用ECA的MobileNetV2训练,我们遵循[28]中的设置,其中网络在400个周期内使用SGD进行训练,权重衰减为4e-5,动量为0.9,小批量大小为96。初始学习率设置为0.045,并以0.98的线性衰减率进行降低。在验证集上进行测试时,首先将输入图像的较短边调整到256,然后使用中心裁剪的 224 × 224 224 \times 224 224×224区域进行评估。所有模型均使用PyTorch工具包实现。

我们进一步在MS COCO数据集上使用Faster R-CNN [26]、Mask R-CNN [10]和RetinaNet [22]评估我们的方法,其中ResNet-50和ResNet-101与FPN [21]一起用作骨干模型。我们使用MMDetection工具包[3]实现所有检测器,并采用默认设置。具体来说,输入图像的较短边被调整为800,然后使用带有权重衰减1e-4、动量0.9和小批量大小为8(在4个GPU上,每个GPU上2张图像)的SGD进行优化。学习率初始化为0.01,并在第8个和第11个周期后分别降低10倍。我们在COCO的train2017数据集上对所有检测器进行12个周期的训练,并在val2017上报告结果进行比较。所有程序都在配备四个RTX 2080Ti GPU和Intel® Xeon Silver 4112 CPU@2.60GHz的PC上运行。

4.2、ImageNet-1K上的图像分类

在这里,我们首先评估核大小对我们ECA模块的影响,并验证我们方法自适应确定核大小的有效性。然后,我们使用ResNet-50、ResNet-101、ResNet-152和MobileNetV2,将我们的方法与最先进的同类方法和CNN模型进行比较。

4.2.1、ECA模块中核大小(k)的影响

如公式(9)所示,我们的ECA模块包含一个参数k,即一维卷积的核大小。在这一部分,我们评估核大小对我们ECA模块的影响,并验证我们方法自适应选择核大小的有效性。为此,我们采用ResNet-50和ResNet-101作为骨干模型,并通过设置k值从3到9来训练带有ECA模块的模型。结果如图4所示,我们得到以下观察结果。
在这里插入图片描述

首先,当在所有卷积块中固定k时,ECA模块在k=9和k=5时分别对于ResNet-50和ResNet-101获得最佳结果。由于ResNet-101具有更多主导性能的中间层,它可能更倾向于较小的核大小。此外,这些结果表明不同的深度卷积神经网络具有不同的最优k值,且k对ECA-Net的性能有明显影响。此外,ResNet-101的准确率波动(约0.5%)大于ResNet-50的波动(约0.15%),我们推测原因是较深的网络对固定核大小的敏感性高于较浅的网络。另外,通过公式(12)自适应确定的核大小通常优于固定核大小,同时可以避免通过交叉验证手动调整参数k。上述结果证明了我们的自适应核大小选择方法在获得更好且稳定结果方面的有效性。最后,具有不同k值的ECA模块始终优于SE块,这验证了避免降维和局部跨通道交互对学习通道注意力有积极影响。

4.2.2、使用不同深度CNN的比较

ResNet-50 我们使用ResNet-50在ImageNet上将我们的ECA模块与几种最先进的注意力方法进行比较,包括SENet [14]、CBAM [33]、 A 2 − N e t s [ 4 ] A^{2}-Nets [4] A2Nets[4]、AA-Net [1]、GSoP-Net1 [9]和GCNet [2]。评价指标包括效率(即网络参数、每秒浮点运算次数(FLOPs)以及训练/推理速度)和有效性(即Top-1/Top-5准确率)。为了进行比较,我们复制了[14]中ResNet和SENet的结果,并在原始论文中报告了其他比较方法的结果。为了测试各种模型的训练/推理速度,我们使用了公开可用的比较CNN模型,并在相同的计算平台上运行它们。结果如表3所示,我们可以看到我们的ECA-Net与原始ResNet-50具有几乎相同的模型复杂度(即网络参数、FLOPs和速度),同时在Top-1准确率上获得了2.28%的提升。与最先进的同类方法(即SENet、CBAM、 A 2 − N e t s A^{2}-Nets A2Nets、AA-Net、GSoP-Net1和GCNet)相比,ECA-Net在具有更低模型复杂度的同时获得了更好或具有竞争力的结果。
在这里插入图片描述

ResNet-101 使用ResNet-101作为骨干模型,我们将我们的ECA-Net与SENet [14]、CBAM [33]和AA-Net [1]进行比较。从表3中我们可以看到,ECA-Net以几乎相同的模型复杂度比原始ResNet-101高出1.8%的准确率。与在ResNet-50上表现出相同趋势的ECA-Net相比,它优于SENet和CBAM,同时与具有更低模型复杂度的AA-Net相比非常具有竞争力。需要注意的是,AA-Net使用Inception数据增强和不同的学习率设置进行训练。

ResNet-152 我们以ResNet-152为骨干模型,将我们的ECA-Net与SENet [14]进行比较。从表3中我们可以看到,ECA-Net在几乎相同的模型复杂度下,将原始ResNet-152的Top-1准确率提高了约1.3%。与SENet相比,ECA-Net在具有更低模型复杂度的同时,Top-1准确率提高了0.5%。关于ResNet-50、ResNet-101和ResNet-152的结果证明了我们的ECA模块在广泛使用的ResNet架构上的有效性。

MobileNetV2 除了ResNet架构外,我们还验证了我们的ECA模块在轻量级CNN架构上的有效性。为此,我们采用MobileNetV2 [28]作为骨干模型,并将我们的ECA模块与SE块进行比较。特别地,我们在MobileNetV2每个“瓶颈”中的残差连接之前的卷积层中集成了SE块和ECA模块,并将SE块的参数 r r r设置为8。所有模型都使用完全相同的设置进行训练。表3中的结果显示,我们的ECA-Net将原始MobileNetV2和SENet的Top-1准确率分别提高了约0.9%和0.14%。此外,我们的ECA-Net的模型大小比SENet更小,训练/推理速度也更快。上述结果再次验证了我们的ECA模块的有效性和效率。

4.2.3、与其他CNN模型的比较

在本部分的最后,我们将我们的ECA-Net50和ECA-Net101与其他最先进的CNN模型进行比较,包括ResNet-200 [12]、Inception-v3 [31]、ResNeXt [34]、DenseNet [15]。这些CNN模型具有更深和更宽的架构,并且它们的结果都是从原始论文中复制的。如表4所示,ECA-Net101的性能优于ResNet-200,这表明我们的ECA-Net可以以更低的计算成本提高深度CNN的性能。同时,我们的ECA-Net101与ResNeXt-101相比也具有很强的竞争力,而后者使用了更多的卷积滤波器和昂贵的分组卷积。此外,ECA-Net50与DenseNet-264(k=32)、DenseNet-161(k=48)和Inception-v3相当,但其模型复杂度更低。上述所有结果都表明,我们的ECA-Net在与最先进的CNN相比时表现优异,同时受益于更低的模型复杂度。请注意,我们的ECA也有很大的潜力进一步提高所比较的CNN模型的性能。
在这里插入图片描述

4.3、在MS COCO上的目标检测

在本小节中,我们使用Faster R-CNN [26]、Mask R-CNN [10]和RetinaNet [22]在目标检测任务上评估我们的ECA-Net。我们主要将ECA-Net与ResNet和SENet进行比较。所有CNN模型都在ImageNet上进行预训练,然后通过微调转移到MS COCO上。

在这里插入图片描述

4.3.1、使用Faster R-CNN的比较

以Faster R-CNN作为基本检测器,我们采用50层和101层的ResNet以及FPN [21]作为骨干模型。如表5所示,无论是SE块还是我们的ECA模块,集成后都能显著提高目标检测的性能。同时,使用ResNet-50和ResNet-101时,我们的ECA在AP方面分别比SE块高出0.3%和0.7%。

4.3.2、使用Mask R-CNN的比较

我们进一步使用Mask R-CNN来验证我们的ECA-Net在目标检测任务上的有效性。如表5所示,在50层和101层设置下,我们的ECA模块在AP方面分别比原始ResNet高出1.8%和1.9%。同时,使用ResNet-50和ResNet-101作为骨干模型时,ECA模块分别比SE块高出0.3%和0.6%。使用ResNet-50时,ECA优于NL [32],并且在较低模型复杂度下与GC块 [2]相当。

4.3.3、使用RetinaNet的比较

此外,我们还使用一阶段检测器RetinaNet验证了ECA-Net在目标检测上的有效性。如表5所示,我们的ECA-Net在50层和101层网络上的AP方面分别比原始ResNet高出1.8%和1.4%。同时,对于ResNet-50和ResNet-101,ECA-Net分别比SE-Net提高了0.2%和0.4%。总的来说,表5中的结果表明,我们的ECA-Net可以很好地推广到目标检测任务上。具体来说,ECA模块在原始ResNet的基础上带来了明显的改进,同时在使用更低模型复杂度的情况下优于SE块。特别地,我们的ECA模块在检测小物体方面取得了更多的增益,而这些小物体通常更难被检测到。

4.4、MS COCO上的实例分割

接着,我们使用Mask R-CNN在MS COCO上给出了我们的ECA模块的实例分割结果。如表6所示,ECA模块在原始ResNet的基础上取得了显著的增益,同时以较低的模型复杂度优于SE块。对于以ResNet-50为骨干模型的情况,ECA在较低模型复杂度下优于NL [32],并与GC块 [2]相当。这些结果验证了我们的ECA模块对于各种任务具有良好的泛化能力。
在这里插入图片描述

5、结论

在本文中,我们专注于为模型复杂度较低的深层CNN学习有效的渠道关注度。 为此,我们提出了一种有效的通道注意力(ECA)模块,该模块通过快速的1D卷积生成通道注意力,其内核大小可以通过通道尺寸的非线性映射来自适应确定。 实验结果表明,我们的ECA是一种极其轻巧的即插即用模块,可提高各种深度CNN架构的性能,包括广泛使用的ResNets和轻巧的MobileNetV2。 此外,我们的ECA-Net在对象检测和实例分割任务中表现出良好的概括能力。 将来,我们会将ECA模块应用于更多的CNN架构(例如ResNeXt和Inception [31]),并进一步研究将ECA与空间关注模块的结合。

YoloV5官方结果

   YOLOv5l summary: 267 layers, 46275213 parameters, 0 gradients, 108.2 GFLOPsClass     Images  Instances          P          R      mAP50   mAP50-95: 100%|██████████| 15/15 [00:02<00:00,  5.16it/s]all        230       1412      0.971       0.93      0.986      0.729c17        230        131      0.992      0.992      0.995      0.797c5        230         68      0.953          1      0.994       0.81helicopter        230         43      0.974      0.907      0.948       0.57c130        230         85          1      0.981      0.994       0.66f16        230         57      0.999       0.93      0.975      0.677b2        230          2      0.971          1      0.995      0.746other        230         86      0.987      0.915      0.974      0.545b52        230         70      0.983      0.957      0.981      0.803kc10        230         62          1      0.977      0.985      0.819command        230         40      0.971          1      0.986      0.782f15        230        123      0.992      0.976      0.994      0.655kc135        230         91      0.988      0.989      0.986      0.699a10        230         27          1      0.526      0.912      0.391b1        230         20      0.949          1      0.995      0.719aew        230         25      0.952          1      0.993      0.781f22        230         17      0.901          1      0.995      0.763p3        230        105      0.997       0.99      0.995      0.789p8        230          1      0.885          1      0.995      0.697f35        230         32      0.969      0.984      0.985      0.569f18        230        125      0.974      0.992       0.99      0.806v22        230         41      0.994          1      0.995      0.641su-27        230         31      0.987          1      0.995      0.842il-38        230         27      0.994          1      0.995      0.785tu-134        230          1      0.879          1      0.995      0.796su-33        230          2          1          0      0.995      0.846an-70        230          2      0.943          1      0.995      0.895tu-22        230         98      0.983          1      0.995      0.788

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/776608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RN在android手机剪切图片的操作

之前写过一个React Native调用摄像头画面及拍照和保存图片到相册全流程但是这个仅限于调用摄像头拍照并保存图片,今天再写一个版本的操作,这个博客目前实现的有三点操作: 调用摄像头拍照对照片进行剪切从相册选取图片 功能上面来说有两点: 点击按钮可以对摄像头进行拍照,拍完照…

月入10.5k;36岁生物专业转行网优,选择真的比努力更重要!

张雪峰说&#xff1a;普通家庭的孩子选择专业首要要考虑的是能不能就业&#xff1f;能不能拿到高薪&#xff1f;因为除了你的父母&#xff0c;没人会对你的未来负责。 学历和专业哪个更重要&#xff1f;不同的人往往会有不同的解答&#xff0c;今天故事的主人公H先生毕业于武汉…

2.4 死锁

1 2 3 4 5 6 7 8 9 10 11 12 13

github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具

FastGithub github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 下载地址&#xff1a; 清华云盘 2 部署方式 2.1 windows-x64桌面 双击运行FastGithub.UI.exe 2.2 windows-x64服务 fastgi…

工业以太网无线网桥

一、功能概述 1.1设备简介 本产品是工业以太网&#xff08;Profinet、EtherNet/IP、ModbusTCP等&#xff09;转无线设备&#xff0c;成对使用&#xff08;一对一&#xff09;&#xff0c;本产品出厂前已经配对好&#xff0c;用户不需要再配对&#xff0c;即插即用。 本产品适…

当下国内共享办公室和国外的有什么不同

共享办公室&#xff0c;也被称为联合办公空间&#xff08;Coworking Space&#xff09;&#xff0c;是一种为自由职业者、独立承包商、初创企业以及远程工作者提供灵活、共享工作空间的办公模式。这种办公方式起源于美国硅谷&#xff0c;随着远程工作和自由职业的兴起而逐渐流行…

WIFI驱动移植实验: wireless tools 工具测试

一. 简介 前面一篇文章交叉编译了 wireless tools 工具&#xff0c;并移植到开发板文件系统上。文章如下&#xff1a; WIFI驱动移植实验&#xff1a; wireless tools 工具移植-CSDN博客 本文对 所移植的操作 WIFI设备的工具 wireless tools进行测试。确认是否可以使用。 二…

Laravel扩展包的开发

扩展包的开发 1. 创建一个新项目&#xff0c;初始化扩展包配置 首先创建一个全新的Laravel项目&#xff1a; composer create-project --prefer-dist laravel/laravel laravelPkg 接下来&#xff0c;在项目中创建目录package/{your_name}/{your_package_name} mkdir -p pa…

在点集的新知识面前百年集论不堪一击

黄小宁 与x∈R相异&#xff08;等&#xff09;的实数均可表为yxδ&#xff08;增量δ可0也可≠0&#xff09;&#xff0c;因各实数的绝对值都可是表示长度的数故各实数都可是数轴上点的坐标&#xff0c;于是x∈R变换为实数yxδ的几何意义可是&#xff1a;一维空间“管道”g内R…

Python程序设计 循环结构(二)

1.斐波那契数列 编写一个能计算斐波那契数列中第x个数的小程序。斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列、 因数学家莱昂纳多斐波那契&#xff08;Leonardoda Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称为…

Sublime for Mac 使用插件Terminus

1. 快捷键打开命令面板 commandshiftp2. 选择 Package Control: Install Package&#xff0c;然后会出现安装包的列表 3. 在安装终端插件前&#xff0c;我们先装个汉化包&#xff0c;ChineseLocallization&#xff0c;安装完重启 4. 输入 terminus&#xff0c;选择第一个&am…

【C++】从C到C++、从面向过程到面向对象(类与对象)

文章目录 C入门知识C与C的关系1. 类的引入&#xff1a;从结构体到类2. 类的声明和定义3. 类的作用域4. 类的访问限定符5. 面向对象特性之一&#xff1a;封装6. 类的实例化&#xff1a;对象7. 计算类对象的内存大小8. 成员函数中暗藏的this指针9. 类的六个默认生成的成员函数9.1…

iptables添加端口映射,k8s主机查询不到端口但能访问。

研究原因&#xff1a;k8s内一台主机使用命令查询没有80端口。但通过浏览器访问又能访问到服务。 查询了资料是使用了hostport方式暴露pod端口。cni调用iptables增加了DNAT规则。访问时流量先经过iptables直接被NAT到具体服务去了。 链接: K8s罪魁祸首之"HostPort劫持了我…

MySql实战--事务到底是隔离的还是不隔离的

第3篇文章和你讲事务隔离级别的时候提到过&#xff0c;如果是可重复读隔离级别&#xff0c;事务T启动的时候会创建一个视图read-view&#xff0c;之后事务T执行期间&#xff0c;即使有其他事务修改了数据&#xff0c;事务T看到的仍然跟在启动时看到的一样。也就是说&#xff0c…

外贸资讯 | 你看不上的邻居1-2月从中国进口额猛增

你看不上的邻居1-2月进口额猛增 被你猜对了&#xff0c;是印度 先是在俄罗斯最近的新闻报道里说&#xff0c;1月份中国成为印度主要贸易伙伴&#xff1a;两国贸易额增长16%&#xff0c;达到105亿美元。 然后去查了印度海关数据&#xff0c;也是中国排在第一&#xff0c;有意…

Stable Diffusion XL之核心基础内容

Stable Diffusion XL之核心基础内容 一. Stable Diffusion XL核心基础内容1.1 Stable Diffusion XL的主要优化1.2 SDXL整体架构初识1.3 VAE模型1.VAE基本介绍2. VAE基本模型结构3.VAE的训练 1.4 U-Net模型&#xff08;Base部分&#xff09;1. 十四个基本模块概述2. SDXL_Spatia…

SwiftUI Release 引入的辅助焦点管理

文章目录 前言使用 FocusState 属性包装器高级技巧&#xff1a;专用辅助技术可聚焦字段的高级用法优化体验运行截图总结 前言 SwiftUI Release 引入了强大的新功能&#xff0c;其中之一是辅助焦点管理。 这个新功能使得在SwiftUI中处理辅助技术&#xff08;如 VoiceOver 和 S…

百度谷歌301强引蜘蛛池效果怎么样

301强引蜘蛛池效果怎么样 本文 虚良SEO 原创&#xff0c;转载保留链接&#xff01;网址&#xff1a;百度谷歌301强引蜘蛛池效果怎么样 - 虚良SEO 随着搜索引擎优化&#xff08;SEO&#xff09;技术的发展&#xff0c;越来越多的网站开始采用蜘蛛池技术来提高网站的排名和流量。…

关于Kubernetes-v1.23.6-资源调度-StatefulSet-OnDelete当删除的时候才更新

前面提到的普通的滚动更新&#xff0c;都是修改完sts立即就会发生更新操作 而还有一种更新的策略为&#xff0c; OnDelete&#xff0c;即只有在 pod 被删除时会进行更新操作 还是先看一下web这个sts的当前更新策略如下&#xff1a; 这里我们修改&#xff0c;更新策略&#xf…

【创作纪念日】1024回忆录

不知不觉中&#xff0c;从创作第一篇文章到现在&#xff0c;已经1024天了&#xff0c;两年多的时间里&#xff0c;已经从硕士到博士了&#xff0c;1024&#xff0c;对于程序员来说&#xff0c;是个特别的数字吧&#xff0c;在此回忆与记录一下这些美好的经历吧。 缘起 很早以前…