一、项目简介

眼疾识别系统是一个基于深度学习的医疗辅助诊断平台,旨在帮助眼科医生和患者快速识别常见眼部疾病。系统通过分析眼底图片,能够准确识别白内障、青光眼、高血压视网膜病变等常见眼疾,并提供识别置信度,为临床诊断提供参考依据。

本项目的主要特点:

  • 支持多种深度学习模型:集成了12种经典模型,可灵活选择和切换
  • 多类别识别:支持白内障、青光眼、高血压视网膜病变、正常眼底四种分类
  • 用户友好的Web界面:提供直观的图片上传和识别结果展示
  • 完整的训练流程:提供数据预处理、模型训练、评估和预测全流程

二、技术栈

本项目采用以下技术栈:

  1. 框架:Django 4.x(后端)+ HTML/CSS/JavaScript(前端)
  2. 深度学习框架:PyTorch 1.x
  3. 模型架构:
    • 传统卷积神经网络:AlexNet、VGGNet、ResNet、GoogLeNet、LeNet
    • 轻量级模型:MobileNet、ShuffleNet、DenseNet、EfficientNet、RegNet
    • Transformer模型:Vision Transformer、Swin Transformer
  4. 数据处理:Pandas、NumPy、Scikit-learn
  5. 可视化:Matplotlib

三、数据集说明

本项目使用的眼疾数据集包含以下四个类别:

类别名称说明
cataract(白内障)晶状体混浊导致视力模糊
glaucoma(青光眼)眼压升高导致视神经损伤
high(高血压视网膜病变)高血压引起的视网膜血管病变
normal(正常眼底)无明显眼部疾病

数据集按照8:2的比例划分为训练集和测试集,总计包含约1200张眼底图片。

四、系统功能

系统主要功能模块:

  1. 模型选择:用户可选择不同的深度学习模型进行识别
  2. 图片上传:支持上传JPG、PNG等格式的眼底图片
  3. 智能识别:系统自动分析图片并返回识别结果
  4. 结果展示:显示识别类别和置信度

图1:眼疾识别系统首页截图
在这里插入图片描述

五、模型架构与核心流程

5.1 模型架构

本项目集成了12种深度学习模型,涵盖了从传统CNN到最新Transformer架构的各种模型:

  • AlexNet:经典的深度卷积神经网络,首次证明深度学习在图像识别中的有效性
  • VGGNet:使用小卷积核构建深度网络,具有良好的特征提取能力
  • ResNet:引入残差连接,解决深度网络训练退化问题
  • GoogLeNet:采用Inception模块,提高计算效率
  • MobileNet/ShuffleNet:轻量级模型,适用于移动端部署
  • Vision Transformer:将Transformer架构应用于图像分类
  • Swin Transformer:基于窗口的Transformer,在视觉任务中表现优异

5.2 核心流程

系统的核心流程包括数据预处理、模型训练和预测三个阶段:

数据预处理阶段:

  1. 图片加载与尺寸调整(统一调整为224×224或32×32)
  2. 数据增强(随机裁剪、水平翻转等)
  3. 归一化处理(基于ImageNet均值和标准差)

模型训练阶段:

  1. 模型初始化(支持预训练权重加载)
  2. 冻结特征提取层(可选)
  3. 优化器配置(Adam、SGD等)
  4. 学习率调度(余弦退火策略)
  5. 训练与验证循环

预测阶段:

  1. 接收用户上传的图片
  2. 图片预处理
  3. 模型推理
  4. 返回识别结果和置信度

六、训练流程

6.1 环境准备

确保已安装以下依赖:

  • Python 3.8+
  • PyTorch 1.10+
  • Django 4.x
  • pandas、numpy、scikit-learn、matplotlib

6.2 数据准备

数据集结构如下:

data_set/
  └── eye/
      ├── train/
      │   ├── cataract/
      │   ├── glaucoma/
      │   ├── high/
      │   └── normal/
      └── test/
          ├── cataract/
          ├── glaucoma/
          ├── high/
          └── normal/

6.3 模型训练

可以使用统一训练脚本训练指定模型:

python main_train.py --model swin --data_set eye --epoch 10 --lr 0.0001

也可以进入具体模型目录单独训练:

cd models/swin_transformer
python train.py --data_set eye --epochs 10

6.4 模型评估

训练过程中系统自动计算以下指标:

  • 准确率(Accuracy)
  • 精确率(Precision)
  • 召回率(Recall)
  • F1分数(F1 Score)

训练结果自动保存为Excel文件,位于各模型目录下。

七、效果展示与分析

7.1 模型性能对比

本项目对12种模型进行了对比实验,以下为部分模型的性能对比:

模型名称最高验证准确率
MobileNet0.7500
ResNet0.7225
GoogLeNet0.7033
AlexNet0.6758
DenseNet0.6648
LeNet0.6456
EfficientNet0.6044
Vision Transformer0.6016
RegNet0.5385
ShuffleNet0.4725
Swin Transformer0.3516
VGGNet0.2445

7.2 识别效果

系统在测试集上表现良好,能够准确识别不同类型的眼疾。以下是典型识别场景:

  • 白内障识别:准确率高,能够识别不同程度的晶状体混浊
  • 青光眼识别:能够识别视神经损伤特征
  • 高血压视网膜病变:能够识别血管病变特征
  • 正常眼底:能够正确判断无病变的眼底图片

八、项目总结与优化方向

8.1 项目总结

本项目成功构建了一个基于深度学习的眼疾识别系统,实现了以下目标:

  1. 集成了12种深度学习模型,提供了丰富的模型选择
  2. 完成了数据集准备和预处理流程
  3. 实现了完整的训练、评估和预测流程
  4. 构建了用户友好的Web界面

系统在测试集上取得了良好的识别效果,为眼疾辅助诊断提供了有力工具。

8.2 优化方向

未来可以从以下方向进行优化:

  1. 数据增强优化:引入更多数据增强策略,提升模型泛化能力
  2. 模型融合:采用集成学习方法,融合多个模型的预测结果
  3. 迁移学习优化:使用领域相关的预训练模型进行微调
  4. 模型压缩:对模型进行量化和剪枝,便于移动端部署
  5. 多任务学习:同时识别多种眼部特征,提供更全面的诊断信息

更多推荐