【深度学习】实验4布置:脑部 MRI 图像分割

news2024/11/18 5:36:19

DL_class

学堂在线《深度学习》实验课代码+报告(其中实验1和实验6有配套PPT),授课老师为胡晓林老师。课程链接:https://www.xuetangx.com/training/DP080910033751/619488?channel=i.area.manual_search。

持续更新中。
所有代码为作者所写,并非最后的“标准答案”,只有实验6被扣了1分,其余皆是满分。仓库链接:https://github.com/W-caner/DL_classs。 此外,欢迎关注我的CSDN:https://blog.csdn.net/Can__er?type=blog。
部分数据集由于过大无法上传,我会在博客中给出下载链接。如果对代码有疑问,有更好的思路等,也非常欢迎在评论区与我交流~

实验4:脑部 MRI 图像分割

1 任务简介

​ 本次案例将使用深度学习技术来完成脑部MRI(磁共振)图像分割任务,即对于处理好的一张MRI图像,通过神经网络分割出其中病变的区域。本次案例使用的数据集来自Kaggle[1],共包含110位病人的MRI数据,每位病人对应多张通道数为3的.tif格式图像,其对应的分割结果为单通道黑白图像(白色为病变区域),示例如下。

image.png
第一行: MRI图像;第二行: 对应的分割标签。

更详细的背景介绍请参考文献[2]。

2 参考程序

本次案例提供了完整、可供运行的参考程序,来源于Kaggle[3]和GitHub[4],建议在参考程序的基础上进行修改来完成本案例。各个程序简介如下:

  • train.ipynb用来完成模型训练
  • inference.ipynb用来对训练后的模型进行推理
  • unet.py定义了U-Net网络结构,参考资料[5]
  • loss.py定义了损失函数(Dice Loss),参考资料[6]
  • dataset.py用来定义和读取数据集
  • transform.py用来预处理数据
  • utils.py定义了若干辅助函数
  • logger.py用来记录训练过程(使用TensorBoard[7]功能),包括损失函数曲线等

参考程序对运行环境的要求如下,请自行调整环境至适配,否则无法运行:

  • numpy==1.16.2
  • tensorflow==2.0.0 (注意版本)
  • scikit-learn==0.20.3
  • scikit-image==0.14.2
  • imageio==2.5.0
  • medpy==0.4.0 (需自行安装)
  • Pillow==6.0.0
  • scipy==1.2.1 (1.3+版本无法运行,需要先降级)
  • pandas==0.24.2

​ 其它细节以及示例运行结果可直接参考Kaggle[3]和GitHub[4]。

3 要求和建议

在参考程序的基础上,使用深度学习技术,尝试提升该模型在脑部MRI图像上的分割效果,以程序最终输出的validation mean DSC值作为评价标准(参考程序约为90%)。可从网络结构(替换U-Net)、损失函数(替换Dice Loss)、训练过程(如优化器)等角度尝试改进,还可参考通用图像分割的一些技巧[8]。

4 注意事项

  • 提交所有代码和一份案例报告;

  • 案例报告应详细介绍所有改进尝试及对应的结果(包括DSC值和若干分割结果示例),无论是否成功提升模型效果,并对结果作出分析;

  • 禁止任何形式的抄袭,借鉴开源程序务必加以说明。

5 参考资料

[1] Brain MRI数据集: https://www.kaggle.com/mateuszbuda/lgg-mri-segmentation

[2] Buda et al. Association of genomic subtypes of lower-grade gliomas with shape features automatically extracted by a deep learning algorithm. Computers in Biology and Medicine 2019.

[3] 示例程序: https://www.kaggle.com/mateuszbuda/brain-segmentation-pytorch

[4] 示例程序: https://github.com/mateuszbuda/brain-segmentation-pytorch

[5] Ronneberger et al. U-Net: Convolutiona- Networks for Biomedica- Image Segmentation. MICCAI 2015.

[6] Dice Loss: https://zhuanlan.zhihu.com/p/86704421

[7] TensorBoard参考资料:https://www.tensorflow.org/tensorboard

[8] Minaee et al. Image Segmentation Using Deep Learning: A Survey. arXiv 2020.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11580.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】基础IO —— 缓冲区深度剖析

🌈欢迎来到Linux专栏~~基础IO (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句鸡汤&a…

(免费分享)基于springboot论坛bbs系统

源码获取:关注文末gongzhonghao,输入010领取下载链接 开发工具IDEA ,数据库mysql5.7 技术:springbootjpashiroredislayui 前台截图: 后台截图: package com.qxczh.admin.service.impl;import com.qxczh.admin.servic…

关于城市旅游的HTML网页设计——中国旅游HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计

👨‍🎓静态网站的编写主要是用 HTML DⅣV CSSJS等来完成页面的排版设计👩‍🎓,一般的网页作业需要融入以下知识点:div布局、浮动定位、高级css、表格、表单及验证、js轮播图、音频视频Fash的应用、uli、下拉…

人工智能--k近邻算法2-归一化、交叉验证、网格搜索、数据分割方法总结、两案例实现

人工智能-第三阶段-k近邻算法1-算法理论、kd树、鸢尾花数据 人工智能–k近邻算法2-归一化、交叉验证、网格搜索、数据分割方法总结、两案例实现 1.7 特征工程-特征值预处理 1.7.1 介绍 通过一些转换函数奖特征数据转换为更加适合算法模型的特征数据过程 为什么要进行归一化/…

最新最全面的Spring详解(二)——classpath扫描和组件管理

前言 本文为 【Spring】classpath扫描和组件管理 相关知识,下边将对Component 和及其派生出的其他注解,自动检测类和注册beanDifination,组件命名,为自动检测组件提供scope,使用过滤器自定义扫描,在组件中定…

【Java开发】 Spring 03:云服务器 Docker 环境下安装 MongoDB 并连接 Spring 项目实现简单 CRUD:

接下来介绍一下 NoSQL ,相比于 Mysql 等关系型的数据库,NoSQL (文档型数据库)由于存储的数据之间无关系,因此具备大数据量,高性能等特点,用于解决大规模数据集合多重数据种类带来的挑战&#xf…

Aspose.OMR for .NET 22.11.X Crack

Aspose.OMR for .NET 是一个可靠且通用的编程 API,用于设计和自动识别手填答题卡、调查、测试、选票、SAT 考试表格、保险索赔以及受访者通过随机抽取答案来回答问题的类似文件在圆形或正方形中标记。从成百上千个表单中手动读取和汇总结果的漫长且容易出错的过程归…

深入学习函数(2)

目录 一、函数的嵌套调用和链式访问 1、嵌套调用 2、链式访问 二、函数的声明和定义 1、函数的声明 2、函数的定义 声明和定义的拓展 拆成三个文件的好处 一、函数的嵌套调用和链式访问 当代码写的越来越多时,就会发现,其实一个程序都…

Day802.JVM热点问题 -Java 性能调优实战

JVM部分热点问题 Hi,我是阿昌,今天学习JVM部分热点问题的内容。 1、字符串常量不是在java8中已经被放入到堆中了吗,应该不在方法区中了,咋一些图中还在方法区中? JVM 的内存模型只是一个规范,方法区也是…

Fiddler基础使用

目录预备知识关于web的一些基础知识实验目的实验环境实验步骤一实验步骤二实验步骤三预备知识 关于web的一些基础知识 要分析Fiddler抓取的数据包,我们首先要熟悉HTTP协议。HTTP即超文本传输协议,是一个基于请求/响应模式的、无状态的、应用层的协议&a…

【Python开发】Flask项目的组织架构

Flask项目的组织架构在大型Flask项目中,主要有三种常见的项目组织架构:功能式架构(也就是 Bluelog 程序使用的架构)、分区式架构和混合式架构。我们将以一个示例程序 myapp 作为示例来介绍这三种架构的特点和区别,这个…

教你用HTML+CSS实现百叶窗动画效果

推荐学习专栏: 【JavaWeb】Web前端JavaWeb学习专栏 文章目录前言1、百叶窗效果2、原理讲解3、制作百叶窗4、资源下载5、完整代码总结前言 我们浏览网页的时候总能看见一些炫酷的特效,比如百叶窗效果,本文我们就用HTMLCSS制作一个百叶窗小项…

副业该怎么选择,适合新手的四个副业项目,零基础也可操作的兼职

副业有可能有时挣得并不多,但它是一个改变未来的好机会。假如玩的开了,盈利并不比你工资少。95%的人自主创业也是从第二职业做起,做着干着就全职的了。 四个全员第二职业,新手如何做到单月9000,深入分析看下文&#xf…

license授权服务器

项目介绍 为软件提供授权制的使用方式,license申请端可以为产品生成license授权文件,集成了flowable工作流,经审批后生成license文件。 然后导入到服务端。客户端与服务端netty通信。实时判断license是否合法,从而使软件得到安全…

辣椒辣素修饰卵清蛋白 Capsaicin-ova,苍耳亭偶联鸡卵白蛋白 Xanthatin-ovalbumin

产品名称:辣椒辣素修饰卵清蛋白 英文名称: Capsaicin-ova 用途:科研 状态:固体/粉末/溶液 产品规格:1g/5g/10g 保存:冷藏 储藏条件:-20℃ 储存时间:1年 辣椒碱又称辣椒辣素&#xf…

抓包工具总结对照【fiddler F12 Charles wireshark】

本文主要对比fiddler Charles wireshark,纯手敲制作,动动小手点赞 文章目录抓包fidderF12开发者工具wiresharkCharles下载安装使用web抓包APP 抓包IOSAndroidCharles过滤弱网测试篡改数据修改请求数据重复发送请求Compose编辑接口服务器压力测试本地映射…

前端:Node.js遇到的错误整理

node.js当前错误汇总:错误1npm WARN config global --global, --local are deprecated. Use --locationglobal instead.原因:初步判断是node.js版本问题解决方法:错误2npm WARN logfile could not create logs-dir: Error: EPERM: operation …

MySQL主从复制最全教程(CentOS7 yum)

一、MySQL主从复制介绍 (1)MySQL数据库默认是支持主从复制的,不需要借助于其他的技术,我们只需要在数据库中简单的配置即可。 (2)MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自…

在Docker里安装FastDFS分布式文件系统详细步骤

安装需要的软件包 yum install -y yum-utils 设置yum源 yum-config-manager \--add-repo \https://download.docker.com/linux/centos/docker-ce.repo 安装docker yum install -y docker-ce 查看docker版本验证安装是否成功 docker -v 启动docker systemctl start d…

C++ 实用指南

C 发展得非常快!例如,C 标准的页数从 C98/03 的 879 页增加到了 C20 的 1834 页,多了近 1000 页!更重要的是,C 每次修订后,我们都会获得几十个新特性。你需要学习所有这些东西才能写出好代码吗?…