Jan Jongboom’s dream, in his own words, was to have devices that really understand what is happening around them. That was ten years ago, but it wasn’t until 2019 that he started really acting upon it. That was when Jongboom and Zach Shelby founded Edge Impulse with a mission to enable developers to create the next generation of intelligent devices.
The AI and ML deployments are well underway, but for CXOs the biggest issue will be managing these initiatives, and figuring out where the data science team fits in and what algorithms to buy versus build.
Today Edge Impulse is announcing $34 million in Series B funding led by Coatue, tripling its 2022 market valuation and growth forecast. Coatue joins existing investors, Canaan Partners, Acrew Capital, Fika Ventures, Momenta Ventures, and Knollwood Investment Advisory to cap off what the team dubs “an incredible year”.
Since its launch in 2019, nearly 30,000 developers from thousands of enterprises have created nearly 55,000 custom machine learning projects using Edge Impulse, building smarter industrial, logistics, consumer and health solutions with customers including Oura, Polycom, Advantech and NASA. Its developer base has increased by 4x, with annual recurring revenue growing by 3x in the last year.
All that sounds rather impressive and a testament to Gartner’s prediction that “by 2027, machine learning in the form of deep learning will be included in over 65% of edge use cases, up from less than 10% in 2021”. We caught up with Jongboom to learn more about Edge Impulse.
Making dumb IoT devices useful
Jongboom and Shelby’s starting point is that IoT devices are great, but they’re also dumb. They can record time series from different types of sensors, like temperature or sound, for example, but they have no clue what that means or how to make anything useful out of it.
When Jongboom met Shelby at Arm, where they both worked about three years ago, they started talking about what could they could do to make these devices really understand the world. They quickly arrived at the conclusion that machine learning was the answer.
Jongboom used clamping down on poaching as an example application. If you want to use an IoT device to detect when there is an elephant around, he said, you have two options. The first is to try and create a program that describes what the auditory input of an elephant is like. The second is to use samples of elephant sounds and let a machine learning model figure it out.
Edge Impulse specializes in machine learning for IoT devices. This means that they need to apply the standard machine learning lifecycle: collect data — train model — deploy model — validate model — repeat. Let’s see how they accommodate each step in this process.
We wondered what kind of devices or sensors Edge Impulse supports for the data collection part. Jongboom mentioned that their ecosystem of partners, ranging from microcontroller developers to super-specialized silicon for machine learning, supports “anything under the sun”.
There are a few factors to consider when pondering how a company founded in 2019 could have created such an ecosystem by 2021. The fact that Edge Impulse’s founders started out as embedded developers themselves, with Shelby having previously sold his IoT startup to Arm, gave them a head start, according to Jongboom. They knew what developers wanted, and they knew how to reach out to hardware vendors. Plus, they made the data ingestion open source and easy to use:
“That has been a really good story where we can help silicon vendors go to market, and after we have silicon to run on. That means that we can jointly go to customers and have a much better story. It’s not — Oh, we have this amazing machine learning platform. It’s — we have this amazing machine learning platform, and we actually have support from the silicon vendors who will run on your brownfield devices already. That’s truly amazing”, Jongboom noted.
Collect data, train model, deploy model, validate model, repeat
As far as the training machine learning models part of the process goes, Edge Impulse uses off-the-shelf primarily frameworks such as TensorFlow. The idea there is to abstract as much as possible, aiming to make model generation as user-friendly as possible for the people who are the domain experts.
The goal, Jongboom said, is to give domain experts the tools to collect the data, then analyze for anomalies or classify what’s happening or predict the future. And it’s not just machine learning, but also signal processing, because “signal processing is really nice and explainable”.
Edge Impulse’s workhorse is TensorFlow, used via Keras. If you have a data scientist on board, great, you can edit the model all you like. If not, you don’t have to. So it can be anything from low code to full freedom. And yes, the low code reference means that there is an IDE in the picture here — the Studio.
Edge Impulse Studio is an online IDE, and it’s also where the validation part of the process happens. Jongboom noted that this is really important in machine learning in general and even more so in edge applications. That’s because if you deploy something to a device or a machine, it can be really hard to correct mistakes in operational settings.
Edge Impulse lets users upload real data to use for validation, and it can also generate synthetic data. And it also lets them intervene and manually make corrections for false positives or false negatives, depending on the type of application. Sometimes it’s crucial that certain events are identified, even at the cost of false alarms, and sometimes it’s ok to miss something.
The point, Jongboom noted, is to create insightful applications and inspire confidence. Having someone go over the data assisted by the machine learning model makes it much easier to see the weak spots.
The final step in the process — deployment — is currently somewhat out of bounds for Edge Impulse. Edge Impulse outputs source code. That includes the mathematical model, the normalization code, the signal processing code, the machine learning code, and all the post-processing tuning of the model.
No compiled binaries, no royalties on that either, Jongboom said. How the user integrates that into their device is up to them, he went on to add. However, Jongboom noted, the ecosystem plays into this as well, and it can be as simple as two lines of code. That part is also open source.
Edge Impulse EON: The secret sauce for optimizing machine learning models for the edge
The part that we have not talked about so far, and is both central to Edge Impulse and not open source, is the TinyML part. TensorFlow, or any other framework for that matter, may produce models that are not a good match for deployment on edge devices because of the constraints on those devices in terms of power and processing capabilities.
This is where Edge Impulse’s EON (Edge Optimized Neural) comes into play. This is the technology that Edge Impulse used to produce machine learning models appropriate for deployment in constrained devices on the edge. The first thing it does is it takes all the parameters of the deployment target into account and does two things.
First, the EON tuner kicks in. Jongboom described this as “a super-wide search base of 1000 different models that we could try”. EON tuner looks at the ones that can fit on the deployment target device and then selects the one with the highest accuracy.
Then, the EON compiler efficiently compiles neural networks to brownfield devices. The way it works, Jongboom said, is that the machine learning model feeds into an interpreter, which builds a graph and runs the inference. But that is a wasteful embedded system because you need to have the interpreter plus all the potential states that the interpreter can construct.
The EON compiler just compiles down the graph to source code and then compiles it in. That saves between 30 and 50% of RAM, which is a lot, especially in Brownfield devices. The compiler is available to use, and the models that people generate are also open source, licensed under the Apache 2.0 license, so no royalties there. Some people actually choose to share their models with the community.
Edge Impulse is a software as a service platform. Customers pay per project per month or per data pipeline per month. They also pay for more compute, collaboration features, large-scale data transformation, and integration with your cloud to pull the data in and ingest that data.
Edge Impulse currently has a team of 40 people. The goal is to use this Series B funding to grow to 80 in the coming year, with emphasis on the Solutions Engineering team. Jongboom said they also aim to keep growing the community and support and in the same way, and to maintain their organic growth.