Tags:
view all tags
---+ Preparing a custom version of !MicroPython with !TensorFlow ---++ Introduction For work with ML algorithms I use the [[esp32-cam]] module because it is small, cheap and has a camera installed on it. To get it ready for ML models we must first create a custom version of !MicroPython. Michael O'Cleirigh's github repository (https://github.com/mocleiri/tensorflow-micropython-examples) contains all the tools to do just this. Here are the steps to build this custom !microPython version: * Download the repository:<br />git clone https://github.com/mocleiri/tensorflow-micropython-examples tflite-micro-micropython * The steps to build the firmware can be found in tflite-micro-micropython/.github/workflows/build_esp32.yml<br />In my case the Espressif development environment <b>espidf </b>has already been downloaded and set up earlier. I use espidf version 4.3.1, the latest stable version at time of writing.<br /><br />Activate the virtual Python environment needed for espidf (if venvwrapper is installed: _workon espidf_)<br />Make sure that the modules _Pillow_ and <i>Wave </i>have been installed on this virtual environment. If not, install them with pip: * pip3 install Pillow * pip3 install Wave * Setup the sub-modules needed for tflm: * cd tflite-micro-micropython * git submodule init * git submodule update --recursive * Regenerate the microlite/tfm directory * cd tensorflow * ../micropython-modules/microlite/prepare-tflm-esp.sh * Setup the sub-modules for the ESP32 port of !MicroPython * cd ../micropython * git submodule update --init lib/axtls * git submodule update --init lib/berkeley-db-1.xx * Get the esp32-camera driver from Espressif * cd .. * cd tflm-esp-kernels * git submodule update --init examples/person_detection/esp32-camera * Build the !MicroPython cross compiler * cd ../micropython/mpy_cross * make * cd .. (the micropython folder of tflite-micro-micropython) * git apply ../boards/esp32/MICROLITE_SPIRAM_CAM/micropython.patch <br />MicroPython allocates the full SPIRAM installed on the esp32-cam module for its heap. However, the esp32-camera driver needs some SPIRAM for its image buffer. The patch modifies main.c in micropython/ports/esp32 such that part of the SPIRAM is kept free for the camera driver. * cd boards/esp32/MICROLITE_SPIRAM_16M (when using the TTGO T7 Mini32 V1.5 ESP32-WROVER-B CPU board) or<br />cd boards/esp32/MICROLITE_SPIRAM_CAM when using the esp32-cam module<br /> * idf.py clean build (this builds the !MicroPython firmware) * flash the custom !MicroPython interpreter * idf.py flash Once you have flashed the custom interpreter you can check if all the Python modules are available: <img alt="tflite_micropython.png" height="180" src="%ATTACHURL%/tflite_micropython.png" title="tflite_micropython.png" width="811" /> Since all the necessary drivers and libraries are now ready in !MicroPython we can go ahead and try the !TensorFlow Lite Micro examples. -- %USERSIG{UliRaich - 2022-01-31}% ---++ Comments %COMMENT%
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
png
tflite_micropython.png
r1
manage
22.3 K
2022-01-31 - 13:25
UliRaich
Edit
|
Attach
|
Watch
|
P
rint version
|
H
istory
:
r9
<
r8
<
r7
<
r6
<
r5
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Topic revision: r7 - 2022-09-22
-
UliRaich
Home
Site map
AFNOG web
Embedded_Systems web
IoT_Course_English web
IoT_Course_French web
Main web
Sandbox web
TWiki web
IoT_Course_English Web
Create New Topic
Index
Search
Changes
Notifications
RSS Feed
Statistics
Preferences
P
View
Raw View
Print version
Find backlinks
History
More topic actions
Edit
Raw edit
Attach file or image
Edit topic preference settings
Set new parent
More topic actions
Account
Log In
Register User
Edit
Attach
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback