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

文档序号:6526949阅读:180来源:国知局
加标签方法、加标签装置以及缺陷检查装置制造方法
【专利摘要】一种加标签方法、加标签装置以及缺陷检查装置,加标签方法包括:对各进程设定相互不同的标签;针对每一进程作为处理对象进程,并判定是否有与处理对象进程连接的第1连结进程,当有第1连结进程时,将处理对象进程及第1连结进程中的一者的标签更新为另一者的标签;在更新后,根据多个标签来搜索多个进程中的相互连接的进程并赋予同一标签,在更新标签时,将多个进程划分为多组,并将各组中执行的分别更新处理作为更新线程,基于排他控制一边允许利用多个更新线程中的一个更新线程进行标签的改写,并禁止由一个更新线程改写的标签的利用其他更新线程进行的改写,一边并列执行多个更新线程。
【专利说明】加标签方法、加标签装置以及缺陷检查装置

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

【背景技术】
[0002] 在半导体基板或印刷基板等的制造【技术领域】中,为了对制品中所含的缺陷进行检 测并对其进行分析?评估,而经由显微镜等对评估对象物进行摄像,且从所获得的图像中抽 出包含缺陷部的图像、所谓的缺陷图像。然后,根据该缺陷图像的二值图像数据来计测缺 陷部的个数、面积或重心等。此时,为了自动地进行该计测,而广泛利用加标签(labeling) (连结区域抽出)处理。例如,在日本专利特开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] Ml :处理器核心
[0051] 642 :GPU
[0052] 643 :分别更新处理部
[0053] 644 :分别搜索处理部
[0054] 645 :加标签用存储部
[0055] 646 :运算处理部(控制部)
[0056] 647 :进程生成部
[0057] 648 :并列处理控制部
[0058] 649 :数据初始设定部
[0059] Μ :基板检测装置
[0060] S :基板
[0061] S1 ?S4-n、S11 ?S21、S31 ?S38 :步骤

【具体实施方式】
[0062] 图1是表示使用配备有本发明的加标签装置的一实施方式的缺陷检查装置的检 查系统的概略构成的图。该检查系统1是进行在作为检查对象的半导体基板(以下称作 "基板")s的外观上所呈现的针孔或异物等缺陷检查的检查系统。检查系统1包括对基板 S上的检查对象区域进行摄像的摄像装置2,以及根据来自摄像装置2的图像数据进行缺陷 检查的控制装置3。
[0063] 如果相对于本系统而另外设置于基板S的生产线上的基板检测装置Μ发现基板S 上有缺陷,则将该缺陷的位置座标提供给该检查系统1。装在生产线上的基板检测装置Μ利 用预先规定的处理演算法来对基板S整体进行检查,如果基板表面有满足作为缺陷的要件 的区域,则获取该区域的位置座标并加以输出。因此,该基板检测装置Μ所具有的摄像部为 相对低的解析度,而处理演算法也为固定。
[0064] 另一方面,该检查系统1经由未图示的接口而与基板检测装置Μ连接,并利用具有 更高解析度的摄像装置2对作为缺陷而由基板检测装置Μ报告位置座标的区域进行摄像, 由控制装置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的其他构成之间收发信号的通信部适当地经由接口(1/ 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"的像素数据的像素,另一方面,未被 附加影线的像素表示为具有"〇"的像素数据的像素。如果对具有此种像素数据的二值图像 数据BFI施加针对每行的进程长度化处理,则获得图6 (a)所示的进程。具体来说,在第0行 及第4行中,因不存在"1"的像素,所以不制作进程,在第1行至第3行中,分别制作2个、2 个及1个进程。该说明书中,以"m"来表示由进程长度化处理制作而成的各进程的进程编 号,按照进程的制作顺序取〇、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[l]、...的标签编号分别初始设定 为..,并且对进程连接数据id[0]、进程连接数据id[l]、...的标签编号也分别 初始设定为。
[0077] 在下一步骤S3中执行更新处理(步骤S3)。该更新处理中,针对每一进程而执行 分别更新处理。该"分别更新处理"是如下的处理:将一个进程作为处理对象进程,并且判 定是否存在在该处理对象进程的下行且在纵方向及斜方向上连接的连结进程,当存在连结 进程时,将处理对象进程及连结进程中的进程连接数据的标签编号中的较大的标签编号更 新为较小的标签编号,本实施方式中对多个(例如η个)进程的各个执行分别更新处理。此 处,也可串行地、例如按照进程编号顺序来进行所述η个分别更新处理,但该情况下,更新 处理要耗费大量时间。
[0078] 因此,本实施方式中,将针对每个进程的分别更新处理作为一个线程,由GPU642 内的各处理器核心641并列地执行线程。即,如图3所示,第0处理器核心641中将进程 r[0]作为处理对象进程而执行分别更新处理,且与其并行地在第1处理器核心641中将进 程r[l]作为处理对象进程而执行分别更新处理。而且,关于其他进程r[2]、进程r[3]..... 进程r [η],也与所述分别更新处理并行地执行。其中,在各分别更新处理中,因如后述那样 伴有进程连接数据中的标签编号的更新作业,所以本实施方式中并列处理控制部648进行 处理器核心641间的排他控制。
[0079] 图7是表示由各处理器核心执行的分别更新处理的流程图。而且,图8是表示由 各处理器核心执行的分别更新处理的一例的示意图。此处,首先一边参照图7-边说明针 对进程编号?(? = 〇、1、2、...或11)的进程1'[?]的分别更新处理的基本动作,然后,一边参 照图8的具体例一边说明标签编号的更新例。
[0080] 进程r[p]的分别更新处理是由第ρ处理器核心641按照以下的顺序来执行。步 骤S11中,将进程r[p]作为处理对象进程,并将与该处理对象进程r[p]的下行连接的进程 作为第1连结进程而抽出。而且,在未抽出第1连结进程的情况下(步骤S12中"否(N0) " 的情况下),结束该线程中的分别更新处理。
[0081] 另一方面,在已抽出第1连结进程的情况下(步骤S12中"是(YES) "的情况下), 执行以下的步骤S13?步骤S21而进行标签编号的更新。另外,此处,继续说明将位于进程 r[p]的下行的进程r[q]作为第1连结进程而抽出的情况。
[0082] 下一步骤S13中,从加标签用存储部645中读取与进程r [ρ]、进程r [q]分别对应 的进程连接数据id[p]、进程连接数据id[q]。此处,在进程连接数据id[p]、进程连接数据 id[q]设定为相同值,即同一标签编号,而设定了连结关系的情况下(步骤S14中"YES"的 情况下),结束该分别更新处理。
[0083] 另一方面,在步骤S14中判定为"N0",即进程连接数据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中为"N0"的情况 下),作为更新了标签编号侧的进程(以下称作"更新进程")与处理对象进程及所述第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]分别设定 为初始值,即〇?4。进程连接数据id[0]?进程连接数据id[4]中的附上阴影线者表示 更新变更后的标签编号。而且,在"第〇线程"?"第4线程"的下方排列的项目("连结进 程:存在","禁止改写"等)表示由各处理器核心641执行的处理内容。
[0089] 在η个处理器核心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]的标签编号 的值(old_dum)与作为变更前的进程连接数据id[4]的值(old_id)均为"4",因为是相同 的值,所以结束第2线程(步骤S3-2)。
[0093] 然后,如该图所示,如果在第1线程中改写准备完成,则在由并列处理控制部648 暂时禁止第0线程的分别更新处理中的数据改写的状态下,执行进程连接数据id[2]、进程 连接数据id[3]的改写。更具体来说,第1线程(进程r[l]的分别更新处理)中,作为处 理对象进程的进程r[l]在下行与进程r [2]、进程r [3]连结,从而将进程r [2]、进程r [3] 认定为第1连结进程。而且,读取处理对象进程r[l]的进程连接数据id[l]、及连结进程 r[2]、连结进程r[3]的进程连接数据id[2]、进程连接数据id[3]。他们成为
[0094] id[l] = 1,
[0095] id[2] = 2,
[0096] id[3] = 3。
[0097] 对他们进行对比的结果为,进程连接数据id[2]、进程连接数据id[3]均为大于进 程连接数据id[l]的值,因而进程连接数据id[2]、进程连接数据id[3]的标签编号均改写 为进程连接数据id[l]的标签编号。而且,关于已更新的进程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] 的值(〇ld_id)分别为而不同。因此,如图7的步骤S21中执行那样,进行进程连 接数据id[0]、进程连接数据id[l]的读取、对比、改写,且如图8的下部分所示,将进程连接 数据id[l]的标签编号改写为进程连接数据id[0]的标签编号。这样,作为已更新的进程 r[l]的标签编号的值(old_dum)与作为变更前的进程连接数据id[l]的值(old_id)均为 "1",因为是相同的值所以结束第〇线程(步骤S3-0)。这样,进程r[l]不与处理对象进程 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[l]作为处理对象 进程而执行分别搜索处理。而且,关于其他进程r [2]、进程r [3].....进程r [η],也与所述 分别搜索处理并行地执行。另外,"分别搜索处理"是将一个进程作为处理对象进程并且根 据数据连接表(进程连接数据id[0]、进程连接数据id[l].....进程连接数据id [η])来找 出与该处理对象进程连接的连结进程,而将处理对象进程及连结进程的标签编号改写为相 同。以下,一边参照图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中为"N0"的情况下),执行步骤 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]的标签编号的初始 值(=〇)进行对比。于是,确认两者一致,将处理对象进程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?第η处理器核心641的上位的 并列处理控制部648进行加标签用存储部645的访问(access)管理,在更新处理及搜索处 理的任一个中,根据利用一个线程进行的数据改写而暂时地禁止利用其他线程进行的数据 改写。即,在由一个线程例如进行进程连接数据id[m](其中η)的改写的情况下, 不仅暂时地禁止其他线程改写进程连接数据id[m]而避免标签更新的冲突,而且除此以外 的进程连接数据的改写也暂时禁止。所述访问管理未必为最佳,尚有改善的余地。例如为 了实现处理速度的进一步的提高,理想的是以如下方式执行并列处理控制部648对加标签 用存储部645的访问管理。也就是,在由一个线程进行进程连接数据id[m]的改写时,优选 暂时禁止其他线程改写进程连接数据id[m]而避免标签更新的冲突,另一方面,使对进程 连接数据id[m]以外的进程连接数据的访问自由化而允许数据改写。
[0113] 而且,所述实施方式中,将二值图像数据BFI针对每一行进行进程长度化而获得 进程r[m],并且将在处理对象进程的下行且在纵方向及斜方向上连接的进程判定为连结进 程,但进程长度化的形态、连结进程的判定形态均不限定于此,例如可对针对每列而进行进 程长度化,且对由该进程长度化处理制作而成的进程应用本发明的加标签方法。而且,所述 实施方式中,如所述般由针对下行的进程的8邻域搜索来决定连结进程,但也可由其他搜 索方法,例如4邻域搜索来决定连结进程。而且,所述实施方式的进程长度化处理中由图像 整体一次性生成进程,但也可将图像切分为适当尺寸区域,在各切分范围内生成进程。然 而,该情况下,必须在切分区域彼此的边界处进行进程的连接判定处理。
[0114] 而且,所述实施方式中,连续的标签编号(0、1、2、...)被用作本发明的"标签",但 也可将与其不同的编号或编号以外的值用作本发明的"标签"。而且,是改写为更小的编号 而进行标签更新,但标签更新的形态并不限定于此。
[0115] 此外,所述实施方式中,是在装置内部将二值图像数据BFI进行进程长度化后,对 由该进程长度化处理制作而成的进程实施加标签处理,但本发明中应用对象并不限定于 此,本发明也可应用于例如对将由外部装置制作而成的进程加标签的装置或方法。
[0116] 本发明可优选应用于对将二值图像数据进行进程长度化制作而成的多个进程赋 予标签的加标签技术。
【权利要求】
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中任一项所述的加标签装置相同的构成,且 对所述多个进程中的相互连接的进程赋予同一标签。
【文档编号】G06T1/00GK104063270SQ201310751463
【公开日】2014年9月24日 申请日期:2013年12月31日 优先权日:2013年3月22日
【发明者】安田拓矢 申请人:大日本网屏制造株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1