瑕疵检测模型、训练方法、检测方法、装置、设备及介质与流程

文档序号:22260543发布日期:2020-09-18 14:30阅读:179来源:国知局
瑕疵检测模型、训练方法、检测方法、装置、设备及介质与流程

本申请涉及计算机技术领域,具体而言,涉及一种瑕疵检测模型、训练方法、检测方法、装置、设备及介质。



背景技术:

在工业中,由于原材料、轧制设备和工艺等原因,生产出的工业产品往往不可避免会出现不同类型的瑕疵,而瑕疵的存在不仅影响产品的外观,还会降低产品的耐腐蚀性、耐磨性和疲劳强度等性能,给企业造成巨大的经济损失。因此瑕疵检测一直是工业领域十分关注的问题。

分类算法是目前行业内对瑕疵检测的常见方法,通过神经网络来判断产品图片中是否有瑕疵,进而给出“合格”、“不合格”、“待定”等检测结果。但是传统分类的方法仅仅对于图片有一个定性的描述,而没有体现出瑕疵在图片中的位置信息。



技术实现要素:

本申请实施例的目的在于提供一种瑕疵检测模型、训练方法、检测方法、装置、设备及介质,用以解决目前瑕疵检测过程中没有体现出瑕疵在图片中的位置信息的问题。

本申请实施例提供了一种瑕疵检测模型,包括:神经网络,用于对输入的图片进行特征提取,输出特征图;权重层,用于与所述神经网络输出的特征图点乘,以提高所述神经网络输出的特征图中存在瑕疵的位置的权重,输出权重调整后的最终特征图;所述权重层为与所述神经网络输出的特征图的尺寸相同,且矩阵值与所述神经网络输出的特征图的矩阵值关联变化的矩阵。

在上述瑕疵检测模型中,在神经网络之后接入一个权重层,通过权重层来与神经网络输出的特征图点乘,提高神经网络输出的特征图中存在瑕疵的位置的权重。这样得到的最终特征图中,最终特征图对应的矩阵中最大值所对应的位置即可以大概率为瑕疵在图片中的位置。这样,即在一定程度上实现了在瑕疵检测过程中对瑕疵位置的检测,解决了目前瑕疵检测过程中没有体现出瑕疵在图片中的位置信息的问题。

本申请实施例还提供了一种瑕疵检测模型的训练方法,包括:使用上述瑕疵检测模型对训练集图片进行处理;所述训练集图片包括无瑕疵训练集图片和有瑕疵训练集图片,所述有瑕疵训练集图片标注有瑕疵位置;将所述瑕疵检测模型输出的各训练集图片对应的最终特征图输入预设的损失函数中;判断所述损失函数的损失值是否收敛;若未收敛,根据所述损失值进行反向传播,更新所述瑕疵检测模型中所述神经网络的参数以及所述权重层的矩阵值,并重复上述过程;若收敛,结束训练,得到训练好的所述瑕疵检测模型。

在上述实现过程中,通过无瑕疵训练集图片和标注有瑕疵位置的有瑕疵训练集图片对瑕疵检测模型进行训练,这样可以在有效实现对于进行起分类作用的神经网络的训练的同时,对权重层也进行训练,得到适合的权重层矩阵,从而使得训练得到的瑕疵检测模型得以在实现对图片中是否有瑕疵的准确判断的同时,还可以针对有瑕疵的图片快速得到瑕疵在图片中的位置信息。

进一步地,所述损失函数为分类损失函数加上瑕疵位置损失函数。

上述训练的瑕疵检测模型包括可实现瑕疵分类的神经网络以及加强瑕疵位置权重的权重层,在上述实现过程中,在通过分类损失函数实现对于图片分类准确性的判定的同时,还通过瑕疵位置损失函数对瑕疵位置确定的准确性也进行判定,进而综合两方面来确定瑕疵检测模型是否需要继续迭代,这就使得训练得到的瑕疵检测模型更为准确、可用。

进一步地,所述分类损失函数为交叉熵函数或softmax函数。

进一步地,所述瑕疵位置损失函数为:l=∑n∈n(tn(p1)-in(p2))2;所述in表征第n张有瑕疵训练集图片,所述tn表征所述第n张有瑕疵训练集图片对应的最终特征图,所述tn(p1)为最终特征图对应的矩阵中最大值所在位置;所述in(p2)为有瑕疵训练集图片中标注的瑕疵位置;所述n为有瑕疵训练集图片的总数。

在上述实现过程中,通过针对最终特征图中认为是瑕疵的位置来和对应的有瑕疵训练集图片中标注的瑕疵位置进行比对计算,从而得到相应偏差值。理论上,tn(p1)-in(p2)的绝对值越大,则表明瑕疵检测模型效果越差。

本申请实施例还提供了一种瑕疵检测方法,包括:将待检测图片输入至上述瑕疵检测模型中,得到最终特征图;将所述最终特征图输入至预设的分类器中,得到所述待检测图片的分类结果;在所述分类结果为存在瑕疵时,输出所述最终特征图对应的矩阵中最大值所在位置。

在上述实现过程中,将待检测图片输入至瑕疵检测模型中得到最终特征图后,即可通过预设的分类器对待检测图片进行分类,确定出待检测图片是否存在瑕疵。而在存在瑕疵时,即可以将最终特征图对应的矩阵中最大值所在位置作为瑕疵位置进行输出,这样就实现了在检测产品是否存在瑕疵的同时,还能确定出瑕疵所在位置,提升了检测效果。

本申请实施例还提供了一种瑕疵检测模型的训练装置,包括:第一处理模块、第一输入模块、判断模块以及反向传播模块;所述第一处理模块,用于使用上述瑕疵检测模型对所述训练集图片进行处理;所述训练集图片包括无瑕疵训练集图片和有瑕疵训练集图片,所述有瑕疵训练集图片标注有瑕疵位置;所述第一输入模块,用于将所述瑕疵检测模型输出的各训练集图片对应的最终特征图输入预设的损失函数中;所述判断模块,用于判断所述损失函数的损失值是否收敛,在收敛时,结束训练;所述反向传播模块,用于在未收敛时,根据所述损失值进行反向传播,更新所述瑕疵检测模型中所述神经网络的参数以及所述权重层的矩阵值,并使得所述处理模块、输入模块和判断模块依次重复执行上述过程。

在上述实现过程中,通过无瑕疵训练集图片和标注有瑕疵位置的有瑕疵训练集图片对瑕疵检测模型进行训练,在有效实现对于进行起分类作用的神经网络的训练的同时,对权重层也进行训练,得到适合的权重层矩阵,使得训练得到的瑕疵检测模型得以在实现对图片中是否有瑕疵的准确判断的同时,还可以针对有瑕疵的图片快速得到瑕疵在图片中的位置信息。

本申请实施例还提供了一种瑕疵检测装置,包括:第二输入模块、第二处理模块和分类模块;所述第二输入模块,用于将待检测图片输入至上述瑕疵检测模型中;所述第二处理模块,用于通过所述瑕疵检测模型得到最终特征图;所述分类模块,用于将所述最终特征图输入至预设的分类器中,得到所述待检测图片的分类结果;所述第二处理模块,还用于在所述分类结果为存在瑕疵时,输出所述最终特征图对应的矩阵中最大值所在位置。

上述实现装置,可以实现在检测产品是否存在瑕疵的同时,还能确定出瑕疵所在位置,提升了检测效果。

本申请实施例还提供了一种电子设备,包括:数据输入/输出接口、处理器、存储器及通信总线;所述通信总线用于实现所述数据输入/输出接口、处理器和存储器之间的连接通信;所述数据输入/输出接口用于获取训练集图片或获取待检测图片;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的瑕疵检测模型的训练方法,或实现上述的瑕疵检测方法。

本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的瑕疵检测模型的训练方法,或实现上述的瑕疵检测方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种瑕疵检测模型的结构示意图;

图2为本申请实施例提供的一种瑕疵检测模型的训练流程示意图;

图3为本申请实施例提供的一种进行瑕疵检测的流程示意图;

图4为本申请实施例提供的一种瑕疵检测模型的训练装置的结构示意图;

图5为本申请实施例提供的一种瑕疵检测装置的结构示意图;

图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

实施例一:

本申请实施例提供了一种瑕疵检测模型,参见图1所示,其包括神经网络和权重层。其中:

权重层接于神经网络之后,且权重层为与神经网络输出的特征图的尺寸相同的矩阵。应当理解的是,由于在实际应用中所采用神经网络的结构是确定的,因此相应的,神经网络所输出的特征图的尺寸也是确定的,进而可以确定出权重层的矩阵尺寸。

需要了解的是,在神经网络对图片进行处理时,其输出的特征图本质是一个n×n的矩阵(n为大于0的整数),因此在神经网络对一幅图片进行特征提取,输出特征图之后,可以通过同样尺寸为n×n的权重层矩阵来进行点乘,从而为神经网络输出的特征图调整权重,提高神经网络输出的特征图中存在瑕疵的位置的权重,从而得到最终特征图。在最终特征图中,其所表征的矩阵中最大值的位置往往会和图片中瑕疵位置相互对应,因此可以以最终特征图所表征的矩阵中最大值的位置作为瑕疵在图片中的位置。

需要注意的是,本申请实施例中权重层的矩阵并非是一个具有固定值的矩阵,权重层矩阵的矩阵值与神经网络输出的特征图的矩阵值是关联的,在神经网络输出的特征图的矩阵值发生变化后,权重层的矩阵值也会相应变化,从而实现提高神经网络输出的特征图中存在瑕疵的位置的权重的效果。

需要理解的是,本申请实施例中的神经网络可以采用任一可实现对图片是否存在瑕疵的检测神经网络,例如可以采用cnn(卷积神经网络)等。

本申请实施例中,在使用瑕疵检测模型之前,需要先对瑕疵检测模型进行训练,以得到具有较好分类效果的神经网络,以及能够较好的实现对于神经网络输出的特征图中存在瑕疵的位置的权重的提高。参见图2所示,图2为本申请实施例所提供的一种瑕疵检测模型的训练方法,包括:

s201:使用本申请实施例中所提供的瑕疵检测模型对训练集图片进行处理。

需要说明的是,本申请实施例中所述的训练集图片包括无瑕疵训练集图片和有瑕疵训练集图片。其中,有瑕疵训练集图片中需要标注出瑕疵位置,同时针对无瑕疵训练集图片和有瑕疵训练集图片也需要给出定性的标记,即标记该训练集图片有无瑕疵。

需要注意的是,在本申请实施例中训练集图片可以进行预处理,以使得各训练集图片处于相同尺寸(比如512×512)并为灰度图片,以便于瑕疵检测模型进行处理。

s202:将瑕疵检测模型输出的各训练集图片对应的最终特征图输入预设的损失函数中。

在本申请实施例的一种可行实施方式中,可以通过传统的损失函数(如交叉熵函数等)作为本申请实施例所采用的损失函数。

但是,考虑到本申请实施例中瑕疵检测模型要实现对图片产品是否存在瑕疵的检测,同时还要实现对于有瑕疵的图片的瑕疵位置的检测,因此在本申请实施例的另一种可行实施方式中,可以采用分类损失函数加上瑕疵位置损失函数来作为本申请实施例所采用的损失函数。

示例性的,分类损失函数可以采用诸如交叉熵函数、softmax函数等,这些传统的分类损失函数可以很好的表征出瑕疵检测模型对于输入的图片的分类可靠性。

而针对瑕疵位置损失函数,则可以考虑通过瑕疵检测模型检测出的瑕疵位置与图片中标记的位置之间的偏差来确定瑕疵检测模型对于输入的图片中瑕疵位置的检测准确性。

为此,在本申请实施例的一可行示例中,可以设置瑕疵位置损失函数为:l=∑n∈n(tn(p1)-in(p2))2。式中:

l表征瑕疵位置损失函数的损失值,in表征第n张有瑕疵训练集图片,tn表征第n张有瑕疵训练集图片对应的最终特征图,tn(p1)为最终特征图对应的矩阵中最大值所在位置;in(p2)为有瑕疵训练集图片中标注的瑕疵位置;n为有瑕疵训练集图片的总数。而∑n∈n(tn(p1)-in(p2))2表征求取n属于n的所有(tn(p1)-in(p2))2值之和。

应当理解的是,上述示例中的瑕疵位置损失函数仅是本申请实施例中所可以采用的一种可行瑕疵位置损失函数,不代表本申请实施例仅可采用上述瑕疵位置损失函数来实现。例如,瑕疵位置损失函数还可以为l=∑n∈n|tn(p1)-in(p2)|,其中|tn(p1)-in(p2)|为tn(p1)与in(p2)之差的绝对值。

s203:判断损失函数的损失值是否收敛,若未收敛,转至步骤s204;若收敛,转至步骤s205。

在本申请实施例中,可以通过损失函数来判断当前模型的优劣,通常损失函数输出的损失值收敛时,即可认为瑕疵检测模型已训练完毕,可以投入实际应用。

s204:根据损失值进行反向传播,更新瑕疵检测模型中神经网络的参数以及权重层的矩阵值,并转至步骤s201。

s205:结束训练。

在对瑕疵检测模型训练完毕之后,即可以得到训练好的瑕疵检测模型,此时该训练好的瑕疵检测模型即可以应用于工业中来实现对产品的瑕疵进行检测。可以参见图3所示,瑕疵检测过程包括:

s301:将待检测图片输入至训练好的瑕疵检测模型中,得到最终特征图。

s302:将最终特征图输入至预设的分类器中,得到待检测图片的分类结果。

在本申请实施例中,分类器可以采用常见的分类器,比如logistic分类器、softmax分类器等。

s303:在分类结果为存在瑕疵时,输出最终特征图对应的矩阵中最大值所在位置。

在本申请实施例中,在分类结果为存在瑕疵时,可以将最终特征图对应的矩阵中最大值所在位置作为瑕疵位置进行输出。

在本申请实施例中,为了提高输出效果,可以在分类结果为存在瑕疵时,可以根据最终特征图对应的矩阵中最大值所在位置,映射得到该最大值所在位置在待检测图片中的位置,进而依据该最大值所在位置在待检测图片中的位置,在待检测图片中生成指示该位置的标识(如箭头等)。

需要注意的是,本申请实施例的方案可以应用于各种瑕疵检测场景中,例如磁性材料的瑕疵检测中。

通过本申请实施例所提供的方案,在神经网络之后接入一个权重层,通过权重层来与神经网络输出的特征图点乘,提高神经网络输出的特征图中存在瑕疵的位置的权重。这样得到的最终特征图中,最终特征图对应的矩阵中最大值所对应的位置即可以大概率为瑕疵在图片中的位置。这样,即在一定程度上实现了在瑕疵检测过程中对瑕疵位置的检测,解决了目前瑕疵检测过程中没有体现出瑕疵在图片中的位置信息的问题。

实施例二:

基于同一发明构思,本申请实施例中还提供了一种瑕疵检测模型的训练装置和瑕疵检测装置。请参阅图4和图5所示,图4示出了与图2所示的方法对应的训练装置100,图5示出了与图3所示的方法对应的瑕疵检测装置200。应理解,训练装置100和瑕疵检测装置200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。训练装置100和瑕疵检测装置200包括至少一个能以软件或固件的形式存储于存储器中或固化在训练装置100和瑕疵检测装置200的操作系统中的软件功能模块。具体地:

参见图4所示,训练装置100包括:第一处理模块101、第一输入模块102、判断模块103以及反向传播模块104。其中:

第一处理模块101,用于使用实施例一中提供的瑕疵检测模型对训练集图片进行处理;训练集图片包括无瑕疵训练集图片和有瑕疵训练集图片,有瑕疵训练集图片标注有瑕疵位置;

第一输入模块102,用于将瑕疵检测模型输出的各训练集图片对应的最终特征图输入预设的损失函数中;

判断模块103,用于判断损失函数的损失值是否收敛,在收敛时,结束训练;

反向传播模块104,用于在未收敛时,根据损失值进行反向传播,更新瑕疵检测模型中神经网络的参数以及权重层的矩阵值,并使得处理模块、输入模块和判断模块103依次重复执行上述过程。

在本申请实施例的一种可行实施方式中,损失函数为分类损失函数加上瑕疵位置损失函数。

在上述可行实施方式中,分类损失函数为交叉熵函数或softmax函数。在上述可行实施方式中,瑕疵位置损失函数为:l=∑n∈n(tn(p1)-in(p2))2;in表征第n张有瑕疵训练集图片,tn表征第n张有瑕疵训练集图片对应的最终特征图,tn(p1)为最终特征图对应的矩阵中最大值所在位置;in(p2)为有瑕疵训练集图片中标注的瑕疵位置;n为有瑕疵训练集图片的总数。

而参见图5所示,瑕疵检测装置200包括:第二输入模块201、第二处理模块202和分类模块203。其中:

第二输入模块201,用于将待检测图片输入至实施例一中提供的瑕疵检测模型中。

第二处理模块202,用于通过瑕疵检测模型得到最终特征图。

分类模块203,用于将最终特征图输入至预设的分类器中,得到待检测图片的分类结果。

第二处理模块202,还用于在分类结果为存在瑕疵时,输出最终特征图对应的矩阵中最大值所在位置。

需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。

实施例三:

本实施例提供了一种电子设备,参见图6所示,其包括数据输入/输出接口601、处理器602、存储器603以及通信总线604。其中:

数据输入/输出接口601用于获取训练集图片或待检测图片。

通信总线604用于实现数据输入/输出接口601、处理器602和存储器603之间的连接通信。

处理器602用于执行存储器603中存储的一个或多个程序,以实现上述实施例一中图2所示的瑕疵检测模型的训练方法,或实现实施例一中图3所示的使用瑕疵检测模型进行瑕疵检测的过程。

可以理解,图6所示的结构仅为示意,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置,例如还可以具有通信接口、显示屏等部件。

本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、u盘、sd(securedigitalmemorycard,安全数码卡)卡、mmc(multimediacard,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一或实施例二中瑕疵检测模型的训练方法,或实现实施例一或实施例二中所述的使用瑕疵检测模型进行瑕疵检测的过程。在此不再赘述。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

在本文中,多个是指两个或两个以上。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1