本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
TensorFlow 精简版图像分类
TensorFlow Lite 图像分类组件 (aws.greengrass.TensorFlowLiteImageClassification
) 包含示例推理代码,用于使用 TensorFlow Lite
要将此推理组件与自定义训练的 TensorFlow Lite 模型一起使用,请创建依赖模型存储组件的自定义版本。要使用自己的自定义推理代码,您可以使用此组件的配方作为模板来创建自定义推理组件。
版本
此组件有以下版本:
-
2.1.x
类型
此组件是一个通用组件 (aws.greengrass.generic
)。Greengrass 核心运行组件的生命周期脚本。
有关更多信息,请参阅 组件类型。
操作系统
此组件可以安装在运行以下操作系统的核心设备上:
Linux
Windows
要求
此组件具有以下要求:
-
在运行亚马逊 Linux 2 或 Ubuntu 18.04 的 Greengrass 核心设备上,设备上安装了 GNU
C 库 (glibc) 2.27 或更高版本。 -
在 armv7L 设备上,例如 Raspberry Pi,设备上安装了 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.22.4 或更高版本。Raspberry Pi OS Bullseye 包含的早期版本 NumPy,因此你可以运行以下命令在设备 NumPy 上升级。
pip3 install --upgrade numpy
-
设备上已启用旧版相机堆栈。Raspberry Pi OS Bullseye 包含一个新的相机堆栈,该堆栈默认处于启用状态且不兼容,因此您必须启用旧版相机堆栈。
启用旧版相机堆栈
-
运行以下命令打开 Raspberry Pi 配置工具。
sudo raspi-config
-
选择接口选项。
-
选择旧版相机以启用旧版相机堆栈。
-
重启 Raspberry Pi。
-
-
依赖项
部署组件时, AWS IoT Greengrass 还会部署其依赖项的兼容版本。这意味着您必须满足组件及其所有依赖项的要求才能成功部署该组件。本节列出了此组件已发布版本的依赖关系以及定义每个依赖项的组件版本的语义版本限制。您还可以在AWS IoT Greengrass 控制台
配置
此组件提供以下配置参数,您可以在部署该组件时对其进行自定义。
accessControl
-
(可选)包含授权策略的对象,该策略允许组件向默认通知主题发布消息。
默认值:
{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteImageClassification:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/image-classification.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/image-classification" ] } } }
PublishResultsOnTopic
-
(可选)您要发布推理结果的主题。如果您修改此值,则还必须修改
accessControl
参数resources
中的值以匹配您的自定义主题名称。默认:
ml/tflite/image-classification
Accelerator
-
你要使用的加速器。支持的值为
cpu
和gpu
。依赖模型组件中的示例模型仅支持 CPU 加速。要在不同的自定义模型中使用 GPU 加速,请创建一个自定义模型组件来覆盖公共模型组件。
默认:
cpu
ImageDirectory
-
(可选)设备上推理组件读取图像的文件夹路径。您可以将此值修改为设备上您有权读/写访问的任何位置。
默认:
/packages/artifacts-unarchived//greengrass/v2
component-name
/image_classification/sample_images/注意
如果将的值设置
UseCamera
为true
,则忽略此配置参数。 ImageName
-
(可选)推理组件用作预测输入的图像的名称。该组件将在中指定的文件夹中查找图像
ImageDirectory
。默认情况下,该组件使用默认图像目录中的示例图像。 AWS IoT Greengrass 支持以下图像格式:jpeg
、jpg
png
、和npy
。默认:
cat.jpeg
注意
如果将的值设置
UseCamera
为true
,则忽略此配置参数。 InferenceInterval
-
(可选)推理代码每次预测之间的时间(以秒为单位)。示例推理代码无限期运行,并在指定的时间间隔内重复其预测。例如,如果您想使用摄像机拍摄的图像进行实时预测,则可以将其更改为较短的间隔。
默认:
3600
ModelResourceKey
-
(可选)在依赖的公共模型组件中使用的模型。仅当使用自定义组件覆盖公共模型组件时,才修改此参数。
默认值:
{ "model": "TensorFlowLite-Mobilenet" }
UseCamera
-
(可选)字符串值,用于定义是否使用连接到 Greengrass 核心设备的摄像机的图像。支持的值为
true
和false
。将此值设置为时
true
,示例推理代码将访问设备上的摄像头,并在本地对捕获的图像运行推理。ImageName
和ImageDirectory
参数的值将被忽略。确保运行此组件的用户对相机存储捕获图像的位置具有读/写权限。默认:
false
本地日志文件
此组件使用以下日志文件。
查看此组件的日志
-
在核心设备上运行以下命令以实时查看此组件的日志文件。将
或/greengrass/v2
C:\greengrass\v2
替换为 AWS IoT Greengrass 根文件夹的路径。
更改日志
下表描述了该组件的每个版本中的更改。
版本 |
更改 |
---|---|
2.1.12 |
Greengrass nucleus 2.12.5 版本的版本已更新。 |
2.1.11 |
Greengrass nucleus 版本 2.12.0 版本的版本已更新。 |
2.1.10 |
Greengrass nucleus 版本 2.11.0 版本的版本已更新。 |
2.1.9 |
Greengrass nucleus 版本 2.10.0 版本的版本已更新。 |
2.1.8 |
Greengrass nucleus 版本 2.9.0 版本的版本已更新。 |
2.1.7 |
Greengrass nucleus 版本 2.8.0 版本的版本已更新。 |
2.1.6 |
Greengrass nucleus 版本 2.7.0 版本的版本已更新。 |
2.1.5 |
Greengrass nucleus 版本 2.6.0 版本的版本已更新。 |
2.1.4 |
Greengrass nucleus 版本 2.5.0 版本的版本已更新。 |
2.1.3 |
Greengrass nucleus 版本 2.4.0 版本的版本已更新。 |
2.1.2 |
Greengrass nucleus 版本 2.3.0 版本的版本已更新。 |
2.1.1 |
Greengrass nucleus 版本 2.2.0 版本的版本已更新。 |
2.1.0 |
初始版本。 |