Developing embedded real-time applications is on its own one of the most complex and time consuming software disciplines. However tempting it may be to start incorporating machine learning (ML) models and new state-of-the-art artificial intelligence techniques into your products, there are many hurdles along the way and a large risk of failure for the project.
As an alternative there are software platforms available that can help embedded developers with the data science, machine learning model creation, training and evaluation parts, which lets the embedded developers focus on their areas of expertise. This will vastly speed up embedded software development.
AI is here to stay
It’s now a bit more than 5 years since the Google DeepMind computer AlphaGo beat the human Go world champion player Lee Sedol. This marked an important breakthrough for computers to take on much more challenging cognitive tasks than ever before. Less than a year later, the Asilomar AI Principles for “Beneficial Intelligence” were established and signed by more than 1000 AI researchers, to prevent AI research from leading to harmful superintelligence. There was no doubt that the expectations on AI and the related field of machine learning were high.
Between then and now, a lot has happened. We don’t have general AI, but that was never the expectation in such a short time perspective. One significant change is mental: Algorithms will become much more present and have a larger role in our lives, and they need data to work efficiently. This is now common knowledge among all of us. Secondly, some of the most mature machine learning techniques such as classification and anomaly detection are now there generating value and revenue.
Slower at the Edge
Still, most of the value is generated in online businesses, where the algorithms can run on big servers with a lot of compute power. Numerous reports indicate that there is an undiscovered treasure hiding in the ten billion IoT, or edge, devices out there that are rarely using anything else than simple thresholding or some rudimentary signal processing. Not only are these devices numerous, their number is also expected to more than double, to 25 billion, by 2030. Many companies see the opportunity of making their IoT devices smarter to act more autonomously, thereby cutting field personnel costs and reducing downtime. However, we see that the more rapid adoptions of machine learning that happens in the connected cloud businesses is not present at the edge yet.
There is something there that slows down the progress. To get the machine learning models and software to the edge devices we must first bridge a gap: These companies have their main expertise in embedded software development, a field that requires knowledge that spans many complex areas. The teams are composed of firmware developers, hardware engineers with sensor and microcontroller knowledge, testers, and sometimes software engineers with signal processing knowledge. They may have 30+ years of knowledge. They are good, really good, at what they are doing.
So, what happens when a large corporate decides that the company will launch a new digital initiative where automation, insight and value will be created from AI? They now have the option to to build all of this inhouse, or hire a team of consultants work a few months to implement a solution or to buy a solution off the shelf. Let’s take a closer look at these alternatives.
1) Doing it on your own from scratch may seem like a tempting approach. You own the software, have full control over it, and you have all the knowledge in your team. But let’s look at what it actually means. First, the group needs to hire data scientists and/or machine learning engineers. Among the around 25 million developers in the world, machine learning engineers are counted in hundreds of thousands worldwide, so finding the right people is hard. As soon as you have your team in place, with all what that means, you can start building the model building infrastructure. This involves writing software for the data collection pipeline, data management, labelling or annotation of data, model building, model training and model deployment. These are many steps and a lot of software to write. Consider also that machine learning in general and “tinyML” (the branch of ML for resource constrained devices) in particular, is a lively research field where you constantly need to be on top of things to get the most out of your system.
2) To hire consultants that work for a few months or half a year to set up the system can look like a nice short cut. Some of the typical hurdles involve, as before, finding good people for the work. Second, it is important that the consultants get a deep understanding of your specific problem, which often is not included in the time frame of the project. Lastly, when the project is over and the experts have left, there is usually no one at the company that deeply understands what was done and how to make changes to it.
3)To buy a solution or service off the shelf means that you will get a head start in your project by utilizing a tool that experts in the field have developed during years and put a lot of time, energy and clever ideas into. Let’s look at such a solution below.
Let the embedded developers do what they are best at
To find a tool that does the job of the machine learning expert lets the team of embedded developers continue to do what they are best at. At Imagimob we have worked with embedded AI for many years, and in numerous real customer projects we have found solutions that can speed up the model development process, from data collection to deployment. We have gone through all the painful steps of creating code for data management, labelling, training, and iterating on models and last but not least translating the model to C code that can easily be deployed on a microcontroller. We know where people spend time, since we have been there ourselves.
After a few years we decided to make this tool – Imagimob AI – available to the public. What we have in mind is the team of embedded developers that are curious to start deploying AI models but don’t have the expertise in building it all from scratch. Imagimob AI takes the user through a few steps of data management, labelling, model generation and training, where the end result is plain, well written C code – easy-to-read and make modifications to. We believe that this transparency and flexibility is something that embedded developers appreciate. Tutorials with step-by-step instructions and example data are included for a range of different projects such as human motion recognition, radar gesture detection and audio projects with sound detection. Users can get started quickly and generate the embedded code with a click of a button.
What does Imagimob AI offer the embedded developer?
With Imagimob AI the workflow of building AI models is greatly simplified and embedded developers can quickly iterate over the process and receive C-code as output that is easily integrated into their embedded projects.
For embedded developers with no previous experience in machine learning, Imagimob AI offers a number of advantages such as:
For embedded developers with experience in machine learning, Imagimob AI enables him or her to: