在医学图像分割领域,随着深度学习技术的发展,如何有效地融合多尺度特征成为研究的关键问题之一。卷积神经网络(CNNs)和视觉 Transformer(ViTs)是两种主要的技术路线,但它们在特征融合方面都存在一定的局限性。传统的 CNNs 在利用全局上下文信息方面受限,虽然通过引入大卷积核(LKs)来扩大感受野,但在处理形状和大小差异较大的器官时,依赖单一定尺寸的大卷积核进行特征提取,难以自适应地捕获多尺度特征,且缺乏增强局部特征与全局上下文信息相互作用的机制。ViTs 虽然能够利用注意力机制获得较大的感受野并利用全局信息,但在提取局部上下文信息方面存在不足,其注意力机制主要学习低分辨率特征来建模全局依赖关系,导致特征缺乏详细的定位信息。
在这样的背景下,为了更好地融合多尺度特征,充分利用全局信息,提高医学图像分割的性能,本文提出了动态特征融合(DFF)模块。DFF 旨在基于全局信息自适应地融合多尺度局部特征图,通过动态机制在融合过程中选择重要特征,以解决上述现有技术在特征融合方面的不足,提升模型对医学图像的分割能力。
上面是原模型,下面是改进模型
1. 动态特征融合模块DFF介绍
以下是关于 DDF(动态特征融合)的原理和结构的介绍:
1. 原理
基于全局信息的自适应融合:DDF 旨在基于全局信息自适应地融合多尺度局部特征图。它通过动态机制在融合过程中选择重要特征,以解决传统方法在特征融合方面的不足,提升模型对医学图像等的处理能力。例如在医学图像分割中,不同器官的形状和大小差异较大,传统方法难以有效融合多尺度特征,而 DDF 可以根据全局信息动态地调整不同尺度特征的权重,从而更好地捕捉和利用这些特征。
2. 结构
输入特征图:DDF 模块接收来自不同层次或不同尺度的特征图作为输入,有两个输入特征图。
全局信息提取与处理:通过一系列操作提取全局信息并进行处理,以生成用于指导特征融合的权重。例如,利用平均池化(AVGPool)、卷积(Conv)和 Sigmoid 激活函数等操作,生成空间权重和通道权重。
特征融合:将输入特征图与生成的权重进行元素级乘法(Element-wise Multiplication)等操作,实现特征的动态融合。例如,通过将不同尺度的特征图与对应的权重相乘,再进行相加(Element-wise Addition)等操作,得到融合后的特征图。
2. YOLOv11与动态特征融合模块DFF的结合
可以在YOLOv11原有特征拼接和这个相结合。
3. DFF代码部分
YOLOv8_improve/YOLOv11.md at master · tgf123/YOLOv8_improve · GitHub
视频讲解:YOLOv11模型改进讲解,教您如何修改YOLOv11_哔哩哔哩_bilibili
YOLOv11模型改进讲解,教您如何根据自己的数据集选择最优的模块提升精度_哔哩哔哩_bilibili
YOLOv11全部代码,现有几十种改进机制。
4. 将DFF引入到YOLOv11中
第一: 将下面的核心代码复制到D:\model\yolov11\ultralytics\change_model路径下,如下图所示。
第二:在task.py中导入包
第三:在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_DFF.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
)