CN115018787A - 一种基于梯度增强的异常检测方法和系统 - Google Patents
一种基于梯度增强的异常检测方法和系统 Download PDFInfo
- Publication number
- CN115018787A CN115018787A CN202210623637.0A CN202210623637A CN115018787A CN 115018787 A CN115018787 A CN 115018787A CN 202210623637 A CN202210623637 A CN 202210623637A CN 115018787 A CN115018787 A CN 115018787A
- Authority
- CN
- China
- Prior art keywords
- network
- image
- apprentice
- sample image
- feature vector
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 68
- 238000010586 diagram Methods 0.000 claims abstract description 169
- 230000002159 abnormal effect Effects 0.000 claims abstract description 119
- 238000000034 method Methods 0.000 claims abstract description 51
- 238000002372 labelling Methods 0.000 claims abstract description 10
- 239000013598 vector Substances 0.000 claims description 118
- 230000011218 segmentation Effects 0.000 claims description 38
- 230000000903 blocking effect Effects 0.000 claims description 34
- 230000005856 abnormality Effects 0.000 claims description 28
- 238000004364 calculation method Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 77
- 238000013528 artificial neural network Methods 0.000 description 26
- 230000008569 process Effects 0.000 description 14
- 241000723382 Corylus Species 0.000 description 12
- 235000007466 Corylus avellana Nutrition 0.000 description 12
- 238000000605 extraction Methods 0.000 description 9
- 238000005070 sampling Methods 0.000 description 8
- 235000001543 Corylus americana Nutrition 0.000 description 5
- 230000004913 activation Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000010606 normalization Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration using two or more images, e.g. averaging or subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/136—Segmentation; Edge detection involving thresholding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10024—Color image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
- Image Processing (AREA)
Abstract
一种基于梯度增强的异常检测方法和系统,使用导师网络和学徒网络对被检测物体进行异常检测,在训练时首先使用开源图像数据集训练导师网络,再利用被检测物体的正常样本图像,以导师网络为模板训练学徒网络,通过这种无监督学习方法,只需要使用正常样本图像参与训练,不需要异常样本图像和标注信息,训练数据容易获取且不需要花费时间和精力进行标注。在进行异常检测时,可以在学徒网络上进行反向传播,选取一个或多个层的特征图进行梯度增强得到热力图,当选取多个层生成热力图时,可以产生不同尺度特征的热力图,提供对多种尺度的异常区域的检测,能应对多种异常类型。
Description
技术领域
本发明涉及图像处理技术领域,具体涉及一种基于梯度增强的异常检测方法和系统。
背景技术
近年来,深度学习成为了国内外各大领域关注的焦点,深度学习包括了监督学习和无监督学习两类。在计算机视觉领域,监督学习指的是通过图像和标注信息的一一对应训练神经网络,使其能够完成分类、目标检测和语义分割等工作;而无监督学习指的是只用不含标注的图像信息训练神经网络,使其能完成聚类、异常检测、图像生成等工作。在工业质检领域中,目前应用较广的方法有:人工选取特征进行检测的方法和有监督的深度学习方法(以下简称监督学习方法)。
人工选取特征进行检测的方法存在着一些局限:需要待检测物体的形状、位姿、颜色等信息的变化在一定范围内,当物体形状、位姿、颜色信息变化太大时,则难以通过人工制定标准对异常区域与正常区域进行像素精度的判断。以榛子为例,请参考图1~5,其中图1为榛子的正常样例,图2~5为榛子的异常样例,图2~5分别表示榛子的孔洞、爆裂、切痕、印刷等异常情况。可以看到,无论在正常图像与异常图像之间,或是异常图像与异常图像之间,或是同一类异常图像之间,榛子的形状与位姿变化都比较大,难以通过人工选取特征进行检测。
对这类人工选取特征难以奏效的问题,监督学习方法可以进行解决。通过设计卷积神经网络,采集并标注被检测物体的图像(包括大量正常图像与异常图像)形成数据集,使用数据集对神经网络进行训练,可以实现对特征进行自动选取、判断。虽然监督学习方法在物体的形状、位姿、颜色等信息变化比较大的情况下,仍然能生成准确率、鲁棒性较高的结果,但也存在以下局限:首先,很多时候难以获得足够数量、种类的异常样本,其次,对大量图像的标注工作耗时长、花费高。
发明内容
本发明提供一种基于梯度增强的异常检测方法和系统,旨在克服人工选取特征和监督学习的方法在工业质检中的局限性。
根据第一方面,一种实施例中提供一种基于梯度增强的异常检测方法,包括:
获取被检测物体的待检测图像,对所述待检测图像进行分块处理得到图像块;
对于每个图像块,将其输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,计算第一特征向量和第二特征向量的距离作为异常分数;
将所有图像块的异常分数中的最大值作为所述待检测图像的异常分数;
如果所述待检测图像的异常分数大于设定的异常分数阈值,则判断所述被检测物体存在异常,根据预设的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,将不同图像块的热力图进行拼接作为所述待检测图像在该层的热力图;
当只有一个热力图时,则将该热力图作为所述待检测图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为所述待检测图像最终的热力图;
输出所述待检测图像的异常分数和热力图;
其中所述导师网络和所述学徒网络通过以下方式进行训练:
获取开源图像数据集,和被检测物体的正常样本图像;
利用所述开源图像数据集对所述导师网络进行训练;
对所述正常样本图像进行分块处理得到正常样本图像块,将所述正常样本图像块输入所述导师网络中得到第一特征向量,输入所述学徒网络中得到第二特征向量;
根据第一特征向量和第二特征向量构建所述学徒网络的损失函数,根据所述学徒网络的损失函数对所述学徒网络进行训练。
一种实施例中,所述利用所述开源图像数据集对所述导师网络进行训练包括:
从所述开源图像数据集中获取样本图像,对所述样本图像进行分块处理得到样本图像块;
将一样本图像块作为输入图像块x,将位于输入图像块x上下左右其中一方向上且相对输入图像块x的偏移量为预设值的图像块作为正样本图像块x+,或者对输入图像块x加入噪声作为正样本图像块x+,将在所获取的样本图像之外随机获取的其他图像上随机选取的一图像块作为负样本图像块x-;
将输入图像块x分别输入预训练的特征提取器和所述导师网络中,得到特征向量fe(x)和f1(x),分别将输入图像块x、正样本图像块x+和负样本图像块x-输入所述导师网络中,得到特征向量f1(x)、f1(x+)和f1(x-);
根据特征向量fe(x)、f1(x)、f1(x+)和f1(x-)构建所述导师网络的损失函数,根据所述导师网络的损失函数对所述导师网络进行训练。
一种实施例中,所述导师网络的损失函数为:
L3=λ1×L1+λ2×L2,
其中L1表示回归损失函数,且
L1=||fe(x)-f1(x)||2,
L2表示度量损失函数,且
L2=max{0,δ+δ+-δ-},
δ+=||f1(x)-f1(x+)||2,
δ-=min{||f1(x)-f1(x-)||2,||f1(x+)-f1(x-)||2},
其中δ为预设的训练阶段异常分数阈值,λ1和λ2为预设的系数。
一种实施例中,所述学徒网络的损失函数为:
L4=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量。
一种实施例中,所述异常分数阈值通过以下方式设定:
获取异常检测数据集,所述异常检测数据集包括被检测物体的正常样本图像和异常样本图像,以及异常区域的标注信息;
获取所述异常检测数据集中每个样本图像的异常分数图;
按预设步长遍历预设的分割阈值区间,对于所述分割阈值区间中的每一个分割阈值,使用其对各个样本图像的异常分数图进行分割,以将像素值大于等于分割阈值的像素点作为异常像素点,将像素值小于分割阈值的像素点作为正常像素点;
按以下公式计算各样本图像的IoU值:
其中Zlabel表示样本图像中标注的异常区域,Zpred表示使用分割阈值分割得到的异常区域;
计算所有样本图像的IoU值的平均值得到平均IoU值;
取使平均IoU值最大的分割阈值作为所述异常分数阈值;
其中,通过以下方式获取所述异常检测数据集中的样本图像的异常分数图:
对样本图像进行分块处理得到样本图像块,对于每个样本图像块,将其输入训练好的导师网络中得到第一特征向量,输入训练好的学徒网络中得到第二特征向量,根据所述距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个样本图像块在该层的特征图进行梯度增强得到热力图,将不同样本图像块的热力图进行拼接作为样本图像在该层的热力图;
当只有一个热力图时,则将该热力图作为样本图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为样本图像最终的热力图;
将样本图像的热力图作为样本图像的异常分数图。
一种实施例中,所述第一特征向量和第二特征向量的距离根据所述距离函数计算,所述距离函数为:
d=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量,d表示第一特征向量和第二特征向量的距离。
一种实施例中,对于所选取的所述学徒网络的第p层,通过以下方式将图像块在该层的特征图进行梯度增强得到热力图:
根据以下公式计算特征图的梯度增强权重:
根据以下公式计算增强特征图作为图像块在该层的热力图:
一种实施例中,所述异常检测方法还包括:在输出所述热力图之前,对所述热力图进行归一化,并进行伪彩色映射。
根据第二方面,一种实施例中提供一种基于梯度增强的异常检测系统,包括:
导师网络和学徒网络;
待检测图像获取模块,用于获取被检测物体的待检测图像;
图像分块模块,用于对所述待检测图像进行分块处理得到图像块;
异常分数计算模块,用于对于每个图像块,将其输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,计算第一特征向量和第二特征向量的距离作为异常分数,然后将所有图像块的异常分数中的最大值作为所述待检测图像的异常分数;
热力图生成模块,用于当所述待检测图像的异常分数大于设定的异常分数阈值时,则判断所述被检测物体存在异常,根据预设的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,将不同图像块的热力图进行拼接作为所述待检测图像在该层的热力图,当只有一个热力图时,则将该热力图作为所述待检测图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为所述待检测图像最终的热力图;
输出模块,用于输出所述待检测图像的异常分数和热力图;
还包括训练模块,所述训练模块包括:
训练数据获取单元,用于获取开源图像数据集,和被检测物体的正常样本图像;
导师网络训练单元,用于利用所述开源图像数据集对所述导师网络进行训练;
图像分块单元,用于对所述正常样本图像进行分块处理得到正常样本图像块;
学徒网络训练单元,用于将所述正常样本图像块输入所述导师网络中得到第一特征向量,输入所述学徒网络中得到第二特征向量,根据第一特征向量和第二特征向量构建所述学徒网络的损失函数,根据所述学徒网络的损失函数对所述学徒网络进行训练。
根据第三方面,一种实施例中提供一种计算机可读存储介质,所述介质上存储有程序,所述程序能够被处理器执行以实现如上述第一方面所述的异常检测方法。
依据上述实施例的基于梯度增强的异常检测方法和系统,使用导师网络和学徒网络对被检测物体进行异常检测,在训练时首先使用开源图像数据集训练导师网络,再利用被检测物体的正常样本图像,以导师网络为模板训练学徒网络,通过这种无监督学习方法,只需要使用正常样本图像参与训练,不需要异常样本图像和标注信息,训练数据容易获取且不需要花费时间和精力进行标注;在进行异常检测时,将待检测图像分块后分别输入导师网络和学徒网络,分别得到第一特征向量和第二特征向量,根据第一特征向量和第二特征向量的距离得到异常分数,当异常分数大于设定的异常分数阈值,则判断被检测物体存在异常,在学徒网络上进行反向传播,选取一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,从而能够对异常区域进行可视化,方便查看,当选取多个层生成热力图时,由于学徒网络的不同网络层感受野不同,因此所体现的特征的尺度也不相同,可以产生不同尺度特征的热力图,提供对多种尺度的异常区域的检测,能应对多种异常类型。
附图说明
图1为正常榛子的图像;
图2为存在孔洞的榛子的图像;
图3为存在爆裂的榛子的图像;
图4为存在切痕的榛子的图像;
图5为存在印刷的榛子的图像;
图6为一种实施例中导师网络和学徒网络的训练流程图;
图7为一种实施例中训练导师网络的原理图;
图8为一种实施例中导师网络和学徒网络的结构示意图;
图9为一种实施例中训练学徒网络的原理图;
图10为一种实施例中进行异常检测的流程图;
图11为一种实施例中的基于梯度增强的异常检测方法的流程图;
图12为正向传播的示意图;
图13为反向传播的示意图;
图14为另一种实施例中的基于梯度增强的异常检测方法的流程图;
图15为设置异常分数阈值的流程图;
图16为一种实施例中的设置异常分数阈值的方法的流程图;
图17为一种实施例中的基于梯度增强的异常检测系统的结构示意图;
图18为另一种实施例中的基于梯度增强的异常检测系统的结构示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。
另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。
本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。
为了克服人工选取特征和监督学习的方法的局限性,本发明采用无监督学习的方法来进行异常检测。现有的无监督异常检测方法主要有生成对抗网络(GenerativeAdversarial Network,简称GAN)、自编码器(Auto Encoder,简称AE)、变分自编码器(Variational Auto Encoder,简称VAE)。
生成对抗网络(GAN)由一个生成网络和一个判别网络组成,生成对抗网络从潜在空间中随机取样作为输入,其输出需要尽可能模仿训练集的真实样本。
自编码器(AE)由一个编码器(encoder)和一个解码器(decoder)组成,图像信息通过编码器生成高维、低分辨率的语义信息,将语义信息直接作为潜在变量,解码器则通过上采样和卷积神经网络将潜在变量还原成与原有图像格式相同的图像,其输出的图像需要尽可能模仿输入的图像,达到图像重建的效果。
变分自编码器(VAE)由一个编码器(encoder)和一个解码器(decoder)组成,图像信息通过编码器生成高维、低分辨率的语义信息,通过计算编码器生成的语义信息的均值、方差等信息,在高斯噪声等随机分布中抽样得到潜在变量,解码器则通过上采样和卷积神经网络将潜在变量还原成图像信息,其输出需要尽可能模仿输入的图像,达到图像重建的效果。
当上述三种方法应用在异常检测场景中时,它们的工作原理是:先使用正常图像对神经网络进行训练,其输出需要尽可能模仿输入的图像,即神经网络在正常区域有较小的重建误差(输入的原图经过对应的神经网络输出了重建图像,重建误差指的是重建图像和原图之间的差异)。同时由于未用异常图像数据进行训练,因此神经网络在异常区域往往有较大的重建误差。通过生成重建误差,可以判断重建误差较小的区域为正常区域,重建误差较大的区域为异常区域。以此来对异常区域进行检测。
上述三种方法仍然存在着一些不足,生成对抗网络和变分自编码器的不足点是:由于没有完全利用原图像的信息,难以生成像素精度较高的重建图像(即生成的重建图像只能在大体上接近输入图像,重建图像的像素的位置精度和数值精度较差),进而难以制定判断标准区分异常区域与正常区域。自编码器的不足点是:由于采用多层下采样,像素位置精度较差、对较小的特征重建效果不佳,难以通过对比原图和重建图像的差异(即生成重建误差)来判断正常区域和异常区域。
在本发明实施例中,构建两个神经网络:导师网络和学徒网络,先训练导师网络使之具备特征提取能力,然后使用被检测物体的正常样本,以导师网络为模板,训练学徒网络,目标是让学徒网络的输出尽可能符合导师网络的输出,从而使得在正常样本上,导师网络的输出和学徒网络的输出在分布上是相近的。由于神经网络具备高度的非线性,表现在应对训练阶段未出现的样本时,神经网络的表现不如预期,本发明利用了这一点,在异常样本上,导师网络的输出和学徒网络的输出在分布上是不同的,通过计算两者输出的特征向量的距离,可以得到异常分数。在检测中,通过设置异常分数阈值,若异常分数高于异常分数阈值则判定此样本属于异常样本,如此便得到了图像级的异常检测结果。
在获取导师网络和学徒网络的输出后,将导师网络的输出作为标准结果,与学徒网络的预测结果进行距离函数的计算,利用此距离函数在学徒网络上进行反向传播,选取学徒网络某一个或多个神经网络层,获取这些神经网络层上经过前述的反向传播得到的梯度(gradient)和特征图(feature map),对特征图进行梯度增强以获取热力图,通过热力图可清楚直观地观察输入图像上每一处为异常点的可能性,便于获取异常区域,如此便得到了像素级的异常检测结果。
下面首先对导师网络和学徒网络的训练进行介绍。请参考图6,一种实施例中导师网络和学徒网络的训练阶段包括步骤110~140,下面具体说明。
步骤110:获取开源图像数据集,和被检测物体的正常样本图像。开源图像数据集可以是诸如ImageNet等数据集,用于对导师网络进行训练,使之具备特征提取能力,被检测物体的正常样本图像用于以导师网络为模板训练学徒网络,使得在正常样本图像上两者有较接近的输出,例如当对榛子进行异常检测时,可以使用榛子的正常样本图像来训练学徒网络。
步骤120:利用开源图像数据集对导师网络进行训练。请参考图7,本申请一种实施例中提供一种使用预训练的特征提取器引导导师网络进行训练的方法,预训练的特征提取器是使用大数据集如ImageNet等预先训练的、具备优秀的特征提取能力的神经网络,选取特征提取器的某一个神经网络层,将该神经网络层输出的特征图进行全局池化,可以获得对应的n维特征向量。
训练过程中,首先从域无关的开源图像数据集如ImageNet中获取样本图像,对样本图像进行分块处理得到样本图像块,样本图像块可以是一块或多块,样本图像自身可以作为单独的一个图像块,也可以被分割得到多个图像块。图像的分块与导师网络和学徒网络的设置有关。由于利用开源图像数据集并使用预训练的特征提取器引导导师网络进行训练,以导师网络为模板对学徒网络进行训练,因此导师网络和学徒网络无需设置过于复杂的结构以学习特征提取能力,可以被设置为一浅层神经网络,具备网络层数较少、参数较少、计算量较小的优点,并且训练简便。请参考图8,导师网络和学徒网络可以拥有若干个卷积层(convolution)、池化层(pool)、批次标准化层(batch normalize)和激活函数(activation)等,两者的输出均为n维的特征向量。当将导师网络和学徒网络设置为浅层神经网络时,由于它们的层数较少,感受野也较小,因此需要使用小块图像进行训练和检测,这时就需要将输入图像分成多个小块。
可以使用两个参数控制图像的分块:采样尺寸和采样步长,按预设的采样步长遍历图像,对图像进行采样,每次采样按预设的采样尺寸采集得到一个图像块,从而得到一个或多个图像块。一个实例中,采样尺寸可以设置为65×65,采样步长为33。
得到样本图像块后,将一样本图像块作为输入图像块x,将位于输入图像块x上下左右其中一方向上且相对输入图像块x的偏移量为预设值的图像块作为正样本图像块x+,例如偏移量为15,那么可以将输入图像块x向上、下、左或右偏移15个像素得到另一图像块,将其作为正样本图像块x+,或者也可以对输入图像块x加入噪声来作为正样本图像块x+,所加入的噪声可以是随机噪声、高斯噪声等,最后将在所获取的样本图像之外随机获取的其他图像上随机选取的一图像块作为负样本图像块x-。将输入图像块x分别输入预训练的特征提取器和导师网络中,得到特征向量fe(x)和f1(x);分别将输入图像块x、正样本图像块x+和负样本图像块x-输入导师网络中,得到特征向量f1(x)、f1(x+)和f1(x-)。根据特征向量fe(x)、f1(x)、f1(x+)和f1(x-)构建导师网络的损失函数,然后根据导师网络的损失函数对导师网络进行训练。一种实施例中,导师网络的损失函数L3可以由两部分组成:回归损失函数L1和度量损失函数L2。回归损失函数L1的目标是让导师网络输出的特征向量尽可能接近特征提取器输出的特征向量,从而使导师网络具备特征提取能力,具体可以为:
L1=||fe(x)-f1(x)||2。
度量损失函数L2的目标是使得当输入两张相似图像时,导师网络输出的两个特征向量之间的距离尽可能相近,反之,当输入两张不同的图像时,导师网络输出的两个特征向量之间的距离尽可能远,以此进一步增强特征提取能力,具体可以为:
L2=max{0,δ+δ+-δ-},
其中
δ+=||f1(x)-f1(x+)||2,
δ-=min{||f1(x)-f1(x-)2,||f1(x+)-f1(x-)||2},
δ为预设的训练阶段异常分数阈值,例如可以为0.5。最终的损失函数L3为:
L3=λ1×L1+λ2×L2,
其中λ1和λ2为预设的系数,表征回归损失函数L1和度量损失函数L2的重要程度,一个实例中λ1=0.7,λ2=0.3。使用损失函数L3训练导师网络,直至损失函数L3收敛,本领域技术人员可以理解,当训练达到预设次数或者损失函数值的变化在预设范围内时,可以认为损失函数收敛。
步骤130:对步骤110中获取的正常样本图像进行分块处理得到正常样本图像块。分块处理的方式可以参考步骤120,同样的,所得到的正常样本图像块可以是一个或多个,可根据实际需要设置。
步骤140:将正常样本图像块输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,根据第一特征向量和第二特征向量构建学徒网络的损失函数,根据学徒网络的损失函数对学徒网络进行训练。请参考图9,学徒网络以导师网络为模板进行训练,一种实施例中,学徒网络的损失函数可以为:
L4=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量。训练目标是:使得学徒网络输出的特征向量与导师网络输出的特征向量相似。使用损失函数L4训练学徒网络,直至损失函数L4收敛。至此则完成了导师网络和学徒网络的训练。
下面对本发明的基于梯度增强的异常检测方法进行介绍,其流程可以参考图10和11,如图11所示,一种实施例中该方法包括步骤210~260,下面具体说明。
步骤210:获取被检测物体的待检测图像,对待检测图像进行分块处理得到图像块。可以使用任意摄像设备对被检测物体进行拍摄得到被检测物体的待检测图像。分块处理的方式可以参考步骤120,同样的,所得到的图像块可以是一个或多个,可根据实际需要设置。
步骤220:对于每个图像块,将其输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,计算第一特征向量和第二特征向量的距离作为异常分数,第一特征向量和第二特征向量的距离可以根据预设的距离函数进行计算,如图12所示,这一过程是一个正向传播的过程。距离函数可以根据常用的任意一种距离计算方式设置,一种实施例中可以采用欧氏距离来设置距离函数,则距离函数为
d=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量,d表示第一特征向量和第二特征向量的距离。
步骤230:将所有图像块的异常分数中的最大值作为待检测图像的异常分数。
步骤240:判断待检测图像的异常分数是否大于设定的异常分数阈值,若是则执行步骤250。异常分数阈值可以与步骤120中的训练阶段异常分数阈值相同,也可以另行设置,本发明提供一种根据被检测物体的正常样本图像和异常样本图像的检测结果进行统计分析来设置异常分数阈值的方法,下文中将进行具体介绍。
步骤250:判断被检测物体存在异常,生成热力图。根据预设的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,将不同图像块的热力图进行拼接作为待检测图像在该层的热力图。当只选取一个层时,即只有一个热力图时,则将该热力图作为待检测图像最终的热力图,当选取多个层时,即有多个热力图时,则将该多个热力图进行融合作为待检测图像最终的热力图。
进行梯度增强的方式有多种,下面对本发明一种实施例中的梯度增强的方式进行说明,在该实施例中,使用平均梯度来进行梯度增强。假设选取了学徒网络的第p层为目标层,根据距离函数进行反向传播获取该层特征图的梯度,计算各通道上梯度的平均值作为对应通道的平均梯度,将平均梯度作为对应通道的梯度增强权重,计算公式如下:
其中表示第p层特征图第k个通道的梯度增强权重,h表示特征图的高,w表示特征图的宽,d表示第一特征向量和第二特征向量的距离,表示在第p层特征图上空间坐标(i,j,k)上的像素点的值。然后使用各通道的梯度增强权重来增强特征图,将增强特征图作为图像块在该层的热力图,计算公式为:
反向传播的示意图请参考图13。反向传播利用神经网络的真实输出值x和想得到的已知输出值y来计算损失函数的梯度,通过链式法则,可以得到网络层上的梯度(即流经该层的特征图的梯度)。在本发明中,用学徒网络的输出作为x,用导师网络的输出作为y,计算x和y的距离,将距离函数作为前述损失函数,进行反向传播,获得各目标层的梯度,计算流经目标层的特征图的平均梯度。可以认为平均梯度的方向代表着:要使距离函数值变大,特征图的响应应该得到增强还是抑制。平均梯度为正值代表特征图的响应应该得到增强,可以认为,此特征图代表的特征使得导师网络的输出和学徒网络的输出距离增大,称为导师网络和学徒网络的相异特征;平均梯度为负值代表特征图的响应应该得到抑制,可以认为,此特征图代表的特征使得导师网络和学徒网络的输出分布相似,称为导师网络和学徒网络的相似特征。因此,可以将平均梯度作为增强权重,对特征图进行梯度增强,这样一来就可以增强相异特征,抑制相似特征,进而得到像素级的异常分数图,即热力图。
当有多个图像块时,需要将多个图像块的热力图拼接成一幅完整的热力图,拼接的过程可以视为与分块相反的过程,可以按预设的步长进行拼接,对于热力图重叠的部分,则计算重叠部分的多张热力图的平均值作为重叠部分的值。
由于学徒网络的不同网络层感受野不同,因此所体现的特征的尺度也不相同,为了检测不同尺度的异常,可以选取学徒网络上多个不同的网络层,生成多个不同尺度特征的热力图,然后进行融合,从而能应对多种异常类型。融合的方法可以有多种,例如可以先将生成的多个热力图缩放到一致的尺寸,然后计算这些热力图对应像素点的平均值或者最大值,作为融合后热力图对应像素点的值。
步骤260:输出待检测图像的异常分数和热力图。一种实施例中,在输出热力图之前,还先对热力图进行归一化,并进行伪彩色映射,将热力图映射为三通道RGB彩色图,使得异常区域更直观化。
请参考图14,在有的实施例中,本发明的基于梯度增强的异常检测方法还包括步骤270,在步骤240中,当判断待检测图像的异常分数不大于设定的异常分数阈值时,则执行步骤270,判断被检测物体为正常物体,并输出待检测图像的异常分数。
下面对步骤240中提及的设置异常分数阈值的方法进行说明,其流程可参考图15和图16,如图16所示,一种实施例中该方法包括步骤310~370,下面具体说明。
步骤310:获取异常检测数据集,异常检测数据集包括被检测物体的正常样本图像和异常样本图像,以及异常区域的标注信息。
步骤320:获取异常检测数据集中每个样本图像的异常分数图。
异常分数图可以采用与热力图类似的计算方式获得。首先需要先对样本图像进行分块处理得到样本图像块,分块处理的方式可以参考步骤120,同样的,所得到的图像块可以是一个或多个,可根据实际需要设置。
获得样本图像块后,对于每个样本图像块,将其输入训练好的导师网络中得到第一特征向量,输入训练好的学徒网络中得到第二特征向量,根据上文中所述的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个样本图像块在该层的特征图进行梯度增强得到热力图,将不同样本图像块的热力图进行拼接作为样本图像在该层的热力图。当只选取一个层时,即只有一个热力图时,则将该热力图作为样本图像最终的热力图,当选取多个层时,即有多个热力图时,则将该多个热力图进行融合作为样本图像最终的热力图。关于热力图的获取方法可以参考步骤250,在此不再赘述。
最后将样本图像的热力图作为样本图像的异常分数图。
步骤330:在预设的分割阈值区间中选取一分割阈值,其中当第一次选取时可以选取分割阈值区间中的第一个或最后一个阈值,后续可以按预设步长选取下一个分割阈值。
步骤340:使用所选取的分割阈值对各个样本图像的异常分数图进行分割,以将像素值大于等于分割阈值的像素点作为异常像素点,将像素值小于分割阈值的像素点作为正常像素点,这样一来便得到了异常区域。
步骤350:按以下公式计算各样本图像的IoU值:
其中Zlabel表示样本图像中标注的异常区域,Zpred表示使用分割阈值分割得到的异常区域。然后计算所有样本图像的IoU值的平均值,得到该分割阈值下的平均IoU值。
步骤360:判断是否已遍历完分割阈值区间,若已遍历完则执行步骤370,否则返回步骤330。
步骤370:取使平均IoU值最大的分割阈值作为异常分数阈值。
本发明设置异常分数阈值的方法,通过统计异常检测数据集中各样本图像的异常区域分割效果来衡量不同分割阈值的表现,选取表现最好的分割阈值作为异常分数阈值,有利于选取最优异常分数阈值,提高异常检测的准确性。
在上述基于梯度增强的异常检测方法的基础上,本发明还提供一种基于梯度增强的异常检测系统,请参考图17,一种实施例中该系统包括导师网络1、学徒网络2、训练模块3、待检测图像获取模块4、图像分块模块5、异常分数计算模块6、热力图生成模块7和输出模块8,下面先对导师网络1、学徒网络2和训练模块3进行介绍。
导师网络1和学徒网络2具有若干个卷积层(convolution)、池化层(pool)、批次标准化层(batch normalize)和激活函数(activation)等,两者的输出均为n维的特征向量。
训练模块3用于对导师网络1和学徒网络2进行训练,请参考图17,一种实施例中训练模块3包括训练数据获取单元31、导师网络训练单元32、图像分块单元33和学徒网络训练单元34。
训练数据获取单元31用于获取开源图像数据集,和被检测物体的正常样本图像,开源图像数据集可以是诸如ImageNet等数据集。
导师网络训练单元32用于利用开源图像数据集对导师网络进行训练。请参考图7,本申请一种实施例中提供一种使用预训练的特征提取器引导导师网络进行训练的方法,预训练的特征提取器是使用大数据集如ImageNet等预先训练的、具备优秀的特征提取能力的神经网络,选取特征提取器的某一个神经网络层,将该神经网络层输出的特征图进行全局池化,可以获得对应的n维特征向量。
训练过程中,导师网络训练单元32首先从域无关的开源图像数据集如ImageNet中获取样本图像,对样本图像进行分块处理得到样本图像块,样本图像块可以是一块或多块,样本图像自身可以作为单独的一个图像块,也可以被分割得到多个图像块。图像的分块与导师网络和学徒网络的设置有关。由于利用开源图像数据集并使用预训练的特征提取器引导导师网络进行训练,以导师网络为模板对学徒网络进行训练,因此导师网络和学徒网络无需设置过于复杂的结构以学习特征提取能力,可以被设置为一浅层神经网络,具备网络层数较少、参数较少、计算量较小的优点,并且训练简便。当将导师网络和学徒网络设置为浅层神经网络时,由于它们的层数较少,感受野也较小,因此需要使用小块图像进行训练和检测,这时就需要将输入图像分成多个小块。分块的方式可以参考上文中步骤120,在此不再赘述。
得到样本图像块后,将一样本图像块作为输入图像块x,将位于输入图像块x上下左右其中一方向上且相对输入图像块x的偏移量为预设值的图像块作为正样本图像块x+,或者也可以对输入图像块x加入噪声来作为正样本图像块x+,所加入的噪声可以是随机噪声、高斯噪声等,将在所获取的样本图像之外随机获取的其他图像上随机选取的一图像块作为负样本图像块x-。之后导师网络训练单元32将输入图像块x分别输入预训练的特征提取器和导师网络中,得到特征向量fe(x)和f1(x);分别将输入图像块x、正样本图像块x+和负样本图像块x-输入导师网络中,得到特征向量f1(x)、f1(x+)和f1(x-);根据特征向量fe(x)、f1(x)、f1(x+)和f1(x-)构建导师网络的损失函数,然后根据导师网络的损失函数对导师网络进行训练。一种实施例中,导师网络的损失函数L3可以由两部分组成:回归损失函数L1和度量损失函数L2。回归损失函数L1具体可以为:
L1=||fe(x)-f1(x)||2。
度量损失函数L2具体可以为:
L2=max{0,δ+δ+-δ-},
其中
δ+=||f1(x)-f1(x+)||2,
δ-=min{||f1(x)-f1(x-)||2,||f1(x+)-f1(x-)||2},
δ为预设的训练阶段异常分数阈值,例如可以为0.5。最终的损失函数L3为:
L3=λ1×L1+λ2×L2,
其中λ1和λ2为预设的系数,表征回归损失函数L1和度量损失函数L2的重要程度,一个实例中λ1=0.7,λ2=0.3。导师网络训练单元32使用损失函数L3训练导师网络,直至损失函数L3收敛。
图像分块单元33用于对正常样本图像进行分块处理得到正常样本图像块,分块处理的方式可以参考上文中步骤120,同样的,所得到的正常样本图像块可以是一个或多个,可根据实际需要设置。
学徒网络训练单元34用于对学徒网络进行训练,请参考图9,学徒网络以导师网络为模板进行训练。训练过程中,学徒网络训练单元34将正常样本图像块输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,根据第一特征向量和第二特征向量构建学徒网络的损失函数,根据学徒网络的损失函数对学徒网络进行训练。一种实施例中,学徒网络的损失函数可以为:
L4=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量。学徒网络训练单元34使用损失函数L4训练学徒网络,直至损失函数L4收敛,完成学徒网络的训练。
下面对待检测图像获取模块4、图像分块模块5、异常分数计算模块6、热力图生成模块7和输出模块8进行介绍。
待检测图像获取模块4用于获取被检测物体的待检测图像,可以使用任意摄像设备对被检测物体进行拍摄得到被检测物体的待检测图像。
图像分块模块5用于对待检测图像进行分块处理得到图像块,分块处理的方式可以参考上文中步骤120,同样的,所得到的图像块可以是一个或多个,可根据实际需要设置。
异常分数计算模块6用于对于每个图像块,将其输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,计算第一特征向量和第二特征向量的距离作为异常分数,然后将所有图像块的异常分数中的最大值作为待检测图像的异常分数。第一特征向量和第二特征向量的距离可以根据预设的距离函数进行计算,距离函数可以根据常用的任意一种距离计算方式设置,一种实施例中可以采用欧氏距离来设置距离函数,则距离函数为
d=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量,d表示第一特征向量和第二特征向量的距离。
热力图生成模块7用于当待检测图像的异常分数大于设定的异常分数阈值时,判断被检测物体存在异常,并根据预设的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,将不同图像块的热力图进行拼接作为待检测图像在该层的热力图,当只有一个热力图时,则将该热力图作为待检测图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为待检测图像最终的热力图。
异常分数阈值可以与训练阶段异常分数阈值相同,也可以另行设置,请参考图18,本发明一种实施例中的异常检测系统还包括异常分数阈值设置模块9,用于根据被检测物体的正常样本图像和异常样本图像的检测结果进行统计分析来设置异常分数阈值,下文中将对其进行具体介绍。
进行梯度增强的方式有多种,下面对本发明一种实施例中的梯度增强的方式进行说明,在该实施例中,使用平均梯度来进行梯度增强。假设选取了学徒网络的第p层为目标层,热力图生成模块7根据距离函数进行反向传播获取该层特征图的梯度,计算各通道上梯度的平均值作为对应通道的平均梯度,将平均梯度作为对应通道的梯度增强权重,计算公式如下:
其中表示第p层特征图第k个通道的梯度增强权重,h表示特征图的高,w表示特征图的宽,d表示第一特征向量和第二特征向量的距离,表示在第p层特征图上空间坐标(i,j,k)上的像素点的值。然后使用各通道的梯度增强权重来增强特征图,将增强特征图作为图像块在该层的热力图,计算公式为:
当有多个图像块时,需要将多个图像块的热力图拼接成一幅完整的热力图,拼接的过程可以视为与分块相反的过程,可以按预设的步长进行拼接,对于热力图重叠的部分,则计算重叠部分的多张热力图的平均值作为重叠部分的值。
当有多个热力图时,需要将这些热力图进行融合作为待检测图像最终的热力图,融合的方法可以有多种,例如可以先将生成的多个热力图缩放到一致的尺寸,然后计算这些热力图对应像素点的平均值或者最大值,作为融合后热力图对应像素点的值。
一种实施例中,在得到热力图后,热力图生成模块7还对热力图进行归一化,并进行伪彩色映射,将热力图映射为三通道RGB彩色图,使得异常区域更直观化。
输出模块8用于输出待检测图像的异常分数和热力图,以在显示器上进行显示。在有的实施例中,当判断待检测图像的异常分数不大于设定的异常分数阈值时,输出模块8则只输出待检测图像的异常分数。
下面对异常分数阈值设置模块9进行介绍。请参考图18,一种实施例中异常分数阈值设置模块9包括异常检测数据集获取单元91、异常分数图生成单元92、阈值分割单元93、IoU值计算单元94和确定单元95。
异常检测数据集获取单元91用于获取异常检测数据集,异常检测数据集包括被检测物体的正常样本图像和异常样本图像,以及异常区域的标注信息。
异常分数图生成单元92用于获取异常检测数据集中每个样本图像的异常分数图,异常分数图的获取方式可以参考上文中步骤320,在此不再赘述。
阈值分割单元93用于按预设步长遍历预设的分割阈值区间,对于分割阈值区间中的每一个分割阈值,使用其对各个样本图像的异常分数图进行分割,以将像素值大于等于分割阈值的像素点作为异常像素点,将像素值小于分割阈值的像素点作为正常像素点,这样一来便得到了异常区域。
IoU值计算单元94用于对于每一个分割阈值,计算使用其分割后的平均IoU值。首先IoU值计算单元94按以下公式计算各样本图像的IoU值:
其中Zlabel表示样本图像中标注的异常区域,Zpred表示使用分割阈值分割得到的异常区域,然后计算所有样本图像的IoU值的平均值得到该分割阈值下的平均IoU值。
确定单元95用于取使平均IoU值最大的分割阈值作为异常分数阈值。
依据上述实施例的基于梯度增强的异常检测方法和系统,使用导师网络和学徒网络对被检测物体进行异常检测,在训练时首先使用开源图像数据集训练导师网络,再利用被检测物体的正常样本图像,以导师网络为模板训练学徒网络,通过这种无监督学习方法,只需要使用正常样本图像参与训练,不需要异常样本图像和标注信息,训练数据容易获取且不需要花费时间和精力进行标注。在有的实施例中,使用预训练的特征提取器引导导师网络进行训练,再以导师网络为模板对学徒网络进行训练,因此导师网络和学徒网络无需设置过于复杂的结构以学习特征提取能力,可以被设置为一浅层神经网络,计算量较小,参数量相比现有的方法大大降低,便于传输、存储和部署,并且训练简便,收敛速度较快。
在进行异常检测时,可以选取学徒网络的一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,通过热力图可清楚直观地观察输入图像上每一处为异常点的可能性,有利于获得像素精度较高的异常检测结果,并且使得异常区域可视化,方便查看。当选取多个层生成热力图时,由于学徒网络的不同网络层感受野不同,因此所体现的特征的尺度也不相同,可以产生不同尺度特征的热力图,提供对多种尺度的异常区域的检测,能应对多种异常类型。
本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。
Claims (10)
1.一种基于梯度增强的异常检测方法,其特征在于,包括:
获取被检测物体的待检测图像,对所述待检测图像进行分块处理得到图像块;
对于每个图像块,将其输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,计算第一特征向量和第二特征向量的距离作为异常分数;
将所有图像块的异常分数中的最大值作为所述待检测图像的异常分数;
如果所述待检测图像的异常分数大于设定的异常分数阈值,则判断所述被检测物体存在异常,根据预设的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,将不同图像块的热力图进行拼接作为所述待检测图像在该层的热力图;
当只有一个热力图时,则将该热力图作为所述待检测图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为所述待检测图像最终的热力图;
输出所述待检测图像的异常分数和热力图;
其中所述导师网络和所述学徒网络通过以下方式进行训练:
获取开源图像数据集,和被检测物体的正常样本图像;
利用所述开源图像数据集对所述导师网络进行训练;
对所述正常样本图像进行分块处理得到正常样本图像块,将所述正常样本图像块输入所述导师网络中得到第一特征向量,输入所述学徒网络中得到第二特征向量;
根据第一特征向量和第二特征向量构建所述学徒网络的损失函数,根据所述学徒网络的损失函数对所述学徒网络进行训练。
2.如权利要求1所述的异常检测方法,其特征在于,所述利用所述开源图像数据集对所述导师网络进行训练包括:
从所述开源图像数据集中获取样本图像,对所述样本图像进行分块处理得到样本图像块;
将一样本图像块作为输入图像块x,将位于输入图像块x上下左右其中一方向上且相对输入图像块x的偏移量为预设值的图像块作为正样本图像块x+,或者对输入图像块x加入噪声作为正样本图像块x+,将在所获取的样本图像之外随机获取的其他图像上随机选取的一图像块作为负样本图像块x-;
将输入图像块x分别输入预训练的特征提取器和所述导师网络中,得到特征向量fe(x)和f1(x),分别将输入图像块x、正样本图像块x+和负样本图像块x-输入所述导师网络中,得到特征向量f1(x)、f1(x+)和f1(x-);
根据特征向量fe(x)、f1(x)、f1(x+)和f1(x-)构建所述导师网络的损失函数,根据所述导师网络的损失函数对所述导师网络进行训练。
3.如权利要求2所述的异常检测方法,其特征在于,所述导师网络的损失函数为:
L3=λ1×L1+λ2×L2,
其中L1表示回归损失函数,且
L1=||fe(x)-f1(x)||2,
L2表示度量损失函数,且
L2=max{0,δ+δ+-δ-},
δ+=||f1(x)-f1(x+)||2,
δ-=min{||f1(x)-f1(x-)||2,||f1(x+)-f1(x-)||2},
其中δ为预设的训练阶段异常分数阈值,λ1和λ2为预设的系数。
4.如权利要求1所述的异常检测方法,其特征在于,所述学徒网络的损失函数为:
L4=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量。
5.如权利要求1所述的异常检测方法,其特征在于,所述异常分数阈值通过以下方式设定:
获取异常检测数据集,所述异常检测数据集包括被检测物体的正常样本图像和异常样本图像,以及异常区域的标注信息;
获取所述异常检测数据集中每个样本图像的异常分数图;
按预设步长遍历预设的分割阈值区间,对于所述分割阈值区间中的每一个分割阈值,使用其对各个样本图像的异常分数图进行分割,以将像素值大于等于分割阈值的像素点作为异常像素点,将像素值小于分割阈值的像素点作为正常像素点;
按以下公式计算各样本图像的IoU值:
其中Zlabel表示样本图像中标注的异常区域,Zpred表示使用分割阈值分割得到的异常区域;
计算所有样本图像的IoU值的平均值得到平均IoU值;
取使平均IoU值最大的分割阈值作为所述异常分数阈值;
其中,通过以下方式获取所述异常检测数据集中的样本图像的异常分数图:
对样本图像进行分块处理得到样本图像块,对于每个样本图像块,将其输入训练好的导师网络中得到第一特征向量,输入训练好的学徒网络中得到第二特征向量,根据所述距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个样本图像块在该层的特征图进行梯度增强得到热力图,将不同样本图像块的热力图进行拼接作为样本图像在该层的热力图;
当只有一个热力图时,则将该热力图作为样本图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为样本图像最终的热力图;
将样本图像的热力图作为样本图像的异常分数图。
6.如权利要求1或5所述的异常检测方法,其特征在于,所述第一特征向量和第二特征向量的距离根据所述距离函数计算,所述距离函数为:
d=||f1(x)-f2(x)||2,
其中f1(x)表示第一特征向量,f2(x)表示第二特征向量,d表示第一特征向量和第二特征向量的距离。
8.如权利要求1-7中任一项所述的异常检测方法,其特征在于,还包括:在输出所述热力图之前,对所述热力图进行归一化,并进行伪彩色映射。
9.一种基于梯度增强的异常检测系统,其特征在于,包括:
导师网络和学徒网络;
待检测图像获取模块,用于获取被检测物体的待检测图像;
图像分块模块,用于对所述待检测图像进行分块处理得到图像块;
异常分数计算模块,用于对于每个图像块,将其输入导师网络中得到第一特征向量,输入学徒网络中得到第二特征向量,计算第一特征向量和第二特征向量的距离作为异常分数,然后将所有图像块的异常分数中的最大值作为所述待检测图像的异常分数;
热力图生成模块,用于当所述待检测图像的异常分数大于设定的异常分数阈值时,则判断所述被检测物体存在异常,根据预设的距离函数在学徒网络上进行反向传播,选取学徒网络上一个或多个层作为目标层,对于每一目标层,将每个图像块在该层的特征图进行梯度增强得到热力图,将不同图像块的热力图进行拼接作为所述待检测图像在该层的热力图,当只有一个热力图时,则将该热力图作为所述待检测图像最终的热力图,当有多个热力图时则将该多个热力图进行融合作为所述待检测图像最终的热力图;
输出模块,用于输出所述待检测图像的异常分数和热力图;
还包括训练模块,所述训练模块包括:
训练数据获取单元,用于获取开源图像数据集,和被检测物体的正常样本图像;
导师网络训练单元,用于利用所述开源图像数据集对所述导师网络进行训练;
图像分块单元,用于对所述正常样本图像进行分块处理得到正常样本图像块;
学徒网络训练单元,用于将所述正常样本图像块输入所述导师网络中得到第一特征向量,输入所述学徒网络中得到第二特征向量,根据第一特征向量和第二特征向量构建所述学徒网络的损失函数,根据所述学徒网络的损失函数对所述学徒网络进行训练。
10.一种计算机可读存储介质,其特征在于,所述介质上存储有程序,所述程序能够被处理器执行以实现如权利要求1-8中任一项所述的异常检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210623637.0A CN115018787A (zh) | 2022-06-02 | 2022-06-02 | 一种基于梯度增强的异常检测方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210623637.0A CN115018787A (zh) | 2022-06-02 | 2022-06-02 | 一种基于梯度增强的异常检测方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115018787A true CN115018787A (zh) | 2022-09-06 |
Family
ID=83072165
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210623637.0A Pending CN115018787A (zh) | 2022-06-02 | 2022-06-02 | 一种基于梯度增强的异常检测方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115018787A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115797349A (zh) * | 2023-02-07 | 2023-03-14 | 广东奥普特科技股份有限公司 | 一种缺陷检测方法、装置和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021017372A1 (zh) * | 2019-08-01 | 2021-02-04 | 中国科学院深圳先进技术研究院 | 一种基于生成对抗网络的医学图像分割方法、系统及电子设备 |
CN113743543A (zh) * | 2021-11-05 | 2021-12-03 | 武汉大学 | 一种图像分类训练方法、装置、服务器及存储介质 |
CN113870230A (zh) * | 2021-09-30 | 2021-12-31 | 湖南大学 | 一种基于混合监督学习的表面异常检测方法 |
-
2022
- 2022-06-02 CN CN202210623637.0A patent/CN115018787A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021017372A1 (zh) * | 2019-08-01 | 2021-02-04 | 中国科学院深圳先进技术研究院 | 一种基于生成对抗网络的医学图像分割方法、系统及电子设备 |
CN113870230A (zh) * | 2021-09-30 | 2021-12-31 | 湖南大学 | 一种基于混合监督学习的表面异常检测方法 |
CN113743543A (zh) * | 2021-11-05 | 2021-12-03 | 武汉大学 | 一种图像分类训练方法、装置、服务器及存储介质 |
Non-Patent Citations (1)
Title |
---|
雷丽莹;陈华华;: "基于AlexNet的视频异常检测技术", 杭州电子科技大学学报(自然科学版), no. 06, 15 November 2018 (2018-11-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115797349A (zh) * | 2023-02-07 | 2023-03-14 | 广东奥普特科技股份有限公司 | 一种缺陷检测方法、装置和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102373456B1 (ko) | 자동 주차 시스템을 제공하기 위해 결정 지점 간의 관계 및 결정 지점에 대한 리그레션 결과를 이용하여 주차 공간을 검출하는 학습 방법 및 학습 장치, 그리고 이를 이용한 테스팅 방법 및 테스팅 장치 | |
CN113269237B (zh) | 基于注意力机制的装配体变化检测方法、设备和介质 | |
US8755630B2 (en) | Object pose recognition apparatus and object pose recognition method using the same | |
CN110264444B (zh) | 基于弱分割的损伤检测方法及装置 | |
US20210019572A1 (en) | Training a generative model and a discriminative model | |
CN108961308B (zh) | 一种漂移检测的残差深度特征目标跟踪方法 | |
CN112446870B (zh) | 管道损伤检测方法、装置、设备及存储介质 | |
CN111259710B (zh) | 采用停车位框线、端点的停车位结构检测模型训练方法 | |
CN110378227B (zh) | 修正样本标注数据的方法、装置、设备及存储介质 | |
CN114581456B (zh) | 一种多图像分割模型的构建方法、图像检测方法及装置 | |
CN116681885B (zh) | 输变电设备红外图像目标识别方法及系统 | |
CN110826411B (zh) | 一种基于无人机图像的车辆目标快速识别方法 | |
CN111242026A (zh) | 一种基于空间层次感知模块和度量学习的遥感图像目标检测方法 | |
CN114140623A (zh) | 一种图像特征点提取方法及系统 | |
CN112767267B (zh) | 基于仿真偏振带雾场景数据集的图像去雾方法 | |
CN111539456B (zh) | 一种目标识别方法及设备 | |
CN116109812A (zh) | 一种基于非极大值抑制阈值优化的目标检测方法 | |
CN115018787A (zh) | 一种基于梯度增强的异常检测方法和系统 | |
CN113554645B (zh) | 基于wgan的工业异常检测方法和装置 | |
CN113128518B (zh) | 基于孪生卷积网络和特征混合的sift误匹配检测方法 | |
CN114399505A (zh) | 工业检测中的检测方法、检测装置 | |
CN112233161B (zh) | 手部图像深度确定方法、装置、电子设备及存储介质 | |
WO2022120996A1 (zh) | 视觉位置识别方法及装置、计算机设备及可读存储介质 | |
US11069084B2 (en) | Object identification method and device | |
CN117671299A (zh) | 一种回环检测方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |