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

一种基于局部离群因子的工业图像异常检测与定位方法及系统

2022-08-21 19:18:51 来源:中国专利 TAG:


1.本发明属于工业图像异常检测及定位技术领域,具体涉及一种基于局部离群因子的工业图像异常检测与定位方法及系统。


背景技术:

2.人类非常善于识别一幅图像是否与他们之前观察到的相似,或者它是否是异常的,这项任务被称为异常检测,并具有广泛的应用,其中包括工业图像异常检测。然而,异常现象在生产线上相对较难以被发现,从而导致人为检测比较困难。因此,异常检测自动化有助于减少操作员的工作难度,并实现持续的质量控制。


技术实现要素:

3.为解决现有工业图像异常检测与定位问题,本发明提出了一种基于局部离群因子(local outiler factor,lof)的工业图像异常检测与定位方法及系统,本发明采用预训练的宽度残差网提取图像特征,然后使用lof算法计算异常得分,进行异常检测与定位。
4.为实现上述目的,本发明采取如下技术方案:
5.一种基于局部离群因子的工业图像异常检测与定位方法,包括训练阶段,训练阶段具体如下:
6.步骤(1).获取训练数据集;
7.步骤(2).特征提取;
8.步骤(3).采用局部离群因子算法进行异常检测与定位。
9.优选的,步骤(1).获取训练数据集,具体是:
10.训练数据集由正常图片构成,将训练集图像大小调整为256
×
256,并将其居中裁剪为224
×
224。
11.优选的,步骤(2).特征提取,具体是:
12.预训练获得resnet模型作为特征提取器f,记特征提取器前三层为f3。对于给定的图像xi,提取的特征fi:fi=f3(xi)。训练阶段,提取并存储所有训练图像的特征。测试时,只提取目标图像的特征。
13.优选的,步骤(3).用局部离群因子算法进行异常检测与定位,具体是:
14.本步骤分为两部分,一部分是以resnet网络的第三层输出特征fi,作为lof算法的输入进行训练。另一部分先将resnet网络的第一、第二和第三层输出特征进行融合并降维,融合的特征图尺寸为1792
×
56
×
56,降维后特征图上每一个超像素维度大小为550
×
1,最后以每个超像素作为lof算法的输入进行训练。
15.优选的,异常检测过程具体如下:
16.以步骤(2)特征提取器f的第三层输出特征fi,作为lof算法的输入进行训练。将每一个fi,看作一个数据点,计算它的第k距离,然后找到该数据点的第k距离邻域。最后,计算
每个数据点的局部可达密度,算出局部离群因子,作为异常得分。具体计算方式如下:
17.计算数据点fi的第k距离,即离fi第k远的点到fi的欧氏距离,记为dk(fi)。
18.找到fi的第k距离邻域nk(fi)即fi的第k距离内的所有点,包括第k距离。|nk(fi)|≥k,|
·
|表示集合中元素的个数,0<k≤l,l为样本总数。
19.计算每个数据点的局部可达密度:
[0020][0021]
其中,reach_distk(fi,t)为fi和nk(fi)内某一点t的可达距离,可达距离的计算公式为:reach_distk(fi,t)=max{dk(fi),d(fi,t)};d(
·
,
·
)表示欧氏距离,t为nk(fi)内除fi外的某一点。
[0022]
计算fi局部离群因子将其作为异常得分:
[0023][0024]
lofk(fi)表示点fi的邻域点nk(fi)的局部可达密度与点fi的局部可达密度之比的平均数。测试时,以局部离群因子作为被测样本的异常分数,设阈值为th(0<th<1),大于阈值th的判为异常样本,小于阈值th的判为正常样本。
[0025]
优选的,异常定位过程具体如下:
[0026]
选取步骤(2)中特征提取器f的第一、二、三层输出特征融合得到融合特征其中n为输入训练图像数,cs表示第一、二、三层输出通道数之和,h,w表示最大输出特征图的分辨率。首先将f的第一、二、三层输出特征图每个通道都放大为分辨率为h
×
w的特征图,然后将来自不同层的输出特征图前后连接起来,得到包含不同语义层次和分辨率信息的融合特征图,实现对不同粒度和全局上下文编码。
[0027]
融合特征图可能携带冗余信息,为了降低模型的计算复杂度,减少内存占用,本发明中采用随机降维的方式降低融合特征图p的维度,从p的通道维数cs(cs=1792)中随机选取550维。以超像素p
ij
∈pn×
550
×h×w((i,j)∈[1,w]
×
[1,h])作为lof算法的输入进行训练,计算每个超像素的第k距离dk(p
ij
),然后找到它的第k距离邻域。最后,按式(1)计算每个超像素的局部可达密度,按式(2)算出异常得分。
[0028]
优选的,本发明还包括步骤(4)测试阶段,具体是:
[0029]
步骤(ⅰ).将测试图像大小调整为256
×
256,并将其居中裁剪为224
×
224。
[0030]
步骤(ⅱ).使用训练阶段步骤(2)中的预训练获得的resnet特征提取器f,提取测试图像的特征。对于异常检测任务,按式(2)计算测试图像的异常得分,大于阈值th的判为异常图像,小于等于阈值th的判为正常图像。
[0031]
对于异常定位任务,使用步骤(2)中特征提取器f提取测试图像的特征,将第一、第二和第三层输出特征融合并降维为550维,计算融合后每个超像素的异常得分,得到每张特征图的像素级异常得分图m。由于m的分辨率小于被测图像分辨率的,对m采用双线性插值进行上采样到被测图像尺寸大小,并使用高斯滤波器平滑结果。最后,计算m和测试图像真值图的pr曲线,以pr曲线的平衡点作为最佳阈值th;将m中小于等于th的值判为0,大于th的值
判为1,1表示异常像素0表示正常像素,得到异常定位掩码图m';将m'中为0的位置在测试图像中置为0,得到图像异常像素定位结果图。
[0032]
本发明还公开了一种基于局部离群因子的工业图像异常检测与定位系统,包括如下模块:
[0033]
获取模块,用于获取训练数据集;
[0034]
提取模块:用于提取特征;
[0035]
异常检测与定位模块:采用局部离群因子算法进行异常检测与定位。
[0036]
本发明关注于图像的异常检测,特别是在工业图像的异常定位。本发明含有一种高效实用的基于局部离群因子的工业图像异常检测与定位方法及系统,采用预训练获得的resnet网络,提取图像特征。本发明使用特征提取网络的第三层输出特征,作为局部离群因子算法的输入计算测试图像的异常得分,实现异常检测。它将来自resnet不同层输出特征进行融合,利用局部离群因子算法计算融合特征图每个超像素的异常得分,实现异常定位。本发明将深度学习和传统方法相结合提出了一种无监督的异常检测与定位技术方案,具有较高的异常检测准确性和较精准的异常定位性能。
附图说明
[0037]
图1是基于局部异常因子的工业图像异常检测模型图;
[0038]
图2是基于局部异常因子的工业图像异常定位模型图;
[0039]
图3是特征图融合示例图;
[0040]
图4是本发明一种基于局部离群因子的工业图像异常检测与定位系统框图。
具体实施方式
[0041]
下面结合实例对本发明加以详细说明,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知的功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
[0042]
实施例1
[0043]
如图1-3所示,本实施例一种基于局部离群因子的工业图像异常检测与定位方法,该方法包括训练阶段和测试阶段。
[0044]
训练阶段具体如下:
[0045]
步骤(1).获取训练数据集。
[0046]
训练数据集由mvtec ad(https://www.mvtec.com/company/research/datasets/mvtec-ad/)数据集中正常图片构成,将训练集图像大小调整为256
×
256,并将其居中裁剪为224
×
224。
[0047]
步骤(2).特征提取。
[0048]
本实施例使用在imagenet数据集上预训练获得的resnet模型作为特征提取器f,记特征提取器前三层为f3。对于给定的图像xi,提取的特征fi:fi=f3(xi)。训练阶段,提取并存储所有训练图像的特征。测试时,只提取目标图像的特征。
[0049]
步骤(3).用局部离群因子算法进行异常检测与定位。
[0050]
本步骤分为两部分,一部分是以resnet网络的第三层输出特征fi,作为lof算法的
输入进行训练。另一部分先将resnet网络的第一、第二和第三层输出特征进行融合并降维,融合的特征图尺寸为1792
×
56
×
56,降维后特征图上每一个超像素维度大小为550
×
1,最后以每个超像素作为lof算法的输入进行训练。
[0051]
异常检测过程如下:
[0052]
以步骤(2)特征提取器f的第三层输出特征fi,作为lof算法的输入进行训练。将每一个fi,看作一个数据点,计算它的第k距离,然后找到该数据点的第k距离邻域。最后,计算每个数据点的局部可达密度,算出局部离群因子,作为异常得分。具体计算方式如下:
[0053]
计算数据点fi的第k距离,即离fi第k远的点到fi的欧氏距离,记为dk(fi)。
[0054]
找到fi的第k距离邻域nk(fi)即fi的第k距离内的所有点,包括第k距离。|nk(fi)|≥k,|
·
|表示集合中元素的个数,本发明中k的取值为20。
[0055]
计算每个数据点的局部可达密度:
[0056][0057]
其中,reach_distk(fi,t)为fi和nk(fi)内某一点t的可达距离,可达距离的计算公式为:reach_distk(fi,t)=max{dk(fi),d(fi,t)};d(
·
,
·
)表示欧氏距离,t为nk(fi)内除fi外的某一点。
[0058]
计算fi的局部离群因子将其作为异常得分:
[0059][0060]
lofk(fi)表示点fi的邻域点nk(fi)的局部可达密度与点fi的局部可达密度之比的平均数。测试时,以局部离群因子作为被测样本的异常分数,阈值th取值为0.5,大于阈值th的判为异常样本,小于阈值th的判为正常样本。
[0061]
异常定位过程如下:
[0062]
选取步骤(2)中特征提取器f的第一、二、三层输出特征融合得到融合特征图其中n为输入训练图像数,cs表示第一、二、三层输出通道数之和,h,w表示最大输出特征图的分辨率。首先将f的第一、二、三层输出特征图每个通道都放大为分辨率为h
×
w的特征图,然后将来自不同层的输出特征图前后连接起来,得到包含不同语义层次和分辨率信息的融合特征图,实现对不同粒度和全局上下文编码。
[0063]
融合特征图可能携带冗余信息,为了降低模型的计算复杂度,减少内存占用,本发明中采用随机降维的方式降低融合特征图p的维度,从p的通道维数cs(cs=1792)中随机选取550维。以超像素p
ij
∈pn×
550
×h×w((i,j)∈[1,w]
×
[1,h])作为lof算法的输入进行训练,计算每个超像素的第k距离dk(p
ij
),然后找到它的第k距离邻域。最后,按式(3)计算每个超像素的局部可达密度,按式(4)算出异常得分。
[0064]
测试阶段具体过程如下:
[0065]
步骤(ⅰ).测试数据集由mvtec ad数据集中的测试图片构成,将测试图像大小调整为256
×
256,并将其居中裁剪为224
×
224。
[0066]
步骤(ⅱ).使用训练阶段步骤(2)中的预训练获得的resnet特征提取器f,提取测
试图像的特征。对于异常检测任务,按式(2)计算测试图像的异常得分,大于阈值th的判为异常图像,小于等于阈值th的判为正常图像。
[0067]
对于异常定位任务,使用步骤(2)中特征提取器f提取测试图像的特征,将第一、第二和第三层输出特征融合并降维为550维,计算融合后每个超像素异常得分,得到每张特征图的像素级异常得分图m。由于m的分辨率小于被测图像分辨率的,对m采用双线性插值进行上采样到被测图像尺寸大小,并使用高斯滤波器平滑结果。最后,计算m和测试图像真值图的pr曲线,以pr曲线的平衡点作为最佳阈值th;将m中小于等于th的值判为0,大于th的值判为1,1表示异常像素0表示正常像素,得到异常定位掩码图m';将m'中为0的位置在测试图像中置为0,得到图像异常像素定位结果图。
[0068]
实施例2
[0069]
如图4所示,本实施例一种基于局部离群因子的工业图像异常检测与定位系统,其包括获取模块、提取模块、异常检测与定位模块以及测试模块,各模块具体介绍如下:
[0070]
获取模块用于获取训练数据集。
[0071]
训练数据集由mvtec ad(https://www.mvtec.com/company/research/datasets/mvtec-ad/)数据集中正常图片构成,将训练集图像大小调整为256
×
256,并将其居中裁剪为224
×
224。
[0072]
提取模块用于特征提取。
[0073]
本实施例使用在imagenet数据集上预训练获得的resnet模型作为特征提取器f,记特征提取器前三层为f3。对于给定的图像xi,提取的特征fi:fi=f3(xi)。训练时,提取并存储所有训练图像的特征。测试时,只提取目标图像的特征。
[0074]
异常检测与定位模块采用局部离群因子算法进行异常检测与定位。
[0075]
本模块分为两部分,一部分是以resnet网络的第三层输出特征fi,作为lof算法的输入进行训练。另一部分先将resnet网络的第一、第二和第三层输出特征进行融合并降维,融合的特征图尺寸为1792
×
56
×
56,降维后特征图上每一个超像素维度大小为550
×
1,最后以每个超像素作为lof算法的输入进行训练。
[0076]
异常检测过程如下:
[0077]
以特征提取器f的第三层输出特征fi,作为lof算法的输入进行训练。将每一个fi,看作一个数据点,计算它的第k距离,然后找到该数据点的第k距离邻域。最后,计算每个数据点的局部可达密度,算出局部离群因子,作为异常得分。具体计算方式如下:
[0078]
计算数据点fi的第k距离,即离fi第k远的点到fi的欧氏距离,记为dk(fi)。
[0079]
找到fi的第k距离邻域nk(fi)即fi的第k距离内的所有点,包括第k距离。|nk(fi)|≥k,|
·
|表示集合中元素的个数,本发明中k的取值为20。
[0080]
计算每个数据点的局部可达密度:
[0081][0082]
其中,reach_distk(fi,t)为fi和nk(fi)内某一点t的可达距离,可达距离的计算公式为:reach_distk(fi,t)=max{dk(fi),d(fi,t)};d(
·
,
·
)表示欧氏距离,t为nk(fi)内除fi外的某一点。
[0083]
计算fi的局部离群因子将其作为异常得分:
[0084][0085]
lofk(fi)表示点fi的邻域点nk(fi)的局部可达密度与点fi的局部可达密度之比的平均数。测试时,以局部离群因子作为被测样本的异常分数,阈值th取值为0.5,大于阈值th的判为异常样本,小于阈值th的判为正常样本。
[0086]
异常定位过程如下:
[0087]
选取特征提取器f的第一、二、三层输出特征融合得到融合特征图其中n为输入训练图像数,cs表示第一、二、三层输出通道数之和,h,w表示最大输出特征图的分辨率。首先将f的第一、二、三层输出特征图每个通道都放大为分辨率为h
×
w的特征图,然后将来自不同层的输出特征图前后连接起来,得到包含不同语义层次和分辨率信息的融合特征图,实现对不同粒度和全局上下文编码。
[0088]
融合特征图可能携带冗余信息,为了降低模型的计算复杂度,减少内存占用,本发明中采用随机降维的方式降低融合特征图p的维度,从p的通道维数cs(cs=1792)中随机选取550维。以超像素p
ij
∈pn×
550
×h×w((i,j)∈[1,w]
×
[1,h])作为lof算法的输入进行训练,计算每个超像素的第k距离dk(p
ij
),然后找到它的第k距离邻域。最后,按式(3)计算每个超像素的局部可达密度,按式(4)算出异常得分。
[0089]
测试模块具体如下:
[0090]
测试数据集由mvtec ad数据集中的测试图片构成,将测试图像大小调整为256
×
256,并将其居中裁剪为224
×
224。
[0091]
使用预训练获得的resnet特征提取器f,提取测试图像的特征。对于异常检测任务,按式(2)计算测试图像的异常得分,大于阈值th的判为异常图像,小于等于阈值th的判为正常图像。
[0092]
对于异常定位任务,使用特征提取器f提取测试图像的特征,将第一、第二和第三层输出特征融合并降维为550维,计算融合后每个超像素异常得分,得到每张特征图的像素级异常得分图m。由于m的分辨率小于被测图像分辨率的,对m采用双线性插值进行上采样到被测图像尺寸大小,并使用高斯滤波器平滑结果。最后,计算m和测试图像真值图的pr曲线,以pr曲线的平衡点作为最佳阈值th;将m中小于等于th的值判为0,大于th的值判为1,1表示异常像素0表示正常像素,得到异常定位掩码图m';将m'中为0的位置在测试图像中置为0,得到图像异常像素定位结果图。
[0093]
本发明利用预训练的残差网络的第三层输出作为图像级特征,使用局部离群因子计算被测图像的异常分数,大于阈值的判为异常,反之为正常,实现异常检测。为了准确地定位出图像中的异常像素,将残差网络的前三层输出特征融合获得特征图,计算特征图中每个超像素的异常分数,得到像素级的异常得分图,对异常得分图上采样,输出异常像素掩码图,由掩码图得到图像异常像素定位结果图。
[0094]
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替
代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
再多了解一些

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

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

相关文献