YOLO26改进 – 卷积Conv LAE 轻量级自适应提取卷积,从多尺度特征图中获得更多的上下文信息和高分辨率细节

# 前言 本文介绍了轻量级旁路匹配(LSM - YOLO)模型中的轻量级自适应提取(LAE)模块在YOLO26中的结合应用。LAE模块通过注意力机制和卷积操作,能从多尺度特征图中获取更多上下文信息与高分辨率细节,减少噪声影响,提取医学图像中感兴趣区域(ROI)的详细特征。我们将LAE集成到YOLO26的主干网络中,并在相关配置文件中进行设置。实验表明,LSM - YOLO在胰腺肿瘤、BCCD血细胞检测和Br35h脑肿瘤检测等数据集上以最小参数成本实现了先进性能,验证了LAE模块的有效性。

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

专栏链接: YOLO26改进专栏

介绍

image-20250105223110486

摘要

在当前的医学感兴趣区域(ROI)检测领域,现有的算法难以同时兼顾实时性能与准确性,无法满足医学自动检测不断增长的需求。尽管基础的YOLO框架凭借其快速的运算速度能够确保实时检测,但在维持高精度方面仍存在挑战。为解决上述问题,我们提出了一种名为轻量级旁路匹配Lightweight Shunt Matching - YOLO(LSM - YOLO)的新型模型,该模型由轻量级自适应提取(LAE)和多路径旁路特征匹配(MSFM)两部分构成。首先,借助LAE进行精细化特征提取,模型能够从多尺度特征图中获取更丰富的上下文信息和高分辨率细节,进而在降低噪声干扰的同时,精准提取医学图像中ROI的详细特征。其次,利用MSFM进一步优化高级语义特征与低级视觉特征的融合,使ROI特征与邻近特征能够更好地融合,从而提高检测率,为医学诊断提供更有效的辅助。实验结果显示,LSM - YOLO在胰腺肿瘤私有数据集上的平均精度(AP)达到48.6%,在BCCD血细胞检测公共数据集上达到65.1%,在Br35h脑肿瘤检测公共数据集上达到73.0%。我们的模型在这三个数据集上以最少的参数成本实现了当前先进的性能。

文章链接

论文地址:论文地址

代码地址:代码地址

基本原理

image-20250105223220072

核心代码

class LAE(nn.Module):
    # Light-weight Adaptive Extraction
    def __init__(self, ch, group=16) -> None:
        super().__init__()

        self.softmax = nn.Softmax(dim=-1)
        self.attention = nn.Sequential(
            nn.AvgPool2d(kernel_size=3, stride=1, padding=1),
            Conv(ch, ch, k=1)
        )

        self.ds_conv = Conv(ch, ch * 4, k=3, s=2, g=(ch // group))

    def forward(self, x):
        # bs, ch, 2*h, 2*w => bs, ch, h, w, 4
        att = rearrange(self.attention(x), 'bs ch (s1 h) (s2 w) -> bs ch h w (s1 s2)', s1=2, s2=2)
        att = self.softmax(att)

        # bs, 4 * ch, h, w => bs, ch, h, w, 4
        x = rearrange(self.ds_conv(x), 'bs (s ch) h w -> bs ch h w s', s=4)
        x = torch.sum(x * att, dim=-1)
        return x

实验

脚本

import warnings
warnings.filterwarnings('ignore')
from ultralytics import YOLO

if __name__ == '__main__':
#     修改为自己的配置文件地址
    model = YOLO('./ultralytics/cfg/models/26/yolo26-LAE.yaml')
#     修改为自己的数据集地址
    model.train(data='./ultralytics/cfg/datasets/coco8.yaml',
                cache=False,
                imgsz=640,
                epochs=10,
                single_cls=False,  # 是否是单类别检测
                batch=8,
                close_mosaic=10,
                workers=0,
                optimizer='MuSGD',
                amp=True,
                project='runs/train',
                name='yolo26-LAE',
                )

结果

image-20260117144143299

THE END