CN115953404B - 应用于工业质检的切图方法及装置 - Google Patents

应用于工业质检的切图方法及装置 Download PDF

Info

Publication number
CN115953404B
CN115953404B CN202310238834.5A CN202310238834A CN115953404B CN 115953404 B CN115953404 B CN 115953404B CN 202310238834 A CN202310238834 A CN 202310238834A CN 115953404 B CN115953404 B CN 115953404B
Authority
CN
China
Prior art keywords
defect
list
range
marking
sub
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310238834.5A
Other languages
English (en)
Other versions
CN115953404A (zh
Inventor
李建清
侯大为
潘正颐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changzhou Weiyizhi Technology Co Ltd
Original Assignee
Changzhou Weiyizhi Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changzhou Weiyizhi Technology Co Ltd filed Critical Changzhou Weiyizhi Technology Co Ltd
Priority to CN202310238834.5A priority Critical patent/CN115953404B/zh
Publication of CN115953404A publication Critical patent/CN115953404A/zh
Application granted granted Critical
Publication of CN115953404B publication Critical patent/CN115953404B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Investigating Materials By The Use Of Optical Means Adapted For Particular Applications (AREA)
  • Image Analysis (AREA)
  • Image Processing (AREA)

Abstract

本发明涉及工业质检技术领域,提供一种应用于工业质检的切图方法及装置,方法包括:获取包含多组标注数据的标注数据集,其中,每组标注数据包括一个缺陷标注图像及其对应的缺陷标注文件;创建包括多个进程的进程池;通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表;在每个进程中创建一个线程池;通过线程根据所有子图标注文件对缺陷标注图像进行切图处理,以得到每个子图标注文件对应的子图。由此,有效保证了真实缺陷形态的原始特性,可以避免子图数量过多、新增缺陷形态太多、缺陷的真实形态无法保留、及小缺陷容易被丢失的现象,而且耗时少,有效提高了切图效率。

Description

应用于工业质检的切图方法及装置
技术领域
本发明涉及工业质检技术领域,具体涉及一种应用于工业质检的切图方法和一种应用于工业质检的切图装置。
背景技术
在工业质检领域,大工件缺陷的检测往往要求检测到毫米级的缺陷,但由于受缺陷检测模型容量或者计算资源设备的限制,实际采集到的工件原图为高分辨率图像无法直接用于缺陷检测模型进行学习,需要对工件原图进行切图处理。
相关技术中,对于高分辨率图像的切图,常见的切图方式是采用网格、滑框或瓦片方法直接对工件原图进行切图,切完后对已经得到的子图进行标注制作数据集,用于不同模型的学习。这样的缺点有:1.子图数量过多、很多没有缺陷的位置也被切出、将真实缺陷切出很多局部缺陷、新增缺陷形态太多、缺陷的真实形态无法保留、以及切割和标注均耗时大;2.小缺陷容易被丢失,并且在训练模型的时候需要对缺陷进行形变处理;3.常见切图方法多在单进程上进行,在需要处理批量数据时效率极低。
发明内容
本发明为解决切图时子图数量过多、很多没有缺陷的位置也被切出、将真实缺陷切出很多局部缺陷、新增缺陷形态太多、缺陷的真实形态无法保留、以及切割和标注均耗时大、小缺陷容易被丢失以及效率极低的问题,提出了如下技术方案。
本发明第一方面实施例提出了一种应用于工业质检的切图方法,包括以下步骤:S1,获取包含多组标注数据的标注数据集,其中,每组所述标注数据包括一个缺陷标注图像及其对应的缺陷标注文件,所述缺陷标注图像及其对应的缺陷标注文件是通过对工件原图进行标注得到的;S2,创建包括多个进程的进程池,并确定所述进程池的容量;S3,根据所述进程池的容量读取所述标注数据集中的标注数据,并通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,其中,同一时刻多个所述进程同时一一对应处理多组标注数据,所述子图列表包括至少一个子图标注文件;S4,在每个所述进程中创建一个线程池,其中,所述线程池包括至少一个线程;S5,通过所述线程根据所有所述子图标注文件对缺陷标注图像进行切图处理,以得到每个所述子图标注文件对应的子图,其中,同一时刻至少一个所述线程同时一一对应处理所述子图列表中的至少一个子图标注文件。
另外,根据本发明上述实施例的应用于工业质检的切图方法还可以具有如下附加的技术特征。
根据本发明的一个实施例,所述缺陷标注文件包括一个缺陷标注列表,所述缺陷标注列表包括对应的缺陷标注图像中所有缺陷的标注信息,其中,每个缺陷的标注信息包括缺陷名称、位置信息;通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,包括以下步骤:S31,从每个所述缺陷标注图像对应的缺陷标注文件中提取缺陷标注列表;S32,初始化第一最大外接框的范围和临时缺陷列表,以使所述第一最大外接框为空框、所述临时缺陷列表为空列表;S33,判断所述缺陷标注列表是否为空,如果所述缺陷标注列表不为空,则执行步骤S34;如果所述缺陷标注列表为空,则执行步骤S38;S34,从所述缺陷标注列表中获取下一个缺陷的标注信息,并根据所述缺陷的标注信息中的位置信息计算所述缺陷的范围;S35,基于所述缺陷的范围和所述第一最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表;S36,判断所述缺陷标注列表中是否存在下一个缺陷的标注信息,如果所述缺陷标注列表中存在下一个缺陷的标注信息,则返回步骤S34;如果所述缺陷标注列表中不存在下一个缺陷的标注信息,则执行步骤S37;S37,将所述临时缺陷列表复制到子图列表,并返回步骤S32,直至所述缺陷标注列表为空;S38,判断所述临时缺陷列表是否为空,如果所述临时缺陷列表为空,则执行步骤S39;如果所述临时缺陷列表不为空,则返回步骤S37;S39,判断所述子图列表是否为空,如果所述子图列表为空则结束流程;如果所述子图列表不为空则输出所述子图列表,并结束流程。
根据本发明的一个实施例,基于所述缺陷的范围和所述第一最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表,包括:获取预设范围,根据所述预设范围、所述缺陷的范围和所述第一最大外接框的范围计算第二最大外接框的范围;根据所述预设范围和所述第二最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表。
根据本发明的一个实施例,根据所述预设范围、所述缺陷的范围和所述第一最大外接框的范围计算第二最大外接框的范围,包括以下步骤:S351,判断所述缺陷的范围是否超出了预设范围,如果所述缺陷的范围超出了所述预设范围,则执行步骤S352;如果所述获取的缺陷的范围未超出所述预设范围,则执行步骤S353;S352,更新所述缺陷的位置信息、所述缺陷的范围,并执行步骤S353;S353,根据所述缺陷的范围和所述第一最大外接框的范围,计算第二最大外接框的范围;根据所述预设范围和所述第二最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表,包括以下步骤:S354,判断所述第二最大外接框的范围是否超出了所述预设范围,如果所述第二最大外接框的范围未超出所述预设范围,则根据所述第二最大外接框的范围更新所述第一最大外接框的范围,并执行步骤S355;如果所述第二最大外接框的范围超出了所述预设范围,则跳过所述缺陷的标注信息,并返回步骤S34;S355,将所述缺陷的标注信息移动到所述临时缺陷列表。
根据本发明的一个实施例,判断所述缺陷的范围是否超出了所述预设范围,包括:获取所述预设范围的宽度和高度,并根据所述缺陷的范围计算所述缺陷的宽度和高度;判断所述缺陷的宽度是否大于所述预设范围的宽度、所述缺陷的高度是否大于所述预设范围的高度;如果所述缺陷的宽度大于所述预设范围的宽度或者所述缺陷的高度大于所述预设范围的高度,则确定所述缺陷的范围超出了所述预设范围;如果所述缺陷的宽度小于或者等于所述预设范围的宽度、且所述缺陷的高度小于或者等于所述预设范围的高度,则确定所述缺陷的范围未超出所述预设范围。
根据本发明的一个实施例,通过以下公式计算所述缺陷的宽度和高度:
Figure SMS_1
其中,w表示所述缺陷的宽度,h表示所述缺陷的高度,
Figure SMS_2
表示所述缺陷的所有点中横坐标的最小值,/>
Figure SMS_3
表示所述缺陷的所有点中横坐标的最大值,/>
Figure SMS_4
表示所述缺陷的所有点中纵坐标的最小值,/>
Figure SMS_5
表示所述缺陷的所有点中纵坐标的最大值;
通过以下公式更新所述缺陷的位置信息:
Figure SMS_6
其中,
Figure SMS_7
、/>
Figure SMS_8
分别表示所述缺陷的点i处的横坐标、纵坐标,/>
Figure SMS_9
表示所述预设范围的宽度,/>
Figure SMS_10
表示所述预设范围的高度。
根据本发明的一个实施例,通过以下公式计算所述第二最大外接框的范围:
Figure SMS_11
其中,
Figure SMS_13
表示所述第二最大外接框的所有点中横坐标的最小值,
Figure SMS_15
表示所述第二最大外接框的所有点中横坐标的最大值,/>
Figure SMS_17
表示所述第二最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_14
表示所述第二最大外接框的所有点中纵坐标的最大值,/>
Figure SMS_16
表示所述第一最大外接框的所有点中横坐标的最小值,/>
Figure SMS_18
表示所述第一最大外接框的所有点中横坐标的最大值,
Figure SMS_19
表示所述第一最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_12
表示所述第一最大外接框的所有点中纵坐标的最大值。
根据本发明的一个实施例,判断所述第二最大外接框的范围是否超出了所述预设范围,包括:获取所述预设范围的宽度和高度,并根据所述第二最大外接框的范围计算所述第二最大外接框的宽度和高度;判断所述第二最大外接框的宽度是否大于所述预设范围的宽度、所述第二最大外接框的高度是否大于所述预设范围的高度;如果所述第二最大外接框的宽度大于所述预设范围的宽度、或者所述第二最大外接框的高度大于所述预设范围的高度,则确定所述第二最大外接框的范围超出了所述预设范围;如果所述第二最大外接框的宽度小于或者等于所述预设范围的宽度、且所述第二最大外接框的高度小于或者等于所述预设范围的高度,则确定所述第二最大外接框的范围未超出所述预设范围。
根据本发明的一个实施例,通过以下公式更新所述第一最大外接框的范围:
Figure SMS_20
其中,
Figure SMS_21
表示所述第一最大外接框的所有点中横坐标的最小值,
Figure SMS_25
表示所述第一最大外接框的所有点中横坐标的最大值,/>
Figure SMS_27
表示所述第一最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_23
表示所述第一最大外接框的所有点中纵坐标的最大值,/>
Figure SMS_24
表示所述第二最大外接框的所有点中横坐标的最小值,/>
Figure SMS_26
表示所述第二最大外接框的所有点中横坐标的最大值,
Figure SMS_28
表示所述第二最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_22
表示所述第二最大外接框的所有点中纵坐标的最大值。
本发明第二方面实施例提出了一种应用于工业质检的切图装置,包括:获取模块,用于获取包含多组标注数据的标注数据集,其中,每组所述标注数据包括一个缺陷标注图像及其对应的缺陷标注文件,所述缺陷标注图像及其对应的缺陷标注文件是通过对工件原图进行标注得到的;第一创建模块,用于创建包括多个进程的进程池,并确定所述进程池的容量;处理模块,用于根据所述进程池的容量读取所述标注数据集中的标注数据,并通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,其中,同一时刻多个所述进程同时一一对应处理多组标注数据,所述子图列表包括至少一个子图标注文件;第二创建模块,用于在每个所述进程中创建一个线程池,其中,所述线程池包括至少一个线程;切图模块,用于通过所述线程根据所有所述子图标注文件对缺陷标注图像进行切图处理,以得到每个所述子图标注文件对应的子图,其中,同一时刻至少一个所述线程同时一一对应处理所述子图列表中的至少一个子图标注文件。
本发明实施例的技术方案,有效保证了真实缺陷形态的原始特性,可以避免子图数量过多、新增缺陷形态太多、缺陷的真实形态无法保留、及小缺陷容易被丢失的现象,而且耗时少,有效提高了切图效率。
附图说明
图1为本发明实施例的应用于工业质检的切图方法的流程图。
图2为本发明一个具体示例中缺陷的标注信息对应缺陷的示意图。
图3为本发明一个具体示例中缺陷标注列表对应缺陷的示意图。
图4为本发明一个实施例的对批量标注数据进行并行处理的示意图。
图5为本发明一个示例的单个缺陷标注图像的切图策略的流程图。
图6为本发明实施例的应用于工业质检的切图装置的方框示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,由于切图方式很难保证和体现工件原图真实场景缺陷的特性,所以切出的数据集在进行模型训练后,得到缺陷检测模型的可靠性和检测精度都难以满足实际需求。
为此,本发明实施例提出了一种应用于工业质检的切图方法,可以保证和体现工件原图真实场景缺陷的特性,进而切出的数据集在进行模型训练后,得到的缺陷检测模型的可靠性和检测精度可以满足实际需求,且噪声少、速度快、耗时少。
图1为本发明实施例的应用于工业质检的切图方法的流程图。
如图1所示,该应用于工业质检的切图方法包括以下步骤S1至S5。
S1,获取包含多组标注数据的标注数据集,其中,每组标注数据包括一个缺陷标注图像及其对应的缺陷标注文件,缺陷标注图像及其对应的缺陷标注文件是通过对工件原图进行标注得到的。
其中,工件原图为高分辨率图像,如工业质检中的电脑外壳原图的分辨率为20000*10000,其缺陷的大小范围由5*5个像素到20000*10000个像素分布不确定。因此需要对工件原图进行切图后用于缺陷检测模型(比如实例分割模型)的训练。
具体地,首先可对大量工件原图进行标注得到标注数据集,获取一个已经标注好的标注数据集,标注数据集的具体形式是由多组缺陷标注图像及其对应的缺陷标注文件组成,如一个缺陷标注图像的图名为img1.jpg、其对应的缺陷标注文件为img1.json,其中img1.json文件内容为:
Figure SMS_29
其中,img_name表示图名,annotations表示一个缺陷标注图像中包括的所有的缺陷的标注信息的列表,即annotations中包括所有缺陷的标注信息,object1表示第一个缺陷的标注信息,object2表示第二个缺陷的标注信息,objectn表示第n个缺陷的标注信息。其中,每个缺陷的标注信息可包括缺陷名称、缺陷的位置信息(缺陷各个点的坐标),即每个object的具体格式为:
Figure SMS_30
其中,
Figure SMS_31
表示所标注的缺陷的名称,/>
Figure SMS_34
表示缺陷的具体实际名称,例如压伤、碰伤等,/>
Figure SMS_36
表示标注的缺陷的位置信息,位置信息通过多个点坐标/>
Figure SMS_32
来描述,其中/>
Figure SMS_35
表示点的横坐标,/>
Figure SMS_37
表示点的纵坐标,/>
Figure SMS_38
表示第/>
Figure SMS_33
个点。
比如,如图2所示,一个名叫碰伤的缺陷的标注信息object的形式可以为:
Figure SMS_39
如图3所示,当一个缺陷标注图像中有两个缺陷,一个名叫碰伤、一个叫压伤时,其缺陷标注列表annotations的形式可以可以为:
Figure SMS_40
S2,创建包括多个进程的进程池,并确定进程池的容量。
具体地,创建进程池,其容量即进程的数量可根据实际需求进行设置,比如一个电脑的配置对应的最大支持进程数为32,那么这个进程池的容量可以是1~32中的任何一个数,由于是所有进程并行处理,因此进程池的容量越大进程处理速度越快,可以默认为4。
S3,根据进程池的容量读取标注数据集中的标注数据,并通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,其中,同一时刻多个进程同时一一对应处理多组标注数据,子图列表包括至少一个子图标注文件。
其中,子图列表,可以理解为用来存放一个缺陷标注图像对应的所有子图的标注信息的文件列表。子图是指从缺陷标注图像上切下来的至少一个缺陷对应的图,子图标注文件是指记录一个子图中所有缺陷的标注信息(即缺陷名称和缺陷的位置信息)的文件。
具体地,根据进程池的容量读取标注数据即:缺陷标注图像及其对应的缺陷标注文件,比如,容量为4时,同一时刻读取4组标注数据,每组标注数据为一个缺陷标注图像及其对应的缺陷标注文件。读取后,通过4个进程按照切图策略对读取的4组标注数据分别一一对应进行处理,其中同一时刻4个进程同时一一对应处理4组标注数据,即4个缺陷标注图像及其对应的4个缺陷标注文件,以得到每个缺陷标注图像对应的一个子图列表sub_dic,比如图名为img1.jpg对应的子图列表为sub_dic1。子图列表包括至少一个子图标注文件,该子图标注文件即作为子图列表的子图对象,比如sub_dic1[m]表示子图列表sub_dic1中的索引为m的子图对象。
需要说明的是,当进程池的容量是4时表示可以同时处理4个缺陷标注图像,但每个进程处理完一个缺陷标注图像后还可以继续处理下一个缺陷标注图像。
比如,总体有32个缺陷标注图像需要处理时,开4个进程,同一时刻可以同时处理4个缺陷标注图像,因此整个处理流程中,每个进程负责处理8个缺陷标注图像,于是得到8个子图列表,每个子图列表包括至少一个子图对象。
由此,通过多进程同时处理实现了对标注数据集的批量处理,加速了处理进度,提高了切图效率。
S4,在每个进程中创建一个线程池,其中,线程池包括至少一个线程。
具体地,在创建好进程池后,在进程池的每个进程中创建一个线程池,线程池的容量可根据实际需要(比如切图的快慢)进行设置,比如可以为4。
S5,通过线程根据所有子图标注文件对缺陷标注图像进行切图处理,以得到每个子图标注文件对应的子图,其中,同一时刻至少一个线程同时一一对应处理子图列表中的至少一个子图标注文件。
具体地,对于每个缺陷标注图像对应的一个子图列表,至少一个线程根据该子图列表中的至少一个子图对象即子图标注文件,对缺陷标注图像进行切图处理,以得到从缺陷标注图像上切下来的至少一个子图,其中,每个子图中包含至少一个缺陷,由此得到了每个缺陷标注图像对应的所有子图及其子图标注文件,组成新的实例分割切图数据集。
比如,如果子图列表中有12个子图对象即12个子图的标注信息、线程数为3,那么将12个子图对象分配到3个线程中,3个线程可以同时切得3个子图,因此整个切图流程中,每个线程负责切得4个子图。
其中,每个线程负责处理一个子图对象即子图标注文件,如:第m个线程负责处理子图对象sub_dic1[m],以得到一个子图img1_subm.jpg及其对应的子图标注文件img1_subm.json,其中img1_subm.jpg表示从img1.jpg切下的第m个子图,img1_subm.json表示子图img1_subm.jpg的子图标注文件。
需要说明的是,将多进程结合线程的方式来完成加速切图,可将处理速度提高10~60倍,标注数据集越大,图像越大的时候效果尤为明显。
由此,通过每个进程中的至少一个线程同时进行切图处理实现了对子图列表的批量切图处理,加速了切图进度,进一步提高了切图效率。
之后,在进行模型训练时,可以构建缺陷检测模型,比如实例分割模型,并基于新的实例分割切图数据集直接对缺陷检测模型进行训练,在训练模型之前无需对缺陷进行形变处理。训练好的缺陷检测模型可以实现对工件的缺陷检测。
其中,缺陷检测模型,是指事先通过机器学习或深度学习训练得到的能够检测出缺陷的模型。
如图4所示,有n个进程对应n个线程池,每个线程池包括m个线程,每个进程读取一个缺陷标注图像(图名为img1.jpg)对应的图像数据img_data1(表示从缺陷标注图像读取的图像数据)和缺陷标注列表annotations1,并按照切图策略得到该缺陷标注图像的子图列表sub_dic1。该子图列表sub_dic1包括m个子图对象(sub_dic1[1]~sub_dic1[m]),各个线程根据子图列表中的每个子图对象将缺陷标注图像进行切图处理,以得到该缺陷标注图像对应的m个子图(img1_sub1.jpg~img1_subm.jpg)及其分别对应的子图标注文件(img1_sub1.json~img1_subm.json),其中,img1_subm.jpg表示从img1.jpg切下的第m个子图,img1_subm.json表示子图img1_subm.jpg的子图标注文件。
基于上述描述可知,相较于相关技术,本发明实施例具有以下优点:
对工件原图进行标注得到标注数据集,在标注数据集的基础上进行切图处理,有效保证了真实缺陷形态的原始特性,而且,先标注后切图的方式可以克服子图数量过多、很多没有缺陷的位置也被切出、将真实缺陷切出很多局部缺陷、新增缺陷形态太多、缺陷真实形态无法保留、以及切割和标注均耗时大的问题,还可以避免小缺陷被丢失,且可在训练的时候无需对缺陷进行形变处理,可直接投入训练,因此可以保证训练后的缺陷检测模型的可靠性和检测精度;通过线程池和进程池结合的方式大大加速了切图进度,进一步提高了切图效率,从而提高了缺陷检测模型的训练效率。因此,本发明实施例可以使训练得到的模型满足实际需求。
由此,本发明实施例的应用于工业质检的切图方法,有效保证了真实缺陷形态的原始特性,可以避免子图数量过多、新增缺陷形态太多、缺陷的真实形态无法保留、及小缺陷容易被丢失的现象,而且耗时少,提高了切图效率。
本发明实施例不仅有效的保证了真实缺陷形态的原始特性,而且基于已标注好的标注数据集,通过进程使用切图策略,保证切出最少的子图包含所有的完整缺陷,且不会产生冗余子图,可以使小缺陷完整保留。以下对具体的切图策略进行说明。
在本发明的一个实施例中,上述步骤S3中的通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,可包括以下步骤S31至S39。
S31,从每个缺陷标注图像对应的缺陷标注文件中提取缺陷标注列表annotations。
S32,初始化第一最大外接框maxbox的范围和临时缺陷列表tmp_list,以使第一最大外接框maxbox为空框、临时缺陷列表tmp_list为空列表。
其中,第一最大外接框maxbox,表示可以将一个或多个缺陷框在一个区域内的最大外接框,其范围由四个坐标点表示,该四个坐标点为:
Figure SMS_43
、/>
Figure SMS_45
Figure SMS_47
和/>
Figure SMS_41
,其中,
Figure SMS_44
、/>
Figure SMS_46
分别表示第一最大外接框maxbox的所有点中横坐标的最小值、最大值,/>
Figure SMS_48
、/>
Figure SMS_42
分别表示第一最大外接框maxbox的所有点中纵坐标的最小值、最大值。/>
临时缺陷列表tmp_list,表示临时存放可以放到一个子图中的所有缺陷的标注信息的列表。
具体地,可将第一最大外接框maxbox的4个坐标点初始化为初始值
Figure SMS_49
,将临时缺陷列表tmp_list初始化为空列表。
S33,判断缺陷标注列表annotations是否为空,如果缺陷标注列表annotations不为空,则执行步骤S34;如果缺陷标注列表annotations为空,则执行步骤S38。
S34,从缺陷标注列表annotations中获取下一个缺陷的标注信息,并根据缺陷的标注信息中的位置信息计算缺陷的范围。
其中,缺陷的位置信息通过缺陷的多个点坐标
Figure SMS_50
来描述,其中/>
Figure SMS_51
表示点的横坐标,/>
Figure SMS_52
表示点的纵坐标,/>
Figure SMS_53
表示第/>
Figure SMS_54
个点。可通过四个值
Figure SMS_56
、/>
Figure SMS_58
、/>
Figure SMS_60
和/>
Figure SMS_57
表示缺陷的范围,/>
Figure SMS_59
表示缺陷的所有点中横坐标的最小值,/>
Figure SMS_61
表示缺陷的所有点中横坐标的最大值,/>
Figure SMS_62
表示缺陷的所有点中纵坐标的最小值,/>
Figure SMS_55
表示缺陷的所有点中纵坐标的最大值。
S35,根据缺陷的范围和第一最大外接框maxbox的范围,更新第一最大外接框maxbox的范围、将缺陷的标注信息移动到临时缺陷列表tmp_list。
在一个示例中,步骤S35可包括:获取预设范围,根据预设范围、缺陷的范围和第一最大外接框maxbox的范围计算第二最大外接框
Figure SMS_63
的范围;根据预设范围和第二最大外接框/>
Figure SMS_64
的范围,更新第一最大外接框maxbox的范围、将缺陷的标注信息移动到临时缺陷列表tmp_list。
其中,预设范围可以是用户事先根据实际需要设定的。用户可以根据模型需要设定要切多大的图,比如,用户1想要的数据是预设范围的宽度w0为256、高度h0为256的图,而用户2想要预设范围的宽度w0为512、高度h0为512的图。
其中,第二最大外接框
Figure SMS_67
,表示可以将第一最大外接框和缺陷框在一个区域内的最大外接框,其范围由四个坐标点表示,该四个坐标点为:
Figure SMS_68
、/>
Figure SMS_71
、/>
Figure SMS_66
Figure SMS_70
,其中,/>
Figure SMS_73
、/>
Figure SMS_75
分别表示第二最大外接框
Figure SMS_65
的所有点中横坐标的最小值、最大值,/>
Figure SMS_69
、/>
Figure SMS_72
分别表示第二最大外接框/>
Figure SMS_74
的所有点中纵坐标的最小值、最大值。/>
S36,判断缺陷标注列表annotations中是否存在下一个缺陷的标注信息,如果缺陷标注列表annotations中存在下一个缺陷的标注信息,则返回步骤S34;如果缺陷标注列表annotations中不存在下一个缺陷的标注信息,则执行步骤S37。
S37,将临时缺陷列表tmp_list复制到子图列表sub_dic,并返回步骤S32,直至缺陷标注列表annotations为空。
S38,判断临时缺陷列表tmp_list是否为空,如果临时缺陷列表tmp_list为空,则执行步骤S39;如果临时缺陷列表tmp_list不为空,则返回步骤S37;
S39,判断子图列表sub_dic是否为空,如果子图列表sub_dic为空则结束流程;如果子图列表sub_dic不为空则输出子图列表,并结束流程。
在一个示例中,据预设范围、缺陷的范围和第一最大外接框maxbox的范围计算第二最大外接框
Figure SMS_76
的范围,可包括以下步骤S351至S353。
S351,判断缺陷的范围是否超出了预设范围,如果缺陷的范围超出了预设范围,则执行步骤S352;如果获取的缺陷的范围未超出预设范围,则执行步骤S353。
进一步地,判断缺陷的范围是否超出了预设范围,可包括:获取预设范围的宽度和高度,并根据缺陷的范围计算缺陷的宽度和高度;判断缺陷的宽度是否大于预设范围的宽度、缺陷的高度是否大于预设范围的高度;如果缺陷的宽度大于预设范围的宽度或者缺陷的高度大于预设范围的高度,则确定缺陷的范围超出了预设范围;如果缺陷的宽度小于或者等于预设范围的宽度、且缺陷的高度小于或者等于预设范围的高度,则确定缺陷的范围未超出预设范围。
具体而言,可获取用户输入的预设范围的宽度
Figure SMS_77
和高度/>
Figure SMS_78
,并通过以下公式计算缺陷的宽度w和高度h:
Figure SMS_79
其中,
Figure SMS_80
表示缺陷的所有点中横坐标的最小值,/>
Figure SMS_81
表示缺陷的所有点中横坐标的最大值,/>
Figure SMS_82
表示缺陷的所有点中纵坐标的最小值,/>
Figure SMS_83
表示缺陷的所有点中纵坐标的最大值。
之后,判断
Figure SMS_85
是否大于/>
Figure SMS_87
、/>
Figure SMS_89
是否大于/>
Figure SMS_86
,如果/>
Figure SMS_88
或者
Figure SMS_90
,说明缺陷的范围超出了预设范围,则跳转到步骤S352;如果/>
Figure SMS_91
Figure SMS_84
,说明缺陷的范围未超出预设范围,则跳转到步骤S353。
S352,更新缺陷的位置信息、缺陷的范围,并执行步骤S353。
具体而言,可通过以下公式更新缺陷的位置信息:
Figure SMS_92
其中,
Figure SMS_93
、/>
Figure SMS_94
分别表示缺陷的点i处的横坐标、纵坐标。
之后,根据更新后的缺陷的位置信息,更新缺陷的范围即四个坐标点,之后跳转到下一步。
S353,根据缺陷的范围和第一最大外接框maxbox的范围,计算第二最大外接框
Figure SMS_95
的范围。
具体而言,可通过以下公式计算第二最大外接框
Figure SMS_96
的范围:
Figure SMS_97
在一个示例中,根据预设范围和第二最大外接框
Figure SMS_98
的范围,更新第一最大外接框maxbox的范围、将缺陷的标注信息填充至临时缺陷列表tmp_list,可包括以下步骤S354和S355。
S354,判断第二最大外接框
Figure SMS_99
的范围是否超出了预设范围,如果第二最大外接框/>
Figure SMS_100
的范围未超出预设范围,则根据第二最大外接框的范围更新第一最大外接框maxbox的范围,并执行步骤S355;如果第二最大外接框/>
Figure SMS_101
的范围超出了预设范围,则跳过缺陷的标注信息,并返回步骤S34;
在一个示例中,判断第二最大外接框的范围是否超出了预设范围,可包括:获取预设范围的宽度和高度,并根据第二最大外接框的范围计算第二最大外接框的宽度和高度;判断第二最大外接框的宽度是否大于预设范围的宽度、第二最大外接框的高度是否大于预设范围的高度;如果第二最大外接框的宽度大于预设范围的宽度、或者第二最大外接框的高度大于预设范围的高度,则确定第二最大外接框的范围超出了预设范围;如果第二最大外接框的宽度小于或者等于预设范围的宽度、且第二最大外接框的高度小于或者等于预设范围的高度,则确定第二最大外接框的范围未超出预设范围。
具体而言,可通过以下公式计算第二最大外接框
Figure SMS_102
的宽度
Figure SMS_103
和高度/>
Figure SMS_104
Figure SMS_105
之后,判断
Figure SMS_107
是否大于/>
Figure SMS_109
、/>
Figure SMS_112
是否大于/>
Figure SMS_108
,如果/>
Figure SMS_111
或者
Figure SMS_114
,说明/>
Figure SMS_116
的范围超出了预设范围,则跳到步骤S34;如果
Figure SMS_106
且/>
Figure SMS_110
,说明/>
Figure SMS_113
的范围未超出预设范围,则可通过以下公式更新第一最大外接框/>
Figure SMS_115
的范围:
Figure SMS_117
之后,跳转到步骤S355。
S355,将缺陷的标注信息移动到临时缺陷列表。
基于上述描述可知,在一个具体示例中,如图5所示,对于一个缺陷标注图像,其整体切图策略可包括以下步骤:
步骤1.从一个缺陷标注图像的缺陷标注文件中提取出缺陷标注列表
Figure SMS_118
步骤2.初始化临时缺陷列表
Figure SMS_119
为一个空列表、第一最大外接框/>
Figure SMS_120
为空框[(0,0),(0,0),(0,0),(0,0)];
步骤3.判断
Figure SMS_121
是否为空,如果不为空,则跳到步骤4;如果为空,则跳转到步骤11;
步骤4.获取下一个缺陷的标注信息
Figure SMS_122
,计算该缺陷的宽度/>
Figure SMS_123
和高度
Figure SMS_124
步骤5.判断
Figure SMS_126
和/>
Figure SMS_128
是否分别不大于/>
Figure SMS_130
和/>
Figure SMS_125
,如果/>
Figure SMS_129
或者
Figure SMS_131
,则跳到步骤6;如果/>
Figure SMS_132
且/>
Figure SMS_127
则跳到步骤7;
步骤6.更新缺陷的横坐标
Figure SMS_133
、纵坐标/>
Figure SMS_134
,更新公式为:
Figure SMS_135
步骤7.计算第二最大外接框
Figure SMS_136
的范围及其宽度/>
Figure SMS_137
、高度
Figure SMS_138
,计算公式为:/>
Figure SMS_139
步骤8.判断
Figure SMS_140
和/>
Figure SMS_141
是否分别不大于/>
Figure SMS_142
和/>
Figure SMS_143
,如果/>
Figure SMS_144
Figure SMS_145
,则更新/>
Figure SMS_146
的范围,更新公式为:
Figure SMS_147
更新后跳转到步骤9;如果
Figure SMS_148
或者/>
Figure SMS_149
,则直接跳过当前缺陷,跳转到步骤4;
步骤9.将缺陷的标注信息
Figure SMS_150
移动到临时缺陷列表/>
Figure SMS_151
中,然后判断/>
Figure SMS_152
中是否存在下一个缺陷的标注信息,如果存在,跳转到步骤4;如果不存在,则继续下一步。
步骤10.复制
Figure SMS_153
到子图列表/>
Figure SMS_154
中,并跳转到步骤2。
步骤11.判断
Figure SMS_155
是否为空,如果不为空,则跳转到步骤10;如果为空则跳转到步骤12。
步骤12.判断sub_dic是否为空,如果为空则结束当前流程,如果不为空则得到最终的
Figure SMS_156
,并结束流程。
以上切图策略,具有以下优点:1.可以保证将缺陷标注图像切为最少子图,且包含最多的完整缺陷,不会产生冗余数据,小缺陷被完整保留,极大可能的保证了原缺陷的完整真实性,对缺陷检测模型训练结果的精度有大幅度的提升;2.避免了由于缺陷分割造成缺陷信息丢失,产生不真实缺陷对缺陷检测模型造成混淆的影响。
综上所述,本发明实施例通过对真实缺陷形态的保证,设置切图策略,并且通过多进程与线程结合的方式加速标注数据集的批量处理,从而不仅保证了真实缺陷的表现形态,提高了切图效率,而且提高了缺陷检测模型的检出可靠性和精度、以及模型训练效率,改善了模型训练结果。
对应上述实施例的应用于工业质检的切图方法,本发明还提出一种应用于工业质检的切图装置。
图6为本发明实施例的应用于工业质检的切图装置的方框示意图。
如图6所示,该应用于工业质检的切图装置包括:获取模块10、第一创建模块20、处理模块30、第二创建模块40和切图模块50。
其中,获取模块10用于获取包含多组标注数据的标注数据集,其中,每组所述标注数据包括一个缺陷标注图像及其对应的缺陷标注文件,所述缺陷标注图像及其对应的缺陷标注文件是通过对工件原图进行标注得到的;第一创建模块20用于创建包括多个进程的进程池,并确定所述进程池的容量;处理模块30用于根据所述进程池的容量读取所述标注数据集中的标注数据,并通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,其中,同一时刻多个所述进程同时一一对应处理多组标注数据,所述子图列表包括至少一个子图标注文件;第二创建模块40用于在每个所述进程中创建一个线程池,其中,所述线程池包括至少一个线程;切图模块50用于通过所述线程根据所有所述子图标注文件对缺陷标注图像进行切图处理,以得到每个所述子图标注文件对应的子图,其中,同一时刻至少一个所述线程同时一一对应处理所述子图列表中的至少一个子图标注文件。
在本发明的一个实施例中,所述缺陷标注文件包括一个缺陷标注列表,所述缺陷标注列表包括对应的缺陷标注图像中所有缺陷的标注信息,其中,每个缺陷的标注信息包括缺陷名称、位置信息;处理模块30通过以下步骤得到每个缺陷标注图像对应的子图列表:
S31,从每个缺陷标注图像对应的缺陷标注文件中提取缺陷标注列表;
S32,初始化第一最大外接框的范围和临时缺陷列表,以使所述第一最大外接框为空框、所述临时缺陷列表为空列表;
S33,判断所述缺陷标注列表是否为空,如果所述缺陷标注列表不为空,则执行步骤S34;如果所述缺陷标注列表为空,则执行步骤S38;
S34,从所述缺陷标注列表中获取下一个缺陷的标注信息,并根据所述缺陷的标注信息中的位置信息计算所述缺陷的范围;
S35,基于所述缺陷的范围和所述第一最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表;
S36,判断所述缺陷标注列表中是否存在下一个缺陷的标注信息,如果所述缺陷标注列表中存在下一个缺陷的标注信息,则返回步骤S34;如果所述缺陷标注列表中不存在下一个缺陷的标注信息,则执行步骤S37;
S37,将所述临时缺陷列表复制到子图列表,并返回步骤S32,直至所述缺陷标注列表为空;
S38,判断所述临时缺陷列表是否为空,如果所述临时缺陷列表为空,则执行步骤S39;如果所述临时缺陷列表不为空,则返回步骤S37;
S39,判断所述子图列表是否为空,如果所述子图列表为空则结束流程;如果所述子图列表不为空则输出所述子图列表,并结束流程。
在本发明的一个实施例中,处理模块30在执行步骤S35时用于:获取预设范围,根据所述预设范围、所述缺陷的范围和所述第一最大外接框的范围计算第二最大外接框的范围;根据所述预设范围和所述第二最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表。
在本发明的一个实施例中,处理模块30在根据所述预设范围、所述缺陷的范围和所述第一最大外接框的范围计算第二最大外接框的范围时,具体执行以下步骤:
S351,判断所述缺陷的范围是否超出了预设范围,如果所述缺陷的范围超出了所述预设范围,则执行步骤S352;如果所述获取的缺陷的范围未超出所述预设范围,则执行步骤S353;
S352,更新所述缺陷的位置信息、所述缺陷的范围,并执行步骤S353;
S353,根据所述缺陷的范围和所述第一最大外接框的范围,计算第二最大外接框的范围,
处理模块30在根据所述预设范围和所述第二最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表时,具体执行以下步骤:
S354,判断所述第二最大外接框的范围是否超出所述预设范围,如果所述第二最大外接框的范围未超出所述预设范围,则根据所述第二最大外接框的范围更新所述第一最大外接框的范围,并执行步骤S355;如果所述第二最大外接框的范围超出了所述预设范围,则跳过所述缺陷的标注信息,并返回步骤S34;
S355,将所述缺陷的标注信息移动到所述临时缺陷列表。
在本发明的一个实施例中,处理模块30在判断所述缺陷的范围是否超出了所述预设范围时,具体用于:获取预设范围的宽度和高度,并根据所述缺陷的范围计算所述缺陷的宽度和高度;判断所述缺陷的宽度是否大于所述预设范围的宽度、所述缺陷的高度是否大于所述预设范围的高度;如果所述缺陷的宽度大于所述预设范围的宽度或者所述缺陷的高度大于所述预设范围的高度,则确定所述缺陷的范围超出了所述预设范围;如果所述缺陷的宽度小于或者等于所述预设范围的宽度、且所述缺陷的高度小于或者等于所述预设范围的高度,则确定所述缺陷的范围未超出所述预设范围。
在本发明的一个实施例中,通过以下公式计算所述缺陷的宽度和高度:
Figure SMS_157
其中,w表示所述缺陷的宽度,h表示所述缺陷的高度,
Figure SMS_158
表示所述缺陷的所有点中横坐标的最小值,/>
Figure SMS_159
表示所述缺陷的所有点中横坐标的最大值,/>
Figure SMS_160
表示所述缺陷的所有点中纵坐标的最小值,/>
Figure SMS_161
表示所述缺陷的所有点中纵坐标的最大值;
通过以下公式更新所述缺陷的位置信息:
Figure SMS_162
其中,
Figure SMS_163
、/>
Figure SMS_164
分别表示所述缺陷的点i处的横坐标、纵坐标,/>
Figure SMS_165
表示所述预设范围的宽度,/>
Figure SMS_166
表示所述预设范围的高度。
在本发明的一个实施例中,通过以下公式计算所述第二最大外接框的范围:
Figure SMS_167
其中,
Figure SMS_169
表示所述第二最大外接框的所有点中横坐标的最小值,
Figure SMS_171
表示所述第二最大外接框的所有点中横坐标的最大值,/>
Figure SMS_173
表示所述第二最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_170
表示所述第二最大外接框的所有点中纵坐标的最大值,/>
Figure SMS_172
表示所述第一最大外接框的所有点中横坐标的最小值,/>
Figure SMS_174
表示所述第一最大外接框的所有点中横坐标的最大值,/>
Figure SMS_175
表示所述第一最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_168
表示所述第一最大外接框的所有点中纵坐标的最大值。
在本发明的一个实施例中,处理模块30在判断所述第二最大外接框的范围是否超出所述预设范围时,具体用于:获取所述预设范围的宽度和高度,并根据所述第二最大外接框的范围计算所述第二最大外接框的宽度和高度;判断所述第二最大外接框的宽度是否大于所述预设范围的宽度、所述第二最大外接框的高度是否大于所述预设范围的高度;如果所述第二最大外接框的宽度大于所述预设范围的宽度、或者所述第二最大外接框的高度大于所述预设范围的高度,则确定所述第二最大外接框的范围超出了所述预设范围;如果所述第二最大外接框的宽度小于或者等于所述预设范围的宽度、且所述第二最大外接框的高度小于或者等于所述预设范围的高度,则确定所述第二最大外接框的范围未超出所述预设范围。
在本发明的一个实施例中,通过以下公式更新所述第一最大外接框的范围:
Figure SMS_176
其中,
Figure SMS_178
表示所述第一最大外接框的所有点中横坐标的最小值,
Figure SMS_180
表示所述第一最大外接框的所有点中横坐标的最大值,/>
Figure SMS_182
表示所述第一最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_179
表示所述第一最大外接框的所有点中纵坐标的最大值,/>
Figure SMS_181
表示所述第二最大外接框的所有点中横坐标的最小值,/>
Figure SMS_183
表示所述第二最大外接框的所有点中横坐标的最大值,
Figure SMS_184
表示所述第二最大外接框的所有点中纵坐标的最小值,/>
Figure SMS_177
表示所述第二最大外接框的所有点中纵坐标的最大值。
需要说明的是,该应用于工业质检的切图装置的具体实施方式及实施原理可参见上述应用于工业质检的切图方法的具体实施方式,为避免冗余,此处不再详细赘述。
本发明实施例的应用于工业质检的切图装置,有效保证了真实缺陷形态的原始特性,可以避免子图数量过多、新增缺陷形态太多、缺陷的真实形态无法保留、及小缺陷容易被丢失的现象,而且耗时少,有效提高了切图效率。
在本发明的描述中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。“多个”的含义是两个或两个以上,除非另有明确具体的限定。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (9)

1.一种应用于工业质检的切图方法,其特征在于,包括以下步骤:
S1,获取包含多组标注数据的标注数据集,其中,每组所述标注数据包括一个缺陷标注图像及其对应的缺陷标注文件,所述缺陷标注图像及其对应的缺陷标注文件是通过对工件原图进行标注得到的;
S2,创建包括多个进程的进程池,并确定所述进程池的容量;
S3,根据所述进程池的容量读取所述标注数据集中的标注数据,并通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,其中,同一时刻多个所述进程同时一一对应处理多组标注数据,所述子图列表包括至少一个子图标注文件;
S4,在每个所述进程中创建一个线程池,其中,所述线程池包括至少一个线程;
S5,通过所述线程根据所有所述子图标注文件对缺陷标注图像进行切图处理,以得到每个所述子图标注文件对应的子图,其中,同一时刻至少一个所述线程同时一一对应处理所述子图列表中的至少一个子图标注文件,
所述缺陷标注文件包括一个缺陷标注列表,所述缺陷标注列表包括对应的缺陷标注图像中所有缺陷的标注信息,其中,每个缺陷的标注信息包括缺陷名称、位置信息;
通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,包括以下步骤:
S31,从每个所述缺陷标注图像对应的缺陷标注文件中提取缺陷标注列表;
S32,初始化第一最大外接框的范围和临时缺陷列表,以使所述第一最大外接框为空框、所述临时缺陷列表为空列表;
S33,判断所述缺陷标注列表是否为空,如果所述缺陷标注列表不为空,则执行步骤S34;如果所述缺陷标注列表为空,则执行步骤S38;
S34,从所述缺陷标注列表中获取下一个缺陷的标注信息,并根据所述缺陷的标注信息中的位置信息计算所述缺陷的范围;
S35,基于所述缺陷的范围和所述第一最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表;
S36,判断所述缺陷标注列表中是否存在下一个缺陷的标注信息,如果所述缺陷标注列表中存在下一个缺陷的标注信息,则返回步骤S34;如果所述缺陷标注列表中不存在下一个缺陷的标注信息,则执行步骤S37;
S37,将所述临时缺陷列表复制到子图列表,并返回步骤S32,直至所述缺陷标注列表为空;
S38,判断所述临时缺陷列表是否为空,如果所述临时缺陷列表为空,则执行步骤S39;如果所述临时缺陷列表不为空,则返回步骤S37;
S39,判断所述子图列表是否为空,如果所述子图列表为空则结束流程;如果所述子图列表不为空则输出所述子图列表,并结束流程。
2.根据权利要求1所述的应用于工业质检的切图方法,其特征在于,基于所述缺陷的范围和所述第一最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表,包括:
获取预设范围,根据所述预设范围、所述缺陷的范围和所述第一最大外接框的范围计算第二最大外接框的范围;
根据所述预设范围和所述第二最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表。
3.根据权利要求2所述的应用于工业质检的切图方法,其特征在于,根据所述预设范围、所述缺陷的范围和所述第一最大外接框的范围计算第二最大外接框的范围,包括以下步骤:
S351,判断所述缺陷的范围是否超出了预设范围,如果所述缺陷的范围超出了所述预设范围,则执行步骤S352;如果所述获取的缺陷的范围未超出所述预设范围,则执行步骤S353;
S352,更新所述缺陷的位置信息、所述缺陷的范围,并执行步骤S353;
S353,根据所述缺陷的范围和所述第一最大外接框的范围,计算第二最大外接框的范围;
根据所述预设范围和所述第二最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表,包括以下步骤:
S354,判断所述第二最大外接框的范围是否超出了所述预设范围,如果所述第二最大外接框的范围未超出所述预设范围,则根据所述第二最大外接框的范围更新所述第一最大外接框的范围,并执行步骤S355;如果所述第二最大外接框的范围超出了所述预设范围,则跳过所述缺陷的标注信息,并返回步骤S34;
S355,将所述缺陷的标注信息移动到所述临时缺陷列表。
4.根据权利要求3所述的应用于工业质检的切图方法,其特征在于,判断所述缺陷的范围是否超出了所述预设范围,包括:
获取所述预设范围的宽度和高度,并根据所述缺陷的范围计算所述缺陷的宽度和高度;
判断所述缺陷的宽度是否大于所述预设范围的宽度、所述缺陷的高度是否大于所述预设范围的高度;
如果所述缺陷的宽度大于所述预设范围的宽度或者所述缺陷的高度大于所述预设范围的高度,则确定所述缺陷的范围超出了所述预设范围;
如果所述缺陷的宽度小于或者等于所述预设范围的宽度、且所述缺陷的高度小于或者等于所述预设范围的高度,则确定所述缺陷的范围未超出所述预设范围。
5.根据权利要求4所述的应用于工业质检的切图方法,其特征在于,通过以下公式计算所述缺陷的宽度和高度:
Figure QLYQS_1
其中,w表示所述缺陷的宽度,h表示所述缺陷的高度,
Figure QLYQS_2
表示所述缺陷的所有点中横坐标的最小值,/>
Figure QLYQS_3
表示所述缺陷的所有点中横坐标的最大值,/>
Figure QLYQS_4
表示所述缺陷的所有点中纵坐标的最小值,/>
Figure QLYQS_5
表示所述缺陷的所有点中纵坐标的最大值;
通过以下公式更新所述缺陷的位置信息:
Figure QLYQS_6
其中,
Figure QLYQS_7
分别表示所述缺陷的点i处的横坐标、纵坐标,/>
Figure QLYQS_8
表示所述预设范围的宽度,/>
Figure QLYQS_9
表示所述预设范围的高度。
6.根据权利要求5所述的应用于工业质检的切图方法,其特征在于,通过以下公式计算所述第二最大外接框的范围:
Figure QLYQS_10
其中,
Figure QLYQS_12
表示所述第二最大外接框的所有点中横坐标的最小值,/>
Figure QLYQS_15
表示所述第二最大外接框的所有点中横坐标的最大值,/>
Figure QLYQS_17
表示所述第二最大外接框的所有点中纵坐标的最小值,/>
Figure QLYQS_13
表示所述第二最大外接框的所有点中纵坐标的最大值,
Figure QLYQS_14
表示所述第一最大外接框的所有点中横坐标的最小值,/>
Figure QLYQS_16
表示所述第一最大外接框的所有点中横坐标的最大值,/>
Figure QLYQS_18
表示所述第一最大外接框的所有点中纵坐标的最小值,/>
Figure QLYQS_11
表示所述第一最大外接框的所有点中纵坐标的最大值。
7.根据权利要求3所述的应用于工业质检的切图方法,其特征在于,判断所述第二最大外接框的范围是否超出了所述预设范围,包括:
获取所述预设范围的宽度和高度,并根据所述第二最大外接框的范围计算所述第二最大外接框的宽度和高度;
判断所述第二最大外接框的宽度是否大于所述预设范围的宽度、所述第二最大外接框的高度是否大于所述预设范围的高度;
如果所述第二最大外接框的宽度大于所述预设范围的宽度、或者所述第二最大外接框的高度大于所述预设范围的高度,则确定所述第二最大外接框的范围超出了所述预设范围;
如果所述第二最大外接框的宽度小于或者等于所述预设范围的宽度、且所述第二最大外接框的高度小于或者等于所述预设范围的高度,则确定所述第二最大外接框的范围未超出所述预设范围。
8.根据权利要求3所述的应用于工业质检的切图方法,其特征在于,通过以下公式更新所述第一最大外接框的范围:
Figure QLYQS_19
其中,
Figure QLYQS_21
表示所述第一最大外接框的所有点中横坐标的最小值,
Figure QLYQS_23
表示所述第一最大外接框的所有点中横坐标的最大值,/>
Figure QLYQS_25
表示所述第一最大外接框的所有点中纵坐标的最小值,/>
Figure QLYQS_20
表示所述第一最大外接框的所有点中纵坐标的最大值,/>
Figure QLYQS_24
表示所述第二最大外接框的所有点中横坐标的最小值,/>
Figure QLYQS_26
表示所述第二最大外接框的所有点中横坐标的最大值,/>
Figure QLYQS_27
表示所述第二最大外接框的所有点中纵坐标的最小值,/>
Figure QLYQS_22
表示所述第二最大外接框的所有点中纵坐标的最大值。
9.一种应用于工业质检的切图装置,其特征在于,包括:
获取模块,用于获取包含多组标注数据的标注数据集,其中,每组所述标注数据包括一个缺陷标注图像及其对应的缺陷标注文件,所述缺陷标注图像及其对应的缺陷标注文件是通过对工件原图进行标注得到的;
第一创建模块,用于创建包括多个进程的进程池,并确定所述进程池的容量;
处理模块,用于根据所述进程池的容量读取所述标注数据集中的标注数据,并通过所有进程按照切图策略对读取的标注数据进行处理,以得到每个缺陷标注图像对应的子图列表,其中,同一时刻多个所述进程同时一一对应处理多组标注数据,所述子图列表包括至少一个子图标注文件;
第二创建模块,用于在每个所述进程中创建一个线程池,其中,所述线程池包括至少一个线程;
切图模块,用于通过所述线程根据所有所述子图标注文件对缺陷标注图像进行切图处理,以得到每个所述子图标注文件对应的子图,其中,同一时刻至少一个所述线程同时一一对应处理所述子图列表中的至少一个子图标注文件,
所述缺陷标注文件包括一个缺陷标注列表,所述缺陷标注列表包括对应的缺陷标注图像中所有缺陷的标注信息,其中,每个缺陷的标注信息包括缺陷名称、位置信息;处理模块通过以下步骤得到每个缺陷标注图像对应的子图列表:
S31,从每个缺陷标注图像对应的缺陷标注文件中提取缺陷标注列表;
S32,初始化第一最大外接框的范围和临时缺陷列表,以使所述第一最大外接框为空框、所述临时缺陷列表为空列表;
S33,判断所述缺陷标注列表是否为空,如果所述缺陷标注列表不为空,则执行步骤S34;如果所述缺陷标注列表为空,则执行步骤S38;
S34,从所述缺陷标注列表中获取下一个缺陷的标注信息,并根据所述缺陷的标注信息中的位置信息计算所述缺陷的范围;
S35,基于所述缺陷的范围和所述第一最大外接框的范围,更新所述第一最大外接框的范围、将所述缺陷的标注信息移动到所述临时缺陷列表;
S36,判断所述缺陷标注列表中是否存在下一个缺陷的标注信息,如果所述缺陷标注列表中存在下一个缺陷的标注信息,则返回步骤S34;如果所述缺陷标注列表中不存在下一个缺陷的标注信息,则执行步骤S37;
S37,将所述临时缺陷列表复制到子图列表,并返回步骤S32,直至所述缺陷标注列表为空;
S38,判断所述临时缺陷列表是否为空,如果所述临时缺陷列表为空,则执行步骤S39;如果所述临时缺陷列表不为空,则返回步骤S37;
S39,判断所述子图列表是否为空,如果所述子图列表为空则结束流程;如果所述子图列表不为空则输出所述子图列表,并结束流程。
CN202310238834.5A 2023-03-14 2023-03-14 应用于工业质检的切图方法及装置 Active CN115953404B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310238834.5A CN115953404B (zh) 2023-03-14 2023-03-14 应用于工业质检的切图方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310238834.5A CN115953404B (zh) 2023-03-14 2023-03-14 应用于工业质检的切图方法及装置

Publications (2)

Publication Number Publication Date
CN115953404A CN115953404A (zh) 2023-04-11
CN115953404B true CN115953404B (zh) 2023-05-30

Family

ID=85892338

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310238834.5A Active CN115953404B (zh) 2023-03-14 2023-03-14 应用于工业质检的切图方法及装置

Country Status (1)

Country Link
CN (1) CN115953404B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107563955A (zh) * 2017-09-12 2018-01-09 武汉锐思图科技有限公司 一种基于gpu的并行地图切片方法及系统
CN114565548A (zh) * 2020-11-13 2022-05-31 华为云计算技术有限公司 工业缺陷识别方法、系统、计算设备及存储介质
CN113218952B (zh) * 2021-04-25 2022-11-01 华南理工大学 Ic封装载板多尺度外观缺陷检测方法、装置、设备和介质
CN115564950A (zh) * 2022-09-29 2023-01-03 中北大学 基于深度学习的小样本火箭弹粘接缺陷检测方法
CN115496749B (zh) * 2022-11-14 2023-01-31 江苏智云天工科技有限公司 基于目标检测训练预处理的产品缺陷检测方法及系统

Also Published As

Publication number Publication date
CN115953404A (zh) 2023-04-11

Similar Documents

Publication Publication Date Title
JP7059318B2 (ja) 地域的特徴を有する分類器学習のための学習データ生成方法およびそのシステム
CN108268186B (zh) 在电解剖标测图上选择点
US7714864B2 (en) Visual resource profiler for graphical applications
CN109145352B (zh) 用于学习取图像作为输入的函数的数据集
US9406159B2 (en) Print-ready document editing using intermediate format
JPH09101970A (ja) 画像検索方法および画像検索装置
JP2007052703A (ja) テストシナリオ作成プログラム、テストシナリオ作成装置、テストシナリオ作成方法
JP6612487B1 (ja) 学習装置、分類装置、学習方法、分類方法、学習プログラム、及び分類プログラム
US20150269773A1 (en) Graphics processing systems
DE102019208700A1 (de) Werkstückmessvorrichtung, Werkstückmessverfahren und Programm
JP7333029B2 (ja) プログラム、情報処理方法及び情報処理装置
JP6612486B1 (ja) 学習装置、分類装置、学習方法、分類方法、学習プログラム、及び分類プログラム
JP2015531918A (ja) ヒットテスト方法および装置
JP2008224365A (ja) 欠陥検査装置及び欠陥検査方法
CN110975292A (zh) 一种基于psd文件的游戏地图绘制方法及其系统
US10216863B2 (en) Program generation method, program generation apparatus, and storage medium
CN112651989A (zh) 基于Mask RCNN实例分割的SEM图像分子筛粒径统计方法和系统
CN115953404B (zh) 应用于工业质检的切图方法及装置
CN104167014B (zh) 用于渲染三维表面的数据的方法和设备
CN110874170A (zh) 一种图像区域修正方法、图像分割方法及装置
CN112434582A (zh) 一种车道线颜色识别方法、系统、电子设备及存储介质
CN116127802B (zh) 3d视景展示cae仿真结果的方法、装置及系统
JP2009159494A5 (zh)
JP2009110398A (ja) 解析モデル作成装置
CN110633484A (zh) 桥梁病害示意图的生成方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant