在电子断层扫描中,精确分割各种材料中的致密纳米颗粒是一个具有挑战性的问题,因为重建伪影会阻碍分割(例如,缺失的楔形伪影)。最近,部分离散代数重构技术(partial Discrete algeaic Reconstruction Technique, PDART)被提出,用于同时重构和分割嵌入(可能)非均质材料中的致密均匀粒子[23]。使用PDART,可以通过利用关于它们的灰度
q_j^{(k)}=\begin{cases}1&\text{if }\nu_j^{(k)}<\tau\\0&\text{if }\nu_j^{(k)}\geq\tau\end{cases},\quad s_j^{(k)}=\begin{cases}0&\text{if }\nu_j^{(k)}<\tau\\\rho&\text{if }\nu_j^{(k)}\geq\tau\end{cases},\quad\forall j\in\{1,\ldots,n\}. \tag{4}
qj(k)={10if νj(k)<τif νj(k)≥τ,sj(k)={0ρif νj(k)<τif νj(k)≥τ,∀j∈{1,…,n}.(4)
在迭代(+k 1)中,从投影数据中减去所有值大于阈值的像素的贡献:
探测器技术领域的快速发展使重建具有不断增加的分辨率,即不断增加的体积尺寸。虽然这种改进的分辨率对于分析显然是至关重要的,但它通常只在小范围内有益(ROI)。因此,由于更大的体积也会导致大大增加的计算负担(即使在计算硬件的现代改进下),理想情况下应该使用混合分辨率进行重建,将ROI内部缓慢的高分辨率(HR)重建与ROI外部快速的低分辨率(LR)重建相结合。
由于ASTRA投影几何允许为重建和投影数据指定不同的像素大小,因此通过定义两个单独的体/投影几何对可以轻松实现混合分辨率重建;一个用于全局低分辨率体积,另一个用于感兴趣的高分辨率区域。
考虑这样的情况,一个特定的对象可以在一个体积中表示,以原点为中心,256×256×256个体素,尺寸为1 nm×1 nm×1 nm,但其中一个只对一个小的40×40 ×40 nm区域感兴趣,以某一点为中心
uLR=a∗uHR,vLR=a∗vHR.(6)
同样,在当前版本的ASTRA工具箱中,坐标系的原点始终位于重建体的中心。然而,这可以很容易地通过向量将投影相对地移动到感兴趣区域的中心位置来规避。图5展示了这个多分辨率几何图形的创建。
混合分辨率体的投影和反投影算子可以通过组合两个单分辨率算子来编写,如图6所示。
为了执行重建,这些自定义运算符可以在图7所示的SIRT的MATLAB实现中使用。
请注意,另一种选择是,可以使用相同的原理来重建探测器原生分辨率的背景,同时通过应用超分辨率方案进一步提高ROI的分辨率[29]。然而,在本工作中没有进一步探讨这一点。
在文献中,可以找到许多重建技术,每种技术在特定用例中都有自己的优点。通常,它们以MATLAB脚本或函数的形式创建和分发,其中层析投影模型通过提供稀疏矩阵
W来指定,因此投影操作通过应用稀疏矩阵-向量乘积来执行,这可能很慢,并且需要大量的系统内存。因此,将高效的ASTRA投影仪操作符插入这些现有的代码框架是可取的。这可以通过单独可用的ASTRA Spot工具来实现。这些工具为投影操作提供了所谓的Spot包装器,并使它们像任何其他MATLAB矩阵一样出现和运行。通过这种方式,可以在不修改现有代码的情况下使用快速构建块。
作为一个例子,我们考虑了一个总变异最小化(TVmin)框架,这是一种重建技术,可以像PDART一样用来抵消缺失的楔形伪影的影响[30]。它通过寻找与测量值相对应的最稀疏解,或具有最稀疏梯度的解来实现:
\mathbf{v}^{*}=\arg\min_{\nu}\parallel\mathbf{W}\mathbf{v}-\mathbf{p}\parallel+\lambda\|TV(\mathbf{v})\|_{1}, \tag{7}
v∗=argνmin∥Wv−p∥+λ∥TV(v)∥1,(7)
其中
在本节中,我们将前一节中描述的技术和MATLAB脚本应用于两个实验双倾斜系列。倾斜序列是用比利时安特卫普大学EMAT实验室提供的FEI Tecnai G2电子显微镜记录的。这两个数据集对应于材料科学领域的实验,但相同的代码可以用于使用双轴电子断层扫描(例如,生命科学)或其他类型的断层扫描(例如,μCT和同步加速器)的其他应用。
第一个数据集如图9(a)所示,是从嵌入在聚合物基质中的金纳米颗粒组装中获得的[32-34]。纳米颗粒的平均直径为20纳米。为了获得该系列,使用了Fischione型号2040双倾斜断层摄影支架,显微镜在200 kV下工作。探头半会聚角为16 mrad,对应的聚焦深度约为70 nm。倾斜系列中的每个投影图像包含428×428像素。因此,重建的规模是选择在428×428×428体素。
图9(b)所示的第二个数据集是从一个尖刺的Au纳米星粒子中获得的[35,36]。使用Fischione型2040双倾斜层析支架。第一个系列在-70°到+70°的倾斜范围内获得,第二个系列在-66°到+72°的倾斜范围内获得。两种情况下的倾斜增量均为2°。加速电压为200kv。倾斜系列中的每个投影图像包含256×256像素。重建的大小选择为256×256×256体素。
在两个数据集的预处理步骤中,(两个倾斜系列的)所有投影图像彼此对齐[25]。
我们通过仅使用单倾斜系列和额外的第二个倾斜系列执行SIRT重建来描述双轴重建的功能,为此我们使用了第3.2节中解释的几何设置。对于纳米组装,重构是150次SIRT迭代的结果,同时具有最小值和最大值约束集(如第3.2节所示)。图10显示了这些重建结果。很明显,缺失的楔形伪影确实在密集颗粒周围大大减少,并且对分段密集颗粒的任何后续分析将更加准确。
对于纳米星数据集,使用500次SIRT迭代计算重建结果。这些重建的截面和表面效果图如图11所示。当检查用虚线圈表示的区域时,可以清楚地看到,由于缺少楔形伪影,单个倾斜序列重建并不能提供准确重建的峰值。此外,我们观察到,在第一次倾斜序列中重建较差的区域,通常在基于第二次倾斜序列的重建中更加准确,反之亦然[28]。然而,通过使用完整的双轴项目数据,我们能够在整个体量中创建准确的重建。
Au纳米组装数据集是使用PDART方法重建的理想候选数据集。在图12中,显示了单轴和双轴倾斜序列的PDART重建。同样,双轴断层扫描明显减少了缺失的楔形伪影,甚至比图10(b)的SIRT重建效果更好。此外,使用PDART算法可以很容易地从重建中提取密集的粒子,同时在背景中仍然提供良好的重建。
接下来,我们研究3.4节中描述的混合分辨率重建的效果。在Au纳米组装数据集中,我们选择了64×64×64框中的单个致密粒子作为我们感兴趣的区域。如图5所示,我们将背景采样降低了1/4和1/8,有效地将重建方程中的体素数从78,402,752减少到1,483,091(1.9%)和414,760(0.53%)。图13显示了这些混合分辨率SIRT重建结果。与全分辨率重建相比,我们还包括了该ROI中重建的均方根误差(即图10)。由于这些rmse值相对较低,我们可以说对背景进行降采样对ROI内部的精度影响很小。在第4.2节中,我们将研究由此带来的重建时间上的好处。
最后,我们应用了在外部MATLAB脚本中实现的Chambolle-Pock电视最小化重建方法,但它使用ASTRA工具箱进行投影和反向投影操作。图14显示了λ=10的重建。由于在此重建过程中将11范数最小化,因此在所有先前重建的背景中出现的小灰度变化在此不可见。
在本文中,我们已经证明了ASTRA工具箱可以有效地用于开发和实现电子断层扫描的高级算法,并在现实世界的数据集上运行这些算法。ASTRA工具箱提供了精确指定实验几何背景的可能性,允许采集方案的充分灵活性。在这里,我们展示了在重建中使用双轴倾斜方案的可能性。通过将几何定义与复杂的算法概念(part中的掩模,一种实现快速重建的多分辨率方案)相结合,可以使用MATLAB语言或Python(也支持Python)中的简短脚本形成高级算法。
我们的实验结果表明,相对简单的复杂算法可以直接适用于实验数据集。这些实验绝不是详尽无遗的,但有助于说明ASTRA工具箱与电子断层扫描相关的关键特征,以及使用典型GPU配备的工作站获得的运行时间,以及在实验HAADF-STEM数据集上观察到的输出。
在电子断层扫描中值得注意的一个特殊用例是在高级对准方案中使用几何灵活性。目前基于投影图像互相关的对准方法只对投影图像提供简单的二维位移和旋转校正,尽管实际的几何畸变可能更复杂(例如,涉及与探测器不完全在同一平面上的倾斜轴)。尽管基于标记的方法可用于恢复此类三维几何变形的参数,但在重建算法中最佳地使用这些参数需要完全灵活的投影和反投影实现,这在现有的软件包中通常是不可用的。ASTRA工具箱为开发先进的对准算法和在先进的重建方法中使用检索到的几何参数提供了一个非常合适的平台。
ASTRA工具箱支持的其他操作,如投影数据和特定图像体素集的掩蔽操作,促进了广泛的高级重建算法的直接实现,包括DART和TV最小化方案。由于所有基本操作都能够在现代GPU硬件上实现较高的计算性能,因此这些算法随后可以以相对较低的运行时间应用于实验数据集。
尽管在算法开发和应用方面有这些优势,ASTRA工具箱绝不是目前在电子断层扫描中使用的现有软件包的替代品。对于这种用途,它目前缺乏几个关键功能:
(i) 一个直观的用户界面,提供简单和图形化的关键断层扫描操作;
(ii) 处理电子显微镜和断层扫描中常见的各种文件格式的能力;
(iii) 实现电子断层扫描中常用的各种预处理和后处理操作(例如,对准和去噪)。
由于这些原因,我们预计有三组用户将从ASTRA工具箱中受益。第一组由活跃于电子显微镜实验室的以计算为导向的研究人员组成。使用先进的显微镜技术进行尖端实验,通常会产生不适合用标准算法处理的成像数据。为了处理这些数据,必须针对手头的特定数据集定制重建算法,这可能涉及编写程序代码。这些用户将从ASTRA工具箱中受益匪浅,因为ASTRA工具箱是一个仍然提供高度定制的高级平台。第二类是电子断层扫描软件包的开发人员。由于ASTRA工具箱是开源软件,具有非商业用途的免费许可证(GPLv3),因此它可以用作电子断层扫描领域精细软件开发的构建块。最后,ASTRA工具箱提供的高级接口可以弥合目前数值数学和成像研究人员与实验用户之间存在的差距。特别是Spot算子的使用,如第3.5节所示,使我们能够用线性代数符号(数学研究人员常用的)表示高级算法,并在实验数据上使用这些算法。到目前为止,由于MATLAB等高级数值软件包中可用的标准操作的限制,这一步通常很难完成。
目前,ASTRA工具箱支持的许多操作仅限于完全适合GPU内存空间的数据集(在写入时可达12 GB),这对处理非常大的数据集施加了限制。目前的研究和实现工作集中在将功能扩展到更大尺寸的数据集上,这不仅发生在电子断层扫描中,而且还发生在其他广泛的断层扫描应用中(例如,基于X射线图像)。
推荐使用:ASTRA Toolbox——高性能GPU驱动的二维三维重建工具箱
项目地址:https://gitcode.com/gh_mirrors/as/astra-toolbox
在探索和研究医学成像、材料科学或者任何涉及立体图像重建的领域时,你是否需要一款强大而灵活的工具来处理大量的数据?那么,ASTRA Toolbox 将是你的理想之选。
ASTRA Toolbox 是一个专为 ...
ASTRA工具箱
ASTRA工具箱是用于2D和3D层析成像的高性能GPU基元的MATLAB和Python工具箱。
我们支持2D平行束和扇形束几何,以及3D平行束和圆锥形束。 它们都具有高度灵活的源/检测器定位。
大量2D和3D算法可用,包括FBP,SIRT,SART,CGLS。
基本的前向和后向投影操作都是GPU加速的,可以直接从MATLAB和Python调用以启用构建新算法的功能。
文件/样品
请参阅sample /和上的MATLAB和Python代码示例。
Windows,二进制
将mex和tools子目录添加到您的MATLAB路径,或将Python astra模块复制到您的Python site-packages目录。 我们需要Microsoft Visual Studio 2015可再发行组件包。 如果您的系统上尚未安装此文件,则它将作为vc_redist.x64.
REST即访问性状态传递(英文Representational State Transfer,简称REST)是新兴的WEB协议,访问方式和普通的HTTP类似,分GET和POST两种请求方式。
REST API 的渗透测试非常复杂,因为现有的 API 会不断更新和变化,而且还会不断增加新的 API。可以帮助他们完成大量工作,并在开发周期的早期过程中可以检测并修复安全漏洞。Astra可以自动检测并测试登录和退出功能(认证API),因此任何人都可以轻松将其集成到CICD管道中。主题,Astra还可以将API**