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

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

TensorFlow 精简版物体检测

TensorFlow Lite 物体检测组件 (aws.greengrass.TensorFlowLiteObjectDetection) 包含样本推理代码,用于使用 TensorFlow Lite 和样本预训练的单发检测 (SSD) MobileNet 1.0 模型进行物体检测推断。此组件使用变体TensorFlow 精简版物体检测模型存储TensorFlow 精简版运行时间组件作为依赖项来下载 TensorFlow Lite 和示例模型。

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

版本

此组件有以下版本:

  • 2.1.x

类型

组件是通用组件 (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.22.4。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.7

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.6

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.5

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.4

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.3

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.2

2.1.2。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.1

2.1。

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性
2.1.0

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

依赖关系 兼容版本 依赖关系类型
Greengrass 核 >=2.0 软性
TensorFlow 精简版图像分类模型存储 >=2.1.0 硬性
TensorFlow 精简版 >=2.5.0 硬性

配置

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

accessControl

(可选)包含授权策略的对象,该策略允许组件向默认通知主题发布消息。

默认值:

{ "aws.greengrass.ipc.mqttproxy": { "aws.greengrass.TensorFlowLiteObjectDetection:mqttproxy:1": { "policyDescription": "Allows access to publish via topic ml/tflite/object-detection.", "operations": [ "aws.greengrass#PublishToIoTCore" ], "resources": [ "ml/tflite/object-detection" ] } } }
PublishResultsOnTopic

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

默认值:ml/tflite/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

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

默认值:

{ "model": "TensorFlowLite-SSD" }
UseCamera

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

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

默认值:false

注意

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

设置UseCamera为时true,还必须创建符号链接,以使推理组件能够从运行时组件创建的虚拟环境中访问您的摄像机。,Update component configurations

注意

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

设置UseCamera为时true,还必须创建符号链接,以使推理组件能够从运行时组件创建的虚拟环境中访问您的摄像机。,Update component configurations

本地

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

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

查看此组件的日志

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

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

更改日志

Pash Passenger Passenger Passenger Passenger

版本

更改

2.1.7

Greengrass Nucleus 2.8.0。

2.1.6

Greengrass h Nucleus 2.7。

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

Bug fixes and improvements
  • 修复了导致样本 TensorFlow Lite 对象检测推理结果中的边界框不准确的图像缩放问题。

2.1.0

初始版本。