
摘要
近年来,通道注意力机制在提升深度卷积神经网络(CNN)性能方面展现出巨大潜力。然而,大多数现有方法致力于设计更为复杂的注意力模块以追求更高性能,这不可避免地导致模型复杂度上升。为解决性能与复杂度之间的权衡难题,本文提出一种高效通道注意力(Efficient Channel Attention, ECA)模块。该模块仅包含少量参数,却能带来显著的性能提升。通过对SENet中通道注意力模块的深入分析,我们通过实证研究发现:避免降维操作对于学习有效的通道注意力至关重要;而通过适当的跨通道交互,可在显著降低模型复杂度的同时保持原有性能水平。基于此,我们提出一种无需降维的局部跨通道交互策略,该策略可通过一维卷积(1D convolution)高效实现。此外,我们进一步设计了一种自适应方法,用于动态选择1D卷积的核大小,从而确定局部跨通道交互的覆盖范围。所提出的ECA模块兼具高效性与有效性。以ResNet50为主干网络为例,其参数量仅为24.37M的80分之一(即约80万),计算量也从3.86 GFLOPs降至4.7×10⁻⁴ GFLOPs,降幅超过三个数量级,同时在Top-1准确率上实现了超过2%的性能提升。我们在基于ResNet和MobileNetV2主干网络的图像分类、目标检测与实例分割任务上对ECA模块进行了广泛评估。实验结果表明,ECA模块在保持优异性能的同时,显著优于现有同类方法,在效率方面具有明显优势。
代码仓库
rwightman/pytorch-image-models
pytorch
GitHub 中提及
mnikitin/channel-attention
mxnet
GitHub 中提及
digantamisra98/Reproducibilty-Challenge-ECANET
pytorch
GitHub 中提及
e96031413/AA-YOLO
pytorch
GitHub 中提及
e96031413/PyTorch_YOLOv4-tiny
pytorch
GitHub 中提及
BangguWu/ECANet
官方
pytorch
GitHub 中提及
HaloTrouvaille/YOLO-Multi-Backbones-Attention
pytorch
GitHub 中提及
JinLi711/Convolution_Variants
tf
GitHub 中提及
xmu-xiaoma666/External-Attention-pytorch
pytorch
GitHub 中提及
JinLi711/Attention-Augmented-Convolution
tf
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| image-classification-on-imagenet | ECA-Net (ResNet-152) | GFLOPs: 10.83 Number of params: 57.40M Top 1 Accuracy: 78.92% |
| image-classification-on-imagenet | ECA-Net (ResNet-50) | GFLOPs: 3.86 Number of params: 24.37M Top 1 Accuracy: 77.48% |
| image-classification-on-imagenet | ECA-Net (MobileNetV2) | GFLOPs: 0.320 Number of params: 3.34M Top 1 Accuracy: 72.56% |
| image-classification-on-imagenet | ECA-Net (ResNet-101) | GFLOPs: 7.35 Number of params: 42.49M Top 1 Accuracy: 78.65% |
| object-detection-on-dsec | ECANet | mAP: 25.7 |
| object-detection-on-pku-ddd17-car | ECANet | mAP50: 82.2 |