基于YOLOv5-P6的眼底图像视盘视杯自动检测定位系统原创

本数据集为青光眼检测任务提供,专注于眼底视网膜图像中关键解剖结构的识别。数据集包含678张经过预处理的视网膜图像,所有图像均已自动调整方向并统一缩放至640×640像素尺寸。数据以YOLOv8格式标注,包含两个主要类别:视盘(Optic Disc)和视杯(Optic Cup),这些结构是青光眼诊断中评估视神经健康的关键指标。视盘表现为视网膜神经纤维汇聚穿出眼球的部位,通常呈现淡黄白色或颜色较浅的圆形/椭圆形结构;而视杯则位于视盘中央,表现为更明亮的反光区域,其形态变化是青光眼早期诊断的重要依据。数据集已划分为训练集、验证集和测试集,为计算机视觉模型的训练、评估和部署提供了完整的基础。通过分析这些标注的视网膜图像,可以开发出自动化的青光眼筛查系统,辅助医生进行早期诊断和病情监测,提高眼科疾病的诊断效率和准确性。


1. 基于YOLOv5-P6的眼底图像视盘视杯自动检测定位系统

1.1. 引言

眼底图像分析是眼科疾病诊断的重要手段,其中视盘和视杯的精确检测对于青光眼的早期诊断至关重要。传统的视盘视杯分割方法多依赖于手工设计特征,存在效率低、准确度不高等问题。随着深度学习技术的发展,基于卷积神经网络的自动检测方法逐渐成为研究热点。

本文提出了一种基于YOLOv5-P6的眼底图像视盘视杯自动检测定位系统,通过引入注意力机制和改进网络结构,显著提高了检测精度和定位准确性。该系统不仅能够快速准确地定位视盘和视杯区域,还能计算杯盘比(CDR)等关键参数,为青光眼的早期诊断提供有力支持。

1.2. 相关技术基础

1.2.1. YOLOv5-P6网络架构

YOLOv5是一种高效的单阶段目标检测算法,以其速度快、精度高的特点在多个计算机视觉任务中表现出色。P6版本是YOLOv5的扩展版本,引入了更大感受野的网络结构,特别适合医学图像这类需要精细特征提取的任务。

YOLOv5-P6的网络结构主要由Backbone和Head两部分组成。Backbone采用C3模块和SPPF模块进行特征提取,Head通过多尺度特征融合实现目标检测。与传统YOLOv5相比,P6版本在深层网络中增加了更多的特征融合层,提高了对小目标的检测能力。

1.2.2. CBAM注意力机制

在眼底图像分析中,视盘和视杯区域往往具有复杂的纹理和形态,且在图像中所占比例较小,这给目标检测带来了挑战。为了提高模型对关键特征的敏感性,我们引入了CBAM(Convolutional Block Attention Module)注意力机制。

CBAM包括通道注意力模块和空间注意力模块两部分。通道注意力模块旨在为输入特征图的每个通道分配一个权重,从而强调重要的通道并抑制不太重要的通道。具体实现如下:

python 复制代码
class ChannelAttentionModule(nn.Module):
    def __init__(self, c1, reduction=16):
        super(ChannelAttentionModule, self).__init__()
        mid_channel = c1 // reduction
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.max_pool = nn.AdaptiveMaxPool2d(1)
        
        self.shared_MLP = nn.Sequential(
            nn.Linear(in_features=c1, out_features=mid_channel),
            nn.LeakyReLU(0.1, inplace=True),
            nn.Linear(in_features=mid_channel, out_features=c1)
        )
        self.act = nn.Sigmoid()
    
    def forward(self, x):
        avgout = self.shared_MLP(self.avg_pool(x).view(x.size(0),-1)).unsqueeze(2).unsqueeze(3)
        maxout = self.shared_MLP(self.max_pool(x).view(x.size(0),-1)).unsqueeze(2).unsqueeze(3)
        return self.act(avgout + maxout)

通道注意力模块首先对输入特征图进行全局平均池化和全局最大池化操作,然后使用全连接层(MLP)学习每个通道的权重。通过这种方式,模型能够自动学习哪些通道包含更多有用的信息,从而在后续处理中更加关注这些通道。

空间注意力模块则关注特征图的空间位置信息,通过在通道维度上进行平均池化和最大池化,然后使用卷积层学习空间位置的权重。这样,模型能够聚焦于图像中最重要的区域,抑制背景噪声的干扰。

将这两种注意力机制结合,CBAM能够同时优化特征图的通道信息和空间信息,显著提高模型对目标区域的敏感度。在我们的眼底图像检测系统中,CBAM模块被添加到YOLOv5-P6的深层网络中,帮助模型更好地捕捉视盘和视杯的关键特征。

1.3. 系统实现

1.3.1. 网络结构改进

为了适应眼底图像视盘视杯检测的特殊需求,我们对YOLOv5-P6进行了以下改进:

  1. 在网络深层添加CBAM注意力模块,增强对关键特征的提取能力
  2. 调整特征金字塔的融合方式,提高多尺度目标检测的准确性
  3. 优化损失函数,针对小目标检测进行特别设计

在实现过程中,我们首先在common.py中定义了CBAM模块,然后在yolo.py的parse_model()函数中添加了对CBAM模块的支持。具体代码如下:

python 复制代码
elif m is CBAM:
    c1, c2 = ch[f], args[0]
    if c2 != no:
        c2 = make_divisible(c2 * gw, 8)
    args = [c1, c2]

此外,我们还修改了模型配置文件,在head部分的末尾添加了CBAM模块:

yaml 复制代码
# 2. YOLOv5 v6.0 head
head:
  # 3. ... 其他配置 ...
  [[-1, 1, Conv, [512, 3, 2]],
   [[-1, 10], 1, Concat, [1]],  # cat head P5
   [-1, 3, C3, [1024, False]],  # 23 (P5/32-large)
   [-1, 1, CBAM, [1024]],  # 添加CBAM模块
   
   [[17, 20, 24], 1, Detect, [nc, anchors]],  # Detect(P3, P4, P5)
  ]

3.1.1. 数据集与预处理

我们的实验数据集包含1000张眼底图像,每张图像都标注了视盘和视杯的精确位置。这些图像来自不同设备、不同患者,涵盖了各种光照条件和病理变化。

在数据预处理阶段,我们采用了以下策略:

  1. 图像归一化:将像素值归一化到0,1范围
  2. 直方图均衡化:增强图像对比度
  3. 数据增强:随机旋转、翻转、亮度调整等,扩充训练数据
相关推荐
大鱼>4 天前
地平线BPU部署实战:YOLOv8在J5/X3上的算法适配与性能优化
算法·yolo·性能优化
stsdddd4 天前
YOLO系列目标检测数据集大全【第二十九期】
yolo·目标检测·目标跟踪
大鱼>4 天前
YOLO边缘部署深度指南:从YOLOv8n到NPU加速的全链路优化
yolo·aiot
AI棒棒牛4 天前
第 03 讲《监督学习:数据、标签、Loss与训练循环》
人工智能·学习·yolo·目标检测·yolo26
FL16238631295 天前
国内快递面单识别检测数据集VOC+YOLO格式422张6类别
人工智能·yolo·机器学习
stsdddd5 天前
YOLO系列目标检测数据集大全【第三十期】
yolo·目标检测·目标跟踪
YOLO数据集集合5 天前
无人机航拍地质灾害智能识别 山体滑坡实例分割数据集落地实战 | 泥石流监测 道路险情封堵 深度学习模型训练方案10296期
人工智能·深度学习·yolo·目标检测·无人机
音沐mu.5 天前
【73】墙壁建筑缺陷数据集(有v5/v8模型)/YOLO墙壁建筑缺陷检测
yolo·目标检测·目标检测数据集·墙壁建筑缺陷数据集·墙壁建筑缺陷检测
前网易架构师-高司机5 天前
带标注的辣椒病叶数据集,识别率95.9%,可识别三种病害和健康叶子,9916张图,支持yolo,coco json,voc xml,文末有模型训练代码
yolo·json·数据集·病害·叶病·病叶·辣椒
动物园猫5 天前
直升机停机坪目标检测数据集分享(适用于YOLO系列深度学习分类检测任务)
深度学习·yolo·目标检测