Anomaly Detection vTool#
Anomaly detection 是一种二元分类形式,它能够区分正常(期望)数据与异常(非期望)数据,从而将您的图像分类为合格品和不合格品。与标准分类不同,它可以处理高度不平衡的数据集,在此类数据集中,异常现象很罕见、代表性不足甚至在训练数据集中根本不存在。
Anomaly Detection vTool 可以对通过 Image 输入引脚接收到的图像进行分类。它通过 Classes、Scores、Regions、Heatmaps 和 InferenceImage 输出引脚输出结果。
如果您在进行 anomaly detection 之前使用 ROI Creator vTool 指定感兴趣区域,则 Anomaly Detection vTool 会通过其 Roi 输入引脚接收 ROI 数据。在这种情况下,anomaly detection 仅在感兴趣区域上执行。作为一个附带效果,这可以加快处理速度。
要购买 Anomaly Detection vTool 的许可证,请访问 Basler 网站。

运作原理#
假设您想要检查您的 PCB 生产线是否存在异常。
这是您的输入图像(图像来源:a),显示了一个带有弯曲引脚的 PCB:

您可以通过加载经过训练以检测 PCB 中不规则现象的模型来配置 vTool。

接下来,配置检测设置:
-
Visualize anomalies and output heatmap: vTool 包含可视化功能,默认情况下处于启用状态。这使您可以以热力图的形式查看数据。您可以从热力图的各种颜色映射中进行选择。根据数据和上下文的不同,不同的颜色映射可以更有效地突显异常。
如果您不需要此可视化效果,并且不需要对图像数据进行进一步分析,则可以取消选中热力图。这可能会提高吞吐量。如果您取消选中此选项,Regions、Heatmaps 和 InferenceImage 输出引脚将被禁用。InferenceImage、Heatmaps 和 Regions 的区别
InferenceImage 是带有热力图叠加层的输入图像,用于在引脚数据视图中可视化异常。
Heatmaps 不用于在 引脚数据视图中可视化异常。它们是表示每个像素的异常得分的浮点值图像,如果需要在应用程序中进行进一步分析,则会使用它们。
Regions 是通过对热力图值进行阈值化计算得出的。异常得分高于特定值的像素被分组到一个区域中,从而将正常区域与异常区域分离开来。
-
Anomaly threshold: anomaly threshold 定义了根据所选模型返回的得分,被分类为正常图像与被视为异常图像之间的边界。默认阈值是在模型训练期间根据训练数据集选择的。然而,最佳阈值取决于您的特定应用要求以及您愿意接受的权衡。您可以根据需要对其进行调整。较高的阈值意味着检测到的异常较少,但检测到的异常具有更高的置信度。较低阈值意味着检测到更多异常,但其中一些可能是误报。
信息
非异常推理图像上的像素强度变化表明与正常图像有细微偏差。然而,只要这些偏差保持在预定义的 anomaly threshold 以下,图像就会被分类为正常。如果需要,该观察结果可用于手动调整阈值。
配置 vTool 后,您运行启动推理过程的配方。vTool 利用模型分析图像并对存在的对象进行分类。分析完成后,将返回 anomaly detection 结果。然后,您可以在引脚数据视图中查看结果。
选中 InferenceImage 引脚的详细输出

InferenceImage:检测到四个存在异常的区域,并在图像中使用像素强度热图进行了高亮显示。但是,其中只有一处超过了异常阈值,导致该图像被分类为“异常”。
Scores:整张图像中最高的异常得分为 52.5901。尽管检测到了四个异常区域,但只有其中一个高于异常阈值并获得了异常得分。
Classes:由于得分高于阈值,该图像已被分类为异常。
已选择 Regions 引脚的详细输出

Classes:由于得分高于阈值,该图像已被分类为异常。
Scores:整张图像中最高的异常得分为 52.5901。
Regions:异常区域已高亮显示(如截图中的箭头所示)。与推理图像输出不同,区域输出仅标记图像中异常得分高于特定值的那些部分。
配置 vTool#
要配置 Anomaly Detection vTool:

-
在 vTool Settings 区域的 Recipe Management 窗格中,单击 Open Settings 或双击该 vTool。
随即打开 Anomaly Detection 对话框。 -
在 Server Selection 区域中,选择您要连接的服务器。
服务器必须正在运行才能连接到它。- 选项 1:手动输入 Triton Inference Server 的 IP 地址和端口。
- 选项 2:在下拉列表中选择服务器的 IP 地址 / 主机名和端口。
-
点击 Connect 以建立连接。
随后,vTool 将加载可用的模型。 -
在 模型选择 区域中,在下拉列表中选择包含所需模型的 bundle。
选择 bundle 后,下拉列表下方的区域将填充该 bundle 的详细信息,以便您确认选择的是正确的 bundle。
-
如果未列出所需的 bundle,请点击 部署新模型 下拉列表中的

这将打开 pylon AI Agent ,允许您部署更多模型。
部署新模型后,您必须点击 刷新 按钮。 -
在 Detection Settings 区域中,为您的热图选择所需的色图。
-
在 Detection Settings 区域中,根据需要调整异常阈值。
异常阈值是模型的一部分。更改它可能会产生不良后果。信息
此区域中可用的参数取决于所选的模型。某些参数仅在选择特定模型后才可用。默认值由模型提供。
-
单击确定。
您可以在 pin data view 中查看异常检测的结果。在此处,您可以选择要显示的输出。
输入#
图像#
直接从 Camera vTool 或从输出图像的 vTool(例如 Image Format Converter vTool)接受图像。
- 数据类型:图像
- 图像格式:8 位到 16 位彩色图像
ROI#
接受来自 ROI Creator vTool 或输出矩形的任何其他 vTool 的感兴趣区域。如果输入了多个矩形,则将第一个矩形用作单个感兴趣区域。
- Data type: RectangleF, RectangleF Array
输出#
类#
返回每个输入图像的类别(正常或异常)。
- 数据类型:字符串数组
得分#
返回该类别的异常得分。这表明检测到的异常的严重程度,即图像为异常的可能性有多大。请注意,此值不是概率,并且根据模型不同,它可以从非常小到非常大的数字不等。它只能结合所定义的阈值进行解释。
- 数据类型:浮点数组
热图#
返回热图。此输出可以禁用。热图不用于在 pin data view 中可视化异常。它们是表示每个像素异常得分的浮点值图像,如果希望在应用程序中进行进一步分析,则会使用它们。
- 数据类型:图像数组
区域#
返回每个预测异常的区域。此输出可以禁用。区域是通过对热图值进行阈值化计算得出的。异常得分高于特定值的像素被分组到一个区域中,从而将正常区域与异常区域分离开来。
- 数据类型:区域数组
InferenceImage#
返回带有热图叠加层的输入图像,以便在 pin data view 中可视化异常。此输出可以禁用。
- 数据类型:图像
Payload#
返回有关用于评估的 Inference Server 性能的附加信息。只有在 Debug Settings 参数组的 Features - All 窗格中启用它时,此输出 pin 才会可用。
- 数据类型:字符串
相关的 vTools#
典型前置项#
-
Visual Anomaly (VisA) 访问于 DATE,网址为 https://registry.opendata.aws/visa。Zou, Yang, Jongheon Jeong, Latha Pemula, Dongqing Zhang, and Onkar Dabeer. "SPot-the-Difference Self-Supervised Pre-training for Anomaly Detection and Segmentation." arXiv preprint arXiv:2207.14315 (2022).