| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> Semi-supervised Anomaly Detection using AutoEncoders -> 正文阅读 |
|
[人工智能]Semi-supervised Anomaly Detection using AutoEncoders |
使用自动编码器的半监督异常检测摘要 ? ? ? ? 异常检测是指从正常数据中发现异常实例的任务。在一些应用程序中,这些异常值或异常实例比正常实例更有意义。具体在工业光学检测和基础设施资产管理的案例中,发现这些缺陷(异常区域)是极其重要的。传统上,甚至今天,这一过程都是手工进行的。人类依靠缺陷相对于正常纹理的显著性来检测缺陷。然而,人工检查速度慢、繁琐、主观且容易受到人类偏见的影响。因此,缺陷检测的自动化是可取的。但对于缺陷检测来说,缺乏大量异常实例和标记数据的可用性是一个问题。本文中,我们提出了一种卷积自编码器架构,用于异常检测,它只在无缺陷(正常)实例上训练。对于测试图像,对自编码器输出图像减去原始图像得到的残差掩码进行阈值处理,得到缺陷分割掩码。该方法在两个数据集上进行了测试,取得了令人印象深刻的平均F1得分0.885。即使在训练过程中没有使用任何有缺陷的图像,该网络也学会了检测缺陷的实际形状。 1.介绍 ? ? ? ?反常是指任何偏离常规的东西。异常检测是指发现异常实例。缺陷检测是异常检测的一种特殊情况,在工业环境中有着广泛的应用。人工检查仍然是大多数行业的标准。检测过程完全依赖于异常(缺陷)与正常背景或纹理的视觉差异。这一过程容易出现错误,并存在一些缺点,如培训时间和成本、人的偏见和主观性等。年龄、视力、扫描策略、经验、培训等个体因素影响人工检查过程中产生的误差[1]。由于人工检测面临的这些挑战,缺陷检测的自动化已经成为不同应用领域的研究课题,如钢表面[2]、轨道[3]和织物[4]等。然而,所有这些技术都面临两个共同的问题:缺乏大量的标记数据和异常样本的数量有限。半监督技术试图解决这一挑战。这些技术是基于这样的假设,即我们只能访问一个类类型的标签。也就是正常类[5]。他们试图隐式或显式地估计正态样本的潜在分布。然后测量测试样本从该分布的偏差或差异中确定一个异常样本。以半监督异常检测为例,Schlegl等人[6]利用生成对抗网络(GANs)对视网膜光学相干断层扫描图像进行异常检测。他们在正常数据上训练GAN来学习解剖学变异的潜在分布。但是他们没有训练编码器将输入图像映射到潜在空间。因此,该方法需要对每个测试图像进行一个优化步骤,以便在潜在空间中找到与生成的图像最相似的点,这使得该方法速度较慢。在本研究中,我们探索了一种基于自编码器的方法,该方法也试图估计正态数据的分布,然后使用残差映射来发现缺陷。下一节将对此进行描述。 2.方法 ? ? ? ?选择这种减小的过滤器大小是为了使网络的视野更大,而不必使用大量较小尺寸的过滤器。提出的网络架构如图1所示。它类似于UNet[7]体系结构。编码器(层x1到x5)使用从11×11到3×3逐渐减少的过滤器大小。因为越深的网络越容易对数据进行过拟合,泛化能力较差。解码器结构具有与编码器顺序相反的内核大小,并使用反卷积层。对于每个Conv2D(反卷积)层,显示的参数是该层的卷积核大小、步长和过滤器数量。每一层之后,应用批处理归一化[8],然后是ReLU激活函数[9]。对于一个H ×W输入网络输出一个H ×W重构。网络只在无缺陷或正常的数据样本上训练。实验采用Tensorflow 2.0进行。所使用的损失函数是L2范数或MSE(均方误差)。在这种情况下,标签是原始输入图像,预测是由自编码器重建的图像。我们的假设是,自动编码器将学习只能正确编码和解码正常样本的表示,而不能重建异常区域。这将导致输入图像减去重建图像得到的残差映射中缺陷区域的残差较大,如式1所示。减法是在每个像素级上完成的。然后进行阈值分割操作,获得最终的缺陷分割。 ?????????????????????? R = X -AE(X)????????????????????????? (1) 其中R为残差,X为自编码器的输入,AE(X)为自编码器的输出(重构图像)。接下来描述用于进行实验的数据集。
图1.提出的自编码器网络架构(类似于UNet架构)。编码器(层x1到x5)使用从11×11到3×3逐渐减少的过滤器大小。解码器结构具有与编码器顺序和用途相反的卷积核大小以及使用了反卷积层。编码器层的输出在传递到层x7到层x9之前与前面的层拼接。对于每个Conv2D(反卷积)层,显示的参数是该层的卷积核大小、步长和过滤器数量。每一层之后,进行批处理归一化,然后是ReLU激活函数。对于一个H ×W输入网络输出一个H ×W重构。网络只在无缺陷或正常的数据样本上训练。 3.数据集 1. DAGM[11]是一个用于工业光学检测的合成数据集,包含10类人工生成的异常纹理。本研究随机选取了有裂纹缺陷的8类。它(以下简称DAGMC8)包含150张每幅有一个缺陷的图像和1000张无缺陷的图像。 2.RSDDs (Rail surface discrete defects)[12]包含两种不同类型铁轨的不同大小图像。我们随机选择包含67张铁路图片的RSDDs Type-I category(简称RSDDsI)进行实验。可获得分割掩模,用于从图像中提取200 × 160个patch,并将其分为异常类和正常类,构建训练和测试数据集。 4.结果 ? ? ? ?在DAGMC8和RSDDsI数据集上对残差图进行阈值运算得到的分割结果分别见2 (a)、(b), F1得分值见表1。可以看出,在人工合成DAGMC8数据集网络上能够检测到裂纹(异常),并且几乎没有噪声。这与F1得分为0.96的高值是一致的。然而,对于RSDDsI数据集,结果有一点噪声。同样的点被较低的F1评分值0.81反映出来。即使阈值残差映射设法检测缺陷出大多数图像,但是结果包含更多的噪声。另一个观察是分割结果对阈值的选择非常敏感,微小的变化会导致检测输出的很大变化。对于数据集中的一些图像,这些区域也没有被自动编码器正确地重建,导致被判定为正确的。尽管不同图像中缺陷的几何形状和程度不同,但异常的实际形状都能检测到。这对于需要为缺陷计算特定的度量的应用程序是有益的。然而,与有监督的方法相比,缺乏对自动编码器检测到的缺陷类型的控制降低了目标定位能力。
? ? ? ? ? ? ? ? 图2:分别在DAGMC8(图2 (a))和RSDDsI(图2 (b))数据集上的缺陷检测输出的几个例子。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表1.采用本文方法得到的DAGMC1和RSDDsI数据集上的F1 Score值
5.结论和将来的工作 ? ? ? ?在这项工作中,我们探索并提出了一种基于深度学习的自动编码器的半监督异常检测技术。所提议的网络架构类似于UNet。只使用正常样本就可以训练它。这是一个重要的特性,在实际应用中,在异常样本数量有限和正常样本数量大量的情况下,这是必不可少的。该方法在两个数据集上获得了令人印象深刻的平均F1得分0.885。在两个数据集上获得的定性结果表明,该技术可以检测出形状、几何等方面不同的异常。但是,该方法对阈值的选择比较敏感。甚至连光照的变化也被该方法视为不可取的异常。它根据亮度、对比度和结构对两幅图像进行比较,因此,与均方误差相比,它是一种更好的视觉相似性度量。在今后的工作中,可以在每幅图像中有一种以上缺陷类型的数据集上进行实验。结构相似度指数 (SSIM)可以作为一个损失函数。此外,在残差图像上计算的L1范数等统计量也可以用作异常评分。而不是减去重建图像,应该探索其他比较方法。探索如何使网络不受光照等无关因素的影响。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:51:06- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |