v2.5.0 - ML Detector, Training Pipeline & Pre-built Firmware #84
francescopace
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Highlights
ML Detector
First experimental release of a neural network-based motion detector, available in both C++ (ESPHome) and Python (Micro-ESPectre).
detection_algorithm: mlin YAMLThe pre-trained model shipped with this release was trained on a limited dataset collected in a single environment. It performs well in initial testing, but we need your help to make it better. If you try the ML detector, consider contributing baseline (empty room) and movement recordings from your environment — the more diverse the training data, the more robust the model becomes. See ML_DATA_COLLECTION.md for how to collect and submit data via pull request.
For architecture and feature details, see ALGORITHMS.md.
Training Pipeline
Collect labeled data, train a model, and export weights for both platforms:
Exports
ml_weights.py(Python),ml_weights.h(C++), and TFLite checkpoint. See ML_DATA_COLLECTION.md for the full workflow.Pre-built Firmware & Easy Install
New
release.ymlworkflow builds and publishes firmware for all supported chips (ESP32, S2, S3, C3, C5, C6) on every tagged release.SETUP.md now offers two installation paths:
esphome runworkflowBased on PR #77 by @WLaoDuo.
Removed
PCA Detection Algorithm: While PCA itself is a well-known statistical technique, our implementation was based on Espressif's open-source esp-radar library. Since Espressif has transitioned this library to closed source, we have removed our PCA implementation to ensure full compliance with our GPLv3 license.
MVS remains the recommended algorithm with excellent performance. Future development will focus on the ML detector, which shows very promising results in early testing and requires no initial calibration.
P95 Calibrator: NBVI (Normalized Band Variance Index) is now the sole calibration algorithm. NBVI consistently outperforms P95 by selecting non-consecutive subcarriers for better spectral diversity and resilience to narrowband interference.
Improvements
Micro-ESPectre (R&D Platform)
meCLI now supports ESP32, C3, S3, C6 with auto-detection and SHA256 firmware verificationsrc/modules now usetry/except ImportErrorpattern for MicroPython/CPython compatibilityFor Contributors
Architecture changes and internal improvements
Architecture
ICalibratorinterface andBaseCalibratorbase class, merging all functionality intoNBVICalibratorsegmentation_window_size(default: 75) is now defined in a single source of truth (DETECTOR_DEFAULT_WINDOW_SIZEin C++,SEG_WINDOW_SIZEin Python) and passed to both detector and calibrator10 × window_size(default: 750 packets), automatically adapts if window size changesSEG_WINDOW_SIZEfromconfig.pyinstead of hardcoded valuesThis discussion was created from the release v2.5.0 - ML Detector, Training Pipeline & Pre-built Firmware.
Beta Was this translation helpful? Give feedback.
All reactions