Back to articles
SensiML: Adding Real-Time Intelligence to Sensors
Making sensors more intelligent has required substantial investment in machine learning algorithms. The SensiML platform aims to bring that cost crashing down.
There’s few people who will disagree that there is massive potential in machine learning (ML) and artificial intelligence (AI) technologies for the next evolution of Industrial IoT solutions. However, there’s also significant barriers for developers wanting to get started, or move beyond the basics.
Companies looking to harness these opportunities will have to invest significant resources in testing and experimentation. Algorithms must be tested against real data to truly measure business impact, something that may be difficult for small companies or even large companies with no experience of AI/ML to contemplate.
Machine learning out-of-the-box
Rather than hiring teams of data scientists, other solutions are coming to market. One of those, SensiML, is capable of auto-generating machine learning inferencing code for complex sensors like motion and vibration pattern recognition. We’re interested in this because SensiML can run locally on the nRF52 and also supports out-of-the-box connectivity to the Nordic Thingy:52 prototyping platform.
The business was born out of a project at Intel. When the company cancelled the project, the team felt there was plenty of value and potential and so the core group acquired the project to continue it independently in 2017.
Extracting data value, without data scientists
It aims to solve a problem for developers of niche consumer and industrial projects. That being, how can you use an algorithm to extract value from the raw data from a sensor-based embedded device, without hiring teams of data scientists?
“For high volume consumer product companies such as FitBit, it’s justifiable. Not so for a small startup or even a larger company targeting a more specific application or variable use case, such as a motor with vibration sensors to detect unusual operation across many different environments,” explains SensiML’s Chris Rogers.
Machine learning algorithms
The SensiML platform enables someone with development skills and application experience to generate machine learning algorithms. There are two ways of working with SensiML, as a general user or a more technical user.
At the advanced level you can programmatically interact with the SensiML AI code generation service using the full power of Python and command-line coding. The general user mode has a GUI interface that allows users to enter constraints (e.g. available RAM), parameters (for accuracy) and then hit a button to generate candidate models.
Read more: Machine Learning at the Edge
“A lot of applications can use classic learning methods such as decision trees and distance based classifiers. Simple machine learning approaches often work well when combined with automated feature extraction as SensiML supports and they need much less computing power than a full deep learning neural network. In the end, the best algorithm is the one that delivers the desired performance most efficiently,” explains Rogers.
Works with Nordic
SensiML can run locally on the nRF52 and also supports out-of-the-box connectivity to the Thingy:52. The SensiML team is also looking at future support for the nRF91 series.
“The challenge with complex sensing is that there is a lot of richness in the raw data. It’s impractical to stream all of that, so ideally you pre-process the data and only send what you’re interested in. With the M4 and BLE radio integrated, the Nordic nRF52 has enough power to do that,” says Rogers.
SensiML out in the wild
The number of potential application areas for SensiML are many and varied. Rogers says there’s been a lot of interest from industries that require predictive maintenance: “There’s a lot of customer interest in being able to understand the data that comes from measuring vibrations, for example.”
Other interesting application areas include building intelligence into smart devices. This could be voice recognition technology or sound recognition, for example, a microwave being able to recognize popcorn being cooked and when to shut off, i.e. when the popping noises from popcorn have subsided.
The passive infrared sensors in smart lighting solutions can also benefit, explains Rogers:
“There’s effectively a two pixel camera in a common passive infrared sensor. Typically the two pixels compare signals differentially and if there is a change, that’s recorded as movement. But with SensiML you can tap into those elements as waveforms and begin to recognise patterns such as direction of movement or any exaggerated movement such as the waving of arms or running. But it could also be used for monitoring occupancy of meeting rooms or bathrooms. It solves the privacy issue of not wanting cameras.”
The next generation of wearables
Rogers believes there’s also plenty of potential in taking fitness-based wearables to the next level:
“Such devices could move beyond measuring the amount of exercise into the quality of exercise. For example, by measuring the gait during a run. We have collected accelerometer and gyro data from people on treadmills. A fitness coach then rated technique and recorded faults such as heel strike and excess leg rotation by watching the video and labelled everything. From this, we created a classifier than enables the prospect of a virtual running coach providing real-time analysis and feedback locally on the device.”
The long tail of intelligent IoT applications
These are just a few of literally countless applications enabled by local AI/ML running on low power connected devices such as those powered by the nRF52. What has stood in the way of realizing such diverse usages has been the complexity, skillset, and time required to implement the underlying sensor processing algorithms driving such applications.
Auto code-generating AI tools like SensiML are now available to IoT developers to enable this otherwise complicated effort quickly and efficiently. Learn more about SensiML at sensiml.com