使用 CC-359 数据集进行 MRI 重建(三)

本文探讨了两种MRI重建方法。方法一是通过直接训练网络实现从欠采样图像到全采样图像的映射,简化问题但未充分利用频域信息;方法二是结合欠采样图像及其频域数据进行重建,实现图像与时域信息融合。作者提供了修改后的fastMRI代码,并详细介绍了训练、测试与评价流程。代码组织清晰,支持Tensorboard和visdom进行训练监控。
摘要由CSDN通过智能技术生成

上一篇中,我们观察了 CC-359 数据集。

本篇,我们将利用 CC-359 数据集进行 MRI 的重建。关于 MRI 的重建,我将提供两种方法:

方法一:直接建立 零填充的欠采样图像 到 全采样图像 之间的映射,具体操作如下,对于 CC-359 数据集中的原始数据(target-k-space,256x256x2),经欠采样得到(under-K-space,256x256x2),对它们进行逆傅里叶变换,分别得到 全采样图像(target-img,256x256) 和 零填充的欠采样图像(under-img,256x256),然后直接训练从 under-img 映射到 target-img 的网络,网络的输入为 under-img(256x256),输出为 rec-img(256,256),目标为 target-img(256x256)。这种方法将 MRI的重建 退化成一个普通的图像问题,操作简单,但是在网络结构中并没有很好的用到 MRI 的频域信息。

方法二:网络的输入是 under-K-space(256x256x2) 与 under-img(256,256),输出为 rec-img(256,256),目标为 target-img(256x256)。这种方法在网络结构上会有图像频域信息与时域信息之间的融合。

本篇将介绍方法一,下一篇介绍方法二。

这里主要是将 fastMRI 的代码进行了一些改写,我感觉他们的代码比较方便扩展,可以让我们只关注于网络的结构,其它的部分都是通用的。

改写后的代码放在我的 github 上,代码组织结构上与 fastMRI的代码一致,主要内容如下:

checkpoints文件夹 是 “模型保存” 和 “tensorboard 记录训练过程”的地方。

data文件夹 存放了相关的数据处理函数。

evaluate_result文件夹 存放了重建图像的重建效果指标(PSNR 与 SSIM),由 utils/evaluate_from_i.py 生成。

mask文件夹 存放了一些欠采样所用的模板。

reconstructions_val文件夹 是用训练好的网络对 欠采样后的Val数据 进行重建时,生成的重建图像,由下图中的 run.py 生成。

utils文件夹 存放了一些辅助函数。

models文件夹 存放了网络模型以及训练网络的文件,如下:

其中 unet_model.py  是扩展自己的模型时,需重点改动的地方。

注:

1、本代码使用了  Tensorboard 与 visdom 两种方法记录训练时的情况,其中 Tensorboard 是默认使用的,visdom 可以通过输入参数 use-visdom 选择是否使用,visdom 对于使用远程服务器训练的情况比较方便(若使用 visdom,请先在服务器上开启 visdom 服务)。

2、在 第一幅图所在的目录下,使用如下命令,进行训练(train),测试Val(run),评价重建效果(evaluate):

(1)、train

python models/Unet/train.py --data-path /home/jinfeng/Desktop/Brain_workplace/Brain_datasets  --exp-dir checkpoints/unet  --use-visdom True

(2)、run

python models/Unet/run.py  --data-path '/home/jinfeng/Desktop/Brain_workplace/Brain_datasets' --checkpoint 'checkpoints/unet/best_model.pt'  --out-dir reconstructions_val/unet

(3)、evaluate

python utils/evaluate_from_i.py --target-path /home/jinfeng/Desktop/Brain_workplace/Brain_datasets/Val --predictions-path reconstructions_val/unet --name unet  --i 0

当在训练过程中按下 Ctrl+c 中断训练后,可用如下命令恢复训练:

python models/Unet/train.py --data-path /home/jinfeng/Desktop/Brain_workplace/Brain_datasets  --use-visdom True  --resume  --checkpoint checkpoints/unet/model.pt

3、 使用 Val 进行 零填充重建 ,用如下命令:

python models/zero_filled/run_zero_filled.py --out-path reconstructions_val/zero_filled

 

下图是在训练过程中,visdom 所显示的图像:

 

 

 

 

 

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值