[yolov11改进系列]基于yolov11引入高效上采样卷积块EUCB的python源码+训练源码

article/2025/6/11 16:45:58

【EUCB介绍】

论文介绍
题目
EMCAD:Efficient Multi-scale Convolutional Attention Decoding for Medical Image Segmentation

论文地址
https://arxiv.org/pdf/2405.06880

创新点
多尺度卷积解码器:提出了一种高效的多尺度卷积注意力解码器(EMCAD),专门设计用于医学图像分割任务,通过多尺度深度卷积块增强特征表示,有助于在有限的计算资源下提高分割性能。
多尺度卷积注意力模块:引入MSCAM模块,通过多尺度的深度卷积抑制无关区域并增强特征图,从而捕捉多尺度显著特征,降低了计算成本。
大核分组注意力门:在解码器中加入了一种大核分组注意力门,通过更大局部上下文捕捉显著特征,提升了模型对重要区域的关注度。
更低的计算成本与参数量:与现有的最先进方法相比,EMCAD在保持或提升分割精度的同时,显著减少了模型参数和浮点运算次数(FLOPs),在多个医学图像分割基准上达到了最优性能。
广泛适配性:EMCAD可用于不同的编码器结构,在多个医学图像分割任务中表现出优越的性能和适应性,适合在计算资源受限的实际应用场景中应用。
方法
整体结构
该模型由一个分层编码器和高效多尺度卷积注意力解码器(EMCAD)组成,通过编码器提取不同尺度的特征图,然后利用EMCAD中的多尺度卷积注意力模块、分组注意力门和上采样模块逐步融合和增强这些特征,实现精确的医学图像分割。最终,通过分割头输出高分辨率的分割结果,模型在保持高精度的同时显著降低了计算成本。


分层编码器:模型使用了层次化的编码器来提取不同尺度的特征图,这些特征图被分为多个阶段。编码器可以是PVTv2-B0或PVTv2-B2等预训练模型,用于捕捉输入图像的多尺度信息。分层编码器输出四个特征图(即X1, X2, X3, X4),用于后续解码处理。
EMCAD解码器:这是论文的核心创新部分,包含多个模块:
多尺度卷积注意力模块(MSCAM):通过深度卷积在不同尺度上对特征图进行处理,增强特征表示并抑制无关区域。
大核分组注意力门(LGAG):通过分组卷积结合大核,进一步融合编码器和解码器之间的特征,以捕捉更大的上下文信息。
高效上采样卷积块(EUCB):该模块用于逐步上采样特征图,将特征的空间分辨率提升到目标输出的分辨率。
分割头(SH):每个阶段的特征图都通过一个1×1卷积输出一个分割图,最终整合多个分割图生成最终的分割结果。
多阶段损失和输出整合:解码器每个阶段生成的分割图会参与损失计算,采用多种组合方式计算损失,以强化各阶段输出的精度。最终分割图使用Sigmoid或Softmax函数生成二分类或多分类的分割结果。
即插即用模块作用
EUCB 作为一个即插即用模块,主要适用于:

医学图像分割:如CT、MRI等医学影像的像素级分割任务。
语义分割:广泛应用于需要精细分割的任务中,包括遥感图像分析、自动驾驶中的路面分割等。
资源受限场景:在计算资源有限的设备(如边缘设备、移动端)上实现高效图像分割。
消融实验结果


展示了不同组件对模型性能的影响,评估了解码器的级联结构、大核分组注意力门(LGAG)和多尺度卷积注意力模块(MSCAM)的贡献。实验结果显示,逐步添加这些模块能显著提升模型的DICE分数,其中MSCAM的效果尤为显著,当同时使用LGAG和MSCAM时,模型达到了最佳性能。这表明这两个模块在捕捉多尺度特征和增强局部上下文信息方面发挥了关键作用。


探讨了多尺度卷积内不同卷积核的选择对性能的影响。实验结果表明,使用1x1、3x3和5x5卷积核组合能够带来最佳性能,这一组合在捕捉多尺度特征方面具有优势。而进一步添加更大的卷积核(如7x7或9x9)反而降低了性能,说明适当的卷积核大小组合有助于模型在保持计算效率的同时提升分割效果。

 【yolov11框架介绍】

2024 年 9 月 30 日,Ultralytics 在其活动 YOLOVision 中正式发布了 YOLOv11。YOLOv11 是 YOLO 的最新版本,由美国和西班牙的 Ultralytics 团队开发。YOLO 是一种用于基于图像的人工智能的计算机模

Ultralytics YOLO11 概述

YOLO11 是Ultralytics YOLO 系列实时物体检测器的最新版本,以尖端的精度、速度和效率重新定义了可能性。基于先前 YOLO 版本的令人印象深刻的进步,YOLO11 在架构和训练方法方面引入了重大改进,使其成为各种计算机视觉任务的多功能选择。

Key Features 主要特点

  • 增强的特征提取:YOLO11采用改进的主干和颈部架构,增强了特征提取能力,以实现更精确的目标检测和复杂任务性能。
  • 针对效率和速度进行优化:YOLO11 引入了精致的架构设计和优化的训练管道,提供更快的处理速度并保持准确性和性能之间的最佳平衡。
  • 使用更少的参数获得更高的精度:随着模型设计的进步,YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),同时使用的参数比 YOLOv8m 少 22%,从而在不影响精度的情况下提高计算效率。
  • 跨环境适应性:YOLO11可以无缝部署在各种环境中,包括边缘设备、云平台以及支持NVIDIA GPU的系统,确保最大的灵活性。
  • 支持的任务范围广泛:无论是对象检测、实例分割、图像分类、姿态估计还是定向对象检测 (OBB),YOLO11 旨在应对各种计算机视觉挑战。

​​

与之前的版本相比,Ultralytics YOLO11 有哪些关键改进?

Ultralytics YOLO11 与其前身相比引入了多项重大进步。主要改进包括:

  • 增强的特征提取:YOLO11采用改进的主干和颈部架构,增强了特征提取能力,以实现更精确的目标检测。
  • 优化的效率和速度:精细的架构设计和优化的训练管道可提供更快的处理速度,同时保持准确性和性能之间的平衡。
  • 使用更少的参数获得更高的精度:YOLO11m 在 COCO 数据集上实现了更高的平均精度(mAP),参数比 YOLOv8m 少 22%,从而在不影响精度的情况下提高计算效率。
  • 跨环境适应性:YOLO11可以跨各种环境部署,包括边缘设备、云平台和支持NVIDIA GPU的系统。
  • 支持的任务范围广泛:YOLO11 支持多种计算机视觉任务,例如对象检测、实例分割、图像分类、姿态估计和定向对象检测 (OBB)

【测试环境】

windows10 x64

ultralytics==8.3.0

torch==2.3.1

【改进流程】

1. 新增EUCB.py实现模块(代码太多,核心模块源码请参考改进步骤.docx)然后在同级目录下面创建一个__init___.py文件写代码

from .EUCB import *

2. 文件修改步骤

修改tasks.py文件

创建模型配置文件

yolo11-EUCB.yaml内容如下:

# Ultralytics YOLO 🚀, AGPL-3.0 license
# YOLO11 object detection model with P3-P5 outputs. For Usage examples see https://docs.ultralytics.com/tasks/detect# Parameters
nc: 2 # number of classes
scales: # model compound scaling constants, i.e. 'model=yolo11n.yaml' will call yolo11.yaml with scale 'n'# [depth, width, max_channels]n: [0.50, 0.25, 1024] # summary: 319 layers, 2624080 parameters, 2624064 gradients, 6.6 GFLOPss: [0.50, 0.50, 1024] # summary: 319 layers, 9458752 parameters, 9458736 gradients, 21.7 GFLOPsm: [0.50, 1.00, 512] # summary: 409 layers, 20114688 parameters, 20114672 gradients, 68.5 GFLOPsl: [1.00, 1.00, 512] # summary: 631 layers, 25372160 parameters, 25372144 gradients, 87.6 GFLOPsx: [1.00, 1.50, 512] # summary: 631 layers, 56966176 parameters, 56966160 gradients, 196.0 GFLOPs# YOLO11n backbone
backbone:# [from, repeats, module, args]- [-1, 1, Conv, [64, 3, 2]] # 0-P1/2- [-1, 1, Conv, [128, 3, 2]] # 1-P2/4- [-1, 2, C3k2, [256, False, 0.25]]- [-1, 1, Conv, [256, 3, 2]] # 3-P3/8- [-1, 2, C3k2, [512, False, 0.25]]- [-1, 1, Conv, [512, 3, 2]] # 5-P4/16- [-1, 2, C3k2, [512, True]]- [-1, 1, Conv, [1024, 3, 2]] # 7-P5/32- [-1, 2, C3k2, [1024, True]]- [-1, 1, SPPF, [1024, 5]] # 9- [-1, 2, C2PSA, [1024]] # 10# YOLO11n head
head:- [-1, 1, EUCB, []]- [[-1, 6], 1, Concat, [1]] # cat backbone P4- [-1, 2, C3k2, [512, False]] # 13- [-1, 1, EUCB, []]- [[-1, 4], 1, Concat, [1]] # cat backbone P3- [-1, 2, C3k2, [256, False]] # 16 (P3/8-small)- [-1, 1, Conv, [256, 3, 2]]- [[-1, 13], 1, Concat, [1]] # cat head P4- [-1, 2, C3k2, [512, False]] # 19 (P4/16-medium)- [-1, 1, Conv, [512, 3, 2]]- [[-1, 10], 1, Concat, [1]] # cat head P5- [-1, 2, C3k2, [1024, True]] # 22 (P5/32-large)- [[16, 19, 22], 1, Detect, [nc]] # Detect(P3, P4, P5)
3. 验证集成

使用新建的yaml配置文件启动训练任务:

from ultralytics import YOLOif __name__ == '__main__':model = YOLO('yolo11-EUCB.yaml')  # build from YAML and transfer weights# Train the modelresults = model.train(data='coco128.yaml',epochs=100, imgsz=640, batch=8, device=0, workers=1, save=True,resume=False)

成功集成后,训练日志中将显示EUCB模块的初始化信息,表明已正确加载到模型中。

【训练说明】

第一步:首先安装好yolov11必要模块,可以参考yolov11框架安装流程,然后卸载官方版本pip uninstall ultralytics,最后安装改进的源码pip install .
第二步:将自己数据集按照dataset文件夹摆放,要求文件夹名字都不要改变
第三步:分别打开train.py,coco128.yaml和模型参数yaml文件修改必要的参数,最后执行python train.py即可训练

【提供文件】

├── [官方源码]ultralytics-8.3.0.zip
├── train/
│   ├── coco128.yaml
│   ├── dataset/
│   │   ├── train/
│   │   │   ├── images/
│   │   │   │   ├── firc_pic_1.jpg
│   │   │   │   ├── firc_pic_10.jpg
│   │   │   │   ├── firc_pic_11.jpg
│   │   │   │   ├── firc_pic_12.jpg
│   │   │   │   ├── firc_pic_13.jpg
│   │   │   ├── labels/
│   │   │   │   ├── classes.txt
│   │   │   │   ├── firc_pic_1.txt
│   │   │   │   ├── firc_pic_10.txt
│   │   │   │   ├── firc_pic_11.txt
│   │   │   │   ├── firc_pic_12.txt
│   │   │   │   ├── firc_pic_13.txt
│   │   └── val/
│   │       ├── images/
│   │       │   ├── firc_pic_100.jpg
│   │       │   ├── firc_pic_81.jpg
│   │       │   ├── firc_pic_82.jpg
│   │       │   ├── firc_pic_83.jpg
│   │       │   ├── firc_pic_84.jpg
│   │       ├── labels/
│   │       │   ├── firc_pic_100.txt
│   │       │   ├── firc_pic_81.txt
│   │       │   ├── firc_pic_82.txt
│   │       │   ├── firc_pic_83.txt
│   │       │   ├── firc_pic_84.txt
│   ├── train.py
│   ├── yolo11-EUCB.yaml
│   └── 训练说明.txt
├── [改进源码]ultralytics-8.3.0.zip
├── 改进原理.docx
└── 改进流程.docx

 【常见问题汇总】
问:为什么我训练的模型epoch显示的map都是0或者map精度很低?
回答:由于源码改进过,因此不能直接从官方模型微调,而是从头训练,这样学习特征能力会很弱,需要训练很多epoch才能出现效果。此外由于改进的源码框架并不一定能够保证会超过官方精度,而且也有可能会存在远远不如官方效果,甚至精度会很低。这说明改进的框架并不能取得很好效果。所以说对于框架改进只是提供一种可行方案,至于改进后能不能取得很好map还需要结合实际训练情况确认,当然也不排除数据集存在问题,比如数据集比较单一,样本分布不均衡,泛化场景少,标注框不太贴合标注质量差,检测目标很小等等原因
【重要说明】
我们只提供改进框架一种方案,并不保证能够取得很好训练精度,甚至超过官方模型精度。因为改进框架,实际是一种比较复杂流程,包括框架原理可行性,训练数据集是否合适,训练需要反正验证以及同类框架训练结果参数比较,这个是十分复杂且漫长的过程。


http://www.hkcw.cn/article/KgGoksScrc.shtml

相关文章

oscp练习PG Monster靶机复现

端口扫描 nmap -A -p- -T4 -Pn 192.168.134.180 PORT STATE SERVICE VERSION 80/tcp open http Apache httpd 2.4.41 ((Win64) OpenSSL/1.1.1c PHP/7.3.10) |_http-server-header: Apache/2.4.41 (Win64) OpenSSL/1.1.1c PHP/7.3.10 | http-methods:…

樊振东莫雷加德成为队友 共迎新挑战

6月1日,萨尔布吕肯俱乐部宣布樊振东加盟德甲联赛。在萨尔布吕肯乒乓球甲级俱乐部的官宣消息中,樊振东表示他非常期待在萨尔布吕肯和德甲的新挑战,体验新的环境,并与球队一起赢得更多胜利。球队经理透露,这一切来得如此令人惊讶且迅速,他们仍然难以完全相信。但这是现实—…

任务中心示例及浏览器强制高效下载实践

1. 效果展示 这里的进度展示,可以通过我们之前讲到的Vue3实现类ChatGPT聊天式流式输出(vue-sse实现) SSE技术实现,比如用户点击全量下载时,后台需要将PDF文件打包为ZIP文件,由于量较大,需要展示进度,用户点…

危地马拉发现2800多年前玛雅城市遗址

var chan_v_w = 960,chan_v_h = 540,chan_v_p = https://mts-audio.huawangzhixun.com/image/20250601/news/5512b3f2-c97c-4299-b34c-8f5e57413ca6.jpg,chan_v_s = https://vmts.china.com/api/video/onaliyun/query?id=3101125&ttype=mp4;据危地马拉媒体5月30日报道,危…

姜老师MBTI课程:4条轴线的总结

文稿: 第一点是有的时候真的分不清到底是N还是S而且会跟自己的朋友去争论他这个表现到底是J还是P说不清。感觉有些案例姜老师讲的也是既有J又有P最后娶了一个什么?能不能够给我们提一些非常精准的标准,帮我们来做尽量精准的判断。好&#xff…

限流算法相关知识点

目录 固定窗口算法滑动窗口算法漏桶算法令牌桶算法Sentinel限流例子 固定窗口算法 固定窗口算法的实现相对简单。系统维护一个计数器,每当请求到来时,计数器加一。当时间窗口结束时,计数器清零。如果在一个时间窗口内请求数量超过了预设的阈…

第N个泰波那契数列 --- 动态规划

目录 一:题目 二:算法原理 三:代码实现 一:题目 题目链接:1137. 第 N 个泰波那契数 - 力扣(LeetCode) 二:算法原理 三:代码实现 class Solution { public:int trib…

【题解-洛谷】P3467 [POI 2008] PLA-Postering

题目:P3467 [POI 2008] PLA-Postering 题目描述 Byteburg 城市的东区所有建筑都是按照旧式建筑风格建造的:它们一个接一个地紧挨在一起,中间没有任何间隔。它们从东到西排列,形成了一排高度各异的建筑长廊。 Byteburg 的市长 B…

樊振东加盟 德国俱乐部:他主动的 新挑战迎期待

当樊振东在社交媒体上发布观赛欧冠的照片时,另一条消息也震惊了乒乓球圈。6月1日,德国乒乓球甲级联赛FC萨尔布吕肯乒乓球俱乐部宣布,奥运冠军樊振东将加盟球队。樊振东表示,他非常期待在萨尔布吕肯和德甲的新挑战,体验新的环境,并与球队一起赢得更多胜利。球队体育总监埃…

雷军祝儿童节快乐 分享健身照送祝福

6月1日,小米科技创始人、董事长雷军在微博分享了健身打卡照片,并向小朋友送上儿童节祝福,祝所有小朋友都有一个快乐的童年。他还附上了一张富有童趣的AI图片,图片中“Q版雷军”坐在旋转木马上,双手紧握拳头,呈现出加油打气的动作。责任编辑:zx0176

Vue ①-实例 || 指令

Vue Vue 是一个构建用户界面的渐进式框架,也就是 UI 框架。 创建 Vue 实例 创建 Vue实例,初始化渲染: 准备容器(Vue所管理的范围)引包(开发版本包 / 生产版本包(官网找)&#xf…

尚硅谷redis7 93-97 springboot整合reids之总体概述

93 springboot整合reids之总体概述 总体概述 jedis-lettuce-RedisTemplate三者的联系 名称类型作用描述和其它的关系JedisRedis 客户端早期主流的 Java Redis 客户端,基于阻塞 I/O,同步操作可作为 RedisTemplate 的底层连接实现LettuceRedis 客户端基…

两个女首富杠起来了 医美巨头争议不断

巨子生物和华熙生物近期陷入了各自的尴尬境地。市值745亿港元的医美新贵巨子生物因一位博主的视频面临了广泛的造假质疑。与此同时,业绩下滑的玻尿酸巨头华熙生物发文痛斥券商研报“踩一捧一”,试图证明玻尿酸还未过时,但显得有些无力。一些曾鼓吹重组胶原蛋白和巨子生物的券…

屈原的老家端午要过三次 三次端午的独特庆祝

端午节作为我国最古老的节日之一,在众多习俗中,以纪念屈原影响最为广泛。屈原出生于战国时期的湖北秭归,当地不仅保留着典型的屈原故里端午习俗,还有“端午比年大”的说法。在屈原的家乡湖北秭归乐平里,这里位于山谷中央,四面群山环抱,不远处是长江的支流香溪河。古籍记…

张若昀一家三口现身伦敦过六一 异国街头温馨同游

6月1日,张若昀和唐艺昕带着女儿在伦敦游玩时被网友偶遇。一家三口走在异国街头,画面十分温馨。张若昀推着婴儿车,尽显父爱;唐艺昕穿着黑色衣服,皮肤白皙气质出众;女儿坐在小车上乖巧可爱。明星们在国内逛街容易受到关注,因此他们更倾向于在国外享受私人时光。这次张若昀…

黄石公园车祸致5华人身亡司机涉酒驾 肇事司机酒精含量超标两倍

美国警方于5月30日透露,5月初在黄石国家公园附近发生的一起导致7人死亡的交通事故中,肇事皮卡司机的血液酒精含量超过法定驾驶限值的两倍。这起事故发生在5月1日晚,地点位于美国爱达荷州黄石国家公园附近。事故造成7人死亡、多人受伤。中国驻旧金山总领馆在5月2日确认,死者…

叶童回应与陈丽君合作 虚实共生演绎许仙

5月31日晚,陈丽君与叶童在央视端午晚会上同框,共唱戏歌《浮生一白》。叶童随后在微博发文表示,这次与陈丽君的合作非常特别,虚实共生,共同演绎了这首歌曲。陈丽君也转发了这条微博,表达了与叶童老师合作的喜悦。叶童曾在经典剧作《新白娘子传奇》中成功塑造许仙一角。此次…

AI时代,大公司如何创新?

大模型时代,以OpenAI,DeepSeek为首的一些创业公司迅速崛起,微软、苹果、谷歌、华为等大公司跟他们相比,明显迟缓。所以自己最近一直在思考和观察创业公司的创新模式,看看有什么启发。 “强大的物种追求繁殖能力强。”是…

混沌映射(Chaotic Map)

一.定义 混沌映射是指一类具有混沌行为的离散时间非线性动力系统,通常由递推公式定义。其数学形式为 ,其中 f 是非线性函数,θ 为参数。它们以简单的数学规则生成复杂的、看似随机的轨迹,是非线性动力学和混沌理论的重要研究对象…

Python训练营打卡Day41

DAY 41 简单CNN 知识回顾 1.数据增强 2.卷积神经网络定义的写法 3.batch归一化:调整一个批次的分布,常用与图像数据 4.特征图:只有卷积操作输出的才叫特征图 5.调度器:直接修改基础学习率 卷积操作常见流程如下: 输入…