一种异常检测方法转让专利
申请号 : CN202210069649.3
文献号 : CN114092478B
文献日 : 2022-04-29
发明人 : 孙涛 , 叶松 , 刘海峰 , 王子磊
申请人 : 合肥中科类脑智能技术有限公司
摘要 :
权利要求 :
1.一种异常检测方法,其特征在于,所述方法包括如下步骤:步骤一:在大量正常样本图像上收集待检测部件的图像块;
步骤二:使用特征提取器对步骤一所得的待检测部件正常样本的图像块进行特征提取,收集N个正常样本特征向量构成正常样本初始特征向量集;
步骤三:使用贪心算法对正常样本初始特征向量集进行降采样,将N个初始特征向量缩减为L个支持特征向量,构成支持特征向量集;
步骤四:判断待检测图像是否异常:首先,收集待检测部件的图像块,使用特征提取器对待测图像进行特征提取,得到不同图像块的特征;然后,计算每个图像块的特征与支持向量集中所有特征的最小距离;接着找到所有图像块当中与支持向量集最小距离最大的那个图像块,该图像块与支持向量集的最小距离即为整张图像的异常值,异常值超过某一阈值Y1则判定为异常,
步骤三所述的降采样具体过程如下:步骤3.1:随机选取正常样本初始特征向量集中的一个特征向量作为第1个支持向量加入支持向量集;步骤3.2:计算其他特征向量与第1个支持向量的距离,选择距离第一个支持向量最远的一个特征向量作为第二个支持向量加入支持向量集;步骤3.3:剩下的特征向量,计算每一个特征向量与当前支持向量集中每个支持向量的最小距离,选择最小距离最大的那个特征向量作为支持向量加入支持向量集;步骤
3.4:不断重复步骤3.3,直至获取L个特征向量。
2.根据权利要求1所述的异常检测方法,其特征在于,所述收集待检测部件的图像块的步骤使用的是关键点定位方法,所述关键点定位方法步骤如下:首先,在大量正常样本中标注目标部件的关键点位置,构建关键点检测训练集;其次,用关键点检测训练集训练关键点检测模型;最后,用训练好的关键点检测模型定位待检测部件关键点的坐标。
3.根据权利要求2所述的异常检测方法,其特征在于,所述关键点定位方法以待检测部件的中心位置设定关键点。
4.根据权利要求1所述的异常检测方法,其特征在于,该方法进一步包括对所述支持向量集进行动态更新的步骤,所述支持向量集动态更新的步骤具体如下:首先,对于新进来的正常样本的特征向量,计算其与当前所有支持向量的最小距离d是否大于某一阈值Z,如是,则将新的特征向量加入支持向量集,如否,则新特征向量不加入支持向量集,不断更新此过程,直到支持向量集中的支持向量个数达到M0个,执行贪心算法进行降采样,把支持向量的个数缩减为L个,其中M0大于L。
5.根据权利要求4所述的异常检测方法,其特征在于,所述阈值Z为1/4D‑1/3D范围内的任一值,D为当前支持特征向量集中所有支持向量之间的最小距离。
6.根据权利要求5所述的异常检测方法,其特征在于,所述阈值Z为 1/4D,D为当前支持特征向量集中所有支持向量之间的最小距离。
7.根据权利要求1或2或4所述的异常检测方法,其特征在于,包括对所述异常值进行非线性拉伸的步骤,若权利要求1所述异常值用s*表示,进行非线性拉伸后的异常值以s表示,进行非线性拉伸后的异常值s超过某一阈值Y2则判定为异常;s可用公式表达为:其中,s´为(0‑1)*D范围内任一值,D为支持向量集M中所有特征向量之间的最小距离。
8.根据权利要求7所述的异常检测方法,其特征在于,所述s´为1/4D‑1/3D区间的某一值。
9.根据权利要求8所述的异常检测方法,其特征在于,所述s´=1/4D。
10.根据权利要求1所述的异常检测方法,其特征在于,其中N为2000‑50000中的任一值。
11.根据权利要求10所述的异常检测方法,其特征在于,其中N为5000‑30000范围内的任一值。
12.根据权利要求11所述的异常检测方法,其特征在于,其中N为8000‑20000范围内的任一值。
13.根据权利要求12所述的异常检测方法,其特征在于,其中N为1万。
14.根据权利要求1所述的异常检测方法,其特征在于,L为50‑500范围内的任一值。
15.根据权利要求14所述的异常检测方法,其特征在于,其中L为50‑300范围内的任一值。
16.根据权利要求15所述的异常检测方法,其特征在于,其中L为100。
17.根据权利要求4所述的异常检测方法,其特征在于,所述M0为100‑500范围内的任一值。
18.根据权利要求17所述的异常检测方法,其特征在于,所述M0为100‑300范围内的任一值。
19.根据权利要求18所述的异常检测方法,其特征在于,所述M0=200。
20.根据权利要求 1所述的异常检测方法,其特征在于,所述阈值Y1为0.8‑0.9范围内的任一值。
21.根据权利要求 7所述的异常检测方法,其特征在于,所述阈值Y2为0.8‑0.9范围内的任一值。
22.根据权利要求 20所述的异常检测方法,其特征在于,所述阈值Y1为0.8、0.85或0.9。
23.根据权利要求 21所述的异常检测方法,其特征在于,所述阈值Y2为0.8、0.85或0.9。
说明书 :
一种异常检测方法
技术领域
背景技术
头,利用计算机视觉的方法去自动识别产品的异常情况。
算法解决实际生产中遇到的一些问题,其中流水线上产品的异常检测就是一个典型应用。
这些异常样本进行收集。本发明用科学的方法归纳总结这些正常样本,当流水线上存在不
正常的产品时,算法可以及时发现并发出报警。
杆件部分进行判别,判断杆件是否出现异常。利用目标检测算法对夹钳整图中的弹簧部分
进行定位并截取,如果没有截取到弹簧部件,可判断为弹簧丢失,否则将截取获得的弹簧图
像与对应的正常弹簧图像进行高度对比,判断弹簧是否部分缺失;如果弹簧不存在部分缺
失异常,将弹簧图像送入裂纹判断网络,判断是否存在裂纹。
比较困难的。为了排除背景干扰,现有方案往往采用目标检测的方法,先检测到需要检查部
件的包围框,再对该包围框中的图像区域进行异常检测。算法的目的是判断待检测部件是
否异常,然而用目标检测的方案寻找待检测部件往往受到部件外观变化的影响(如部件零
件丢失、外观破损、形变较大等),这样一来可能造成部件检测位置不准甚至丢失。不仅如
此,一幅图像中往往存在很多相同的部件,这些部件外观基本一致,在实际应用中我们可能
只需要检测其中某些部件,这样一来就无法区分哪些是需要做异常检测的部件。
拍摄图像进行配准,接下来对配准后的两个图像分别继续区域分割,提取每一区域图像的
若干特征,将若干特征进行融合,最后计算两幅图像对应特征的差异度,将差异度与设定阈
值进行比较,判断当前巡检拍摄图像是否为异常图像。该现有技术是利用当前拍摄的图像
和历史拍摄的一幅图像对比来进行异常检测。但是,对于该现有技术,由于历史拍摄的那一
张图像很难代表整个部件所有的正常情况,当前拍摄的图像有时会与历史拍摄的图像有一
定区别,但也属于正常样本的范围,这样通过算法计算很有可能造成误判。
域,生成样本工件的图像训练集;将所述图像训练集输入到图像分割神经网络进行训练,生
成工件磨损检测模型;通过将待检测工件的图像输入所述模型进行异常检测。
分困难的,有的算法会人工构建各种异常样本连同大量正常样本训练网络模型(神经网络
分类模型需要大量正常样本和异常样本训练,从而区分待检测的样本是否异常)。另外,现
有算法一旦收集完正负样本,异常检测模型一旦训练好之后,确定训练集进行模型训练后
神经网络的参数就固定了,对于新出现的正常样本,算法模型不能很好的实时兼容,也可能
会判定为异常。最后,对于异常判断的分值定义也比较固定,没有很好考虑到新出现的正常
样本的情况。
发明内容
外观和拍摄角度如何变化,都可以很好的找到部件位置,解决了目标检测的方法存在的受
到部件外观变化的影响导致的不能准确定位需要做异常检测的部件问题。
常。
调整,从算法模型可以自适应更新评价模型中的参数以及判断阈值,然后逐渐兼容它们,从
而可以很好的适应新的正常样本,免去了重新训练模型的步骤。
附图说明
具体实施方式
与那些公知技术相同的其他技术组合实施。图1A、图1B、图2是本发明的算法流程示例图。具
体步骤详述如下:
点检测训练集。用训练集对关键点检测模型进行训练。训练好之后在检测样本上便可得到
待检测部件关键点的坐标,由此得出部件的位置(参考附图4)。附图4所示产品为关键点定
位示意图,其中,point1‑point6分别为各个部件的关键点,以所示各部件关键点位置
point1‑point6为中心可以得出该部件所在的图像块(参考图5),可在大量正常样本图像上
收集各种部件所在的图像块。
器。本发明事先把ResNet在大规模图像数据集ImageNet上进行训练。由于ImageNet数据量
巨大,所以ResNet可以学习到各种各样丰富的特征。本发明把ResNet网络模型结构中第二
层和第三层输出的特征用来构建正常样本的特征集。其中第二层在网络结构中的位置靠
前,代表图像低级特征(如边角、颜色、纹理信息等);第三层在网络结构中的位置靠后,代表
图像高级特征(如形状、部件信息等),结合低级特征和高级语义信息可以提高最终结果的
准确性。
为高,c为特征的通道数。那么我们把1*1*c维的向量作为一个正常特征,一张部件图可以得
到w*h个正常特征。这里每个位置的1*1*c维向量都可以分别映射到原部件图当中,代表原
部件图对应图像块的特征向量。然后我们不断提取正常部件图的特征,直到收集了N个正常
特征作为初始特征向量集,其中N选自2000‑50000中的任一值,优选地N选自5000‑30000中
的任一值,更优选地N选自8000‑20000中的任一值,最优选地N=1万。优选数值范围可以在保
证准确度的情况下提升算法运行速度。
可以采用贪心算法进行降采样:具体过程如下:(1)随机选取N个正常特征中的一个作为第1
个支持向量加入支持向量集;(2)计算其他特征向量中与第1个支持向量的距离,选择距离
第一个支持向量最远的一个作为第二个支持向量入支持向量集;(3)剩下的特征向量,计算
每一个特征向量与当前支持向量集中每个支持向量的最小距离,选择最小距离最大的那个
特征作为支持向量加入支持向量集。然后不断重复步骤(3),直到获取L个支持特征向量,其
中L选自 50‑500中的任一值,优选地,L选自50‑300中的任一值,更优选地,L=100,优选数值
范围可以在保证准确度的情况下提升算法运行速度。降采样效果如图3所示,其中圆形表示
初始特征向量集中的特征向量,三角形表示采用贪心算法后的支持向量:
所有支持向量的最小距离为d,判断d是否大于某一阈值,如是,则将新的特征向量加入支持
向量集,如否,则新特征向量不加入支持向量集,其中,所述阈值优选1/4D‑1/3D,更优选1/
4D,使用优选值可以更好的更新支持向量集中的向量。不断更新此过程,直到支持向量集中
的支持向量个数达到M0个,其中M0选自 100‑500中的任一个,优选地M0选自 100‑300中的任
一个,更优选地M0=200 个,优选数值范围可以在保证准确度的情况下提升算法运行速度。
继续执行步骤四中的特征向量集降采样的贪心算法,把支持向量的个数缩减为L个。
对于测试图像X ,可以把其送入ResNet得到不同图像块的特征(维度1*1*c),然后每个图
像块特征都需要计算与支持向量集中所有特征的最小距离,接着找到所有图像块当中与支
持向量集最小距离为最大的那个图像块,该图像块与支持向量集的最小距离即为整张图像
的异常值s*,且异常值超过阈值则判定为异常,其中阈值为0.8‑0.9,优选0.8、0.85或0.9。
test,* test
量集M中的某一个。m 为P(x )中距离M最小距离值最大的那一个图像块特征向量,m*
test,*
为支持向量集中距离m 最近的那个支持向量。min代表寻找最小,max代表寻找最大,下
标代表寻找范围,后面的项代表值。||...||代表计算向量距离。
1/3D,最优选s´=1/4D 。在这里本发明对距离s*进行非线性拉伸,如果候选图像块特征
test,* * *
m 与最近的支持向量m的距离s相对于s´较小时,我们认为该图像块出现异常的概率较
test
小。接着对s*和 s´的值进行归一化。最终,一幅测试图像x 异常值s用公式表达为 :
出的,由此实现对异常值s*的非线性拉伸。
的异常值会更加鲁棒。异常值越高产品异常概率越大,该公式就是计算最终异常值的,异常
值超过阈值则判定为异常。其中阈值为0.8‑0.9,优选0.8、0.85或0.9。
定情况下现有方法会有不准确的情况,本发明将关键点检测方法引入异常检测领域,代替
目标检测的方法,不管目标部件外观和拍摄角度如何变化,都可以很好的找到部件位置。
常样本,免去了重新训练模型的步骤。
构见附图6。
ImageNet包含2万多个类别;一个典型的类别如“猫”和“狗”,包含数百个图像。
比较准确的定位,而不是单独依赖目标外形来定位的算法。