基于改进ResNet18的糖尿病视网膜病变识别

对眼底图像做糖尿病视网膜病变五级分级:ResNet18 残差块嵌入 CBAM 注意力 + Focal Loss 治类别不平衡 + SE/ECA/CBAM 三注意力消融 + Grad-CAM 病灶热力图,一条完整的医学图像分级与可解释性流水线——代码、技术文档、项目讲解资料全配齐。

  • 任务类型计算机视觉
  • 专业方向计算机 · 人工智能 · 医学/生物医学

数据与任务

样本量Kaggle DR · 3662 张眼底图 · 5 级
核心方法ResNet18 + CBAM + Focal Loss
技术栈PyTorch · Grad-CAM

如果你想找一个把深度学习医学图像分类做扎实、又能在面试里讲出技术含量的项目,这个「糖尿病视网膜病变识别」很合适。

它是一个完整的眼底图像分级案例,配套也给你备齐了,帮你真正搞懂它、在面试和答辩里讲明白:带中文注释、能读懂的代码,一份从背景讲到每步实现的技术文档,把面试问题连答案都写好的项目讲解资料,还有一整套能直接做 PPT 的配图。

flowchart LR A["眼底图像<br/>(5 级病变)"] --> B["高斯滤波<br/>+ 数据增强"] B --> C["ResNet18 主干<br/>残差块嵌 CBAM"] C --> D["Focal Loss<br/>治类别不平衡"] D --> E["统一评估<br/>混淆矩阵 / ROC"] C --> F["Grad-CAM<br/>定位病灶"] E --> G["DR 严重程度分级"] F --> G

先说清楚,它到底在做什么

糖尿病视网膜病变是工作年龄人群致盲的主要原因之一,早筛早治很关键,但能读眼底片的专业医生稀缺。难点在于:病变特征非常细微——微动脉瘤、出血点、硬性渗出往往只占眼底图一小块,模型容易被血管、视盘这些正常结构带偏;而且五级分级里各类样本极不均衡(最多/最少类约 9.4:1),模型很容易偏向多数类。

这个项目从 Kaggle 公开的 3662 张眼底图像出发,搭了一条完整的分级流水线:先做高斯滤波、归一化与数据增强,再以 ResNet18 为主干、在每个残差块里嵌入 CBAM 注意力强制模型聚焦病灶;用 Focal Loss 配合类别权重压住不平衡问题;最后用 Grad-CAM 把模型"到底看眼底哪一块"画成热力图——既给出分级,也讲清它凭什么这么判。

五级糖网病变眼底样本
从无病变到增殖期的眼底样本——直观展示了不同分级的细微差异,也是这条识别流水线要攻克的难点。

搞懂它,你能在面试里讲清楚什么

把下面几件事吃透,面试官顺着问下来你都能接得住。

CBAM 注意力加在哪、怎么让网络盯住病灶。 这是项目的改进主线。它在 ResNet18 残差块的第二个卷积之后、残差相加之前插入 CBAM——先做通道注意力(哪些特征通道重要),再做空间注意力(眼底哪块区域重要),仅增加不到 1% 的参数。你能借这张图把"注意力机制如何让网络聚焦微动脉瘤、出血点"讲得很具体,这是面试高频考点。

SE / CBAM / ECA 注意力模块结构
照着这张图,能把 SE、CBAM、ECA 三种注意力的数据流,以及它们如何嵌入残差块讲清楚。

为什么用 Focal Loss,而不是普通交叉熵。 五级分级里增殖期、重度样本很少,普通交叉熵会让模型偏向多数类。Focal Loss 用调制因子 \((1-p_t)^\gamma\) 自动压低易分样本的权重,再配类别逆频率权重。你能借此把"类别不平衡怎么治"讲透——这正是区分"只会调 API"和"懂原理"的关键点。

Grad-CAM 怎么把黑盒讲成"看得懂的病灶热力图"。 Grad-CAM 用梯度加权特征图生成高亮区域,能直接看出模型判断时盯着眼底的哪一块。你能借此讲清楚模型的可解释性,以及它确实是"看病灶"而不是"看背景"——这在医学 AI 里是核心关注点。

下面这组分析图也都给你做好了,可以直接放进答辩或面试 PPT

Grad-CAM 热力图
Grad-CAM 病灶定位(部分类别)
混淆矩阵
改进模型混淆矩阵
ROC 曲线
五类逐一 ROC 与 AUC

更关键的是,每张图怎么跑出来的、该怎么解读,技术文档里都讲清楚了——你能说明白每张图到底说明了什么。

面试官会问的,都帮你备好了

随便感受几个这个项目真实会被追问的问题:

  • CBAM 的通道注意力和空间注意力分别解决什么问题?为什么要先通道后空间?
  • 既然加了注意力,为什么还要单独用 Focal Loss?两者解决的是同一个问题吗?
  • 做了 SE、ECA、CBAM 三种注意力的消融,凭什么说 CBAM 在这个任务上更合适?

看到会愣一下?正常。配套的项目讲解资料把这个项目——从整体思路到每个流程细节、各种可能被追问的点——连参考答案都给你写好了。另外还有现成的简历描述,照着改就能写进简历;那套配图也能直接套进 PPT 模板,快速出一份面试 / 答辩 PPT。

配套资料:搞懂一个项目需要的,这里全都有

先看那份技术文档——从研究背景、数据集分析、注意力模块设计,一直讲到实验结果与 Grad-CAM 可视化,图文并茂:

文档封面
封面 + 目录
方法页
模型架构与 CBAM
结果页
基线 vs 改进对比

代码也给你了——关键部分都带着中文注释,帮你读懂"它到底是怎么实现的"

CBAM 代码
CBAM 通道 + 空间注意力
Focal Loss 代码
Focal Loss 实现

技术文档、项目讲解资料、源码注释、整套配图——搞懂一个项目、并在面试里讲清楚它,需要的全都备齐了。

适合谁

不管你是赶毕设、想给简历添个有分量的项目,还是在准备面试,这个题目都接得住。专业上,计算机、人工智能、医学图像处理、生物医学工程、眼科与公共卫生方向都很合适。医学图像分级是计算机视觉里很有分量的应用方向,而"注意力改进 + 类别不平衡处理 + 可解释性"这条主线,把项目从单纯刷分提升到能讲出技术深度——真正搞懂、能讲出来,就是一个能写进简历、撑得起面试的项目。

想把这样的项目做成你简历上的亮点?

这是一套配齐了代码、文档、面试问答和配图的 AI+X 项目,可写进简历、在面试里讲清楚。 想做同类项目、或获取「基于改进ResNet18的糖尿病视网膜病变识别」的完整资料(代码 / 数据处理流程 / 论文文档 / 配图), 请联系为你介绍本页面的老师咨询,按你的情况定一个合适的项目。