|(Image source: a91254284 from Pixabay)|
Machine learning for embedded systems has been gaining a lot of momentum over the past several years. For embedded developers, machine learning was something that data scientists were concerned with and something that lived up on the cloud, far from the resource-constrained microcontrollers that embedded developers work with on a daily basis.
What seems like almost overnight, however, machine learning is suddenly finding its way to microcontroller and edge devices. To some developers, this may seem baffling or at least intriguing. But why is machine learning so important to embedded developers now? Let’s explore a few possibilities.
First, machine learning can help embedded devices solve problems that would traditionally be very hard for developers to code. For example, imagine that we want to write some code that can take an image that is just 28 x 28 pixels and detect what digit was written in a range from 0 to 9. For a developer that is hand-coding the solution this is an extremely complex problem to solve since writing a digit will never result in an identical image. The hand-writer may start in a different place, write the digit on an angle, or any other number of variations. However, machine learning turns this tough coding problem into a trivial issue whose solution can be written in a few hundred lines of code or less, depending on the programming language that is used.
Next, machine learning can help developers implement an embedded system that performs tasks that are easy for a human to do, but traditionally difficult and expensive for a computer. For example, object detection and recognition are easy for humans along with speech recognition, but again very hard for a computer. Using machine learning, we can create systems like the digital assistants we are all familiar with to recognize keywords to wake the system or detect objects that are of interest on an assembly line or in the path of a rover or drone. With machine learning, these obstacles are not just easy to overcome; they can be solved with hardware that costs well under $100 using microcontrollers.
Finally, machine learning can allow developers to easily scale the way that their system behaves as the device is placed into new situations or provided with new data. For example, in a traditional embedded system, if the device suddenly needs a new behavior based on the inputs that are provided to it, the developers now need to go in and modify the code to add in the new behavior. If the device instead was using machine learning, there would not necessarily be a need to change any of the system code. Instead, the machine-learning model, inference, may just need to be retrained with the additional desired behaviors. This is far easier than hand coding updates to the software.
Machine learning offers the opportunity to provide embedded software developers with new tools and technologies that have the potential to ease development costs and off-load some of the programming workload. Machine learning is also opening up new potential applications and features that will forever change how users expect their systems to behave. While machine learning is just finding its way to the embedded space, it’s coming faster than many may realize. Now is the time to start getting up to speed on the technologies involved and how they can be applied.
To learn more about machine learning for embedded systems, join me at ESC Boston on Thursday, May 16th at 3:15 p.m. for my talk on Designing Intelligent Systems Using Resource Constrained Edge Devices. If you can’t make it but would like to learn more about machine learning for embedded, you can attend the free Digikey Continuing Education Center (CEC) series “Machine Learning for Embedded Engineers”.
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer and holds three degrees which include a Masters of Engineering from the University of Michigan. Feel free to contact him at [email protected], at his website website. Also, sign-up for his monthly Embedded Bytes Newsletter.
The nation's largest embedded systems conference is back with a new education program tailored to the needs of today's embedded systems professionals, connecting you to hundreds of software developers, hardware engineers, start-up visionaries, and industry pros across the space. Be inspired through hands-on training and education across five conference tracks. Plus, take part in technical tutorials delivered by top embedded systems professionals. Click here to register today!