8-7-FSL软件使用

Author: haoransunWechat: SHR—97 全名是: FMRIB’s Software Library - FMRIB 是 英国牛津大学脑功能磁共振成像中心,FSL 则是他们开发的一个软件库。 - 由 Ste

8-7-FSL软件使用

Author: haoransunWechat: SHR—97

全名是: FMRIB’s Software Library - FMRIB 是 英国牛津大学脑功能磁共振成像中心,FSL 则是他们开发的一个软件库。 - 由 Stephen Smith 教授开发,发布于 2000年 - 适用于所有操作系统 - 用于结构 MRI、功能 MRI(任务、静息)、扩散 MRI的分析 - MRI, CT数据的预处理和分析 - MRI, CT数据的查看。

https://blog.csdn.net/qq_39653816/article/details/126372128

https://zhuanlan.zhihu.com/p/430898301

https://fsl.fmrib.ox.ac.uk/fslcourse/2019_Beijing/lectures/reg.pdf

https://blog.csdn.net/qq_36421001/article/details/119775745

https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/BET

https://space.bilibili.com/542601735/channel/seriesdetail?sid=681057

https://www.bilibili.com/video/BV11V411k7oe/?spm_id_from=333.788.recommend_more_video.-1&vd_source=cdbbedc88ac17f2589c268d0ab8e73fc

https://blog.csdn.net/u014264373/category_11464520.html?spm=1001.2014.3001.5482

界面如下

BET - Brain Extraction Tools 大脑图像提取/去头骨普通扫描的大脑图像包含非常多的组织,如图所示

除了大脑组织以外,还包括皮肤,头骨,眼球,嘴巴,喉腔等解剖结构,这些结构会影响我们对大脑的分析。因此,希望对脑组织和非脑组织进行自动分割。

BET从整个头部的图像中删除非脑组织。如果有质量良好的T1和T2输入图像,他还可以估计颅骨内外表面和头皮外表面。

大脑和非大脑组织分割、配准等预处理步骤。

SUSAN noise reduction 非线性降噪SUSAN降噪使用非线性滤波来降低图像(2D或3D)中的噪声,同时保留底层结构。他通过使用具有相似强度的局部体素平均值来代替某一体素。

FAST - FMRIB’s Automated Segmentation Tool 组织自动分割FAST(FMRIB的自动分割工具)将大脑的3D图像分割成不同的组织类型(灰质、白质、脑脊液等),同时校正空间强度变化(也称为偏置场或射频不均匀性)。该方法基于隐马尔可夫随机模型和相关的期望值最大化算法。整个过程是完全自动化的,还可以产生偏场校正输入图像和概率和/部分体积组织分割。与大多数基于有限混合模型的方法相比,该方法对噪声敏感,具有较强的鲁棒性和可靠性。

MELODIC ICA - Multivariate Exploratory Linear Optimize Decomposition into Independent ComponentsMELODIC 3.0 使用独立成分分析(ICA),将多=单个或多个4D数据分解成不同的空间和时间成分。对于ICA组(ICA Group)分析,MELODIC要么使用张量独立分量分析(TICA,其中数据被分解成空间图(Spatial maps)、时间序列(time courses)和被试/会话(subject/session modes)模式),要么使用更简单的时间连接方法。MELODIC可以识别不同的激活和伪成分,而无需指定任何明确的时间序列模型。

FDT - FMRIB’s Diffusion ToolboxFDT是一款用于分析扩散加权图像(DWI)的软件工具。

FDT包括数据预处理、局部扩散建模和纤维追踪成像。FDT的每个阶段都是分开运行的。用户界面提供的主要功能包括:

Eddy current & motion correction / Outlier detecetion

用于涡流校正、运动校正和奇异值识别

BEDPOSTX - 用于扩散参数的局部建模

PROBTRACKX - 用于纤维追踪成像和基于连接的分割

dtifit - 用于扩散张量的局部拟合

POSSUM - Physics-Oriented Simulated Scanner for Understanding MRIPOSSUM是一款能够生成逼真的模拟MRI和FMRI图像或时间序列的软件工具。POSSUM包括用于脉冲序列生成、信号生成、噪声添加和图像重建的工具。

FSLeyes/FSLView交互式显示工具

从左往右:矢状面(Sagittal) 冠状面(Coronal) 横断面(Axial)

Axial:又名横断面,transverseCoronal:又名冠状面,Sagittal:矢状面,如同一个箭矢劈开成左右两半

FSL实用命令查看影像基本信息

fslinfo *.nii.gz

查看影像更加详细的信息

选项参数 -x,以XML格式输出

Don’t worry if you don’t know what every field means.

fslhd *.nii.gz

各种统计量

fslstats *.nii.gz -m -M

影像文件分割

fslsplit *.nii.gz target_folder

影像文件合并

fslmerge -t target_folder

影像剪切、尺寸调整

fslroi *.nii.gz *_resize.nii.gz -5 101 -5 119 -5 101

数字自己设置

fsl数学工具

fslmaths

fslutils

fslcpgeom - 将标题信息的某些部分(图像尺寸、体素尺寸、体素尺寸单位字符串、图像方向/)从一个图像复制到另一个图像

fslinfo - 报告 Nifti 数据的头文件信息

fslmaths - 简单但功能强大的程序,允许对图像进行数学处理

fslmerge - 合并多个图像文件

fslroi - 从图像中提取感兴趣区域 (ROI)

fslslice - 将 3D 文件拆分为许多 2D 文件(沿 z 轴)

fslsplit - 将一个 4D 文件分割成许多 3D 文件

fslorient - 报告图像的采集方向信息

数据集性别/年龄分布

Dataset

Male

Female

Age_Round

Mean_Age

Count_Number

MMSE

CDR

AD

73

77

56 ~ 93

77.01 ± 7.44

150

MCI

75

75

55 ~ 90

75.4 ± 7.71

150

NC

71

79

61 ~ 91

77.13 ± 5.37

150

数据批处理#!/bin/bash 此脚本由bash进行解释,bash是一种命令解释器

cd change directory的缩写,切换路径

$ 变量名的起始

echo 输出字符串

mkdir 创建文件夹

ls 列出文件及目录

BET.sh

Text1234567891011121314151617181920212223242526272829303132#!/bin/bashbaseADDir="/home/pugongying/data/jupyterLab/shr/AD/ADNI-Datasets/AD/origin/"cd $baseADDirecho ~~~~~~AD-BET-Started~~~~~~niiList=`ls *.nii`for nii in $niiList;do echo $nii bet2 $nii ${nii%.*}_brain -f 0.5 -g 0doneecho ~~~~~~AD-BET-Finshed~~~~~~baseCNDir="/home/pugongying/data/jupyterLab/shr/AD/ADNI-Datasets/CN/origin/"cd $baseCNDirecho ~~~~~~CN-BET-Started~~~~~~niiList=`ls *.nii`for nii in $niiList;do echo $nii bet2 $nii ${nii%.*}_brain -f 0.5 -g 0doneecho ~~~~~~CN-BET-Finshed~~~~~~baseMCIDir="/home/pugongying/data/jupyterLab/shr/AD/ADNI-Datasets/MCI/origin/"cd $baseMCIDirecho ~~~~~~MCI-BET-Started~~~~~~niiList=`ls *.nii`for nii in $niiList;do echo $nii bet2 $nii ${nii%.*}_brain -f 0.5 -g 0doneecho ~~~~~~MCI-BET-Finshed~~~~~~

sh BET.sh

FLIRT

Text1234567891011121314151617181920212223242526272829303132333435363738394041424344#!/bin/bashbaseADDir="/home/pugongying/data/jupyterLab/shr/AD/ADNI-Datasets/AD/origin/"cd $baseADDirecho ~~~~~~AD-FLIRT-Started~~~~~~niiList=`ls *.nii.gz`for nii in $niiList;do echo $nii flirt -in $nii -ref /usr/local/fsl/data/standard/MNI152_T1_2mm_brain -out ${nii%.nii.gz*}_FLIRT \ -omat ${nii%.nii.gz*}_FLIRT.mat \ -bins 256 -cost corratio \ -searchrx -90 90 -searchry -90 90 -searchrz -90 90 \ -dof 12 -interp trilineardoneecho ~~~~~~AD-FLIRT-Finshed~~~~~~baseCNDir="/home/pugongying/data/jupyterLab/shr/AD/ADNI-Datasets/CN/origin/"cd $baseCNDirecho ~~~~~~CN-FLIRT-Started~~~~~~niiList=`ls *.nii.gz`for nii in $niiList;do echo $nii flirt -in $nii -ref /usr/local/fsl/data/standard/MNI152_T1_2mm_brain -out ${nii%.nii.gz*}_FLIRT \ -omat ${nii%.nii.gz*}_FLIRT.mat \ -bins 256 -cost corratio \ -searchrx -90 90 -searchry -90 90 -searchrz -90 90 \ -dof 12 -interp trilineardoneecho ~~~~~~CN-FLIRT-Finshed~~~~~~baseMCIDir="/home/pugongying/data/jupyterLab/shr/AD/ADNI-Datasets/MCI/origin/"cd $baseMCIDirecho ~~~~~~MCI-FLIRT-Started~~~~~~niiList=`ls *.nii.gz`for nii in $niiList;do echo $nii flirt -in $nii -ref /usr/local/fsl/data/standard/MNI152_T1_2mm_brain -out ${nii%.nii.gz*}_FLIRT \ -omat ${nii%.nii.gz*}_FLIRT.mat \ -bins 256 -cost corratio \ -searchrx -90 90 -searchry -90 90 -searchrz -90 90 \ -dof 12 -interp trilineardoneecho ~~~~~~MCI-FLIRT-Finshed~~~~~~

sh FLIRT.sh

将.nii(.nii.gz)文件转化为.png(jpg)工具命令: fslslice - 将 3D 文件拆分为许多 2D 文件(沿 z 轴)

代码:

Text123456789101112131415161718192021222324252627282930import numpy as npimport os #遍历文件夹import nibabel as nibimport imageio #转换成图像def nii_to_image(niifile): filenames = os.listdir(filepath) #读取nii文件 slice_trans = [] for f in filenames: #开始读取nii文件 img_path = os.path.join(filepath, f) img = nib.load(img_path) #读取nii img_fdata = img.get_fdata() fname = f.replace('.nii', '') #去掉nii的后缀名 img_f_path = os.path.join(imgfile, fname) # 创建nii对应图像的文件夹 if not os.path.exists(img_f_path): os.mkdir(img_f_path) #新建文件夹 #开始转换图像 (x,y,z) = img.shape for i in range(z): #是z的图象序列 slice = img_fdata[i, :, :] #选择哪个方向的切片自己决定 imageio.imwrite(os.path.join(img_f_path, '{}.png'.format(i)), slice)if __name__ == '__main__': filepath = 'D:/feiyan/COVID-19-CT-Seg_20cases' imgfile = 'D:/feiyan/covid19-ct-seg-png' nii_to_image(filepath)

数据处理一般步骤头动校正

MIPAV 进行 AC-PC校正

BET颅骨剥离

配准MNI_152

平滑处理

224x224x3

FAST 组织分割 灰质、白质、脑脊液

提取灰质图像进行切片预处理/直接对横、冠、矢进行切割

针对sMRI

* BET颅骨剥离

* Linear(FLIRT) 配准到MNI_152

* 图像平滑 6x6x6

* FAST 组织类型分割,分割出灰质、白质、脑脊液(对灰质图像作进一步体积/面积处理)

* 省去组织类型分割,图像平滑结束后直接对横断面/矢状面/冠状面进行切片处理(3D—->2D)

针对切片计算所有MRI切片的熵,并按熵大小对它们进行降序排列,仅选取信息熵较大的sMRI切片用于训练CNN模型,从而增强了模型的整体稳健性.

为了扩充数据集,对每位受试者的切片图像进行筛选扩充。一种简单的方法是随机选择多张图像,但这样的选择方法可能会遗漏一些关键信息。采用Hon等人提出的图像熵选取切片的方法,该方法按照图像中包含信息的多少即熵的大小,将切片从大到小进行排列,对每位受试者的MRI切片,选取熵值较高的前32个,这样既有利于扩充数据集,也有利于将信息少的图像排除在外.

分类实验* AD-MCI

* AD-NC

* NC-MCI

* AD-MCI-NC

已有算法每两个算法是一篇大论文中提出的两个小创新点.

基于深度神经网络的阿尔兹海默病分类算法研究-曲阜师范大学-计算机学院-崔秀明基于迁移学习和深度残差网络的阿尔兹海默病分类算法

根据CNN的参数共享性,引入迁移学习的思想,将在ImageNet中预训练好的ResNet/DenseNet模型迁移至MRI数据集中进行微调,从而替代从头开始训练一个全新的模型.另外训练一个与深度ResNet一样大的CNN需要巨大的计算资源,并且需要数周的时间才能训练。因此提出了基于迁移学习和深度残差网络的阿尔兹海默病分类算法,该算法引入迁移学习解决了可用医学图像样本数量少的问题,缩短了CNN模型的训练时间;引入信息熵的概念用于选择训练集,增强了模型的整体稳健性。

基于深层特征和非线性降维的阿尔兹海默病分类算法

医学图像存在一个固有的劣势,就是高维非线性,现存方法也曾尝试了使用降维方法对其进行降维,但是由于数据的非线性特性使得在降维过程中产生了很多损失,导致最后的分类效果不理想;另外,前人所做工作中使用的降维方法的算法复杂度非常高,浪费计算成本。因此,提出了基于深层特征和非线性降维的阿尔兹海默病分类算法,在算法中引入了非线性降维方法LargeVis,减少了线性降维方法在降维过程中损失的信息,并大大降低了计算成本。

基于卷积神经网络的阿尔茨海默病分类算法研究-曲阜师范大学-计算机学院-刘汉磊基于特征重构和卷积神经网络的AD分类算法

基于先验知识90个ROI的灰质体积作为特征

将预处理好的MRI数据使用EDLT方法进行特征重构,构造了一个层数较浅的卷积神经网络结构,并利用迁移学习进行预训练,在ADNI数据集上进行了训练和测试评估。结果显提方法要比单纯使用特征数据进行分类的传统机器学习方法的分类效果有所提高,表明使用特征重构的方法能够获得有意义的分类效果,迁移学习的使用能够降低在小样本数据集中的过拟合风险,也降低了计算成本。

基于迁移学习和密集连接网络的阿尔茨海默病分类算法

基于先验知识90个ROI的灰质体积作为特征采用高斯滤波器进行图像增强,使用HEICA进行灰质分割,对AD、NC、MCI的三分类任务和两两分类任务进行了实验,实验数据基于ADNI数据库。结果显示,迁移学习的效果优于从头训练的效果,使用HEICA进行分割的效果优于未使用的效果。表明了在小样本数据集上使用迁移学习的必要性,以及使用图像增强和HEICA方法的有效性。

这个作者为了训练深度神经网络数据,使用PyTorch来进行训练和测试,GPU为英伟达精视GTX 1070,采用帕斯卡架构,16nm制程工艺,单精度浮点数达到了6.5Tflops,显存容量8GB GDDR5,核心频率为1683MHz,显存频率8000MHz

医学图像的小样本问题和图像质量不高的问题,一直是研究人员进行医学图像分类的困扰。引入了高斯滤波器进行图像增强,使用HEICA进行灰质图像分割,得到了较为清晰的灰质图像;引入信息熵的概念用于选择切片图像,以增加数据集样本数量.

基于迁移学习的阿尔茨海默病早期诊断算法研究-曲阜师范大学-计算机学院-刘永林基于判别式迁移特征学习的AD早期诊断算法

将每个受试者灰质体积配准到AAL模板上,选择ALL模板中90个自动标记的ROI,计算每个ROI的体积作为特征

基于集成迁移学习的AD早期诊断算法

相关推荐