Is there a way to streamline the creation and validation of machine-learning algorithms at the edge? It’s a question that SensiML answered in a popular presentation during the Virtual ST Developers Conference 2020. AI had a significant presence at the show. We even saw it at the roundtable with design houses hosted by the ST Blog. During the discussions, panelists explained how customers are starting to request products with machine learning capabilities. We thus thought it was essential to sit down with Chris Roger, CEO and Founder of SensiML, a member of the ST Partner program, to get more context on the scope and importance of the tools his team presented at the ST Developers Conference.
The Challenge: Front-end Data Collection
Even though experts have been talking about it for years, machine learning at the edge is still a young technology. As a result, engineers often have to rely on a lot of different tools and complex workflows. Teams may thus face greater challenges as they move from one step of their development process to the next. SensiML solves this problem with an end-to-end toolkit covering data capture, algorithm generation, and validation. Moreover, the SensiML solution is also transparent and extensible with a GUI and Python IDE. Hence, teams won’t outgrow it once they start mastering machine learning applications, but it remains accessible to novices. Indeed, the company offers many tutorials, and the video above explains how engineers can use the SensiML toolkit. We, therefore, thought that it was essential to drive the conversation further and decided to talk to Chris about some of the major pitfalls of TinyML applications and what his teams are doing to optimize workflows further.
Data Acquisition
SensiML Data Depot and SensorTile.box Support
Data capture is in itself a difficult problem to solve because those that don’t have data must make substantial investments to get it since those who do have it would rather keep it to themselves than share it. SensiML is, therefore, a unique partner because the company addresses both issues. First of all, it offers a Data Depot that serves as a dataset library. Some of the samples even come with tutorials to help teams that are new to machine learning applications. Second of all, the SensiML toolkit connects to the SensorTile.box and uses ST’s sensor platform to collect information. The video presentation above actually shows how to use our board to capture fan vibrations quickly. All it takes is a few clicks, and the SensiML software can stream a sensor’s data over a serial port.
From BLE to MQTT
As Chris explained during our conversation,
“The ability to rapidly connect a SensorTile board and immediately capture data is the fruit of our partnership with ST. SensiML started working on the first version of the SensorTile and received feedback from the ST teams. Our engineers then proceeded to work on the SensorTile.box and the STWIN SensorTile kit. We will also be supporting the LSM6DSOX and its machine learning core by sharing simple decision tree models that showcase different approaches to waking up the MCU.”
The SensiML CEO also told us how his engineers used the SensorTile to evaluate the limitations of Bluetooth Low Energy. The protocol’s low data rate forced them to rely on the external memory card because the system couldn’t stream everything at once. The SensiML teams, therefore, realized they needed something more robust going forward, especially for industrial applications. Chris explained that his teams worked on using the MQTT protocol to interface with the ST sensors. It took time, but they were finally able to use MQTT over serial to reduce their overhead while benefitting from a much higher data rate. Today, SensiML users can simply take advantage of all that work by only selecting an option.
Optimizing Workflows
Automatic Labeling
Another reason the SensiML presentation was compelling was that it addressed a challenge too often overlooked by designers: labeling. Teams with one or more AI projects under their belt know how hard data collection can be. We recently highlighted this fact when we shared how ST engineers came up with our Baby Crying Detector application. Data acquisition is challenging. However, once engineers have datasets, they still need to label them, which is another complex process with tremendous repercussions. Most competing frameworks start with gargantuan CSV files that get very unwieldy. Such data structure is ripe for errors in part because the labeling process becomes so tedious.
SensiML solves this problem with tools that capture signals and label them. For instance, its data insight technology can automate labeling operations. Users first characterize a few dozen examples. The toolkit then extrapolates to spot what it believes are identical samples. Hence, engineers only need to validate the tool’s automatic labels or change a few misrepresented data. Ultimately, the process becomes a lot simpler, faster, and much more pleasant. SensiML also offers versioning features. If teams work on multiple datasets and wish to backtrack to an earlier annotation because of rising issues, they can use a rollback feature to return to a preferred session.
Using STM32CubeMX and LSM6DSOX
The video above explains the SensiML workflow well and shows how engineers can develop a machine learning application faster. Additionally, Chris also told us that the next step in workflow optimization is better interaction with STM32CubeMX. As he laid out,
“SensiML is working on ways to interface with the ST configuration tool. Our software works well with the SensorTile.box, but STM32CubeMX opens us to all sorts of custom and development boards. Our goal is to make the utility part of our workflow, so users spend less time in it. We have a series of files within SensiML for sensors and MCUs configurations. Instead of users manually generating them, our teams did the work for them to hasten our customers’ prototyping phase.”