DLR 对象检测 - AWS IoT Greengrass
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

DLR 对象检测

DLR 对象检测组件 (aws.greengrass.DLRObjectDetection)包含示例推理代码,用于使用深度学习运行时以及预先训练的模型样本。此组件使用变量DLR 对象检测模型存储DLR组件作为依赖关系来下载 DLR 和示例模型。

要将此推理组件与自定义训练的 DLR 模型一起使用,创建自定义版本相关模型存储元件。要使用自己的自定义推理代码,您可以使用此组件的配方作为模板创建自定义推理组件

Versions

此组件具有以下版本:

  • 2.1.x

  • 2.0.x

Requirements

要部署组件,必须满足组件及其dependencies。此组件具有以下要求:

  • 在运行亚马逊 Linux 2 或 Ubuntu 18.04 的 Greengrass 核心设备上,GNU C 库(glibc) 版本 2.27 或更高版本安装在设备上。

  • 在 ARMV7L 设备上,如树莓派,依赖于在设备上安装的 OpenCV Python。运行以下命令来安装这些依赖项:

    sudo apt-get install libopenjp2-7 libilmbase23 libopenexr-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libgtk-3-0 libwebp-dev

Dependencies

当您部署组件时,AWS IoT Greengrass 还会部署其依赖关系的兼容版本。您必须满足组件及其所有依赖关系的要求才能成功部署组件。本部分列出了发布版本以及定义每个依赖关系的组件版本的语义版本约束。您也可以在组件的中查看组件的依赖关系。AWS IoT Greengrass 控制台。在组件详细信息页面上,查找附属物列表。

2.1.x

下表列出了此组件 2.1.x 版本的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核心 >=2.0.0 <2.2.0 软性
DLR 对象检测模型存储 ~2.1.0 硬性
DLR ~1.6.0 硬性
2.0.x

下表列出了此组件 2.0.x 版本的依赖关系。

依赖关系 兼容版本 依赖关系类型
Greengrass 核心 ~2.0.0 软性
DLR 对象检测模型存储 ~2.0.0 硬性
DLR ~1.3.0 软性

Configuration

此组件提供了以下配置参数,您可以在部署组件时自定义这些参数。

2.1.x
accessControl

包含授权策略,允许组件向默认通知主题发布消息。

默认值:

aws.greengrass.ipc.mqttproxy: "aws.greengrass.DLRObjectDetection:mqttproxy:1": policyDescription: Allows access to publish via topic ml/dlr/object-detection. operations: - "aws.greengrass#PublishToIoTCore" resources: - "ml/dlr/object-detection"
PublishResultsOnTopic

(可选)要在其中发布推断结果的主题。如果修改此值,则还必须修改resources中的accessControl参数以匹配您的自定义主题名称。

默认值:ml/dlr/object-detection

Accelerator

要使用的加速器。支持的值为 cpugpu

相关模型组件中的示例模型仅支持 CPU 加速。要将 GPU 加速与其他自定义模型一起使用,创建自定义模型组件来覆盖公共模型组件。

默认值:cpu

ImageDirectory

(可选)推理组件读取图像的设备上文件夹的路径。您可以将此值修改为设备上具有读/写访问权限的任何位置。

默认值:/greengrass/v2/packages/artifacts-unarchived/component-name/object_detection/sample_images/

注意

如果将UseCameratrue为时将忽略此配置参数。

ImageName

(可选) 推理组件使用作为使预测输入的图像的名称. 该组件在ImageDirectory。默认情况下,组件使用默认图像目录中的示例图像。AWS IoT Greengrass 支持以下图像格式:jpegjpgpng, 和npy

默认值:objects.jpg

注意

如果将UseCameratrue为时将忽略此配置参数。

InferenceInterval

(可选)推断代码进行的每一个预测之间的时间(以秒为单位)。示例推理代码无限期运行,并在指定的时间间隔重复其预测值。例如,如果要使用摄像机拍摄的图像进行实时预测,则可以将其更改为较短的间隔。

默认值:3600

ModelResourceKey

(可选)在从属公共模型组件中使用的模型。仅当使用自定义组件覆盖公共模型组件时,才修改此参数。

默认值:

armv7l: "DLR-yolo3-armv7l-cpu-ObjectDetection" x86_64: "DLR-yolo3-x86_64-cpu-ObjectDetection" aarch64: "DLR-yolo3-aarch64-gpu-ObjectDetection"
UseCamera

(可选)定义是否使用连接到 Greengrass 核心设备的摄像机的图像。当您将此值设置为true,示例推理代码将访问设备上的摄像机,并在所捕获的图像上本地运行推理。值的值为ImageNameImageDirectory参数将被忽略。确保运行此组件的用户具有对摄像机存储捕获图像的位置的读/写访问权限。

默认值:false

注意

当您查看此组件的配方时,UseCamera配置参数不会显示在默认配置中。不过,您可以修改此参数的值。配配配置更新当您部署组件时。

当您设置UseCameratrue,还必须创建符号链接,以使推理组件能够从运行时组件创建的虚拟环境访问摄像机。有关将摄像机与示例推理组件结合使用的更多信息,请参阅更新组件配置

2.0.x
MLRootPath

(可选)设备上推理组件读取图像和写入推理结果的文件夹路径。您可以将此值修改为运行此组件的用户具有读/写访问权限的设备上的任何位置。

默认值:/greengrass/v2/work/<component-name>/greengrass_ml

Accelerator

请勿修改。目前,加速器唯一支持的值是cpu,因为相关模型组件中的模型仅为 CPU 加速器编译。

ImageName

(可选) 推理组件使用作为使预测输入的图像的名称. 该组件在ImageDirectory。默认位置是 MLRootPath/images。AWS IoT Greengrass 支持以下图像格式:jpegjpgpng, 和npy

默认值:objects.jpg

InferenceInterval

(可选)推断代码进行的每一个预测之间的时间(以秒为单位)。示例推理代码无限期运行,并在指定的时间间隔重复其预测值。例如,如果要使用摄像机拍摄的图像进行实时预测,则可以将其更改为较短的间隔。

默认值:3600

ModelResourceKey

(可选)在从属公共模型组件中使用的模型。仅当使用自定义组件覆盖公共模型组件时,才修改此参数。

默认值:

armv7l: "DLR-yolo3-armv7l-cpu-ObjectDetection" x86_64: "DLR-yolo3-x86_64-cpu-ObjectDetection"

Changelog

下表描述了代码示例目录的更改。

Version

更改

2.1.1

新功能
  • 使用深度学习运行时v1.6.0

  • 添加对 Armv8 (AArch64) 平台上的示例对象检测支持。这扩展了对运行 NVIDIA Jetson 的 Greengrass 拉斯核心设备(如杰森纳米)的机器学习支持。

  • 启用摄像头集成以进行样本推理。使用新的UseCamera配置参数,以使示例推理代码能够访问 Greengrass 核心设备上的摄像头,并在所捕获的图像上本地运行推理。

  • 添加对向 AWS 云发布推理结果的支持。使用新的PublishResultsOnTopic配置参数指定要在其中发布结果的主题。

  • 将新的ImageDirectory配置参数,您可以为要执行推理的映像指定自定义目录。

错误修复和改进
  • 将推断结果写入组件日志文件,而不是单独的推理文件。

  • 使用 AWS IoT Greengrass 核心软件日志记录模块记录组件输出。

  • 使用 AWS IoT 设备开发工具包读取组件配置并应用配置更改。

2.0.4

初始版本。