概述

神经网络经过训练,能够识别包括火灾或火焰在内的图像,可以使火灾探测系统更可靠且更具成本效益。本教程演示如何使用新发布的 Python API 用于 Arm NN 推理引擎,将图像分类为”Fire”而不是”非火灾”。

什么是臂 NN 和 PyArmNN?

ARM NN是 CPU、GPU 和 NPO 的推理引擎。它在设备上执行 ML 模型,以便根据输入数据进行预测。Arm NN 支持有效转换现有神经网络框架,如 TensorFlow Lite、TensorFlow、ONNX 和 Caffe,允许它们高效运行,无需修改臂 Cortex-A CPU、Arm Mali GPU 和 Arm Ethos NPO。

PyArmNN 是新开发的用于 Arm NN SDK 的 Python 扩展。在本教程中,我们将使用 PyArmNN API 运行火灾探测图像分类模型 fire_detection.tflite,并将推理性能与树莓派上的 TensorFlow Lite 进行比较。

Arm NN 提供 TFLite 解析器 armnnTfLiteParser,这是一个用于将 TensorFlow Lite FlatBuffers 文件定义的神经网络加载到 Arm NN 运行时的库。我们将使用 TFLite 解析器来分析”Fire”与”非火灾”图像分类的火灾检测模型。

您可能还喜欢:
Python REST API 示例(与微服务) = 第 1 部分

我们需要什么?

  • 树莓派。我测试与树莓派 4 与树栖 10 操作系统.Pi 设备由 Arm Cortex-A72 处理器提供支持,该处理器可以利用 Arm NN SDK 的强大功能来加速 ML 性能。
  • 在继续项目设置之前,您需要签出并为您的树莓派构建 Arm NN 版本 19.11 或更高版本。说明在这里
  • PyArmNN 封装
  • fire_detection.tflite,从本教程生成并转换为 TensorFlow 精简模型。

使用 PyArmNN 运行 ML 推理

要在设备上运行 ML 模型,我们的主要步骤是:

  • 导入 pyarmnn 模块
  • 加载输入图像
  • 创建解析器并加载网络
  • 选择后端、创建运行时并优化模型
  • 执行推理
  • 解释和报告输出

导入 pyarmnn 模块

Python