Skip to content

使用 ESP32 实现口罩检测

本教程将基于 SSCMA 示范使用 ESP32 实现口罩检测的开发流程。

TIP

在开始前,我们建议您先阅读 ESP32 - 部署教程

准备工作

请参考 ESP32 - 部署教程 - 先决条件

训练模型

口罩检测功能基于 FOMO 模型实现,在这一步您需要一个后缀为 .pth 的 FOMO 模型权重,您有两种方法获取该模型权重:

导出模型

由于训练得到的模型并不适合直接在边缘计算设备上运行,我们首先需要将其导出为后缀是 .tflite 的 TFLite 格式,您有两种方法获取导出的模型 (包含模型权重):

转换模型

在完成导出模型后,我们还需要进一步处理,将其转换为嵌入式设备支持的格式。

  • 进入 examples/esp32 目录 (在 SSCMA 项目根目录运行):

    sh
    cd examples/esp32
  • 转换 TFLite 模型为二进制 C 文件

    sh
    python3 tools/tflite2c.py --input <TFLITE_MODEL_PATH> --name fomo --output_dir components/modules/model --classes='("unmask", "mask")'

TIP

您需要将 <TFLITE_MODEL_PATH> 替换为在模型导出步骤取得的 TFLite 模型的路径,转换生成的 C 文件将默认输出到 SSCMA/example/esp32 目录中的 components/modules/model 目录。

部署模型

这是完成口罩检测的最后一步,也是最重要的一步,在这一步您需要编译并刷写固件到 ESP32 MCU。请参考 ESP32 - 部署教程 - 编译和部署完成模型的部署。

运行示例

FOMO Mask Detection

在 Apache 2.0 授权下发布