更多内容请关注【医学影像 AI by youcans@Xidian 专栏】


0. 论文简介

0.1 基本信息

2020 年 Djoumessi 等在 MICCAI 2025 发表论文 “用于视网膜眼底图像的可解释 CNN-Transformer 混合模型(A hybrid fully convolutional CNN-transformer model for inherently interpretable disease detection from retinal fundus images)”。

本文
一种用于从视网膜眼底图像中进行内在可解释疾病检测的混合全卷积CNN-Transformer模型

论文下载: arxivMICCAI 2025
项目地址: github

引用格式:
K. Djoumessi, S. O. Mensah, and P. Berens, “A hybrid fully convolutional CNN-transformer model for inherently interpretable disease detection from retinal fundus images,” in Proc. 8th Int. Workshop Interpretability Mach. Intell. Med. Image Comput. (IMIMIC) at MICCAI, 2025.


0.2 摘要

在许多医学成像任务中,卷积神经网络(CNNs)能够高效地分层提取局部特征。近年来,视觉变换器(ViTs)因其能够通过自注意力机制捕捉全局依赖关系而受到关注,但它们缺乏卷积所固有的空间定位能力。因此,结合了CNNs和ViTs的混合模型被开发出来,以整合这两种架构的优势。然而,这种混合模型难以解释,这阻碍了其在医学成像中的应用。

在本工作中,我们引入了一种为可解释性而设计的混合全卷积CNN-Transformer架构,用于视网膜疾病检测。与广泛用于ViTs的后验显著性方法不同,我们的方法生成了忠实且局部化的证据图,直接反映了模型的决策过程。

我们在两个使用彩色眼底图像进行疾病检测的医学任务上评估了我们的方法。我们的模型在预测性能上达到了最先进的水平,与黑盒和可解释模型相比,并且在单次前向传播中提供类别特定的稀疏证据图。

代码可在以下链接获取:https://github.com/kdjoumessi/Self-Explainable-CNN-Transformer。


1. 引言

卷积神经网络(CNN)是医学图像分析中许多成功应用的核心 [9],但近年来,视觉变换器(ViT)作为一种有竞争力的替代方案崭露头角 [11],在医学成像任务中表现出色 [3, 26]。尽管CNN在捕获图像中复杂局部模式方面非常有效,但其感受野的大小小于某些与疾病相关的病变 [17]。相比之下,视觉变换器利用自注意力(SA)[27]来捕获长距离依赖关系,从而提供对图像的更全局理解。尽管具有这些优势,但ViT需要大量的计算资源,通常需要大规模数据集进行有效训练 [20, 26],同时在可解释性方面也面临挑战 [16]。

为了克服这两种方法的弱点,混合CNN-Transformer架构是一种有前景的替代方案。已有几项研究使用了这种架构 [15, 18, 20, 26],在需要将局部特征与全局关系相结合进行分类的任务中提高了性能。然而,这种混合方法的可解释性仍然是一个挑战 [18, 20, 26],因为它们需要针对Transformer架构的特定技术或开发新的可视化方法 [18]。为此,要么将基于CNN的方法适应于ViT [24, 4],要么提出了针对ViT的特定技术 [1, 7, 8]。最常用的ViT特定方法是可视化各层的注意力图,因为这些图可以捕获输入区域之间的交互。然而,注意力并非特定于类别,它仅说明输入块之间的关系,而不是它们对模型预测的直接贡献 [5, 25, 16]。作为替代,基于CNN的后验方法(如LRP [4]和GradCAM [24])已成功地通过在自注意力层中整合梯度而适应于ViT,提供类别特定的解释 [8]。然而,这些方法是特定于模型的,并且在处理像Swin Transformer [21]这样的分层架构时会遇到困难。

在这里,我们提出了一种新颖的、设计上具有内在可解释性的混合CNN-Transformer架构,用于视网膜眼底图像分类,结合了CNN的特征提取优势以及ViT从双分辨率特征中捕获长距离依赖关系的能力。双分辨率自注意力(DRSA)使模型能够通过关注两种不同空间分辨率的表示来捕获细粒度细节和全局上下文。

我们的设计整合了最近的进展,如卷积ViT [29]、双分辨率自注意力 [15]和稀疏解释 [17, 10]。我们使用两种骨干CNN——ResNet和BagNet——在两个临床相关任务上评估了我们的模型:糖尿病视网膜病变(DR)检测和年龄相关性黄斑变性(AMD)严重程度分类,使用公开可用的彩色眼底图像数据集。

我们的混合模型在不牺牲分类性能的情况下提供了自我可解释性,挑战了准确性和可解释性之间的权衡神话 [23]。它在预测性能上与可解释和不可解释的最新模型相当,同时提供了准确定位与疾病相关的病变的可靠解释,即使在分布偏移的情况下,也优于传统的后验方法。


2. 结果

2.1 混合 CNN-ViT 架构

在我们提出的混合架构中(图 1),卷积神经网络(CNN)模块与视觉 Transformer(ViT)模块按顺序使用,其中 CNN 模块的输出直接作为 Transformer 模块的输入。具体而言,CNN 模块充当特征提取器,负责捕捉局部特征模式;ViT 模块则对提取到的特征之间的长程依赖关系进行建模,从而增强模型理解更广泛上下文信息的能力。


在这里插入图片描述
图1:设计可解释的混合CNN-Transformer模型。
(a) 输入图像。黑色块表示CNN骨干(BagNet)的小感受野。
(b) 两个基于窗口的自注意力模块分别应用于高分辨率和下采样的低分辨率特征图,随后进行特征融合。
© 高维注意力图通过应用具有 C 个卷积核的 1×1 卷积分类器转换为类别证据图 A,其中 C 是类别数量。
(d) 类别证据图的空间平均值产生预测结果,而对 A 进行上采样则提供解释。


给定输入图像 X ∈ R H × W × C \boldsymbol{X} \in \mathbb{R}^{H \times W \times C} XRH×W×C(其中 H 和 W 分别表示图像的高度和宽度,C 表示通道数),CNN 骨干网络f会提取出空间特征表示 Z = f θ ( X ) ∈ R M × N × D \boldsymbol{Z} = f_\theta(\boldsymbol{X}) \in \mathbb{R}^{M \times N \times D} Z=fθ(X)RM×N×D,其中 θ \theta θ 代表模型参数, M × N M \times N M×N 表示特征图的空间尺寸,D 表示特征维度。

本研究中,骨干网络选用 ResNet50(感受野为 427×427)或 BagNet-33(感受野为 33×33)。与 ResNet 不同,BagNet 采用 “词袋”(bag-of-words)的方式仅对局部特征进行聚合 [6]。

Transformer 模块(图 1b)采用双卷积窗口自注意力(Conv-wSA)机制,该机制同时作用于原始特征图的高分辨率版本和低分辨率版本,以生成注意力图 W = g ϕ ( Z h , Z l ) ∈ R M × N × D \boldsymbol{W} = g_\phi(\boldsymbol{Z}_h, \boldsymbol{Z}_l) \in \mathbb{R}^{M \times N \times D} W=gϕ(Zh,Zl)RM×N×D。其中, Z h = Z \boldsymbol{Z}_h = \boldsymbol{Z} Zh=Z 表示高分辨率特征图; Z l = d ( Z , r ) ∈ R M r × N r × D \boldsymbol{Z}_l = d(\boldsymbol{Z}, r) \in \mathbb{R}^{\frac{M}{r} \times \frac{N}{r} \times D} Zl=d(Z,r)RrM×rN×D 表示低分辨率特征图,由下采样函数 d ( ⋅ ) d(·) d()(下采样系数为r)对高分辨率特征图处理后得到。函数 g ϕ g_\phi gϕ(参数为(\phi))同时包含参数化投影层和门控深度卷积前馈网络(Gated-Dconv Feed-Forward Network, GDFN)[31]。Transformer 模块生成的注意力图保持了输入特征图的空间分辨率。

分类模块(图 1c)包含一个卷积层,该层使用C个尺寸为 1×1、步长为 1 的卷积核,生成类别证据图 A = h ψ ( W ) ∈ R M × N × C \boldsymbol{A} = h_\psi(\boldsymbol{W}) \in \mathbb{R}^{M \times N \times C} A=hψ(W)RM×N×C(其中C表示类别数量,(\psi)表示分类器h的参数)。

最终预测结果 y ^ ∈ R 1 × C \hat{\boldsymbol{y}} \in \mathbb{R}^{1 \times C} y^R1×C 的获取过程如下:首先对类别证据图 A \boldsymbol{A} A 进行空间平均池化,再对池化结果执行 softmax 操作,即 y ^ = Softmax ( AvgPool ( A ) ) \hat{\boldsymbol{y}} = \text{Softmax}(\text{AvgPool}(\boldsymbol{A})) y^=Softmax(AvgPool(A))。该操作最终得到一个C维概率分布,用于表示输入图像属于每个类别的可能性。


2.2 利用卷积 DRSA 学习长程依赖关系

为了学习卷积特征之间的长程依赖关系,本研究采用带有双分辨率自注意力(dual-resolution self-attention, DRSA)的 Transformer 模块 [15]。

该模块用卷积层替代了传统的线性全连接层(fully connected layer, FCL)[29],具体实现如下:
SA h = Softmax ( Q h K h ⊤ α ) V h \text{SA}_h = \text{Softmax}\left( \frac{\boldsymbol{Q}_h \boldsymbol{K}_h^\top}{\alpha} \right) \boldsymbol{V}_h SAh=Softmax(αQhKh)Vh
SA l = Softmax ( Q l K l ⊤ α ) V l \text{SA}_l = \text{Softmax}\left( \frac{\boldsymbol{Q}_l \boldsymbol{K}_l^\top}{\alpha} \right) \boldsymbol{V}_l SAl=Softmax(αQlKl)Vl

其中, α \alpha α为缩放因子; Q h \boldsymbol{Q}_h Qh K h \boldsymbol{K}_h Kh V h \boldsymbol{V}_h Vh 以及 Q l \boldsymbol{Q}_l Ql K l \boldsymbol{K}_l Kl V l \boldsymbol{V}_l Vl 分别是通过卷积操作对高分辨率特征图 Z h \boldsymbol{Z}_h Zh 和低分辨率特征图 Z l \boldsymbol{Z}_l Zl 处理后生成的查询(query)、键(key)和值(value)嵌入向量。

最终的自注意力特征表示计算方式如下:
SA final = GDFN δ ( Proj β ( SA h + Up ( SA l ) ) ) \text{SA}_{\text{final}} = \text{GDFN}_\delta \left( \text{Proj}_\beta \left( \text{SA}_h + \text{Up}(\text{SA}_l) \right) \right) SAfinal=GDFNδ(Projβ(SAh+Up(SAl)))

W = SA final \boldsymbol{W} = \text{SA}_{\text{final}} W=SAfinal

其中, Up ( SA l ) \text{Up}(\text{SA}_l) Up(SAl) 表示对低分辨率自注意力特征图 SA l \text{SA}_l SAl 进行上采样后得到的结果。将上采样后的特征图与高分辨率自注意力特征图 SA h \text{SA}_h SAh 进行聚合,再将聚合结果输入至参数为 β \beta β的卷积投影层;随后,利用参数为 δ \delta δ 的 GDFN 对投影后的特征表示进行优化 —— 该过程在增强空间结构信息的同时抑制无关特征。这种优化确保了只有显著信息会对最终预测结果产生贡献,进而提升模型的泛化性能。


2.3 利用稀疏卷积分类器增强模型可解释性

在标准 ViT 模型及传统混合 CNN-Transformer 模型中,分类头包含一个全连接层(FCL),该层会丢弃空间信息,从而限制模型的可解释性。为解决这一问题,本研究提出的架构在自注意力模块中采用卷积操作以保留空间信息,生成的注意力图能够捕捉同一窗口内不同区域之间的长程依赖关系。

为进一步增强可解释性,我们用卷积分类器(称为类别证据层)替代了传统的全连接层。该类别证据层利用空间信息生成类别级证据图(图 1),图中每个像素均反映了输入图像对应区域对最终预测结果的局部贡献。分类完成后,对类别证据图进行上采样,并将其叠加在原始输入图像上以实现可视化(图 1d)。此外,通过引入显式的类别证据层,可对类别证据图 A c \boldsymbol{A}_c Ac 施加 ℓ 1 \ell_1 1 稀疏性约束,从而进一步提升模型可解释性 [17, 10]。由此得到的损失函数如下:

L ( y , y ^ ) = CE ( y , y ^ ) + λ ∑ i , j , c ∣ A c , i j ∣ (1) \mathcal{L}(\boldsymbol{y}, \hat{\boldsymbol{y}}) = \text{CE}(\boldsymbol{y}, \hat{\boldsymbol{y}}) + \lambda \sum_{i,j,c} |\boldsymbol{A}_{c,ij}| \tag{1} L(y,y^)=CE(y,y^)+λi,j,cAc,ij(1)

其中, CE \text{CE} CE 表示交叉熵损失, y \boldsymbol{y} y 表示参考类别标签,超参数 λ \lambda λ 用于控制类别证据图的稀疏程度。整个模型采用梯度下降法进行端到端训练。


3. 结果

3.1 数据集

本研究采用了两个公开可用的视网膜眼底图像数据集,分别是 Kaggle 糖尿病视网膜病变(Diabetic Retinopathy, DR)数据集 [12] 和年龄相关性眼病研究(Age-Related Eye Disease Study, AREDS)数据集 [13]。

经过自定义质量筛选后,Kaggle DR 数据集包含来自 28,984 名受试者的 45,923 张图像,其类别分布如下:无 DR(No DR)占 73%、轻度 DR(Mild)占 15%、中度 DR(Moderate)占 8%、重度 DR(Severe)占 3%、增殖性 DR(Proliferative DR)占 1%。

AREDS 数据集包含来自 4,757 名参与者的 34,079 张图像。AMD 严重程度被划分为 6 个类别 [2,13],各类别占比分别为:早期 AMD(early)49%、中度 AMD(moderate)19%、进展期中期 AMD(advanced intermediate)14%、早晚期 AMD(early late)3%、活动性新生血管 AMD(active neovascular)12%、终末期 AMD(end-stage)1%。

所有图像均被调整为 512×512 的尺寸并进行归一化处理,同时通过裁剪、翻转、颜色抖动和旋转等方式进行数据增强。数据集按 75% 训练集、10% 验证集、15% 测试集的比例划分,且确保同一受试者的所有记录均处于同一数据集中(即避免同一受试者数据跨集分布)。

为评估模型对 DR 相关病变的定位能力,本研究采用 IDRiD 数据集 [22] 与人工标注的真实标签(ground-truth)进行对比验证。该数据集包含 81 张眼底图像,并提供了微动脉瘤(microaneurysms, MA)、出血(hemorrhages, HE)、软性渗出物(soft exudates, SE)和硬性渗出物(hard exudates, EX)的像素级标签,从而能够通过定位性能评估模型的可解释性。


表1:测试集上的分类性能。报告的计算成本包括:参数量(M)、内存(MB)和平均推理时间(s)。
在这里插入图片描述


3.2 自解释混合模型取得了最先进的性能

我们首先在多类别糖尿病视网膜病变(DR)检测和年龄相关性相关性黄斑变性(AMD)严重程度分类任务上对模型进行了评估。我们的模型以 ResNet50 和 BagNet-33 作为骨干网络,集成了双分辨率卷积自注意力(DR-Conv-SA)和门控深度卷积前馈网络(GDFN)模块 [31]。参照文献 [15],我们将下采样系数设为 r=2,并采用最大池化操作。通过调整窗口大小(BagNet 的窗口大小 w=10,ResNet 的窗口大小 w=8)以及正则化系数 λ(公式 1),来平衡分类精度和证据图的稀疏性。分类指标通过 bootstrap 方法计算,并以 95% 置信区间(CI)长度呈现;推理时间则在相同输入上运行 1000 次后,以标准差(SD)形式呈现。

我们将稀疏模型与密集模型(λ=0)、采用线性自注意力(SA)结合全连接层(FCL)分类器的变体模型,以及其他多个基线模型进行了对比,这些基线模型包括:ResNet50、BagNet33、ViT32(输入尺寸 384)和 Swin Transformer(输入尺寸 384,补丁大小 4,窗口大小 12)。所有模型均使用 ImageNet 上预训练的权重进行初始化,并在相同设置下训练:数据增强、交叉熵损失、余弦学习率调度,以及在 NVIDIA A40 GPU 上使用 PyTorch 框架的 SGD 优化器(学习率 10⁻⁴,权重衰减 5×10⁻⁴),模型选择基于最佳验证精度。

我们的这种天生具备可解释性的混合模型在两个任务上均取得了最先进的性能。在 DR 分类任务中,以 BagNet 为骨干网络的密集模型效果最佳;而在 AMD 严重程度分类任务中,以 ResNet 为骨干网络的模型获得了最高的 Cohen’s kappa(κ)系数(表 1)。尽管对类别激活图施加了稀疏性惩罚,稀疏模型仍保持了具有竞争力的精度,κ 值仅略有下降。值得注意的是,在 AMD 检测中,κ 值超过了准确率,这可能是因为错误分类主要发生在相邻的严重程度级别之间(图 3d)。总体而言,计算成本因骨干网络而异,但仍低于视觉 Transformer(ViTs)。


3.3 稀疏性约束增强类别证据图

接下来,我们将模型生成的证据图与基于视觉 Transformer(ViT)基线模型通过 GradCAM [24] 生成的归因图进行了对比。由于研究涉及的是多类别任务,我们仅展示正确预测类别所对应的类别证据图。我们的类别证据图来自平均池化前的卷积层,能清晰突出与预测类别相关的输入特征(图 2)。

我们发现,在 ViT 模型上使用 GradCAM 生成的热力图较为杂乱、难以解释;相比之下,混合 ResNet-Transformer 模型因感受野较大,生成的热力图颗粒度更粗,而混合 BagNet-Transformer 模型则能提供定位更精准的解释。稀疏模型通过生成更稀疏的热力图进一步优化了这一效果,将决策聚焦于更小但具有相关性的视网膜区域。在 AMD 严重程度分类任务中,我们观察到,密集型和稀疏型 ResNet-Transformer 模型的关注重点均主要集中在黄斑区域。


在这里插入图片描述
图2:示例解释。从左到右,显示正确预测类别的热图。第一行展示了来自Kaggle数据集的一个示例(1级),第二行展示了来自AREDS数据集的一个示例(2级)。


3.4 证据图可提供可靠且定位精准的解释

我们通过评估模型识别糖尿病视网膜病变(DR)病灶的精度,定量分析了模型解释结果与临床病灶级真实标注(ground truth annotations)的匹配程度。参照《国际临床糖尿病视网膜病变分级标准》[28],我们评估了以下三种情况:

  • (a)二分类评估(图 3a):对疾病类别热力图取平均值,并整合所有病灶标注;
  • (b)重度 DR 评估(图 3b):整合微动脉瘤(MAs)、出血(HEs)和软性渗出物(SEs)的标注,基于重度 DR 级别的热力图计算精度;
  • (c)增殖性 DR 评估(图 3c):整合所有病灶标注,基于增殖性 DR 级别的热力图评估精度。

精度的计算方式为包含病灶的正向激活区域占比[17],并采用 33×33 的非重叠图像块(patch)以匹配 BagNet 的感受野。对于 ViT 模型和混合全连接层(FCL)模型,精度评估使用的是 GradCAM 生成的热力图,图像块从正向激活区域中提取。

在所有评估场景中,稀疏型 BagNet-Transformer 模型的精度显著高于其他所有模型,且性能优于基础 BagNet 模型 —— 这表明引入注意力机制不仅提升了分类性能,也增强了模型可解释性。而带有显式类别证据层的 ResNet-Transformer 模型精度表现较差,这可能是由于其较大的感受野导致病灶定位颗粒度更粗(图 2)。

随后,我们通过评估模型识别分类相关区域的能力 [30],进一步衡量了解释结果的可靠性(faithfulness)。

我们选取分类正确的测试图像,逐步移除热力图中排名靠前(激活程度最高)的图像块,并测量由此导致的类别置信度下降幅度。在 DR 检测任务中,稀疏型 BagNet-Transformer 模型表现最佳,而标准 ViT 模型表现最差,ResNet-Transformer 模型紧随其后(图 3e)。

与之相反,在 AMD 严重程度分类任务中,稀疏型 ResNet-Transformer 混合模型的性能优于稀疏型 BagNet-Transformer 模型(图 3f)—— 这可能是因为 AMD 的病灶尺寸更大,更适合采用具有较大感受野的 CNN 骨干网络。值得注意的是,这一趋势与分类任务结果一致:在 AMD 分类中,ResNet 骨干网络同样表现更好。


在这里插入图片描述
图3:热图的定量评估和混淆矩阵。
(a-c) 在IDRiD数据集上对热图的精确度评估。
(e,f) 对糖尿病视网膜病变(DR)检测和年龄相关性黄斑变性(AMD)严重程度分类的不同热图的敏感性分析。
(d,g,h) 不同模型在测试集上对DR检测和AMD严重程度分类的混淆矩阵。


3.5 我们的模型增强了多类别任务的可解释性

最后,我们对密集型和稀疏型 BagNet-Transformer 模型的类别特异性解释结果进行了可视化。在 Kaggle 数据集的 DR 预测任务中,两种模型均对示例图像实现了正确分类(图 4)。对于我们提出的混合模型,热力图与类别概率分布可通过单次前向传播生成,其中稀疏型模型生成的解释具有更强的聚焦性和定位精准度,且与预测类别及临床真实标注(ground truth)均高度匹配。相比之下,事后(post-hoc)解释方法需要多次前向传播,这增加了整体推理成本。

在其他类别上,稀疏型模型几乎未出现正向激活;而密集型模型则同时呈现正向和负向证据的混合分布。有趣的是,我们观察到注意力图与预测证据图之间存在强相关性,这种相关性在稀疏型模型中尤为显著。这一现象表明,该模型能够以可解释的方式有效捕捉特征间的长程依赖关系。


在这里插入图片描述
图4:多类别解释的示例。来自Kaggle数据集的重度糖尿病视网膜病变(DR)示例的类别特定热图。
第一行显示了具有BagNet骨干的密集混合模型的注意力图和相应的热图,第二行显示了其稀疏版本的注意力图和热图。


4. 讨论与结论

我们提出了首个用于医学图像分类的固有可解释混合 CNN-Transformer 架构1,并将其应用于视网膜眼底图像的糖尿病视网膜病变(DR)检测和年龄相关性黄斑变性(AMD)严重程度分类任务中。代码地址:github

该方法与骨干网络无关,使得骨干网络的选择可以由特定疾病的先验知识指导。我们使用两种 CNN 骨干网络对模型进行了评估:ResNet50 能够捕捉与 AMD 相关的全局空间关系,而 BagNet 则擅长聚合对 DR 检测至关重要的小型局部特征。后者尤为值得关注,因为自注意力(SA)机制有助于克服 BagNet 有限的感受野。相反,ResNet 更大的感受野更适合 AMD 这类涉及较大病灶的疾病。在这两种情况下,SA 机制都增强了模型对最相关特征的关注。我们的 Transformer 模块采用双分辨率卷积自注意力(SA),在保留强大的局部归纳偏置的同时,捕捉全局特征和细粒度特征。与采用全连接层(FCL)分类器的标准模型不同,我们的模型包含显式的类别证据层,可生成空间类别证据热力图,无需事后方法即可实现直接可解释性。

有趣的是,可解释性与准确性之间的权衡相对较小,这对自解释模型中存在 “准确性 - 可解释性权衡” 的固有认知提出了挑战 [23]。所有被评估的模型都取得了相当的性能,具有较高的平衡准确率和 κ 值。值得注意的是,稀疏 BagNet-Transformer 为 DR 检测提供了信息量最大的解释,而稀疏 ResNet-Transformer 则在 AMD 严重程度分类任务中产生了最佳解释。

初步实验表明,多头自注意力(SA)增加了训练时间却未改善分类性能;而多尺度分辨率的影响有限,且进一步增加了训练和推理时间 —— 尤其是在使用 BagNet 骨干网络时(表 1),这是由于其特征图更大,导致自注意力计算成本更高。借鉴文献 [17] 的研究,我们还观察到,较高的稀疏度往往会导致晚期 DR 的漏检,这可能是由于晚期 DR 在训练集中的代表性不足所致(图 4h)。然而,我们的混合架构更有效地缓解了这一问题,在数据量较少的情况下表现出较强的稳健性。总体而言,我们的研究结果强调,混合 CNN-Transformer 模型可作为事后 ViT 解释方法的有力替代方案,尤其在医学影像领域。


5. GitHub 项目使用

依赖项
仓库中运行代码所需的所有包均列在 requirements.txt 文件中。

数据
本仓库中的代码使用公开可用的数据集进行糖尿病视网膜病变检测挑战,以及需申请获取的 AREDS 数据集(可从 dbGaP 仓库获取)。

Kaggle 数据集经过预处理:紧密裁剪视网膜眼底的圆形掩码,并调整为 512×512 大小。随后,使用在 ISBI2020 挑战数据集上训练的 EfficientNets 集成模型过滤掉低质量图像。用于模型训练和评估的最终数据集(CSV 文件)如下:

  • training csv file
  • validation csv file
  • test csv file

从 AREDS 数据集中,我们选取了每次访视中严重程度最高的图像子集,并将 AMD 严重程度分为六类:早期 AMD、中度 AMD、进展期中期 AMD、早晚期 AMD、活动性新生血管 AMD 和终末期 AMD。用于模型训练和评估的最终数据集(CSV 文件)如下:

  • test csv file
  • training csv file
  • validation csv file

用于评估 DR 检测模型解释性的 IDRiD 数据集包含 81 张带病灶标注的 DR 图像,该数据集同样公开可用。

图 2 和图 4 所用图像位于./files/images 路径下。

使用方法:训练

  1. 按如下结构组织数据集:
├── main_folder
    ├── AREDS_datset 
      ├── image1.png
      ├── image2.png
      ├── ...
    ├── Kaggle_dataset
      ├── image1.png
      ├── image2.png── ....
    ├── Outputs
      ├── ResNet-Transformer
      ├── BagNet-Transformer 
  1. 然后根据你的数据集更新 configs/paths.yaml 中的值,包括 root 和 main_folder。
    更新训练配置和超参数在以下文件中更新训练配置和超参数:./configs/default.yaml

  2. 运行训练

(1)创建虚拟环境并安装依赖项

$ pip install requirements.txt

(2)使用先前定义的参数运行模型

$ python main.py

main.py 源程序如下:

import os
import sys
import time
import torch
import random
import numpy as np

from utils.func import *
from train import train, evaluate
from utils.metrics import Estimator
from data.builder import generate_dataset
from modules.builder import generate_model

from torch.utils.tensorboard import SummaryWriter

def main():
    # load conf and paths files
    args = parse_config()
    cfg, cfg_paths = load_config(args)   
    cfg = data_path(cfg, cfg_paths)

    if cfg.train.vit:
        cfg.train.network = 'vit'
        cfg.train.conv_cls = False
        cfg.train.drsa = False
        cfg.data.input_size = 384

    if cfg.train.res_baseline:
        cfg.train.train_with_att = False
        cfg.train.conv_cls = False
        cfg.train.vit = False
        cfg.train.drsa = False

    if cfg.train.bag_baseline:
        cfg.train.train_with_att = False
        cfg.train.conv_cls = True
        cfg.train.vit = False
        cfg.train.drsa = False

    if not cfg.drsa.conv_drsa:
        cfg.train.conv_cls = False
        cfg.train.train_with_att = True

    if cfg.train.network == 'resnet50':
        cfg.drsa.lr_dim = 8
        cfg.drsa.head_size = 8
        cfg.drsa.ld_head_size = 8


    # Test
    if cfg.base.test:
        print('########## test')
        cfg.base.test = True
        cfg.base.sample = 10
        cfg.train.epochs = 4
        cfg.train.batch_size = 1
     
    # create folder
    cfg.dset.save_path = load_save_paths(cfg)
    save_path = cfg.dset.save_path 

    cfg.base.device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')  

    if not os.path.exists(save_path):
        os.makedirs(save_path)

    logger = SummaryWriter(save_path)    

    folders = ['configs', 'data', 'modules', 'utils']
    copy_file(folders, save_path)
    
    # print configuration
    if args.print_config:
        print_config({
            'BASE CONFIG': cfg.base,
            'DATA CONFIG': cfg.data,
            'TRAIN CONFIG': cfg.train
        })
    else:
        print_msg('LOADING CONFIG FILE: {}'.format(args.config))

    since = time.time()
    set_random_seed(cfg.base.random_seed)  

    train_dataset, test_dataset, val_dataset = generate_dataset(cfg)  
    model = generate_model(cfg)

    estimator = Estimator(cfg)
    train(
        cfg=cfg,
        model=model,
        train_dataset=train_dataset,
        val_dataset=val_dataset,
        estimator=estimator,
        logger=logger
    )

    ################## test ############
    ## Manual test 
    name = 'best_validation_weights'
    model_list = ['acc', 'kappa'] 
    model_name = ['Accuracy', 'Kappa'] 

    for i in range(len(model_list)):
        print('========================================')
        print(f'This is the performance of the final model base on the best {model_name[i]}')
        checkpoint = os.path.join(save_path, f'{name}_{model_list[i]}.pt')

        evaluate(cfg, model, checkpoint, val_dataset, estimator, type_ds='validation')
    
        print('')
        evaluate(cfg, model, checkpoint, test_dataset, estimator, type_ds='test')
        print('')

    time_elapsed = time.time() - since
    print('Training and evaluation complete in {:.0f}m {:.0f}s'.format(time_elapsed // 60, time_elapsed % 60))

def set_random_seed(seed):
    random.seed(seed)
    np.random.seed(seed)
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.backends.cudnn.deterministic = True

if __name__ == '__main__':
    main()
  1. 监控训练进度
    通过运行以下命令,在 127.0.0.1:6006 网站监控训练进度:
$ tensorborad --logdir=/path/to/your/log --port=6006

可复现性
模型权重和评估代码(图 2、3、4)可按需获取。

ResNet 和密集型 BagNet 代码
我们使用 interpretable-sparse-activation 仓库中的代码训练 ResNet-50 和密集型 BagNet。


6. 参考文献

1. Abnar, S., Zuidema, W.: Quantifying attention flow in transformers. In: Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. pp. 4190–4197 (Jul 2020)
2. Al-Zamil, W.M., Yassin, S.A.: Recent developments in age-related macular degeneration: a review. Clinical interventions in aging pp. 1313–1330 (2017)
3. Azad, R., Kazerouni, A., Heidari, M., Aghdam, E.K., Molaei, A., Jia, Y., Jose, A., Roy, R., Merhof, D.: Advances in medical image analysis with vision transformers: a comprehensive review. Medical Image Analysis 91, 103000 (2024)
4. Bach, S., Binder, A., Montavon, G., Klauschen, F., Müller, K.R., Samek, W.: On pixel-wise explanations for non-linear classifier decisions by layer-wise relevance propagation. PloS one 10(7), e0130140 (2015)
5. Bibal, A., Cardon, R., Alfter, D., Wilkens, R., Wang, X., François, T., Watrin, P.: Is attention explanation? an introduction to the debate. In: Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers). pp. 3889–3900 (2022)
6. Brendel, W., Bethge, M.: Approximating cnns with bag-of-local-features models works surprisingly well on imagenet. International Conference on Learning Representations (2019)
7. Chefer, H., Gur, S., Wolf, L.: Generic attention-model explainability for interpreting bi-modal and encoder-decoder transformers. In: Proceedings of the IEEE/CVF International Conference on Computer Vision. pp. 397–406 (2021)
8. Chefer, H., Gur, S., Wolf, L.: Transformer interpretability beyond attention visualization. In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. pp. 782–791 (2021)
9. Chen, C., Isa, N.A.M., Liu, X.: A review of convolutional neural network based methods for medical image classification. Computers in Biology and Medicine 185, 109507 (2025)
10. Djoumessi, K., Berens, P.: Soft-cam: Making black box models self-explainable for high-stakes decisions. arXiv preprint arXiv:2505.17748 (2025)
11. Dosovitskiy, A., Beyer, L., Kolesnikov, A., Weissenborn, D., Zhai, X., Unterthiner, T., Dehghani, M., Minderer, M., Heigold, G., Gelly, S., Uszkoreit, J., Houlsby, N.: An image is worth 16x16 words: Transformers for image recognition at scale. In: 9th International Conference on Learning Representations, ICLR (2021)
12. Dugas, E., Jared, J., Cukierski, W.: Diabetic retinopathy detection (2015), https://kaggle.com/competitions/diabetic-retinopathy-detection
13. Group, A.R.E.D.S.R.: The age-related eye disease study (areds): Design implications areds report no. 1. Controlled clinical trials 20(6), 573–600 (1999)
14. He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: Proceedings of the IEEE conference on computer vision and pattern recognition. pp. 770–778 (2016)
15. Ilyas, Z., Saleem, A., Suter, D., Schousboe, J.T., Leslie, W.D., Lewis, J.R., Gilani, S.Z.: A hybrid cnn-transformer feature pyramid network for granular abdominal aortic calcification detection from dxa images. In: International Conference on Medical Image Computing and Computer-Assisted Intervention. pp. 14–25. Springer (2024)
16. Kashefi, R., Barekatain, L., Sabokrou, M., Aghaeipoor, F.: Explainability of vision transformers: A comprehensive review and new perspectives. arXiv preprint arXiv:2311.06786 (2023)
17. Kerol, D., Ilanchezian, I., Kühlewein, L., Faber, H., Baumgartner, C.F., Bah, B., Berens, P., Koch, L.M.: Sparse activations for interpretable disease grading. In: Medical Imaging with Deep Learning (2023)
18. Kim, J.W., Khan, A.U., Banerjee, I.: Systematic review of hybrid vision transformer architectures for radiological image analysis. Journal of Imaging Informatics in Medicine pp. 1–15 (2025)
19. Liu, Z., Lin, Y., Cao, Y., Hu, H., Wei, Y., Zhang, Z., Lin, S., Guo, B.: Swin transformer: Hierarchical vision transformer using shifted windows. In: Proceedings of the IEEE/CVF international conference on computer vision. pp. 10012–10022 (2021)
20. Maurício, J., Domingues, I., Bernardino, J.: Comparing vision transformers and convolutional neural networks for image classification: A literature review. Applied Sciences 13(9), 5521 (2023)
21. Nguyen, H.C., Lee, H., Kim, J.: Inspecting explainability of transformer models with additional statistical information. arXiv preprint arXiv:2311.11378 (2023)
22. Porwal, P., Pachade, S., Kamble, R., Kokare, M., Deshmukh, G., Sahasrabuddhe, V., Meriaudeau, F.: Indian diabetic retinopathy image dataset (idrid): a database for diabetic retinopathy screening research. Data 3(3), 25 (2018)
23. Rudin, C.: Stop explaining black box machine learning models for high stakes decisions and use interpretable models instead. Nature machine intelligence 1(5), 206–215 (2019)
24. Selvaraju, R.R., Cogswell, M., Das, A., Vedantam, R., Parikh, D., Batra, D.: Gradcam: Visual explanations from deep networks via gradient-based localization. In: Proceedings of the IEEE international conference on computer vision. pp. 618–626 (2017)
25. Stassin, S., Corduant, V., Mahmoudi, S.A., Siebert, X.: Explainability and evaluation of vision transformers: An in-depth experimental study. Electronics 13(1), 175 (2023)
26. Takahashi, S., Sakaguchi, Y., Kouno, N., Takasawa, K., Ishizu, K., Akagi, Y., Aoyama, R., Teraya, N., Bolatkan, A., Shinkai, N., et al.: Comparison of vision transformers and convolutional neural networks in medical image analysis: A systematic review. Journal of Medical Systems 48(1), 1–22 (2024)
27. Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A.N., Kaiser, L.u., Polosukhin, I.: Attention is all you need. In: Guyon, I., Luxburg, U.V., Bengio, S., Wallach, H., Fergus, R., Vishwanathan, S., Garnett, R. (eds.) Advances in Neural Information Processing Systems. vol. 30 (2017)
28. Wilkinson, C.P., Ferris III, F.L., Klein, R.E., Lee, P.P., Agardh, C.D., Davis, M., Dills, D., Kampik, A., Pararajasegaram, R., Verdaguer, J.T., et al.: Proposed international clinical diabetic retinopathy and diabetic macular edema disease severity scales. Ophthalmology 110(9), 1677–1682 (2003)
29. Wu, H., Xiao, B., Codella, N., Liu, M., Dai, X., Yuan, L., Zhang, L.: Cvt: Introducing convolutions to vision transformers. In: Proceedings of the IEEE/CVF international conference on computer vision. pp. 22–31 (2021)
30. Yeh, C.K., Hsieh, C.Y., Suggala, A., Inouye, D.I., Ravikumar, P.K.: On the (in) fidelity and sensitivity of explanations. Advances in neural information processing systems 32 (2019)
31. Zamir, S.W., Arora, A., Khan, S., Hayat, M., Khan, F.S., Yang, M.H.: Restormer: Efficient transformer for high-resolution image restoration. In: Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. pp. 5728–5739 (2022)

版权说明:
本文由 youcans@xidian 对论文 A hybrid fully convolutional CNN-transformer model for inherently interpretable disease detection from retinal fundus images 进行摘编和翻译。该论文版权属于原文期刊和作者,本译文只供研究学习使用。

引用格式:
K. Djoumessi, S. O. Mensah, and P. Berens, “A hybrid fully convolutional CNN-transformer model for inherently interpretable disease detection from retinal fundus images,” in Proc. 8th Int. Workshop Interpretability Mach. Intell. Med. Image Comput. (IMIMIC) at MICCAI, 2025.

youcans@xidian 作品,转载必须标注原文链接:
【医学影像 AI】用于视网膜眼底图像的可解释 CNN-Transformer 混合模型
(https://youcans.blog.csdn.net/article/details/154409077)
Crated:2025-11

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐