没有合适的资源?快使用搜索试试~ 我知道了~
SoftwareX 7(2018)304原始软件出版物pyEIT:一个基于python的电阻抗断层成像框架刘本元,杨斌,徐灿华,夏俊英,戴梦,季振宇,游福生,董秀珍,施雪涛,傅峰第四军医大学生物医学工程系,Xiar t i cl e i nf o文章历史记录:接收25七月2018收到修订版2018年9月19日接受2018年9月19日保留字:电阻抗成像逆问题有限元法非结构网格a b st ra ct我们提出了一个基于Python的开源电阻抗断层成像(EIT)库,称为pyEIT。它是一个在Apache许可证v2.0下发布的多平台软件。pyEIT有一个干净的架构,并且有很好的文档记录。它实现了最先进的EIT成像算法,也能够进行简单的2D/3D网格划分。PyEIT是用Python编写的。它加速了离线EIT数据的分析,并可用于临床EIT应用。在本文中,我们着重于说明pyEIT的基本设计原则,通过使用一些直观的例子EIT的正向计算和逆求解。版权所有©2018作者.由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本1.0.0用于此代码版本的代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX_2018_114法律代码许可证https://github.com/liubenyuan/pyEIT/blob/master/LICENSE.txt使用git的代码版本控制系统使用Python和以下Python包的软件代码语言、工具和服务:numpy、scipy、matplotlib、pandas编译要求、操作环境依赖性Linux、Windows、Mac OS如果可用,链接到开发人员文档/手册https://github.com/liubenyuan/pyEIT/tree/master/examples问题支持电子邮件byliu@fmmu.edu.cn1. 动机和意义电阻抗断层成像(EIT)是一种低成本、无创、无辐射的成像方法[1,2]。它对内部电特性的变化敏感,在医院护理期间的床边监护中具有目前,肺EIT [3]和脑EIT [4]是两个主要的临床研究方向。在肺EIT中,对胸腔中的通气和灌注分布进行实时成像和评价[3]。在脑EIT中,可以使用EIT连续监测和成像颅内病理变化,例如出血[5]、缺血[6]或梗死[7目前,脑EIT的研究大多局限于体模或动物实验。体内脑EIT是困难的。头骨的大小很大,内部结构复杂。此外,头骨的高电阻率[8]和高导电性*通讯作者。电子邮件地址:fengfu@fmmu.edu.cn(F. Fu)。https://doi.org/10.1016/j.softx.2018.09.005脑脊液[9]产生屏蔽效应,只有少量的电流施加在大脑上。但脑EIT也是救命的。例如,脑损伤的早期识别[10]对临床外科医生具有重要价值。为了推进脑EIT的发展,我们需要进行大规模的三维有限元(FE)模拟,实现各种复杂的EIT成像算法,并在闭环中处理大量的体内在本文中,我们提出了一个基于Python的EIT模拟和成像框架称为pyEIT。pyEIT将后端(如有限元法(FEM)模拟,EIT逆求解和成像)与前端应用程序联系起来。它可能会加速体内EIT研究的发展。最近,我们在全主动脉弓置换术期间将体内EIT用于脑成像和监测[10]。EIT的成像速度为每秒一帧。[10]中的数据包含42例受试者,总时长约为160 h。我们构建了一个流水线处理,数据过滤,网格化,2352-7110/©2018作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softx⏐⏐∂n∈σ,σ=02=2B. Liu等/ SoftwareX 7(2018)304-308305Fig. 1. PyEIT的软件架构。pyEIT由三部分组成:网格划分、正问题求解和反问题求解。蓝色文本表示对应的Python模块。2.2. 软件功能有限元模块解决了电阻抗成像的正问题。EIT的数学模型被表述为边值问题,·(σ拉乌σg∂Ω∫∂Ωu=0图二. 一种用于脑成像的16电极配置EIT系统。EIT成像、图像后处理、特征提取和分类都建立在pyEIT和其他开源机器学习包的基础上。EIDORS工具包[11]已经提出了近20年,它被广泛用于开发和评估EIT算法。与EIDORS相比,pyEIT的开发程度较低等特点其中,X是要成像的2D或3D域,并且X是边界。在EIT中,我们通过连接到边界的一对电极以固定频率注入安全电流,并测量剩余电极对上的电压差。图2示出典型的16电极结构。一帧数据,表示为通过在所有16个电极上迭代地旋转和重复该过程来形成。EIT成像是逆问题,其从边界电压重建对象内部的电导率或电导率的变化作为完整电极模型(CEM)和全变差(TV)注册-在pyEIT中,缺少极化但是,pyEIT是用Python编写的σ=min<$v−f(<$,σ)<$2+λ<$σ−σ<$2(一)并且可扩展。这些功能可以作为插件模块添加。此外,EIDORS是基于MATLAB,这是本质上是一个函数式编程语言,并具有较弱的面向对象编程(OOP)的能力。在临床EIT研究中,大多数GUI都是用C++或Python编写的在MATLAB中开发的算法pyEIT具有干净的IO,适用于快速原型EIT系统和基准EIT重建算法。第2节介绍了pyEIT的架构。第3节给出了说明性的例子。pyEIT的影响在第4节中突出显示。2. 软件描述2.1. 软件构架Pyeit的架构如图所示。1.一、网格模块能够将网格划分为三角形(2D)或四面体(3D)。pyEIT封装了一个线性fem模块。有限元法采用4电极模型求解EIT正问题,模型库记录边界电压v和雅可比矩阵JpyEIT实现了支持动态EIT成像(或时间差成像)和静态EIT成像两者的最先进的EIT算法。其中σ0是电导率的初始分布,正向算子f将σ和σ映射到边界电压v。通过假设完美的几何形状(即,边界形状和电极位置是先验已知的),σ的雅可比矩阵被计算为,JΔf(σ)∂σGauss–Newtonσ(k+1)=σ(k)+(JTJ+λI)−1JT(v−f(σ(k)(2)通过相应地修改(1)中的范数,可以很容易地将正则化项并入EIT。基本模块记录边界电压和Ja-cobian [12]。所有的EIT成像模块都建立在基础上。静态EIT成像迭代地计算(2)动态EIT成像算法可以在两帧上成像电导率的变化在pyEIT中,实现了典型的动态EIT成像方法,如反投影(bp)、GREIT [13]和NOSER [14]3. 说明性实例3.1. 在单位圆上创建三角形网格pyEIT使用Python重新实现了distmesh它还提供了一个标准的分层圆形网格。在mesh模块中,创建和×××=[]个×=[]个1×2306B. Liu等人/SoftwareX 7(2018)304图三. 使用distmesh2d和标准分层圆网格化方法对单位圆进行三角形网格化。使用红色节点突出显示电极。使用layer_circle这些函数返回两个对象,第一个是mesh结构,它是一个命名元组,包含在二维网格中,节点是一个N2矩阵,表示节点的xy坐标,元素是一个M3矩阵,表示网格的连通性结构。 第二个是el_pos,它指定电极的编号位置(见图1)。 3)。mesh0,el_pos0=create(n_el=16)mesh1,el_pos1=layer_circlee(n_el=1,n_fan=8,n_layer =8)xy=mesh0[#Nx2matrixt=mesh0[#Mx3matrix3.2. 解决EIT正演问题我们使用有限元法(FEM)来解决EIT正问题。在前向类中,我们使用了一个简单的电极模型,其中假设电流流入和流出通过边界节点成像区域那些特殊的边界节点称为电极。应该注意的是,这是一种简化,并且优选完整的电极模型(CEM)我们计划在pyEIT的未来版本中添加CEM单个刺激模式由称为e的21行向量表示。必须在两个边界电极上指定例如,e0 ,7电流注入第一电极并从第八电极流出。pyEIT支持多频率EIT分析,其中,EIT上的重复性可以是实值或复值。许可证不是强制性的。初始化正向求解器类使用非结构化网格对象和电极的位置元素上的perms是使用mesh对 象 初 始 化 的 。 元素的 值 可 以 修 改 , 我 们 提 供 了一 个称 为set_perm的网格类的方法(见图1)。4).见图4。解决一个EIT前向问题。电流通过电极1注入(Python的指数从0开始),并在电极8上下沉。为了更好地理解电场的分布,图中画出了等电位线。pyEIT允许用户构建任何刺激模式。它具有将任意两个电极指定为电流源或电流汇的灵活性。E的行数不受限制。我们提供了一个名为eit_scan_lines的简单包装器,它在EIT [2]中产生典型的162个刺激模式,其中从电流源到电流吸收器的距离由一个名为dist的参数E可以堆叠,例如,E=[ET,ET]T. 在脑EIT应用中,我们可以使用融合刺激,#设置(AB)电电流路径ex_line=[0,7]#Pyhonindexstartsfro m0#calculatesimulatdatatingFEMfwd=Forward(mesh_obj,el_pos)f,_=fwd. so lve(ex_line,perm=perm)f= np. 实数(f)forward类有一个 名为solve_eit的方法, 它需要 一个名为ex_mat的参数,此后我们用E表示它。E是M2矩阵,其中每行表示一个刺激格局例如,E的第i行是ei2, 5,这意味着在我们的简单电极模型中,电流通过电极3注入并在电极6处下沉。solve_eit迭代ei,将其扩展为边界条件,然后求解正问题。提取边界电极处的电位计算并重新排列(由参数解析器指定)两个电极上的电压差(由参数模式. 比如说,““”最小化的最小化可以被分解为一个最小化的 最小化x_m=[[0,1],[1, 2],[1, 7]],否则,将无法使用多个备份x_mat“ex_mat1=eit_scan_lines(16,dist=4)ex_mat2=eit_scan_lines(16,dist=7)ex_mat=np. vstack([ex_mat1,ex_mat2])p=fwd。solve_eit(ex_mat=ex_mat,parser =我们重现了[2]中的敏感性分析 图 5.模拟了多个“skip k”刺激模式,并可视化了元件的灵敏度。B. Liu等/ SoftwareX 7(2018)304-308307图五. 不同skip-k模式的灵敏度。3.3. 求解EIT逆问题见图6。 解决EIT逆问题。在心血管手术期间非侵入性地监测大脑的状态[10]。数据包括大约160小时在下文中,我们呈现动态EIT成像的示例。动态EIT使用两个框架,并重建电导率的变化。它也被称为时间差EIT成像(参见图6)。4. 影响pyEIT是电阻抗断层成像领域的第一个Python包。它是基于OOP的,具有清晰的体系结构。正演计算和逆EIT成像模块是稳定的。可以容易地结合使用不同正则化惩罚的高级EIT成像算法。pyEIT的主要影响是它能够快速原型化EIT系统和应用程序。EIT的前端GUI通常使用C++或Python开发,这些应用程序的后端可以直接使用pyEIT进行网格划分,成像或数据预处理。我们的团队使用PyQT设计了一个EIT GUI,其核心功能由pyEIT提供。 最近,一个开源项目OpenEIT1使用pyEIT作为其后端。pyEIT也可以用于电阻抗谱(EIS)和电容层析成像(ECT)应用。pyEIT加速离线EIT数据分析。流水线处理可以使用最先进的机器学习和图像处理Python包来构建。我们已经使用脑EIT在1https://github.com/OpenEIT。记录并使用pyEIT进行处理我们评估了各种图像分割算法。然后分析EIT图像的特征与术后结果。建立了早期脑损伤的预测然后将其纳入最终的体内EIT应用中,这对于临床脑EIT研究是有益的5. 结论在本文中,我们提出了一个基于Python的平台,称为pyEIT。这是有据可查的,并提供了一套完整的例子,关于网格,二维/三维EIT正演模拟,动态或静态EIT成像。它还具有能够加载二进制数据或患者特定网格的IO功能。pyEIT的API是通用的和可扩展的。EIT社区的成员可以通过共享数据和开发的EIT算法从pyEIT中受益pyEIT也是不熟悉EIT的学术或行业用户的入门点致谢本 工 作 得 到 陕 西 省 自 然 科 学 基 础 研 究 计 划 ( 项 目 编 号 :200000000)的部分资助。2017JQ8008)和国家自然科学基金(批准号:61571445、81570231、81671846)。308B. Liu等人/SoftwareX 7(2018)304引用[1]持有人DS。电阻抗断层成像:方法、历史和应用。CRC Press;2004.[2]Adler A,Boyle A.电 阻抗 断层 扫描 : 组织 特 性的 图 像测 量。 IEEE TransBiomed Eng2017;64(11):2494-504。[3]Frerichs I,Amato MB ,van Kaam AH, Tingay DG,Zhao Z, GrychtolB,et al.胸部电阻抗断层扫描检查,数据分析,术语,临床应用和建议:翻译eit发展研究小组的共识声明。Thorax2016;1-11.http://dx.doi.org/10.1136/thoraxjnl-2016-208357.[4]傅芳,李波,戴明,胡世军,李新,徐春春,等。电阻抗断层成像在临床脱水治疗中监测局部脑水肿的应用。PLoS One 2014;9(12). e113202。[5]XuC,Wang L,Shi X,You F,Fu F,Liu R,et al.在小猪模型中通过电阻抗断层扫描进行颅内出血的实时成像和检测。国际医学研究杂志2010;38(5):1596-604。[6] Shi X,You F,Fu F,Liu R,You Y,Dai M,et al.电阻抗断层成像技术监测脑缺血的初步研究在:2008年第30届IEEE医学和生物学工程国际年会;2008年。http://dx.doi.org/10.1109/p. 1188–91[7]杨兵,石霞,戴明,徐春,尤锋,傅锋,等。电阻抗断层成像技术在兔脑梗死中的应用。国际医学研究杂志2014;42(1):173-83。[8]唐春,游锋,程国,高德,傅锋,杨国,等。活体人颅骨结构与电阻率变化的相关性。 IEEE Trans BiomedEng2008;55(9):2286-92。[9]Baumann SB,Wozny DR,Kelly SK,Meno FM.人体脑脊液在体温下的电导率。IEEE Trans Biomed Eng1997;44(3):220-3.[10]Li Y,Zhang D,Liu B,Jin Z,Duan W,Dong X,et al.全主动脉弓置换术中使用电阻抗断层扫描进行无创脑J Cardiothoracic Vascular Anesthesia 2018[in press]. 网址://dx.doi.org/10.1053/j.jvca.2018.05.002网站。[11]Adler A,LionheartWR. EIDORS的使用和滥用:EIT的可扩展软件基础。生理测量2006;27(5):S25.[12]阿德勒·戈麦斯-拉博什电导率变化和电极移动的直接EIT雅可比矩阵计算。生理测量2008;29(6):S89。[13]AdlerA,Arnold JH,Bayford R,Borsic A,Brown B,Dixon P,等.GREIT:肺部图像2D线性EIT重建的统一方法。生理测量2009;30(6):S35。[14]Cheney M,Isaacson D,Newell JC.电阻抗断层成像。SIAM Rev1999;41(1):85-101.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功