发布支持 ESP32 的 TensorFlow Lite Micro,助力更智能的家居互联!

客座博文 / Vikram Dattu、Aditya Patwardhan、Kedar Sovani,来自 Espressif Systems

ESP32 简介:Wi-Fi MCU

我们很高兴宣布 TensorFlow Lite Micro 现已支持 ESP32 芯片组。

ESP32 是一款功能丰富的 Wi-Fi/BT/BLE MCU(Micro-controller,微控制器),业余爱好者和技术极客们常用它构建各种精彩酷炫的项目,对现实世界的数据/物体进行感知或修改,通常部署在如灯泡、开关、冰箱和空调等智能家居应用的连接中。

ESP32 的独特之处在于它是一款独特的 SoC,可以从原型快速推进到批量生产。它拥有广泛的社区、众多的开发套件和大量的教程/SDK,是快速原型设计的优异载体,几乎能够涵盖所有您感兴趣的任何垂直领域。多合一软件包 (Wi-Fi/BT/MCU) 和现有的实际大量部署使其成为构建最终产品的理想选择。

ESP32 已广泛用于智能家居/互联设备项目,将各种传感器和执行器连接到微控制器,感知环境并采取相应行动。在 ESP32 上执行 TensorFlow Lite for Microcontrollers 将为各种由本地推理触发的用例提供场景。ESP32 有 双核 CPU 和一系列优化,更易运行繁重的 TF Micro 工作负载。Wi-Fi 回传有助于推送远程事件,并根据推理触发动作。

人员检测或门铃摄像头?

举个例子,我们修改了大家可能都很熟悉的 person_detection 示例,把它变成一个智能门铃摄像头。我们使用 ESP-EYE 开发者套件进行此演示。注意,这个示例使用的是人员检测(它在人脸出现在摄像头前时进行检测),而不是人员识别(识别这个人是谁)。

ESP-EYE 开发者套件 包括 ESP32 Wi-Fi/BT MCU 和一个 200 万像素的摄像头。

实际操作

我们将在示例中使用这个摄像头进行观察,如果检测到附近有人就会发出电子邮件通知。

example

自行构建

  1. 订购 ESP-EYE:您可以从最喜欢的经销商处或从 这里 获取 ESP-EYE 开发套件。您需要一条 USB 转 micro-USB 线来连接到 Windows/Linux/macOS 主机。
  2. 克隆代码库:GitHub - espressif/tensorflow: An Open Source Machine Learning Framework for Everyone
  3. 设置开发主机:使用 ESP32 交叉构建所需的工具链和实用工具设置开发主机。按照 ESP-IDF 入门指南的说明设置工具链和 ESP-IDF。
  4. 生成示例:使用以下命令生成示例项目:
make -f tensorflow/lite/micro/tools/make/Makefile TARGET=esp generate_doorbell_camera_esp_project
  1. 构建示例:

a. 转到示例项目目录

cd tensorflow/lite/micro/tools/make/gen/esp_xtensa-esp32/prj/doorbell_camera/esp-idf

b. 使用以下命令克隆 esp32-camera 组件:

$ git clone https://github.com/espressif/esp32-camera components/esp32-camera

c. 配置摄像头和电子邮件地址:

idf.py menuconfig

d. 进入 Camera Pins 配置SMTP 设置 菜单,选择摄像头详细信息以及电子邮件详细信息。

e. 构建示例:

idf.py build
  1. 刷新并运行程序:使用以下命令刷新并运行程序:
idf.py --port /dev/ttyUSB0 flash monitor
  1. 接下来,只要检测到人脸,程序就会向配置的电子邮件地址发送电子邮件。

未来计划

试过了门铃摄像头示例,您可以感受一下 TF Micro 代码库中的其他应用:hello_worldmicro_speech

ESP32 对于微控制器非常强大。在时钟频率 240MHz 下,仅用一个内核即可在 1 秒内完成检测(大约 700 毫秒;我们即将推出额外优化来进一步缩短时间)。这样,另一个内核就可以自由处理应用中的其他任务。

当然,《TinyML》一书也是深入了解 TensorFlow Lite for Microcontrollers 的绝佳资源。

image

原文:Announcing TensorFlow Lite Micro support on the ESP32
中文:TensorFlow 微信公众号