Piccolo AI is the open-source version of SensiML Analytics Studio, a software development toolkit for constructing sensor-based AI inference models optimzed to run on low-power microcontrollers and IoT edge platforms (ex. x86 embedded PCs, RPi, arm Cortex-A mobile processors). Piccolo AI is intended for individual developers, researchers, and AI enthusiasts and made available under the AGPLv3 license.
The Piccolo AI project includes:
- SensiML's ML Engine: The engine behind SensiML’s AutoML model building, sensor data management, model tracking, and embedded firmware generation
- Embedded ML SDK: SensiML's Inferencing and DSP SDK designed for building and running DSP & ML pipelines on edge devices
- Analytic Studio UI: An Intuitive web interface for working with the SensiML ML Engine to build TinyML applications
- SensiML Python Client: Allows programmatic access to the REST API services through Jupyter Notebooks
Piccolo AI is currently optimized for the classification of time-series sensor data. Common use cases enabled by Piccolo AI include:
Application | Example Use Cases | Piccolo AI Reference Application(s) | |
---|---|---|---|
Acoustic Event Detection |
Intrusion Detection Machinery / Appliance Monitoring Public Safety (ex. gunshot recogition) Vehicle Diagnostics Livestock Monitoring Worker Safety (ex. leak detection) |
Pump State Recognition Demo Smart Lock Demo |
|
Activity Recognition |
Human Gait Analysis Ergonomic Assessment Sport/Fitness Tracking Elder Care Monitoring |
Boxing Punch Classification Demo | |
Gesture Detection |
Touchless Machine Interfaces Smarthome Control Gaming Interfaces Driver Monitoring Interactive Retail Displays |
Wizard Wand Demo | |
Anomaly Detection |
Factory/Plant Process Control Predictive Maintenance Robotics Remote Monitoring |
Robotic Arm Anomaly Detection | |
Keyword Spotting |
Consumer Electronics UI Security (ex. Voice Authentication) HMI Command/Control |
Keyword Spotting Demo (Part 1,Part 2) |
|
Vibration Classification |
Predictive Maintenance Vehicle Monitoring Supply Chain Monitoring Machine State Detection |
Smart Drill Demo Fan State Demo |
Piccolo AI is not limited to only the applications listed above. Virtually any time-series sensor input(s) can be used to classify application-specific events of interest. Piccolo AI also provides support for regression models as well as basic feature transform outputs without classification. To learn more about Piccolo AI features and capabilities, see the product page.
The simplest way to get started learning and using the features in Piccolo AI is to sign up for an account on SensiML's managed SaaS service at SensiML Free Trial.
To install and manage Piccolo AI yourself, continue with the instructions and step-by-step installation video provided below.
To try out Piccolo AI on your machine, we recommend using Docker.
-
Install and start docker and docker-compose - https://docs.docker.com/engine/
- Note: Windows users will need to use the wsl2 backend. Follow the instructions here
- Note: If using Docker Desktop go to Preferences > Resources > Advanced and set Memory to at least 12GB.
-
Follow the post-installation instructions as well to avoid having to run docker commands as sudo user
-
Some functionality requires calling docker from within docker. To enable this, you will need to make the docker socket accessible to docker containers
sudo chmod 666 /var/run/docker.sock
-
By default the repository does not include docker images to generate model/compiler code for devices. You'll need to pull docker images for the compilers you want to use. See docker images:
docker pull sensiml/sml_x86_generic:9.3.0-v1.0 docker pull sensiml/sml_armgcc_generic:10.3.1-v1.0 docker pull sensiml/sml_x86mingw_generic:9.3-v1.0 docker pull sensiml/sensiml_tensorflow:0a4bec2a-v4.0
-
Make sure you have the latest sensiml base docker image version. If not, you can do a docker pull
docker pull sensiml/base
-
Make sure docker is running by checking your system tray icons. If it is not running then open Docker Desktop application in Windows to start the docker background service.
-
Open a Ubuntu terminal through Windows Subsystem for Linux
git clone https://github.com/sensiml/piccolo cd piccolo
-
Use docker compose to start the services
docker compose up
Login via the Web UI Interface
Go to your browser at http://localhost:8000
to log in to the UI. See the Getting Started Guide to get started.
The default username and password is stored in the src/server/datamanager/fixtures/default.yaml
file
username: [email protected]
password: TinyML4Life
To help you get up and running quickly, you may also find our video installation guide useful. Click on the video below for a complete walkthrough for getting Piccolo AI installed on a Windows 10 / 11 PC:
The Data Studio is SensiML's standalone Data Capture, Labeling, and Machine Learning Model testing application. It is a companion application to Piccolo AI, but it requires a subscription to use with your local Piccolo AI.
Upgrades will need to check out the latest code and run database.intialize container script which will perform any migrations. You may also need to pull the newest sensiml/base docker image in some cases when the underlying packages have been changed.
Piccolo AI is the open-source version of SensiML ML Engine. As such, it's features and capabilities align with the majority of those found in SensiML's ML Engine for which documentation can be found here.
For more information about our documentation processes or to build them yourself, see the docs README.
We welcome contributions from the community. See our contribution guidelines, see CONTRIBUTING.md.
Documentation for developers coming soon!
-
To report a bug or request a feature, create a GitHub Issue. Please ensure someone else hasn't created an issue for the same topic.
-
Need help using Piccolo AI? Reach out on the forum, fellow community member or SensiML engineer will be happy to help you out.