YOLO26改进 - 注意力机制 | 多扩张通道细化器MDCR 通过通道划分与异构扩张卷积提升小目标定位能力

简介: 本文介绍了一种在YOLO26目标检测模型中引入高效解码器模块EMCAD的创新方法,以提升模型在资源受限场景下的性能与效率。EMCAD由多个模块构成,其中核心的EUCB(高效上卷积块)通过上采样、深度可分离卷积、激活归一化和通道调整等操作,兼顾了特征质量与计算成本。实验结果显示,该模块在显著减少参数与FLOPs的同时仍具备优异性能。文章还提供了完整的YOLO26模型集成流程、配置和训练实战。

前言

本文介绍了一种在YOLO26目标检测模型中引入高效解码器模块EMCAD的创新方法,以提升模型在资源受限场景下的性能与效率。EMCAD由多个模块构成,其中核心的EUCB(高效上卷积块)通过上采样、深度可分离卷积、激活归一化和通道调整等操作,兼顾了特征质量与计算成本。实验结果显示,该模块在显著减少参数与FLOPs的同时仍具备优异性能。文章还提供了完整的YOLO26模型集成流程、配置和训练实战。

文章目录: YOLO26改进大全:卷积层、轻量化、注意力机制、损失函数、Backbone、SPPF、Neck、检测头全方位优化汇总

专栏链接: YOLO26改进专栏

@[TOC]

介绍

image-20240701160512143

摘要

红外小目标检测作为计算机视觉领域的一项关键任务,旨在识别并定位红外图像中的微小目标,这些目标往往仅有几个像素大小。然而,由于目标体积微小且红外图像背景通常较为复杂,该任务面临着诸多挑战。本文提出了一种深度学习方法HCF - Net,借助多个实用模块显著提高了红外小目标检测的性能。具体来讲,该方法包含并行化的感知补丁注意力(PPA)模块、维度感知选择性融合(DASI)模块和多膨胀通道优化(MDCR)模块。PPA模块采用多分支特征提取策略来捕获不同尺度和层次的特征信息;DASI模块实现了自适应的通道选择与融合;MDCR模块通过多层深度可分离卷积捕捉不同感受野范围的空间特征。大量实验结果显示,在SIRST红外单帧图像数据集上,所提出的HCF - Net表现卓越,超越了其他传统模型和深度学习模型。代码可从https://github.com/zhengshuchen/HCFNet获取。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

HCF-Net(Hierarchical Context Fusion Network)是一种用于红外小目标检测的深度学习模型,旨在提高对红外图像中微小目标的识别和定位能力。

  1. 网络架构:HCF-Net采用了一种升级版的U-Net架构,主要由三个关键模块组成:Parallelized Patch-Aware Attention(PPA)模块、Dimension-Aware Selective Integration(DASI)模块和Multi-Dilated Channel Refiner(MDCR)模块。这些模块在不同层级上解决了红外小目标检测中的挑战 。

  2. PPA模块

    • Hierarchical Feature Fusion:PPA模块利用分层特征融合和注意力机制,以在多次下采样过程中保持和增强小目标的表示,确保关键信息在整个网络中得以保留[T1]。
    • Multi-Branch Feature Extraction:PPA采用多分支特征提取策略,以捕获不同尺度和级别的特征信息,从而提高小目标检测的准确性 。
  3. DASI模块

    • Adaptive Feature Fusion:DASI模块增强了U-Net中的跳跃连接,专注于高低维特征的自适应选择和精细融合,以增强小目标的显著性 。
  4. MDCR模块

    • Spatial Feature Refinement:MDCR模块通过多个深度可分离卷积层捕获不同感受野范围的空间特征,更细致地建模目标和背景之间的差异,提高了定位小目标的能力 。

image-20240701161043152

Multi-Dilated Channel Refiner(MDCR)模块是HCF-Net中的关键组成部分,旨在增强网络对红外小目标检测的特征表示和区分能力。

  1. MDCR模块的目的:MDCR模块旨在通过采用多种扩张率的深度可分离卷积层,捕获不同感受野大小的空间特征,从而实现对目标和背景之间差异的详细建模,提升网络有效区分小目标的能力 。

  2. MDCR模块的结构

    • 输入特征的划分:MDCR模块将输入特征F_a沿通道维度划分为四个独立的头部,生成对应的(a_i),其中i从1到4。每个头部对应特定的特征集合 。
    • 深度可分离扩张卷积:每个头部经历独立的深度可分离扩张卷积,具有不同的扩张率,最终生成(a'_i),其中i从1到4。这些卷积的扩张率分别标记为d1、d2、d3和d4 。
    • 特征增强:通过对各个头部应用深度可分离扩张卷积,MDCR模块增强了特征表示和网络的区分能力 。
  3. MDCR模块的有效性

    • 捕获空间特征:MDCR模块在不同感受野范围内捕获空间特征,使网络更好地理解红外图像中目标的上下文和细节 。
    • 区分小目标:通过利用具有不同扩张率的多个深度可分离卷积层,MDCR模块增强了网络区分小目标和背景的能力,提高了检测性能 。

    如下图所示MDCR沿着通道维度将输入特征$\mathbf{F}_{a}\in\mathbb{R}^{H\times W\times C}$分成四个不同的头,生成$(\mathbf{a}i){i=1}^4\in\mathbb{R}^{H\times W\times\frac{C}{4}}$。然后,每个头部以不同的扩张率分别进行深度可分离的扩张卷积,得到$(\mathbf{a}^{\prime}i){i=1}^4\in\mathbb{R}^{H\times W\times\frac{C}{4}}$。将卷积扩张率分别命名为$d1、d2、d3$和$d4$。

    $$\mathbf{a}_i^{\prime}=DDWConv(\mathbf{a}_i),$$

    其中,$\mathbf{a}_i^{\prime}$表示对第$i$个头部进行深度可分离扩张卷积后获得的特征。操作$DDWConv()$表示深度可分离扩张卷积,$i$取值为1、2、3、4。

    MDCR通过通道分割和重组来增强特征表示。具体来说,我们将$\mathbf{a'}i$分割成单个通道,从而得到每个头部的$(\mathbf{a}^{j}{i})_{j=1}^{\frac{C}{4}}\in\mathbb{R}^{H\times W\times1}$。然后,我们将这些通道交错排列,形成$(\mathbf{h}j){j=1}^{\frac{C}{4}}\in\mathbb{R}^{H\times W\times4}$,从而增强多尺度特征的多样性。随后,我们使用点式卷积法进行组间和跨组信息融合,得到输出$\mathbf{F}_{o}\in\mathbb{R}^{H\times W\times C}$,实现轻量高效的聚合效果。

    $$\mathbf{h}_j=Winner([\mathbf{a}^j_1, \mathbf{a}^j_2, \mathbf{a}^j_3, \mathbf{a}^j_4]), \mathbf{F}_{o}=\delta(B(W_{outer}([\mathbf{h}_1, \mathbf{h}_2, \ldots, \mathbf{h}_j])))$$

    其中,$W{inner}$和$W{outer}$是用于点卷积的权重矩阵。这里,$\mathbf{a}^j_i$表示第$i$个头的第$j$个通道,而$\mathbf{h}_j$表示第$j$组特征。$i \in {1, 2, 3, 4}$,$j \in {1, 2, \ldots, \frac{C}{4}}$。函数$\delta()$和$\mathcal{B}()$分别对应于整流线性单元(ReLU)和批量归一化(BN)。


image-20240701161122511

核心代码

class MDCR(nn.Module):
    def __init__(self, in_features, out_features, norm_type='bn', activation=True, rate=[1, 6, 12, 18]):
        super().__init__()

        # 定义四个卷积块,每个块使用不同的扩张率进行深度可分离卷积
        self.block1 = conv_block(
            in_features=in_features//4,
            out_features=out_features//4,
            padding=rate[0],
            dilation=rate[0],
            norm_type=norm_type,
            activation=activation,
            groups=128
        )
        self.block2 = conv_block(
            in_features=in_features//4,
            out_features=out_features//4,
            padding=rate[1],
            dilation=rate[1],
            norm_type=norm_type,
            activation=activation,
            groups=128
        )
        self.block3 = conv_block(
            in_features=in_features//4,
            out_features=out_features//4,
            padding=rate[2],
            dilation=rate[2],
            norm_type=norm_type,
            activation=activation,
            groups=128
        )
        self.block4 = conv_block(
            in_features=in_features//4,
            out_features=out_features//4,
            padding=rate[3],
            dilation=rate[3],
            norm_type=norm_type,
            activation=activation,
            groups=128
        )

        # 定义输出的尺寸调整卷积块和最终输出卷积块
        self.out_s = conv_block(
            in_features=4,
            out_features=4,
            kernel_size=(1, 1),
            padding=(0, 0),
            norm_type=norm_type,
            activation=activation,
        )
        self.out = conv_block(
            in_features=out_features,
            out_features=out_features,
            kernel_size=(1, 1),
            padding=(0, 0),
            norm_type=norm_type,
            activation=activation,
        )

    def forward(self, x):
        split_tensors = []
        x = torch.chunk(x, 4, dim=1)  # 沿通道维度将输入张量分成四个部分
        x1 = self.block1(x[0])
        x2 = self.block2(x[1])
        x3 = self.block3(x[2])
        x4 = self.block4(x[3])

        # 对每个通道进行操作,拼接和处理
        for channel in range(x1.size(1)):
            channel_tensors = [tensor[:, channel:channel + 1, :, :] for tensor in [x1, x2, x3, x4]]
            concatenated_channel = self.out_s(torch.cat(channel_tensors, dim=1))  # 在通道维度上拼接
            split_tensors.append(concatenated_channel)

        x = torch.cat(split_tensors, dim=1)  # 沿通道维度拼接
        x = self.out(x)  # 最终输出
        return x

YOLO26引入代码

在根目录下的ultralytics/nn/目录,新建一个attention目录,然后新建一个以 MDCR为文件名的py文件, 把代码拷贝进去。

相关文章
|
3月前
|
机器学习/深度学习 人工智能 监控
YOLOv11 改进 - 主干网络| 集成Mamba-YOLO(AAAI 2025),Mamba-YOLOv11-T 替换骨干,破解全局依赖建模难题,实现高效实时检测
Mamba YOLO提出将状态空间模型(SSM)引入实时目标检测,融合YOLO架构优势,实现“又快又准”。其通过ODMamba骨干网络解决自注意力二次复杂度问题,无需预训练;设计RG块增强局部细节建模,提升定位精度;结合多尺度融合策略,在COCO上小模型达1.5毫秒推理、mAP提升7.5%,兼顾高效与性能。
YOLOv11 改进 - 主干网络| 集成Mamba-YOLO(AAAI 2025),Mamba-YOLOv11-T 替换骨干,破解全局依赖建模难题,实现高效实时检测
|
2月前
|
数据采集 人工智能 IDE
告别碎片化日志:一套方案采集所有主流 AI 编程工具
本文介绍了一套基于MCP架构的轻量化、多AI工具代码采集方案,支持CLI、IDE等多类工具,实现用户无感、可扩展的数据采集,已对接Aone日志平台,助力AI代码采纳率分析与研发效能提升。
543 46
告别碎片化日志:一套方案采集所有主流 AI 编程工具
|
2月前
|
机器学习/深度学习 移动开发 编解码
YOLO26 改进 - C2PSA | C2PSA融合MSLA多尺度线性注意力:并行多分支架构融合上下文语义,提升特征判别力 | Arxiv 2025
本文提出多尺度线性注意力机制MSLA,通过并行3×3/5×5/7×7/9×9深度卷积提取多尺度特征,结合低复杂度线性注意力(O(N)),兼顾细粒度局部细节与全局长程依赖。将其集成至YOLO26,构建C2PSA_MSLA模块,在医学图像分割与目标检测任务中显著提升性能、效率与鲁棒性。(239字)
YOLO26 改进 - C2PSA | C2PSA融合MSLA多尺度线性注意力:并行多分支架构融合上下文语义,提升特征判别力 | Arxiv 2025
|
监控 数据可视化 API
yolo-nas无人机高空红外热数据小目标检测(教程+代码)
yolo-nas无人机高空红外热数据小目标检测(教程+代码)
|
3月前
|
机器学习/深度学习 算法 数据挖掘
YOLOv11改进 - C3k2融合 | C3k2融合CBSA 收缩 - 广播自注意力:轻量级设计实现高效特征压缩,优化处理效率 | NeurIPS 2025
本文提出收缩-广播自注意力(CBSA),通过选取代表性token进行收缩计算并广播结果,实现高效、可解释的线性复杂度注意力机制。其逻辑透明,统一多种注意力形式,并集成至YOLOv11的C3k2模块,在视觉任务中展现优越性能与速度优势。
YOLOv11改进 - C3k2融合 | C3k2融合CBSA 收缩 - 广播自注意力:轻量级设计实现高效特征压缩,优化处理效率 | NeurIPS 2025
|
3月前
|
机器学习/深度学习 算法 atlas
YOLOv11 改进 - 注意力机制 MCAttn 蒙特卡洛注意力:全局上下文与局部细节协同建模,破解微小目标特征表达难题
本文提出将蒙特卡洛注意力(MCAttn)模块融入YOLOv11,通过随机采样多尺度池化特征并加权融合,增强模型对小目标的敏感性。MCAttn兼顾局部细节与全局上下文,提升检测精度,尤其适用于医学图像中小面积病灶识别,显著改善特征丢失问题,且保持轻量化与高效推理。
YOLOv11 改进 - 注意力机制 MCAttn 蒙特卡洛注意力:全局上下文与局部细节协同建模,破解微小目标特征表达难题
|
2月前
|
机器学习/深度学习 计算机视觉 网络架构
YOLO26改进 - 注意力机制 |融合HCF-Net维度感知选择性整合模块DASI 增强小目标显著性
本文介绍将HCF-Net中的维度感知选择性融合(DASI)模块集成至YOLO26检测头,通过通道分区与Sigmoid自适应加权,融合高/低维及当前层特征,显著提升红外小目标检测精度,在SIRST数据集上超越主流方法。(239字)
|
2月前
|
人工智能 运维 前端开发
阿里云百炼高代码应用全新升级
阿里云百炼高代码应用全新升级,支持界面化代码提交、一键模板创建及Pipeline流水线部署,全面兼容FC与网关多Region生产环境。开放构建日志与可观测能力,新增高中低代码Demo与AgentIdentity最佳实践,支持前端聊天体验与调试。
506 52
|
2月前
|
SQL 人工智能 Java
告别传统 Text-to-SQL:基于 Spring AI Alibaba 的数据分析智能体 DataAgent 深度解析
DataAgent是基于Spring AI Alibaba生态构建的企业级AI数据分析师,融合NL2SQL、多智能体协作与RAG技术,支持多数据源分析、自动纠错与可视化报告生成,让业务人员零代码获取深度数据洞察。
1787 42
告别传统 Text-to-SQL:基于 Spring AI Alibaba 的数据分析智能体 DataAgent 深度解析
|
5月前
|
机器学习/深度学习 人工智能 监控
面向智慧牧场的牛行为识别数据集(5000张图片已划分、已标注) | AI训练适用于目标检测任务
本数据集包含5000张已标注牛行为图片,涵盖卧、站立、行走三类,适用于YOLO等目标检测模型训练。数据划分清晰,标注规范,场景多样,助力智慧牧场、健康监测与AI科研。
面向智慧牧场的牛行为识别数据集(5000张图片已划分、已标注) | AI训练适用于目标检测任务

热门文章

最新文章