Improving Gesture Recognition Consistency on ESP32 with TinyML
Hello, I'm working on a gesture recognition project using
TinyML
on an ESP32
with an accelerometer (MPU6050). My goal is to detect specific gestures (e.g., wave, swipe) using machine learning. I trained a model using Edge Impulse and successfully deployed it onto the ESP32. However, when I run the inference code, I get inconsistent results, and sometimes the output is incorrect even when performing the same gesture. Occasionally, the ESP32 throws the following error:
Here is the inference code I'm running on the ESP32:
I suspect the issue might be related to timing or resource limitations on the ESP32. How can I fix the watchdog error and improve the consistency of gesture detection? Should I adjust the sampling rate, modify the inference loop, or implement additional optimizations for TinyML on the ESP32?3 Replies
There are two issues here likely to be addressed individually
- Your Model's accuracy
- Task starvavation caused by the ml_task, seems its not yielding in time or stuck, your watchdog might also be misconfigured, also maybe you have work in your idle task that isn't yielding
Thanks! I think you're right about the model accuracy. And for task starvation, how can I make sure
ml_task
yields properly and set up the watchdog to avoid triggering?We've had quite a few session on rtoses and how to use them, they should come in handy in this situation.