跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

Anomaly Detection vTool#

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 网站。

Anomaly Detection vTool

运作原理#

假设您想要检查您的 PCB 生产线是否存在异常。

这是您的输入图像(图像来源:a),显示了一个带有弯曲引脚的 PCB:

显示 PCB 的输入图像

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

已选择动物 Anomaly Detection 捆绑包

接下来,配置检测设置:

  • 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 引脚的 Anomaly Detection

InferenceImage:检测到四个存在异常的区域,并在图像中使用像素强度热图进行了高亮显示。但是,其中只有一处超过了异常阈值,导致该图像被分类为“异常”。

Scores:整张图像中最高的异常得分为 52.5901。尽管检测到了四个异常区域,但只有其中一个高于异常阈值并获得了异常得分。

Classes:由于得分高于阈值,该图像已被分类为异常。

已选择 Regions 引脚的详细输出

已选择 Regions 引脚的 Anomaly Detection

Classes:由于得分高于阈值,该图像已被分类为异常。

Scores:整张图像中最高的异常得分为 52.5901。

Regions:异常区域已高亮显示(如截图中的箭头所示)。与推理图像输出不同,区域输出仅标记图像中异常得分高于特定值的那些部分。

配置 vTool#

要配置 Anomaly Detection vTool:

Anomaly Detection vTool 设置

  1. 在 vTool Settings 区域的 Recipe Management 窗格中,单击 Open Settings 或双击该 vTool。
    随即打开 Anomaly Detection 对话框。

  2. 在 Server Selection 区域中,选择您要连接的服务器。
    服务器必须正在运行才能连接到它。

    • 选项 1:手动输入 Triton Inference Server 的 IP 地址和端口。
    • 选项 2:在下拉列表中选择服务器的 IP 地址 / 主机名和端口。
  3. 点击 Connect 以建立连接。
    随后,vTool 将加载可用的模型。

  4. 在 模型选择 区域中,在下拉列表中选择包含所需模型的 bundle。
    选择 bundle 后,下拉列表下方的区域将填充该 bundle 的详细信息,以便您确认选择的是正确的 bundle。
    模型选择区域

  5. 如果未列出所需的 bundle,请点击 部署新模型 下拉列表中的
    部署新模型
    这将打开 pylon AI Agent ,允许您部署更多模型。
    部署新模型后,您必须点击 刷新 按钮。

  6. 在 Detection Settings 区域中,为您的热图选择所需的色图。

  7. 在 Detection Settings 区域中,根据需要调整异常阈值。
    异常阈值是模型的一部分。更改它可能会产生不良后果。

    信息

    此区域中可用的参数取决于所选的模型。某些参数仅在选择特定模型后才可用。默认值由模型提供。

  8. 单击确定。

您可以在 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 才会可用。

  • 数据类型:字符串

典型前置项#


  1. 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).