光谱库索引树的创建方法、光谱库搜索方法与流程

文档序号:31364391发布日期:2022-08-31 15:16阅读:53来源:国知局
光谱库索引树的创建方法、光谱库搜索方法与流程

1.本发明涉及光学散射测量领域,更具体地,涉及一种光谱库索引树的创建方法、光谱库搜索方法。


背景技术:

2.光学散射测量方法,也称为光学关键尺寸(optical critical dimension,ocd)测量方法,其基本原理可以概括为:一束具有特殊偏振态的偏振光投射至待测样品表面,然后通过测量待测样品上关于该偏振光的反射光,以获得该偏振光在被待测样品反射前后的偏振态的变化,进而从中提取出待测样品的结构参数。例如,从化学气相沉积等镀膜工艺中所获得的薄膜的厚度,以及从光刻、刻蚀等工艺中所获得纳米光栅的线宽、线高、侧壁角等。
3.与扫描电子显微镜、原子力显微镜等微观形貌测量手段相比,光学散射测量技术具有速度快、成本低、无接触、非破坏等优点,因而在先进工艺在线监测领域中获得了广泛应用。然而,扫描电子显微镜、原子力显微镜等测量手段可以直接获得待测样品微观形貌及结构参数,是一种“所见即所得”的测量手段。与之相反,光学散射测量技术获得的仅是一组关于入射波长或入射角度分布的光强信号及其他派生信号,如反射率、椭偏参数、穆勒矩阵等,需要通过一定的数据分析手段才能从测量信号中提取出样品的待测结构参数。其基本过程可概括为:首先,针对待测样品的结构建立对应的物理模型;其次,针对待测样品的结构参数,划分参数网格并建立其理论光谱库;然后,利用光谱匹配的方法在光谱库l中搜寻与测量光谱偏差最小的一组理论光谱;此时,认为此组理论光谱对应的结构参数即为待测样品的结构参数。
4.通常采用库搜索在光谱库l中搜寻与测量光谱偏差最小的一组理论光谱。在实际应用过程中,库搜索中最常用的方法是线性扫描法,也就是穷举搜索法,依次计算光谱库l中每组理论光谱与测量光谱的光谱距离,然后抽取光谱距离最小的一组理论光谱所对应的结构参数为待测样品的结构参数,其中光谱距离是指两条光谱的光谱偏差。所述光谱偏差可以是某个波段或全波段反射率的绝对误差、均方根差等。这种方法原理简单、易于实现,然而当理论光谱库的规模很大(单条光谱包含的离散点数较多,或者库中光谱数量较多)时,该方法所需的时间复杂度将急剧上升,难以满足实际生产中对测量效率的要求。具体地,该线性扫描法的时间复杂度为o(nk),其中k为单条光谱中的离散点数(离散波长的数量),也即数据维度,n为光谱数量。
5.库搜索的另一种方法是通过构建光谱库索引树来实现对数据的快速搜索。因为测试数据(测量光谱)一般都会呈现簇状的聚类形态,依据此特性可利用超平面(n维欧氏空间中余维度等于一的线性子空间)将库中数据(光谱库中理论光谱)划分为若干子数据集,并且存储在本地。当进行库搜索时,只需在与测试数据最接近的部分子数据集中进行搜索,因此,该方法极大地提升了库搜索效率。例如,作为最常用的一种树结构索引方法,k维(k-dimensional,kd)树索引方法搜库的时间复杂度仅为明显低于线性扫描
法的时间复杂度。
6.然而,直接将传统的基于树结构的搜索方法用于光学散射测量中的库搜索时,仍然面临着巨大挑战。一方面,在构建树结构阶段,传统方法用超平面划分子数据集时,需要沿数据维度进行多次遍历,建树效率与数据维度直接相关。然而,光学散射测量中所用理论光谱库的数据维度少则数百、多则数千,因此通过传统方法构建树的速度极其缓慢。另一方面,光谱数据的每个波长都代表着光谱的特征,光谱波长离散点越多表示光谱的特征越分散,容易出现各子数据集之间的区分度不够。因此,在库搜索阶段,为了保证匹配精确度,传统方法会搜索大部分甚至全部的子数据集,导致测量光谱匹配效率急剧下滑,甚至与线性扫描法相当,难以满足实际测量中的需求。
7.为此,本发明提供了一种光谱库索引树的创建方法、光谱库搜索方法,在保证精度的情况下,提高库搜索的光谱匹配效率。


技术实现要素:

8.本发明提供了一种光谱库索引树的创建方法、光谱库搜索方法,在保证精度的情况下,提高库搜索的光谱匹配效率。
9.第一方面,本发明提供一种光谱库索引树的创建方法,包括:
10.s1、建立光谱库l,所述光谱库l中包括n条理论光谱,所述理论光谱包含k个离散波长点,其中,n、k均为大于1的整数;
11.s2、对所述n条理论光谱进行多轮划分,以创建所述光谱库索引树,所述索引树包括若干节点,每个所述节点对应指代一条所述理论光谱,所述多轮划分包括:
12.s2-1、任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,m为正整数;
13.s2-2、随机选取一个离散波长点pm,获取所述第m层节点理论光谱lm在所述离散波长点pm的光谱值lm[pm];
[0014]
s2-3、划分一:若剩余理论光谱在所述离散波长点pm对应的光谱值不大于所述光谱值lm[pm],则将其划分为所述第m层节点理论光谱lm的左子树理论光谱,否则,划分为所述第m层节点理论光谱lm的右子树理论光谱;或者,
[0015]
划分二:若剩余理论光谱在所述离散波长点pm对应的光谱值不大于所述光谱值lm[pm],则将其划分为所述第m层节点理论光谱lm的右子树理论光谱,否则,划分为所述第m层节点理论光谱lm的左子树理论光谱;
[0016]
其中,所述多轮划分从m=1开始,且m=1时,从所述光谱库l中任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm;
[0017]
m≠1时,从所述第m-1层节点理论光谱l
m-1
的左子树理论光谱中,任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,并重复s2-2至s2-3,直至所述第m层节点理论光谱lm的左子树理论光谱数目和所述第m层节点理论光谱lm的右子树理论光谱数目均为零为止;从所述第m-1层节点理论光谱l
m-1
的右子树理论光谱中,任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,并重复s2-2至s2-3,直至所述第m层节点理论光谱lm的左子树理论光谱数目和所述第m层节点理论光谱lm的右子树理论光谱数目均为零为止;其中,所述第m层节点是与所述第m层节点直接相连的所述第m-1层节点的
左子节点或右子节点。
[0018]
其有益效果在于:本发明通过采用随机采点法建立光谱库索引树,在保证搜索精度的同时,降低了创建时间的复杂度,具有建树速度快、搜索准确率高、搜索速度快的特点。
[0019]
可选地,每轮划分中随机选取的一个离散波长点pm为所述k个离散波长点中任意一个。
[0020]
可选地,所述第m层节点理论光谱lm的左子树理论光谱数目和右子树理论光谱数目之差的绝对值不大于10。
[0021]
进一步可选地,任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,所述第m层节点理论光谱lm在所述离散波长点pm的光谱值lm[pm]满足如下条件:m=1时,光谱值lm[pm]为所述光谱库l中所有光谱在所述离散波长点pm的光谱值的中值;m≠1时,光谱值lm[pm]为所述第m-1层节点理论光谱l
m-1
的左子树理论光谱中所有光谱在所述离散波长点pm的光谱值的中值,或者为所述第m-1层节点理论光谱l
m-1
的右子树理论光谱中所有光谱在所述离散波长点pm的光谱值的中值。
[0022]
其有益效果在于:通过所述光谱索引树任意一节点的左子树理论光谱和右子树理论光谱数目基本一致或数目相差很小,从而在光谱库搜索时,能够提高搜索效率、保证搜索精度。
[0023]
可选地,所述光谱库索引树的创建方法,还包括为所述光谱库索引树添加序列标签:为所述光谱库索引树的每个节点添加左序列标签和右序列标签;其中,第m层节点的左序列标签小于与所述第m层节点直接相连的第m+1层节点的左序列标签,并且,第m层节点的右序列标签大于与所述第m层节点直接相连的第m+1层节点的子节点的右序列标签;或者,第m层节点的左序列标签大于与所述第m层节点直接相连的第m+1层节点的左序列标签,并且,第m层节点的右序列标签小于与所述第m层节点直接相连的第m+1层节点的右序列标签。
[0024]
其有益效果在于:通过所述光谱库索引树添加序列标签,在进行光谱库搜索时,能够快速确定光谱库索引树的节点,提高了搜索效率。
[0025]
进一步可选地,所述光谱库索引树的创建方法,还包括为所述光谱库索引树添加深度标签:为所述光谱库索引树的每个节点添加深度标签,其中,同一层节点的深度标签相同,第m层节点的深度标签小于第m+1层节点的深度标签。
[0026]
其有益效果在于:在进行光谱库搜索时,能够依据搜索光谱库索引树的节点的深度标签,确定当前节点的所有子节点,即能够确定未搜索的理论光谱的数目。
[0027]
可选地,建立光谱库l,还包括:获取待测样品各结构参数的变化范围;由严格耦合波分析、有限元、边界元中任一方法仿真计算得到理论光谱;所述理论光谱,包括反射率、透射率、椭偏参数、穆勒矩阵中的一种或几种的组合。
[0028]
第二方面,本发明提供一种光谱库搜索方法,包括:
[0029]
s1、采用如第一方面中任一项所述的一种光谱库索引树的创建方法,创建光谱库索引树;
[0030]
s2、获取待测样品的测量光谱y;
[0031]
s3、执行首次搜索,获取第m层节点理论光谱lm,获取所述测量光谱y在所述离散波长点pm的光谱值y[pm],比较光谱值y[pm]与所述光谱值lm[pm]的大小:
[0032]
若所述光谱库索引树满足所述划分一,当y[pm]≤lm[pm],则搜索第m层节点的左子
节点,否则,搜索所述第m层节点的右子节点,直至搜索到最后一层的节点;
[0033]
若所述光谱库索引树满足所述划分二,当y[pm]≤lm[pm],则搜索第m层节点的右子节点,否则,搜索所述第m层节点的左子节点,直至搜索到最后一层的节点;
[0034]
其中,所述首次搜索从m=1开始;
[0035]
s4、记录首次搜索路径,获取所述首次搜索路径上每个节点与所述测量光谱的光谱距离:
[0036]
(y[pm]-l[pm])2,
[0037]
其中,l[pm]为所述首次搜索路径上任意一节点对应的理论光谱在随机选取的离散波长点pm对应的光谱值,y[pm]为所述测量光谱y在所述离散波长点pm对应的光谱值;
[0038]
基于所述光谱距离排序,获取最小光谱距离以及对应的最小光谱距离节点,并获取所述最小光谱距离节点对应的理论光谱与所述测量光谱y的欧式距离,将其作为欧式距离阈值ε0:
[0039][0040]
s5、执行回溯搜索,以所述最小光谱距离节点为回溯起点,获取回溯起点对应的理论光谱,重复首次搜索的步骤,记录所述回溯搜索路径,并重新排序获取最小光谱距离,及最小光谱距离节点;
[0041]
若所述重新排序获取最小光谱距离小于所述欧式距离阈值,以所述重新排序获取最小光谱距离节点为新的回溯起点,继续执行回溯搜索,若所述新的回溯起点对应的理论光谱与所述测量光谱的欧式距离小于所述欧式距离阈值,则更新欧式距离阈值,否则,不更新欧式距离阈值;
[0042]
若所述重新排序获取最小光谱距离大于或等于所述欧式距离阈值,结束搜索,获取当前欧式距离阈值,及其对应的阈值节点,所述阈值节点对应的理论光谱为与所述测量光谱最匹配的光谱。
[0043]
可选地,所述排序为动态排序,所述动态排序包括快速排序、链表排序、最小堆排序和二分排序中的任意一种排序方法。
[0044]
其有益效果在于:通过动态排序,能够在每次搜索完成后,快速获取所有搜索节点中最小光谱距离节点,快速确定回溯搜索起点,以便于提高回溯搜索效率。
[0045]
可选地,所述光谱库搜索方法,还包括:设置搜索深度阈值,获取当前搜索节点的左子树理论光谱和右子树理论光谱的数目之和,当所述数目之和不大于所述搜索深度阈值时,则搜索该当前搜索节点的左子树理论光谱和右子树理论光谱的所有光谱。
[0046]
其有益效果在于:通过设置搜索深度阈值,能够在当前搜索节点对应的子节点数目较少时,改变搜索策略,搜索当前节点的所有子节点,起到了提高搜索效率、保证搜索精度的效果。
附图说明
[0047]
图1为本发明提供的一种光谱库索引树的创建方法实施例的流程图;
[0048]
图2为本发明提供的一种光谱库索引树的结构实施例的示意图;
[0049]
图3为本发明提供的一种光谱库搜索方法的实施例的示意图。
具体实施方式
[0050]
下面结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。其中,在本技术实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本技术的限制。如在本技术的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“该”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本技术以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a、b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
[0051]
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
[0052]
在本技术实施例中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
[0053]
本发明提供了一种光谱库索引树的创建方法,其流程如图1所示,包括:
[0054]
s101,建立光谱库l,所述光谱库l中包括n条理论光谱,所述理论光谱包含k个离散波长点,其中,n、k均为大于1的整数。
[0055]
在本步骤中,可选地,所述建立光谱库l,包括:获取待测样品各结构参数的变化范围;由严格耦合波分析(rigorous coupled-wave analysis)、有限元(finite element method)、边界元(boundary element method)中任一方法仿真计算得到理论光谱;所述理论光谱,包括反射率、透射率、椭偏参数、穆勒矩阵中的一种或几种的组合。
[0056]
s102,对所述n条理论光谱进行多轮划分,以创建所述光谱库索引树,所述索引树包括若干节点,每个所述节点对应指代一条所述理论光谱。
[0057]
在本步骤中,根据待测样品各结构参数的变化范围及其对应的参数网格步长,即可得到所述结构参数组合的离散网格点。所述光谱库l中的每个离散网格点对应指代一条所述理论光谱。
[0058]
s102中的所述多轮划分包括:s102-1、任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,m为正整数;s102-2、随机选取一个离散波长点pm,获取所述第m层节点理论光谱lm在所述离散波长点pm的光谱值lm[pm];s102-3、划分一:若剩余理论光谱在所述离散波长点pm对应的光谱值不大于所述光谱值lm[pm],则将其划分为所述第m层节点理论光谱lm的左子树理论光谱,否则,划分为所述第m层节点理论光谱lm的右子树理论光谱;
或者,划分二:若剩余理论光谱在所述离散波长点pm对应的光谱值不大于所述光谱值lm[pm],则将其划分为所述第m层节点理论光谱lm的右子树理论光谱,否则,划分为所述第m层节点理论光谱lm的左子树理论光谱。
[0059]
其中,所述多轮划分从m=1开始,且m=1时,从所述光谱库l中任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm;m≠1时,从所述第m-1层节点理论光谱l
m-1
的左子树理论光谱中,任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,并重复s102-2至s102-3,直至所述第m层节点理论光谱lm的左子树理论光谱数目和所述第m层节点理论光谱lm的右子树理论光谱数目均为零为止;从所述第m-1层节点理论光谱l
m-1
的右子树理论光谱中,任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,并重复s102-2至s102-3,直至所述第m层节点理论光谱lm的左子树理论光谱数目和所述第m层节点理论光谱lm的右子树理论光谱数目均为零为止;其中,所述第m层节点是与所述第m层节点直接相连的所述第m-1层节点的左子节点或右子节点。
[0060]
本发明通过采用随机采点法建立光谱库索引树,在保证搜索精度的同时,降低了创建时间的复杂度,具有建树速度快、搜索准确率高、搜索速度快的特点。优选地,lm[pm]为所述光谱库l中的所有的理论光谱在该离散波长点pm所对应的光谱值的中位数,并将lm[pm]所对应的理论光谱lm作为光谱库索引树最顶层的节点,所述光谱值包括反射率。对于所述光谱库索引树中除所述光谱lm外的剩余光谱,若这些光谱在离散波长为pm时对应的光谱值小于或等于lm[pm],则将其划分为所述第m层节点理论光谱lm的左子树理论光谱,否则,将其划分为右子树。然后对左、右子树分别重复上述操作,即可建立光谱库索引树。如此建立的光谱库索引树具有二分的特性,每个节点的左、右子树的光谱数量基本保持一致。示例性地,以图2进行说明,假设光谱库l中共9条光谱,随机选取某一离散波长点p1(从k个离散波长点中任选一个),以光谱库l中9条光谱在离散波长点p1对应的光谱值的中位数作为光谱库索引树最顶层的节点,并将光谱在离散波长点p1所对应的光谱值的中位数记为节点a。比该离散波长点p1的对应的光谱值的中位数小的有5条光谱,将该5条光谱划分为节点a的左子树理论光谱,其他3条光谱划分为节点a的右子树理论光谱。然后随机选取离散波长点p2(从k个离散波长点中任选一个),以所述节点a的左子树理论光谱中包含的5条光谱所对应的光谱值的中位数做为节点a的左子树的最顶层的节点,且以这5条光谱所对应的光谱值的中位数记为节点b。比该节点b在离散波长点p2对应的光谱值的中位数小的有2条光谱,将该2条光谱划分为节点b的左子树理论光谱,其他2条光谱划分为节点b的右子树理论光谱。依次类推,直至光谱库中的所有光谱划分完成,最终形成了如图2所示的光谱库索引树。
[0061]
在一种可能的实施例中,每轮划分中随机选取的一个离散波长点pm为所述k个离散波长点中任意一个。在又一种可能的实施例中,所述第m层节点理论光谱lm的左子树理论光谱数目和右子树理论光谱数目之差的绝对值不大于10。
[0062]
在一种可能的实施例中,任选一条所述理论光谱作为所述光谱库索引树的第m层节点理论光谱lm,所述第m层节点理论光谱lm在所述离散波长点pm的光谱值lm[pm]满足如下条件:m=1时,光谱值lm[pm]为所述光谱库l中所有光谱在所述离散波长点pm的光谱值的中值;m≠1时,光谱值lm[pm]为所述第m-1层节点理论光谱l
m-1
的左子树理论光谱中所有光谱在所述离散波长点pm的光谱值的中值,或者为所述第m-1层节点理论光谱l
m-1
的右子树理论光谱中所有光谱在所述离散波长点pm的光谱值的中值。在本实施例中,通过所述光谱索引树
任意一节点的左子树理论光谱和右子树理论光谱数目基本一致或数目相差很小,从而在光谱库搜索时,能够提高搜索效率、保证搜索精度。
[0063]
可选地,所述光谱库索引树的创建方法,还包括为所述光谱库索引树添加序列标签:为所述光谱库索引树的每个节点添加左序列标签和右序列标签;其中,第m层节点的左序列标签小于与所述第m层节点直接相连的第m+1层节点的左序列标签,并且,第m层节点的右序列标签大于与所述第m层节点直接相连的第m+1层节点的子节点的右序列标签;或者,第m层节点的左序列标签大于与所述第m层节点直接相连的第m+1层节点的左序列标签,并且,第m层节点的右序列标签小于与所述第m层节点直接相连的第m+1层节点的右序列标签。在本实施例中,通过所述光谱库索引树添加序列标签,在进行光谱库搜索时,能够快速确定光谱库索引树的节点,提高了搜索效率。
[0064]
进一步可选地,所述光谱库索引树的创建方法,还包括为所述光谱库索引树添加深度标签:为所述光谱库索引树的每个节点添加深度标签,其中,同一层节点的深度标签相同,第m层节点的深度标签小于第m+1层节点的深度标签。在本实施例中,在进行光谱库搜索时,能够依据搜索光谱库索引树的节点的深度标签,确定当前节点的所有子节点,即能够确定未搜索的理论光谱的数目。
[0065]
示例性地,对所述光谱库索引树的节点添加标签以创建光谱库索引树,将所述光谱库索引树中任意一个节点所对应的光谱进行保存,可以保存在本地存储器,也可以保存在与所述光谱库索引树所在的装置存在信息交互的终端或服务器中。那么在后续的使用过程中可以省略建树过程。图2中的箭头所指示的遍历过程光谱库索引树算法原理。该方法将所述光谱库索引树按顺序遍历一次,并且在所述光谱库索引树的每个节点上增加三个标签,分别记录为节点的深度(level)标签、左序列标签、右序列标签。每一节点上的所述深度标签可以良好表征此节点上子节点的数量,深度标签越小的节点,其子节点的数量越多;左、右序列标签可用于快速收集当前节点的所有子节点数据。示例性地,对于一个节点k,其左序列标签大于节点m的左序列标签,并且其右序列标签小于节点m的右序列标签,则称节点k为节点m的子节点。所述光谱库索引树可以看作是对光谱库索引树的优化,并将所述光谱库索引树进行存储。那么再次使用该光谱库索引树的时候会省略上述建树过程,直接进行搜库操作。所述光谱库索引树可根据设计的标签快速获取每个节点的子节点,在实际应用中可大幅提升搜索效率。
[0066]
具体地,以图2为例介绍给节点添加左序列标签和右序列标签的方法。光谱库索引树会进行一次遍历,可以按照先以每个节点的左子节点或者每个节点的右子节点进行遍历,然后对遍历时经过的节点一次打上标签。以左节点优先遍历为例,即第一次经过某个节点时,给这个节点打上左序列标签。假设第一次从最顶层节点a出发,那么给该节点a打上左序列标签1,然后寻找节点a的左子节点,即节点b。然后,给节点b打上左序列标签2,再然后寻找节点b的左子节点,依次类推。如果在遍历过程中,找不到左子节点了,就开始回溯。在回溯过程中,给经过的节点打上右序列标签,例如,节点d为遍历过程中、且回溯之前的最后一个左节点,且节点d的左序列标签为4,那么回溯时,会首先经过节点d,且给节点d打上右序列标签为5。然后,依次给回溯过程中的每个节点打上右序列标签。其中,节点b左序列标签为2,那么搜寻完b的所有子节点后,给b打上右序列标签11。在整个遍历的过程中按照子节点的数量给每个节点添加level(深度)标签。深度标签越大,代表这个节点的子节点数目
越少。例如节点b和节点g的深度标签均为2,说明这两个节点的子节点的数量是基本一致的;最顶层节点a的深度标签为1,就可以推断节点a的子节点数量约为深度标签为2的节点的两倍。所以可以预设一个深度阈值,当搜索的深度达到阈值时,改变搜索方式,例如改成以线性搜索的方式搜索完当前节点的所有子节点。因为当光谱数量较少的时候,线性搜索效率较高。
[0067]
通过光谱库索引树得到的左序列标签、右序列标签可用于快速搜索节点,并大幅提升搜库找寻节点的效率。例如节点a的左序列标签为1,右序列标签为18,其子节点的左序列标签均大于1,右序列标签均小于18,因此得知a有(18-1-1)/2=8个子节点;又如找寻a的所有左子节点,即首先找到a的左子节点b,再找到节点b的所有子节点即为a的所有左子节点;找寻a的右子节点同理。索引树在搜库过程中搜索节点的传统方法是反复迭代遍历搜寻其子节点,但是本发明提供的光谱库索引树将添加标签的过程设置到搜库前,视为一个离线过程,且用线性遍历记录标签的方式避免了传统方法中重复遍历节点的问题,提升了搜库过程中搜寻节点的效率,且光谱库索引树内的光谱越多,比现有技术的效率提升的就越明显。
[0068]
基于上述任一项实施例所提供的所述光谱库索引树的创建方法,本发明提供一种光谱库搜索方法,其流程如图3所示,包括:
[0069]
s301,采用如上述任一项所述的一种光谱库索引树的创建方法,创建光谱库索引树。
[0070]
s302,获取待测样品的测量光谱y。可选地,用光学测量仪器获取待测样品的测量光谱y,所述光学测量仪器包括:反射仪、椭偏仪。优选地,对测量光谱y进行插值处理,以获得与理论光谱的离散波长对应的测量光谱y。由于所述测量光谱y与理论光谱的离散波长的点不一定一一对应,因此需要对测量光谱y中的数据进行插值处理。优选地,所述插值方法,包括:拉格朗日插值方法、牛顿插值方法、埃尔米特插值方法、三次样条插值方法。
[0071]
s303,执行首次搜索,获取第m层节点理论光谱lm,获取所述测量光谱y在所述离散波长点pm的光谱值y[pm],比较光谱值y[pm]与所述光谱值lm[pm]的大小:若所述光谱库索引树满足所述划分一,当y[pm]≤lm[pm],则搜索第m层节点的左子节点,否则,搜索所述第m层节点的右子节点,直至搜索到最后一层的节点;若所述光谱库索引树满足所述划分二,当y[pm]≤lm[pm],则搜索第m层节点的右子节点,否则,搜索所述第m层节点的左子节点,直至搜索到最后一层的节点;其中,所述首次搜索从m=1开始。
[0072]
示例性地,所述光谱库索引树满足所述划分一。在使用测量光谱y对所述光谱库索引树进行首次搜索时,依据测量光谱y在离散波长为pm时的光谱值与所述光谱库索引树中每个节点的光谱值的大小关系,决定所述测量光谱y的搜索路径。从所述光谱库索引树的最顶层节点开始搜索,当同一离散波长点所对应的测量光谱的光谱值小于在最顶层节点的光谱值,则搜索当前节点的左子节点;否则,则搜索当前节点的右子节点;依次类推,直到按照序列搜索到最后一个节点时,完成首次搜索。
[0073]
s304,记录首次搜索路径,获取所述首次搜索路径上每个节点与所述测量光谱的光谱距离;
[0074]
(y[pm]-l[pm])2,
[0075]
其中,l[pm]为所述首次搜索路径上任意一节点对应的理论光谱在随机选取的离
散波长点pm对应的光谱值,y[pm]为所述测量光谱y在所述离散波长点pm对应的光谱值;
[0076]
基于所述光谱距离排序,获取最小光谱距离以及对应的最小光谱距离节点,并获取所述最小光谱距离节点对应的理论光谱与所述测量光谱y的欧式距离,将其作为欧式距离阈值ε0:
[0077][0078]
s305,执行回溯搜索,以所述最小光谱距离节点为回溯起点,获取回溯起点对应的理论光谱,重复首次搜索的步骤,记录所述回溯搜索路径,并重新排序获取最小光谱距离,及最小光谱距离节点;若所述重新排序获取最小光谱距离小于所述欧式距离阈值,以所述重新排序获取最小光谱距离节点为新的回溯起点,继续执行回溯搜索,若所述新的回溯起点对应的理论光谱与所述测量光谱的欧式距离小于所述欧式距离阈值,则更新欧式距离阈值,否则,不更新欧式距离阈值;若所述重新排序获取最小光谱距离大于或等于所述欧式距离阈值,结束搜索,获取当前欧式距离阈值,及其对应的阈值节点,所述阈值节点对应的理论光谱为与所述测量光谱最匹配的光谱。
[0079]
由于对所述光谱库索引树进行首次搜索得到的光谱并不一定是最匹配测量光谱y的,因此需要验证所有的可能性才能保证结果的准确性,此时进行回溯搜索。
[0080]
以上述距离测量光谱的光谱值最近的节点为回溯起点,所述回溯搜索包括:从回溯起点开始,依次搜索所述光谱库索引树在首次搜索时未被搜索的分支节点,且搜索方法与上述搜索方法相同。记录搜索节点,并计算搜索节点所对应的光谱值与测量光谱在离散波长点pm为所对应的光谱值的光谱距离,将该次回溯搜索记录的节点和上次搜索记录的节点重新排序,比较各节点与测量光谱的光谱距离,获取这些节点中距离测量光谱的光谱值最近的节点。重新排序后,获取所述最小光谱距离节点对应的理论光谱与所述测量光谱y的光谱距离,并将计算得到的光谱距离与欧式距离阈值ε0进行比较,若该光谱距离大于或等于欧式距离阈值ε0,则回溯搜索停止;否则,以重新排序后,获取的距离测量光谱最近的节点为回溯起点,再次进行回溯搜索。此外,进行回溯搜索时,计算回溯起点与测量光谱的欧式距离,并将该欧式距离与欧式距离阈值ε0进行比较,若小于欧式距离阈值,则更新欧式距离阈值ε0。所述更新欧式距离阈值为用二者中更小的欧式距离替代原有欧式距离阈值ε0,否则,不更新。
[0081]
重复上述步骤,直至重新排序后距离测量光谱最近的节点与测量光谱的光谱距离不小于欧式距离阈值ε0,此时,搜索结束,欧式距离阈值ε0对应的光谱库索引树中的节点的理论光谱,即为光谱库中与测量光谱y最匹配的光谱,该理论光谱对应的结构参数即为待测样品的结构参数。
[0082]
此外,回溯搜索时,通过回溯起点的标签,可以快速确定测量光谱在所述光谱库索引树中对应的节点及其子节点。可选择的,可以预设一个深度阈值,当回溯搜索节点的深度达到深度阈值时,改变搜索方式,以线性搜索的方式搜索完当前节点的所有子节点。因为此时光谱数量较少,线性搜索效率最高。
[0083]
在回溯搜索过程中,同时记录搜索路径上的每个节点,每次回溯搜索,以与测量光谱距离最小的节点为回溯搜索的起点。距离测量光谱距离越近,代表此节点的所有子节点有最值的可能性越大,因此总是从光谱距离最小的节点开始回溯搜索会避免搜索过多的无
效路径。每次回溯搜索后,记录的搜索路径一直在增加,本发明在每次回溯搜索后,重新排序,采用一个动态排序的测策略,并且排序高效、稳定,使得每次回溯搜索时,回溯起点均为可能性最大的节点。即每次回溯搜索后,通过将记录的搜索路径上的节点进行动态排序,获取与测量光谱最近的节点。
[0084]
可选地,所述排序为动态排序,所述动态排序包括快速排序、链表排序、最小堆排序和二分排序中的任意一种排序方法。
[0085]
可选地,所述光谱库搜索方法,还包括:设置搜索深度阈值,获取当前搜索节点的左子树理论光谱和右子树理论光谱的数目之和,当所述数目之和不大于所述搜索深度阈值时,则搜索该当前搜索节点的左子树理论光谱和右子树理论光谱的所有光谱。在本实施例中,在进行光谱库搜索时,能够依据搜索光谱库索引树的节点的深度标签,确定当前节点的所有子节点,即能够确定未搜索的理论光谱的数目。
[0086]
为了更加详细地介绍本发明的内容,再次展示具体案例:
[0087]
本案例建立的光谱库的规模为30000
×
280,即本光谱库中有30000条光谱,每条光谱中离散波长的点数为280。从中选取100条待测光谱,分别用线性搜索、kd树搜索、以及本发明所提供的库搜索方法来测试搜库效率,将一百条光谱耗费总时间取平均,算法均基于python代码运行测试,均没有使用gpu加速等额外加速手段,测试结果如下表:
[0088][0089]
由上表可见,线性搜索方法搜索了30000条理论光谱,即光谱库中所有的理论光谱;传统基于树的方法搜索了29804条理论光谱,与线性搜索方法接近;本发明公开方法仅搜索了11577条理论光谱,回溯次数减少了一半以上。从搜索效率看,本发明公开方法效率是线性搜索方法的6倍,是传统基于树的搜索方法的4.3倍,在保证搜索高精度的前提下,库搜索效率得到了显著提升。
[0090]
以上所述,仅为本技术实施例的具体实施方式,但本技术实施例的保护范围并不局限于此,任何在本技术实施例揭露的技术范围内的变化或替换,都应涵盖在本技术实施例的保护范围之内。因此,本技术实施例的保护范围应以所述的权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1