适用于微控制器的 LiteRT 旨在运行机器学习模型 微控制器和其他只有几千字节内存的设备通过 核心运行时在 Arm Cortex M3 上只需 16 KB 大小,并且可以运行许多 模型。它不需要操作系统支持,也不需要任何标准 C 或 C++ 或动态内存分配。
为什么微控制器很重要
微控制器通常是小型低功耗计算设备, 需要基本计算的硬件中嵌入。通过将机器 微控制器的学习,我们能够提高数十亿人的智能 包括家用电器和互联网 物联网设备,无需依赖昂贵的硬件或可靠的互联网 这通常受带宽和功率限制, 会导致延迟时间较长这也有助于保护隐私 离开设备想象一下有没有可以适应日常生活的智能家电 常规的智能工业传感器 问题和日常操作,以及可以帮助孩子在快乐中学习的神奇玩具 和轻松愉悦的方式
支持的平台
适用于微控制器的 LiteRT 是用 C++ 17 编写的,需要 32 位 平台。它经过了针对多种处理器(基于 Arm Cortex-M 系列 并已移植到其他架构,包括 ESP32。通过 框架以 Arduino 库的形式提供。它还可以生成项目 例如 Mbed它是开源的,可以包括在 任何 C++ 17 项目。
支持以下开发板:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- STM32F746 Discovery 套件
- Adafruit EdgeBadge
- 适用于微控制器的 Adafruit LiteRT 套件
- Adafruit 循环游乐场 Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Wio Terminal:ATSAMD51
- Himax WE-I Plus EVB Endpoint AI 开发板
- Synopsys DesignWare ARC EM 软件开发平台
- Sony Spresense
浏览示例
每个示例应用都
GitHub
并包含一个 README.md
文件,说明如何将其部署到受支持的
平台。一些示例还有使用
平台,如下所示:
- Hello World -
演示了使用 LiteRT 进行
微控制器
<ph type="x-smartling-placeholder">
- </ph>
- 使用任何受支持设备的教程
- 微语音 -
使用麦克风捕获音频,以检测字词“是”和“no”
<ph type="x-smartling-placeholder">
- </ph>
- 使用 SparkFun Edge 的教程
- 人员检测 - 使用图像传感器捕获相机数据,以检测是否存在 人物
工作流程
要在 微控制器:
- 训练模型:
<ph type="x-smartling-placeholder">
- </ph>
- 生成一个小型 TensorFlow 模型,该模型适合您的目标设备和 包含支持的操作。
- 转换为 LiteRT 模型 LiteRT 转换器。
- 转换为 C 字节数组: 标准工具将其存储在 只读程序内存。
- 使用 C++ 库和进程在设备上进行推理 结果。
限制
适用于微控制器的 LiteRT 旨在满足 微控制器开发。如果您使用的是功能更强大的设备(例如 例如 Raspberry Pi 这样的嵌入式 Linux 设备, LiteRT 框架可能更易于集成。
应考虑以下限制:
- 只支持有限的部分 TensorFlow 运算
- 仅支持部分设备
- 需要手动内存管理的低阶 C++ API
- 不支持设备端训练