近年来,轻量级医疗图像分割模型受关注,但现有模型因减少参数和计算复杂度而特征表示不足,难以超越现有最佳模型。基于多感受野的现代特征提取模块虽能提升性能,但会增加成本,不利于资源有限环境下的临床应用。在此背景下,为解决轻量级与高性能的矛盾,作者提出了 Cascade Multi-Receptive Fields(CMRF)模块,利用特征图多通道冗余信息,通过低成本级联策略探索不同感受野,在保持轻量的同时增强特征表示,提升模型性能,为医疗图像分割提供更优方案,促进健康公平。
1. CMRF 介绍
CMRF 模块是一种创新的轻量级模块,旨在解决医疗图像分割中轻量级模型特征表示不足的问题,其原理和结构如下:
1. 原理:
利用特征图多通道的冗余信息,通过一种成本友好的级联策略挖掘特征信息并融合不同感受野的信息,以此增强特征表示,同时保持模块的轻量级设计,从而提升模型性能。它借鉴了一些轻量级模块的思想,如 Ghost 和 PConv,对特征信息进行高效利用。
2. 结构
输入处理:接收输入特征图后,先通过 PWConv - BN - Act 模块挖掘特征信息并调整通道数量。其中 PWConv 是逐点卷积,BN 是批量归一化用于对数据进行归一化处理,Act 采用 GELU 激活函数来引入非线性,经过这一步得到中间特征图。
特征图划分与操作:将中间特征图依据通道数奇偶性分为两部分。一部分通过元素相加的方式进行融合,增加特征信息丰富度;另一部分则采用级联策略,利用多个 DWConv - BN 块(DWConv 即深度可分离卷积)挖掘不同感受野信息,每个 DWConv - BN 块都保留输出。
信息融合与输出:把经过不同操作后的特征图沿通道方向进行拼接,进一步整合特征。最后再经过一个 PWConv - BN - Act 模块,充分利用不同感受野信息并规范输出通道数量,从而得到最终的输出特征图,完成多感受野信息融合与输出。
2. 接下来,我们将详细介绍如何将CMRF合集成到 YOLOv8 模型中
这是我的GitHub代码:tgf123/YOLOv8_improve (github.com)
这是改进讲解:YOLOv8模型改进 第二十七讲 添加Cascade Multi-Receptive Fields(CMRF)模块_哔哩哔哩_bilibili
2.1 如何添加
1. 首先,在我上传的代码中yolov8_improve中找到CMRF.py代码部分,它包含两个部分一个是CMRF.py的核心代码,一个是yolov8模型的配置文件。
2. 然后我们在ultralytics文件夹下面创建一个新的文件夹,名字叫做change_models, 然后再这个文件夹下面创建CMRF.py文件,然后将CGLU的核心代码放入其中
3. 在 task.py文件中导入C2f_AFE
from ultralytics.change_models.CMRF import CMRF
4. 然后将 CMRF添加到下面当中
5. 最后将配置文件复制到下面文件夹下
6. 运行代码跑通
from ultralytics.models import NAS, RTDETR, SAM, YOLO, FastSAM, YOLOWorld
if __name__=="__main__":
# 使用自己的YOLOv8.yamy文件搭建模型并加载预训练权重训练模型
model = YOLO(r"D:\model\yolov8\ultralytics\cfg\models\v8\yolov8_CMRF.yaml")\
.load(r'D:\model\yolov8\yolov8n.pt') # build from YAML and transfer weights
results = model.train(data=r'D:\model\yolov8\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
)
标签:Multi,特征,Fields,模型,YOLOv8,模块,CMRF,yolov8,轻量级
From: https://blog.csdn.net/qq_64693987/article/details/144877735