【深度学习】- 作业4: 脑部MRI(核磁共振)图像分别

news2025/1/16 16:52:54

课程链接: 清华大学驭风计划

代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com)


驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算机语言(刘知远教授) 以及数据结构与算法(邓俊辉教授)。本人是综合成绩第一名,除了数据结构与算法其他单科均为第一名。`代码和报告均为本人自己实现,由于篇幅限制,只展示任务布置以及关键代码,如果需要报告或者代码可以私聊博主



机器学习部分授课老师为胡晓林教授,主要主要通过介绍回归模型,多层感知机,CNN,优化器,图像分割,RNN & LSTM 以及生成式模型入门深度学习


有任何疑问或者问题,也欢迎私信博主,大家可以相互讨论交流哟~~



任务介绍

1.简介

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

image.png

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

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


2.参考程序

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

ltrain.ipynb用来完成模型训练

linference.ipynb用来对训练后的模型进行推理

lunet.py定义了U-Net网络结构,参考资料[5]

lloss.py定义了损失函数(Dice Loss),参考资料[6]

ldataset.py用来定义和读取数据集

ltransform.py用来预处理数据

lutils.py定义了若干辅助函数

llogger.py用来记录训练过程(使用TensorBoard [7] 功能),包括损失函数曲线等

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

lnumpy==1.23.5

ltensorflow== 2.2.0

lscikit-learn==0.20.3

lscikit-image==0.14.2

limageio==2.5.0

lmedpy==0.4.0 (需自行安装)

lPillow==6.0.0

lscipy== 1.4.1 (注意版本)

lpandas==0.24.2

ltqdm

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


3.要求和建议

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


4.注意事项

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

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

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





报告

核心代码

修改ResNet 50

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WrvVeDmv-1684511457722)(image/hw4/1684511386674.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qVQppnmo-1684511457723)(image/hw4/1684511393041.png)]



结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y8rTBS7W-1684511457723)(image/hw4/1684511421133.png)]
在这里插入图片描述


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

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

相关文章

【数据结构与算法】- 周测四

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

三、尚医通医院管理实现

文章目录 三、医院管理实现1、医院列表1.1 医院列表api接口1.1.1 添加service分页接口与实现1.1.2 添加controller方法 1.2 service-cmn模块提供接口1.2.1添加service接口与实现1.2.2添加controller方法 1.3封装Feign服务调用1.3.1搭建service-client父模块1.3.2 搭建service-c…

微生物实验之分菌(细菌)

文章目录 1. 采集实验样本2. 对实验样本进行处理1. 土壤样本的处理2. 植物内生菌样本的处理 3. 接种4. 分离纯化5. 测16s6. 测全基因组7. 保藏菌株 分离细菌菌株 (分菌) 是微生物学实验中,很重要的一环,对于微生物资源来说尤为重要。分菌主要包含以下几个…

人工智能CNN 卷积神经网络结构(tensorflow代码实现)

MNIST是一个简单的视觉计算数据集,它是像下面这样手写的数字图片: MNIST 通过上期的分享,我们了解了手写数字识别的基本原理以及CNN卷积神经网络的基本原理,本期我们结合MNIST数据集,来用代码来实现CNN。(手写数字识别是TensorFlow人工智能最基础的案例,这个跟学习编程…

删除表单(form)元素中的某一个数据项操作实现

问题 对于表单(form)元素,只支持POST请求。若是需要删除表单(form)元素中的某一个数据项,最为严谨的方式是采用POST请求, 对于表单元素,如何转换为DELETE请求 详细问题 对于表单元…

AC规则-2

基于RAM的远程接口 安全元件的访问规则可以通过远程应用程序管理 (RAM) 更新命令进行管理。 因此,ARA-M 和 ARA-C 各自提供一个远程接口,允许在 ARA 中存储或删除访问规则。 访问控制数据的任何远程管理都应仅通过 [GP 卡规范] 定义的安全通道协议来完成…

『树莓派云台机器人』01. 使用手机控制机器人

目录 1. 检查是否已经开机,连接机器人wifi2. 安装树莓派控制app应用,直连模式连接机器人3. 机器人功能实现总结 欢迎关注 『树莓派云台机器人』 博客,持续更新中 欢迎关注 『树莓派云台机器人』 博客,持续更新中 动手组装等步骤请…

chatgpt赋能Python-python_erode

Python Erode:用Python实现图像腐蚀 图像处理是人工智能领域的重要分支,Python是一种广泛应用于机器学习和深度学习的编程语言,也是图像处理领域的主要开发语言之一。在Python中,我们可以使用许多不同的库和工具来处理图像。其中…

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-9

深入理解Java虚拟机:JVM高级特性与最佳实践-总结-9 虚拟机类加载机制类加载的过程准备解析字段解析 方法解析接口方法解析 虚拟机类加载机制 类加载的过程 准备 准备阶段是正式为类中定义的变量(即静态变量,被static修饰的变量&#xff09…

检测字符串中所有的字母是否都为大写(字符中的数字、符号和空格不起作用)isupper()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 检测字符串中所有的字母是否都为大写 (字符中的数字、符号和空格不起作用) isupper() 选择题 以下程序的运行结果是? print("【执行】print(PYTHON.isupper())&qu…

chatgpt赋能Python-python_endif

Python Endif: 程序员必备的关键字 如果你是一位有经验的Python程序员,那么你一定非常熟悉Python中的一个关键字:Endif。本文将深入介绍Endif,帮助程序员更好地理解其作用和用法。 什么是Endif Endif是Python中的一个关键字,它…

【自然语言处理】- 作业5: 智能问答在法律智能领域的应用

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

Java如何连接数据库

Java连接MySQL数据库的方法:首先下载解压得到jar库文件,并在对应的项目中导入该库文件;然后添加JDBC;接着在Mysql数据库中进行建表,和添加数据的操作;最后连接数据库并读取数据即可。 Java 连接 MySQL数据库需要驱动包,解压后得到…

springboot国际化多语言配置

文章目录 概要springboot项目为例1 新建路径/文件2 新建两个配置类 搞一个控制器测试总结 概要 项目中有时候会用到多语言的业务场景; 一般来说都是通过后端实现的,将先有内容替换为适用的环境语言; springboot项目为例 1 新建路径/文件 新建路径static/i18n新建文件: mess…

【数据结构与算法】- 周测二

课程链接: 清华大学驭风计划 代码仓库:Victor94-king/MachineLearning: MachineLearning basic introduction (github.com) 驭风计划是由清华大学老师教授的,其分为四门课,包括: 机器学习(张敏教授) , 深度学习(胡晓林教授), 计算…

简单易懂:Ajax入门实例详解(登录功能)

前言:不积跬步无以至千里,不积小流无以成江河! 废话不多,以最简练的语言和实例初步了解Ajax! 一、Ajax简介 Ajax(Asynchronous JavaScript and XML)是一种基于Web技术的编程实现方式&#xff0c…

【CCIG技术论坛回顾】展望AI时代,把握文档图像智能分析与处理的未来

展望AI时代,把握文档图像智能分析与处理的未来 前言 CCIG技术论坛 内容回顾及探讨一、人工智能大模型时代的文档识别与理解1.1 文档分析与识别 介绍1.2 文档识别历史回顾1.3 文档的种类与研究问题1.4 文档识别与理解研究现状1.5 大模型带来的挑战与机遇1.5.1 ChatGP…

chrome和Chromedriver版本不一致的问题,然后就要下载对应版本的chromedriver。

很多人会遇到chrome和Chromedriver版本不一致的问题,然后就要下载对应版本的chromedriver。 下面说一下我遇到的问题和解决过程: 1、问题: 我是用pythonselenium 我的chrome版本是65.0.3325.181,用selenium中的webdriver时&am…

案例16:Java音乐网站系统设计与实现开题报告

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 java项目精品实战案例《100套》 Jav…

MySQL-多表查询(中)

♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️树高千尺,落叶归根人生不易&…