如何在医学图像分类应用中实现Grad-CAM并输出类激活映射
Grad-CAM集成医学图像分类应用方案解答
方案可行性说明
Grad-CAM既可以集成到模型中同步返回class activation map(类激活图),也可以在应用侧独立实现,两种实现路径均可用,你可以根据部署需求选择:
- 模型侧集成方案:适合端侧部署、低延时需求场景。你需要修改模型定义逻辑,在输出分类结果的同时,保留最后一层卷积层的输出张量,推理阶段同步计算目标类别梯度、加权生成类激活图作为模型的第二输出项。该方案只需一次推理即可同时拿到分类结果和激活图,调用逻辑简洁,但需要调整原有模型的训练/导出代码,框架封装的预训练模型改造成本稍高。
- 应用侧独立实现方案:灵活性更高,无需修改已训练完成的分类模型。你只需要在应用侧调用模型时,额外获取最后一层卷积层的输出特征、以及预测类别对应的得分,通过一次梯度反向传播计算即可生成类激活图。该方案不用改动原有模型,适配性强,推荐优先选择该方案快速验证效果。
示例效果实现步骤
要得到你需要的「原始医学图+激活热力图叠加」的展示效果,按以下步骤操作即可:
- 运行医学图像分类推理,得到预测疾病类别、置信度,同时记录模型最后一层卷积层的输出特征图、预测类别得分对应的梯度
- 对梯度做全局平均池化,得到每个特征通道的权重系数
- 将权重系数与对应特征通道相乘后求和,经过ReLU激活得到原始类激活图
- 将类激活图上采样到和输入医学图像相同的尺寸,像素值归一化到0~255范围后使用热力配色(如JET配色)渲染
- 将渲染后的热力图调整透明度后与原始医学图像叠加,即可得到目标展示效果

内容的提问来源于stack exchange,提问作者Kudzayi Victor King
相关产品推荐
相关产品推荐

