原始 MediaWiki 页面

我知道编辑这个网站吗?
the Fiji distribution of ImageJ本页介绍与 the Fiji distribution of ImageJ 相关的内容。点击徽标查看详情。

水平集

自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南

Ls.2b.progress

关卡设置和快速行进

简介

水平集是基于偏微分方程(PDE)的图像分割技术的一个重要类别,即逐步评估相邻像素之间的差异来找到对象边界。理想情况下,算法将在差异最大的对象边界处收敛。

Fiji插件提供了两种基于PDE的方法,更基本的快速行进和先进的活动模拟算法。

快速行进的工作原理与标准洪水填充类似,但在边界检测中更加敏感。在增长区域时,它不断计算当前选择与新添加的像素的差异,如果超过预先选择的基准值差异,或者超过某个预先选择的参考值,则停止。该算法对泄漏很敏感-如果对象的边界有间隙,则选择可能会泄漏到对象的外部。

集像橡皮筋一样推进,直到连通对象边界。如果边界存在间隙,橡皮筋的性质选择(=曲率)可以防止稀疏。橡皮筋的强度和灰度可以差预先。

快速的快速行进可以启动较慢的活动创建的输入。如果图像非常大,从快速行进开始并使用快速行进中的通过级别集细化对象可以显着加快对象检测速度。

算法细节

从种子点边界对象边界快速行进算法,直到遇到当前的像素强度差异。

活动根据的图形测量及时做出最终的多个对象。在插件实现中,措施是基于边缘的约束、梯度值惩罚和曲率约束,以防止它们在边缘的区域泄漏对象边界。在曲线过程中,该实现中的活动可以分割和合并,从而用于检测甚至多个对象。插件中的算法基于最先进的内存高效且快速的稀疏场计算(Terry S. Yoo,洞察,第8)章),可以轻松迁移活动异构/水平集算法的其他变体。

此实现基于以下 PDE 更新:

\[\Phi(i) = \Delta T g(i) ( W_a F_a |\nabla\Phi| + W_c F_c |\nabla\Phi| )\]

\(g(I) = \frac{1}{1 + ({\nabla I}^* + g) \cdot 2}\) \(\nabla I^*\) = 平滑(高斯模糊)图像的差异 \(g = \\begin{cases} 0 & \\text{如果灰度值 } < \\text{ 预设灰度值。}\\\\ \\text{灰度值}&\\text{其他。} \\end{案例}\)

\(\Delta T = \frac{1}{6 \cdot W_a \cdot W_c}\) \(\Phi(i)\) = 当前迭代 i 处的等值面 \(W_a\) = 平流重量 \(F_a\) = 平流力

\(W_c\) = 曲率权重

\(F_c\) = 曲率力

该算法的更详细解释可以在以下链接中找到:

即将到来的未来实施将添加测地线活动,如 Caselles 等人所述。

教程

快速行军

在菜单“文件”、“打开样本”中打开示例图像“Dot Blot (7k)”

Dot Blot sample image

使用“点选择”,选择一个种子点作为起点。

Fiji point selection tool for seed point

选择一个点与选择填充对象的位置非常相似 - 事实上,快速进行与更复杂的边界检测的洪水填充非常相似。在下一张图片中,选择了其中一个点中的一个点:

Seed point selected inside a dot for fast marching

转到“关卡集”对话框,取消选择“关卡集”选项,然后选择“快速行进”选项。保持参数相同:

Level Sets dialog with Fast Marching option selected

单击“确定”,您将看到一个不断更新的细节窗口,完成后会看到一个结果窗口。分段点将在细节窗口中显示为绿色。

资料:Fast Marching segmentation progress with green segmented points

结果:Fast Marching segmentation result

级别集

在菜单“文件”、“打开样本”中打开示例图像“Dot Blot (7k)”

使用对象选择器,选择对象内部或外部的近似形状。在第一个示例中,选择了一个点内部的椭圆形。

Oval seed selection inside a dot for Level Sets

转到“关卡集”对话框,取消选择“快速行进”并确保选择“关卡集”。保留参数并单击“确定”。请注意,“区域划分”选项设置为外部,即将生长到初始选择的外部。因此,请确保设置“区域划分”与相对关注对象的初始选择相匹配。

Level Sets dialog with Level Sets option and expand-to-outside setting

水平集推进直至到达边界。因此,进度窗口以红色显示当前活动,以黄色显示先前的活动。否则将前进,直到到达点的边界。

资料:Level Sets contour advancing outward (red active, yellow previous)

结果:Level Sets segmentation result of dot

注意调试窗口中的输出:

Level Set (Active Contours): Starting Mon Apr 27 20:12:14 PDT 2009
Note: Each iteration step is 100 iterations
Note: ROI is shape, parsing shape
Initiated boundary pixels: 24 ZERO, 45 INSIDE, 144597 OUTSIDE
Grey seed not set - setting to mean of ROI boundary = 65
Delta t = 0.07575757575757575
Iteration step: convergence = 0.02057951452408498, number of pixels changed = 0.02057951452408498
Iteration step: convergence = 0.016657803438813925, number of pixels changed = 0.016657803438813925
Iteration step: convergence = 0.011131099511386819, number of pixels changed = 0.011131099511386819
Iteration step: convergence = 0.006338065350476374, number of pixels changed = 0.006338065350476374
Converged!
Iteration step: convergence = 0.00499110164272695, number of pixels changed = 0.00499110164272695
Level Set: Finished Mon Apr 27 20:12:15 PDT 2009

“灰色种子”是从感兴趣区域导出的值。如果值超过对话框中设置的(示例中为 65 加/减 30,即从 35 到 95 的灰度值),对话框中的“灰度容差”设置注意进度限制添加惩罚。这将分割为公差范围内的灰度值。

更重要的是收敛的输出。如果对话中的收敛设置太高,分割可能会提前终止。如果设置太低,边界可能会扩大到无穷大或收缩到零。如果发生这种情况,请记下最后一个良好的收敛值,在对话框中设置一个稍高的值,然后重试。

在以下示例中,创建手动选择区域为起点向内部前进。请注意,通过水平集分割,可以同时选择多个对象。在创建前进过程中,将分割单独的对象。选择感兴趣的对象外部的规划区域:

Rectangular seed selection outside the dots for Level Sets

转到“级别集”插件对话框,选择“区域级别内部

Level Sets dialog with expand-to-inside setting

结果最终看起来不同,因为当同时从外部或内部点接近时,局部差异并不相同。

资料:Level Sets contour advancing inward toward dots

结果:Level Sets segmentation result with all three dots segmented

所有三个点都被分割成不同的对象。

最初选择的形状的选择并不特别重要,但重要的是完全在对象内部或完全在对象外部。如果选择覆盖对象边界,则分割将不起作用。

提示:如果造成了对象边界的中断或模糊部分而“泄漏”,请尝试增加曲率值。这将增加边界的强度并有助于减弱这些泄漏。

参数

“原来”选项用于计算相邻像素的差异。目前它总是为高斯。未来的实现默认可能会将各向异性过滤作为一个选项。

快速行军

  • 阈值阈值

这是为了确定扩展的停止点作为边界像素和种子点之间的灰度值差。如果图像增强,则增大该值;如果增强不强,则减小该值。

  • 距离阈值

在一次迭代中允许扩展多少选择。增加它会加速这个过程,但会降低它的难度。

级别集

  • 方法

“活动等值线”或“测地线活动等值线”。“活动既”是上述的算法。“测地线活动同时”是 Caselles 等人描述的算法的实现。(国际计算机视觉杂志 22:61)并在 ITK 的 GeodesicActiveContour 类中实现。测地线活动可以在感兴趣的区域中找到 Canny本实施仍是一个实验阶段,尚未完全审查。细节使用。一旦功能完成,将会有更完整的描述。对于测地线活动,应降低收敛值。

  • 平流

本质上是设定前进的速度。增加该值会加快分割速度,但可能会前进过快而失去边界。

  • 传播

数字决定的扩展(传播)。仅用于测地线活动等价值线。

  • 曲率

数字决定了联合前进时曲率的权重。

  • 灰度容差

在设定的过程中,当前设定的阈值与设定的下一个进度进行比较。如果它们超过了此处设定的值,则会受到惩罚。

  • 收敛

这里的值被初始收敛的标准。如果两次迭代之间所造成的变化低于该值,算法将停止。如果没有在边界处停止和/或完全折叠,则增加该值;如果停止得太早,则减少该值。

  • 区域划分

如教程中所述,此设置旨在确定是否会到达选区的内部或外部。