首页 / 专利库 / 专利权 / 形式要求 / 缺陷 / 加标签方法、加标签装置以及缺陷检查装置

加标签方法、加标签装置以及缺陷检查装置

阅读:449发布:2022-09-28

专利汇可以提供加标签方法、加标签装置以及缺陷检查装置专利检索,专利查询,专利分析的服务。并且一种加标签方法、加标签装置以及 缺陷 检查装置,加标签方法包括:对各 进程 设定相互不同的标签;针对每一进程作为处理对象进程,并判定是否有与处理对象进程连接的第1连结进程,当有第1连结进程时,将处理对象进程及第1连结进程中的一者的标签更新为另一者的标签;在更新后,根据多个标签来搜索多个进程中的相互连接的进程并赋予同一标签,在更新标签时,将多个进程划分为多组,并将各组中执行的分别更新处理作为更新线程,基于排他控制一边允许利用多个更新线程中的一个更新线程进行标签的改写,并禁止由一个更新线程改写的标签的利用其他更新线程进行的改写,一边并列执行多个更新线程。,下面是加标签方法、加标签装置以及缺陷检查装置专利的具体信息内容。

1.一种加标签方法,对将二值图像数据进行进程长度化制作而成的多个进程实施加标签处理,所述加标签方法的特征在于包括:
初始标签设定工序,对各进程设定相互不同的标签;
更新工序,针对每一所述进程,将所述进程作为处理对象进程,并且判定是否存在与所述处理对象进程连接的第1连结进程,当存在所述第1连结进程时,进行将所述处理对象进程及所述第1连结进程中的一者的标签更新为另一者的标签的分别更新处理;以及搜索工序,在所述更新工序后,根据多个所述标签来搜索所述多个进程中的相互连接的进程并赋予同一标签,且
在所述更新工序中,将所述多个进程划分为多组,并且将各组中执行的所述分别更新处理作为更新线程,基于排他控制一边允许利用多个所述更新线程中的一个更新线程进行标签的改写,并且禁止由所述一个更新线程改写的所述标签的利用其他更新线程进行的改写,一边并列执行多个所述更新线程。
2.根据权利要求1所述的加标签方法,其特征在于:
在所述更新工序中,允许由所述一个更新线程改写的所述标签以外的标签的利用所述其他更新线程进行的改写。
3.根据权利要求1或2所述的加标签方法,其特征在于:
在所述分别更新处理中,将所述处理对象进程及所述第1连结进程中的更新了标签的进程作为更新进程,判定是否对所述更新进程连接有除所述处理对象进程及所述第1连结进程以外的第2连结进程,当存在所述第2连结进程时,进一步将所述更新进程及所述第2连结进程中的一者的标签更新为另一者的标签。
4.根据权利要求1或2所述的加标签方法,其特征在于:
所述多个进程是将所述二值图像数据针对每一行而进行所述进程长度化所得的进程,在所述分别更新处理中,将与所述处理对象进程的下行连接的进程判定为所述第1连结进程。
5.根据权利要求1或2所述的加标签方法,其特征在于:
在所述搜索工序中,针对每一所述进程执行如下的分别搜索处理,
将所述进程作为所述处理对象进程,并且根据所述多个标签来找出与所述处理对象进程连接的连结进程,将所述处理对象进程及所述连结进程的标签改写为相同。
6.根据权利要求5所述的加标签方法,其特征在于:
在所述搜索工序中,将所述多个进程划分为多组,并且将各组中执行的所述分别搜索处理作为搜索线程,基于所述排他控制一边允许利用多个所述搜索线程中的一个搜索线程进行标签的改写,并且禁止由所述一个搜索线程改写的所述标签的利用其他搜索线程进行的改写,一边并列执行多个所述搜索线程。
7.根据权利要求6所述的加标签方法,其特征在于:
在所述搜索工序中,允许由所述一个搜索线程改写的所述标签以外的标签的利用所述其他搜索线程进行的改写。
8.一种加标签装置,对将二值图像数据进行进程长度化制作而成的多个进程实施加标签处理,所述加标签装置的特征在于包括:
存储部,存储各进程的标签;
处理器部,具有多个进行运算处理的处理器核心;以及
控制部,在对多个所述标签初始设定相互不同的值后,针对每一所述进程,将所述进程作为处理对象进程,并且判定是否存在与所述处理对象进程连接的第1连结进程,当存在所述第1连结进程时,进行将所述处理对象进程及所述第1连结进程中的一者的标签更新为另一者的标签的分别更新处理,并进一步根据多个所述标签来搜索所述多个进程中的相互连接的进程而赋予同一标签,
所述多个进程根据所述处理器核心的个数而划分为多组,
各处理器核心针对所划分的一个或多个进程而将所述分别更新处理作为更新线程来执行,
所述控制部基于排他控制,一边允许利用多个所述更新线程中的一个更新线程进行标签的改写,并且禁止由所述一个更新线程改写的所述标签的利用其他更新线程进行的改写,一边并列执行多个所述更新线程,由此进行针对每一所述进程的所述分别更新处理。
9.根据权利要求8所述的加标签装置,其特征在于:
所述控制部针对每一所述进程执行如下的分别搜索处理,
将所述进程作为所述处理对象进程,并且根据所述多个标签来找出与所述处理对象进程连接的连结进程,将所述处理对象进程及所述连结进程的标签改写为相同。
10.根据权利要求9所述的加标签装置,其特征在于:
所述各处理器核心针对所划分的一个或多个进程将所述分别搜索处理作为搜索线程来执行,
所述控制部基于所述排他控制,一边允许利用多个所述搜索线程中的一个搜索线程进行标签的改写,并且禁止由所述一个搜索线程改写的所述标签的利用其他搜索线程进行的改写,一边并列执行多个所述搜索线程,由此进行针对每一所述进程的所述分别搜索处理。
11.一种缺陷检查装置,其特征在于包括:
图像获取部,获取检查对象图像;
图像抽取部,对所述检查对象图像进行检查而抽出包含缺陷部位的缺陷图像;
二值化处理部,对所述缺陷图像进行所述二值化处理而生成二值图像数据;
进程生成部,将所述二值图像数据进行进程长度化而生成多个进程;以及加标签单元,具有与根据权利要求8至10中任一项所述的加标签装置相同的构成,且对所述多个进程中的相互连接的进程赋予同一标签。

说明书全文

加标签方法、加标签装置以及缺陷检查装置

技术领域

[0001] 本发明涉及一种对将二值图像数据进行进程长度化(run lengthening)制作而成的多个进程(1ine)赋予标签的加标签技术以及应用该加标签技术的缺陷检查装置,尤其涉及一种加标签方法、加标签装置以及缺陷检查装置。

背景技术

[0002] 在半导体基板或印刷基板等的制造技术领域中,为了对制品中所含的缺陷进行检测并对其进行分析·评估,而经由显微镜等对评估对象物进行摄像,且从所获得的图像中抽出包含缺陷部的图像、所谓的缺陷图像。然后,根据该缺陷图像的二值图像数据来计测缺陷部的个数、面积或重心等。此时,为了自动地进行该计测,而广泛利用加标签(1abeling)(连结区域抽出)处理。例如,在日本专利特开2008-186123号公报中,对将二值图像数据按照每一行而进行进程长度化(run-lengthening)所生成的进程执行2段(pass)的标签赋予处理,从而实现了加标签处理的高速化。
[0003] 然而,在所述日本专利特开2008-1186123号公报中记载的发明(以下称作“现有发明”)中,是以从上位的进程数据开始依次进行调查为前提,从而这成为妨碍进一步高速化的因素之一。而且,所述现有发明中,必须另外设置记录被提供了不同标签的进程数据彼此是否属于相同的连结成分的标签表、以及针对每一标签而与该标签对应的进程数据的数目建立关联的进程数表。因此,根据进程的数目的增大或连结状态的复杂化而所述标签表及进程数表的要素数增大,这也成为妨碍加标签处理的高速化的另一因素。

发明内容

[0004] [发明要解决的课题]
[0005] 本发明鉴于所述课题而完成,其目的在于提供一种能够实现二值图像数据的加标签处理的高速化的技术,以及使用该技术而有效率地进行缺陷检查的技术。
[0006] [解决课题的手段]
[0007] 本发明的加标签方法对将二值图像数据进行进程长度化制作而成的多个进程实施加标签处理,所述加标签方法的特征在于包括:初始标签设定工序,对各进程设定相互不同的标签;更新工序,针对每一进程,将所述进程作为处理对象进程,并且判定是否存在与所述处理对象进程连接的第1连结进程,当存在第1连结进程时,进行将处理对象进程及第1连结进程中的一者的标签更新为另一者的标签的分别更新处理;以及搜索工序,在更新工序后,根据多个标签来搜索多个进程中的相互连接的进程并赋予同一标签,且在更新工序中,将多个进程划分为多组,并且将各组中执行的分别更新处理作为更新线程(thread),基于排他控制一边允许利用多个更新线程中的一个更新线程进行标签的改写,并且禁止由一个更新线程改写的标签的利用其他更新线程进行的改写,一边并列执行多个更新线程。
[0008] 而且,本发明的加标签装置对将二值图像数据进行进程长度化制作而成的多个进程实施加标签处理,所述加标签装置的特征在于包括:存储部,存储各进程的标签;处理器部,具有多个进行运算处理的处理器核心;以及控制部,在对多个标签初始设定相互不同的值后,针对每一进程,将所述进程作为处理对象进程,并且判定是否存在与所述处理对象进程连接的第1连结进程,当存在第1连结进程时,进行将处理对象进程及第1连结进程中的一者的标签更新为另一者的标签的分别更新处理,并进一步根据多个标签来搜索多个进程中的相互连接的进程而赋予同一标签,多个进程根据处理器核心的个数而划分为多组,各处理器核心针对所划分的一个或多个进程而将所述分别更新处理作为更新线程来执行,控制部基于排他控制,一边允许利用多个更新线程中的一个更新线程进行标签的改写,并且禁止由一个更新线程改写的标签的利用其他更新线程进行的改写,一边并列执行多个更新线程,由此进行针对每一进程的分别更新处理。
[0009] 此外,本发明的缺陷检查装置的特征在于包括:图像获取部,获取检查对象图像;图像抽出部,对检查对象图像进行检查而抽出包含缺陷部位的缺陷图像;二值化处理部,对缺陷图像进行二值化处理而生成二值图像数据;进程生成部,将二值图像数据进程长度化而生成多个进程;以及加标签单元,具有与所述加标签装置相同的构成,且对多个进程中的相互连接的进程赋予同一标签。
[0010] 在如此构成的发明中,初始设定针对每一进程而具有相互不同的值的标签。而且,针对每一进程执行分别更新处理,并根据是否存在与处理对象进程连接的连结进程来执行标签的更新。然后,根据多个标签来搜索多个进程中的相互连接的进程,并对其赋予同一标签。就这样利用更新工序与搜索工序这2段方式来进行加标签处理的方面而言,与现有发明相同,但本发明中,利用与进程的个数为相同数量的标签来进行二值图像数据的加标签处理,而不需要现有发明中所使用的标签表及进程数表,从而加标签处理的高速化成为可能。
[0011] 并且,在本发明的更新工序中,将多个进程划分为多组并且将各组中执行的分别更新处理作为更新线程,且并列执行这些更新线程。即,针对每个进程的分别更新处理得以并列执行。因此,关于标签更新,虽在更新线程间受到排他控制,但与从上位的进程开始依次赋予标签的现有发明相比,可大幅缩短加标签处理所需的总时间。
[0012] 此处,在更新工序中,禁止由一个更新线程改写的标签的利用其他更新线程进行的改写,但也可对该标签以外的标签,即不冲突的标签允许利用其他更新线程进行的改写。由此,可提高处理效率而进一步缩短加标签处理所需的时间。
[0013] 而且,在分别更新处理中,也可构成为在已更新第1连结进程的标签时,判定是否存在除与第1连结进程连接的处理对象进程以外的第2连结进程,当存在第2连结进程时,将第1连结进程及第2连结进程中的一者的标签更新为另一者的标签。这样不仅对第1连结进程进行标签更新,也对经由该第1连结进程而连接于处理对象进程的第2连结进程进行标签更新,由此可缩短在针对处理对象进程的分别更新处理之后执行的针对第2连结进程的分别更新处理所需的时间。结果,可缩短总的处理时间。
[0014] 而且,也可将具有与第1连结进程的标签更新前的更新前标签为同一标签的进程来作为第2连结进程,可通过利用更新前标签而容易且确实地找出第2连结进程,从而优选。
[0015] 而且,也可将二值图像数据针对每一行而进程长度化,该情况下,可将与处理对象进程的下行连接的进程判定为第1连结进程。
[0016] 而且,也可在2段中的搜索工序(搜索多个进程中的相互连接的进程并赋予同一标签的工序)中,针对每一进程而执行分别搜索处理。该“分别搜索处理”是指如下的处理,即,将一个进程作为处理对象进程,并且根据多个标签来找出与该处理对象进程连接的连结进程而将处理对象进程及连结进程的标签改写为相同。可这样通过针对每个进程的分别搜索处理来合理地进行搜索工序。并且,与所述针对每一进程的分别更新处理同样地,将多个进程划分为多组并且将各组中执行的分别搜索处理作为搜索线程(thread),基于排他控制而一边允许利用多个搜索线程中的一个搜索线程进行标签的改写,并且禁止由一个搜索线程改写的标签的利用其他搜索线程进行的改写,一边并列执行多个搜索线程。由此,搜索工序中也可提高处理速度并进一步推进加标签处理的高速化。
[0017] [发明的效果]
[0018] 根据本发明,能够并列执行用以执行加标签处理的处理的一部分,从而可缩短二值图像数据的加标签处理所需的总时间。附图说明
[0019] 图1是表示使用配备有本发明的加标签装置的一实施方式的缺陷检查装置的检查系统的概略构成的图。
[0020] 图2是表示图像处理部的概略构成的方框图
[0021] 图3是表示与本发明的加标签装置的一实施方式相当的加标签部的概略构成的方框图。
[0022] 图4是表示加标签部的加标签动作的流程图
[0023] 图5是表示提供给加标签部的二值图像数据的一例的图。
[0024] 图6(a)~图6(c)是表示对图5的二值图像数据执行进程长度化处理所得的进程的进程数据及表示进程彼此的连结关系的进程连接数据的初始值的图。
[0025] 图7是表示由各处理器核心执行的分别更新处理的流程图。
[0026] 图8是表示由各处理器核心执行的分别更新处理的一例的示意图。
[0027] 图9是表示由各处理器核心执行的分别搜索处理的流程图。
[0028] 图10是表示由各处理器核心执行的分别搜索处理的一例的示意图。
[0029] 附图标记:
[0030] 1:检查系统
[0031] 2:摄像装置
[0032] 3:控制装置
[0033] 4:装置控制部
[0034] 5:图像获取部
[0035] 6:图像处理部
[0036] 7:存储部
[0037] 8:输入受理部
[0038] 9:显示部
[0039] 21:摄像部
[0040] 22:平台(stage)
[0041] 23:平台(stage)驱动部
[0042] 61:滤波部
[0043] 62:差分抽出部(图像抽出部)
[0044] 63:二值化处理部
[0045] 64:加标签部
[0046] 65:孤立去除处理部
[0047] 211:照明部
[0048] 212:光学系统
[0049] 213:摄像元件
[0050] 641:处理器核心
[0051] 642:GPU
[0052] 643:分别更新处理部
[0053] 644:分别搜索处理部
[0054] 645:加标签用存储部
[0055] 646:运算处理部(控制部)
[0056] 647:进程生成部
[0057] 648:并列处理控制部
[0058] 649:数据初始设定部
[0059] M:基板检测装置
[0060] S:基板
[0061] S1~S4-n、S11~S21、S31~S38:步骤

具体实施方式

[0062] 图1是表示使用配备有本发明的加标签装置的一实施方式的缺陷检查装置的检查系统的概略构成的图。该检查系统1是进行在作为检查对象的半导体基板(以下称作“基板”)S的外观上所呈现的针孔或异物等缺陷检查的检查系统。检查系统1包括对基板S上的检查对象区域进行摄像的摄像装置2,以及根据来自摄像装置2的图像数据进行缺陷检查的控制装置3。
[0063] 如果相对于本系统而另外设置于基板S的生产线上的基板检测装置M发现基板S上有缺陷,则将该缺陷的位置座标提供给该检查系统1。装在生产线上的基板检测装置M利用预先规定的处理演算法来对基板S整体进行检查,如果基板表面有满足作为缺陷的要件的区域,则获取该区域的位置座标并加以输出。因此,该基板检测装置M所具有的摄像部为相对低的解析度,而处理演算法也为固定。
[0064] 另一方面,该检查系统1经由未图示的接口而与基板检测装置M连接,并利用具有更高解析度的摄像装置2对作为缺陷而由基板检测装置M报告位置座标的区域进行摄像,由控制装置3对该图像进行细查而更详细判定缺陷有无或其种类等,并且将缺陷部分的图像显示于显示部。
[0065] 摄像装置2包括:通过对基板S上的检查对象区域进行摄像而获取图像数据的摄像部21,保持基板S的平台(stage)22,及使平台22对于摄像部21相对移动的平台驱动部23。而且,摄像部21包括出射照明光的照明部211,向基板S导引照明光并且供来自基板S的光入射的光学系统212,及将由光学系统212成像的基板S的像转换为电信号的摄像元件213。平台驱动部23包含滚珠螺杠(ball screw)、导轨电动机,设置于控制装置3的装置控制部4通过对平台驱动部23及摄像部21进行控制,而对基板S上的检查对象区域进行摄像。
[0066] 控制装置3具有装置控制部4,该装置控制部4执行预先读入的控制程序,由此以如下方式使图1所示的控制装置各部动作。控制装置3除所述的装置控制部4外,还包括图像获取部5及图像处理部6。图像获取部5将从摄像部21输出的电信号数据化,而获取与摄像图像对应的图像数据。图像处理部6对图像获取部5所获取的图像数据实施适当的图像处理,从而检测图像中所含的缺陷或制作缺陷部分的图像(以下称作“缺陷图像”)。另外,该图像处理部6包含作为本发明的加标签装置的一实施方式的加标签部,可高速地执行针对缺陷图像的加标签处理。以后将对图像处理部6特别是加标签部的构成及动作进行详述。
[0067] 此外,控制装置3包括用以存储各种数据的存储部7、受理来自使用者的操作输入的键盘鼠标等输入受理部8及显示操作顺序或处理结果等面向使用者的视觉信息的显示部9等。而且,虽省略图示,但具有从光盘、磁盘、光磁盘等电脑可读取的记录媒体读取信息的读取装置,且与在检查系统1的其他构成之间收发信号的通信部适当地经由接口(I/F)等而连接。
[0068] 图2是表示图像处理部的概略构成的方框图。图像处理部6包括滤波部61、差分抽出部62、二值化处理部63、加标签部64及孤立去除处理部65。滤波部61中从图像获取部5发送来摄像图像,并且从存储部7发送来参照图像。所述两图像中的摄像图像为由摄像装置2摄像的基板S的图像,相当于作为缺陷检测检查的对象的检查对象图像。而且,参照图像是与无缺陷的理想的基板对应的图像,该实施方式中,如以下说明那样,利用检查对象图像与参照图像的比较而对检查对象图像进行缺陷检测。所述缺陷图像及参照图像被存储在存储部7中,且视需要而参照,但也可为视需要而读入存储在外部的存储媒体中的图像数据的形态。
[0069] 滤波部61针对检查对象图像及参照图像的各个,进行用以去除图像噪声及与缺陷无关的轻微的图像的差异的滤波处理,并将各图像发送至差分抽出部62。该差分抽出部62相当于本发明的“图像抽出部”的一例,通过求出滤波处理后的检查对象图像及参照图像的差分而抽出图像内容相互不同的区域,并将该差分图像发送至二值化处理部63。而且,二值化处理部63利用适宜的阈值将差分图像二值化而生成二值图像数据BFI,并发送至加标签部64。该加标签部64将二值图像数据BFI进行进程长度化而生成多个进程,对该多个进程赋予标签。此外,孤立去除处理部65从已加标签的二值图像中去除残留的孤立点。由此,制作所求出的缺陷位置图像,并从图像处理部6输出。
[0070] 图3是表示相当于本发明的加标签装置的一实施方式的加标签部的概略构成的方框图。该加标签部64包括具有多个处理器核心641的图形处理器(Graphics Processing Unit,GPU)642。该GPU642中,各处理器核心641作为分别更新处理部643及分别搜索处理部644而发挥功能,并将针对每个进程的分别更新处理及分别搜索处理分别作为一个线程而加以执行。本实施方式中,针对每个进程的分别更新处理相当于本发明的“更新线程”的一例,针对每个进程的分别搜索处理相当于本发明的“搜索线程”的一例。另外,关于分别更新处理及分别搜索处理,将于以后进行详述。
[0071] 而且,加标签部64包括加标签用存储部645,该加标签用存储部645存储二值图像数据BFI、用以指定进程r[m]的数据(以下称作“进程数据”)、及进程连接数据id[m]。关于这些数据,以后将一边表示具体例一边进行详述。
[0072] 此外,加标签部64中设置着包含中央处理器(Central Processing Unit,CPU)或存储器等的运算处理部646。运算处理部646中包括:进程生成部647,通过CPU依据规定的程序进行运算处理,将二值图像数据BFI进行进程长度化而生成进程r[m];并列处理控制部648,对GPU642内的各处理器核心641所执行的线程一边进行排他控制一边并列执行;以及数据初始设定部649,将进程r[m]及进程连接数据id[m]中所含的标签编号初始化。这样,运算处理部646作为本发明的“控制部”而发挥功能。
[0073] 然后,一边参照图4至图10一边对如所述般构成的加标签部64的加标签动作进行说明。图4是表示加标签部的加标签动作的流程图。如果由二值化处理部63制作的二值图像数据BFI被提供给加标签部64,则加标签部64的运算处理部646对加标签部64的各部进行控制而执行加标签处理。首先,该二值图像数据BFI被暂时地记录到加标签用存储部645中。而且,对二值图像数据BFI,由进程生成部647执行进程长度化处理而生成多个进程r[m](步骤S1),且存储在加标签用存储部645中。另外,关于进程长度化处理,现有周知技术中已提出有许多,本实施方式中也直接使用普通的进程长度化处理。因此,省略进程长度化处理的说明。
[0074] 图5是表示提供给加标签部的二值图像数据的一例的图。而且,图6(a)~图6(c)是表示对图5的二值图像数据执行进程长度化处理所得的进程的进程数据及表示进程彼此的连结关系的进程连接数据的初始值的图。图5及图6(a)中的纵方向及横方向的数值(0、1、2、...)表示矩阵排列的像素的行方向及列方向的座标位置,即行索引(index)及列索引。而且,图5中,被附加影线的像素表示为具有“1”的像素数据的像素,另一方面,未被附加影线的像素表示为具有“0”的像素数据的像素。如果对具有此种像素数据的二值图像数据BFI施加针对每行的进程长度化处理,则获得图6(a)所示的进程。具体来说,在第0行及第4行中,因不存在“1”的像素,所以不制作进程,在第1行至第3行中,分别制作2个、2个及1个进程。该说明书中,以“m”来表示由进程长度化处理制作而成的各进程的进程编号,按照进程的制作顺序取0、1、2、...的值,且以r[m]来表示进程编号m的进程。
[0075] 而且,图6(b)中图示了将进程r[0]~进程r[4]的进程数据按照进程编号顺序存储在加标签用存储部645的进程数据存储区域中的状态,该进程r[0]~进程r[4]是将图5的二值图像数据BFI进行进程长度化处理制作而成。该图6(b)中,“标签编号”表示赋予至该进程的标签,“始端像素位置”表示如下的列索引,即该列索引表示二值图像数据BFI中的该进程的始端像素位置,“终端像素位置”表示如下的列索引,即该列索引表示二值图像数据BFI中的该进程的终端像素位置,“行索引”表示二值图像数据BFI中的该进程的行索引。这些之中的“标签编号”是表示该进程与该进程以外的进程的连结关系的值,通过执行以后将要说明的更新处理(步骤S3)及搜索处理(步骤S4),而对图5所示的二值图像数据BFI中相互连结的进程彼此赋予相同的值。另外,本实施方式中,为了有效率地执行搜索处理(步骤S4),而具有表示进程彼此的连结关系的进程连接表。该进程连接表中,设置进程连接数据id[m]来作为表示进程r[m]的连接状态的数据,且由标签编号来表示进程r[m]与其他进程的连接状态,例如以图6(c)所示的表形式而存储在加标签用存储部645的进程连接数据存储区域中。
[0076] 回到图4中继续说明加标签处理。本实施方式中,在根据二值图像数据BFI制作进程时,针对每一进程,设定相互不同的标签编号来作为表示该进程与该进程以外的进程的连结关系的标签(步骤S2)。本实施方式中,使进程r[m]的标签编号及进程连接数据id[m]的标签编号与进程编号m一致。即,将进程r[0]、进程r[1]、...的标签编号分别初始设定为“0”、“1”、...,并且对进程连接数据id[0]、进程连接数据id[1]、...的标签编号也分别初始设定为“0”、“1”、...。
[0077] 在下一步骤S3中执行更新处理(步骤S3)。该更新处理中,针对每一进程而执行分别更新处理。该“分别更新处理”是如下的处理:将一个进程作为处理对象进程,并且判定是否存在在该处理对象进程的下行且在纵方向及斜方向上连接的连结进程,当存在连结进程时,将处理对象进程及连结进程中的进程连接数据的标签编号中的较大的标签编号更新为较小的标签编号,本实施方式中对多个(例如n个)进程的各个执行分别更新处理。此处,也可串行地、例如按照进程编号顺序来进行所述n个分别更新处理,但该情况下,更新处理要耗费大量时间。
[0078] 因此,本实施方式中,将针对每个进程的分别更新处理作为一个线程,由GPU642内的各处理器核心641并列地执行线程。即,如图3所示,第0处理器核心641中将进程r[0]作为处理对象进程而执行分别更新处理,且与其并行地在第1处理器核心641中将进程r[1]作为处理对象进程而执行分别更新处理。而且,关于其他进程r[2]、进程r[3]、...、进程r[n],也与所述分别更新处理并行地执行。其中,在各分别更新处理中,因如后述那样伴有进程连接数据中的标签编号的更新作业,所以本实施方式中并列处理控制部648进行处理器核心641间的排他控制。
[0079] 图7是表示由各处理器核心执行的分别更新处理的流程图。而且,图8是表示由各处理器核心执行的分别更新处理的一例的示意图。此处,首先一边参照图7一边说明针对进程编号p(p=0、1、2、...或n)的进程r[p]的分别更新处理的基本动作,然后,一边参照图8的具体例一边说明标签编号的更新例。
[0080] 进程r[p]的分别更新处理是由第p处理器核心641按照以下的顺序来执行。步骤S11中,将进程r[p]作为处理对象进程,并将与该处理对象进程r[p]的下行连接的进程作为第1连结进程而抽出。而且,在未抽出第1连结进程的情况下(步骤S12中“否(NO)”的情况下),结束该线程中的分别更新处理。
[0081] 另一方面,在已抽出第1连结进程的情况下(步骤S12中“是(YES)”的情况下),执行以下的步骤S13~步骤S21而进行标签编号的更新。另外,此处,继续说明将位于进程r[p]的下行的进程r[q]作为第1连结进程而抽出的情况。
[0082] 下一步骤S13中,从加标签用存储部645中读取与进程r[p]、进程r[q]分别对应的进程连接数据id[p]、进程连接数据id[q]。此处,在进程连接数据id[p]、进程连接数据id[q]设定为相同值,即同一标签编号,而设定了连结关系的情况下(步骤S14中“YES”的情况下),结束该分别更新处理。
[0083] 另一方面,在步骤S14中判定为“NO”,即进程连接数据id[p]、进程连接数据id[q]不同(设定相互不同的标签编号)的情况下,进行进程连接数据的更新。如此般进程连接数据id[p]、进程连接数据id[q]相互不同是指在进程[p]与进程[q]之间连结关系不成立。然而,实际上连接关系成立,因而根据进程连接数据id[p]、进程连接数据id[q]的大小关系而将一者的标签编号更新为另一者的标签编号(步骤S15~步骤S19)。
[0084] 步骤S15中对比进程连接数据id[p]、进程连接数据id[q],在根据该对比结果而判明进程连接数据id[p]为大于进程连接数据id[q]的标签编号的情况下,将进程连接数据id[p]改写为进程连接数据id[q],将进程连接数据id[p]更新为更小的标签编号(步骤S16)。而且,将如此般经过变更的进程r[p]的标签编号作为值(old_dum)而记录,将变更前的进程连接数据id[p]作为值(old_id)而记录,并且将变更后的进程连接数据id[p]作为值(new_id)而记录(步骤S17)。
[0085] 相反,在判明进程连接数据id[q]为比进程连接数据id[p]大的标签编号的情况下,将进程连接数据id[q]改写为进程连接数据id[p],将进程连接数据id[q]更新为更小的标签编号(步骤S18)。而且,将如此般为经过变更的进程r[q]的标签编号作为值(old_dum)而记录,将变更前的进程连接数据id[q]作为值(old_id)而记录,并且将变更后的进程连接数据id[q]作为值(new_id)而记录(步骤S19)。
[0086] 而且,在值(old_dum)与值(old_id)一致的情况下(步骤S20中为“YES”的情况下),结束该分别更新处理。另一方面,在两者不一致的情况下(步骤S10中为“NO”的情况下),作为更新了标签编号侧的进程(以下称作“更新进程”)与处理对象进程及所述第1连结进程以外的进程(以下称作“第2连结进程”)连结。因此,在存在此种第2连结进程的情况下,执行步骤S21后回到步骤S13。也就是,步骤S21中将进程编号p改写为值(old_id)并且将进程编号q改写为值(new_id)。由此,更新进程设定为新的进程r[p],且第2连结进程设定为新的进程r[q],回到步骤S13中,检查更新进程与第2连结进程之间标签编号的异同(步骤S14),在标签编号不同的情况下将较大的标签编号更新为较小的标签编号(步骤S15~步骤S19)。
[0087] 如此在分别更新处理中,不仅对与处理对象进程直接连接的直接连结进程更新标签编号,也对经由该直接连结进程而与处理对象进程间接连接的间接连结进程更新标签编号。
[0088] 然后,一边参照对图6(a)及图6(b)所示的进程r[0]~进程r[4]执行更新处理的情况下的一例(图8),一边对更新处理(步骤S3)的内容进行更详细说明。另外,图8中的纵轴表示时间经过,在开始时间点进程连接数据id[0]~进程连接数据id[4]分别设定为初始值,即0~4。进程连接数据id[0]~进程连接数据id[4]中的附上阴影线者表示更新变更后的标签编号。而且,在“第0线程”~“第4线程”的下方排列的项目(“连结进程:存在”,“禁止改写”等)表示由各处理器核心641执行的处理内容。
[0089] 在n个处理器核心641中的5个处理器核心641中,分别并列地执行进程r[0]~进程r[4]的分别更新处理。这些之中的进程r[3]、进程r[4]的分别更新处理分别作为第3线程及第4线程而执行,但因均无下行,且不存在第1连结进程,所以提前结束线程(步骤S3-3、步骤S3-4),从而完成分别更新处理。另一方面,确认进程r[0]~进程r[2]的分别更新处理中存在连结进程,进行与这些进程对应的进程连接数据的读取、对比、改写等。此处,例如第2线程(进程r[2]的分别更新处理)中,读取作为处理对象进程的进程r[2]、及与其连接的连结进程r[4]的进程连接数据id[2]、进程连接数据id[4]的值,即标签编号。此处,
[0090] id[2]=2,
[0091] id[4]=4。
[0092] 将他们进行对比的结果为,进程连接数据id[4]为大于进程连接数据id[2]的值,因而必须将进程连接数据id[4]的标签编号改写为进程连接数据id[2]的标签编号。这样一来,如果第2线程中的改写准备最先完成,则在由并列处理控制部648暂时禁止第0线程及第1线程的分别更新处理中的数据改写的状态下,执行进程连接数据id[4]的改写,进程连接数据id[4]的标签编号从“4”更新为“2”。而且,作为已更新的进程r[4]的标签编号的值(o1d_dum)与作为变更前的进程连接数据id[4]的值(o1d_id)均为“4”,因为是相同的值,所以结束第2线程(步骤S3-2)。
[0093] 然后,如该图所示,如果在第1线程中改写准备完成,则在由并列处理控制部648暂时禁止第0线程的分别更新处理中的数据改写的状态下,执行进程连接数据id[2]、进程连接数据id[3]的改写。更具体来说,第1线程(进程r[1]的分别更新处理)中,作为处理对象进程的进程r[1]在下行与进程r[2]、进程r[3]连结,从而将进程r[2]、进程r[3]认定为第1连结进程。而且,读取处理对象进程r[1]的进程连接数据id[1]、及连结进程r[2]、连结进程r[3]的进程连接数据id[2]、进程连接数据id[3]。他们成为
[0094] id[1]=1,
[0095] id[2]=2,
[0096] id[3]=3。
[0097] 对他们进行对比的结果为,进程连接数据id[2]、进程连接数据id[3]均为大于进程连接数据id[1]的值,因而进程连接数据id[2]、进程连接数据id[3]的标签编号均改写为进程连接数据id[1]的标签编号。而且,关于已更新的进程r[2],作为其标签编号的值(old_dum)及作为变更前的进程连接数据id[2]的值(old_id)均为“2”。而且,关于已更新的进程r[3],作为其标签编号的值(old_dum)与作为变更前的进程连接数据id[3]的值(old_id)均为“3”。这样,关于进程r[2]、进程r[3]中的任一个,值(old_dum)与值(old_id)为相同的值,因而结束第1线程(步骤S3-1)。
[0098] 最后剩余的第0线程(进程r[0]的分别更新处理)中,作为处理对象进程的进程r[0]在下行与进程r[2]连接,将进程r[2]作为连结进程而与所述第1线程及第2线程同样地将进程连接数据id[2]的标签编号改写为进程连接数据id[0]的标签编号。其中,所更新的进程连接数据id[2]已被改写1次而从初始值(进程r[2]的初始标签编号=2)变为“1”,作为该进程r[2]的标签编号的值(old_dum)与作为变更前的进程连接数据id[2]的值(old_id)分别为“2”、“1”而不同。因此,如图7的步骤S21中执行那样,进行进程连接数据id[0]、进程连接数据id[1]的读取、对比、改写,且如图8的下部分所示,将进程连接数据id[1]的标签编号改写为进程连接数据id[0]的标签编号。这样,作为已更新的进程r[1]的标签编号的值(old_dum)与作为变更前的进程连接数据id[1]的值(old_id)均为“1”,因为是相同的值所以结束第0线程(步骤S3-0)。这样,进程r[1]不与处理对象进程r[0]直接连接,而经由进程r[2]间接连接,从而对其也进行进程连接数据的更新。
[0099] 这样一来,如果所有线程结束,则更新处理(步骤S3)完成,通过对图6(a)及图6(b)所示的进程r[0]~进程r[4]执行更新处理而进程连接数据id[0]~进程连接数据id[4]从(0、1、2、3、4)更新为(0、0、0、1、2)。另外,根据所述说明可知,因由1线程、1进程进行并行处理,所以更新处理后的进程连接数据id[0]~进程连接数据id[4]的标签编号根据哪一进程先受到处理而取不同的值。
[0100] 然后,回到图4中继续说明加标签处理。当所述更新处理(步骤S3)结束时,执行搜索处理(步骤S4)。该搜索处理也与更新处理同样地,将针对每个进程的分别搜索处理作为一个线程,由并列处理控制部648一边控制改写时机一边由GPU642内的各处理器核心641并列地执行线程。即,如图3所示,第0处理器核心641中将进程r[0]作为处理对象进程而执行分别搜索处理,与其并行地在第1处理器核心641中将进程r[1]作为处理对象进程而执行分别搜索处理。而且,关于其他进程r[2]、进程r[3]、...、进程r[n],也与所述分别搜索处理并行地执行。另外,“分别搜索处理”是将一个进程作为处理对象进程并且根据数据连接表(进程连接数据id[0]、进程连接数据id[1]、...、进程连接数据id[n])来找出与该处理对象进程连接的连结进程,而将处理对象进程及连结进程的标签编号改写为相同。以下,一边参照图9及图10一边对分别搜索处理进行详述。
[0101] 图9是表示由各处理器核心执行的分别搜索处理的流程图。而且,图10是表示由各处理器核心执行的分别搜索处理的一例的示意图。此处,也与分别更新处理的情况同样地,首先一边参照图9一边说明针对进程r[p]的分别搜索处理的基本动作,然后一边参照图10的具体例一边说明标签编号的改写例。
[0102] 进程r[p]的分别搜索处理由第p处理器核心641按照以下的顺序来执行。步骤S31中,将进程r[p]作为处理对象进程,从进程连接表中读取并获取与该处理对象进程r[p]对应的进程连接数据id[p]。然后,判定该进程连接数据id[p]是否与处理对象进程r[p]的标签编号的初始值相等(步骤S32)。此处,在判定为相同的情况下,直接完成分别搜索处理。另一方面,在判定为不同的情况下(步骤S32中为“NO”的情况下),执行步骤S33~步骤S38而进行标签编号的改写。
[0103] 步骤S33中将进程连接数据id[p]作为值(new_dum)而记录后,从进程连接表中读取进程连接数据id[new_dum](步骤S34)。而且,判定进程连接数据id[new_dum]与值(new_dum)是否相等(步骤S35),在判定为他们并不相等的期间,将值(new_dum)改写为进程连接数据id[new_dum](步骤S36),回到步骤S34而重复进行新的进程连接数据id[new_dum]的读取。
[0104] 然后,在进程连接数据id[new_dum]与值(new_dum)一致的时间点(步骤S35中判定为“YES”的时间点),将进程编号p的进程r[p]的标签编号改写为值(new_dum)(步骤S37)。而且,对于进程连接数据id[p],也同样地改写为值(new_dum)(步骤S38),从而结束该分别搜索处理。另外,该改写与分别更新处理的情况同样地在由并列处理控制部648控制改写时机的状态下执行。
[0105] 然后,一边参照在由如图8所示的更新处理将进程连接表从初始状态更新后继而执行搜索处理的情况下的一例(图10),一边更详细说明搜索处理(步骤S4)的内容。另外,此处,一边参照图10一边说明将进程r[4]作为处理对象进程的分别搜索处理。图10中的纵轴表示时间经过,进程r[0]~进程r[4]的标签编号的初始值分别设定为0~4。标签编号中的附上梨皮花纹者表示成为搜索对象的标签编号。而且,在“第4线程”的下方排列的项目(“id[4]的获取→id[4]=2”等)表示由第4处理器核心641执行的处理内容。
[0106] 第4处理器核心641中,将进程r[4]作为处理对象进程,从进程连接表中读取与该处理对象进程r[4]对应的进程连接数据id[4],在将该值(=2)与进程r[4]的标签编号的初始值(=4)进行对比后,确认两者不一致。于是,将读取对象移动至进程连接数据id[4]所示的标签编号(new_dum)的进程连接数据id[new_dum]、即进程连接数据id[2],并从进程连接表中读取进程连接数据id[2],将该值(=0)与进程r[2]的标签编号的初始值(=2)进行对比。然后,如果确认两者不一致,则再次将读取对象移动至进程连接数据id[2]所示的标签编号(new_dum)的进程连接数据id[new_dum]、即进程连接数据id[0],并从进程连接表中读取进程连接数据id[0],将该值(=0)与进程r[0]的标签编号的初始值(=0)进行对比。于是,确认两者一致,将处理对象进程r[4]的标签编号改写为该值,从而结束该线程。另外,关于其他线程也执行相同的分别搜索处理,其结果,搜索相互连接的进程并赋予同一标签。例如对于将图5所示的二值图像数据进行进程长度化处理所得的进程r[0]~进程r[4](参照图6(a)~图6(c))赋予同一标签(=0)。
[0107] 如以上,本实施方式中,在初始设定针对每个进程r[m]而具有相互不同的值的标签编号后,执行更新处理(步骤S3)及搜索处理(步骤S4)这2段工序。在这些之中的更新处理(步骤S3)中,针对每个进程r[m],执行分别更新处理(步骤S3-0、步骤S3-1、...)并根据是否存在与处理对象进程连接的连结进程而更新标签编号。而且,搜索处理(步骤S4)中,针对每个进程r[m],执行分别搜索处理(步骤S4-0、步骤S4-1、...)并根据更新后的标签编号来找出与处理对象进程连接的连结进程,将处理对象进程及连结进程的标签改写为相同。这样,可由与进程的个数m为相同数量的标签编号进行二值图像数据BFI的加标签处理,从而可使加标签处理高速化。
[0108] 而且,更新处理(步骤S3)及搜索处理(步骤S4)均由1进程、1线程并列地进行针对每个进程的分别更新处理及分别搜索处理,因而可大幅缩短加标签处理所需的总时间。
[0109] 此外,分别更新处理(步骤S3-0、步骤S3-1、...)中,构成为在已更新与处理对象进程直接连接的第1连结进程的标签编号时,不仅对该第1连结进程进行标签更新,在存在除与第1连结进程连接的处理对象进程以外的第2连结进程的情况下,也对第2连结进程进行标签更新。因此,可缩短在针对处理对象进程的分别更新处理后执行的针对第2连结进程的分别更新处理所需的时间。结果,可缩短总的处理时间。
[0110] 另外,本发明并不限于所述实施方式,只要不脱离其主旨则除所述以外还可进行各种变更。例如,所述实施方式中,由1进程、1线程并列地进行分别更新处理,但多个进程r[m]的划分形态不限于此。即,也可根据处理器核心641的个数而适当变更多个进程r[m]的划分形态,还可构成为根据处理器核心641的个数将多个进程r[m]划分为多组,各处理器核心对经划分的一个或多个进程将分别更新处理作为更新线程而执行。就这些方面而言,在分别搜索处理中也完全相同。
[0111] 而且,所述实施方式中,为了执行分别更新处理及分别搜索处理而使用具有多个处理器核心641的GPU642,但也可构成为代替GPU而设置多个CPU,由各CPU执行一个线程。而且,还可在GPU642内设置运算处理部646或加标签用存储部645。
[0112] 而且,所述实施方式中,位于第0处理器核心641~第n处理器核心641的上位的并列处理控制部648进行加标签用存储部645的访问(access)管理,在更新处理及搜索处理的任一个中,根据利用一个线程进行的数据改写而暂时地禁止利用其他线程进行的数据改写。即,在由一个线程例如进行进程连接数据id[m](其中0≤m≤n)的改写的情况下,不仅暂时地禁止其他线程改写进程连接数据id[m]而避免标签更新的冲突,而且除此以外的进程连接数据的改写也暂时禁止。所述访问管理未必为最佳,尚有改善的余地。例如为了实现处理速度的进一步的提高,理想的是以如下方式执行并列处理控制部648对加标签用存储部645的访问管理。也就是,在由一个线程进行进程连接数据id[m]的改写时,优选暂时禁止其他线程改写进程连接数据id[m]而避免标签更新的冲突,另一方面,使对进程连接数据id[m]以外的进程连接数据的访问自由化而允许数据改写。
[0113] 而且,所述实施方式中,将二值图像数据BFI针对每一行进行进程长度化而获得进程r[m],并且将在处理对象进程的下行且在纵方向及斜方向上连接的进程判定为连结进程,但进程长度化的形态、连结进程的判定形态均不限定于此,例如可对针对每列而进行进程长度化,且对由该进程长度化处理制作而成的进程应用本发明的加标签方法。而且,所述实施方式中,如所述般由针对下行的进程的8邻域搜索来决定连结进程,但也可由其他搜索方法,例如4邻域搜索来决定连结进程。而且,所述实施方式的进程长度化处理中由图像整体一次性生成进程,但也可将图像切分为适当尺寸区域,在各切分范围内生成进程。然而,该情况下,必须在切分区域彼此的边界处进行进程的连接判定处理。
[0114] 而且,所述实施方式中,连续的标签编号(0、1、2、...)被用作本发明的“标签”,但也可将与其不同的编号或编号以外的值用作本发明的“标签”。而且,是改写为更小的编号而进行标签更新,但标签更新的形态并不限定于此。
[0115] 此外,所述实施方式中,是在装置内部将二值图像数据BFI进行进程长度化后,对由该进程长度化处理制作而成的进程实施加标签处理,但本发明中应用对象并不限定于此,本发明也可应用于例如对将由外部装置制作而成的进程加标签的装置或方法。
[0116] 本发明可优选应用于对将二值图像数据进行进程长度化制作而成的多个进程赋予标签的加标签技术。
相关专利内容
标题 发布/更新时间 阅读量
缺陷预测 2020-05-11 451
缺陷检查方法 2020-05-12 222
缺陷检查装置 2020-05-12 914
缺陷检查装置 2020-05-12 577
弧面缺陷测量卡 2020-05-12 947
缺陷检查系统 2020-05-13 806
缺陷检测机 2020-05-11 906
缺陷检测装置、缺陷修复装置、缺陷检测方法 2020-05-12 953
缺陷检测装置、缺陷检测系统及缺陷检测方法 2020-05-12 776
出生缺陷细胞库及其构建方法 2020-05-11 76
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈