After creating your Edge Impulse Studio project, you will be directed to the project's dashboard. The dashboard gives a quick overview of your project such as your project ID, the number of devices connected, the amount of data collected, the preferred labeling method, among other editable properties. You can also enable some additional capabilities to your project such as collaboration, making your project public, and showcasing your public projects using Markdown READMEs as we will see.
The figure below shows the various sections and widgets of the dashboard that we will cover here.
The Getting Started section is here to help. You can choose from 3 different options to get started:
Add existing data: When selecting this option, you can then choose to Upload data from your computer or to Add storage bucket
Collect new data: When selecting this option, the getting started guide will ask you to either Scan QR code to connect to your phone, Connect to your computer, or to Connect your device or developer board. Make sure that your device or development board is flashed with the Edge Impulse official firmware.
Upload your model: This option will change the default workflow. See BYOM to learn more about how to import your existing model to Edge Impulse studio.
You have two options for your project's visibility:
Private:
Community Plan: 2 private projects
Professional Plan: 10 private projects
Enterprise Plan: Unlimited private projects
Public:
When a project is public, all of your data, block configurations, intermediate results, and final models will be shared with the world.
Your project will be publicly accessible and can be cloned with a single click with the provided URL:
If you want to reference your project in the Edge Impulse public project repository, you can go to the versioning page, create a version and check the Publish this version under the Apache 2.0 license.
This is a great way to share your work with the community.
When you have a trained model available in your project, this card will appear to let you test your model with your phone or your computer. This is particularly useful to validate the behaviour of your model before integrating it into your targeted embedded firmware.
You can invite up to three collaborators to join and contribute to your public project.
Private projects in the Community Plan and Professional Plan cannot invite collaborators.
Private projects belonging to an organization can have unlimited collaborators (based on the number of licensed user seats). See the Enterprise Plan.
To add a collaborator, go to your project's dashboard and find the "Collaborators" widget. Click the '+' icon and type the username or e-mail address of the other user. The user will be invited to create an Edge Impulse account if it doesn't exist.
The user will be automatically added to the project and will get an email notification inviting them to start contributing to your project. To remove a user, simply click on the three dots beside the user then tap ‘Delete’ and they will be automatically removed.
The project README enables you to explain the details of your project in a short way. Using this feature, you can add visualizations such as images, GIFs, code snippets, and text to your project in order to bring your colleagues and project viewers up to speed with the important details of your project. In your README you might want to add things like:
What the project does
Why the project is useful
Motivations of the project
How to get started with the project
What sensors and target deployment devices you used
How you plan to improve your project
Where users can get help with your project
To create your first README, navigate to the "about this project" widget and click "add README"
For more README inspiration, check out the public Edge Impulse project tutorials below:
The project info widget shows the project's specifications such as the project ID, labeling method, and latency calculations for your target device.
The project ID is a unique numerical value that identifies your project. Whenever you have any issue with your project on the studio, you can always share your project ID on the forum for assistance from edge Impulse staff.
On the labeling method dropdown, you need to specify the type of labeling your dataset and model expect. This can be either one label per data item or bounding boxes. Bounding boxes only work for object detection tasks in the studio. Note that if you interchange the labeling methods, learning blocks will appear to be hidden when building your impulse.
One of the amazing Edge Impulse superpowers is the latency calculation component. This is an approximate time in milliseconds that the trained model and DSP operations are going to take during inference based on the selected target device. This hardware in the loop approach ensures that the target deployment device compute resources are not underutilized or over-utilized. It also saves developers' time associated with numerous inference iterations back and forth the studio in search of optimum models.
In the Block Output section, you can download the results of the DSP and ML operations of your impulse.
The downloadable assets include the extracted features, Tensorflow SavedModel, and both quantized and unquantized TensorFlow lite models. This is particularly helpful when you want to perform other operations to the output blocks outside the Edge Impulse studio. For example, if you need a TensorflowJS model, you will just need to download the TensorFlow saved model from the dashboard and convert it to TensorFlowJS model format to be served on a browser.
Only available with Edge Impulse Professional and Enterprise Plans
Try our Professional Plan or FREE Enterprise Trial today.
This section consists of editable parameters that directly affect the performance of the studio when building your impulse. Depending on the selected or available settings, your jobs can either be fast or slow.
The use of GPU for training and Parallel DSP jobs is currently an internal experimental feature that will be soon released.
To bring even more flexibility to projects, the administrative zone gives developers the power to enable other additional features that are not found in edge impulse projects by default. Most of these features are usually advanced features intended for organizations or sometimes experimental features.
To activate these features you just need to check the boxes against the specific features you want to use and click save experiments.
The danger zone widget consists of irrevocable actions that let you to:
Perform train/test split. This action re-balances your dataset by splitting all your data automatically between the training and testing set and resets the categories for all data.
Launch the getting started wizard. This will remove all data, and clear out your impulse.
Transfer ownership. This action is available for users who have one or more organizations linked with their accounts. With it, you can start working on a project with your user profile and then transfer the ownership to your organization.
Delete your project. This action removes all devices, data, and impulses from your project.
Delete all data in this project.
The target configuration tool allows you to define your Target device and Application budget according to your project's requirements. This flow is designed to help you optimize your impulse, processing, learn block, or imported model for your specific target hardware, ensuring that your impulse will run efficiently on your device or custom architecture.
The configuration form can be accessed from the top-level navigation. The form allows you to select from a range of processor types, architectures, and clock rates. For a custom device, you could for example select Low-end MCU and specify the clock rate, RAM, ROM, and maximum allowed latency for your application.
By default, the form shows 'Cortex-M4F 80MHz' as the target device. You can change this by clicking on Change Target device. You can select from a range of processor types, architectures, and clock rates. For a custom device, you could for example select Low-end MCU and specify the clock rate, RAM, ROM, and maximum allowed latency for your application.
Lets walk you through some of the current options for configuring your device and application budget:
Target Device: Select the type of target device you are configuring from options like "Custom" or specific development boards.
Processor Type Selection: Selecting a processor type dynamically adjusts available architecture options and fields to suit your hardware:
For Low-end MCU: This option allows you to specify clock rate, RAM, and ROM, suitable for 'Cortex-M' architectures.
For AI Accelerators: Selecting this disables the clock rate field, reflecting the unique requirements of AI accelerator devices.
Custom Device Configuration: Choosing to configure a custom device opens fields to precisely define its capabilities, ensuring your project setup is accurately tailored to your hardware.
The form allows you to select from a range of processor types, architectures, and clock rates. For a custom device, you could for example select Low-end MCU and specify the clock rate, RAM, ROM, and maximum allowed latency for your application.
Custom: Select this for custom hardware specifications or devices not listed in Edge Impulse, allowing for a customized hardware profile. Selection Options
Processor Type & Architecture
Choose from a variety of processor types and architectures. Your selection determines which options and fields are available to accurately configure your device. Estimations for GPU, AI accelerator, or NPU devices are not computed using clock speed, or but rather the device's unique capabilities.
Processor Type: Selections range from various processor types. Choosing GPU, AI accelerator' or NPU deactivates the clock speed option, as it's irrelevant for device estimation.
Processor Architecture (Optional): Specify your device's architecture to refine its configuration (e.g., Cortex-M0+, Cortex-M4F, Cortex-M7).
Clock Rate (Optional): Set the clock rate for relevant processor types to estimate operational capabilities accurately. The units shown will be indicated by the | MHz | GHz as relevant to the scale of processor. As previously stated the clock rate field is disabled for GPU, AI accelerator, or NPU devices.
Accelerator: If the device supports hardware acceleration, select from available options such as Arm Cortex-U55, NVIDIA Jetson Nano, and others.
Device ID (Optional): Provide a unique identifier for your custom device model or chip architecture variant for easy recognition and setup.
Custom Device Name (Optional): Provide a unique name for your custom device to easily identify it in your project.
Application Budget - RAM, ROM, and Latency
The application budget section allows you to specify the maximum allowed latency, RAM, and ROM for your application. These values are used to estimate the performance of your model on your target device.
RAM: Specify the amount of RAM available on your device in kilobytes (kB).
ROM: Specify the amount of ROM available on your device in kilobytes (kB).
Latency: Specify the maximum allowed latency for your application in milliseconds (ms).
Save Target: Save your custom device and application budget configuration to apply it to your project.
After customizing your target device and application budget, click Save target. With the target device set, navigate to the EON Tuner to see the configuration in action. The target device can be seen at the top level of navigation on all screens within your project. Your custom device name (e.g., 'my first mcu') and the specified parameters (100 ms latency, 256 kB RAM, 1024 kB ROM) are visible. The target device configuration is also taken into account during the performance estimation for deployment.
Once saved the target device can be seen at the top level of navigation on all screens within your project. Your custom device name (e.g., 'my first mcu') and the specified parameters (100 ms latency, 256 kB RAM, 1024 kB ROM) are visible. The target device configuration is also taken into account during the performance estimation for deployment.
The target-driven flow in Edge Impulse Studio allows you to configure your target device and application budget according to your project's requirements. This flow is designed to help you optimize your impulse for your specific target hardware, ensuring that your impulse will run efficiently on your device.
We hope this feature is helpful, and intuitive. If you have any questions or suggestions, feel free to reach out to us at forum.edgeimpulse.com. We're always happy to hear from you!