终止支持通知: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 |
|
UNKNOWN |
2 |
发生了未知错误。 |
INVALID_ARGUMENT |
3 |
一个或多个输入参数无效。有关更多详细信息,请查看错误消息。 |
NOT_FOUND |
5 |
未找到具有指定名称的模型。 |
RESOURCE_EXHAUSTED |
8 |
没有足够的资源来执行此操作。例如,Lookout for Vision Edge Agent 无法跟上对 |
FAILED_PRECONDITION |
9 |
对未处于 RUNNING 状态的模型调用了 |
INTERNAL |
13 |
出现内部错误。 |