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

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

DLR 图像分类

DLR 图像分类组件 (aws.greengrass.DLRImageClassification) 包含示例推理代码,用于执行图像分类推理深度学习运行时和 resnet-50 型号。此组件使用变体DLR 图像分类模型商店运行时 DLR组件作为下载 DLR 和示例模型的依赖关系。

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

版本

此组件具有以下版本:

  • 2.1.x

  • 2.0.x

类型

组件是一个通用组件(aws.greengrass.generic)。这些区域有:Greengrass 核运行组件的生命周期脚本。

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

操作系统

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

  • Linux

  • Windows

要求

此组件具有以下要求:

  • 在运行亚马逊 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
  • 在树莓派设备上,设备上安装了 OpenCV-Python。运行以下命令以安装 opencv-Python。

    pip3 install opencv-python
  • 在运行树莓派 OS Bullseye 的树莓派设备上, NumPy 安装在设备上 1.22.4 或更高版本。树莓派 OS Bullseye 包括一个早期版本的 NumPy,因此你可以运行以下命令来升级 NumPy 在设备上。

    pip3 install --upgrade numpy

附属物

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

2.1.6

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

依赖关系 兼容的版本 依赖项类型
Greengrass 核 >=2.0.0 软性
DLR 图像分类模型商店 ~2.1.0 硬性
DLR ~1.6.0 硬性
2.1.4 - 2.1.5

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

依赖关系 兼容的版本 依赖项类型
Greengrass 核 >=2.0.0 软性
DLR 图像分类模型商店 ~2.1.0 硬性
DLR ~1.6.0 硬性
2.1.3

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

依赖关系 兼容的版本 依赖项类型
Greengrass 核 >=2.0.0 软性
DLR 图像分类模型商店 ~2.1.0 硬性
DLR ~1.6.0 硬性
2.1.2

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

依赖关系 兼容的版本 依赖项类型
Greengrass 核 >=2.0.0 软性
DLR 图像分类模型商店 ~2.1.0 硬性
DLR ~1.6.0 硬性
2.1.1

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

依赖关系 兼容的版本 依赖项类型
Greengrass 核 >=2.0.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 软性

配置

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

2.1.x
accessControl

(可选)包含授权策略这样一来,组件便可以将消息发布到默认通知主题。

默认值:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.DLRImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/dlr/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/dlr/image-classification" ] } } }
PublishResultsOnTopic

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

默认值:ml/dlr/image-classification

Accelerator

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

相关模型组件中的示例模型仅支持 CPU 加速。要在不同的自定义模型中使用 GPU 加速,创建自定义模型组件以覆盖公共模型组件。

默认值:cpu

ImageDirectory

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

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

注意

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

ImageName

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

默认值:cat.jpeg

注意

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

InferenceInterval

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

默认值:3600

ModelResourceKey

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

默认值:

{ "armv7l": "DLR-resnet50-armv7l-cpu-ImageClassification", "aarch64": "DLR-resnet50-aarch64-cpu-ImageClassification", "x86_64": "DLR-resnet50-x86_64-cpu-ImageClassification", "windows": "DLR-resnet50-win-cpu-ImageClassification" }
UseCamera

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

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

默认值:false

注意

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

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

2.0.x
MLRootPath

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

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

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

Accelerator

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

相关模型组件中的示例模型仅支持 CPU 加速。要在不同的自定义模型中使用 GPU 加速,创建自定义模型组件以覆盖公共模型组件。

默认值:cpu

ImageName

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

默认值:cat.jpeg

InferenceInterval

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

默认值:3600

ModelResourceKey

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

默认值:

armv7l: "DLR-resnet50-armv7l-cpu-ImageClassification" x86_64: "DLR-resnet50-x86_64-cpu-ImageClassification"

本地日志文件

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

Linux
/greengrass/v2/logs/aws.greengrass.DLRImageClassification.log
Windows
C:\greengrass\v2\logs\aws.greengrass.DLRImageClassification.log

查看此组件的日志

  • 在核心设备上运行以下命令以实时查看此组件的日志文件。Replace/绿草/v2要么C:\greengrass\v2随着通往Amazon IoT Greengrass根文件夹。

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

更改日志

下表介绍组件各个版本的更改。

Version

更改

2.1.6

将版本更新为 Greengrass Nucus 2.5.0 版。

2.1.5

组件全部发布Amazon Web Services 区域.

2.1.4

Greengrass 将版本更新为 2.4.0 版。

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

2.1.3

Greengrass 将版本更新为 2.3.0 版。

2.1.2

Greengrass 将版本更新为 2.2.0 版。

2.1.1

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

  • 在 Armv8 (AArch64) 平台上添加对示例图像分类的支持。这扩展了对运行 NVIDIA Jetson 的 Greengrass 核心设备(如 Jetson Nano)的机器学习支持。

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

  • 将对发布推理结果的支持添加到Amazon Web Services 云. 使用新的PublishResultsOnTopic配置参数,以指定要在其中发布结果的主题。

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

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

  • 使用Amazon IoT Greengrass用于记录组件输出的核心软件记录模块。

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

2.0.4

初始版本。