patch2self是什么?(对于来自dipy.denoise.patch2self 库的 patch2self.py文件个人理解如下)
1.主要输入是4维的DWI data和bvals文件
bvals 会因为一个阈值而被分为两部分,而4维的DWI 数据也会根据这个阈值划分为两部分,目的是分别用于去噪操作,原因是低于默认阈值50的MRI图像基本上噪声很少,不需要去噪。
2.分为两个部分的DWI 向量会被两个同样形状维度的向量分别存储
3.这两个分开的含噪DWI向量会经过一样的去噪过程:
第一步:划分3维局部块,放入的函数是_extract_3d_patches
第二步:根据每一个来自于第4维的volume,进行对应的3维局部块的去噪,放入的函数是
_vol_denoise
在这个函数中使用的是线性回归模型训练和预测,模型的输入是钢材分好的3维局部块,但是每一个3维局部块又会经过二维的简单变换,cur_x是一个二维的,y也是一个二维的。
自监督的巧妙就在于,cur_x和y都来自于这个train向量,如下图:
4.经过去噪之后,这两个向量会被存储到已经准备好的两个未初始化的向量中,整合为4维的DWI去噪后的数据,返回,至此方法结束!