实施例正通过引入启发式成本作为对图像中的眼睛层的搜索的进一步引导力来解决以上挑战。除了别的之外,图像分割方法的这种实施例具有以下优点:
(1)启发式搜索可以实现大大
加速的处理速度,这对于外科手术介入期间的实时图像处理至关重要。特别是对于分层图像的情况,此处引入的启发式函数可以使搜索算法显著加速以实现快速图像分割。
(2)启发式搜索可以实现全局优化的图像识别结果。相应地,斑点噪声、血管阴影、以及病理对分割结果具有很小的失真影响。
(3)启发式搜索减小并且甚至最小化预处理负荷。因此,相比于其他搜索中,图像滤波、平滑和增强较不关键。
(4)启发式搜索在很大的动态范围内具有鲁棒性。与基于阈值的分割技术不同,启发式方式不需要特定阈值并且可以自动适应不同强度范围的图像。
图1展示了用于实践启发式自动分割搜索的实施例的系统。如所示出的,眼睛1包括若干眼睛层5,示例包括眼角膜的远端表面、近端和远端晶状体囊表面、以及视网膜表面。可以用于实践本发明的实施例以实现快速启发式图搜索从而识别这些眼睛层5中的任何一层的图像的成像系统10包括耦合至图像处理器30和显示器40的成像光学器件20。
图2A展示了用于处理眼睛图像的方法100的实施例可以包括:
110-由成像系统10检测涉及眼睛层5的眼睛区域的图像数据;
120-由图像处理器构造图像图,所述图像图包括由链路连接的节点以及与所述节点和链路中的至少一个相对应的所检测图像数据;以及
130-通过以下操作对图像图上与眼睛层的图像相对应的路径执行启发式图搜索:
140-向所述图像图的链路分配链路成本中的至少一个并且向所述图像图的节点分配节点成本;
150-向所述图像图的所述节点和所述链路中的至少一个分配启发式成本;
160/(a)-通过使用延伸链路使所选路径从其前节点延伸来创建延伸路径;
170/(b)-通过将延伸路径的启发式成本与延伸路径的链成本进行组合来确定延伸路径的路径成本,其中,路径的启发式成本是其前节点的启发式成本,并且路径的链成本是以下各项之一:路径的链路的链路成本的总和、路径的节点的节点成本的总和、以及路径的链路和节点的链路成本和节点成本的加权和;
180/(c)-选择从所述延伸路径中以及从所存储的未选择路径中选取的最低成本路径作为更新的所选路径;以及
190/(d)-存储未选择的延伸路径及其成本,并且将所选路径的前节点标记为已检查。
可以重复地执行步骤(a)至(d)以识别表示眼睛层图像的所选路径。
图2B展示了用于处理眼睛图像的方法100的相关实施例可以包括:
110-由成像系统10检测涉及眼睛层5的眼睛区域的图像数据;
120-由图像处理器构造图像图,所述图像图包括由链路连接的节点以及与所述节点和链路中的至少一个相对应的所检测图像数据;以及
130-通过以下操作对图像图上与眼睛层的图像相对应的路径执行启发式图搜索:
140-向所述图像图的链路分配链路成本中的至少一个并且向所述图像图的节点分配节点成本;
150-向所述图像图的所述节点和所述链路中的至少一个分配启发式成本;
160/(a)-通过使用延伸链路使所选路径从其前节点延伸来创建延伸路径;
170/(b)-通过将延伸路径的启发式成本与延伸路径的链成本进行组合来确定延伸路径的路径成本,其中,路径的启发式成本是其前节点的启发式成本,并且路径的链成本是以下各项之一:路径的链路的链路成本的总和、路径的节点的节点成本的总和、以及路径的链路和节点的链路成本和节点成本的加权和;
180/(c)-从延伸路径中选择最低成本路径。
可以重复地执行步骤(a)至(c)以识别表示眼睛层图像的所选路径。
图3A至图3D展示了拍摄图像步骤110可以包括拍摄包括眼睛层201的眼睛区域的图像
200。眼睛层201可以指将两个眼睛区域分离的整个层。示例可以是将眼睛的晶状体与眼睛的玻璃体分离的囊袋。在这种实施例中,这两个分离区域的反射和光学特性可能彼此不同或可能彼此相同,但是这两个区域之间的眼睛层的反射特性与这两个区域的反射特性不同。在其他实施例中,眼睛层201可以是眼睛区域的边缘。示例可以是眼角膜的将眼角膜与前房分离的远端表面。在某种意义上,图搜索可以被视为用于眼科成像的独特需求的边缘搜索方法的特定改编版。
如在图3A中所展示的,方法100的目标是以期望精度对作为眼睛层201的近似图像的路径205执行搜索。如所指示的,对路径205的搜索可以从图像200的一个边缘开始,并且可以迭代地逐步延伸以
跟踪眼睛层201直到图像200的相对边缘。
图3A在图像200中示出了的底层眼睛层201。当然,在实际实践中,在检测到图像200及其相应图像数据之后并不知道眼睛层201的
位置。图像识别方法的主要挑战是根据仅跨眼睛层201展现出图像强度变化的原始有噪声的所检测图像数据来确定此底层眼睛层201的未知实际位置,如在图3C中示出的并在下文中解释的。由于相比在图3C中所示出的情况,所检测图像数据经常具有小得多的确定性和高得多噪声,所以需要成熟的方法来演化和确定路径205以识别眼睛层201的位置。方法如此处描述的方法100。
被放大为图3A的图像200的小区域的图3B展示了在步骤120中构造图像图可以包括从成像光学器件20接收眼睛区域的所检测图像数据,其中,图像数据可以对应于节点210,诸如对应于成像系统10的
像素210。为了确定性且便于引用起见,引入了(x,y)
坐标系,所述坐标系允许根据节点210的(x,y)坐标将所述节点识别为节点210(x,y)。这种(x,y)记号将主要在其有助于
指定被标记元素之间的空间关系时使用。在众多实施例中,成像系统10可以经由检测器、像素或
传感器的规则阵列来检测图像数据。示例可以是
光学相干断层扫描(OCT)成像系统的
电子相机、摄像机、CCD相机或传感器阵列中的像素210(x,y)的矩形或正方形阵列。
节点210(x,y)可以由链路220连接以完成图像图。在一些实施例中,节点210(x,y)可以具有相应的物理传感器或像素,而将节点210(x,y)与节点210(x,y+Δy)连接的链路220(x,y,Δy)以及将节点210(x,y)与节点210(x+Δx,y)连接的链路220(x,y,Δx)可以与图像图的链路的数学构造相对应。链路可以有三个变量:(x,y)坐标以及第三Δx变量或Δy变量。
这种三变量(x,y,Δx)指示链路220(x,y,Δx)正连接其y坐标相同并且其x坐标相差短距离Δx的两个节点。在典型的实施方式中,Δx可以是相邻节点之间的最近邻居距离。还可以使用连接更远邻居的更长链路。链路将被称为链路220、220(x,y)或220(x,y,Δx)/220(x,y,Δy),以最有帮助的引用为准。在节点210的规则点阵中,Δx或Δy可以指相邻节点之间的点阵常数。在连续图像中,Δx或Δy可以指用于表征图像200的(x,y)点之间的小距离,所述小距离在某种意义上定义了图像200的
分辨率。
在一些其他系统中,链路220(x,y)可以具有如以下所描述的物理实施例,并且节点210(x,y)可以是主要的数学构造。最后,在一些系统中,节点210(x,y)和链路220(x,y)两者都可以具有物理实施例。
在一些实施例中,链路220(x,y,Δx)可以仅连接最近邻居像素210(x,y)和210(x+Δx,y)。在其他实施例中,附加链路220(x,y,Δx,Δy)可以连接对角线相邻像素210(x,y)和210(x+Δx,y+Δy),由此需要引入第四变量。在又其他实施例中,链路220可以连接由比点阵常数a或Δx更大但不超过截断距离的一定距离间隔开的甚至更远的像素。
图3C展示了图3B中示出的图像图的y方向横截面。图像图本身可以是这种横截面的集合。对于固定值x,
水平轴线可以指图像图的y方向横截面的节点210(x,y)或链路220(x,y)。
对于固定的x,图像图的垂直轴线可以将与节点210(x,y)或链路220(x,y)相对应的所检测图像数据230(x,y)显示为函数y。所检测图像数据230(x,y)可以是承载与节点210(x,y)相关联的成像信息的成像光的图像强度、偏振状态、
颜色、
相位或其他数据。
简单示例可以是具有组成图像图的节点的像素或传感器的阵列的CCD成像系统,并且图像数据是由CCD相机的单独像素感测的图像强度。
在成像系统10是OCT成像系统10的具体情况下,所检测图像数据230(x,y)可以与通过使用从OCT成像系统10的参考臂返回的参考光来干扰从眼睛1返回的成像光而产生的“干扰光束”的强度相关。这种干扰光束在其振幅和相位中承载图像信息,所述图像信息可以转换成所检测图像数据230(x,y)的振幅或强度。
图像数据还可以由可以是OCT成像系统10的一部分的图像处理器30进行预处理。OCT成像系统10可以关联伪彩色、调整
对比度、调整
亮度、滤波、归一化、实施降噪、增强图像数据并且实施直方图均衡化等等。因此,贯穿本
申请,“检测图像数据”可以指对原始图像数据的原始检测,但是在其他实施例中,检测图像数据可以是更具包含性并且可以包括除检测之外的对原始图像数据的某种水平的预处理。
图3D展示了构造图像图120的另外方面:由图像处理器30根据所检测图像数据230(x,y)生成特征图像数据240。此处,特征图像数据240可以与所检测图像数据230(x,y)的强度、相位、梯度和纹理相对应。例如,在图3D中,特征图像数据240(x,y,Δx)可以与所检测图像数据230(x,y)的有限梯度或离散梯度相对应,所述有限梯度或离散梯度被定义为沿着链路
220(x,y,Δy)的节点210(x,y+Δy)和210(x,y)的图像数据230(x,y)的有限差:
特征图像数据240(x,y,Δy)=f(所检测图像数据230(x,y+Δy)-所检测图像数据230(x,y)),
并且对于
正交定向,在x方向上的情况类似。此处,f(z)是其自变量z的函数。最简单的实施例之一是f(z)=z,其产生作为所检测数据230的上述离散梯度的特征图像数据240。也可以采用若干其他函数f(z),所述函数可以是其自变量的递增函数或递减函数。特征图像数据240(x,y,Δy)可以分配给相应节点210(x,y)或者分配给已经计算了其两端的离散梯度的链路220(x,y,Δy)。
图3C展示了对于将具有不同光反射特性的两个眼睛区域分离的眼睛层201的图像,对于固定x坐标,当y坐标扫过眼睛层201的位置时,所检测图像数据230(x,y)可能展现出肩峰(shoulder)或下降。此处,如以上所讨论的,眼睛层201可以指两个区域之间的整个薄层或指较厚区域的边缘。在任一种情况下,所检测图像数据都可能跨眼睛层201展现出下降,因为由眼睛层201间隔开的这两个区域的光学特性不同。
图3D展示了在将所检测图像数据230的以上离散梯度用作特征图像数据240的实施例中,特征图像数据240可能在眼睛层的、所检测图像数据230展现出肩峰或下降的位置处展现出尖峰。此示例展现出特征图像数据240被设计为仅在眼睛层201的附近不同于零并且如此对定义引导对最接近眼睛层201的位置的路径205的搜索的搜索成本来说可能是有用的。
图4A至图4C展示了一旦图像图被构造并且特征图像数据240(x,y)被构造,执行启发式图搜索130步骤就可以包括:在步骤140中使用特征图像数据240来确定链路成本或节点成本并将链路成本分配给图像图的链路或将节点成本分配给所述图像图的节点;以及在步骤
150中确定启发式成本并且向图像图的节点和链路中的至少一个分配启发式成本。
将在构造图像图120包括将节点210定义成与成像系统10的像素相对应并且将链路220定义为连接节点210的链路的示例上展示此执行启发式图搜索步骤130。构造120进一步包括:从成像系统10接收眼睛区域的所检测图像数据230,并且由图像处理器30根据所检测图像数据230生成特征图像数据240,如在图4A中所示出的。在一些实施例中,特征图像数据
240可以与所检测图像数据230的邻近节点之间的离散梯度或强度有限差或
相位差中的至少一个相对应。由链路220连接的节点210可以是最近邻居、对角线邻居或在截断距离内的邻居。
一旦已经执行了构造图像图120以及具体地生成特征图像数据240,就可以以步骤140和150开始而开始执行启发式图搜索130。这些成本将用于引导进一步包括步骤160至190的启发式图搜索。
图4B展示了在一些实施例中,分配成本140步骤可以基于向链路220(x,y)分配链路成本250(x,y),其方式为使得链路的链路成本250在同一链路的特征图像数据240增大时减小。示例可以是从适当的最大值减去在图4A中被定义为有限梯度的特征图像数据240。如在图4B中所示出的,这种减法产生链路成本250,所述链路成本在特征图像数据240显示出最大值的位置处即在眼睛层201的位置处显示最小值。
图4C在近似和定性的意义上示出了在眼睛层201的位置处展现出最小值的刚刚定义的链路成本250可以如何引导图搜索。在图4C中,在图4B中针对固定x而各自被计算为y的函数的一组链路成本250针对一系列x值而被组合以形成像素阵列的(x,y)平面上的成本表面。
显而易见,与单独的x值相对应的链路成本最小值组合成低谷。通过构造,此低谷的
位置跟踪眼睛层201的位置。对通过使链路成本保持尽可能低来引导的路径205进行演化的图搜索将迫使路径沿着低谷的底部演化,由此跟踪眼睛层201。
在继续将图4A至图4C的此定性图片转换成定量且快速的方法之前,图5A至图5C展示了节点和链路在不同实施例中的不同定义。在图5A中,节点210包括诸如成像系统10的像素等成像元件。在一些实施例中,链路220不需要具有物理实现,其可以是完成对图像图的定义的数学对象。图5B展示了节点处的元件具有最小的空间范围的实施例。此处,节点210如此小以至于其基本上是链路的点阵的
顶点。节点是交叉点或链路220的连接点。最后,图5C展示了具有相反特性的实施例:节点210处的元件也可以相当大。例如,元件可以是具有基本上与链路220的大小相同的大小的像素。在这种实施例中,像素以及因此节点210基本上彼此
接触。链路220的抽象概念仍然可以基于正方形像素下面的虚线。链路220的物理表现可以是相邻像素接触的边缘。在某种意义上,图5B和图5C的图彼此对偶,链路和节点好像在交换图形表示。这些实施例是中等大小像素充当节点210的图5A实施例的限制情况。在本文档中,“节点和链路”术语可以指图5A、图5B或图5C的实施例中的任何一个以及等效实现。
图6A和图6B展示了方法100的实施例。其示出了包括图像强度的肩峰以及特征图像数据的相应低谷的图像200,所述肩峰和低谷两者都跟踪眼睛层201在图像200中的位置。图6A示出了已经在多次迭代中更新了路径205之后的方法100的元素。所产生的路径205或所选路径205s由粗实线指示。此处,为了清楚起见,仅示出了成像系统10的相关节点和链路。
如以上所解释的,方法100以检测步骤110即由成像系统10拍摄涉及眼睛层201的眼睛区域的图像200开始。接下来是构造步骤120,即构造由链路220(x,y)连接的节点210(x,y)以及与节点210(x,y)或链路220(x,y)相对应的所检测图像数据230(x,y)的图像图。这种图像图的y方向横截面是在图3C中示出的横截面并且发展成如在图4C中示出的基于(x,y)的特征图像数据240(x,y)。
对路径205执行启发式图搜索的执行步骤130可以包括:分配链路/节点成本步骤140,即向图像图的链路220(x,y)分配链路成本或者向图像图的节点210(x,y)分配节点成本;以及分配启发式成本步骤150,即向节点和链路中的至少一个分配启发式成本。将关于图9和图10A至图10D而非常详细地描述分配启发式成本步骤150。出于描述图6A和图6B以及图8A至图8D起见,要理解的是,已经正确地计算和分配了路径的启发式成本。
图6A展示了在分配链路成本或节点成本以及启发式成本之后,创建步骤160/(a)可以包括:通过使用延伸链路270(x,y)使所选路径205s从其前节点260(x,y)延伸来创建延伸路径。所选路径205s本身是由在一系列的之前更新中重复地且迭代地执行选择步骤180/(c)产生的路径205。稍后将描述对未选择路径205n的处理。
接下来,确定步骤170/(b)可以包括:通过将延伸路径的启发式成本与延伸路径的链成本进行组合来确定延伸路径的路径成本。此处,要回顾的是,路径的启发式成本可以被定义为其前节点的启发式成本,并且路径的链成本可以被定义为以下各项之一:组成所述路径的链路的链路成本的总和、组成所述路径的节点的节点成本的总和、以及所述路径的链路和节点的链路成本和节点成本的加权和。
在一些实施例中,确定步骤170/(b)可以是不会在每次迭代时重新计算延伸路径的全部路径成本的增量方式。相反,实施例可以仅计算由使用延伸链路270来延伸所选路径205s而触发的路径成本更新或变化。在这种增量方式中,确定步骤170/(b)可以包括:计算所选路径205s的启发式成本的变化以及所选路径205s的链成本的变化,这两种变化都是通过使用各种可能的延伸链路270来临时延伸所选路径205s而引起的;以及通过使用启发式成本的变化和链成本的变化的组合来更新所选路径205s的成本从而确定临时延伸路径的成本。
所述组合可以是对这两种变化的简单相加、加权求和或可以涉及函数计算。
在其他实施例中,确定步骤170/(b)可以涉及对成本的综合计算。在这种实施例中,在不参考在之前的步骤中计算的成本的情况下或者在不计算增量的情况下,重新计算通过各种可能的延伸链路270临时延伸的所选路径205s的链成本和启发式成本。
接下来,选择步骤180/(c)可以包括:通过从最近延伸的路径中以及从所存储的未选择路径205n中选取最低成本路径来选择最低成本路径作为更新的所选路径205s。
图6B展示了选择步骤180/(c)的结果可以是通过使用最近选择的延伸链路270s(x,y)使之前的所选路径从其前节点260(x,y)延伸而得到的更新的所选路径205s。在一些情况下,最低成本路径将是通过临时提出的延伸链路270s(x,y)之一延伸的之前的所选路径
205s。在其他情况下,例如,当所选路径遇到高成本区域时,最低成本路径反而可以是所存储的之前未选择路径205n之一。在之前的步骤中未选择此未选择路径205n,这是因为其成本可能一直比最终选择的路径的成本高,但是如果在当前步骤中,仅可以使用较高成本延伸链路来延伸所选路径,则之前未选择的路径205n之一的成本可以证明是最低成本路径。
在这种情况下,将在选择步骤180/(c)中选择具有最低成本的未选择的所存储路径205n。在某种意义上,选择之前未选择的路径205n可被视为图搜索方法100在其遇到高
能量障碍时重溯其步骤。
方法100还可以包括存储步骤190/(d):存储在刚刚执行的选择步骤180/(c)中未选择的未选择路径205n及其成本。这些未选择路径205n的成本将在对方法100的随后迭代期间的随后选择步骤180/(c)中被重新调用。一旦在随后的选择步骤180/(c)中重新调用了未选择路径205n的成本,对最低成本路径的选择就可以通过以下方式执行:选取从使用各种延伸链路270从其前节点260临时延伸的所选路径205s中以及从重新调用的所存储的未选择路径205n中选择的最低成本路径。然后,所选最低成本路径可以被识别为更新的所选路径
205s。重复步骤(a)至(d)或160至190可以形成方法100的跨图像200延伸所选路径205s重复迭代框。
在所描述的实施例中,仅重新临时提出了使所选路径205s从其前节点260延伸的延伸链路270。然而,对最低成本路径的选择也将这些临时延伸路径的成本与所有所存储的之前未选择的路径205n的成本进行比较。在选择步骤180/(c)中,可以选择可能在若干链路上与之前所选的路径205s不同的所存储的之前未选择的路径205n。如果所选路径205s演化到不利区域中或遇到障碍,则此方面允许方法100将对最优路径的搜索重新定向到新的方向。这种障碍可以是气泡、高噪声区域、成像伪影、或层褶皱等等。
在图4C的语言中,最低成本低谷可以具有裂叉或分叉,其中,低谷分裂成两部分。随着搜索方法100被执行,这些低谷之一被选择,并且在此低谷中的所选路径205s进一步发展或前进。然而,在稍后的步骤中,此所选路径205s可能遇到高成本区域。在这种情况下,还将所选路径205s的延伸成本与之前未选择的所存储路径205n的成本进行比较的选择步骤180/(c)使得方法100可能重溯其步骤直到最后一个分叉并且选择其他低谷进行进一步探索。在一些情况下,之前未选择的路径205n甚至可能不是低谷中的分叉,但相反是低谷的侧面的仅受低成本保护的“山口(mountain-pass)”。
为了完整起见,在方法100的一些实施例中,还可能临时提出从来自所选路径205s的侧面节点中的一些而不仅是其节点260延伸的延伸链路270。这种方法花费更多时间,因为所提出的延伸链路的数量可能相当大。其更耗时的执行可以通过其探索演化所选路径205s的更多机会的实用性来平衡。在这些实施例中的一些中,可能达成折中,其中,仅使用延伸链路来临时延伸有限数量的节点。
总的来说,图2A中示出的方法100的一些实施例可以包括迭代地重复步骤(a)至(d)。图
2B中示出的其他实施例可以不包括存储未选择路径205n及其成本,并且可以提出仅从所选路径205s的前节点260开始的延伸。这种实施例仅重复图2B中的步骤(a)至(c)。
这些实施例中的任一个都可以延伸所选路径205s直到达到结束标准,并且可以将方法
100达到的所延伸的所选路径205s识别为与眼睛层201的图像相对应。结束标准可以是所选路径205s到达图像200的边缘。可以例如在显示器40上显示图像。
步骤190/(d)可以进一步包括将所选路径205s的前节点260(在通过延伸链路270延伸了所选路径205s之前的前节点260)标记为“已检查”。在未来的迭代中,被标记为“已检查”的这种节点不被重新检查。此方面可以减小或消除返回到之前分析的路径,由此使方法100更高效地在延伸方面取得进展。
图7A和图7B展示了作为方法100的实施例的以如下方式表达的方法300:通过明确地示出迭代的索引、标记或编号清楚地表达对步骤(a)至(c)或(a)至(d)的迭代框或循环的重复。图7A展示了处理眼睛图像的方法300的实施例可以包括:
310-由成像系统10拍摄涉及眼睛层的眼睛区域的图像200;
320-使用图像处理器30根据图像200来构造图像图,所述图像图包括由链路220连接的节点210以及与所述节点和链路中的至少一个相对应的所检测图像数据;以及
330-通过以下操作对图像图上与眼睛层201的图像相对应的路径执行启发式图搜索:
340-向所述图像图的链路220分配链路成本中的至少一个并且向所述图像图的节点
210分配节点成本;
350-向所述图像图的所述节点和所述链路中的至少一个分配启发式成本;
360/(a)-通过使用第N+1延伸链路使第N所选路径从其第N前节点延伸来创建第N+1延伸路径;
370/(b)-通过将第N+1延伸路径的链路成本和节点成本中的至少一个与第N+1延伸路径的启发式成本进行组合来确定第N+1延伸路径的路径成本,其中,路径的启发式成本是其前节点的启发式成本,路径的链路成本是路径的链路的链路成本的总和,并且路径的节点成本是路径的节点的节点成本的总和;
380/(c)-将从第N+1延伸路径中以及从所存储的未选择路径中选取的最小成本路径选择为第N+1所选路径;以及
390/(d)-存储第N+1未选择路径及其成本,并且将第N前节点标记为已检查,其中,所述方法包括迭代地重复步骤(a)至(d)。
图7B展示了处理眼睛图像的方法300的实施例可以包括以上步骤310至380(c),但不包括存储步骤390/(d)。此实施例还将步骤380/(c)
修改为此步骤不将所存储路径包括在选择步骤380/(c)中。类似于图2B,此实施例仅通过延伸链路270使所选路径205s从其前节点260生长。
图8A至图8D展示了在已经执行步骤310至350之后或者类似地在已经执行方法100的步骤110至150之后的方法300。
图8A展示了对方法100/300的N次迭代将所选路径205s演化为终止于第N前节点260的第N所选路径205s。创建步骤160/360/(a)可以包括通过使用第N+1延伸链路270使第N所选路径205s从其第N前节点260(临时)延伸来创建第N+1延伸路径。
接下来,确定步骤170/370/(b)可以包括确定第N+1延伸路径的路径成本。
图8B展示了选择步骤180/380/(c)可以包括将从第N+1延伸路径中以及从所存储的未选择路径205n中选取的最小成本路径选择为第N+1所选路径205s。在图8B中,选择步骤180/
380/(c)选择第N+1所选路径205s作为通过所选延伸链路270s(Δx,0)使其在x方向上从其第N前节点260(x,y)延伸Δx距离的第N所选路径205s。
在存储步骤190/390/(d)中,可以存储第N+1未选择路径及其成本。此外,第N所选路径
205s的第N前节点260(x,y)可以被标记为“已检查”。在未来的迭代中,被标记为“已检查”的节点可以不被检查。
图8C和图8D展示了选择步骤180/380/(c)还可以导致例如在第N+2步骤中选择之前未选择的路径205n。在已经执行了图8A和图8B中示出的第N+1次迭代的步骤(a)至(d)之后,第N+1所选路径205s结束于具有坐标(x+Δx,y)的第N+1前节点260。之后,对方法100/300的新的第N+2次迭代开始。重复创建步骤160/360/(a)涉及通过使用第N+2延伸链路270延伸第N+
1所选路径205s来创建第N+2延伸路径。在这之后是重复确定步骤170/370/(b),从而确定第N+2延伸路径的路径成本。
一旦已经在确定步骤170/370/(b)中确定了路径成本,随后的选择步骤180/380/(c)就涉及从第N+2延伸路径和所存储的未选择路径中选择最小成本路径以选择第N+2所选路径
205s。图8D展示了当已检查路径之中的最小路径成本属于由使用第N+2延伸链路(Δx,Δy)从其前节点260(x,y)(见图8A)对角线地延伸的第N所选路径组成的之前未选择的路径时的情况。图8D展示了当以对角线延伸链路270(Δx,Δy)结束的此之前未选择但现在重新调用的路径205n的路径成本具有比最近延伸的路径中的任何一个更低的路径成本并且因此被选择为第N+2所选路径205s时的这种情况。
通过此示例,如在图8C和图8D所示出的对步骤(a)至(d)的第(N+2)次执行展示了方法
100/300可以不总是通过使路径205从在之前的步骤中选择的路径前节点260延伸来演化所述路径。相反,方法100/300有时可以重溯其步骤中的一些,并且不是从前节点260演化或扩展路径205,而是通过选择在之前的步骤中未选择的路径205n之一。
图9展示了分配启发式成本步骤150或350的各个实施例。在实施例150a中,分配步骤可以包括:由图像处理器30确定节点210或链路220距图像200的边缘的距离,以及将节点210或链路220的启发式成本定义为所确定距离的函数。在一些情况下,启发式成本可以简单地与距边缘的距离成比例。
图10A展示了此实施例150a。使用延伸链路270来延伸所选路径205s的成本可以包括将延伸链路270的链路成本与最近提出的前节点260的启发式成本相加。启发式成本可以根据最近提出的前节点260距图像200的边缘205的距离410或d导出。在实施例中,启发式成本可以根据以节点210的点阵的如a或Δx等点阵间隔为单位测量的相应长度计算。在一些实施例中,计算启发式成本的这种方式是通过将前节点260距边缘205的距离410测量为图像像素的数量来实施的。
在所示出的情况下,对角线延伸链路的长度是以正方形点阵的点阵间隔的单位Δx或a为单位的平方根2,而到边缘410的距离的长度是以相同的单位Δx为单位的距离d :Nd=d/Δx。一般而言,成本可以是距离的任何函数fcost(f成本):
In在一些实施例中,f(x)可以是单调函数。在一些实
施例中,其可以仅仅是长度本身:f(x)=x。进一步地,在各个实施例中,链路成本函数和启发式成本函数可以以不同的方式组合。例如,可以使用加权因子α将启发式成本与链路成本相加。此处,α的不同值可能影响搜索方法的收敛速度。在一些实施例中,α可以是1,从而简单地将路径的链长度与距边缘205的距离相加。显然,小α<1表征对启发式成本赋予有限权重的实施例,而大α>1意味着启发式成本在搜索算法中被赋予了相当大的权重。
返回到图9,分配步骤150的另一实施例150b可以包括:由图像处理器基于眼睛层的之前记录图像来确定眼睛层的层图像,以及基于沿着层图像从节点和链路中的至少一个到图像的边缘的路径长度来定义节点或链路的启发式成本。
图10B展示了150b的实施例。在150b的所展示实施例中,之前生成的层图像420可以由图像处理器30用于创建眼睛层201的层图像。启发式成本函数可以被生成为所考虑的延伸链路270或所提出的前节点260距图像200的边缘205的但不是沿着如实施例150a中的直线而是沿着之前生成的层图像420的距离430。如在其他实施例中,启发式成本可以是距离d
430的函数fcost(d)(f成本(d))并且可以使用加权因子α将其与链路成本或节点成本相加或以另一方式将其组合。
在150b的一些实施例中,为了在当前搜索的路径205与之前记录的层图像420之间形成实现沿着之前记录的层图像测量距离430的连接,创建层图像步骤可以包括将之前记录的层图像420与当前搜索的眼睛图像200进行配准。在一些实施例中,之前记录的图像的类型或模态可以与当前分析的眼睛图像200相同。在一些情况下,两个图像都可以是OCT图像,或者两者都可以是超声图像。然而,这两个图像可能不会彼此很好地对齐,这是由于在记录之前的层图像时并且在拍摄当前眼睛图像200时,眼睛的光轴通常以不同方式定向。而且,之前图像和当前图像可以相对于彼此横向平移、旋转或缩放。将之前记录的图像与眼睛层图像200配准可以减小或纠正这些差异并且因此提高对启发式成本的计算的准确度。
图9展示了分配步骤150的一些实施例150c可以包括:生成具有比图像图的分辨率更低的第一分辨率的缩放图像图;对缩放图像图上的路径执行非启发式图搜索以确定缩放路径;以及使用缩放路径来分配启发式图搜索的启发式成本。
图10C展示了使用缩放路径的分配步骤150c的一些实施例150c1可以包括:生成具有比原始图像图更低分辨率的缩放图像图440。缩放图像图440可以例如通过选择所检测图像数据230(x,y)或来自由成像系统10拍摄的图像200的特征图像数据240(x,y)来创建。所述子集可以通过粗粒化或
抽取所检测图像数据230或特征图像240来选择。示例包括选择与每第五个或每第十个像素、链路或节点相对应的所检测图像数据230或特征图像数据240。在图
10C中,缩放图像图仅是由黑实点指示的节点的所检测图像数据的集合。
生成缩放图像图440之后可以是使用对缩放图像图440的非启发式搜索来确定缩放路径450或缩放层图像450。这些步骤之后可以是开始步骤130/330的启发式路径搜索。
图10C展示了在启发式搜索步骤内,分配启发式成本150/350步骤可以包括:将路径205的前节点260投影到缩放路径450上;以及使用前节点260从边缘205沿缩放路径450投影的距离460作为前节点260的启发式成本。术语“投影”在此在广义上得以使用。其可以指以各种方式将前节点260与缩放路径450相连接。
图10D展示了相关实施例150c2,其中,前节点260再次投影到或连接到缩放路径450。在此实施例中,启发式成本是基于前节点260距缩放路径450的距离470而计算的。最后,在一些实施例中,可以组合图10C和图10D的技术,并且启发式成本可以基于前节点260距缩放路径450的距离470组合前节点260从边缘205沿着缩放路径450投影的距离460。
在以上实施方式150/350/(a)至(c)的任何一个种实施方式中,在执行启发式图搜索之前,可以执行校准步骤。校准步骤可以包括生成启发式函数表以及将所生成的启发式函数表存储在适当
存储器中。在启发式搜索期间,可以从存储器中读出预存储的启发式函数。
图11A至图11C展示了方法100/300的实施例。此实施例是对编号为1至12的像素的小阵列执行的。启发式搜索旨在找到将例如起始像素6连接至结束像素8的路径205。在此实施例中,启发式搜索的能力被展现为启发式搜索所需的步骤的数量相对于非启发式搜索所需的步骤的数量减少。作为与150b或150c相关的实施例的具体实施方式,图11A至图11C中的搜索旨在使用以下实施方式找到将像素6连接至像素8的路径205:
(ⅰ)构造图像图120/320包括:定义将像素或节点阵列的直接邻居和对角线邻居连接的链路;
(ⅱ)分配链路成本140/340包括:分配链路的长度乘以10:直接邻居链路成本=10,对角线邻居链路成本=14(2的平方根被近似为1.4),以及不使用节点成本;
(ⅲ)分配链路成本140/340还包括:将分配给将任何像素连接至像素7和11的链路的链路成本分配为极其高。这些是前面讨论的高成本区域的示例。
(ⅳ)稍后将描述分配启发式成本150/350。
引入了以下缩写:链路成本用LC表示。路径由其连接的节点引用:(i-x-j)通过节点x连接节点i和j。在N次迭代之后涉及像素i和j的路径成本由CN(i-j)表示,通过x将i与j连接的路径的成本是CN(i-x-j)。
图11B-1和图11B-2出于比较的目的展示了没有启发式成本的步骤(a)至(d)的实施方式。然后,图11C展示了所执行的相同搜索,此时,还利用了启发式成本。将展示出的是,图
11C的启发式搜索以快得多的速度找到从初始像素6到最终像素8的最低成本路径。
注意,此示例是对边缘到边缘路径205的搜索的变体。此实施方式是对点到点路径的搜索。然而,也可以在此示例上展现对启发式搜索和非启发式搜索的比较。
非启发式搜索的方面包括以下各项:将由第N步骤产生的路径表示为(i-x),其中,其前节点260位于x处。此处,i可以指在节点i中结束的一串节点。在第N存储步骤190/390/(d)中,未选择路径的成本,包括从i开始但在不同的节点j处结束并且未被选择的路径的成本被存储为CN(i-j)。
在第N+1步骤中,新的延伸链路270被提出以使第N路径从其前节点x/260延伸。当执行选择步骤180/380/(c)时,将从前节点x/260延伸的路径的成本与所存储的之前未选择路径
205n的成本进行比较,并且选择最低成本路径。在此选择步骤180/380/(c)中,有时可能存在多于一个路径具有相同的最低成本。在这种情况下,需要采用选择程序。在一些实施方式中,如果最近延伸的第N+1路径(i-x-j)的成本等于所存储的未选择的第N路径(i-j)的成本,其中,这两个路径开始和结束于相同的节点i和j:C(N+1)(i-x-j)=CN(i-j),则选择所存储的第N路径(i-j)而不是最近临时延伸的路径(i-x-j)。显而易见,如果最近临时延伸的路径(i-x-j)的成本C(N+1)(i-x-j)低于所存储路径(i-j)的成本CN(i-j),则选择最近延伸的路径(i-x-j)。当然,无论选择哪个路径作为连接节点i和j的最低成本路径,仍必须将此所选路径(i-j)或(i-x-j)的成本与其他延伸和存储路径的成本进行比较以在此第N+1选择步骤
180/380/(c)中选择整体最低成本路径。
在图11B和图11C中,对于第N步骤中的每个步骤,所考虑路径的成本CN被列在相应框中。通过对最低成本路径加
黑体来指示所述路径。
此实施方式的另一方面是,甚至在之前描述的选择实施方式之后,有时多于一个路径可能具有相同的最低成本。在这种情况下,可以使用打破平局(tie-break)算法。可以使用各种打破平局算法,这是因为在选择这种打破平局算法时可能存在某种
自由度。在所展示的示例中,如果两个路径具有相同的成本,则选择其前节点最靠近标记为1的左上角的那个路径。如果此打破平局步骤产生多于一个最低成本路径,则需要采用附加打破平局步骤。在一些实施例中,可以通过使用第二距离、例如距图像200的顶部边缘的距离来打破这种平局。其他实施例可以采用其他第一和第二打破平局规则或距离,包括距图像的左边缘或距图像的右边缘的距离。在实际应用中,特定的打破平局程序具有有限的重要性,因为单独链路的成本是通过图像数据或强度来设置的,所述图像数据或强度可以取许多值并且因此非常罕见的是两个路径将具有相等的成本,并且甚至更罕见的是在这些相等成本路径中,单步骤打破平局程序将不能够选择单个所选路径。
[0110] 图11B-1和图11B-2展示了非启发式搜索需要执行16次路径成本评估以找到具有最低成本的(6-8)路径。这是具有成本C3(6-3-8)=28的路径(6-3-8)。
[0111] 图11C将此非启发式搜索与启发式搜索方法100/300的实施例对比。此处,成本确定涉及将启发式成本HC与链路成本LC相加。在此实施方式中,使用图9中的实施例150a和150b的混合来分配启发式成本:延伸链路220的HC通过延伸链路220的结束节点距目标节点
8的“对角线距离”来设置。节点的对角线距离可以以至少两种方式计算:
[0113] (ⅱ)计算:dx=|node(x)–target(x)|(dx=|节点(x)–目标(x)|),dy=|node(y)–target(y)|(dy=|节点(y)–目标(y)|),并且HC=10*(dx+dy)-6*min(dx,dy)(HC=10*(dx+dy)-6*最小(dx,dy))。此处,node(x)指节点的x坐标,target(x)指目标节点的x坐标,|…|指取自变量…的绝对值,并且min(dx,dy)指取dx和dy中的较小者。当这两个程序将相同的HC分配给每个节点时,这两个程序相当。
[0114] 如以上所描述的,可以预计算和存储这些启发式成本,使得在实际搜索期间,仅需要从存储器中重新调用这些HC值。在其他实施方式中,有可能作为“实时”执行搜索过程的一部分而计算HC值。可以将图像处理器30的处理器和存储器用于此目的。
[0115] 一旦其结束节点的HC被分配给每个链路作为所述链路的HC,然后就使用简单求和或等效地使用加权因子α=1来将链路HC与相同链路的链路成本进行组合。注意,为了简单起见,在计算对角线距离时,未排除链路7和11。
[0116] 在图11A的示例上展示了分配启发式成本HC的这个程序。例如,HC(1)=34,因为根据方法(ⅱ),节点1距节点8的对角线距离等于10*(3+1)-6*min(3,1)=34(10*(3+1)-6*最小(3,1)=34)。当然,根据方法(ⅰ),这等于10+10+14,即HC。
[0117] 一旦HC值被分配,也就可以确定路径成本。例如,使用方法(ⅰ),C(6-1)=48,因为(6-1)对角线链路的成本为14,并且这与HC(1)=34——(6-1)链路的结束节即节点1的HC——相加。在另一示例中,C(6-9)=48,因为(6-9)对角线链路的链路成本为14,并且通过10*(3+1)-6*min(3,1)=34(10*(3+1)-6*最小(3,1)=34),HC(9)=34。此处,通过仔细检查禁用节点11或7来确定了9与目标节点8之间的最低成本路径。
[0121] 图11C展示了通过方法100/300进行的启发式路径搜索仅需要计算9个路径成本,而不是图11B-1和图11B-2的非启发式方法所需的16路径成本计算。这大大减小了成像系统10以及具体地其图像处理器30的计算时间和需求,并且因此展示了启发式方法100/300相对于非启发式方法的实质性优点。
[0123] 此处,注意,方法100/300特别适用的图像目标的类型之一是诸如眼睛层等层或另一延伸对象。这些层成像目标的共同方面是目标从图像的边缘到边缘进行定向、引导、平滑或延伸。对于这种目标,启发式成本的以上实施例大大地增大了搜索的效率。