基于瓦片的模块化数字全息二维相位展开

摘要: 许多物理和生物医学成像技术,如数字全息术、干涉合成孔径雷达(InSAR)或磁共振成像(MRI),能够测量物理量的相位以及振幅。然而,相位通常只能以所谓的包裹相位图的形式测量,即模2π。相位展开是从包裹相位图中获取底层物理相位图的过程。瓦片基相位展开算法首先将相位图划分为瓦片,然后逐个展开瓦片,最后将它们合并为连续的相位图。这些算法在计算上高效且对噪声鲁棒,但在存在相位残留或单个瓦片错误展开时容易失败。我们通过创建新的瓦片展开和合并算法以及创建一个允许以模块化方式结合它们的框架来克服这些缺点。为了增加瓦片展开步骤的鲁棒性,我们实现了一个基于模型的算法,该算法利用线性代数高效地展开单个瓦片。此外,我们改编了一个已建立的基于像素的展开算法,创建了一个质量引导的瓦片合并器。这些原创算法以及之前存在的算法都在一个模块化的相位展开C++框架中实现。通过检查不同组合的展开和合并算法,我们将我们的方法与现有方法进行了比较。我们展示了在存在相位残留和噪声的情况下,适当选择展开和合并算法可以显著改善展开结果。我们的模块化框架允许高效设计和测试新的瓦片基相位展开算法。本研究开发的软件是免费提供的。

引言:

能够测量复杂物理信号的相位是数字全息术等成像方法的关键优势。然而,由于相位图的2π周期性,测量结果通常会产生模2π的真实相位。这样的相位图被称为包裹的,并且会显示出2π大小的显著跳跃(包裹)。从数学角度来看,这是由于通常涉及复信号相位检索的反正切操作的结果。相位展开是从包裹相位图中去除2π模糊的过程。这个过程在一维情况下是平凡的,但在二维情况下变得极其具有挑战性,尤其是在测量误差恶化包裹相位图质量的情况下。相位展开已经研究了几十年,但由于应用数量的增加,它仍然是一个活跃的研究领域。相位展开算法可以以多种方式分类。我们遵循Harráez等人的方法,将相位展开算法分为三类:全局算法、路径跟随算法和基于区域的算法。全局算法通常通过最小化一个考虑包裹相位图所有像素的成本函数来工作。解决方案基于变换方法、贝叶斯估计或网络优化。路径跟随算法通过检测相邻像素之间的2π相位跳跃来展开相位图。这些算法通过使用简单的线性路径、复杂的分支切割算法或基于质量标准的展开路径来操作。基于区域的算法通过将相位图划分为子区域来工作。首先在子区域上执行相位展开,然后逐渐增长或合并展开的区域。瓦片基算法是区域基算法的一种特殊情况。相位图被划分为称为瓦片的矩形子区域,分为两个步骤处理:首先,单独展开瓦片;其次,将瓦片合并为连续的相位图。这种方法具有一些非常吸引人的特性,尤其是瓦片展开步骤可以通过并行化在计算上高效实现。然而,瓦片基算法在单个瓦片展开失败或相位残留的情况下容易传播错误。在本文中,我们为瓦片基相位展开开发了一个模块化的C++11框架。通过将瓦片基方法纳入模块化框架,我们能够实现不同的瓦片展开和合并算法。除了已建立的算法,我们还实现了瓦片展开和合并策略的原始版本。然后,我们将各种展开和合并算法的组合与现有方法进行了比较,包括瓦片基和基于像素的方法。我们展示了我们的算法可以在存在噪声和残留的情况下改善相位展开的结果。我们的模块化软件框架旨在开发和测试瓦片基相位展开算法,因此强调易用性和可读性而非执行速度。虽然算法实现了高效,但框架的模块化确实引入了开销,导致速度上的损失。本研究开发的软件已完全文档化,并作为开源软件免费提供。源代码、预编译的二进制文件和一个ImageJ插件可以通过GitHub存储库https://github.com/gc-ant/digiholo2D获取。

数学形式:

在本文中,我们将对整个文档中使用的符号和数学形式进行简要介绍,详细概述请参见[11, 31]。二维展开相位分布,事先未知,将被指定为ϕu(x, y)。引入一个包裹操作符W来获得相应的包裹相位图ϕw(x, y):

瓦片基相位展开框架: 在本文中,我们假设相位在不连续点的跳跃幅度小于π。这个假设对于使用数字全息术成像的平滑变化物体(如细胞或适当的技术表面)是成立的。此外,我们要求离散采样到一个网格(xi, yj),以满足Itoh条件[6]:

在上述假设下,相位展开问题的解决方案是唯一的。定量相位成像的一个重要现象是所谓的相位残留,可以这样理解:一个复杂的物理量的真正相位图ϕu是一个标量函数。因此,沿着任何闭合路径的梯度r ~ ϕ的积分必须为零,且积分是路径无关的。这意味着对于任何闭合路径沿着相应的包裹相位图ϕw = Wϕu,相邻像素之间的正2π跳跃数将等于负跳跃数。如果非包裹相位图是连续的或者其不连续性的幅度小于2π,并且按照Itoh条件进行采样[38],那么这是正确的。然而,实际的包裹相位图通常在称为残留的位置上违反这个条件[19]。对于具有残留的包裹相位分布的展开问题没有唯一的解决方案。

瓦片基相位展开: 假设给定的二维包裹相位图ϕw(x, y)在一个离散的矩形像素网格上,宽度为NX,高度为NY,使得xi, i = 1, ..., NX和yj, j = 1, ..., NY。瓦片基相位展开的基本思想是将包裹相位图划分为NτW × NτH个矩形瓦片τw, h,索引为w = 1, ..., NτW和h = 1, ..., NτH [25, 27–30]。然后,相位展开分为两个连续的步骤进行:

  1. 瓦片展开:每个瓦片τw, h单独展开。原则上,这一步可以同时为所有瓦片执行。
  2. 瓦片合并:在这一步中,通过向整个瓦片添加2π的整数倍来使用合并算法将瓦片合并为连续表面。

这个过程在图1中进行了图解。给定划分的瓦片总数为Nτ = NτW × NτH。

基于模型的相位展开:

基于模型的相位展开是一种基于区域的展开,它使用模型函数在子区域上实现相位展开[39–41]。这些子区域在第二步中合并为连续的相位图,这使得它很容易适应瓦片基方法。基于模型的相位展开的基础事实如下:给定任意函数f(x, y),有:

直观理解方程3的方法是将f解释为未知展开相位ϕu的一个合理猜测。如果这样的猜测可以从包裹相位中获得,那么可以通过向这个猜测函数f添加一个修正项W(ϕw - f)来计算展开相位。在基于模型的相位展开中,我们假设一个猜测函数的模型,例如多项式函数[40, 41]。展开相位的导数可以从相应的包裹相位图中轻松获得[6]:

在基于模型的相位展开中,我们通过将最小二乘拟合问题转化为线性系统来解决,使用奇异值分解(SVD)来解决。这在下一节中有详细说明。

图1 .基于瓦片的相位展开原理图。一个包裹相位图像被分割成矩形子区域,称为瓦片。首先将这些瓦片单独解缠,然后将它们合并到一个连续的曲面上。

算法:

在这一节中,我们将详细描述用于瓦片展开和合并的算法。

模型基最小二乘展开单个瓦片(MLSQU):

展开单个瓦片是上述两步算法的第一步。这里ϕw(x, y)是在瓦片τw h上给定的离散化包裹相位分布,ϕu(x, y)是相应的展开相位。坐标系统(x, y)属于瓦片τw, h。我们的模型基展开方法基于方程3和4。我们假设猜测函数f(x, y)为NB个基函数νl的线性组合:

其中νl(x, y)是解析给定的函数,cl是展开系数,ρ是一个常数偏移。我们假设,不失一般性,f的常数偏移仅由ρ给出。展开系数写为向量~c = (c_l)l=1,...,NB。为了计算展开系数,我们需要将位置双索引(x, y)替换为一个按行主序排列的单索引k,这样我们有k = 1, ..., Nt px,其中Nt px是瓦片中的像素数。我们现在将任何函数F(x, y)写为F(k)。通过最小二乘拟合f的梯度到ϕu的梯度,我们可以得到展开系数的解:

通过引入系统矩阵A和向量~g,我们将最小化问题转化为线性代数问题:

这里的梯度向量~g包含了瓦片内相位分布的导数。系统矩阵A由瓦片上基函数的导数值组成。对于一组固定的基函数,系统矩阵仅依赖于瓦片的几何形状。这意味着对于具有相同宽高的瓦片集合,系统矩阵的SVD只需要计算一次。利用这一事实对于使这种方法在计算上可行至关重要。对于具有相同宽高的瓦片划分,展开将以最大效率进行。数值线性代数使用Eigen C++库[43]实现。计算常数偏移。考虑到方程5,我们可以通过从瓦片在任意点(x0, y0)的值中减去已知展开系数的基函数线性组合的值来确定ρ。这种方法在低噪声设置和不希望额外计算开销的应用中是可行的。为了在噪声下实现最大鲁棒性,我们决定将Strand的瓦片展开算法[29]纳入我们的程序。相应地,我们为瓦片τ定义了一个罚函数P(τ):

其中dx1y和dy1x是一阶前向差分算子,h.i表示瓦片τ内所有位置的平均值。注意,对包裹相位应用有限差分算子后不进行包裹操作,因此相位跳跃将以2π贡献给罚函数。因此,这个函数是瓦片内相位跳跃数量的度量。

瓦片合并算法:

在完成所有单个瓦片的展开后,相邻瓦片之间可能显示出整数倍的±2π相位跳跃或0。合并算法,或合并器,通过向整个瓦片添加±2π的整数倍来将瓦片化的图像连接成一个连续的相位表面。向瓦片添加一个值意味着向瓦片内的每个像素添加这个值。我们称两个瓦片τA和τB的相邻像素集合为连接J_AB。我们引入连接J_AB的像素差异集合D(J_AB):

由于相位分布在矩形网格中划分,任何坐标为A = (wA, hA)的瓦片最多可以有四个邻居,分别对应于向上(wA, hA - 1)、向下(wA, hA + 1)、向左(wA - 1, hA)和向右(wA + 1, hA)的方向。为了量化相邻瓦片之间的相位跳跃,我们引入了连接的平均差异DJ_AB和方差VarJ_AB:

算法1通过使用相应连接的平均差异来展开两个相邻瓦片。本文中的算法以伪代码形式给出。

算法1 合并瓦片τA到瓦片τB:

  1. 找到相邻像素的平均差异:
  2. delta = DJ_AB
  3. 将差异四舍五入到最近的±2π的整数倍:
  4. jumpval = 2π * round(delta/2π)
  5. 将jumpval添加到τA的所有像素

单向瓦片合并器。在[29]中,Strand等人提出了一个简单且快速的合并算法,它只需要对每个瓦片进行一次遍历,参见算法2。这是Itoh经典一维展开方法[6]的修改。

算法2 单向瓦片合并器(按列):

  1. 按列从左到右遍历瓦片:
  2. 对于iw = 1, ..., NτW,执行以下步骤:
  3. 对于j = 1, ..., NτH,执行以下步骤:
  4. 找到当前瓦片τiw, ih的顶部和左侧邻居(如果存在):
  5. 找到邻居的连接差异的平均值:
  6. delta = 平均连接差异
  7. jumpval = 2π * round(delta/2π)
  8. 将delta添加到τiw, ih的所有像素

可靠性引导的SRNCP合并器(τSRNCP)。我们基于Herráez等人的SRNCP(“通过非连续路径排序的可靠性排序”)算法[10]开发了一个可靠性引导的瓦片合并器。基于像素的SRNCP算法的基本原则是分析相邻像素的连接,并根据可靠性值顺序展开它们。可靠性最高的连接首先被处理,展开的像素被分组以识别彼此之间没有剩余相位跳跃的像素集合。基于像素的SRNCP算法的可靠性利用了相位图的二阶导数。这个量不能简单地推广到瓦片。为了将这个算法适应瓦片基方法,我们引入了连接和瓦片的新的可靠性度量。瓦片的可靠性计算如下:首先,计算瓦片所有连接的VarJ_AB的方差,并将其平均值赋给V。瓦片的可靠性定义为R = 1/V。这意味着,当瓦片连续地过渡到所有邻居时,瓦片具有高可靠性。如果瓦片沿着连接相差2π的倍数,这也是正确的,因为方差在常数偏移下是不变的。噪声和相位残留会降低可靠性。连接的可靠性定义为属于它的两个瓦片的可靠性的乘积。分组和展开瓦片的过程与基于像素的SRNCP类似,并在算法3中详细描述。由于可靠性的定义,我们的瓦片基SRNCP合并器在很大程度上与基于像素的SRNCP算法不同。我们对可靠性的定义仅适用于瓦片基方法,并且在单个像素瓦片的极限情况下不会收敛到基于像素的方法。在本文中,当我们提到基于像素的SRNCP算法时,我们指的是Herráez等人的原始实现,而瓦片基τSRNCP合并器指的是我们对合并算法的适应。

算法3 瓦片基τSRNCP合并器: 计算连接的可靠性:

  1. L = 瓦片化图像中所有连接的列表。
  2. 计算L中每个连接的可靠性。 分组和合并瓦片:
  3. 将每个瓦片设置为不属于任何组。
  4. 按连接可靠性降序排序L。
  5. 对于L中的所有连接J_AB,执行以下步骤:
  6. 如果τA和τB都不属于任何组,则:
  7. MERGE TILES (τA, τB)并生成一个包含两个瓦片的新组。
  8. 否则,如果只有τB属于一个组,则:
  9. MERGE TILES (τA, τB)并将τA添加到τB的组中。
  10. 否则,如果只有τA属于一个组,则:
  11. MERGE TILES (τB, τA)并将τB添加到τA的组中。
  12. 否则。两个瓦片都属于组:
  13. 将较小的组的所有瓦片合并到较大的瓦片τA, B中。
  14. 将较小的组同化到较大的组中。

这种方法通过定义可靠性来确保在合并过程中,首先处理那些可靠性高的瓦片,从而减少由于错误展开导致的相位跳跃对最终结果的影响。这种策略特别适用于存在相位残留的情况下,因为这些残留会导致传统的展开算法失败。通过优先处理可靠性高的瓦片,我们可以最小化这些错误对整个相位图的影响。

在实际应用中,这种模块化的瓦片基相位展开框架允许研究者根据具体的数据特性和需求,灵活地选择和组合不同的展开和合并算法。这种灵活性使得框架成为一个强大的工具,可以用于开发和测试新的相位展开算法,同时也为未来的算法优化和改进提供了基础。通过这种方式,研究者可以针对特定的成像技术和应用场景,定制出更加高效和鲁棒的相位展开解决方案。

方法:

为了评估我们提出的方法在合成和测量数据集上的质量,我们评估了不同瓦片展开器和合并器的组合。我们进一步分析了基于像素的SRNCP算法的性能。对于基于模型的瓦片展开,我们选择了单项式基函数,因此每个瓦片上的模型函数f可以写成:

其中Px和Py分别是x和y方向上幂的最大次数。我们设置Px = Py = P,从而得到一个2P阶的多项式,以及(P + 1)^2 - 1个系数。常数项x^0 * y^0被吸收到常数偏移ρ中。

在合成相位图上的应用: 我们在一个二次网格上生成了一个真实的合成相位图ϕu,网格大小为NX = NY = 600像素。这个网格的左上角像素被指定为原点(0, 0)。合成相位由两个重叠的高斯轮廓组成,其解析表达式如下:

虽然轮廓的具体形状是任意选择的,但高斯相位轮廓通常用作合成相位分布。此外,高斯相位轮廓不能简单地由一组单项式基函数拟合。我们通过添加一个零均值的高斯白噪声分布Ns(x, y)来获得噪声相位分布,其标准差σ。噪声包裹相位分布是通过ϕs_w = Wϕs生成的,其中σ的范围是[0, 1],步长为0.1。包裹相位图通过不同的瓦片基展开和合并算法以及基于像素的SRNCP算法进行处理。为了量化算法ϕ_alg_u相对于真实相位ϕ_s_u的结果的准确性,我们计算了真实相位和展开相位图之间的偏差D:

其中,以补偿这些相位图之间可能存在的常数偏移。对于每个σ的噪声水平,我们计算了25个分布的平均偏差,并将其作为噪声水平σ的函数绘制出来。向相位图像添加零均值的高斯白噪声是量化相位展开算法性能的常见做法。然而,必须注意的是,零均值的高斯白噪声并不是许多现实世界应用中噪声源的有效模型。尽管如此,结果准确地指示了算法对违反Itoh采样条件(例如由于测量数据集的低信噪比)的鲁棒性。

在合成相位图上的应用(含噪声和残留):

在存在残留的情况下,展开算法的性能是一个重要问题。为了定性地评估我们提出的瓦片基方法在存在相位残留时的性能,我们按照以下步骤生成了一个合成相位图:首先,我们创建了一个无噪声的真实相位分布,如前一节所述。然后,我们在相位包裹线上放置了一个矩形,并应用了一个宽度为5像素的高斯模糊滤波器。这创建了一个平滑的边界,并消除了该区域内的相位跳跃。最后,我们向整个相位图添加了一个标准差σ = 0.3的零均值高斯噪声,并包裹了结果图像以获得一个带有残留的噪声包裹相位。由于任何带有残留的包裹相位分布的展开没有唯一解,我们通过定性评估相位残留对结果的影响来比较几种瓦片基算法和基于像素的SRNCP展开器的性能。

在测量的数字全息数据集上的应用。我们还将所提出的算法应用于通过数字全息装置获得的真实世界包裹相位分布,如Kalies和Antonopoulos等人报道的那样。提供的样本是Murua Escobar等人提供的犬类ZMTH3腺瘤细胞。包裹相位图的尺寸为1400 × 1400像素。

结果和讨论:

合成相位(含噪声):

我们分析了不同噪声水平σ下,展开相位与噪声真实相位的偏差(见图2数据和图3示例图像)。对于每个噪声水平,我们计算了25个相位图的平均偏差。我们比较了不同的瓦片基展开和合并算法与基于像素的SRNCP展开器。我们还重现了Strand的原始展开算法,通过将Strand的瓦片展开器和单向合并器结合起来。对于Strand的算法,我们使用了Nτ = 40 × 40瓦片的划分。我们提出的算法通过将相位划分为Nτ = 20 × 20瓦片,并应用我们的基于模型的瓦片展开器(多项式阶P = 2)进行了测试。对于合并,我们使用了我们的τSRNCP合并器。在σ = 0.3的噪声水平下,这三种相位展开算法都产生了非常好的结果,平均偏差在10^-5的量级。当噪声水平达到σ = 0.6时,平均偏差上升到10^-2。对于更高的噪声水平,偏差在σ = 1.0时分别上升到0.4和0.49,分别对应Strand的算法和我们提出的算法。相比之下,基于像素的SRNCP合并器在σ = 1.0时出现了显著的偏差(7.5),这是由于单个像素展开失败传播到大面积的原因。对于瓦片基方法,错误的展开保持在瓦片内部,不太可能在合并步骤中传播到更多的瓦片。这就是瓦片基方法对高频噪声鲁棒性的原因。值得注意的是,基于τSRNCP合并器的瓦片基τSRNCP合并器也继承了这种鲁棒性,同时仍然遵循原始算法的可靠性引导合并原则。我们通过在瓦片展开失败的情况下测试它,探索了不同合并算法对结果的影响。为此,我们使用Strand的算法,将相位划分为Nτ = 20 × 20瓦片。一些瓦片包含多个相位包裹,因此在无噪声情况下也无法正确展开。对于σ < 0.8的噪声水平,τSRNCP产生的偏差低于单向合并器。这是由于单向合并器倾向于将展开失败传播到后续瓦片。τSRNCP合并器由于首先处理可靠的连接,因此不太可能将错误传播到大面积。这表明,采用质量引导的合并器可以减少失败瓦片展开对结果的影响,相比于线性方法。作为参考,本节中使用的算法的运行时间在表1中给出。由于框架引入的计算开销和线性代数操作的复杂性,涉及MLSQU瓦片展开器的算法比其他简单算法具有更长的执行时间。然而,需要注意的是,所有展开过程都是在单个核心上顺序执行的,因为尚未实现并行化。

图2. 不同算法从带有指定σ值的白高斯噪声的真实相位中展开相位的偏差。显示了25个相位图像相对于真实相位的平均偏差,噪声水平为σ。(!) 使用基于模型的瓦片展开器(多项式基P = 2)和Nτ = 20 × 20瓦片以及Nρ = 40步最小化进行合并。合并使用我们的τSRNCP合并器。(•) 基于像素的SRNCP算法。在σ = 1.0时,偏差超出了绘图范围,值为7.7弧度。(&) Strand的原始算法,使用Nτ = 40 × 40瓦片和Nρ = 20。(✦) 和 (4) 显示了使用Strand的展开器,瓦片大小包含超过一个相位包裹,使用Nρ = 40。在这种情况下,瓦片展开失败,偏差分析了两种不同的合并算法:(✦) 单向合并器和(4) τSRNCP合并器。本文提出的算法用黑色框表示。 

合成相位(含噪声和残留):

在存在噪声和残留的情况下展开合成相位图的结果如图4所示。我们使用基于像素的SRNCP算法(图4B)和Strand的原始展开和合并算法(图4C)展开了相位图。对于Strand的算法,我们在x和y方向上使用了Nτ = 40 × 40瓦片的划分。两种算法都在大约三分之一和四分之一的图像区域传播了展开错误。在合成噪声情况下没有残留时,两种算法在噪声水平翻倍时都表现出非常好的结果。接下来,我们比较了将我们提出的基于模型的瓦片展开器与Strand的单向合并器以及我们提出的τSRNCP合并器结合起来的结果。使用P = 2的多项式模型,并将瓦片计数设置为Nτ = 20 × 20,从而将每个瓦片的面积翻倍。使用单向合并器合并瓦片会将由于相位残留导致的展开错误传播到一些相邻瓦片,如图4D所示。当使用τSRNCP合并器合并瓦片时,展开相位仅在包含残留的四个瓦片上受到影响。由于所有四个瓦片在至少一个边界上受到相位残留的影响,它们的可靠性相对于没有残留的瓦片降低了。这确保了它们将在合并过程中最后被处理。因此,展开错误不会传播到更多的瓦片。受影响的区域对应于相位图总面积的0.25%。这表明,将基于模型的瓦片展开与可靠性引导的合并过程结合起来,可以在存在残留的情况下防止展开错误在展开相位图中的传播。最后,我们将图像划分为仅2 × 2瓦片,并使用P = 6的多项式和MLSQU瓦片展开器展开瓦片,如图4F所示。残留位于左上角瓦片内,展开后残留对瓦片的影响很小。合并使用τSRNCP合并器进行,但由于残留不影响瓦片的边界,使用单向合并器将产生相同的结果。因此,通过选择足够大的瓦片大小,使残留位于瓦片内部,最终的展开相位将仅在残留附近的像素上受到影响。这展示了我们提出的基于模型的瓦片展开器相对于Strand方法的价值:所提出的基于模型的瓦片展开算法能够处理包含不止一个相位包裹的瓦片。在合成数据集上的三个关键点:首先,瓦片基方法提高了基于可靠性引导的SRNCP展开算法对高频噪声的鲁棒性。其次,τSRNCP合并算法在瓦片展开失败或存在相位残留时显著提高了展开相位图的质量。最后,基于模型的瓦片展开算法允许使用比Strand方法更大的瓦片尺寸。在噪声和相位残留存在的情况下,该展开器表现良好。总的来说,我们展示了在合成数据集上,瓦片基方法在处理相位展开时的有效性,特别是在存在相位残留的情况下。

图3. 不同算法在不同噪声水平下的相位展开比较。A、B、C:不同噪声水平下的包裹相位分布。D、E、F:瓦片基展开,瓦片大小为20×20,使用Strand的瓦片展开器(Nρ = 20)。瓦片展开使用模型基最小二乘展开器(MLSQU)进行,多项式阶数P = 2,Nρ = 40。合并使用基于瓦片的τSRNCP合并器。G、H、I:瓦片基展开,瓦片大小为40×40。瓦片展开使用Strand的瓦片展开器(Nρ = 20)和单向合并器。这对应于Strand的原始算法。J、K、L:使用基于像素的SRNCP算法进行相位展开。对于全分辨率图形,请参见S1图。在所有情况下,合成噪声分布的σ = 0.6,尺寸为600×600像素。算法运行时间在高端台式电脑(Intel i5-4570 3.2GHz CPU,32 GB RAM)上测量,单核顺序执行。运行时间是五次独立测量的平均值。

见表1。相位解缠算法的运行时间。对于基于瓦片的算法,总的运行时间是瓦片解包器和瓦片合并的运行时间之和。对于基于模型的瓦片解包器( MSLQU ),系统矩阵的预计算需要执行一次,并在支撑中给出。在所有情况下,对σ = 0.6,尺寸为600 × 600像素的合成噪声分布进行了展开。在单核顺序执行的高端桌面PC ( Intel1 i5-4570 3.2GHz CPU , 32GB RAM)上测量了运行时间。运行时间被定义为五个独立测量的平均值。

  图4. 带有噪声和残留的合成相位图的展开。A: 噪声水平为σ = 0.3的包裹相位分布。箭头指示残留位置,放大的周围区域在插图中显示。B: 基于像素的SRNCP展开。C: 使用Strand的瓦片展开器(Nρ = 20)和Strand的单向合并器(Nτ = 40 × 40瓦片)进行瓦片基展开。D: 使用提出的MLSQU瓦片展开器(P = 2,Nρ = 40)和单向瓦片合并器进行展开。瓦片计数为Nτ = 20 × 20,瓦片面积是C的两倍。E: 使用提出的基于模型的瓦片展开器(P = 2,Nρ = 40)和τSRNCP瓦片合并器进行展开。F: 使用MLSQU瓦片展开器(P = 6,Nρ = 60)和τSRNCP瓦片合并器进行展开。图像被划分为2 × 2的瓦片网格。所有图像的尺寸均为600 × 600像素,并且与图2具有相同的颜色标尺。

 

数字全息相位测量:

我们将相位展开算法应用于通过数字全息术获得的ZMTH3犬类腺瘤细胞的包裹相位图像。包裹相位图包含多个残留,但没有高频噪声。我们将基于像素的SRNCP算法的相位展开与我们的瓦片基方法进行了比较,使用基于模型的展开器(P = 2, Nρ = 40)和单向合并器。两种算法似乎都成功地展开了给定的相位分布,没有产生明显的不准确性。然而,仔细观察后,基于像素的展开在相位残留导致的展开错误传播到较大区域的几个区域中表现不佳。我们的瓦片基方法在残留存在的情况下表现得更加鲁棒,这与前一节的结果一致。

结论:

我们提出了一个瓦片基相位展开方法,并将其实现为一个C++11程序,采用模块化框架。在两步过程中,首先展开单个瓦片,然后使用合并算法将它们合并为展开的相位图。我们实现了一组瓦片展开和合并算法,这些算法是由Strand等人建议的。我们开发了一个基于模型的展开器,它包含了Strand的展开器作为特殊情况。这两种算法在合成高噪声场景中表现良好。我们进一步展示了我们的基于模型的方法在存在相位残留的情况下优于Strand的原始展开算法,因为它能够处理更大的瓦片。这在合成包裹相位图和从数字全息术获得的真实世界相位图(犬类腺瘤细胞)上都得到了验证。基于模型的瓦片展开被制定为线性代数的最小二乘问题。作为下一步,这可以允许使用并行化来显著加速展开过程,因为线性代数非常适合并行计算。在这项研究中,我们没有实现并行化,因此无法充分利用这种方法。我们还可以从基于像素的SRNCP算法创建一个可靠性引导的瓦片合并器。这种所谓的τSRNCP合并器在存在错误的展开或相位残留的情况下,表现优于线性合并器。它在存在噪声和残留的情况下也优于基于像素的SRNCP算法。我们认为这验证了我们软件框架背后的瓦片基相位展开概念。它还表明,将成熟的基于像素的算法适应为瓦片基方法是可能的,并且值得尝试。这些合并算法的计算负载显著低于它们的基于像素的对应算法,因为它们操作的是瓦片化的图像瓦片,而不是单个像素。这一事实可能使得实现更复杂的算法(如基于模拟退火的优化)在大相位图上变得可行。通常,相位展开算法的选择在一定程度上取决于包裹数据集的特性,例如噪声水平。此外,可能存在用户需求,倾向于选择快速算法而不是对噪声具有高鲁棒性的算法。显然,更慢、更复杂的算法通常不会产生更好的展开相位图。然而,速度和鲁棒性之间存在权衡。我们认为,所提出的框架提供了一个优势,可能使其对某些应用感兴趣:模块化框架使得可以根据特定需求定制展开算法。它作为一个易于扩展的工具箱,可以在承诺使用单个算法之前用于测试和创建新的瓦片基相位展开算法。它甚至可能自动进行定制。为此,需要足够大的展开和合并算法集合。然后,可以通过适当的训练集使用机器学习自动构建特定的展开器和合并器组合。一个特别定制的算法的例子是使用并行实现的Strand瓦片展开器和单向合并器。这可能足够快,适用于实时成像,如果可以接受降低的图像质量。另一个例子来自MLSQU瓦片展开算法的特性:在这里,系统矩阵的预计算使得可以对大瓦片应用高阶多项式拟合。因此,可以高效地处理大量图像。尽管与其他算法相比,计算负载可能仍然相当高,但可能的图像质量提升可以弥补这一点。通过公开我们的软件,我们希望其他研究人员可能会发现它有用,并在此基础上进行改进。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

V建模忠哥V

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值