YOLO11改进-模块-引入多尺度边缘增强模块MEEM 提升模型对图像细节的捕捉能力,以实现更精准的显著目标检测。

         在显著目标检测(SOD)任务中,Segment Anything Model(SAM)虽有强大的分割和泛化能力,但直接应用于 SOD 存在诸多问题。SAM 的图像块嵌入策略会导致细节信息丢失,且解码器中的上采样策略无法恢复关键细节,使得在检测具有复杂细节和边缘的显著物体时效果不佳。为解决这些问题,提出了 DEM,而 MEEM 是 DEM 的重要组成部分,用于从输入图像中提取多尺度边缘信息并增强细节,以提升 SOD 性能。

上面是原模型,下面是改进模型

改进后的模型

1. 多尺度边缘增强模块MEEM介绍 

       MEEM 的理论基础在于通过多尺度处理和边缘增强来补充 SAM 在细节捕捉上的不足。利用平均池化扩大感受野,在不同尺度下提取图像的边缘信息,再通过边缘增强器突出物体边缘,使模型能够更好地感知物体的边界和细节。通过融合多尺度的边缘信息,MEEM 能够为后续的显著目标检测提供更丰富、更准确的细节特征,从而提高模型对复杂场景中显著物体的定位和分割精度。

从提供的图片来看,MEEM 模块主要包含以下几个部分:

        多尺度边缘增强模块(MEEM)主要用于在显著目标检测任务中,从输入图像中提取多尺度边缘信息并增强细节,其具体结构如下: 

局部特征提取:先对输入图像运用 3×3 卷积层,从而得到包含初步细节信息的局部特征。这一步是后续处理的基础,为边缘信息的提取提供数据来源。

 多尺度边缘信息提取:将局部特征通过 1×1 卷积层进行处理,得到初始的边缘特征。之后,利用平均池化和 1×1 卷积层的组合,分三步逐步提取多尺度的边缘信息。每次处理都是先对前一步的特征进行 1×1 卷积,再通过 3×3 平均池化来扩大感受野,以此在不同尺度下全面获取边缘信息。

 边缘增强处理:针对每个尺度下得到的边缘特征,使用边缘增强器进行处理。边缘增强器先计算每个尺度特征与经过平均池化后的特征之间的差值,以此突出边缘部分,再将这个差值经过 1×1 卷积层处理后,与原特征相加,使得边缘信息更加明显。

 特征融合输出:把经过边缘增强处理后的不同尺度的特征,按通道进行拼接,然后再经过 1×1 卷积层融合,最终得到包含多尺度边缘信息的特征。这个融合后的特征会与细节增强模块(DEM)中主要分支的特征相结合,补充其中缺少的细节信息,从而提升模型对显著目标的检测精度。 

2. YOLO和MEEM的结合           

本文使用MEEM模块替换C3K2模块中的普通卷积,这样MEEM 可以提供多尺度边缘细节特征,让 C3K2在检测时能更精准识别目标轮廓,增强对小目标和复杂场景的适应性,优化特征融合效果,提高检测精度与鲁棒性。

3. MEEM代码部分

YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub

视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili

YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili

YOLOv11全部代码,现有几十种改进机制。

 4. 将MEEM引入到YOLOv11中

第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。

             

第二:在task.py中导入

 ​​​     ​​​​​​​     

第三:在task.py中的模型配置部分下面代码

 ​​​​​​​ ​​​​​​​ ​​​​​​​​​​​​​​​​​​​​​     

第四:将模型配置文件复制到YOLOV11.YAMY文件中

     ​​​​​​​ ​​​​​​​​​​​​​​ ​​​​​​​       

     第五:运行成功

from sympy import false

from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld

if __name__=="__main__":

    # 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
    model = YOLO(r"E:\Part_time_job_orders\YOLO\YOLOv11\ultralytics\cfg\models\11\yolo11_MEEM.yamy")\
        .load(r'E:\Part_time_job_orders\YOLO\YOLOv11\yolo11n.pt')  # build from YAML and transfer weights

    results = model.train(data=r'E:\Part_time_job_orders\YOLO\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
                          )
### YOLO多尺度特征融合的实现方式和原理 #### 特征金字塔网络 (FPN) 在现代目标检测框架中,特征金字塔网络(Feature Pyramid Network, FPN)被广泛应用于增强模型对不同尺度物体的检测能力。对于YOLO系列而言,在处理多尺度特征融合时采用了类似的机制来提升性能。 具体来说,通过自顶向下的路径将高层语义信息传递给低层空间细节丰富的浅层特征图,从而形成一系列具有相同分辨率但携带不同程度抽象程度的信息的地图集合[^1]。 #### 路径聚合网络 (PANet) 除了传统的FPN结构外,一些版本的YOLO引入了Path Aggregation Network(PANet),它不仅包含了来自顶层到底层的信息流,同时也增加了从底层到顶层的信息反馈通路。这种双向连接有助于好地捕捉全局上下文并善小物体识别效果[^4]。 #### 多级特征拼接与卷积操作 为了进一步加强跨层次间特征交互的效果,通常会在上述基础上加入额外的横向连接以及逐元素相加或堆叠后再经由若干个$1\times1$ 和 $3\times3$ 卷积核组成的轻量模块进行非线性变换处理。这一步骤可以看作是对原始输入图像的不同表征形式进行了综合考虑,使得最终得到的结果加鲁棒可靠[^3]。 ```python def feature_fusion(high_level_features, low_level_features): # 上采样高维特征至与低维特征相同的尺寸 upsampled_high = tf.image.resize(high_level_features, size=[low_level_features.shape[1], low_level_features.shape[2]]) # 将两者按通道方向concatenate在一起 concatenated = tf.concat([upsampled_high, low_level_features], axis=-1) # 使用1x1卷积调整维度数量 fused_feature = Conv2D(filters=desired_channels, kernel_size=(1, 1))(concatenated) return fused_feature ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值