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

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

DLR 目标检测 DLR

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

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

版本

此组件有以下版本:

  • 2.1.1.1.1.6.0

  • 2.0.0

类型

组件是通用组件 (aws.greengrass.generic)。 Greengrass 核心运行组件的生命周期脚本。

有关更多信息,请参阅组件类型

操作系统

此组件可以安装在运行以下操作系统的核心设备上:

  • Linux

  • Windows

要求

此组件有以下要求:

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

  • 在 Raspberry Pi 等 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
  • 运行 Raspberry Pi OS Bullseye 的 Raspberry Pi 设备必须满足以下要求:

    • NumPy 版本 1.24 或更高版本 1.24。Raspberry Pi OS Bullseye 包含的 NumPy早期版本,因此您可以运行以下命令在设备 NumPy 上升级。

      pip3 install --upgrade numpy
    • 设备上启用了传统摄像机堆栈。Raspberry Pi OS Bullseye 包含一个默认启用且不兼容的新摄像机堆栈,因此您必须启用旧相机堆栈。

      启用旧版摄像机堆栈
      1. 运行以下命令打开 Raspberry Pi 配置工具。

        sudo raspi-config
      2. 选择接口选项

      3. 选择 “传统相机” 以启用旧版摄像机堆栈。

      4. 重启 Raspberry Pi。

附属物

部署组件时,Amazon IoT Greengrass还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及为每个依赖项定义组件版本的语义版本约束。您还可以在Amazon IoT Greengrass控制台中查看每个版本组件的依赖关系。在组件详细信息页面上,查找 “依赖关系” 列表。

2.1.10

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 <3.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.9

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.8

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.7

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.6

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.4 - 2.1.5

下表列出了此组件版本 2.1.4 到 2.1.5 的依赖关系。

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.3

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.2

下表列出了此组件版本 2.1.2。

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.1.1

下表列出了此组件版本 2.1.1。

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 >=2.0.0 软性
DLR 物体检测模型存储 ~2.1.0 硬性
德国航空航天中心 约1.6.0 硬性
2.0.x

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

依赖关系 兼容的版本 1.5 依赖关系类型
Greengrass 核 ~2.0.0 软性
DLR 物体检测模型存储 ~2.0.0 硬性
DLR ~1.3.0 软性

配置

此组件提供以下配置参数,您可以在部署组件时对其进行自定义。

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

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

默认值:ml/dlr/object-detection

Accelerator

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

依赖模型组件中的示例模型仅支持 CPU 加速。要将 GPU 加速用于不同的自定义模型,请创建一个自定义模型组件来覆盖公共模型组件。

默认值:cpu

ImageDirectory

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

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

注意

如果将的值设置UseCameratrue,则忽略此配置参数。

ImageName

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

默认值:objects.jpg

注意

如果将的值设置UseCameratrue,则忽略此配置参数。

InferenceInterval

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

默认值:3600

ModelResourceKey

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

默认值:

{ "armv7l": "DLR-yolo3-armv7l-cpu-ObjectDetection", "aarch64": "DLR-yolo3-aarch64-gpu-ObjectDetection", "x86_64": "DLR-yolo3-x86_64-cpu-ObjectDetection", "windows": "DLR-resnet50-win-cpu-ObjectDetection" }
UseCamera

(可选)定义是否使用连接到 Greengrass 核心设备的摄像机图像的字符串值。支持的值为 truefalse

将此值设置为时true,示例推理代码将访问设备上的摄像头,并在捕获的图像上本地运行推理。ImageNameImageDirectory参数的值将被忽略。确保运行此组件的用户对摄像机存储捕获图像的位置具有读/写权限。

默认值:false

注意

当您查看此组件的配方时,UseCamera配置参数不会出现在默认配置中。但是,部署组件时,可以在配置合并更新中修改此参数的值。

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

2.0.x
MLRootPath

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

默认值:/greengrass/v2/work/variant.DLR/greengrass_ml

默认值:/greengrass/v2/work/variant.TensorFlowLite/greengrass_ml

Accelerator

请勿修改。目前,加速器的唯一支持值是cpu,因为依赖模型组件中的模型仅针对 CPU 加速器进行编译。

ImageName

(可选)推理组件用作预测输入的图像的名称。该组件在中指定的文件夹中查找图像ImageDirectory。默认位置是MLRootPath/images。 Amazon IoT Greengrass支持以下图像格式:jpegjpgpng、和npy

默认值:objects.jpg

InferenceInterval

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

默认值:3600

ModelResourceKey

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

默认值:

{ armv7l: "DLR-yolo3-armv7l-cpu-ObjectDetection", x86_64: "DLR-yolo3-x86_64-cpu-ObjectDetection" }

本地日志文件

此组件使用以下日志文件。

Linux
/greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log
查看此组件的日志
  • 在核心设备上运行以下命令以实时查看此组件的日志文件。将 /greengrass/v2C:\greengrass\v2 替换为Amazon IoT Greengrass根文件夹的路径。

    Linux
    sudo tail -f /greengrass/v2/logs/aws.greengrass.DLRObjectDetection.log
    Windows (PowerShell)
    Get-Content C:\greengrass\v2\logs\aws.greengrass.DLRObjectDetection.log -Tail 10 -Wait

更改日志

下表说明此组件的每个版本的更改。

Version

变更

2.1.10

Greengrass 9.0

2.1.9

Greengrass 8.0

2.1.8

Greengrass 7.0

2.1.7

Greengrass 6.0

2.1.6

Greengrass 5.0

2.1.5

组件已全部发布Amazon Web Services 区域。

2.1.4

Greengrass 4.0

此版本在欧洲(伦敦)中不可用(eu-west-2)。

2.1.3

Greengrass 3.0

2.1.2

错误修复和改进
  • 修复了导致 DLR 对象检测推断结果样本中的边界框不准确的图像缩放问题。

2.1.1

新功能
  • 使用深度学习运行版本 1.6.0

  • 在 Armv8 (Aarch64) 平台上增加了对样本物体检测的支持。这扩展了对运行 NVIDIA Jetson 的 Greengrass 核心设备(例如 Jetson Nano)的机器学习支持。

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

  • 添加了对发布推理结果的支持Amazon Web Services 云。使用新的PublishResultsOnTopic配置参数指定要发布结果的主题。

  • 添加新的ImageDirectory配置参数,使您能够为要执行推理的图像指定自定义目录。

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

  • 使用 CAmazon IoT Greengrass ore 软件日志模块记录组件输出。

  • 使用读Amazon IoT Device SDK取组件配置并应用配置更改。

2.0.4

初始版本。