Deeplabv3+Resnet101在脑肿瘤图像分割中的应用

版权申诉
5星 · 超过95%的资源 2 下载量 116 浏览量 更新于2024-11-22 收藏 369.01MB ZIP 举报
资源摘要信息:"本项目为基于深度学习的多尺度训练和多类别分割实战项目,具体是针对BraTS3d脑肿瘤图像切分的2D图片进行分割,将图像划分为4个类别。项目使用了Deeplabv3+Resnet101作为模型的骨架,backbone更换为resnet101以提高分割精度和速度。数据集使用的是大规模的BRATS图像分割数据集。 项目的train脚本可以自动进行训练,并且代码将数据随机缩放为设定尺寸的0.5-1.5倍之间,以实现多尺度训练。此外,项目的utils中的compute_gray函数会将mask灰度值保存在txt文本中,并且自动为UNET网络定义输出的classes,从而实现多类别分割。 项目的预处理函数已经全部重新实现,并且可以在transforms.py文件中查看。网络的训练只进行了10个epochs,但miou已经达到了0.51左右。学习率采用了cos衰减策略,训练集和测试集的损失和iou曲线可以在run_results文件内查看,图像由matplotlib库绘制。除此之外,还保存了训练日志,最佳权重等,在训练日志中可以看到每个类别的iou、recall、precision以及全局像素点的准确率等详细信息。 预测脚本可以自动对所有图片进行推理,实现快速准确的图像分割。代码中已经做了详细注释,用户可以自行下载查看。如果想要训练自己的数据,可以参考README文件,操作简单方便。 该文件还包含一个名为deeplab的压缩包子文件,可能包含与Deeplabv3+Resnet101相关的模型文件、训练脚本、预处理代码、结果展示脚本等重要资源。" 详细知识点: 1. 深度学习中Deeplabv3+Resnet101的使用: Deeplabv3是深度学习中一种流行的语义分割算法,结合了空洞卷积(Atrous Convolution)来控制有效感受野,以获取更丰富的上下文信息,从而提高分割效果。而Resnet101(残差网络)是一种具有101层的深度卷积神经网络,具有更深的网络结构,能提取更复杂的特征,是Deeplabv3的backbone网络的一种改进。 2. 多尺度训练技术: 在训练深度学习模型时,将输入图像随机缩放到不同的尺寸(这里设定为0.5-1.5倍之间),从而使模型能够学习到不同尺度的信息,提高模型对尺度变化的鲁棒性。 3. 多类别分割: 分类任务的一种扩展,区别于二分类或多分类问题,多类别分割需要将图像中的每个像素点标记成多个类别之一。在本项目中,将脑肿瘤图像中的像素分为4个类别。 4. BRATS图像分割数据集: BRATS(Brain Tumor Segmentation Challenge)是一个针对脑肿瘤分割的国际比赛,所使用的数据集包括了各种类型的脑肿瘤的MRI扫描图像,广泛应用于医疗图像分割研究。 5. UNET网络: UNET是一种流行的用于图像分割的神经网络架构,特别适用于生物医学图像分割任务。它由一个收缩路径(用于捕获上下文)和一个对称的扩展路径(用于精确定位)组成,从而使得网络能够在像素层面上进行有效的分割。 6. 预处理函数实现: 在深度学习中,原始图像数据通常需要经过一系列的预处理步骤,如归一化、中心化、旋转、缩放等,以便被网络正确学习。本项目将这些预处理步骤重新实现,并打包在transforms.py文件中。 7. 学习率调度策略: 在训练过程中,学习率是模型学习能力的直接影响因素。cos衰减是一种学习率衰减策略,通过模拟余弦函数衰减学习率,逐渐减小学习步长,帮助模型更稳定地收敛。 8. IOU(Intersection over Union)和MIoU(Mean Intersection over Union): IOU是衡量分割准确性的标准指标之一,表示预测区域与真实标签区域的交集与并集的比值。MIoU则是对所有类别计算平均IOU,用于整体评估模型的分割性能。 9. 可视化工具matplotlib库: matplotlib是一个用于创建静态、动画和交互式可视化的Python库,本项目使用它来绘制训练集和测试集的损失和IOU曲线。 10. 训练日志与权重保存: 训练日志记录了训练过程中的各项指标,如每个类别的IOU、召回率(recall)、精确率(precision)等,用于评估模型表现。同时,将训练过程中的最佳权重保存下来,以便于后续的模型评估和推断使用。 11. 训练脚本与预测脚本: 项目中包含了train和predict两个脚本,分别用于执行模型的训练和预测任务。预测脚本能够对新的图像数据进行快速准确的分割。 12. README文件的重要性: README文件是项目中不可或缺的部分,它详细描述了如何运行项目,包括依赖安装、数据集准备、训练与预测的具体操作步骤,甚至包括可能遇到的问题与解决方案。