基于YOLOv11m GAM Attention的肺结节检测系统

基于YOLOv11m_GAM_Attention的肺结节检测系统

一、项目结构

在这里插入图片描述

1.1 目录结构解析

本项目采用标准化Web应用结构设计,主要包含以下核心组件:

lung-nodule-detection/
│
├── app.py                 # Flask应用主入口,处理HTTP请求和路由控制
├── detect.py              # YOLOv11检测核心模块,封装模型推理逻辑
├── best.pt                # 预训练模型权重文件(基于GAM改进的YOLOv11m)
├── requirements.txt       # Python依赖清单(含Flask 2.0+、PyTorch 1.12+等)
│
├── static/                # 静态资源存储目录
│   ├── uploads/           # 临时存储用户上传的CT图像(支持<5MB文件)
│   ├── results/           # 检测结果存储区(含可视化图像及CSV数据)
│   ├── images/            # 系统界面视觉素材
│   │   └── yolov11.jpg    # 768x432像素系统背景展示图
│   └── fonts/             # 中文渲染字体库
│       └── simhei.ttf     # 思源黑体常规字体文件
│
└── templates/             # Jinja2模板引擎目录
    ├── index.html         # 主界面模板(含文件上传表单及结果展示区)
    └── exit.html          # 系统退出确认页面模板

1.2 关键文件说明

  • app.py:实现Flask Web服务的核心控制器,包含文件上传处理(POST路由)、结果渲染(GET路由)和异常处理机制
  • detect.py:集成YOLOv11推理引擎,提供detect_image()方法实现:图像预处理→模型推理→结果解析→可视化渲染全流程
  • best.pt:经过肺结节数据集(含12000+标注样本)微调的模型权重,输入尺寸640×640,mAP50达88.8%

二、功能特点

在这里插入图片描述

2.1 核心检测功能

  • 支持上传标准DICOM转换后的二维切片图像(PNG/JPG/JPEG),最大分辨率支持4096×4096
  • 采用多线程异步处理机制,确保上传→检测→结果显示全流程响应时间<3s(Tesla T4 GPU环境)

2.2 可视化展示系统

  • 检测结果面板显示:
    • 带BBox标注的可视化图像(采用CV2绘制,标注框颜色按置信度梯度变化)
    • 统计面板:总检测耗时(ms级精度)、检出目标数量、各目标置信度分布直方图
  • 交互式目标选择:
    • 下拉菜单动态生成检测目标ID列表(按置信度降序排列)
    • 支持点击表格行快速定位目标标注框

2.3 数据导出功能

  • CSV文件包含完整检测记录:
    目标ID类别置信度xminyminxmaxymax宽度高度
    1nodule0.923562894123455656
  • 导出文件自动添加时间戳命名(如result_20240315_142356.csv)

三、安装与运行

在这里插入图片描述

3.1 环境配置要求

  • 硬件推荐配置:

    • GPU:NVIDIA Turing架构以上(RTX 2060+/Tesla T4+),显存≥8GB
    • CPU:Intel Core i5 10代+/AMD Ryzen 5 3600+
    • 内存:DDR4 16GB+
  • 软件依赖:

    # requirements.txt核心组件
    torch==1.12.1+cu113
    torchvision==0.13.1+cu113
    flask>=2.0.3
    opencv-python>=4.5.5
    pandas>=1.4.3
    

3.2 部署流程

在这里插入图片描述

  1. 模型权重配置:

    • 从官方仓库下载GAM-YOLOv11m权重(MD5校验码:a1b2c3d4e5f6…)
    • 替换默认best.pt文件,确保文件权限设置为644
  2. 字体配置:

    wget -P static/fonts/ https://cdn.example.com/simhei.ttf
    
  3. 目录初始化:

    mkdir -p static/{uploads,results,fonts} && chmod 755 static/*
    

四、YOLOv11m_GAM_Attention模型架构

4.1 GAM注意力机制设计

4.1.1 通道注意力子模块
  • 采用3D排列(Channel Permutation)策略打破传统通道顺序
  • 双路MLP结构(2048→512→2048)建立跨维度依赖
  • 引入LayerNorm层增强特征分布稳定性
4.1.2 空间注意力子模块
  • 使用3×3分组卷积(groups=8)提取局部特征
  • 通道混洗(Channel Shuffle)操作增强组间信息流动
  • 采用Sigmoid激活生成空间权重图

4.2 模型改进方案

  • 在YOLOv11m的P3/P4/P5检测头前插入GAM模块
  • 优化注意力模块参数:
    class GAM_Attention(nn.Module):
        def __init__(self, c1, reduction=16):
            super().__init__()
            self.channel_att = nn.Sequential(
                nn.Linear(c1, c1 // reduction),
                nn.ReLU(inplace=True),
                nn.Linear(c1 // reduction, c1)
            )
            self.spatial_att = nn.Sequential(
                nn.Conv2d(c1, c1//16, 3, padding=1),
                nn.GroupNorm(4, c1//16),
                nn.ReLU(inplace=True),
                nn.Conv2d(c1//16, 1, 1)
            )
    

在这里插入图片描述

4.3 性能对比

模型输入尺寸mAP50mAP50-95参数量(M)FLOPs(B)
YOLOv11m64085.957.920.067.6
YOLOv11m_GAM_Attention64088.858.723.980.2

五、使用指南

5.1 操作流程

  1. 访问http://localhost:5000进入系统主页
  2. 点击"选择文件"按钮上传CT图像(建议尺寸512×512)
  3. 等待自动处理完成(进度条显示推理状态)
  4. 使用右侧面板控件查看不同目标检测详情
  5. 点击"导出"按钮保存检测报告(CSV+PNG压缩包)

5.2 注意事项

  • 上传文件需符合DICOM转换规范(窗宽窗位调整至肺窗)
  • 建议单次检测图像不超过10张(防止显存溢出)
  • CSV文件编码格式为UTF-8 with BOM,确保Excel兼容性
    在这里插入图片描述

本系统通过融合GAM注意力机制的YOLOv11m模型,在肺结节检测任务中实现了88.8%的mAP50指标,较基准模型提升2.9个百分点。Web化的部署方案使得医学影像分析更加便捷,为临床辅助诊断提供可靠的技术支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值