DetectAnomalies - Amazon Lookout for Vision

终止支持通知:2025年10月31日, AWS 将停止对亚马逊 Lookout for Vision 的支持。2025 年 10 月 31 日之后,你将无法再访问 Lookout for Vision 主机或 Lookout for Vision 资源。如需更多信息,请访问此博客文章

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

DetectAnomalies

检测所提供图像中的异常。

DetectAnomalies 的响应中包括一个布尔预测值(预测图像中包含一个异常或多个异常),以及一个对所做预测的置信度值。如果模型是分割模型,则响应中包括以下内容:

  • 一个掩码图像,其中会分别用一种独特的颜色覆盖每种异常类型。您可以使 DetectAnomalies 将掩码图像存储在共享内存中,也可以用图像字节的形式返回掩码。

  • 异常类型覆盖的图像区域百分比。

  • 掩码图像上异常类型的十六进制颜色。

注意

DetectAnomalies 一起使用的模型必须处于运行状态。您可以通过调用 DescribeModel 来获取当前的状态。要开始运行模型,请参阅 StartModel

DetectAnomalies 支持交错 RGB888 格式的压缩位图(图像)。第一个字节代表红色通道,第二个字节代表绿色通道,第三个字节代表蓝色通道。如果您以其他格式(如 BGR)提供图像,则 DetectAnomalies 所做的预测会不正确。

默认情况下,OpenCV 对图像位图使用 BGR 格式。如果要使用 OpenCV 捕获图像以供 DetectAnomalies 分析,则必须先将图像转换为 RGB888 格式,然后才能将其传递给 DetectAnomalies

支持的最小图像尺寸为 64 x 64 像素。支持的最大图像尺寸为 4096 x 4096 像素。

您可以通过 protobuf 消息或通过共享内存段发送图像。如果将大尺寸图像序列化到 protobuf 消息中,可能会显著增加调用 DetectAnomalies 时的延迟。为了尽可能降低延迟,我们建议您使用共享内存。

rpc DetectAnomalies(DetectAnomaliesRequest) returns (DetectAnomaliesResponse);

DetectAnomaliesRequest

DetectAnomalies 的输入参数。

message Bitmap { int32 width = 1; int32 height = 2; oneof data { bytes byte_data = 3; SharedMemoryHandle shared_memory_handle = 4; } }
message SharedMemoryHandle { string name = 1; uint64 size = 2; uint64 offset = 3; }
message AnomalyMaskParams { SharedMemoryHandle shared_memory_handle = 2; }
message DetectAnomaliesRequest { string model_component = 1; Bitmap bitmap = 2; AnomalyMaskParams anomaly_mask_params = 3; }

Bitmap

您要使用 DetectAnomalies 分析的图像。

width

以像素为单位的图像宽度。

height

以像素为单位的图像高度。

byte_data

在 protobuf 消息中传递的图像字节。

shared_memory_handle

在共享内存段中传递的图像字节。

SharedMemoryHandle

代表一个 POSIX 共享内存段。

name

POSIX 内存段的名称。有关创建共享内存的信息,请参阅 shm_open

size

从偏移量开始的图像缓冲区大小(以字节为单位)。

offset

从共享内存段开始,到图像缓冲区开头的偏移量(以字节为单位)。

AnomalyMaskParams

用于输出异常掩码的参数。(分割模型)。

shared_memory_handle

如果未提供 shared_memory_handle,则包含掩码的图像字节。

DetectAnomaliesRequest

model_component

包含要使用的模型的 AWS IoT Greengrass V2 组件的名称。

bitmap

您要使用 DetectAnomalies 分析的图像。

anomaly_mask_params

用于输出掩码的可选参数。(分割模型)。

DetectAnomaliesResponse

DetectAnomalies 的响应。

message DetectAnomalyResult { bool is_anomalous = 1; float confidence = 2; Bitmap anomaly_mask = 3; repeated Anomaly anomalies = 4; float anomaly_score = 5; float anomaly_threshold = 6; }
message Anomaly { string name = 1; PixelAnomaly pixel_anomaly = 2;
message PixelAnomaly { float total_percentage_area = 1; string hex_color = 2; }
message DetectAnomaliesResponse { DetectAnomalyResult detect_anomaly_result = 1; }

异常

表示在图像上发现的异常。(分割模型)。

name

在图像中发现的异常类型的名称。name 对应训练数据集中的异常类型。该服务会自动将背景异常类型插入到 DetectAnomalies 的响应中。

pixel_anomaly

与覆盖异常类型的像素掩码相关的信息。

PixelAnomaly

与覆盖异常类型的像素掩码相关的信息。(分割模型)。

total_percentage_area

异常类型覆盖的图像区域百分比。

hex_color

一个十六进制颜色值,表示图像上的异常类型。颜色对应训练数据集中使用的异常类型的颜色。

DetectAnomalyResult

is_anomalous

指示图像是否包含异常。true 表示图像包含异常。false 表示图像正常。

confidence

DetectAnomalies 对预测准确度的置信度。confidence 是介于 0 和 1 之间的浮点值。

anomaly_mask

如果未提供 shared_memory_handle,则包含掩码的图像字节。(分割模型)。

异常

在输入图像中发现的 0 个或多个异常的列表。(分割模型)。

anomaly_score

一个数字,用于量化所预测的图像异常与无异常图像的偏差程度。anomaly_score 是一个浮点值,范围介于 0.0(与正常图像的偏差最小)到 1.0(与正常图像的偏差最大)之间。即使预测图像为正常,Amazon Lookout for Vision 也会返回一个 anomaly_score 值。

anomaly_threshold

一个数字(浮点数),用于确定图像的预测分类什么情况下为正常或异常。如果图像的 anomaly_score 等于或大于 anomaly_threshold 的值,则视为异常。如果 anomaly_score 值低于 anomaly_threshold,则表示图像正常。您在训练模型时,Amazon Lookout for Vision 会计算供模型使用的 anomaly_threshold 值。您无法设置或更改 anomaly_threshold 的值。

状态代码

代码 数字 描述

OK

0

DetectAnomalies 成功做出了预测

UNKNOWN

2

发生了未知错误。

INVALID_ARGUMENT

3

一个或多个输入参数无效。有关更多详细信息,请查看错误消息。

NOT_FOUND

5

未找到具有指定名称的模型。

RESOURCE_EXHAUSTED

8

没有足够的资源来执行此操作。例如,Lookout for Vision Edge Agent 无法跟上对 DetectAnomalies 的调用速度。有关更多详细信息,请查看错误消息。

FAILED_PRECONDITION

9

对未处于 RUNNING 状态的模型调用了 DetectAnomalies

INTERNAL

13

出现内部错误。