# ModelAssistant: computer vision squeezed onto a microcontroller

> SenseCraft Model Assistant takes OpenMMLab algorithms and makes them fit on chips drawing a fraction of a watt, with the deployment target, the export format and the dependency pins all chosen around one question: what is the machine at the other end?

**Seeed-Studio/ModelAssistant** — Seeed SenseCraft Model Assistant is an open-source project focused on embedded AI. 🔥🔥🔥

- Repository: https://github.com/Seeed-Studio/ModelAssistant
- Website: https://sensecraftma.seeed.cc/
- Stars: 446 · Forks: 65
- Language: Python
- License: not declared
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/seeed-studio-modelassistant

## The target draws less than 0.3 watts

Seeed SenseCraft Model Assistant, SSCMA to everyone who has read the source, exists to put trained models on hardware that cannot afford a GPU. The intro states the goal plainly: state-of-the-art AI algorithms for embedded devices, aimed at microcontrollers and single-board computers rather than servers. The concrete targets named are microprocessors similar to the ESP32, some Arduino development boards, and embedded SBCs such as the Raspberry Pi. The power figure in the intro is the one worth holding on to, real-world deployments on MCUs with less than 0.3 watts of consumption, because every design decision downstream follows from it. Training itself is meant to be cheap too: you train on data you collected, and the training process emits visualizations so you can read the model's performance instead of guessing from a loss curve.

## Anomaly detection is the easy half, vision is the hard half

The algorithm families split by how much work they ask of the device. Anomaly detection is framed as cheap data collection first: gather normal data, and anything outside it counts as anomalous, which suits a factory line where the failure case is rare and unlabelled. A variational autoencoder is the model named for it. Computer vision is the opposite problem, because object detection, image classification, image segmentation and pose estimation cannot run on low-cost hardware in their usual form, so SSCMA optimizes them for speed and accuracy on low-end devices. Real-time multi-object detection uses RTMDet, and quantization-aware training is listed alongside it as the mechanism that makes those models survive on a microcontroller. The scenario-specific category is narrower still: reading analog instruments, reading traditional digital meters, and classifying audio. Meter recognition gets its own heading in the update log rather than sitting inside the generic vision list, which tells you how much of the recent work went into instrument panels rather than general scenes, and the update log also claims the training process itself is now much faster than before, with the visualization tool, training and export command-line interface refactored.

## TFLite for the chip, ONNX for the Linux box

Export format is chosen by the target, and the README is unambiguous about which is which. TensorFlow Lite is mainly used on microcontrollers, while ONNX is mainly used on devices with Embedded Linux. Formats that need special handling, such as TensorRT and OpenVINO, were already well supported by OpenMMLab, so SSCMA did not have to invent them. What the project added is TFLite export aimed at microcontrollers, and those exported files can be converted to TensorRT and to UF2, which is the drag-and-drop form: you copy the file onto the device and the firmware picks it up. YOLOv8, YOLOv8 Pose and Nvidia TAO models reach microcontrollers through SSCMA-Micro, with ByteTrack added for real-time tracking, and Swift YOLO is the project's own lightweight detector for hardware with little compute, built for exactly the case where a general detector will not fit. The conversion path from TFLite into the TensorRT and UF2 forms is what makes the training side and the device side meet.

## The dependency file reads like a diary of broken installs

requirements.txt carries comments that explain three pins better than any changelog would. numpy is held at >=1.23.0,<2.3.0 for two reasons at once: the cap keeps Colab's preinstalled numba, which needs numpy below 2.3, working, and 2.2.x also satisfies the numpy==2.2.6 pin that onnx2tf uses inside tools/export.py, while numpy 1.x stays acceptable for legacy setups. onnxscript>=0.1.0 is present because torch.onnx.export has used the dynamo exporter by default since PyTorch 2.9 and dynamo needs it. The strangest pin is ethos-u-vela, held between 4.2.0 and 5.1.0: anything at or below 4.1.0 ships source distributions only and fails to build on modern Python, 3.7.0 declares no dependencies at all and so becomes pip's favourite backtracking target in conflict-heavy environments, and 5.1.0 is the version verified against tools/export.py.

## pyproject.toml exists to stop pip taking the old path

The build configuration is three lines and a comment, and the comment is the point. pyproject.toml declares a PEP 517 and 660 build through setuptools, with setuptools>=64,<81 and wheel as requirements, and explains that without it pip falls back to the deprecated legacy setup.py egg_info and setup.py develop path, which newer pip releases have removed and which fails outright on modern environments such as Colab. setup.py still exists and does two unusual things: it reads the version by executing sscma/version.py into an explicit namespace dict, because writing into a function's locals through exec no longer works on Python 3.13 and later, and it carries its own parse_requirements helper, documented in its docstring as runnable with python -c "import setup; print(setup.parse_requirements())". So both install paths, the new and the legacy, are deliberately covered.

## The Node side builds the documentation and nothing else

The JavaScript presence in this repository is a docs site. package.json sets type module, takes vitepress as its only devDependency at latest, adds vitepress-plugin-mermaid, and defines three scripts: docs:dev running vitepress dev docs with the host pinned to 0.0.0.0, docs:build, and docs:preview. Nothing in it builds or ships the Python package, and a package-lock.json at the root exists for that one docs toolchain. The page even carries a badge for a docs-build workflow, so the docs publish is the only thing under CI that this repository advertises. The Python tree itself is the usual research layout: configs/, mmengine/, sscma/, tools/, tests/, scripts/ and docs/, with MANIFEST.in and setup.cfg beside setup.py and pyproject.toml. The documentation is published at sensecraftma.seeed.cc with a separate installation page, the repository carries Colab notebooks so the training path can be tried without local hardware, and a deployment toolkit is published separately at seeed-studio.github.io/SenseCraft-Web-Toolkit. The README links a LICENSE file, while the repository root listing has no such file, and README_zh-CN.md sits beside the English one.

## Three release candidates, then three years of commits

The release history stops well before the commit history. The newest tags are 2.0.0rc1 on 10 May 2023, 2.0.0rc2 on 14 July 2023 and 2.0.0rc3 on 21 August 2023, all release candidates, and the middle one is titled EdgeLab releases v2.0.0rc2, a name from an earlier branding. After that the repository kept moving: the last push to main is dated 4 September 2026, and the project is not archived. Practically, that means an install from PyPI gets you a 2023 candidate while the interesting algorithm work lives on main. Around the core sit five named tools rather than one: SSCMA-Model-Zoo for pre-trained models, SSCMA-Web-Toolkit renamed to SenseCraft AI for browser-based training and deployment, SSCMA-Micro for getting models onto microcontrollers, Seeed-Arduino-SSCMA as the Arduino library for devices running that firmware, and Python-SSCMA for talking to those devices and for higher-level work. The acknowledgements name OpenMMLab, ONNX and NCNN as the code the implementation leans on.

## Conclusion

ModelAssistant fits a maker building an anomaly detector or a meter reader on a microcontroller, since the whole toolchain is built around TFLite, UF2 drag-and-drop and boards like the ESP32, and the deployment examples in the intro run below 0.3 watts. It does not fit a team that wants a maintained release train, because the newest tag is 2.0.0rc3 from August 2023 while the last push is dated 4 September 2026, so you are installing from main. Before you plan the install, read requirements.txt: numpy is capped below 2.3 to keep Colab working, onnxscript is there because PyTorch 2.9 exports through dynamo by default, and ethos-u-vela is held between 4.2.0 and 5.1.0 for wheel availability on Python 3.12 and newer. Also check what licence applies, since the repository root carries no LICENSE file.

## FAQ

### What hardware does SenseCraft Model Assistant target?

Microcontrollers and single-board computers. The page names microprocessors similar to the ESP32 and some Arduino boards, plus embedded SBCs such as the Raspberry Pi, and its intro claims real-world deployments on MCUs consuming less than 0.3 watts.

### Which model export format should I use with ModelAssistant?

TensorFlow Lite is used mainly on microcontrollers and ONNX mainly on devices running Embedded Linux. TensorRT and OpenVINO were already well supported by OpenMMLab, and the TFLite export can be converted to TensorRT and to UF2, which you drag onto the device for deployment.

### Why does SenseCraft Model Assistant pin numpy below 2.3?

The requirements file gives the reason in a comment: the cap keeps Colab's preinstalled numba, which requires numpy below 2.3, working, and 2.2.x also satisfies the numpy==2.2.6 pin that onnx2tf uses in tools/export.py. numpy 1.x at 1.23.0 or newer stays acceptable for legacy setups.

### Why is ethos-u-vela capped at 5.1.0 in ModelAssistant?

The pin keeps releases that ship prebuilt wheels for Python 3.12 and newer. Versions at or below 4.1.0 are source distributions only and fail to build on modern Python, and 3.7.0 declares no dependencies at all, which makes it the version pip backtracks to first in conflict-heavy environments. 5.1.0 is the one verified against tools/export.py.

### How many releases does SenseCraft Model Assistant have?

Three are listed, all release candidates: 2.0.0rc1 on 10 May 2023, 2.0.0rc2 on 14 July 2023 and 2.0.0rc3 on 21 August 2023. The last push to the main branch is dated 4 September 2026, so work continued on main long after the newest tag.

## Sources

- [Issues](https://github.com/Seeed-Studio/ModelAssistant/issues)
- [Project website](https://sensecraftma.seeed.cc/)
- [README](https://github.com/Seeed-Studio/ModelAssistant/blob/main/README.md)
- [Releases](https://github.com/Seeed-Studio/ModelAssistant/releases)
- [Seeed-Studio/ModelAssistant on GitHub](https://github.com/Seeed-Studio/ModelAssistant)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/seeed-studio-modelassistant
