Published on March 3, 2025
Edge Impulse is a leading platform for developing and deploying machine learning models on edge devices. It enables developers to train, optimize, and deploy models on resource-constrained hardware, such as microcontrollers, single-board computers, and GPUs. This report outlines the steps to deploy Edge Impulse models on various edge devices using Namla platform.
Before deploying an Edge Impulse model, ensure you have the following:
In this blogpost, we show how to deploy YOLOv5, but we can obviously deploy any compatible model.
Since we are using YOLOv5 pretrained model, we need to export the model in a supported format (onnx in our case):
git clone https://github.com/ultralytics/yolov5.git
cd yolov5
pip install -r requirements.txt
python export.py --weights yolov5s.pt --img 640 --batch 1 --include onnx
This generates a yolov5s.onnx file for inference.
After you’ve uploaded the model, you will be prompted to choose your deployment method, choose ”Docker container (NVIDIA Jetson Orin - JetPack 6.0)” (Choose the jetpack version compatible with your device).
To deploy Edge Impulse on Namla, login to your account, go to the Application section and you will create a new application:
Fill the form and go next:
Paste your Kubernetes manifest or fill a new one using the easy manifest creator. You can also use this ready-to-use manifest provided by Namla that allows the deployment of Edge Impulse:
apiVersion: apps/v1
kind: Deployment
metadata:
name: inference-container
spec:
replicas: 1
selector:
matchLabels:
app: inference-container
template:
metadata:
labels:
app: inference-container
spec:
containers:
- name: inference-container
image: public.ecr.aws/g7a8t7v6/inference-container-jetson-orin-6-0:aa5c24954939fbe5e525b0bcac0959ec6017baf7
ports:
- containerPort: 1337
args:
- --api-key
- ei_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- --run-http-server
- "1337"
- --impulse-id
- "2"
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- axiomtek-orin-nx-jp6-id68
---
apiVersion: v1
kind: Service
metadata:
name: inference-service
spec:
type: NodePort
selector:
app: inference-container
ports:
- protocol: TCP
port: 1337
targetPort: 1337
nodePort: 31337
Go next, and schedule your application to deploy it on the device you want to. In our case, we are using an Nvidia Jetson JP6. Then click on deploy and let Namla do the work for you.
Once your application is successfully deployed, you can access the Edge Impulse HTTP endpoint on: http://localhost:1337, there you can test the model you uploaded earlier: