With the advent of TensorFlow Lite, and subsequently TensorFlow Lite Micro, machine learning has moved from CPUs and GPUs to mobile phones and SBCs, then finally to inexpensive MCUs. Boards like the Arduino Nano 33 BLE Sense and STM32F746 Discovery kit brought machine learning to devices whose cost is in the range of a night out, rather than a month's rent. But the announcement of TensorFlow Lite Micro support for the ESP32 means development targets with a cost more inline with a fancy coffee!
Despite their low price, ESP32s aren't the microcontroller equivalent of cheap gas station coffee! They offer dual cores to help keep up with the demands of TF Micro, and built-in Wi-Fi and Bluetooth in order to interact with the outside world. Devices like the ESP32-based ESP-EYE even offer onboard cameras for powerful ML applications like person detection!
In this guest post by Espressif Systems, creators of the ESP32 and ESP8266 platforms, the Espressif team walk through the creation of smart doorbell, based on the standard TF Micro
person_detection example, combined with an ESP-EYE development board. The ESP32 is able to detect a face in around 700ms using only one of its dual cores, the resultant image of which is emailed to the configured email address, so that you may decide whether to permit entry.
TensorFlow's docs include complete examples for getting started with the ESP32, using either the ESP-EYE or ESP32-DevKitC (via the Espressif IoT Development Framework), including the aforementioned person_detection, as well as a simple, yet instructive
hello_world, and the
micro_speech "yes"/"no" keyword detection example. The complete doorbell camera example can be found in Espressif's TensorFlow fork.