基于CNN和多电极电磁测量的动静脉图像重建方法与流程

文档序号:18324033发布日期:2019-08-03 10:47阅读:309来源:国知局
基于CNN和多电极电磁测量的动静脉图像重建方法与流程

本发明涉及一种基于cnn和多电极电磁测量的动静脉图像重建方法,其属于图像数据处理领域。



背景技术:

血液流速是诊断冠状动脉狭窄、冠心病等心血管疾病的重要指标。在现代医学手段中,通过对血液流动速度的测量可以提前预防和控制长期困扰人类的顽固疾病。已有研究表明,基于电磁流量计权函数理论,可将多电极电磁测量方式应用于人体肢体动脉、静脉血液流速测量。具体步骤如下:

1、采用有限元分析法,利用comsolmultiphysics仿真软件建立多电极肢体血液测量系统,启动仿真,通过多对电极得到肢体截面上不同位置的弦端电压,以此计算区域权函数;

2、确定区域权函数后,进行速度重建,比较精确地计算出肢体截面处动脉和静脉的轴向平均速度。

在计算区域权函数时,需在仿真模型中预先设置动、静脉的位置、大小和形状,即流动区域。然而在实际测量当中,动、静脉的位置、大小和形状都无法确定。因人体特征差异,更无法做到针对不同个体,确定不同仿真模型下的区域权函数,难免影响测量精度。虽说权函数的分布只与测量装置的结构有关,如装置半径、电极数量等。然而区域权函数的求取,需预先知道流动区域的位置和面积。



技术实现要素:

本发明所要解决的技术问题在于提供了一种基于卷积神经网络cnn和多电极电磁测量mef的动静脉图像重建方法,本方法通过基于卷积神经网络cnn和多电极电磁测量理论,进行人体肢体的动静脉图像重建,确定区域权函数,将多电极电磁测量更好地应用于不同个体的血液流速测量。

为解决上述技术问题,本发明采用如下技术方案:

一种基于cnn和多电极电磁测量的动静脉图像重建方法,其包括:

步骤1、获得数据集;

步骤2、采用十折交叉验证将大量的样本数据分为训练集和验证集;

步骤3、设计cnn的网络结构,其包含两个卷积层、两个池化层、辍学层和全连接层;

步骤4、采用小批量梯度下降算法,将数据分为n批,按批来更新参数;导入numpy包,完成小批量梯度下降算法模块的编写;当一个轮数快运行完且不够一个批次时,便将此轮数的结尾和下一个轮数的开头拼接起来;n为1个以上;步骤5、定义cnn的前向传播过程;

步骤6、编写训练模块的程序;

步骤7、编写验证模块的程序;

步骤8、通过matlab软件编程,调用meshgrid和griddata函数;将原始图像和重建图像各自的相应像素点值变为图像;

步骤9、根据图像重建的结果,得到动脉和静脉的分布。

进一步的,所述步骤1中获得数据集,采用方法如下:

通过comsolmultiphysics仿真软件和matlab联合仿真,在仿真中,通过改变动脉和静脉的圆心和半径,模拟动脉和静脉在人体肢体截面处的各种分布,获得样本数据;每个样本均包括边界电势测量值和相应的像素点分布;x表示图像像素值的分布,y表示边界电势测量值;

当人体肢体截面处有血液流动时,流动区域图像的像素值被设置为1;而其他没有血液流动的组织区域,它们图像的像素值被设置为0。

进一步的,cnn的训练采用anaconda环境管理器建立tensorflow环境,并在tensorflow环境中下载numpy和scipy包,调用tensorflow内置的模块完成cnn的网络结构的搭建。

进一步的,所述步骤5中定义cnn的前向传播过程,所采用的方法为调用tensorflow内置的模块完成cnn前向传播模块的编写。

进一步的,所述步骤6中编写训练模块的程序,所采用的方法如下:

导入小批量梯度下降算法模块,导入前向传播过程的模块,导入os包和tensorflow包,导入训练集;配置cnn相关参数,计算损失函数,所述损失函数包含两部分:前一项代表交叉熵损失;后一项代表正则化项,损失函数的公式(1)如下:

其中,l为损失函数;

y′i是期望输出的概率分布;

是经过softmax逻辑回归处理后的输出;

λφ(ω)表示正则化项即惩罚项,n表示样本数;

λ表示复合损失与总损失的比率;

假设y'=[y′1,y′2,...,y′i,y′n]是期望输出的概率分布,则其计算公式(2)如下:

其中,y=[y1,y2,...,yi,yn]是期望的输出;

yi表示y=[y1,y2,...,yi,yn]中的一个变量,表示y=[y1,y2,...,yi,yn]中第i个样本的期望输出;

m是期望输出中1的个数;

l2正则化项的表达式(3)如下:

其中,ω表示权重;

ωi表示第i个样本的权重;

在所有代表cnn参数的变量上使用滑动平均;变量在t时刻记为θt为变量在t时刻的取值,即在不使用滑动平均时在使用滑动平均模型后,的更新公式(4)如下:

其中,β表示衰减率,β∈[0,1);β=0相当于没有使用滑动平均。

进一步的,在cnn中,选择指数衰减法来更新训练过程中的学习率。

进一步的,在提出的cnn中,反向传播算法将误差从末层反向传播,然后使用梯度下降法优化网络中参数的值,最后使得训练集的损失值最小,完成训练过程。进一步的,所述步骤7中编写验证模块的程序,所采用的方法如下:

导入小批量梯度下降算法模块,导入前向传播过程的模块,导入numpy包和tensorflow包,导入验证集。

进一步的,在comsolmultiphysics仿真软件的几何选项中,设置动脉和静脉的圆心和半径,启动仿真,通过测量得到的电压值,计算区域权函数,将多电极电磁测量更好地应用于不同个体的血液流速测量。

本发明的有益效果如下:

在将cnn的深度学习方法应用到mef的成像之前,区域权函数的求取是在仿真中设定流动区域,并非人体动静脉的实际分布。在将来的实物测量当中,动静脉的位置、大小和形状很难获取,区域权函数的求取还存在困难,无法针对不同个体,精确地测量动静脉的血液流速。

本发明将cnn的深度学习方法应用到多电极电磁流量计mef的成像之中,通过电极测量得到的电势,重建肢体截面处动静脉的位置、大小和形状,确定区域权函数,以达到测量动静脉血液流速的目的。本发明为mef多电极电磁流量计的实时成像和测量奠定了基础。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1为多电极电磁流量计仿真模型的电极分布及区域划分图;

图2为卷积神经网络cnn的结构图;

图3为卷积操作的过程图;

图4-a为训练过程中的损失曲线图;

图4-b为验证过程中的损失曲线图;

图5-a为原始图像和重建图像的较细动静脉对称情况下的对比图;

图5-b为原始图像和重建图像的动静脉对称情况下的对比图;

图5-c为原始图像和重建图像的动静脉对称情况下的位置对比图;

图5-d为原始图像和重建图像的动静脉不对称情况下的位置对比图;

图5-e为原始图像和重建图像的动静脉大小对比图;

图5-f为原始图像和重建图像的动静脉形状对比图;

图6为验证集的图像相关系数曲线图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图1-图6和具体实施例对发明进行清楚、完整的描述。

如图1-图6所示,本实施例涉及一种基于cnn和多电极电磁测量的动静脉图像重建方法,其包括:

步骤1、获得数据集:

通过comsolmultiphysics仿真软件和matlab联合仿真,在仿真中,通过改变动脉和静脉的圆心和半径,模拟动脉和静脉在人体肢体截面处的各种分布,获得了12616个样本数据。每个样本均包括208个边界电势测量值和812个相应的像素点分布。其中x表示图像像素值的分布,y表示边界电势测量值。当人体肢体截面处有血液流动时,流动区域图像的像素值被设置为1;而其他没有血液流动的组织区域,如皮肤、脂肪、骨骼和肌肉,它们图像的像素值被设置为0;动静脉图像重建旨在从边界测量电势y中获得人体肢体截面处动静脉图像的像素值分布x。

cnn的输入是一副图像,图像由只有0和1的矩阵构成,可通过程序将图像和矩阵进行相互转换,有流动的区域设置为1,无流动的区域设置为0。y为在这种动静脉分布的图像作为输入时,启动仿真,得到的边界电势测量值。

步骤2、采用十折交叉验证将大量的样本数据分为训练集和验证集;

步骤3、设计cnn的网络结构,所述cnn的网络结构依据lenet结构设计,其包含两个卷积层、两个池化层、辍学层和全连接层;cnn的训练采用anaconda环境管理器建立tensorflow环境,并在tensorflow环境中下载numpy和scipy包,调用tensorflow内置的模块完成cnn结构的搭建;

步骤4、采用小批量梯度下降算法,将数据分为若干批batch,按批batch来更新参数;好处是一个批batch中的一组数据共同决定了本次梯度的方向,下降起来就不容易跑偏,减少了随机性。另一方面,因为批batch的样本数与整个数据集相比小了很多,计算量也不是很大,加速了训练过程。导入numpy包,完成小批量梯度下降算法模块的编写;当一个轮数快运行完且不够一个批次时,便将此轮数的结尾和下一个轮数的开头拼接起来;

步骤5、定义cnn的前向传播过程:

一个训练batch中的训练数据个数为512,输入为208,输出为812,调用tensorflow内置的模块完成cnn前向传播模块的编写;

步骤6、编写训练模块的程序:

导入小批量梯度下降算法模块,导入前向传播过程的模块,导入os包和tensorflow包,导入训练集;配置cnn相关参数,计算损失函数,所述损失函数包含两部分:前一项代表交叉熵损失,它刻画的是期望输出与实际输出的距离;后一项代表正则化项,它可以避免过拟合,损失函数的公式(1)如下:

其中,l为损失函数;

y′i是期望输出的概率分布;

是经过softmax逻辑回归处理后的输出;

λφ(ω)表示正则化项即惩罚项,n表示样本数;

λ表示复合损失与总损失的比率;

假设y'=[y′1,y′2,...,y′i,y′n]是期望输出的概率分布,则其计算公式(2)如下:

其中,y=[y1,y2,...,yi,yn]是期望的输出;

yi表示y=[y1,y2,...,yi,yn]中的一个变量,表示y=[y1,y2,...,yi,yn]中第i个样本的期望输出;

m是期望输出中1的个数;

l2正则化项的表达式(3)如下:

其中,ω表示权重;

ωi表示第i个样本的权重;

在所有代表cnn参数的变量上使用滑动平均;变量在t时刻记为θt为变量在t时刻的取值,即在不使用滑动平均时在使用滑动平均模型后,的更新公式(4)如下:

其中,β表示衰减率,β∈[0,1);β=0相当于没有使用滑动平均。

在cnn中,选择指数衰减法来更新训练过程中的学习率。它可以使网络在训练的早期阶段更接近最优解,并确保网络在训练的后期不会波动很大,以便更接近局部最优。

在提出的cnn中,反向传播算法将误差从末层反向传播,然后使用梯度下降法优化网络中参数的值。最后,使得训练集的损失值尽可能小,完成训练过程。

步骤7、编写验证模块的程序:

导入小批量梯度下降算法模块,导入前向传播过程的模块,导入numpy包和tensorflow包,导入验证集;

验证模块不同于训练模块的地方在于,增加计算图像相关系数的程序段,并在最后导出原始图像和重建图像各自的812个相应的像素点值的分布。

步骤8、通过matlab软件编程,调用meshgrid和griddata函数;将原始图像和重建图像各自的812个相应的像素点值变为图像;

步骤9、根据图像重建的结果,得到动脉和静脉的分布。

在comsolmultiphysics仿真软件的几何选项中,设置动脉和静脉的圆心和半径,启动仿真,通过测量得到的电压值,计算区域权函数,将多电极电磁测量更好地应用于不同个体的血液流速测量。

如图1所示,为多电极电磁流量计仿真模型的电极分布及区域划分图,16个点电极均匀布置在半径为30mm的人体肢体上。数据集是通过comsolmultiphysics仿真软件和matlab联合仿真求得,通过改变动脉和静脉的圆心和半径,以获得12616个样本数据。每个样本均包括208个边界电势测量值和812个相应的像素点分布。采用十折交叉验证将大量的仿真数据分为训练集和验证集。另将静脉的形状设置为椭圆,通过仿真得到与训练集不同的测试集,用以验证模型的泛化能力。训练集、验证集和测试集的数量见下表1:

表1数据集的数量

在本实施例中,第一次仿真得到12616个样本数据(数据集),使用十折交叉验证分为11354个训练样本和1262个验证样本。第二次仿真,将静脉设置为椭圆,得到100个测试样本。

如图2所示,为cnn结构图,它包含两个卷积层、两个池化层、辍学层和全连接层。图2中网络的输入是208个边界电势测量值,输入的尺寸统一归一化为16*13,其每一行代表在一次数值电流激励下的16个边界电势测量值,并对同一种动静脉分布情况,进行13次不同的数值电流激励。本cnn结构是根据lenet结构设计而来,通过修改完善、训练和验证,得到的效果比较好的框架。在comsol软件中,为了得到磁场,需要给线圈通以电流,其中一个选项为:数值型电流,通过改变电流的值,进行13次不同的数值电流激励。

卷积层是卷积神经网络的核心,其通过离散二维滤波器,也称作卷积核,与二维图像做卷积操作,简单的讲就是卷积核滑动到二维图像上所有位置,并在每个位置上与该像素点及其领域的像素点做内积。本网络的卷积核大小为3*3,其卷积过程如图3所示。

卷积层将输入矩阵转换为深度为32的1*1矩阵,它的计算方法如下:

其中,nx,y,z表示输入特征矩阵在卷积核下的值,m(i)表示第i个输出特征矩阵,表示对应第i个输出特征矩阵与输入特征矩阵之间的权重,bi表示第i个输出特征矩阵的偏置,f表示激活函数。

激活函数f将卷积的输出结果做非线性映射,本网络采用relu激活函数,其表达式如下:

relu激活函数是非线性的,也就意味着反向传播算法可用。另一个特性是,在同一时间只有部分神经元会被激活,从而使得网络很稀疏,进而对计算来说是非常有效率的。

卷积层之后会得到维度很大的特征,池化层将特征切成几个区域,取其最大值得到新的、维度较小的特征。池化操作对每个深度切片独立,且保持深度大小不变,规模为2*2。池化的主要作用是通过减少网络的参数来减小计算量,并且能够在一定程度上控制过拟合。

对一个特定的网络,当迭代次数增多的时候,可能出现网络对训练集拟合的很好,但是对验证集的拟合程度很差的情况。本网络通过辍学层让每次迭代随机地去更新网络参数,引入这样的随机性就可以增加网络泛化的能力。

全连接层中的每个神经元与其前一层的所有神经元进行全连接。本网络通过两个全连接层把前边提取到的特征综合起来,于最后一层全连接层输出812个相应的像素点分布,并经过softmax逻辑回归将前向传播得到的结果变成概率分布。假设z=[z1,z2,...,zi,zn]是未经softmax逻辑回归处理前的网络的输出,经过softmax逻辑回归处理后的输出为:

如图4所示,为训练和验证过程中的损失曲线图。损失曲线是观察卷积神经网络好坏的一大利器。在训练开始阶段损失值下降幅度很大,说明学习率合适且在进行梯度下降过程,在学习到一定阶段后,损失曲线趋于平稳,最终损失值趋向于3.72。为了避免过拟合,模型的训练轮数选择为500轮。

如图5-a至图5-f所示,均为原始图像和重建图像的对比图。图5-a至图5-f中左侧为重建图像的原型,右侧为重建图像。图5-a、图5-b、图5-e说明,本cnn模型的图像重建结果能够反映出动脉和静脉的大小。图5-c和5-d图说明,本cnn模型的图像重建结果能够反映出动脉和静脉的位置。图5-f是为了说明cnn模型的泛化能力,图5-f中重建图像的原型未在训练集和验证集中出现,图5-f中右侧图像是根据网络输入的电势信号重建出的图像。

如图6所示,为验证集的图像相关系数曲线图。本发明采用图像相关系数icc评估重建图像的质量,图像相关系数的计算公式如下:

其中分别为y*和y'的均值。在训练期间,验证集上的图像相关系数在图6中给出。由图6可见,在500轮训练轮数后,图像相关系数趋向于0.92,说明图像的真实分布和重建的图像正向相似度很大,重建结果能够反映出动脉、静脉的位置、大小和形状。

当将多电极电磁测量方式应用于人体肢体血液流速的测量时,需要求取区域权函数。然而在实际测量当中,动、静脉的位置、大小和形状都无法确定。因人体特征差异,更无法做到针对不同个体,确定不同仿真模型下的区域权函数,难免影响测量精度。

于是,本实施例基于cnn和多电极电磁测量理论,根据电极测量得到的电势值,进行人体肢体的动静脉图像重建,确定区域权函数。

本实施例将多电极电磁测量方式应用于人体肢体血液流速的测量。将人体肢体整个截面视为流动区域,并划分为不同区域块以模仿人体血液流动。通过多对电极获取肢体截面处的不同位置的弦端电压,利用任意流型下的平均流速公式,仿真验证并计算出了人体肢体截面各个区域块的流动速度。然而,对于区域权函数的求取,还有待进一步优化。

根据已有的电阻层析成像技术,本实施例将cnn的深度学习方法应用到动静脉的图像重建之中,根据图像重建结果,优化区域权函数的求取。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1