Edge Impulse enables developers to rapidly build enterprise-grade ML algorithms, trained on real sensor data, in a low- to no-code environment. With the complete integration of BrainChip Akida™ technology, these trained algorithms and new algorithms can now be converted into spiking neural networks (SNNs) and deployed to BrainChip Akida target devices such as the Akida mini PCIe development board. This blog highlights the new features with BrainChip technology that are now available in Edge Impulse Studio to provide easy, quick, and advanced model development and deployment for BrainChip Akida neuromorphic technology.
Design an Impulse with BrainChip Akida Learning Blocks
The development of models for BrainChip Akida is now integrated in Edge Impulse Studio. Developers can select BrainChip Akida (refer Figure 1) in the learning block of an impulse design. There are two learning blocks available today — classification, which supports development of new models and transfer learning, which provides access to a model zoo that is optimized for BrainChip Akida devices. The type of learning blocks visible depend on the type of data collected and intent of the project such as classification, object detection. Using the BrainChip Akida learning blocks ensures that the models developed are optimized and successfully deployed to the BrainChip Akida mini PCIe development board.
Training a BrainChip Akida Compatible Model
In the learning block of the impulse design one can compare between float, quantized, and Akida versions of a model. If you added a processing block to your impulse design, you will need to generate features before you can train your model. Developers can use Edge Impulse Studio (refer Figure 2) to edit predefined models, and training parameters.
Edge Impulse Studio also gives the ability for users to modify pre-generated Python code as a way to get more exact behavior from the learn blocks. In this area the more advanced user can also call into the Akida MetaTF Python package as is integrated into the Akida learn blocks (Figure 3a and 3b).
While training the BrainChip Akida learn block, useful information such as model compatibility, summary, sparsity, and # of NPs required are also displayed in the log output (refer Figure 4). This helps developers to review and modify their models to generate custom, optimized, and desired configurations for BrainChip Akida devices (Figure 5).
<img src="https://lh6.googleusercontent.com/6jGgSb6r2YYBXNBjzrdLj8FCNcv1Fje3zyWY0Ie2x7Il5j1MAjQBCY9HrrBIUPwqgzQj1k3qIREi9LTs6SnAx1TcKqtFh-UAT1_bGDFMEx3BCJWFnbfDjIcBmiwL3W3x5rc1Zhcbvg6_AMFEgpHwc-84IZw-agDb98kuo5BPDlFVQP__tTbJRGC4-C3S-g80qXO1ecGirA" alt="Text
Description automatically generated">Figure 4: Profile information for BrainChip Akida
If the project uses a transfer learning block, the developer will be presented with a list of models (refer Figure 5) from BrainChip’s Model Zoo that are pre-trained and optimized for BrainChip Akida. These models will provide a great starting point for developers and implement transfer learning for their projects. As of today, several AkidaNet-based models are integrated into the Edge Impulse Studio and many more will be integrated over time. If developers have a specific request on this, please let us know via the Edge Impulse forums.
Any model that has been developed in the impulse design on Edge Impulse Studio can be deployed to BrainChip Akida target devices. In order to download these models for custom deployments, developers must choose the BrainChip MetaTFTM model block (refer Figure 5a) under the deployment stage to obtain a .zip file with the converted model in it. Alternatively, there is also a BrainChip Akida PCIe deployment block (refer Figure 5b) available which will generate a pre-built binary that can be used with Edge Impulse Linux CLI to run on any compatible Linux installation where this board is installed.
|Figure 6a: Download BrainChip Akida-compatible model for custom deployment on BrainChip Akida devices
|Figure 6b: Download pre-built binary for AKD1000 mini PCIe development board
The pre-built binary that is provided from the deployment block also has in-built tools that provide performance metrics for the AKD1000 mini PCI reference board (refer Figure 7). This is a very unique integration as developers can not only deploy their favorite projects to BrainChip Akida devices but can also capture information such as efficiency that help build a prototype system with Akida technology.
Edge Impulse Example Projects Using BrainChip Features
To quickly get started, please see these example projects that are available to clone immediately for quick training and deployment to the AKD1000 development platform.
- FOMO project using BrainChip MetaTF and AkidaNet models
- Image classification project using BrainChip MetaTF and AkidaNet models
Getting Started with Edge Impulse
If you are new to Edge Impulse, please try out one of the Getting Started tutorials before continuing with Edge Impulse BrainChip Akida features. Please reach out to us on Edge Impulse forums for technical support. If you need more information about getting started with BrainChip Akida on Edge Impulse, visit the documentation page.