具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在机械生产加工过程中,通常会通过对产品进行拍照以进行缺陷检测。相关技术中,通常是线下训练好的图像模型后投入生产进行缺陷检测,而图像模型的识别效果依赖于训练的样本量和训练中覆盖的缺陷类型。实际应用中,很难将生产中的所有缺陷类型一一用于图像模型的训练,因此,在生产过程中,对产品进行缺陷检测时,存在缺陷无法识别的情况。虽然可以对图像模型进行重新训练以提升识别效果,但是当前的图像模型的训练效率较低,导致其重新应用于生产线的周期较长,因此,在产品的实际生产过程中,存在机械漏检的情况。因此,亟需一种能对生产过程中缺陷识别失败及时响应处理的方法,以降低产品的机械漏检的概率。基于此,本申请实施例提出一种生产缺陷识别的方法、分布式处理平台、设备及存储介质,旨在降低生产过程中对产品进行机械漏检的概率。
第一方面,参照图1所示,本申请实施例提出的生产缺陷识别的方法,应用于分布式处理平台,包括:
步骤S100、获取在当前缺陷检测中缺陷识别失败的生产图像的分类数据。
需说明的是,缺陷识别失败表示无法判别该生产图像是否存在缺陷,进一步的无法识别具体的缺陷类别。如缺陷检测失败后得到的正常产品的概率、定义的各类缺陷的概率均不满足设定的概率范围,则表示缺陷识别失败。分类数据包含产品属性分类以及图像质量分类。通过对不同产品、不同图像质量进行分类训练,可以做到缺陷更加细化的优化且调优所需的时长更短,缩短缺陷识别失败的生产图像的识别效果的反馈时长,以降低生产过程中,产品的机械漏检的概率。
步骤S200、将分类数据与历史训练模型集进行匹配,得到历史模型参数集。
需说明的是,通过匹配可以筛选出与缺陷识别失败的生产图像相关的历史的第一图像模型,缩小用于优化处理的图像模型数量。历史模型参数集表示待优化的图像模型的基本属性的集合,基本属性如模型参数和模型标识等。
步骤S300、对于历史模型参数集中的每一历史模型参数,当预设的分布式训练资源池中不存在对应的空闲的第一训练容器时,将历史模型参数存入预设的资源队列中并根据资源队列对分布式训练资源池进行资源回收处理。
需说明的是,空闲的第一训练容器,表示其无法被用于与历史模型参数对应的第一图像模型的训练,第一训练容器可以是有训练任务的容器,也可能是无训练任务的容器。
需说明的是,资源回收处理是将分布式训练资源池中的部分资源(如未使用的,如不常用的)释放出来,此时,分布式训练资源池能对资源进行重新整合以及时提供满足资源队列中历史模型参数对应的图像模型训练的资源,进而使得历史模型参数对应的第一图像模型能被及时优化训练,缩短识别效果的反馈时长,进而降低产品的漏检的概率。
需说明的是,容器为虚拟资源,是对分布式训练资源池中的硬件资源(如CPU和内存等)进行逻辑划分得到。分布式训练资源池由多个服务器分布式部署得到。其部署方式,本申请实施例不做限制。
步骤S400、在资源回收处理后,从资源队列中提取出历史模型参数,并在分布式训练资源池中确定与历史模型参数对应的第二训练容器。
需说明的是,第二训练容器可以是复用现有的容器,或者是重新创建。具体根据分布式训练资源池中各训练容器的状态和硬件参数确定。如分布式训练资源池中存在一个训练容器未有训练任务且能被资源队列中的历史模型参数对应的图像模型使用,则可以直接复用。又或者现有的训练容器均有训练任务,但是分布式训练资源池中还有资源能被划分成容器,则需要重新创建,重新创建可以是基于历史模型参数对硬件的要求直接创建又或者是基于现有存在的训练容器直接复制。
需说明的是,对于每一个历史模型参数集,可以进行至少一次资源回收处理,直至历史模型参数集中的所有历史模型参数对应的第一图像模型均被部署在训练容器中进行训练。
步骤S500、通过第二训练容器对历史模型参数对应的第一图像模型进行优化,得到第二图像模型。
步骤S600、根据生产图像和第二图像模型,得到生产图像的识别结果。
因此,通过实时将当前缺陷检测中缺陷识别失败的生产图像发送至分布式处理平台,分布式处理平台根据生产图像的分类数据确定与之关联的历史模型参数集,进而可以对该历史模型参数集对应的第一图像模型进行调优直至正确识别出生产图像是否存在缺陷,由于采用分布式训练资源池以及资源回收处理的方式,使得第一图像模型的调优能被及时处理,提升生产图像的识别结果的反馈效率,因此在生产过程中,能及时得到缺陷识别失败的生产图像的识别结果,进而降低产品的机械漏检的概率。因此,本申请实施例的生产缺陷识别的方法、分布式处理平台、设备及存储介质,能在生产过程中,降低产品的机械漏检的概率。
可理解的是,步骤S100、获取在当前缺陷检测中缺陷识别失败的生产图像的分类数据,包括:在当前缺陷检测中,获取缺陷识别失败的生产图像;对生产图像进行目标区域标注,得到多个目标区域;对每一目标区域进行分类,得到对应的分类数据。
需说明的是,目标区域标注可以是依据现有对产品的目标区域划分进行自动标注。通过对目标区域进行分类,能做到同时对生产图像的多维度的图像模型的训练调优,进而提升调优的效率。
可理解的是,参照图2所示,分类数据包括图像质量分类数据;对每一目标区域进行分类,得到对应的分类数据,包括:
步骤S110、获取目标区域的明亮度数据,以及与图像质量分类数据对应的图像质量指标。
需说明的是,图像质量指标为用于衡量图像质量的标准,如饱和度、完整度以及对比度等。本领域技术人员可以根据实际的生产需要设置一个或者多个。
需说明的是,明亮度数据表示图片的亮度。
步骤S120、根据图像质量指标,确定目标区域的质量数据。
示例性的,以图像质量指标为饱和度,则质量数据表示该目标区域的饱和度值。
步骤S130、将明亮度数据和质量数据进行向量加法,得到质量汇总数据。
步骤S140、将质量汇总数据与图像质量指标对应的图像阈值范围进行比较,得到图像质量分类数据。
示例性的,假设图像阈值范围为[0,20],(21,40],(41,60],(61,80],(81,100];质量数据为x,明亮度数据为y,当x+y=64,则表示质量汇总数据位于(61,80]的图像阈值范围内。此时,需要历史模型集中找到与该(61,80]的图像阈值范围对应的图像模型,并获取对应的历史模型参数,以在无与历史模型参数对应的第一训练容器时,将对应的历史模型参数存入资源队列中等待执行。
可理解的是,分类数据包括属性分类数据;对每一目标区域进行分类,得到对应的分类数据,还包括:对目标区域进行特征提取,得到特征数据;根据特征数据进行聚类分析,得到属性分类数据,属性分类数据包括产品类型、型号、检测特征中的至少一个。
需说明的是,特征提取可以采用现有的神经网络进行提取,对此,本申请实施例不做过多赘述。
需说明是,通过设置属性分类数据,可以实现对单一产品、单一特征进行分类训练,与实际生产过程中一条产线对应一类产品是相呼应,识别成功率更高。
可理解的是,步骤S400中根据资源队列对分布式训练资源池进行资源回收处理,包括:获取资源队列中每一历史模型参数对应的图像质量分类数据的模型训练资源使用率;当分布式训练资源池中存在与历史模型参数对应的第三训练容器,判断历史模型参数对应的模型训练资源使用率是否大于第一预设使用率值;当历史模型参数对应的模型训练资源使用率小于第一预设使用率值,销毁对应的第三训练容器。
示例性的,如对于产品A和产品B而言,其分别对应有位于(61,80]的图像阈值范围的图像模型A和图像模型B,当产品A中与处于(61,80]的图像阈值范围对应的第一图像模型的历史模型参数被放入资源队列中时,当分布式训练资源池中存在训练容器在历史时间段内训练了图像阈值范围为(61,80]的图像模型A和图像模型B,则会在历史时间段内统计该训练容器的总训练次数,并将该总训练次数作为历史模型参数A对应的图像质量分类数据的模型训练资源使用率。
可理解的是,步骤S400中在分布式训练资源池中确定与历史模型参数对应的第二训练容器,包括:当历史模型参数对应的模型训练资源使用率大于第二预设使用率值且对应有第三训练容器,判断对应的第三训练容器是否闲置;当与第一历史模型对应的第三训练容器处于闲置状态,将对应的第三训练容器作为第二训练容器;当与第一历史模型对应的第三训练容器处于非闲置状态,将第三训练容器进行复制,得到第二训练容器。
需说明的是,当存在有多个第三训练容器对应的模型训练资源使用率均大于第二预设使用率值,则会一一判断第三训练容器是否闲置状态,仅在分布式训练资源池不存在空闲的第三训练容器作为历史模型参数对应的模型训练资源时,才会进行复制。
可理解的是,步骤S400中在分布式训练资源池中确定与历史模型参数对应的第二训练容器,还包括:
当历史模型参数对应的模型训练资源使用率小于第一预设使用率值,在分布式训练资源池中重新创建第二训练容器。
通过重新创建的方式,使其不占用使用频率高的其他训练容器,可以使得高频率使用的训练容器处于空闲状态的几率更高,进而能进一步提升整个模型优化的效率,进而缩短产线中在缺陷识别失败的生产图像对应的识别结果反馈时长。
可理解的是,历史模型参数包括模型标识和模型参数;步骤S500通过第二训练容器对历史模型参数对应的第一图像模型进行优化,得到第二图像模型,包括:根据模型标识,将第一图像模型加载到第二训练容器中;根据预设的模型调整参数对模型参数进行调优;根据调优后的模型参数,对第一图像模型进行重训练,得到第二图像模型。
当该次调优失败后,下一次调优时,模型调整参数会相应的改变。
需说明的是,对于每一个第一图像模型的优化,可以针对同一模型调整参数,采用多种调优算法进行调优,并将调优效果最好的作为对应的第二图像模型。
需说明的是,重训练表示将训练的样本集输入到第一图像模型中,并根据第一图像模型的输出结果判断是否调整当前第一模型的模型参数直至第一图像模型的输出结果和预期的结果相匹配。
可理解的是,步骤S600、根据生产图像和第二图像模型,得到生产图像的识别结果,包括:将生产图像分别输入到每一第二图像模型中;根据每一第二图像模型的输出结果确定识别结果。
需说明的是,当存在一个第二图像模型能正常识别出生产图像是否存在缺陷或者是具体的缺陷类型,则可以反馈识别效果,否则需要重新对第一图像模型进行优化。
需说明的是,在一些实施例中,在将生产图像输入到第二图像模型之前,可以对生产图像进行图片扩充处理,如色彩扩增、图片翻转或者明亮度扩增等,以提升识别的准确率。
示例性,下面以一个具体实施例描述本申请中的上述生产缺陷识别的方法:
参照图3所示,将整个应用上述方法的系统分为三段,分别是图像识别模块、队列调优模块以及图像训练平台。图像识别模块处理流程为:拍照得到生产图像->对生产图像进行缺陷识别->判断该生产图像是否能识别良品与非良品->不能识别:生产图像上传->能识别:继续生产,在队列调优模块处理过程如下:对上传的生产图像进行目标区域标注->对目标区域进行分类得到分类数据->将分类数据与历史模型集匹配,得到多个图像模型对应的历史模型参数集->将历史模型参数集输入资源监控,以对历史模型参数中每一历史模型参数所需的模型训练资源进行监控管理->当分布式训练资源池中不存在与历史模型参数对应的空闲的第一训练容器,将历史模型参数输入资源队列->对资源队列进行资源复制和资源伸缩处理->确定第二训练容器->根据模型调整参数进行模型调优修正->修正后的第二图像模型对生产图像进行识别,当识别成功,将识别结果同步到产线,当不存在识别成功的第二图像模型,则重新确定模型调整参数以进行下一轮对第一图像模型的调优处理。
可理解的是,参照图4所示,本申请实施例还提出一种分布式处理平台,应用上述生产缺陷识别的方法。分布式处理平台包括:
预处理模块100,用于获取在当前缺陷检测中缺陷识别失败的生产图像的分类数据;
匹配模块200,用于将分类数据与历史训练模型集进行匹配,得到历史模型参数集;
资源回收处理模块300,用于对于历史模型参数集中的每一历史模型参数,当预设的分布式训练资源池中不存在对应的空闲的第一训练容器时,将历史模型参数存入预设的资源队列中并根据资源队列对分布式训练资源池进行资源回收处理;
资源确定模块400,用于在资源回收处理后,从资源队列中依次提取得到历史模型参数,并在分布式训练资源池中确定与历史模型参数对应的第二训练容器;
优化模块500,用于通过第二训练容器对历史模型参数对应的第一图像模型进行优化,得到第二图像模型;
反馈模块600,用于根据生产图像和第二图像模型,得到生产图像的识别结果。
需说明的是,上述各模块可以采用分布式任务进行处理,进而提升效率。
可理解的是,根据本申请第三方面实施例提供的电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述生产缺陷识别的方法。
该电子设备可以为包括平板电脑、车载电脑等任意智能终端。
请参见图5,图5示意了另一实施例的电子设备的硬件结构,电子设备包括:
处理器701,可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请实施例所提供的技术方案;
存储器702,可以采用只读存储器(Read Only Memory,ROM)、静态存储设备、动态存储设备或者随机存取存储器(Random Access Memory,RAM)等形式实现。存储器702可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器702中,并由处理器701来调用执行本申请实施例的生产缺陷识别的方法;
输入/输出接口703,用于实现信息输入及输出;
通信接口704,用于实现本设备与其他设备的通信交互,可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信;和,
总线705,在设备的各个组件(例如处理器701、存储器702、输入/输出接口703和通信接口704)之间传输信息;
其中处理器701、存储器702、输入/输出接口703和通信接口704通过总线705实现彼此之间在设备内部的通信连接。
可理解的是,根据本申请实施例提供的一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序被处理器执行时实现上述生产缺陷识别的方法。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本申请实施例描述的实施例是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。
本申请的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例的方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。
以上参照附图说明了本申请实施例的优选实施例,并非因此局限本申请实施例的权利范围。本领域技术人员不脱离本申请实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本申请实施例的权利范围之内。