Mask Detection with ESP32
This tutorial will demonstrate the development process of mask detection using SSCMA based on ESP32.
TIP
Before starting, we recommend that you should read ESP32 - Deploy first.
Preparation
Please refer to ESP32 - Deploy - Prerequisites.
Train Model
The mask detection feature is based on the FOMO model, in this step you need a FOMO model weight with the suffix .pth
, you have two ways to get the model weight.
Download the pre-trained model from our Model Zoo.
Refer to Training - FOMO Models to train the FOMO model and get the model weights using PyTorch and SSCMA by yourself.
Export Model
Since the trained model is not suitable for running directly on edge computing devices, we need to export it to a TFLite format with a .tflite
suffix, and you have two ways to get the exported model (with model weights contained).
Download the exported TFLite model from our Model Zoo.
Refer to Export - PyTorch to TFLite to convert the FOMO model from PyTorch format to TFLite format by yourself.
Convert Model
After completing Export Model, we need a further process to convert it to a format that supported by embedded devices.
Go to the
examples/esp32
directory (run at the root of the SSCMA project):shcd examples/esp32
Convert the TFLite model to binary file:
shpython3 tools/tflite2c.py --input <TFLITE_MODEL_PATH> --name fomo --output_dir components/modules/model --classes='("unmask", "mask")'
TIP
You need to replace <TFLITE_MODEL_PATH>
with the path of the TFLite model obtained in the Export Model step, the final C file will be exported to the components/modules/model
directory in the SSCMA/example/esp32
directory by default.
Deploy Model
This is the last and most important step to complete the mask detection, in this step you need to compile and flash the firmware to the ESP32 MCU. Please refer to ESP32 - Deployment - Compile and Deploy to complete the deployment of the model.