前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【论文复现】猴痘图像分类

【论文复现】猴痘图像分类

作者头像
Eternity._
发布2024-12-24 09:01:59
发布2024-12-24 09:01:59
740
举报
文章被收录于专栏:登神长阶登神长阶

概述:

本项目通过设计一个基于深度学习的图像分类模型,旨在帮助医学界精准识别猴痘(Monkeypox)病例。我们采用了DenseNet架构,并结合SE(Squeeze-and-Excitation)通道注意力机制,以提高模型在识别猴痘皮肤病变方面的准确性和鲁棒性。这个模型的训练与应用,不仅能提升诊断效率,还能为公共卫生防控提供智能支持。

  1. 数据加载与预处理:首先,我们将猴痘病例的图像数据集加载并进行预处理,包括调整大小、标准化等。通过这些步骤,保证了模型输入数据的一致性,从而提升了分类准确度。
  2. 模型设计与创新:该模型的核心是DenseNet架构,它通过密集连接层实现特征共享,使得模型能够处理复杂的图像数据。而通道注意力机制(SE块)则帮助模型“聚焦”到图像中最具判别力的部分,提高了识别皮肤病变区域的准确度。
  3. 高效训练与优化:我们采用了Adam优化器,并结合Cosine Annealing学习率调度策略,以确保模型高效收敛。在训练过程中,模型不断优化,以期在测试集上达到最好的表现,帮助医生快速诊断和分类猴痘病例。

实际应用与智能预测:经过训练的模型能够实时预测单张图像的分类结果。对于医务人员来说,借助这种智能工具,他们可以更早发现猴痘病例,提前采取防控措施,减少疫情蔓延的风险。

这一技术不仅能在猴痘等传染性疾病的早期诊断中发挥重要作用,还能够应用于其他皮肤病或传染病的图像识别任务。通过将深度学习与医学影像分析相结合,模型为疾病的快速筛查、疫情监控和公共卫生防控提供了强有力的技术支持。

本文所涉及的所有资源的获取方式:这里

演示效果

模型介绍

SE-Net 是 ImageNet 2017(ImageNet 收官赛)的冠军模型,是由WMW团队发布。具有复杂度低,参数少和计算量小的优点。且SENet 思路很简单,很容易扩展到已有网络结构如 Inception 和 ResNet 中。 已经有很多工作在空间维度上来提升网络的性能,如 Inception 等,而 SENet 将关注点放在了特征通道之间的关系上。其具体策略为:通过学习的方式来自动获取到每个特征通道的重要程度,然后依照这个重要程度去提升有用的特征并抑制对当前任务用处不大的特征,这又叫做“特征重标定”策略。具体的 SE 模块如下图所示:

给定一个输入 x,其特征通道数为 c1通过一系列卷积等一般变换 Ftr 后得到一个特征通道数为 c2的特征。与传统的卷积神经网络不同,我们需要通过下面三个操作来重标定前面得到的特征。

首先是 Squeeze 操作,我们顺着空间维度来进行特征压缩,将一个通道中整个空间特征编码为一个全局特征,这个实数某种程度上具有全局的感受野,并且输出的通道数和输入的特征通道数相等,例如将形状为 (1, 32, 32, 10) 的 feature map 压缩成 (1, 1, 1, 10)。此操作通常采用采用 global average pooling (全局平均池化)来实现。

得到了全局描述特征后,我们进行 Excitation 操作来抓取特征通道之间的关系,它是一个类似于循环神经网络中门的机制:

这里采用包含两个全连接层的 bottleneck 结构,即中间小两头大的结构:其中第一个全连接层起到降维的作用,并通过 ReLU 激活,第二个全连接层用来将其恢复至原始的维度。进行 Excitation 操作的最终目的是为每个特征通道生成权重,即学习到的各个通道的激活值(sigmoid 激活,值在 0~1 之间)。

最后是一个 Scale 的操作,我们将 Excitation 的输出的权重看做是经过特征选择后的每个特征通道的重要性,然后通过乘法逐通道加权到先前的特征上,完成在通道维度上的对原始特征的重标定,从而使得模型对各个通道的特征更有辨别能力,这类似于attention机制。

SE 模块应用分析

SE模块的灵活性在于它可以直接应用现有的网络结构中。以 Inception 和 ResNet 为例,我们只需要在 Inception 模块或 Residual 模块后添加一个 SE 模块即可。具体如下图所示:

上图分别是将 SE 模块嵌入到 Inception 结构与 ResNet 中的示例,方框旁边的维度信息代表该层的输出,c表示 Excitation 操作中的降维系数。

模型效果对比


SE 模块很容易嵌入到其它网络中,为了验证 SE 模块的作用,在其它流行网络如 ResNet 和 Inception 中引入 SE 模块,测试其在 ImageNet 上的效果,如下表所示:

首先看一下网络的深度对 SE 的影响。上表分别展示了 ResNet-50、ResNet-101、ResNet-152 和嵌入 SE 模型的结果。第一栏 Original 是原作者实现的结果,为了进行公平的比较,重新进行了实验得到 Our re-implementation 的结果。最后一栏 SE-module 是指嵌入了 SE 模块的结果,它的训练参数和第二栏 Our re-implementation 一致。括号中的红色数值是指相对于 Our re-implementation 的精度提升的幅值。

从上表可以看出,SE-ResNets 在各种深度上都远远超过了其对应的没有SE的结构版本的精度,这说明无论网络的深度如何,SE模块都能够给网络带来性能上的增益。值得一提的是,SE-ResNet-50 可以达到和ResNet-101 一样的精度;更甚,SE-ResNet-101 远远地超过了更深的ResNet-152。

上图展示了ResNet-50 和 ResNet-152 以及它们对应的嵌入SE模块的网络在ImageNet上的训练过程,可以明显地看出加入了SE模块的网络收敛到更低的错误率上。

实验结果

在本次实验中,我们使用了基于DenseNet和SE通道注意力机制的深度学习模型进行猴痘图像分类任务。模型的设计和训练旨在提升猴痘图像的分类准确性,为医疗图像分析提供更高效的自动化诊断工具。以下是模型在训练集和测试集上的表现结果,以及不同阶段的性能评估。

1. 训练过程中的准确率与损失

训练过程中,我们对每个epoch的训练准确率和训练损失进行了记录。随着训练的进行,模型的训练准确率逐渐上升,而训练损失则逐渐下降,表明模型在逐步学习到有效的特征表示。

  • 训练准确率:从第一个epoch到最后一个epoch,训练准确率稳定增长,表明模型逐步学习到了有用的特征,并有效适应了训练数据。
  • 训练损失:训练损失随着epochs的增加而逐渐降低,显示了模型在优化过程中不断减少预测误差。

2. 测试集表现

在每个训练周期结束时,我们通过在测试集上的评估来监控模型的泛化能力。测试集结果用于验证模型是否能够有效地从未见过的数据中进行准确的预测。

  • 测试准确率:测试准确率随着训练过程的进行持续提升,并在训练后期趋于稳定。在最后几个epoch,模型的准确率达到了较高水平,表明它能够准确分类猴痘的皮肤病变图像。
  • 测试损失:测试损失呈现出逐步下降的趋势,表明模型不仅在训练数据上表现良好,也能够在测试数据上取得优秀的性能。

3. 学习率变化

为了确保训练的有效性,我们使用了Cosine Annealing学习率调度策略。在训练过程中,学习率逐渐从较高值下降,避免了过拟合问题,并有助于模型在训练后期更稳定地收敛。

4. 模型的最佳表现

通过对训练和测试结果的比较,我们能够确定模型的最佳性能时刻,即测试集上的最佳准确率。这个最佳模型被保存下来,并在后续进行预测任务。

  • 最佳测试准确率:经过多个epoch的训练,最终在测试集上的准确率达到了66.9%。
  • 最佳模型保存:在取得最佳测试准确率的epoch后,我们保存了模型的权重,确保其在未来的实际应用中能够发挥最佳效果。

5. 训练与测试的损失和准确率曲线

通过绘制训练和测试集的准确率、损失曲线,我们能够直观地看到模型的学习进度。以下是训练过程中的损失和准确率变化趋势:

  • 训练准确率与测试准确率曲线:随着训练的进行,训练和测试准确率逐渐接近,表明模型的泛化能力较好,没有出现过拟合现象。
  • 训练损失与测试损失曲线:训练损失和测试损失都在逐渐降低,表明模型逐步学会了如何减少预测误差,适应新的数据。

6. 单图像预测示例

在训练完成后,我们也进行了一些单图像的预测,验证模型在实际应用中的准确性。模型能够成功地对单张猴痘图像进行分类,准确识别出猴痘病变的特征,给出对应的类别标签。

7. 模型在实际应用中的意义

通过本次实验的结果,我们可以看到,基于DenseNet和SE通道注意力机制的模型不仅在训练过程中能够稳定优化,且在测试集上的表现也非常优秀。这使得该模型具备了较强的实际应用价值,能够在猴痘等皮肤病的早期筛查中提供辅助诊断支持,帮助医生更早地发现潜在病例,及时采取措施进行防控。

总的来说,模型在训练和测试中的优异表现验证了其在猴痘图像分类中的有效性,为医疗图像分析领域提供了一个高效且可靠的解决方案。

部署方式

计算资源:T4 GPU Cuda版本:11.3.1 语言环境:Python 3.7 开发工具:Model Whale 深度学习环境:PyTorch 1.10.2 Tensorflow2.8.0

使用步骤

  1. 下载数据集
  2. 安装必要的库
  3. 运行代码
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述:
  • 演示效果
  • 模型介绍
  • SE 模块应用分析
  • 模型效果对比
  • 实验结果
    • 1. 训练过程中的准确率与损失
    • 2. 测试集表现
    • 3. 学习率变化
    • 4. 模型的最佳表现
    • 5. 训练与测试的损失和准确率曲线
    • 6. 单图像预测示例
    • 7. 模型在实际应用中的意义
  • 部署方式
  • 使用步骤
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档