电阻抗成像OpenEIT 番外篇 简单算法

news2024/11/13 9:48:36

算法意义

在这里插入图片描述
C → Y → V → e C\rightarrow Y \rightarrow V \rightarrow e CYVe

符号

符号含义
Ω \Omega Ω研究图像区域
∂ Ω \partial\Omega Ω研究图像区域的边界
ϕ ( x , y ) \phi(x,y) ϕ(x,y)代求电导率
σ ( x , y ) \sigma(x,y) σ(x,y)节点电压 e 电导率
j n ( x , y ) j_n(x,y) jn(x,y)注入表面电流密度分布
N同态分割网格的个数
Δ x \Delta x Δxx轴向的网格边长
Δ y \Delta y Δyy轴向的网格边长,令 p i = Δ x Δ y p_i=\Delta x\Delta y pi=ΔxΔy
C ={ c x , y c_{x,y} cx,y}连续电导率分布在实数中离散化, c x , y c_{x,y} cx,y

在该方法中,离散化域被建模为导纳网络,其中基尔霍夫电 压定律的应用为每个单元产生以下线性方程:

符号含义
V x , y V_{x,y} Vx,y(x,y)节点处的离散电势
Y y + Y_{y^+} Yy+导纳项
  • 电压 = 电压/导纳率
    V x , y = 1 Y x − + Y x + + Y y − + Y y + ( Y x + V x + Δ x , y + Y x − V x − Δ x , y + Y y + V x , y + Δ y + Y y − V x , y − Δ y − I i e ) (1) V_{x,y}=\frac{1}{Y_{x^{-}}+ Y_{x^{+}}+ Y_{y^{-}}+ Y_{y^{+}} }( Y_{x^{+}}V_{x+\Delta x,y}+ Y_{x^{-}}V_{x-\Delta x,y}+ Y_{y^{+}}V_{x,y+\Delta y}+ Y_{y^{-}}V_{x,y-\Delta y} - I_{ie}) \tag{1} Vx,y=Yx+Yx++Yy+Yy+1(Yx+Vx+Δx,y+YxVxΔx,y+Yy+Vx,y+Δy+YyVx,yΔyIie)(1)
符号含义
V x , y V_{x,y} Vx,y(x,y)节点处的离散电势
I i e I_{ie} Iie方程的已知电源项(源)

导纳项计算如下(由C推断Y(C是连续的初始假设的,Y是离散的),以 Y y + Y_{y^+} Yy+为例):
Y y + = c x + ∗ Δ y Δ x = 2 c x , y c x + Δ x , y c x , y + c x + Δ x , y ∗ Δ y Δ x (2) Y_{y^+}=c_{x^+}*\frac{\Delta y}{\Delta x}=\frac{2c_{x,y} c_{x+\Delta x,y} }{c_{x,y}+ c_{x+\Delta x,y}} *\frac{\Delta y}{\Delta x} \tag{2} Yy+=cx+ΔxΔy=cx,y+cx+Δx,y2cx,ycx+Δx,yΔxΔy(2)

为了在N个未知数中求解N个方程的平方线性系统,可以使用迭代或直接方法。

Iterative solution

  • V n + 1 V^{n+1} Vn+1表示第n+1次
    在这里插入图片描述
    过松弛参数1 < α \alpha α< 2, V ( x , y ) V(x,y) V(x,y)的计算使用公式1.

Non-iterative solution(线性系统)

Y ( N − 1 , n − 1 ) ∗ V ( N − 1 , 1 ) = I ( N − 1 , 1 ) (4) Y_{(N-1,n-1)}*V_{(N-1,1)} =I_{(N-1,1)}\tag{4} Y(N1,n1)V(N1,1)=I(N1,1)(4)

符号含义
V = [ V 1 … V N − 1 ] T V=[V_1… V_{N-1} ]^T V=[V1VN1]T未知离散电压分布
I = [ I 1 … I N − 1 ] I=[I_1… I_{N-1} ] I=[I1IN1]已知离散电流分布
Y = [ y i j ] i = 1 … N − 1 j = 1 … N − 1 Y=[y_{ij}]_{i=1…N-1}^{j=1…N-1} Y=[yij]i=1N1j=1N1电导率矩阵

,其中每行都有所有零元素,但通常有五个元素除外,如等式(1)所示
通过求Y逆,可以获得线性系统的解向量V

Computed voltages

为了收集计算的电压,通过放置在身体表面上的电极施加多个P电流注入。
所有实现的重构算法都需要为每个注入模式计算定义良好的电极对之间的电压差的数量G。

所计算的电压被存储到M = P*G个向量 g c o m p g^{comp} gcomp中,并且可以通过求解系统(4)的P倍并考虑V向量的对应元素之间的差异来评估它们:

g c o m p ( c ) = T V ′ = T Y ′ − 1 I ′ (5) g^{comp}(c)= TV'=TY'^{-1}I' \tag 5 gcomp(c)=TV=TY1I(5)

其中列向量c是通过堆叠先前引入的c矩阵的行而获得的,其通用元素ci表示第i个像素的电导率;T是一个变换矩阵,它只从与电极相关的单元中提取电压,并且其行具有除两个值为1和-1之外的所有零元素;
在这里插入图片描述
是两个向量,其中Vj是 I = I j I=I_j I=Ij时的系统(4)的解;Y’是块对角矩阵
其中每个块仅由Y给出。因此, g c o m p ( c ) g^{comp}(c) gcomp(c)的元素 g i j g_{ij} gij是第i个和第j个电极之间存在的电压差。

Measured voltages

为了收集测量的电压,模拟中使用的相同电流注入模式应通过放置在必须估计电导率的真实物体表面上的电极施加。在这项工作中,通过使用导纳法对所考虑的电导率分布(见图1)进行模拟,获得了测量电压,并将其存储在 M × 1 M×1 M×1的向量 g m e a s g^{meas} gmeas

3. The Newton-Raphson reconstruction algorithm

目前,EIT中使用重建算法来解决逆问题,即通过find表面电压和电流密度来找到电导率分布

Newton-Raphson(N&R)方法的目的是最小化误差函数e, 其中e是从实际电导率分布测量的电压差和从给定的已知离散电导率分布计算的电压差之间的矢量。定义如下:
在这里插入图片描述

  • c = c 1 c =c ^1 c=c1初始化,向前传播 ,并计算 g c o m p ( c 1 ) g^{comp}(c ^1) gcomp(c1)
  • 计算 e 1 e^1 e1
  • c 1 + Δ c 1 = c 2 c^1 + \Delta c^1 = c^2 c1+Δc1=c2

在这里插入图片描述

在这里插入图片描述

  • 迭代至收敛

CG

人体区域电阻抗层析成像算法研究
A Lagrange-Newton Method for EIT/UT Dual-Modality Image Reconstruction †
人体区域电阻抗层析成像系统硬件设计
https://koreascience.kr/article/CFKO200333239336420.pdf

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178062.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++ 多线程12:内存模型(stdmemory_order)

cpp 多线程&#xff1a;内存模型(std::memory_order) 文章目录cpp 多线程&#xff1a;内存模型(std::memory_order)概念内存模型基础原子操作间的关系Synchronized-withHappens-beforestd::memory_orderRelaxed orderingRelease-Consume orderingRelease-Acquire orderingSeque…

UnityEditor编辑器扩展开发-自定义Shader入门

估计需要自定义Shader 的人不多下面内容就看看作为小白的我们&#xff0c;无从入手&#xff0c;当然首先看看 Amplify Shader Editor(ASE&#xff09;是如何实现Shader定义&#xff0c;从(ASE)的Shader代码&#xff0c;得知自定义原理&#xff08;代码&#xff09;//CustomEdit…

前端艺术之毛玻璃-倾斜-日历

前端艺术之毛玻璃-倾斜-日历描述项目效果index.htmlindex.css描述 项目描述开发语言HTML、JavaScript、CSS库dyCalendarJS、vanilla-tiltEdge108.0.1462.54 (正式版本) (64 位) 该项目中需要使用到的库有&#xff1a; dyCalendarJS vanilla-tilt.js 是 JavaScript 中的一个平…

C++ | 哈希 | 基于开散列结构的unordered系列容器模拟实现

文章目录unordered_map的封装所有接口的声明与实现operator[]重载unordered_set的封装上篇博客模拟实现了哈希的开散列结构&#xff0c;并且将迭代器与泛型进行了封装&#xff0c;至此我们可以将开散列作为底层结构对STL标准容器——unordered_map和unordered_set进行封装。但是…

使用Vue 简化 用户查询/添加功能

使用Vue简化 用户查询/添加功能1. 查询功能1.1 Vue核心对象&#xff1a;1.2 brand.html&#xff1a;1.3 selectAllServlet&#xff08;无变化&#xff09;&#xff1a;2. 添加功能2.1 addBrandhtml&#xff1a;2.2 Vue核心对象&#xff1a;2.3 addServlet&#xff08;无变化&am…

网关zuul源码解析==ZuulServlet

用法&#xff1a; 使用zuul网关&#xff0c;需要引入starter为 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId> </dependency> 同时在springboot启动类上加注解…

7、代码模板的使用

文章目录7、代码模板的使用7.1 查看Postfix Completion模板&#xff08;后缀补全&#xff09;7.2 查看Live Templates模板&#xff08;实时模板&#xff09;7.3 常用代码模板1 非空判断2 遍历数组和集合3 输出语句4 对象操作5 静态常量声明7.4 自定义代码模板1 自定义Postfix C…

Android入门第60天-MVVM中的Databinding与ListView结合使用

开篇 还记得我们进入Listview、GridView都是以一个layoutadapter组合在一起来实现的是吧&#xff1f;那么还记得我们的Adapter的写法么&#xff1f; 在我们的Adapter里提供了一个bindView方法 。 在调用时我们需要在Activity里把layout里的控件元素一个个传给这个Adapter。 在我…

【Linux】文件权限

本期我们来谈谈Linux上的权限&#xff1a;一、权限的概念在生活中我们处处都会遇到权限。权限是什么呢&#xff1f;下面是对于权限的定义&#xff1a;&#x1f4cc;权限&#xff1a;一件事是否允许被“谁”做&#x1f4cc;简化一下就是&#xff1a;权限人事物属性&#x1f4cb;…

【ROS-Navigation】—— Astar路径规划算法解析

文章目录前言1. 导航的相关启动和配置文件1.1 demo01_gazebo.launch1.2 nav06_path.launch1.3 nav04_amcl.launch1.4 nav05_path.launch1.5 move_base_params.yaml1.6 global_planner_params.yaml2. Astar路径规划算法解析2.1 astar.h2.2 astar.cpp参考文献前言 最近在学习ROS的…

《职场求生攻略》学习笔记 Day8

系列文章目录 这是本周期内系列打卡文章的所有文章的目录 《Go 并发数据结构和算法实践》学习笔记 Day 1《Go 并发数据结构和算法实践》学习笔记 Day 2《说透芯片》学习笔记 Day 3《深入浅出计算机组成原理》学习笔记 Day 4《编程高手必学的内存知识》学习笔记 Day 5NUMA内存知…

JavaEE-多线程进阶

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录常见的锁策略乐观锁 vs 悲观锁轻量级锁 vs 重量级锁自旋锁 vs 挂起等待锁互斥锁 vs 读写锁公平锁 vs 非公平锁可重入锁 vs 不可…

恶意代码分析实战 8 恶意代码行为

8.1 Lab 11-01 代码分析 首先使用strings进行分析。 Gina是在 msgina.dll中的。 很多有关资源的函数。 关于注册表的函数。 使用ResourceHacker查看。 发现是一个PE文件。 保存为dll文件。 动态分析 启动Promon。 进入注册表查看。 这个恶意代码向磁盘释放了什么&…

分享140个ASP源码,总有一款适合您

ASP源码 分享140个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 140个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1vxAMMEI7WYS8SAnfbJKdGQ?pwdsas8 提取码&#x…

【ARIXV2209】Multi-Scale Attention Network for Single Image Super-Resolution

【ARIXV2209】Multi-Scale Attention Network for Single Image Super-Resolution 代码&#xff1a;https://github.com/icandle/MAN 这是来自南开大学的工作&#xff0c;将多尺度机制与大核注意机制结合&#xff0c;用于图像超分辨率。 2022年初&#xff0c;大核卷积火了&a…

GBD学习

GBD gbd官网 GDB, the GNU Project debugger 是一个debug工具 支持多种语言&#xff1a; Ada、Assembly、C、C、D、Fortran、Go、 Objective-C、OpenCL、Modula-2、Pascal、Rust 编译文件 首先使用gcc -g .c文件 -o 可执行文件名 进行编译&#xff0c;再使用gdb 可执行文件名…

恶意代码分析实战 10 数据加密

10.1 Lab13-01 比较恶意代码中的字符串&#xff08;字符串命令的输出&#xff09;与动态分析提供的有用信息&#xff0c;基于这些比较&#xff0c;哪些元素可能被加密&#xff1f; 使用WireShark进行动态分析。 有一串字符看起来像是加密的。 使用Strings分析一下。 发现疑似…

KUKA机器人初次通电配置

安全配置 机器人KSS系统里&#xff0c;会提示选择机器人信息的对话框&#xff0c;选择“机器人”按钮&#xff0c;如下&#xff1a; 承接上一步骤&#xff0c;通过示教器确认所有消息&#xff0c;单击消息提示区域&#xff0c;此时一定会弹出如图 所标示的报警消息&#xff0…

【唐诗学习】一、古诗概述

一、古诗概述 为什么要学习古诗词&#xff1f; 古诗词可以陶冶情操&#xff0c;传承文化诗词&#xff0c;其实就是古代的流行歌曲&#xff0c;它们记录着一个个时代的变迁&#xff0c;是历史的旋律。还有一点很重要&#xff1a;同样是记录历史&#xff0c;史书是国家视角&…

零基础学JavaWeb开发(二十二)之 springmvc入门到精通(2)

3、SpringMVC PostMan工具使用 PostMan简介 Postman 是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 。做web页面开发和测试的人员会使用到该工具其主要特点 特点&#xff1a; 创建 测试&#xff1a;创建和发送任何的HTTP请求&#xff0c;使用PostMan发送 Get、Post、…