[0088] 本发明包含三个步骤:数据处理、模型训练、图像重建。
[0089] 1.数据处理
[0090] 数据处理包含两个步骤:数据采样、填零重建。
[0091] 1‑1.数据采样
[0092] 全采样k空间数据为kref(xk,yk)(如图1(a)所示),其中xk表示k空间频率编码(Frequency Encoding,FE)方向,yk表示相位编码(Phase Encoding,PE)方向。全采样k空间数据kref(xk,yk)由全采样参考图像Iref(x,y)(如图1(b)所示)经离散傅里叶变换(DFT)得到。
[0093] kref(xk,yk)=DFT(Iref(x,y)) (1)
[0094] 对于k空间数据的模拟欠采样,使用1维均匀欠采样模板mask(如图1(c)所示),在PE方向隔n行进行数据采集,在PE方向中心的4%行进行采集,在FE方向全采集。用欠采样模板和全采样k空间数据点乘表示采样过程。
[0095] ku(xk,yk)=mask*kref(xk,yk) (2)
[0096] 其中,ku(xk,yk)表示欠采样k空间数据(如图1(d)所示);*表示点乘;mask为全采样k空间数据相同大小的矩阵,采集的点用1表示,未采集的点用0表示。
[0097]
[0098] 1‑2.填零重建
[0099] 将得到的欠采样k空间数据进行离散傅里叶反变换,生成填零重建图像,即欠采样的图像Iu(x,y)(如图1(e)所示)。全采样参考图像Iref(x,y)和欠采样图像Iu(x,y)组成一对训练数据。
[0100] 2.网络训练
[0101] 网络训练包含两个步骤:构建网络、训练网络。
[0102] 2‑1.构建网络
[0103] 构建网络包含2个步骤:U型网络、递归残差模块。
[0104] 2‑1‑1.U型网络
[0105] U型网络(如图2所示)包含降采样和升采样两部分,采样包含卷积(Convolution,Conv)、批标准化(Batch Normalization,BN)、激活函数(Activation Function,AF)、池化(Pooling)、转置卷积(Transposed Convolution)五个基本单元。
[0106] 卷积公式如下:
[0107] Cl=Wl*Cl‑1+bl (4)
[0108] 其中,Cl表示第l层输出;Wl表示第l层的卷积核,其大小为wh×wh×nl,nl表示通道数,wh×wh表示单通道卷积核尺寸;Cl‑1表示第l层输入;bl表示第l层偏置量。
[0109] 批标准化公式如下:
[0110]
[0111]
[0112]
[0113]
[0114] 其中,μ,ρ分别是批数据的均值和方差;T为批数据大小;是批标准化输出;γ、β为经验参数。
[0115] 激活函数公式如下:
[0116]
[0117] 其中,σ为激活函数。
[0118] 池化公式如下:
[0119] Cl=pool(Cl) (10)
[0120] 其中,pool为池化。
[0121] 转置卷积公式如下:
[0122] Cl=WlT*Cl‑1+bl (11)
[0123] 其中,WlT为转置卷积核。
[0124] 降采样包含4层,每层包含1个递归残差模块和1个池化模块。
[0125] 降采样的最后一层输出经过一次递归残差模块处理,得到升采样的输入。
[0126] 升采样包含4层,每层包含1个转置卷积模块和1个递归残差模块。在升采样中,每层的转置卷积输出Ca会和同层降采样递归残差计算输出Cb进行合并(concat),得到升采样递归残差模块输入Ccat,合并公式如下:
[0127] Ccat=concat(Ca+Cb) (12)
[0128] 2‑1‑2.递归残差模块
[0129] 递归残差模块包含2个递归(Recurrent)计算和1个残差(Residual)计算(如图2所示),递归计算由卷积模块组成每个卷积模块包含卷积、批标准化和激活函数三个单元,递归计算公式如下:
[0130]
[0131]
[0132] 其中,t表示递归次数;BN表示批标准化;Cls表示残差计算的输出。
[0133] 残差计算公式如下:
[0134] Cl‑1=Wl‑2*Cl‑2+bl‑2 (15)
[0135] Cls=recus(Cl‑1) (16)
[0136] Clo=Cl‑1+Cls (17)
[0137] 其中,recus表示递归计算;Clo表示递归残差模块输出。
[0138] 2‑2.网络训练
[0139] 网络训练包含3个步骤:损失函数、优化算法、循环计算。
[0140] 2‑2‑1.损失函数
[0141] 使用均方根误差函数(Mean Squared Error,MSE)作为反向传播的损失函数,求得输出层的损失值loss。对数据集 损失函数计算公式如下:
[0142]
[0143] 其中,角标i表示批数据的第i个矩阵;i=(1,2…T),RR_Unet表示递归残差U型网络;θ表示训练的网络参数。
[0144] 2‑2‑2.优化算法
[0145] 优化算法使用随机梯度下降法(Stochastic gradient descent,SGD)算法流程如下:
[0146]
[0147] θ←θ‑lr×g (20)
[0148] 其中,g表示第i批数据梯度均值; 表示参数梯度;lr表示学习率。
[0149] 2‑2‑3.循环计算
[0150] 以差值dif作为损失值和损失阈值的判断条件:
[0151]
[0152] 其中,τ表示损失阈值。
[0153] 计算差值dif,若差值不小于零,则执行优化算法;若差值小于零,则迭代结束。执行n次循环计算,直到求得最优网络参数θ。
[0154] 3.图像重建
[0155] 用训练好的递归残差U型网络对测试图像Itu(x,y)进行在线重建,得到重建预测图像Irecon(x,y),重建算法如下:
[0156] Irecon(x,y)=RR_Unet(Itu(x,y),θbest) (22)
[0157] 其中,θbest表示训练好的网络最优参数。
[0158] 将重建预测图像进行离散傅里叶变换得到k空间预测数据krecon(xk,yk),用实际采集到的k空间数据ktu(xk,yk)去替换krecon(xk,yk)中相应位置的数据,最后的重建图像用Iout(x,y)表示:
[0159] Iout(x,y)=IDFT(krecon(xk,yk)(1‑mask)+ktu(xk,yk)) (23)[0160] 其中,1表示与采样mask相同的1矩阵。
[0161] 以下结合人体头部的MRI数据,对基于递归残差U型网络快速磁共振成像方法进行实例说明,如图1所示,(a)为全采样k空间数据kref(xk,yk),经过离散傅里叶变换得到全采样图像,(b)为全采样图像数据Iref(x,y),(c)为1维均匀欠采样模板mask,采样方式为每隔4行采集一行数据,并采集中间16行主要数据,数据尺度大小均为256*256,对(a)进行欠采样生成欠采样k空间数据,(d)为欠采样k空间数据ku(xk,yk),(d)经过离散傅里叶变换得到欠采样图像Iu(x,y),本发明采集3200对图像数据,其中3000对数据用于递归残差U型网络的训练,200对数据用于重建对比。网络结构如图2所示,包含4层降采样,4层升采样和每个采样层的一个递归残差模块。递归残差模块包含1次残差计算和2次递归计算,递归计算的递归次数为2。实验环境为INTEL I5‑4460 16G内存,NVIDIA GTX1080 8G显存,Windows10,Python3.6.5,Pytorch1.0.1。基于U型网络训练共2.5小时,重建时间约为1.2秒,基于递归残差U型网络训练共4小时,重建时间约1.6秒。图3显示了各重建方法的结果图,(a)是原始图像,(b)是填零重建图像,(c)是基于U型网络的重建图像,(d)是基于递归残差U型网络的重建图像,(e)、(f)、(g)分别是(b)、(c)、(d)与原始图像(a)的差值图。从图中可以直观的看出填零重建的误差最大,基于U型网络的重建图像(c)能较好的还原出原始图像,基于递归残差U型网络的重建图像(d)能在基于U型网络的基础上进一步提高图像的细节信息,误差更小。总相对误差(total relative error,TRE)公式如下:
[0162]
[0163] 填零重建的TRE值为1.6215,基于U型网络的重建TRE值为0.9707,而本发明的重建TRE值为0.5351。
[0164] 通过本发明可以看出,相同欠采样的条件下,在加入递归残差模块的U型网络能比U型网络在增加网络层数的同时没有增加网络参数。相比U型网络,虽然本专利提出的方法训练时间有所增加,但重建图像质量提升显著,能恢复出更多的图像细节。