



See how a trained safety helmet model moved through a static ONNX export, Hailo-15H HEF compilation, NE503 model loading and an on-camera application that produced live PPE detections.
CamThink trained a two-class YOLOv8n safety helmet model, exported it as a static ONNX model, compiled it for Hailo-15H, loaded the resulting HEF on NE503 and connected it to an on-camera application.
The model reached 0.931 mAP50 on its validation set. The deployed application then passed a live NE503 verification with nine people in the scene: six labelled Helmet and three labelled No Helmet.
safety_helmet_yolov8n_384_640 model for live Helmet and No Helmet detection.The validation metric measures the trained model on a held-out dataset. The device test confirms that the compiled model, NE503 AI Runtime and application can work together on the camera. A production project should still test its own scene, lens, lighting and event rules.
The reference workflow used YOLOv8n and Hailo DFC v5.3.0. Treat those as a tested baseline, not a universal compatibility promise for every model or software release.
[1,3,384,640], opset 11 and dynamic axes disabled.app.yaml and ARM64 image.tar through the Web Console.ONNX is the portable model handoff. HEF is the Hailo-15H deployment artifact. The application turns inference output into product behavior.
The Safety Helmet Detection package does not embed the custom HEF. The model is loaded through NE503 Model Management, while the application is installed as its own package.
This separation gives each layer a clear job:
| Layer | Deployed item | Job |
|---|---|---|
| AI model | safety_helmet_yolov8n_384_640.hef | Run the compiled Helmet and No Helmet detector on Hailo-15H. |
| Camera application | app.yaml and image.tar | Subscribe to results, apply project logic and emit application events. |
| NE503 platform | AI Runtime, application service and Web Console | Load the model, run the container and expose the platform services used by the app. |
A model can be updated without rebuilding the base camera firmware. Application logic can also evolve without treating the model file as the complete product. The model and application still need a compatible contract: model ID, input stream, classes and output handling must agree.
The verified app connects four working parts:
This is the last mile that a model export guide does not cover. A HEF can prove that inference runs. The matched camera application proves that the inference can become a useful device behavior.
If you already have a trained model, send CamThink its framework, input shape, class list and expected application output. That is enough to begin mapping the model-to-app path.
Use one observable result at each boundary:
| Gate | Evidence to retain |
|---|---|
| ONNX export | Static input shape, expected class count and a known image that produces a correct result. |
| HEF compilation | Successful Hailo parser output, expected NMS and class configuration, and the final HEF checksum. |
| NE503 model load | The exact model ID appears with Loaded status in Model Management. |
| Application startup | The container reaches Running status and its logs show a valid inference subscription. |
| Live inference | A known scene produces the expected Helmet and No Helmet detections. |
| Business output | The application produces the event or application result expected by the consuming workflow. |
If ONNX inference works but the camera returns no detections, check the compiled output contract and the custom-model output handling documented for the current NE503 release. If accuracy drops after quantization, review the calibration images and optimization settings. If the application starts before finding its model, confirm that the separately deployed HEF is loaded under the exact model ID expected by the app.
This article explains the deployment logic and verified outcome. The CamThink Wiki maintains the version-specific training commands, ONNX export settings, Hailo compilation steps, downloadable artifacts and current custom-model output handling.
A trained model is only one part of an edge AI product. On NE503, the model can move through a defined accelerator path, run beside a separately managed container application and produce results at the camera endpoint.
For algorithm companies and solution teams, that changes the deliverable. The work no longer ends with weights or a demo script. It can become a camera application with a repeatable model, runtime and event path.