在语义分割领域,传统 CNN 方法受限于局部短程结构,难以获取长程上下文信息,虽有改进但面对复杂场景仍不足;视觉 Transformer 及其混合模型虽有进展,但存在对语义级上下文捕捉不佳、细节处理弱、数据需求大等问题。在此背景下,为解决复杂场景(如杂乱背景、半透明物体及尺度变化)语义分割难题,特征放大网络(FANet)中的自适应特征增强(AFE)块被提出,它通过空间上下文模块(SCM)和特征细化模块(FRM)并行工作,自适应捕获丰富特征,助力提升语义分割性能。基于此,本文将AFE和C3K2相结合,提升YOLOv11模型的细节特征。
上面是原模型,下面是改进模型
1. 自适应特征增强AFE结构介绍
AFE(自适应特征增强)模块是 FANet 中用于语义分割的关键部分,其原理和结构如下:
1. 原理:在语义分割任务中,为了更好地处理复杂场景,尤其是存在杂乱背景、半透明物体和尺度变化等情况,AFE 模块旨在通过结合不同的特征处理方式,自适应地增强特征。它利用空间上下文模块(SCM)挖掘空间信息以处理尺度变化,通过特征细化模块(FRM)捕获语义线索来突出物体细节,从而提升模型对复杂场景的理解和分割能力。
2. 结构:AFE 块主要由四个关键组件构成。
首先是卷积嵌入(CE),输入特征先经过 LayerNorm 和 CE 进行处理,CE 输出再经 1x1 卷积层将通道压缩一半,这有助于减少计算开销并促进特征混合。
然后是空间上下文模块(SCM),其采用较大核(如 7x7 的组卷积)的卷积操作,接收压缩后的特征,目的是增大感受野,捕捉更广泛的空间上下文信息,以应对场景中的尺度变化。
同时,特征细化模块(FRM)也接收压缩后的特征,它基于图像锐化和对比度增强的概念设计,能够同时捕获低频和高频区域信息,对特征进行细化。
最后,SCM 和 FRM 的输出通过 1x1 卷积层和卷积多层感知器(ConvMLP)进行融合和进一步增强,得到最终的增强特征表示。
2. YOLOv11与自适应特征增强AFE的结合
在yolo目标检测模型中,为了增强backbone的多尺度特征,本文使用AFE和C3K2相结合,提升YOLOv11模型的多尺度特征。
3. 高效多尺度注意力EMA代码部分
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub
视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili
YOLOv11全部代码,现有几十种改进机制。
4. 将高效多尺度注意力EMA引入到YOLOv11中
第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。
第二:在task.py中导入C3k2_AFE包
第三:在task.py中的模型配置部分下面代码
第四:将模型配置文件复制到YOLOV11.YAMY文件中
第五:运行成功
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
if __name__=="__main__":
# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
model = YOLO(r"D:\model\yolov11\ultralytics\cfg\models\11\yolo11_AFE.yaml")\
.load(r'D:\model\yolov11\yolo11n.pt') # build from YAML and transfer weights
results = model.train(data=r'D:\model\yolov11\ultralytics\cfg\datasets\VOC_my.yaml',
epochs=300,
imgsz=640,
batch=64,
# cache = False,
# single_cls = False, # 是否是单类别检测
# workers = 0,
# resume=r'D:/model/yolov8/runs/detect/train/weights/last.pt',
# amp = True
)