一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于判别学习的图像异常检测和定位方法及系统

2022-07-30 10:48:41 来源:中国专利 TAG:

1.本发明涉及计算机视觉处理技术领域,具体提供一种基于判别学习的图像异常检测和定位方法及系统。


背景技术:

2.图像异常检测和定位是对于图像中出现不正常的区域进行检测并定位,具有非常高的应用价值。异常检测的应用非常广泛,主要有医学影像异常检测、工业缺陷检测等。尤其是在工业领域,金属、纺织、玻璃和木板等工业产品的表面缺陷对产品的安全性和使用性带来不良影响。在医学领域对于医学影像中存在的异常进行检测和定位能够辅助医生更好的诊断。基于传统的人工检测和机器视觉的异常检测存在检测效率低,准确性低,检测种类少,实时性差等弊端。
3.由于异常的种类非常多见,很难找到全部的异常种类,并且对每个样本进行标注是非常昂贵的,目前基于深度学习的异常检测主要研究方法是基于无监督的。传统的无监督的异常检测方法包括重建模型。通过学习正常样本的分布,使得异常样本通过生成网络后不能很好的生成样本来判断异常。基于自监督的异常检测通过创造异常样本数据集实现有监督的异常网络的构建。但是由于自己建立的异常样本与真实样本有较大差异,构建异常样本的方法决定了异常检测的性能,具有很大的局限性。
4.最近,研究发现迁移学习开始应用到无监督异常检测,即使用预训练模型嵌入到异常检测模型中,并将网络提取到的特征进行分类取得了较好的效果。但是目前的方法都没有针对缺陷会造成梯度变化的特点进行检测,基于表示的方法用预训练的网络进行特征提取,并使用提取的特征进行异常检测。现有的方法主要集中在优化预训练的网络,以提取适应目标分布的特征。然而,这些方法并不能对特征进行有效的差异化,导致改进的效果有限。


技术实现要素:

5.本发明的技术任务是针对上述存在的问题,提供了一种基于判别学习的图像异常检测和定位方法及系统,通过基于外部数据集上训练的网络对原始图像进行特征提取,然后采用梯度偏好的方法进行特征选择,将得到的特征送入带有中心约束的判别网络中进行异常检测。
6.为实现上述目的,本发明提供了如下技术方案:
7.一种基于判别学习的图像异常检测和定位方法,所述方法的实现包括内容如下:
8.通过基于外部数据集训练的网络,对原始图像进行特征提取;
9.采用梯度偏好的方法进行特征选择;
10.将得到的特征送入带有中心约束的判别网络中进行异常检测。
11.所述方法实现步骤如下:
12.步骤1、获取待检测图像数据,并对图像进行预处理操作;
13.步骤2、将预处理后的图像输入到经过预训练的网络中;
14.步骤3、提取预训练网络中不同语义层的网络特征形成特征图;
15.步骤4、将获取到的特征图通过自适应池化拓展成相同大小,并拼接成一个三维特征图;
16.步骤5、将所述三维特征图经过梯度偏好筛选器,筛选出具有代表性的特征向量;
17.步骤6、将所述特征向量输入具有中心约束的判别学习网络,并将通过判别学习网络的特征向量存储到特征库中;
18.步骤7、将测试数据输入所述预训练网络和所述判别学习网络;
19.步骤8、计算所述测试数据得到的特征向量和特征库中向量的距离,得到每个特征向量的异常分数,进而对异常进行检测和定位。
20.所述步骤1包括以下步骤:
21.步骤11,采集图像数据,定义原始图像为x∈rc×h×w;其中c代表图像维度,h表示图像的高,w表示图像的宽;
22.步骤12,对图像数据进行尺寸缩放处理,公式如下:
[0023][0024][0025]
其中,s(x,y)表示缩放后的图像中对应的像素点,(x,y)为像素点坐标,x表示原始图像,xw和xh表示原始图像的宽和高,sw和sh表示缩放后图像的宽和高;
[0026]
步骤13,对图像数据进行归一化,公式如下:
[0027][0028]
其中,s
max
,s
min
分别表示图像中全部像素具体数值的最大值和最小值;
[0029]
步骤14,对图像数据进行标准化,公式如下:
[0030][0031]
其中mean代表各个通道的均值,std代表各个通道的标准差。
[0032]
所述步骤3包括以下步骤:
[0033]
步骤31,选择不同语义层的特征,具体表示为:
[0034][0035]
其中,xi代表数据集中的数据,代表预训练网络,l代表不同层的特征,l可以选择1、2、3、4。
[0036]
所述步骤4包括以下步骤:
[0037]
步骤41,选择1、2、3语义层输出的特征图,通过自适应池化和拼接得到最终的表达特征fi∈rc×h×w,其表达式为:
[0038][0039]
其中ap(
·
)表示为自适应池化,表示为拼接,f
i,j
表示第j层特征图。
[0040]
所述步骤5包括以下步骤:
[0041]
步骤51,构建一个梯度算子g,并将g拓展到与fi相同维度得到ge,其中
[0042][0043]
步骤52,对fi计算梯度得到梯度分数图并归一化得到si,其中:
[0044]
si=ξ(fi⊙
ge)
[0045]
步骤53,生成一个随机向量ri,对比在相同坐标下与的大小,如果小于则保存坐标,并将fi(j,k)特征向量存入特征库m中。
[0046]
所述步骤6包括以下步骤:
[0047]
步骤61:构建一个判别学习网络,从特征库中获取特征向量,输入到网络中;
[0048]
步骤62:构建loss函数定义为:
[0049][0050]
步骤63:定义网络早停止系数η,当l
center
≤η*l
center
时,停止网络迭代,并保存网络模型,将输出特征向量vf存入最终特征库mf中。
[0051]
所述步骤8包括以下步骤:
[0052]
步骤81,将测试数据输入预训练网络,并经过步骤3、4得到f
itest

[0053]
步骤82,将f
ibest
的全部特征向量输入到已经训练完成的判别学习网络中,得到特征向量v
test

[0054]
步骤83,计算每个测试图像中特征向量的异常分数,并将最大的异常分数作为整幅图的异常分数,其表达式为:
[0055][0056]aimage
=‖v
test-vf‖2[0057]
步骤84,通过双线性插值将特征图的大小调整为原始图像的分辨率,并用高斯核σ=4对其进行平滑处理。
[0058]
本发明另一方面,一种基于判别学习的图像异常检测和定位系统,所述系统包括:
[0059]
图像获取模块,用于获取不同类型的图像,包括但不限于工业图像和医学影像;
[0060]
图像预处理模块,用于对获得图像进行预处理;
[0061]
模型训练模块,用于结合特征提取网络,特征偏好选择和判别网络模型;
[0062]
模型测试模块,用于对测试集图像进行检测和定位;
[0063]
其中,所述图像预处理模块包括:
[0064]
数据缩放模块,用于对二维图像数据进行尺寸缩放处理:
[0065][0066]
[0067]
其中,s(x,y)表示缩放后的图像中对应的像素点,x表示原始图像,xw和xh表示原始图像的宽和高,sw和sh表示缩放后图像的宽和高;
[0068]
归一化模块,使图像像素值归一化到[0,1]区间:
[0069][0070]
其中,s
max
,s
min
分别表示图像中全部像素具体数值的最大值和最小值。
[0071]
标准化模块,加快模型的收敛
[0072][0073]
其中mean代表各个通道的均值,std代表各个通道的标准差。
[0074]
所述模型训练模块包括:
[0075]
特征提取模块,用于对训练数据进行特征提取,分别提取不同层的特征,并将特征通过自适应池化,将特征图大小统一成提取层中最大的尺寸。并将不同层的特征层拼接到一起。所述操作方式为:
[0076][0077]
其中ap(
·
)表示为自适应池化,表示为拼接,f
i,j
表示第j层特征图。
[0078]
梯度偏好选择模块,通过构造一个梯度算子g,g的具体形式可以表示为:
[0079][0080]
将特征提取模块得到的特征图与梯度算子g做卷积,得到一个二维梯度特征图,并将每个像素的梯度值归一化,通过random生成随机数,构建与二位梯度特征图相同大小的二维矩阵,比较相同位置两个值的大小,保留大于随机数的二位梯度特征图的位置,并将对应位置的特征图的特征向量存入特征库中;
[0081]
判别特征学习模块,用于对梯度偏好选择模块得到的特征向量进行降维,并使得特征更具有判别性。判别学习网络的一种可能实现方式,包括简单的多层感知机。构建一个两层全连接构成的神经网络,通过中心约束损失,使得输入的特征向量在降维的同时更具有判别性,使得异常的特征向量和正常的特征向量更有区别性。最后,将判别学习网络输出的特征向量存到特征库中。为了防止判别学习网络出现崩塌,需要让网络在合适的训练次数之后停止训练,由于每个数据集的收敛速度不一致,我们设置了一个早停系数,当网络损失下降到阈值,便停止训练并保存模型。
[0082]
所述模型测试模块包括:
[0083]
特征提取模块,与所述训练模块相同,将测试数据输入到预训练网络中,提取与训练模块相同层的特征层并通过自适应池化和拼接操作,组成三维特征图;
[0084]
判别特征学习模块,通过将特征图的全部特征向量输入到判别特征学习网络中,判别特征学习网络中的参数由训练模块提供,使得测试图像的特征通过判别特征学习网络,正常的特征更加接近特征库中的特征向量,异常特征更加远离特征库中的特征向量;
[0085]
异常检测和定位模块,通过计算测试图像最终获得的特征向量与特征库中的距离计算每个特征点的异常得分,计算公式为:
[0086][0087]aimage
=‖v
test-vf‖2[0088]
将最大的异常得分作为测试图像的异常分数,同时为了实现异常定位,将异常分数图通过双线性插值回原始测试图像大小,并通过高斯滤波做平滑处理,得到测试图像的异常热力图实现定位功能。
[0089]
与现有技术相比,本发明一种基于判别学习的图像异常检测和定位方法及系统具有以下突出的有益效果:
[0090]
本发明通过能够在不需要异常数据的情况下,准确检测并定位到图像中存在的异常。在解决图像异常检测和定位上表现出强大的性能和理论优势。极大的提高了检测效率和准确性。
具体实施方式
[0091]
下面将结合实施例,对本发明作进一步详细说明。
[0092]
实施例1
[0093]
一种基于判别学习的图像异常检测和定位方法,所述方法实现步骤如下:
[0094]
步骤1、获取待检测图像数据,数据可以是工业图像或者医学图像,并对图像进行预处理操作;
[0095]
步骤11,利用设备采集图像数据,定义原始图像为x∈rc×h×w;其中c代表图像维度,h表示图像的高,w表示图像的宽;
[0096]
步骤12,对图像数据进行尺寸缩放处理,公式如下:
[0097][0098][0099]
其中,s(x,y)表示缩放后的图像中对应的像素点,(x,y)为像素点坐标,x表示原始图像,xw和xh表示原始图像的宽和高,sw和sh表示缩放后图像的宽和高;
[0100]
步骤13,对图像数据进行归一化,公式如下:
[0101][0102]
其中,s
max
,s
min
分别表示图像中全部像素具体数值的最大值和最小值;
[0103]
步骤14,对图像数据进行标准化,公式如下:
[0104][0105]
其中mean代表各个通道的均值,std代表各个通道的标准差。
[0106]
步骤2、将预处理后的图像输入到经过预训练的网络中;
[0107]
步骤21,选择预训练网络,选择在imagenet数据集上进行预训练的网络,骨干网络是resnet类型网络和efficientnet类型网络;
[0108]
步骤22,将经过预处理的图像输入到预训练网络中,并在网络中设置中心裁剪,将
图像裁剪成统一大小。
[0109]
步骤3、提取预训练网络中不同语义层的网络特征形成特征图;
[0110]
步骤31,选择不同语义层的特征,具体表示为:
[0111][0112]
其中,xi代表数据集中的数据,代表预训练网络,以resnet18为例,l代表不同层的特征,l可以选择1、2、3、4。
[0113]
步骤4、将获取到的特征图通过自适应池化拓展成相同大小,并拼接成一个三维特征图;
[0114]
步骤41,选择1、2、3语义层输出的特征图,通过自适应池化和拼接得到最终的表达特征fi∈rc×h×w,其表达式为:
[0115][0116]
其中ap(
·
)表示为自适应池化,表示为拼接,f
i,j
表示第j层特征图。
[0117]
步骤5、将所述三维特征图经过梯度偏好筛选器,筛选出具有代表性的特征向量;
[0118]
步骤51,构建一个梯度算子g,并将g拓展到与fi相同维度得到ge,其中
[0119][0120]
步骤52,对fi计算梯度得到梯度分数图并归一化得到si,其中:
[0121]
si=ξ(fi⊙
ge)
[0122]
步骤53,生成一个随机向量ri,对比在相同坐标下与的大小,如果小于则保存坐标,并将fi(j,k)特征向量存入特征库m中。
[0123]
步骤6、将所述特征向量输入具有中心约束的判别学习网络,并将通过判别学习网络的特征向量存储到特征库中;
[0124]
步骤61:构建一个判别学习网络,从特征库中获取特征向量,输入到网络中;
[0125]
步骤62:构建loss函数定义为:
[0126][0127]
步骤63:定义网络早停止系数η,当l
center
≤η*l
center
时,停止网络迭代,并保存网络模型,将输出特征向量vf存入最终特征库mf中。
[0128]
步骤7、将测试数据输入所述预训练网络和所述判别学习网络;
[0129]
步骤8、计算所述测试数据得到的特征向量和特征库中向量的距离,得到每个特征向量的异常分数,进而对异常进行检测和定位。
[0130]
步骤81,将测试数据输入预训练网络,并经过步骤3、4得到f
itest

[0131]
步骤82,将f
itest
的全部特征向量输入到已经训练完成的判别学习网络中,得到特征向量v
test

[0132]
步骤83,计算每个测试图像中特征向量的异常分数,并将最大的异常分数作为整幅图的异常分数,其表达式为:
[0133][0134]aimage
=‖v
test-vf‖2[0135]
步骤84,通过双线性插值将特征图的大小调整为原始图像的分辨率,并用高斯核σ=4对其进行平滑处理。
[0136]
实施例2
[0137]
一种基于判别学习的图像异常检测和定位系统,所述系统包括:
[0138]
图像获取模块,用于获取不同类型的图像,包括但不限于工业图像和医学影像;
[0139]
图像预处理模块,用于对获得图像进行预处理;
[0140]
模型训练模块,用于结合特征提取网络,特征偏好选择和判别网络模型;
[0141]
模型测试模块,用于对测试集图像进行检测和定位;
[0142]
其中,所述图像预处理模块包括:
[0143]
数据缩放模块,用于对二维图像数据进行尺寸缩放处理:
[0144][0145][0146]
其中,s(x,y)表示缩放后的图像中对应的像素点,x表示原始图像,xw和xh表示原始图像的宽和高,sw和sh表示缩放后图像的宽和高;
[0147]
归一化模块,使图像像素值归一化到[0,1]区间。
[0148]
标准化模块,加快模型的收敛
[0149][0150]
其中mean代表各个通道的均值,std代表各个通道的标准差。
[0151]
所述模型训练模块包括:
[0152]
特征提取模块,用于对训练数据进行特征提取,分别提取不同层的特征,并将特征通过自适应池化,将特征图大小统一成提取层中最大的尺寸。并将不同层的特征层拼接到一起。所述操作方式为:
[0153][0154]
其中ap(
·
)表示为自适应池化,表示为拼接,f
i,j
表示第j层特征图。
[0155]
梯度偏好选择模块,通过构造一个梯度算子g,g的具体形式可以表示为:
[0156][0157]
将特征提取模块得到的特征图与梯度算子g做卷积,得到一个二维梯度特征图,并将每个像素的梯度值归一化,通过random生成随机数,构建与二位梯度特征图相同大小的二维矩阵,比较相同位置两个值的大小,保留大于随机数的二位梯度特征图的位置,并将对应位置的特征图的特征向量存入特征库中;
[0158]
判别特征学习模块,用于对梯度偏好选择模块得到的特征向量进行降维,并使得
特征更具有判别性。判别学习网络的一种可能实现方式,包括简单的多层感知机。构建一个两层全连接构成的神经网络,通过中心约束损失,使得输入的特征向量在降维的同时更具有判别性,使得异常的特征向量和正常的特征向量更有区别性。最后,将判别学习网络输出的特征向量存到特征库中。为了防止判别学习网络出现崩塌,需要让网络在合适的训练次数之后停止训练,由于每个数据集的收敛速度不一致,我们设置了一个早停系数,当网络损失下降到阈值,便停止训练并保存模型。
[0159]
所述模型测试模块包括:
[0160]
特征提取模块,与所述训练模块相同,将测试数据输入到预训练网络中,提取与训练模块相同层的特征层并通过自适应池化和拼接操作,组成三维特征图;
[0161]
判别特征学习模块,通过将特征图的全部特征向量输入到判别特征学习网络中,判别特征学习网络中的参数由训练模块提供,使得测试图像的特征通过判别特征学习网络,正常的特征更加接近特征库中的特征向量,异常特征更加远离特征库中的特征向量;
[0162]
异常检测和定位模块,通过计算测试图像最终获得的特征向量与特征库中的距离计算每个特征点的异常得分,计算公式为:
[0163][0164]aimage
=‖v
test-vf‖2[0165]
将最大的异常得分作为测试图像的异常分数,同时为了实现异常定位,将异常分数图通过双线性插值回原始测试图像大小,并通过高斯滤波做平滑处理,得到测试图像的异常热力图实现定位功能。
[0166]
以上所述的实施例,只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献