Models / README.md
sebastientaylor's picture
Report realized vs theoretical FPS; fix duplicate-row dedup
6815b13 verified
|
Raw
History Blame Contribute Delete
8.24 kB
---
title: EdgeFirst Model Zoo
emoji: ๐Ÿ”ฌ
colorFrom: indigo
colorTo: red
sdk: static
pinned: true
license: cc-by-nc-4.0
short_description: Multi-platform model zoo validated on real edge hardware
thumbnail: https://huggingface.co/spaces/EdgeFirst/Models/resolve/main/social-card.png
---
# EdgeFirst Model Zoo
This Space hosts the [EdgeFirst Model Zoo](https://huggingface.co/spaces/EdgeFirst/Models) landing page. The visual interface is rendered from `index.html`.
Each model family lives in its own HuggingFace repo containing all size variants (nano through x-large) and platform-specific compiled formats. Models are trained and validated on [EdgeFirst Studio](https://edgefirst.studio), then published here.
---
## Model Repositories
### Detection
| Repo | Model | Sizes | Nano mAP@0.5 |
|------|-------|-------|-------------|
| [EdgeFirst/yolo26-det](https://huggingface.co/EdgeFirst/yolo26-det) | YOLO26 | n/s/m | 55.0% |
| [EdgeFirst/yolo11-det](https://huggingface.co/EdgeFirst/yolo11-det) | YOLO11 | n/s/m | 53.1% |
| [EdgeFirst/yolov8-det](https://huggingface.co/EdgeFirst/yolov8-det) | YOLOv8 | n/s/m | 50.5% |
| [EdgeFirst/yolov5-det](https://huggingface.co/EdgeFirst/yolov5-det) | YOLOv5 | n/s/m | 47.8% |
### Segmentation
| Repo | Model | Sizes | Nano Mask mAP |
|------|-------|-------|--------------|
| [EdgeFirst/yolo26-seg](https://huggingface.co/EdgeFirst/yolo26-seg) | YOLO26 | n/s/m | 32.7% |
| [EdgeFirst/yolo11-seg](https://huggingface.co/EdgeFirst/yolo11-seg) | YOLO11 | n/s | 30.2% |
| [EdgeFirst/yolov8-seg](https://huggingface.co/EdgeFirst/yolov8-seg) | YOLOv8 | n/s/m | 28.7% |
---
## Repo Structure
Each model repo follows a consistent layout with platform folders:
```
EdgeFirst/yolov8-det/
โ”œโ”€โ”€ README.md # Model card
โ”œโ”€โ”€ onnx/
โ”‚ โ”œโ”€โ”€ yolov8n-det-fp32.onnx
โ”‚ โ””โ”€โ”€ ...
โ”œโ”€โ”€ tflite/
โ”‚ โ”œโ”€โ”€ yolov8n-det-int8.tflite # Default (logical split-decoder)
โ”‚ โ”œโ”€โ”€ yolov8n-det-int8-smart.tflite # Smart variant
โ”‚ โ””โ”€โ”€ ...
โ”œโ”€โ”€ imx95/
โ”‚ โ”œโ”€โ”€ yolov8n-det-int8.imx95.tflite
โ”‚ โ””โ”€โ”€ ...
โ”œโ”€โ”€ hailo/
โ”‚ โ”œโ”€โ”€ yolov8n-det-int8.hailo8l.hef
โ”‚ โ””โ”€โ”€ ...
โ””โ”€โ”€ jetson/
โ”œโ”€โ”€ yolov8n-det-fp16.orin-nano.engine
โ””โ”€โ”€ ...
```
## Naming Convention
**Pattern**: `{version}{size}-{task}-{precision}[-{variant}][.{platform}].{ext}`
| Component | Description | Examples |
|-----------|-------------|---------|
| `{version}{size}` | Model family + variant | `yolov8n`, `yolo11s`, `dfine-n` |
| `-{task}` | Task suffix | `-det`, `-seg`, `-semseg`, `-depth` |
| `-{precision}` | Weight precision | `-fp32`, `-fp16`, `-int8` |
| `-{variant}` | Decoder variant (optional) | `-smart` |
| `.{platform}` | Deployment target (optional) | `.imx95`, `.ara240`, `.hailo8l`, `.orin-nano` |
| `.{ext}` | File format | `.onnx`, `.tflite`, `.dvm`, `.hef`, `.engine` |
**Decoder variants**: No suffix = default for that format (logical split-decoder for INT8, combined for ONNX/float). `-smart` = multi-scale split-decoder offering better accuracy at higher compute cost.
**Examples:**
| Description | Filename |
|-------------|----------|
| ONNX FP32 (reference) | `yolov8n-det-fp32.onnx` |
| Generic INT8 TFLite | `yolov8n-det-int8.tflite` |
| Smart variant TFLite | `yolov8n-det-int8-smart.tflite` |
| NXP i.MX 95 TFLite | `yolov8n-det-int8.imx95.tflite` |
| Smart NXP i.MX 95 | `yolov8n-seg-int8-smart.imx95.tflite` |
| Hailo-8L HEF | `yolov8n-det-int8.hailo8l.hef` |
| Jetson TensorRT FP16 | `yolov8n-det-fp16.orin-nano.engine` |
## Supported Hardware
![x86_64 | Linux](https://img.shields.io/badge/x86__64-Linux-6C757D?style=flat-square) ![aarch64 | Linux](https://img.shields.io/badge/aarch64-Linux-718096?style=flat-square) ![Apple | macOS](https://img.shields.io/badge/Apple-macOS-4B0082?style=flat-square) ![NXP i.MX 8M Plus](https://img.shields.io/badge/NXP-i.MX_8M_Plus-E8B820?style=flat-square) ![NXP i.MX 95](https://img.shields.io/badge/NXP-i.MX_95-1FA0A8?style=flat-square) ![NXP Ara240](https://img.shields.io/badge/NXP-Ara240-5BB8F5?style=flat-square) ![RPi5 + Hailo-8L](https://img.shields.io/badge/RPi5-Hailo--8L-D9534F?style=flat-square) ![NVIDIA Jetson](https://img.shields.io/badge/NVIDIA-Jetson-2E8B57?style=flat-square)
- **Linux x86_64** โ€” ONNX Runtime CUDA / CPU (FP32 reference)
- **Linux aarch64** โ€” ONNX Runtime / TFLite (ARM64 generic Linux)
- **Apple macOS** โ€” ONNX Runtime + CoreML ANE / GPU / CPU (FP16)
- **NXP i.MX 8M Plus** โ€” 2.3 TOPS, TFLite INT8
- **NXP i.MX 95** โ€” 2.0 TOPS, eIQ Neutron TFLite *(YOLOv5 / YOLOv8 only; YOLO11 / YOLO26 not yet supported on eIQ Neutron)*
- **NXP Ara240** โ€” 40 eTOPS, .DVM
- **RPi5 + Hailo-8L** โ€” 13 TOPS, HailoRT HEF
- **NVIDIA Jetson Orin** โ€” 67โ€“157 TOPS, TensorRT
## Validation Pipeline
Every artifact in the Model Zoo is measured on the same dataset on the same hardware users deploy on. Accuracy numbers and per-stage timing are produced by the same pipeline that runs the deployed model โ€” there is no "benchmark configuration" separate from production.
### End-to-end flow
Each training session produces a single set of weights in [EdgeFirst Studio](https://edgefirst.studio). The export pipeline emits ONNX FP32, INT8 TFLite, and platform-specific compiled formats (NXP i.MX 95 Neutron, NXP Ara240 .DVM, Hailo HEF, Jetson TensorRT). Every output is paired with an on-target validation that captures both accuracy (COCO mAP) and full-pipeline timing. The ONNX FP32 run from each training session is the reference baseline; quantization and runtime loss are measured relative to it.
### EdgeFirst Profiler
The on-target validation agent. Given a model and dataset, it runs full inference on the target device, captures per-image predictions in EdgeFirst Arrow/Parquet, and emits a Perfetto trace alongside. Loads each runtime through its native delegate โ€” VX Delegate on NXP i.MX 8M Plus, eIQ Neutron on NXP i.MX 95, NXP Ara SDK on Ara240, HailoRT on RPi5 + Hailo, TensorRT on Jetson โ€” so timing reflects deployed-application reality.
### EdgeFirst Validator
The off-target post-processor. Consumes predictions + Perfetto trace, computes the 12-metric COCO accuracy tuple via `pycocotools` (or `lvis-api` for large-vocabulary datasets), and rebuilds per-stage timing summaries from the trace. Results attach to the Studio validation session as a structured YAML payload โ€” the same payload this Model Zoo reads.
### EdgeFirst HAL
The [EdgeFirst Hardware Abstraction Layer](https://github.com/EdgeFirstAI/hal) provides hardware-accelerated primitives used at both validation and deployment time: letterbox resize, color-space conversion, normalization, layout conversion, YOLO/ModelPack post-decode, NMS. HAL automatically selects DMA-BUF, OpenGL ES, NXP G2D, or CPU paths depending on the platform. Apache 2.0; Rust + Python + C surfaces.
### Latency and pipelined throughput
Two timing surfaces per validation:
- **`timing.inline`** โ€” per-image `preprocess_ms` / `inference_ms` / `postprocess_ms` with min / mean / median / p95 / p99 / max. The universal contract every producer fills.
- **`timing.trace`** โ€” full per-stage breakdown from the Perfetto trace (typically 25โ€“33 stages), plus end-to-end FPS distribution.
Throughput exceeds the sum of stage latencies because the runtime pipelines I/O, preprocessing, NPU inference, and decode across frames. The Model Zoo headlines `trace.fps.median` as the throughput number, not the derived `1000 / (preprocess + inference + postprocess)`. Example: YOLOv5n on NXP i.MX 95 Neutron has per-stage means 21.7 + 12.2 + 15.8 ms (naive โ‰ˆ 20 FPS) but pipelined throughput of 56 FPS median.
---
Validation results & card data: [CC BY-NC 4.0](https://creativecommons.org/licenses/by-nc/4.0/) ยท YOLO model weights: ยฉ Ultralytics Inc. (AGPL-3.0) ยท ยฉ 2026 [Au-Zone Technologies](https://www.au-zone.com)
<sub>NXP<sup>ยฎ</sup>, i.MX, eIQ<sup>ยฎ</sup>, Neutron, and Ara240 are trademarks or products of NXP Semiconductors. Hailo is a trademark of Hailo Technologies Ltd. Jetson is a trademark of NVIDIA Corporation. All other trademarks are the property of their respective owners.</sub>