使用 CC 359 資料集進行 MRI 重建(三)

2021-10-13 10:16:30 字數 2758 閱讀 7411

本篇,我們將利用 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 所顯示的影象:

使用 CC 359 資料集進行 MRI 重建(二)

參考資料 這份資料的資料似乎和現在官網的資料格式不太一樣 在這篇部落格裡,我們將學會如何使用 cc 359 資料集中的資料。這裡我們針對 cc 359 中的 single coil 部分。首先我們需要明確是,這份資料集以 numpy 陣列形式儲存,其中的資料是影象的頻域資料。每個 npy 檔案的尺寸...

使用sklearn進行mnist資料集分類

深度之眼 西瓜書課後 import time import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import fetch openml from sklearn.linear model import l...

使用UIUC資料集進行汽車檢測

第二步驟 編寫 如下 import cv2 import numpy as np from os.path import join datapath home utryjc pictures trainimages def path cls,i return s s d.pgm datapath,c...