sebastientaylor commited on
Commit
27db73c
Β·
verified Β·
1 Parent(s): bb7f78c

Upload folder using huggingface_hub

Browse files
Files changed (2) hide show
  1. README.md +85 -69
  2. index.html +441 -262
README.md CHANGED
@@ -8,107 +8,123 @@ pinned: true
8
  license: apache-2.0
9
  ---
10
 
11
- # EdgeFirst AI β€” Spatial Perception at the Edge
12
 
13
- **EdgeFirst Perception** is an open-source suite of libraries and microservices for AI-driven spatial perception on edge devices. It supports cameras, LiDAR, radar, and time-of-flight sensors β€” enabling real-time object detection, segmentation, sensor fusion, and 3D spatial understanding, optimized for resource-constrained embedded hardware.
14
 
15
- [![EdgeFirst Studio](https://img.shields.io/badge/EdgeFirst_Studio-3E3371?style=for-the-badge&logoColor=white)](https://edgefirst.studio)
16
- [![GitHub](https://img.shields.io/badge/GitHub-212529?style=for-the-badge&logo=github&logoColor=white)](https://github.com/EdgeFirstAI)
17
- [![Documentation](https://img.shields.io/badge/Documentation-1FA0A8?style=for-the-badge&logo=readthedocs&logoColor=white)](https://doc.edgefirst.ai)
18
- [![Au-Zone Technologies](https://img.shields.io/badge/Au--Zone_Technologies-6C757D?style=for-the-badge)](https://www.au-zone.com)
19
 
20
  ---
21
 
22
- ## Workflow
23
 
24
- <img src="https://huggingface.co/spaces/EdgeFirst/README/resolve/main/01-ecosystem.png" alt="EdgeFirst Model Zoo Ecosystem"/>
25
 
26
- Every model in the EdgeFirst Model Zoo passes through a validated pipeline. [**EdgeFirst Studio**](https://edgefirst.studio) manages datasets, training, multi-format export (ONNX, TFLite INT8, eIQ Neutron, Kinara DVM, HailoRT HEF, TensorRT), and reference validation. Models are then deployed to our board farm for **full-dataset on-target validation** on real hardware β€” measuring both accuracy (mAP) and detailed timing breakdown per device. Results are published here on HuggingFace with per-platform performance tables.
 
 
 
 
 
27
 
28
- ## Model Lifecycle
29
 
30
- <img src="https://huggingface.co/spaces/EdgeFirst/README/resolve/main/02-model-lifecycle.png" alt="Model Lifecycle: Training to Publication"/>
 
 
 
 
31
 
32
- ## On-Target Validation
33
 
34
- <img src="https://huggingface.co/spaces/EdgeFirst/README/resolve/main/03-on-target-validation.png" alt="On-Target Validation Pipeline"/>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
- Unlike desktop-only benchmarks, EdgeFirst validates every model on **real target hardware** with the full dataset. Each device produces both accuracy metrics (mAP) and a detailed timing breakdown β€” load, preprocessing, NPU inference, and decode β€” so you know exactly how a model performs on your specific platform.
37
 
38
- ---
39
 
40
- ## Supported Hardware
 
 
 
 
 
 
 
41
 
42
- ![NXP i.MX 8M Plus](https://img.shields.io/badge/NXP-i.MX_8M_Plus-3E3371?style=flat-square&logoColor=white)
43
- ![NXP i.MX 95](https://img.shields.io/badge/NXP-i.MX_95-3E3371?style=flat-square&logoColor=white)
44
- ![NXP Ara240](https://img.shields.io/badge/NXP-Ara240-3E3371?style=flat-square&logoColor=white)
45
- ![RPi5 + Hailo-8/8L](https://img.shields.io/badge/RPi5-Hailo--8%2F8L-1FA0A8?style=flat-square&logoColor=white)
46
- ![NVIDIA Jetson](https://img.shields.io/badge/NVIDIA-Jetson-76B900?style=flat-square&logoColor=white)
47
 
48
- ---
49
 
50
- ## Model Zoo
 
 
 
 
 
 
 
 
51
 
52
- Pre-trained YOLO models for edge deployment. Each model repo contains all sizes (nano through x-large), ONNX FP32 and TFLite INT8 formats, with platform-specific compiled variants as they become available.
53
 
54
- ### Detection
 
 
 
 
55
 
56
- | Model | Sizes | Nano mAP@0.5 | Link |
57
- |-------|-------|-------------|------|
58
- | **YOLO26** | n/s/m/l/x | 54.9% | [EdgeFirst/yolo26-det](https://huggingface.co/EdgeFirst/yolo26-det) |
59
- | **YOLO11** | n/s/m/l/x | 53.4% | [EdgeFirst/yolo11-det](https://huggingface.co/EdgeFirst/yolo11-det) |
60
- | **YOLOv8** | n/s/m/l/x | 50.2% | [EdgeFirst/yolov8-det](https://huggingface.co/EdgeFirst/yolov8-det) |
61
- | **YOLOv5** | n/s/m/l/x | 49.6% | [EdgeFirst/yolov5-det](https://huggingface.co/EdgeFirst/yolov5-det) |
62
 
63
- ### Instance Segmentation
64
 
65
- | Model | Sizes | Nano Mask mAP | Link |
66
- |-------|-------|--------------|------|
67
- | **YOLO26** | n/s/m/l/x | 37.0% | [EdgeFirst/yolo26-seg](https://huggingface.co/EdgeFirst/yolo26-seg) |
68
- | **YOLO11** | n/s/m/l/x | 35.5% | [EdgeFirst/yolo11-seg](https://huggingface.co/EdgeFirst/yolo11-seg) |
69
- | **YOLOv8** | n/s/m/l/x | 34.1% | [EdgeFirst/yolov8-seg](https://huggingface.co/EdgeFirst/yolov8-seg) |
70
 
71
- ---
72
 
73
- ## Naming Convention
74
 
75
- | Component | Pattern | Example |
76
- |-----------|---------|---------|
77
- | HF Repo | `EdgeFirst/{version}-{task}` | `EdgeFirst/yolov8-det` |
78
- | ONNX Model | `{version}{size}-{task}.onnx` | `yolov8n-det.onnx` |
79
- | TFLite Model | `{version}{size}-{task}-int8.tflite` | `yolov8n-det-int8.tflite` |
80
- | i.MX 95 TFLite | `{version}{size}-{task}.imx95.tflite` | `yolov8n-det.imx95.tflite` |
81
- | i.MX 93 TFLite | `{version}{size}-{task}.imx93.tflite` | `yolov8n-det.imx93.tflite` |
82
- | i.MX 943 TFLite | `{version}{size}-{task}.imx943.tflite` | `yolov8n-det.imx943.tflite` |
83
- | Hailo HEF | `{version}{size}-{task}.hailo{variant}.hef` | `yolov8n-det.hailo8l.hef` |
84
- | Studio Project | `{Dataset} {Task}` | `COCO Detection` |
85
- | Studio Experiment | `{Version} {Task}` | `YOLOv8 Detection` |
86
 
87
- ## Validation Pipeline
 
 
88
 
89
- | Stage | What | Where |
90
- |-------|------|-------|
91
- | **Reference** | ONNX FP32 and TFLite INT8 mAP on full COCO val2017 (5000 images) | EdgeFirst Studio (cloud) |
92
- | **On-Target** | Full dataset mAP + timing breakdown per device | Board farm (real hardware) |
93
 
94
- ## Perception Architecture
95
 
96
- | Layer | Description |
97
- |-------|-------------|
98
- | **Foundation** | Hardware abstraction, video I/O, accelerated inference delegates |
99
- | **Zenoh** | Modular perception pipeline over Zenoh pub/sub |
100
- | **GStreamer** | Spatial perception elements for GStreamer / NNStreamer |
101
- | **ROS 2** | Native ROS 2 nodes extending Zenoh microservices *(Roadmap)* |
102
 
103
- ## EdgeFirst Studio
104
 
105
- [**EdgeFirst Studio**](https://edgefirst.studio) is the MLOps platform that drives the entire model zoo pipeline. **Free tier available.**
 
106
 
107
- - Dataset management & AI-assisted annotation
108
- - Model training with automatic multi-format export and INT8 quantization
109
- - Reference and on-target validation with full metrics collection
110
- - CameraAdaptor integration for native sensor format training
111
- - Deploy trained models to edge devices via the [EdgeFirst Client](https://github.com/EdgeFirstAI/client) CLI
112
 
113
  ---
114
 
 
8
  license: apache-2.0
9
  ---
10
 
11
+ # EdgeFirst Model Zoo
12
 
13
+ This Space hosts the [EdgeFirst Model Zoo](https://huggingface.co/spaces/EdgeFirst/Models) landing page. The visual interface is rendered from `index.html`.
14
 
15
+ 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.
 
 
 
16
 
17
  ---
18
 
19
+ ## Model Repositories
20
 
21
+ ### Detection
22
 
23
+ | Repo | Model | Sizes | Nano mAP@0.5 |
24
+ |------|-------|-------|-------------|
25
+ | [EdgeFirst/yolo26-det](https://huggingface.co/EdgeFirst/yolo26-det) | YOLO26 | n/s/m/l/x | 54.9% |
26
+ | [EdgeFirst/yolo11-det](https://huggingface.co/EdgeFirst/yolo11-det) | YOLO11 | n/s/m/l/x | 53.4% |
27
+ | [EdgeFirst/yolov8-det](https://huggingface.co/EdgeFirst/yolov8-det) | YOLOv8 | n/s/m/l/x | 50.2% |
28
+ | [EdgeFirst/yolov5-det](https://huggingface.co/EdgeFirst/yolov5-det) | YOLOv5 | n/s/m/l/x | 49.6% |
29
 
30
+ ### Segmentation
31
 
32
+ | Repo | Model | Sizes | Nano Mask mAP |
33
+ |------|-------|-------|--------------|
34
+ | [EdgeFirst/yolo26-seg](https://huggingface.co/EdgeFirst/yolo26-seg) | YOLO26 | n/s/m/l/x | 37.0% |
35
+ | [EdgeFirst/yolo11-seg](https://huggingface.co/EdgeFirst/yolo11-seg) | YOLO11 | n/s/m/l/x | 35.5% |
36
+ | [EdgeFirst/yolov8-seg](https://huggingface.co/EdgeFirst/yolov8-seg) | YOLOv8 | n/s/m/l/x | 34.1% |
37
 
38
+ ---
39
 
40
+ ## Repo Structure
41
+
42
+ Each model repo follows a consistent layout with platform folders:
43
+
44
+ ```
45
+ EdgeFirst/yolov8-det/
46
+ β”œβ”€β”€ README.md # Model card
47
+ β”œβ”€β”€ onnx/
48
+ β”‚ β”œβ”€β”€ yolov8n-det-fp32.onnx
49
+ β”‚ └── ...
50
+ β”œβ”€β”€ tflite/
51
+ β”‚ β”œβ”€β”€ yolov8n-det-int8.tflite # Default (logical split-decoder)
52
+ β”‚ β”œβ”€β”€ yolov8n-det-int8-smart.tflite # Smart variant
53
+ β”‚ └── ...
54
+ β”œβ”€β”€ imx95/
55
+ β”‚ β”œβ”€β”€ yolov8n-det-int8.imx95.tflite
56
+ β”‚ └── ...
57
+ β”œβ”€β”€ hailo/
58
+ β”‚ β”œβ”€β”€ yolov8n-det-int8.hailo8l.hef
59
+ β”‚ └── ...
60
+ └── jetson/
61
+ β”œβ”€β”€ yolov8n-det-fp16.orin-nano.engine
62
+ └── ...
63
+ ```
64
 
65
+ ## Naming Convention
66
 
67
+ **Pattern**: `{version}{size}-{task}-{precision}[-{variant}][.{platform}].{ext}`
68
 
69
+ | Component | Description | Examples |
70
+ |-----------|-------------|---------|
71
+ | `{version}{size}` | Model family + variant | `yolov8n`, `yolo11s`, `dfine-n` |
72
+ | `-{task}` | Task suffix | `-det`, `-seg`, `-semseg`, `-depth` |
73
+ | `-{precision}` | Weight precision | `-fp32`, `-fp16`, `-int8` |
74
+ | `-{variant}` | Decoder variant (optional) | `-smart` |
75
+ | `.{platform}` | Deployment target (optional) | `.imx95`, `.ara240`, `.hailo8l`, `.orin-nano` |
76
+ | `.{ext}` | File format | `.onnx`, `.tflite`, `.dvm`, `.hef`, `.engine` |
77
 
78
+ **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.
 
 
 
 
79
 
80
+ **Examples:**
81
 
82
+ | Description | Filename |
83
+ |-------------|----------|
84
+ | ONNX FP32 (reference) | `yolov8n-det-fp32.onnx` |
85
+ | Generic INT8 TFLite | `yolov8n-det-int8.tflite` |
86
+ | Smart variant TFLite | `yolov8n-det-int8-smart.tflite` |
87
+ | i.MX 95 TFLite | `yolov8n-det-int8.imx95.tflite` |
88
+ | Smart i.MX 95 | `yolov8n-seg-int8-smart.imx95.tflite` |
89
+ | Hailo-8L HEF | `yolov8n-det-int8.hailo8l.hef` |
90
+ | Jetson TensorRT FP16 | `yolov8n-det-fp16.orin-nano.engine` |
91
 
92
+ ## Supported Hardware
93
 
94
+ - **NXP i.MX 8M Plus** β€” 2.3 TOPS, TFLite INT8
95
+ - **NXP i.MX 95** β€” 2.0 TOPS, eIQ Neutron TFLite
96
+ - **NXP Ara240** β€” 40 eTOPS, Kinara DVM
97
+ - **RPi5 + Hailo-8/8L** β€” 13–26 TOPS, HailoRT HEF
98
+ - **NVIDIA Jetson Orin** β€” 67–157 TOPS, TensorRT
99
 
100
+ ## Validation Pipeline
 
 
 
 
 
101
 
102
+ 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.
103
 
104
+ ### End-to-end flow
 
 
 
 
105
 
106
+ 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 (i.MX 95 Neutron, NXP Ara-240 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.
107
 
108
+ ### EdgeFirst Profiler
109
 
110
+ 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 i.MX 8M Plus, eIQ Neutron on i.MX 95, Kinara SDK on Ara-240, HailoRT on RPi5 + Hailo, TensorRT on Jetson β€” so timing reflects deployed-application reality.
 
 
 
 
 
 
 
 
 
 
111
 
112
+ ### EdgeFirst Validator
113
+
114
+ 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.
115
 
116
+ ### EdgeFirst HAL
 
 
 
117
 
118
+ 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.
119
 
120
+ ### Latency and pipelined throughput
 
 
 
 
 
121
 
122
+ Two timing surfaces per validation:
123
 
124
+ - **`timing.inline`** β€” per-image `preprocess_ms` / `inference_ms` / `postprocess_ms` with min / mean / median / p95 / p99 / max. The universal contract every producer fills.
125
+ - **`timing.trace`** β€” full per-stage breakdown from the Perfetto trace (typically 25–33 stages), plus end-to-end FPS distribution.
126
 
127
+ 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 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.
 
 
 
 
128
 
129
  ---
130
 
index.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>EdgeFirst AI β€” Spatial Perception at the Edge</title>
7
  <base target="_blank">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@@ -40,6 +40,7 @@
40
  }
41
  }
42
  * { margin: 0; padding: 0; box-sizing: border-box; }
 
43
  body {
44
  font-family: 'Crimson Text', Georgia, serif;
45
  background: var(--bg);
@@ -47,8 +48,8 @@
47
  line-height: 1.7;
48
  font-size: 16px;
49
  }
50
- .container { max-width: 860px; margin: 0 auto; padding: 2.5rem 2rem; }
51
- h1, h2, h3 {
52
  font-family: 'Barlow', -apple-system, sans-serif;
53
  color: var(--heading);
54
  line-height: 1.3;
@@ -62,6 +63,16 @@
62
  margin-top: 2.5rem; margin-bottom: 0.75rem;
63
  padding-bottom: 0.35rem; border-bottom: 2px solid var(--gold);
64
  }
 
 
 
 
 
 
 
 
 
 
65
  .tagline {
66
  font-family: 'Barlow', sans-serif; font-weight: 500;
67
  letter-spacing: 0.12em; text-transform: uppercase;
@@ -71,72 +82,67 @@
71
  a { color: var(--link); text-decoration: none; }
72
  a:hover { text-decoration: underline; color: var(--navy); }
73
  @media (prefers-color-scheme: dark) { a:hover { color: var(--gold); } }
74
- .badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.25rem 0; }
75
- .badges img { height: 22px; }
76
- .link-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.5rem 0; }
77
- .link-badges img { height: 28px; }
78
- /* Workflow diagram */
79
- .diagram-container {
 
80
  margin: 1.5rem 0;
81
- text-align: center;
82
  }
83
- .diagram-container img {
84
- max-width: 100%;
85
- height: auto;
 
86
  }
87
- /* Naming table */
88
- .naming-table {
89
- width: 100%;
90
- border-collapse: collapse;
91
- margin: 0.75rem 0;
92
  font-family: 'Barlow', sans-serif;
93
- font-size: 0.9rem;
 
94
  }
95
- .naming-table th {
96
- text-align: left;
97
- padding: 0.4rem 0.6rem;
98
- font-weight: 600;
99
- font-size: 0.8rem;
100
- text-transform: uppercase;
101
- letter-spacing: 0.04em;
102
- color: var(--text-muted);
103
- border-bottom: 2px solid var(--border);
104
- }
105
- .naming-table td {
106
- padding: 0.35rem 0.6rem;
107
- border-bottom: 1px solid var(--border);
108
- font-family: 'JetBrains Mono', monospace;
109
- font-size: 0.82rem;
110
- }
111
- .naming-table td:first-child {
112
  font-family: 'Barlow', sans-serif;
113
- font-weight: 500;
114
- color: var(--text-strong);
115
  }
116
- /* Architecture table */
117
- .arch-table {
118
- width: 100%;
119
- border-collapse: collapse;
120
- margin: 0.75rem 0;
 
121
  font-family: 'Barlow', sans-serif;
122
- font-size: 0.95rem;
 
 
 
 
123
  }
124
- .arch-table th {
125
- text-align: left;
126
- padding: 0.5rem 0.75rem;
127
- font-weight: 600; font-size: 0.8rem;
128
- text-transform: uppercase; letter-spacing: 0.05em;
129
- color: var(--text-muted);
130
- border-bottom: 2px solid var(--border);
131
  }
132
- .arch-table td {
133
- padding: 0.5rem 0.75rem;
134
- border-bottom: 1px solid var(--border);
 
 
 
135
  }
136
- .arch-table td:first-child {
137
- font-weight: 600;
138
- color: var(--text-strong);
139
- white-space: nowrap;
 
 
140
  }
141
  .roadmap-tag {
142
  font-family: 'Barlow', sans-serif;
@@ -154,120 +160,93 @@
154
  vertical-align: middle; margin-left: 0.3rem;
155
  letter-spacing: 0.03em; text-transform: uppercase;
156
  }
157
- /* Model sub-headings */
158
- .container > h3 {
159
- font-size: 0.95rem; font-weight: 600;
160
- color: var(--text-muted);
161
- text-transform: uppercase; letter-spacing: 0.05em;
162
- margin-top: 1.25rem; margin-bottom: 0.5rem;
163
- }
164
- .model-grid {
165
- display: grid;
166
- grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
167
- gap: 0.75rem; margin: 1rem 0;
168
- }
169
- .model-card {
170
- font-family: 'Barlow', sans-serif;
171
- background: var(--bg-card);
172
- padding: 0.85rem 1rem; border-radius: 5px;
173
- border-left: 3px solid var(--gold);
174
- transition: border-color 0.15s;
175
- }
176
- .model-card:hover { border-left-color: var(--teal); }
177
- .model-card h3 { font-size: 0.95rem; font-weight: 600; margin-bottom: 0.2rem; }
178
- .model-card h3 a { color: var(--text-strong); }
179
- .model-card h3 a:hover { color: var(--link); text-decoration: none; }
180
- .model-card .meta { color: var(--text-muted); font-size: 0.82rem; font-weight: 400; }
181
- .studio-features { margin: 0.75rem 0 0 1.25rem; color: var(--text); font-size: 0.95rem; }
182
- .studio-features li { margin-bottom: 0.25rem; }
183
- /* Roadmap */
184
- .roadmap-quarter {
185
- font-family: 'Barlow', sans-serif;
186
- font-size: 0.85rem; font-weight: 600;
187
- color: var(--teal-text);
188
- text-transform: uppercase; letter-spacing: 0.04em;
189
- margin-top: 1.5rem; margin-bottom: 0.4rem;
190
- padding-left: 0.6rem;
191
- border-left: 3px solid var(--teal);
192
- }
193
- @media (prefers-color-scheme: dark) {
194
- .roadmap-quarter { color: var(--teal); }
195
- }
196
- .roadmap-table {
197
  width: 100%;
198
  border-collapse: collapse;
199
- margin: 0.4rem 0 1.25rem 0;
200
  font-family: 'Barlow', sans-serif;
201
  font-size: 0.88rem;
202
  }
203
- .roadmap-table th {
204
  text-align: left;
205
- padding: 0.4rem 0.6rem;
206
  font-weight: 600; font-size: 0.75rem;
207
  text-transform: uppercase; letter-spacing: 0.04em;
208
  color: var(--text-muted);
209
  border-bottom: 2px solid var(--border);
210
  }
211
- .roadmap-table td {
212
- padding: 0.35rem 0.6rem;
213
  border-bottom: 1px solid var(--border);
214
- vertical-align: middle;
215
  }
216
- .roadmap-table td:first-child {
217
  font-weight: 600;
218
  color: var(--text-strong);
219
  white-space: nowrap;
220
  }
221
- .roadmap-table .category {
222
- color: var(--text-muted);
223
- font-size: 0.8rem;
224
- }
225
- .badge-row { display: flex; flex-wrap: wrap; gap: 0.25rem; }
226
- .license-badge {
227
- font-family: 'Barlow', sans-serif;
228
- font-size: 0.65rem; font-weight: 600;
229
- padding: 0.08rem 0.35rem; border-radius: 3px;
230
- letter-spacing: 0.02em; white-space: nowrap;
231
- }
232
- .license-apache { background: #1B7F37; color: #fff; }
233
- .license-mit { background: #0969DA; color: #fff; }
234
- .license-agpl { background: #CF222E; color: #fff; }
235
- .license-other { background: #6E7781; color: #fff; }
236
- .platform-badge {
237
- font-family: 'Barlow', sans-serif;
238
- font-size: 0.62rem; font-weight: 600;
239
- padding: 0.06rem 0.3rem; border-radius: 2px;
240
- letter-spacing: 0.02em; white-space: nowrap;
241
- background: var(--bg-card); color: var(--text-muted);
242
- border: 1px solid var(--border);
243
  }
244
- .status-available {
245
- font-family: 'Barlow', sans-serif;
246
- font-size: 0.68rem; font-weight: 600;
247
- padding: 0.1rem 0.4rem; border-radius: 3px;
248
- background: #1B7F37; color: #fff;
249
- letter-spacing: 0.03em; text-transform: uppercase;
 
250
  }
251
- .status-coming {
252
  font-family: 'Barlow', sans-serif;
253
- font-size: 0.68rem; font-weight: 600;
254
- padding: 0.1rem 0.4rem; border-radius: 3px;
255
- background: var(--gold); color: #333;
256
- letter-spacing: 0.03em; text-transform: uppercase;
257
  }
258
- .status-planned {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
259
  font-family: 'Barlow', sans-serif;
260
- font-size: 0.68rem; font-weight: 600;
261
- padding: 0.1rem 0.4rem; border-radius: 3px;
262
- background: var(--indigo); color: #fff;
263
- letter-spacing: 0.03em; text-transform: uppercase;
264
  }
 
 
265
  .roadmap-note {
266
  font-family: 'Barlow', sans-serif;
267
  font-size: 0.82rem; color: var(--text-muted);
268
- font-style: italic;
269
- margin-top: 0.75rem;
270
  }
 
 
 
 
 
271
  .footer {
272
  margin-top: 3rem; padding-top: 1.5rem;
273
  border-top: 1px solid var(--border);
@@ -277,15 +256,27 @@
277
  }
278
  .footer a { color: var(--text-muted); }
279
  .footer a:hover { color: var(--link); }
 
 
 
 
 
 
 
280
  </style>
281
  </head>
282
  <body>
283
  <div class="container">
284
- <h1><span class="edge">Edge</span><span class="first">First</span> AI</h1>
285
- <p class="tagline">AI for Spatial Perception</p>
 
 
 
 
 
286
 
287
  <p>
288
- <strong>EdgeFirst Perception</strong> is an open-source suite of libraries and microservices for AI-driven spatial perception on edge devices. It supports cameras, LiDAR, radar, and time-of-flight sensors &mdash; enabling real-time object detection, segmentation, sensor fusion, and 3D spatial understanding, optimized for resource-constrained embedded hardware.
289
  </p>
290
 
291
  <div class="link-badges">
@@ -295,33 +286,35 @@
295
  <a href="https://www.au-zone.com"><img src="https://img.shields.io/badge/Au--Zone_Technologies-6C757D?style=for-the-badge" alt="Au-Zone Technologies"></a>
296
  </div>
297
 
298
- <h2>Workflow</h2>
 
 
 
 
 
 
 
 
299
 
300
- <div class="diagram-container">
301
- <img src="01-ecosystem.png" alt="EdgeFirst Model Zoo Ecosystem: Training, Validation, and Publication Workflow">
 
 
 
 
 
 
302
  </div>
303
 
304
- <p>
305
- Every model in the EdgeFirst Model Zoo passes through a validated pipeline. <a href="https://edgefirst.studio"><strong>EdgeFirst Studio</strong></a> manages datasets, training, multi-format export (ONNX, TFLite INT8, eIQ Neutron, Kinara DVM, HailoRT HEF, TensorRT), and reference validation. Models are then deployed to our board farm for <strong>full-dataset on-target validation</strong> on real hardware &mdash; measuring both accuracy (mAP) and detailed timing breakdown per device. Results are published here on HuggingFace with per-platform performance tables.
306
- </p>
307
-
308
- <h2>Model Lifecycle</h2>
309
-
310
- <div class="diagram-container">
311
- <img src="02-model-lifecycle.png" alt="Model Lifecycle: 5 stages from training to publication">
312
  </div>
313
 
314
- <h2>On-Target Validation</h2>
315
-
316
- <div class="diagram-container">
317
- <img src="03-on-target-validation.png" alt="On-Target Validation Pipeline: full dataset validation on real hardware">
318
- </div>
319
-
320
- <p>
321
- Unlike desktop-only benchmarks, EdgeFirst validates every model on <strong>real target hardware</strong> with the full dataset. Each device produces both accuracy metrics (mAP) and a detailed timing breakdown &mdash; load, preprocessing, NPU inference, and decode &mdash; so you know exactly how a model performs on your specific platform.
322
- </p>
323
-
324
- <h2>Supported Hardware</h2>
325
  <div class="badges">
326
  <img src="https://img.shields.io/badge/NXP-i.MX_8M_Plus-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 8M Plus">
327
  <img src="https://img.shields.io/badge/NXP-i.MX_95-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 95">
@@ -330,141 +323,327 @@
330
  <img src="https://img.shields.io/badge/NVIDIA-Jetson-76B900?style=flat-square&logoColor=white" alt="NVIDIA Jetson">
331
  </div>
332
 
333
- <h2>Model Zoo</h2>
334
- <p>Pre-trained YOLO models for edge deployment. Each model repo contains all sizes (nano through x-large), ONNX FP32 and TFLite INT8 formats, with platform-specific compiled variants as they become available.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
335
 
336
- <h3>Detection</h3>
337
- <div class="model-grid">
338
- <div class="model-card">
339
- <h3><a href="https://huggingface.co/EdgeFirst/yolo26-det">YOLO26</a></h3>
340
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 54.9%</p>
 
 
 
 
341
  </div>
342
- <div class="model-card">
343
- <h3><a href="https://huggingface.co/EdgeFirst/yolo11-det">YOLO11</a></h3>
344
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 53.4%</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
  </div>
346
- <div class="model-card">
347
- <h3><a href="https://huggingface.co/EdgeFirst/yolov8-det">YOLOv8</a></h3>
348
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 50.2%</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
349
  </div>
350
- <div class="model-card">
351
- <h3><a href="https://huggingface.co/EdgeFirst/yolov5-det">YOLOv5</a></h3>
352
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 49.6%</p>
 
 
 
 
 
 
353
  </div>
 
354
  </div>
355
 
356
- <h3>Instance Segmentation</h3>
357
- <div class="model-grid">
358
- <div class="model-card">
359
- <h3><a href="https://huggingface.co/EdgeFirst/yolo26-seg">YOLO26</a></h3>
360
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano Mask mAP: 37.0%</p>
 
 
 
 
 
 
 
 
 
 
 
361
  </div>
362
- <div class="model-card">
363
- <h3><a href="https://huggingface.co/EdgeFirst/yolo11-seg">YOLO11</a></h3>
364
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano Mask mAP: 35.5%</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
365
  </div>
366
- <div class="model-card">
367
- <h3><a href="https://huggingface.co/EdgeFirst/yolov8-seg">YOLOv8</a></h3>
368
- <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano Mask mAP: 34.1%</p>
 
 
 
 
 
 
369
  </div>
 
370
  </div>
371
 
372
- <h2>Roadmap</h2>
373
- <p>The EdgeFirst Model Zoo is expanding across the full spatial perception stack &mdash; from 2D detection through depth estimation, 3D scene understanding, and edge VLMs. All models are validated on real hardware with the same pipeline used for our YOLO models.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
 
375
- <table class="roadmap-table">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
376
  <tr><th>Category</th><th>Examples</th><th>Platforms</th><th>Status</th></tr>
377
  <tr>
378
- <td>Detection (Apache 2.0)</td>
379
- <td class="category">DETR-class, EfficientDet, mobile-optimized detectors</td>
380
  <td><div class="badge-row"><span class="platform-badge">i.MX</span> <span class="platform-badge">Ara240</span> <span class="platform-badge">Hailo</span> <span class="platform-badge">Jetson</span></div></td>
381
  <td><span class="status-coming">Coming Soon</span></td>
382
  </tr>
383
  <tr>
384
- <td>Semantic Segmentation</td>
385
- <td class="category">Lightweight real-time scene parsing</td>
386
  <td><div class="badge-row"><span class="platform-badge">i.MX</span> <span class="platform-badge">Ara240</span> <span class="platform-badge">Hailo</span> <span class="platform-badge">Jetson</span></div></td>
387
  <td><span class="status-planned">Roadmap</span></td>
388
  </tr>
389
  <tr>
390
- <td>Instance Segmentation (Apache 2.0)</td>
391
- <td class="category">Non-YOLO mask prediction</td>
392
- <td><div class="badge-row"><span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
393
- <td><span class="status-planned">Roadmap</span></td>
394
- </tr>
395
- <tr>
396
- <td>SAM-like Segmentation</td>
397
- <td class="category">Prompted, class-agnostic masks</td>
398
  <td><div class="badge-row"><span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
399
  <td><span class="status-planned">Roadmap</span></td>
400
  </tr>
401
  <tr>
402
  <td>Monocular Depth</td>
403
- <td class="category">Relative and metric depth estimation</td>
404
  <td><div class="badge-row"><span class="platform-badge">i.MX</span> <span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
405
  <td><span class="status-planned">Roadmap</span></td>
406
  </tr>
407
  <tr>
408
- <td>Stereo Depth</td>
409
- <td class="category">Hardware stereo depth matching</td>
410
- <td><div class="badge-row"><span class="platform-badge">Jetson</span></div></td>
411
- <td><span class="status-planned">Roadmap</span></td>
412
- </tr>
413
- <tr>
414
- <td>3D Detection &amp; Occupancy</td>
415
- <td class="category">Monocular 3D, BEV, occupancy grids</td>
416
  <td><div class="badge-row"><span class="platform-badge">Jetson</span></div></td>
417
  <td><span class="status-planned">Roadmap</span></td>
418
  </tr>
419
  <tr>
420
  <td>Edge VLMs</td>
421
- <td class="category">Visual language models for edge inference</td>
422
  <td><div class="badge-row"><span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
423
  <td><span class="status-planned">Roadmap</span></td>
424
  </tr>
425
  </table>
426
-
427
  <p class="roadmap-note">Roadmap is subject to change. Models are published as validation completes on each target platform.</p>
428
 
429
- <h2>Naming Convention</h2>
430
- <p>Each HuggingFace repo contains one model family for one task, with all size variants inside.</p>
431
- <table class="naming-table">
432
- <tr><th>Component</th><th>Pattern</th><th>Example</th></tr>
433
- <tr><td>HF Repo</td><td>EdgeFirst/{version}-{task}</td><td>EdgeFirst/yolov8-det</td></tr>
434
- <tr><td>ONNX Model</td><td>{version}{size}-{task}.onnx</td><td>yolov8n-det.onnx</td></tr>
435
- <tr><td>TFLite Model</td><td>{version}{size}-{task}-int8.tflite</td><td>yolov8n-det-int8.tflite</td></tr>
436
- <tr><td>i.MX 95 TFLite</td><td>{version}{size}-{task}.imx95.tflite</td><td>yolov8n-det.imx95.tflite</td></tr>
437
- <tr><td>i.MX 93 TFLite</td><td>{version}{size}-{task}.imx93.tflite</td><td>yolov8n-det.imx93.tflite</td></tr>
438
- <tr><td>i.MX 943 TFLite</td><td>{version}{size}-{task}.imx943.tflite</td><td>yolov8n-det.imx943.tflite</td></tr>
439
- <tr><td>Hailo HEF</td><td>{version}{size}-{task}.hailo{variant}.hef</td><td>yolov8n-det.hailo8l.hef</td></tr>
440
- <tr><td>Studio Project</td><td>{Dataset} {Task}</td><td>COCO Detection</td></tr>
441
- <tr><td>Studio Experiment</td><td>{Version} {Task}</td><td>YOLOv8 Detection</td></tr>
442
- </table>
443
-
444
- <h2>Validation Pipeline</h2>
445
- <p>Models go through two validation stages before publication:</p>
446
- <table class="arch-table">
447
- <tr><th>Stage</th><th>What</th><th>Where</th></tr>
448
- <tr>
449
- <td>Reference</td>
450
- <td>ONNX FP32 and TFLite INT8 mAP on full COCO val2017 (5000 images)</td>
451
- <td>EdgeFirst Studio (cloud)</td>
452
- </tr>
453
- <tr>
454
- <td>On-Target</td>
455
- <td>Full dataset mAP + timing breakdown (load, preproc, invoke, decode, e2e) per device</td>
456
- <td>Board farm (real hardware) <span class="wip-tag">In Progress</span></td>
457
- </tr>
458
- </table>
459
-
460
- <h2>Perception Architecture</h2>
461
- <table class="arch-table">
462
- <tr><th>Layer</th><th>Description</th></tr>
463
- <tr><td>Foundation</td><td>Hardware abstraction, video I/O, accelerated inference delegates</td></tr>
464
- <tr><td>Zenoh</td><td>Modular perception pipeline over Zenoh pub/sub</td></tr>
465
- <tr><td>GStreamer</td><td>Spatial perception elements for GStreamer / NNStreamer</td></tr>
466
- <tr><td>ROS 2</td><td>Native ROS 2 nodes extending Zenoh microservices <span class="roadmap-tag">Roadmap</span></td></tr>
467
- </table>
468
 
469
  <h2>EdgeFirst Studio</h2>
470
  <p>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>EdgeFirst AI β€” Model Zoo</title>
7
  <base target="_blank">
8
  <link rel="preconnect" href="https://fonts.googleapis.com">
9
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
 
40
  }
41
  }
42
  * { margin: 0; padding: 0; box-sizing: border-box; }
43
+ html { scroll-behavior: smooth; }
44
  body {
45
  font-family: 'Crimson Text', Georgia, serif;
46
  background: var(--bg);
 
48
  line-height: 1.7;
49
  font-size: 16px;
50
  }
51
+ .container { max-width: 900px; margin: 0 auto; padding: 2.5rem 2rem; }
52
+ h1, h2, h3, h4 {
53
  font-family: 'Barlow', -apple-system, sans-serif;
54
  color: var(--heading);
55
  line-height: 1.3;
 
63
  margin-top: 2.5rem; margin-bottom: 0.75rem;
64
  padding-bottom: 0.35rem; border-bottom: 2px solid var(--gold);
65
  }
66
+ h3 {
67
+ font-size: 1.05rem; font-weight: 600;
68
+ margin-top: 1.75rem; margin-bottom: 0.5rem;
69
+ }
70
+ h4 {
71
+ font-size: 0.9rem; font-weight: 600;
72
+ color: var(--text-muted);
73
+ text-transform: uppercase; letter-spacing: 0.04em;
74
+ margin-top: 1.25rem; margin-bottom: 0.4rem;
75
+ }
76
  .tagline {
77
  font-family: 'Barlow', sans-serif; font-weight: 500;
78
  letter-spacing: 0.12em; text-transform: uppercase;
 
82
  a { color: var(--link); text-decoration: none; }
83
  a:hover { text-decoration: underline; color: var(--navy); }
84
  @media (prefers-color-scheme: dark) { a:hover { color: var(--gold); } }
85
+ /* Navigation */
86
+ .toc {
87
+ font-family: 'Barlow', sans-serif;
88
+ background: var(--bg-subtle);
89
+ border: 1px solid var(--border);
90
+ border-radius: 6px;
91
+ padding: 1rem 1.25rem;
92
  margin: 1.5rem 0;
93
+ font-size: 0.88rem;
94
  }
95
+ .toc-title {
96
+ font-weight: 600; font-size: 0.78rem;
97
+ text-transform: uppercase; letter-spacing: 0.05em;
98
+ color: var(--text-muted); margin-bottom: 0.5rem;
99
  }
100
+ .toc ul { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem; }
101
+ .toc a { font-weight: 500; }
102
+ .breadcrumb {
 
 
103
  font-family: 'Barlow', sans-serif;
104
+ font-size: 0.78rem; color: var(--text-muted);
105
+ margin-bottom: 0.5rem;
106
  }
107
+ .breadcrumb a { color: var(--text-muted); font-weight: 500; }
108
+ .back-to-top {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  font-family: 'Barlow', sans-serif;
110
+ font-size: 0.75rem; color: var(--text-muted);
111
+ display: inline-block; margin-top: 0.5rem;
112
  }
113
+ /* Badges */
114
+ .badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.25rem 0; }
115
+ .badges img { height: 22px; }
116
+ .link-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.5rem 0; }
117
+ .link-badges img { height: 28px; }
118
+ .platform-badge {
119
  font-family: 'Barlow', sans-serif;
120
+ font-size: 0.62rem; font-weight: 600;
121
+ padding: 0.06rem 0.3rem; border-radius: 2px;
122
+ letter-spacing: 0.02em; white-space: nowrap;
123
+ background: var(--bg-card); color: var(--text-muted);
124
+ border: 1px solid var(--border);
125
  }
126
+ .status-available {
127
+ font-family: 'Barlow', sans-serif;
128
+ font-size: 0.68rem; font-weight: 600;
129
+ padding: 0.1rem 0.4rem; border-radius: 3px;
130
+ background: #1B7F37; color: #fff;
131
+ letter-spacing: 0.03em; text-transform: uppercase;
 
132
  }
133
+ .status-coming {
134
+ font-family: 'Barlow', sans-serif;
135
+ font-size: 0.68rem; font-weight: 600;
136
+ padding: 0.1rem 0.4rem; border-radius: 3px;
137
+ background: var(--gold); color: #333;
138
+ letter-spacing: 0.03em; text-transform: uppercase;
139
  }
140
+ .status-planned {
141
+ font-family: 'Barlow', sans-serif;
142
+ font-size: 0.68rem; font-weight: 600;
143
+ padding: 0.1rem 0.4rem; border-radius: 3px;
144
+ background: var(--indigo); color: #fff;
145
+ letter-spacing: 0.03em; text-transform: uppercase;
146
  }
147
  .roadmap-tag {
148
  font-family: 'Barlow', sans-serif;
 
160
  vertical-align: middle; margin-left: 0.3rem;
161
  letter-spacing: 0.03em; text-transform: uppercase;
162
  }
163
+ /* Diagrams */
164
+ .diagram-container { margin: 1.5rem 0; text-align: center; }
165
+ .diagram-container img { max-width: 100%; height: auto; }
166
+ /* Tables */
167
+ .data-table {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
168
  width: 100%;
169
  border-collapse: collapse;
170
+ margin: 0.75rem 0;
171
  font-family: 'Barlow', sans-serif;
172
  font-size: 0.88rem;
173
  }
174
+ .data-table th {
175
  text-align: left;
176
+ padding: 0.5rem 0.6rem;
177
  font-weight: 600; font-size: 0.75rem;
178
  text-transform: uppercase; letter-spacing: 0.04em;
179
  color: var(--text-muted);
180
  border-bottom: 2px solid var(--border);
181
  }
182
+ .data-table td {
183
+ padding: 0.4rem 0.6rem;
184
  border-bottom: 1px solid var(--border);
 
185
  }
186
+ .data-table td:first-child {
187
  font-weight: 600;
188
  color: var(--text-strong);
189
  white-space: nowrap;
190
  }
191
+ .data-table code {
192
+ font-family: 'JetBrains Mono', monospace;
193
+ font-size: 0.78rem;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
194
  }
195
+ .data-table .num { font-family: 'JetBrains Mono', monospace; font-size: 0.82rem; }
196
+ .data-table .muted { color: var(--text-muted); }
197
+ /* Model cards */
198
+ .model-grid {
199
+ display: grid;
200
+ grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
201
+ gap: 0.75rem; margin: 1rem 0;
202
  }
203
+ .model-card {
204
  font-family: 'Barlow', sans-serif;
205
+ background: var(--bg-card);
206
+ padding: 0.85rem 1rem; border-radius: 5px;
207
+ border-left: 3px solid var(--gold);
208
+ transition: border-color 0.15s;
209
  }
210
+ .model-card:hover { border-left-color: var(--teal); }
211
+ .model-card h3 { font-size: 0.95rem; font-weight: 600; margin: 0 0 0.2rem 0; }
212
+ .model-card h3 a { color: var(--text-strong); }
213
+ .model-card h3 a:hover { color: var(--link); text-decoration: none; }
214
+ .model-card .meta { color: var(--text-muted); font-size: 0.82rem; font-weight: 400; }
215
+ /* Accuracy bars */
216
+ .bar-chart { margin: 0.75rem 0; }
217
+ .bar-row {
218
+ display: flex; align-items: center; gap: 0.5rem;
219
+ font-family: 'Barlow', sans-serif; font-size: 0.82rem;
220
+ margin-bottom: 0.3rem;
221
+ }
222
+ .bar-label { width: 65px; font-weight: 600; color: var(--text-strong); text-align: right; }
223
+ .bar-track { flex: 1; height: 18px; background: var(--bg-subtle); border-radius: 3px; overflow: hidden; }
224
+ .bar-fill { height: 100%; border-radius: 3px; display: flex; align-items: center; padding-left: 6px; }
225
+ .bar-fill span { font-size: 0.72rem; font-weight: 600; color: #fff; white-space: nowrap; }
226
+ .bar-navy { background: var(--navy); }
227
+ .bar-teal { background: var(--teal); }
228
+ .bar-gold { background: var(--gold); }
229
+ .bar-gold span { color: #333; }
230
+ /* Collapsible sections */
231
+ details { margin: 0.5rem 0; }
232
+ details summary {
233
  font-family: 'Barlow', sans-serif;
234
+ font-weight: 600; font-size: 0.9rem;
235
+ cursor: pointer; padding: 0.4rem 0;
236
+ color: var(--text-strong);
 
237
  }
238
+ details summary:hover { color: var(--link); }
239
+ /* Roadmap */
240
  .roadmap-note {
241
  font-family: 'Barlow', sans-serif;
242
  font-size: 0.82rem; color: var(--text-muted);
243
+ font-style: italic; margin-top: 0.75rem;
 
244
  }
245
+ .badge-row { display: flex; flex-wrap: wrap; gap: 0.25rem; }
246
+ /* Studio features */
247
+ .studio-features { margin: 0.75rem 0 0 1.25rem; color: var(--text); font-size: 0.95rem; }
248
+ .studio-features li { margin-bottom: 0.25rem; }
249
+ /* Footer */
250
  .footer {
251
  margin-top: 3rem; padding-top: 1.5rem;
252
  border-top: 1px solid var(--border);
 
256
  }
257
  .footer a { color: var(--text-muted); }
258
  .footer a:hover { color: var(--link); }
259
+ /* Family section divider */
260
+ .family-section {
261
+ margin-top: 2rem;
262
+ padding-top: 1.5rem;
263
+ border-top: 1px solid var(--border);
264
+ }
265
+ .family-section:first-of-type { border-top: none; padding-top: 0; }
266
  </style>
267
  </head>
268
  <body>
269
  <div class="container">
270
+
271
+ <!-- ═══════════════════════════════════════════════════════ -->
272
+ <!-- LEVEL 1: OVERVIEW -->
273
+ <!-- ═══════════════════════════════════════════════════════ -->
274
+
275
+ <h1 id="top"><span class="edge">Edge</span><span class="first">First</span> AI</h1>
276
+ <p class="tagline">Model Zoo &mdash; Edge AI Perception Models</p>
277
 
278
  <p>
279
+ Pre-trained models optimized for edge deployment, validated on real hardware with full-dataset accuracy metrics and per-platform timing breakdowns. Each model repo contains all sizes (nano through x-large) with ONNX FP32, TFLite INT8, and platform-specific compiled formats.
280
  </p>
281
 
282
  <div class="link-badges">
 
286
  <a href="https://www.au-zone.com"><img src="https://img.shields.io/badge/Au--Zone_Technologies-6C757D?style=for-the-badge" alt="Au-Zone Technologies"></a>
287
  </div>
288
 
289
+ <nav class="toc">
290
+ <div class="toc-title">Model Families</div>
291
+ <ul>
292
+ <li><a href="#yolo26" target="_self">YOLO26</a></li>
293
+ <li><a href="#yolo11" target="_self">YOLO11</a></li>
294
+ <li><a href="#yolov8" target="_self">YOLOv8</a></li>
295
+ <li><a href="#yolov5" target="_self">YOLOv5</a></li>
296
+ </ul>
297
+ </nav>
298
 
299
+ <!-- Overview: All families comparison -->
300
+ <h2>Detection &mdash; Nano Accuracy Comparison</h2>
301
+ <p>ONNX FP32 mAP@0.5 on COCO val2017 (5000 images, 80 classes). Nano size for each family.</p>
302
+ <div class="bar-chart">
303
+ <div class="bar-row"><span class="bar-label">YOLO26</span><div class="bar-track"><div class="bar-fill bar-navy" style="width:91.5%"><span>54.9%</span></div></div></div>
304
+ <div class="bar-row"><span class="bar-label">YOLO11</span><div class="bar-track"><div class="bar-fill bar-teal" style="width:89.0%"><span>53.4%</span></div></div></div>
305
+ <div class="bar-row"><span class="bar-label">YOLOv8</span><div class="bar-track"><div class="bar-fill bar-navy" style="width:83.6%"><span>50.2%</span></div></div></div>
306
+ <div class="bar-row"><span class="bar-label">YOLOv5</span><div class="bar-track"><div class="bar-fill bar-teal" style="width:82.6%"><span>49.6%</span></div></div></div>
307
  </div>
308
 
309
+ <h2>Segmentation &mdash; Nano Accuracy Comparison</h2>
310
+ <p>ONNX FP32 Mask mAP@0.5-0.95 on COCO val2017. Nano size, split-decoder.</p>
311
+ <div class="bar-chart">
312
+ <div class="bar-row"><span class="bar-label">YOLO26</span><div class="bar-track"><div class="bar-fill bar-navy" style="width:92.5%"><span>37.0%</span></div></div></div>
313
+ <div class="bar-row"><span class="bar-label">YOLO11</span><div class="bar-track"><div class="bar-fill bar-teal" style="width:88.7%"><span>35.5%</span></div></div></div>
314
+ <div class="bar-row"><span class="bar-label">YOLOv8</span><div class="bar-track"><div class="bar-fill bar-navy" style="width:85.2%"><span>34.1%</span></div></div></div>
 
 
315
  </div>
316
 
317
+ <h2>Platform Support</h2>
 
 
 
 
 
 
 
 
 
 
318
  <div class="badges">
319
  <img src="https://img.shields.io/badge/NXP-i.MX_8M_Plus-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 8M Plus">
320
  <img src="https://img.shields.io/badge/NXP-i.MX_95-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 95">
 
323
  <img src="https://img.shields.io/badge/NVIDIA-Jetson-76B900?style=flat-square&logoColor=white" alt="NVIDIA Jetson">
324
  </div>
325
 
326
+ <table class="data-table">
327
+ <tr><th>Family</th><th>ONNX</th><th>TFLite</th><th>i.MX 93</th><th>i.MX 95</th><th>Ara240</th><th>Hailo</th><th>Jetson</th></tr>
328
+ <tr><td>YOLO26</td><td>βœ“</td><td>βœ“</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
329
+ <tr><td>YOLO11</td><td>βœ“</td><td>βœ“</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
330
+ <tr><td>YOLOv8</td><td>βœ“</td><td>βœ“</td><td class="muted">&mdash;</td><td><span class="wip-tag">WIP</span></td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
331
+ <tr><td>YOLOv5</td><td>βœ“</td><td>βœ“</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
332
+ </table>
333
+
334
+ <!-- ═══════════════════════════════════════════════════════ -->
335
+ <!-- LEVEL 2: MODEL FAMILIES -->
336
+ <!-- ═══════════════════════════════════════════════════════ -->
337
+
338
+ <!-- ── YOLO26 ──────────────────────────────────────────── -->
339
+ <div class="family-section" id="yolo26">
340
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <strong>YOLO26</strong></p>
341
+ <h2>YOLO26</h2>
342
+ <p>YOLO architecture with end-to-end attention head. <em>Note: <code>end2end=False</code> required for INT8 export.</em></p>
343
+
344
+ <h4>Tasks</h4>
345
+ <div class="model-grid">
346
+ <div class="model-card">
347
+ <h3><a href="#yolo26-det" target="_self">Detection</a></h3>
348
+ <p class="meta">n/s/m/l/x &middot; Nano mAP@0.5: 54.9% &middot; <a href="https://huggingface.co/EdgeFirst/yolo26-det">HF Repo</a></p>
349
+ </div>
350
+ <div class="model-card">
351
+ <h3><a href="#yolo26-seg" target="_self">Segmentation</a></h3>
352
+ <p class="meta">n/s/m/l/x &middot; Nano Mask mAP: 37.0% &middot; <a href="https://huggingface.co/EdgeFirst/yolo26-seg">HF Repo</a></p>
353
+ </div>
354
+ </div>
355
+
356
+ <h4>Size Scaling &mdash; Detection (ONNX FP32)</h4>
357
+ <table class="data-table">
358
+ <tr><th>Size</th><th>Params</th><th>GFLOPs</th><th>mAP@0.5</th><th>mAP@0.5-0.95</th></tr>
359
+ <tr><td>Nano</td><td class="num">2.7M</td><td class="num">7.6</td><td class="num">54.9%</td><td class="num">39.7%</td></tr>
360
+ <tr><td>Small</td><td class="num">10.3M</td><td class="num">27.0</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
361
+ <tr><td>Medium</td><td class="num">24.5M</td><td class="num">74.4</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
362
+ <tr><td>Large</td><td class="num">42.5M</td><td class="num">155.0</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
363
+ <tr><td>XLarge</td><td class="num">67.5M</td><td class="num">244.0</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
364
+ </table>
365
+
366
+ <!-- Level 3: YOLO26 Detection -->
367
+ <div id="yolo26-det">
368
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolo26" target="_self">YOLO26</a> &rsaquo; <strong>Detection</strong></p>
369
+ <h3>YOLO26 Detection</h3>
370
+ <p>Accuracy on COCO val2017 (5000 images, 80 classes). <a href="https://huggingface.co/EdgeFirst/yolo26-det">View on HuggingFace &rarr;</a></p>
371
+ <table class="data-table">
372
+ <tr><th>Size</th><th>ONNX FP32 mAP@0.5</th><th>TFLite INT8 mAP@0.5</th><th>INT8 Drop</th></tr>
373
+ <tr><td>Nano</td><td class="num">54.9%</td><td class="num">51.5%</td><td class="num">βˆ’3.4 pp</td></tr>
374
+ </table>
375
+ </div>
376
 
377
+ <!-- Level 3: YOLO26 Segmentation -->
378
+ <div id="yolo26-seg">
379
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolo26" target="_self">YOLO26</a> &rsaquo; <strong>Segmentation</strong></p>
380
+ <h3>YOLO26 Segmentation</h3>
381
+ <p>Split-decoder architecture. <a href="https://huggingface.co/EdgeFirst/yolo26-seg">View on HuggingFace &rarr;</a></p>
382
+ <table class="data-table">
383
+ <tr><th>Size</th><th>ONNX Det mAP</th><th>INT8 Det mAP</th><th>ONNX Mask mAP</th><th>INT8 Mask mAP</th></tr>
384
+ <tr><td>Nano</td><td class="num">29.6%</td><td class="num">26.8%</td><td class="num">37.0%</td><td class="num">34.5%</td></tr>
385
+ </table>
386
  </div>
387
+ <a class="back-to-top" href="#top" target="_self">&uarr; Back to top</a>
388
+ </div>
389
+
390
+ <!-- ── YOLO11 ──────────────────────────────────────────── -->
391
+ <div class="family-section" id="yolo11">
392
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <strong>YOLO11</strong></p>
393
+ <h2>YOLO11</h2>
394
+ <p>Newer architecture with attention blocks. Strong balance of accuracy and efficiency.</p>
395
+
396
+ <h4>Tasks</h4>
397
+ <div class="model-grid">
398
+ <div class="model-card">
399
+ <h3><a href="#yolo11-det" target="_self">Detection</a></h3>
400
+ <p class="meta">n/s/m/l/x &middot; Nano mAP@0.5: 53.4% &middot; <a href="https://huggingface.co/EdgeFirst/yolo11-det">HF Repo</a></p>
401
+ </div>
402
+ <div class="model-card">
403
+ <h3><a href="#yolo11-seg" target="_self">Segmentation</a></h3>
404
+ <p class="meta">n/s/m/l/x &middot; Nano Mask mAP: 35.5% &middot; <a href="https://huggingface.co/EdgeFirst/yolo11-seg">HF Repo</a></p>
405
+ </div>
406
  </div>
407
+
408
+ <h4>Size Scaling &mdash; Detection (ONNX FP32)</h4>
409
+ <table class="data-table">
410
+ <tr><th>Size</th><th>Params</th><th>GFLOPs</th><th>mAP@0.5</th><th>mAP@0.5-0.95</th></tr>
411
+ <tr><td>Nano</td><td class="num">2.6M</td><td class="num">6.5</td><td class="num">53.4%</td><td class="num">37.9%</td></tr>
412
+ <tr><td>Small</td><td class="num">9.4M</td><td class="num">21.5</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
413
+ <tr><td>Medium</td><td class="num">20.1M</td><td class="num">68.0</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
414
+ <tr><td>Large</td><td class="num">25.3M</td><td class="num">87.6</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
415
+ <tr><td>XLarge</td><td class="num">56.9M</td><td class="num">195.0</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
416
+ </table>
417
+
418
+ <div id="yolo11-det">
419
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolo11" target="_self">YOLO11</a> &rsaquo; <strong>Detection</strong></p>
420
+ <h3>YOLO11 Detection</h3>
421
+ <p><a href="https://huggingface.co/EdgeFirst/yolo11-det">View on HuggingFace &rarr;</a></p>
422
+ <table class="data-table">
423
+ <tr><th>Size</th><th>ONNX FP32 mAP@0.5</th><th>TFLite INT8 mAP@0.5</th><th>INT8 Drop</th></tr>
424
+ <tr><td>Nano</td><td class="num">53.4%</td><td class="num">50.1%</td><td class="num">βˆ’3.3 pp</td></tr>
425
+ </table>
426
  </div>
427
+
428
+ <div id="yolo11-seg">
429
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolo11" target="_self">YOLO11</a> &rsaquo; <strong>Segmentation</strong></p>
430
+ <h3>YOLO11 Segmentation</h3>
431
+ <p><a href="https://huggingface.co/EdgeFirst/yolo11-seg">View on HuggingFace &rarr;</a></p>
432
+ <table class="data-table">
433
+ <tr><th>Size</th><th>ONNX Det mAP</th><th>INT8 Det mAP</th><th>ONNX Mask mAP</th><th>INT8 Mask mAP</th></tr>
434
+ <tr><td>Nano</td><td class="num">28.4%</td><td class="num">27.1%</td><td class="num">35.5%</td><td class="num">34.4%</td></tr>
435
+ </table>
436
  </div>
437
+ <a class="back-to-top" href="#top" target="_self">&uarr; Back to top</a>
438
  </div>
439
 
440
+ <!-- ── YOLOv8 ──────────────────────────────────────────── -->
441
+ <div class="family-section" id="yolov8">
442
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <strong>YOLOv8</strong></p>
443
+ <h2>YOLOv8</h2>
444
+ <p>Anchor-free DFL detection head. Available in detection and instance-segmentation variants.</p>
445
+
446
+ <h4>Tasks</h4>
447
+ <div class="model-grid">
448
+ <div class="model-card">
449
+ <h3><a href="#yolov8-det" target="_self">Detection</a></h3>
450
+ <p class="meta">n/s/m/l/x &middot; Nano mAP@0.5: 50.2% &middot; <a href="https://huggingface.co/EdgeFirst/yolov8-det">HF Repo</a></p>
451
+ </div>
452
+ <div class="model-card">
453
+ <h3><a href="#yolov8-seg" target="_self">Segmentation</a></h3>
454
+ <p class="meta">n/s/m/l/x &middot; Nano Mask mAP: 34.1% &middot; <a href="https://huggingface.co/EdgeFirst/yolov8-seg">HF Repo</a></p>
455
+ </div>
456
  </div>
457
+
458
+ <h4>Size Scaling &mdash; Detection (ONNX FP32)</h4>
459
+ <table class="data-table">
460
+ <tr><th>Size</th><th>Params</th><th>GFLOPs</th><th>mAP@0.5</th><th>mAP@0.5-0.95</th></tr>
461
+ <tr><td>Nano</td><td class="num">3.2M</td><td class="num">8.9</td><td class="num">50.2%</td><td class="num">35.8%</td></tr>
462
+ <tr><td>Small</td><td class="num">11.2M</td><td class="num">28.8</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
463
+ <tr><td>Medium</td><td class="num">25.9M</td><td class="num">79.3</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
464
+ <tr><td>Large</td><td class="num">43.7M</td><td class="num">165.7</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
465
+ <tr><td>XLarge</td><td class="num">68.2M</td><td class="num">258.5</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
466
+ </table>
467
+
468
+ <div id="yolov8-det">
469
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolov8" target="_self">YOLOv8</a> &rsaquo; <strong>Detection</strong></p>
470
+ <h3>YOLOv8 Detection</h3>
471
+ <p><a href="https://huggingface.co/EdgeFirst/yolov8-det">View on HuggingFace &rarr;</a></p>
472
+ <table class="data-table">
473
+ <tr><th>Size</th><th>ONNX FP32 mAP@0.5</th><th>TFLite INT8 mAP@0.5</th><th>INT8 Drop</th></tr>
474
+ <tr><td>Nano</td><td class="num">50.2%</td><td class="num">47.3%</td><td class="num">βˆ’2.9 pp</td></tr>
475
+ </table>
476
  </div>
477
+
478
+ <div id="yolov8-seg">
479
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolov8" target="_self">YOLOv8</a> &rsaquo; <strong>Segmentation</strong></p>
480
+ <h3>YOLOv8 Segmentation</h3>
481
+ <p><a href="https://huggingface.co/EdgeFirst/yolov8-seg">View on HuggingFace &rarr;</a></p>
482
+ <table class="data-table">
483
+ <tr><th>Size</th><th>ONNX Det mAP</th><th>INT8 Det mAP</th><th>ONNX Mask mAP</th><th>INT8 Mask mAP</th></tr>
484
+ <tr><td>Nano</td><td class="num">26.7%</td><td class="num">26.0%</td><td class="num">34.1%</td><td class="num">33.5%</td></tr>
485
+ </table>
486
  </div>
487
+ <a class="back-to-top" href="#top" target="_self">&uarr; Back to top</a>
488
  </div>
489
 
490
+ <!-- ── YOLOv5 ──────────────────────────────────────────── -->
491
+ <div class="family-section" id="yolov5">
492
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <strong>YOLOv5</strong></p>
493
+ <h2>YOLOv5</h2>
494
+ <p>CSP-Darknet backbone with anchor-based detection head. Detection only.</p>
495
+
496
+ <h4>Tasks</h4>
497
+ <div class="model-grid">
498
+ <div class="model-card">
499
+ <h3><a href="#yolov5-det" target="_self">Detection</a></h3>
500
+ <p class="meta">n/s/m/l/x &middot; Nano mAP@0.5: 49.6% &middot; <a href="https://huggingface.co/EdgeFirst/yolov5-det">HF Repo</a></p>
501
+ </div>
502
+ </div>
503
+
504
+ <h4>Size Scaling &mdash; Detection (ONNX FP32)</h4>
505
+ <table class="data-table">
506
+ <tr><th>Size</th><th>Params</th><th>GFLOPs</th><th>mAP@0.5</th><th>mAP@0.5-0.95</th></tr>
507
+ <tr><td>Nano</td><td class="num">1.9M</td><td class="num">4.5</td><td class="num">49.6%</td><td class="num">33.0%</td></tr>
508
+ <tr><td>Small</td><td class="num">7.2M</td><td class="num">16.5</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
509
+ <tr><td>Medium</td><td class="num">21.2M</td><td class="num">49.0</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
510
+ <tr><td>Large</td><td class="num">46.5M</td><td class="num">109.1</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
511
+ <tr><td>XLarge</td><td class="num">86.7M</td><td class="num">205.7</td><td class="muted">&mdash;</td><td class="muted">&mdash;</td></tr>
512
+ </table>
513
+
514
+ <div id="yolov5-det">
515
+ <p class="breadcrumb"><a href="#top" target="_self">Models</a> &rsaquo; <a href="#yolov5" target="_self">YOLOv5</a> &rsaquo; <strong>Detection</strong></p>
516
+ <h3>YOLOv5 Detection</h3>
517
+ <p><a href="https://huggingface.co/EdgeFirst/yolov5-det">View on HuggingFace &rarr;</a></p>
518
+ <table class="data-table">
519
+ <tr><th>Size</th><th>ONNX FP32 mAP@0.5</th><th>TFLite INT8 mAP@0.5</th><th>INT8 Drop</th></tr>
520
+ <tr><td>Nano</td><td class="num">49.6%</td><td class="num">46.2%</td><td class="num">βˆ’3.4 pp</td></tr>
521
+ </table>
522
+ </div>
523
+ <a class="back-to-top" href="#top" target="_self">&uarr; Back to top</a>
524
+ </div>
525
+
526
+ <!-- ═══════════════════════════════════════════════════════ -->
527
+ <!-- WORKFLOW & VALIDATION -->
528
+ <!-- ═══════════════════════════════════════════════════════ -->
529
+
530
+ <h2>Validation Pipeline</h2>
531
+ <div class="diagram-container">
532
+ <img src="01-ecosystem.png" alt="EdgeFirst Model Zoo Ecosystem">
533
+ </div>
534
+ <p>
535
+ Every artifact in the Model Zoo is measured on the <strong>same dataset on the same hardware</strong> users deploy on. <a href="https://edgefirst.studio"><strong>EdgeFirst Studio</strong></a> manages datasets, training, multi-format export, and reference validation; on-target runs happen on a board farm of i.MX 8M Plus, i.MX 95, Ara-240, Hailo, and Jetson devices. Accuracy numbers and per-stage timing are pushed back to Studio session metrics and consumed by this Model Zoo when generating each model card.
536
+ </p>
537
+
538
+ <h3>End-to-end Flow</h3>
539
+ <div class="diagram-container">
540
+ <img src="02-model-lifecycle.png" alt="Model Lifecycle: 5 stages from training to publication">
541
+ </div>
542
+ <p>
543
+ Each training session produces a single set of weights. The export pipeline emits ONNX FP32, INT8 TFLite, and platform-specific compiled formats (i.MX 95 Neutron, NXP Ara-240 DVM, Hailo HEF, Jetson TensorRT). Every output is paired with an on-target validation run that captures both <strong>accuracy</strong> (COCO/LVIS mAP against the validation set) and <strong>full-pipeline timing</strong>. The ONNX FP32 run from each training session serves as the reference baseline; quantization and runtime loss are measured relative to it, not relative to externally-published numbers.
544
+ </p>
545
 
546
+ <h3>EdgeFirst Profiler</h3>
547
+ <div class="diagram-container">
548
+ <img src="03-on-target-validation.png" alt="On-Target Validation Pipeline">
549
+ </div>
550
+ <p>
551
+ The <strong>EdgeFirst Profiler</strong> is the on-target agent that drives every validation. Given a model and a dataset, it runs full inference on the target device, captures per-image predictions in the EdgeFirst Arrow/Parquet format, and emits a <a href="https://perfetto.dev"><strong>Perfetto</strong></a> trace alongside the predictions. The Profiler is hardware-aware: it loads each runtime through its native delegate &mdash; Verisilicon VX Delegate on i.MX 8M Plus, eIQ Neutron Delegate on i.MX 95, Kinara SDK on Ara-240, HailoRT on RPi5 + Hailo, TensorRT on Jetson &mdash; so every stage timed by the trace corresponds to what a deployed application would experience.
552
+ </p>
553
+
554
+ <h3>EdgeFirst Validator</h3>
555
+ <p>
556
+ The <strong>EdgeFirst Validator</strong> is the off-target post-processor. It consumes the Profiler's predictions and Perfetto trace, computes the full 12-metric COCO accuracy tuple via <code>pycocotools</code> (or <code>lvis-api</code> for large-vocabulary datasets), and rebuilds per-stage timing summaries from the trace. Results land in a structured YAML payload attached to the Studio validation session &mdash; the same payload the Model Zoo reads to render this page. Accuracy and timing are computed independently of the runtime that produced the predictions, so toolchain regressions surface as cross-platform divergence rather than silent failures.
557
+ </p>
558
+
559
+ <h3>EdgeFirst HAL</h3>
560
+ <p>
561
+ The <a href="https://github.com/EdgeFirstAI/hal"><strong>EdgeFirst Hardware Abstraction Layer</strong> (HAL)</a> provides the hardware-accelerated primitives used at both validation and deployment time. The Profiler uses HAL for letterbox resize, color-space conversion, normalization, layout conversion, and post-decode (YOLO/ModelPack output decoding, NMS, mask materialisation). HAL automatically selects DMA-BUF, OpenGL ES, NXP G2D, or CPU paths depending on the platform &mdash; so the timing measured during validation reflects the same accelerated path a production runtime would take. HAL ships as a Rust crate, a Python package, and a C library under Apache 2.0.
562
+ </p>
563
+
564
+ <h3>Latency and Pipelined Throughput</h3>
565
+ <p>
566
+ Two complementary timing surfaces are reported per validation:
567
+ </p>
568
+ <table class="data-table">
569
+ <tr><th>Surface</th><th>What it captures</th><th>When it&#39;s present</th></tr>
570
+ <tr><td><code>timing.inline</code></td><td>Per-image <code>preprocess_ms</code>, <code>inference_ms</code>, <code>postprocess_ms</code> with min / mean / median / p95 / p99 / max</td><td>Always &mdash; the universal contract every producer fills in</td></tr>
571
+ <tr><td><code>timing.trace</code></td><td>Full per-stage breakdown from the Perfetto trace (typically 25&ndash;33 stages including delegate work, tensor moves, decode passes, NMS, parquet flush), plus end-to-end FPS distribution</td><td>When the Profiler emits a sidecar trace (almost all runs)</td></tr>
572
+ </table>
573
+ <p>
574
+ <strong>Throughput exceeds the sum of stage latencies</strong> because the runtime pipelines I/O, host preprocessing, NPU inference, and decode across frames. Reporting <code>1000 / (preprocess + inference + postprocess)</code> understates real throughput; the Model Zoo uses the <strong>measured end-to-end FPS</strong> from the trace (<code>trace.fps.median</code>) as the headline number. As a concrete example, YOLOv5n on i.MX 95 Neutron has per-stage means 21.7 ms preprocess + 12.2 ms inference + 15.8 ms postprocess (naive estimate ~20 FPS), but the measured pipelined throughput is <strong>56 FPS median</strong> &mdash; the 2.8&times; gap is the value the pipelining delivers.
575
+ </p>
576
+
577
+ <!-- ═══════════════════════════════════════════════════════ -->
578
+ <!-- NAMING & VARIANTS -->
579
+ <!-- ═══════════════════════════════════════════════════════ -->
580
+
581
+ <h2>Naming Convention</h2>
582
+ <p>Each HuggingFace repo contains one model family for one task, organized by platform folders.</p>
583
+ <table class="data-table">
584
+ <tr><th>Component</th><th>Pattern</th><th>Example</th></tr>
585
+ <tr><td>HF Repo</td><td><code>EdgeFirst/{version}-{task}</code></td><td><code>EdgeFirst/yolov8-det</code></td></tr>
586
+ <tr><td>ONNX</td><td><code>{ver}{sz}-{task}-{prec}.onnx</code></td><td><code>yolov8n-det-fp32.onnx</code></td></tr>
587
+ <tr><td>TFLite</td><td><code>{ver}{sz}-{task}-{prec}.tflite</code></td><td><code>yolov8n-det-int8.tflite</code></td></tr>
588
+ <tr><td>Smart</td><td><code>{ver}{sz}-{task}-{prec}-smart.tflite</code></td><td><code>yolov8n-seg-int8-smart.tflite</code></td></tr>
589
+ <tr><td>i.MX 95</td><td><code>{ver}{sz}-{task}-{prec}.imx95.tflite</code></td><td><code>yolov8n-det-int8.imx95.tflite</code></td></tr>
590
+ <tr><td>Hailo HEF</td><td><code>{ver}{sz}-{task}-{prec}.hailo8l.hef</code></td><td><code>yolov8n-det-int8.hailo8l.hef</code></td></tr>
591
+ <tr><td>TensorRT</td><td><code>{ver}{sz}-{task}-{prec}.{gpu}.engine</code></td><td><code>yolov8n-det-fp16.orin-nano.engine</code></td></tr>
592
+ </table>
593
+
594
+ <h3>Decoder Variants</h3>
595
+ <p>INT8 quantized models are available in two decoder configurations. The <strong>default</strong> (no suffix) uses a logical split-decoder &mdash; lossless and zero additional cost. The <strong>-smart</strong> variant uses a multi-scale split-decoder for improved accuracy at the cost of more CPU post-processing. Both are published so users can choose the tradeoff.</p>
596
+
597
+ <!-- ═══════════════════════════════════════════════════════ -->
598
+ <!-- ROADMAP -->
599
+ <!-- ═══════════════════════════════════════════════════════ -->
600
+
601
+ <h2>Roadmap</h2>
602
+ <p>Expanding across the full spatial perception stack. All models validated on real hardware.</p>
603
+ <table class="data-table">
604
  <tr><th>Category</th><th>Examples</th><th>Platforms</th><th>Status</th></tr>
605
  <tr>
606
+ <td>Detection</td>
607
+ <td>DETR-class, EfficientDet, mobile-optimized</td>
608
  <td><div class="badge-row"><span class="platform-badge">i.MX</span> <span class="platform-badge">Ara240</span> <span class="platform-badge">Hailo</span> <span class="platform-badge">Jetson</span></div></td>
609
  <td><span class="status-coming">Coming Soon</span></td>
610
  </tr>
611
  <tr>
612
+ <td>Semantic Seg</td>
613
+ <td>Lightweight real-time scene parsing</td>
614
  <td><div class="badge-row"><span class="platform-badge">i.MX</span> <span class="platform-badge">Ara240</span> <span class="platform-badge">Hailo</span> <span class="platform-badge">Jetson</span></div></td>
615
  <td><span class="status-planned">Roadmap</span></td>
616
  </tr>
617
  <tr>
618
+ <td>SAM Seg</td>
619
+ <td>Prompted, class-agnostic masks</td>
 
 
 
 
 
 
620
  <td><div class="badge-row"><span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
621
  <td><span class="status-planned">Roadmap</span></td>
622
  </tr>
623
  <tr>
624
  <td>Monocular Depth</td>
625
+ <td>Relative and metric depth estimation</td>
626
  <td><div class="badge-row"><span class="platform-badge">i.MX</span> <span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
627
  <td><span class="status-planned">Roadmap</span></td>
628
  </tr>
629
  <tr>
630
+ <td>3D &amp; Occupancy</td>
631
+ <td>Monocular 3D, BEV, occupancy grids</td>
 
 
 
 
 
 
632
  <td><div class="badge-row"><span class="platform-badge">Jetson</span></div></td>
633
  <td><span class="status-planned">Roadmap</span></td>
634
  </tr>
635
  <tr>
636
  <td>Edge VLMs</td>
637
+ <td>Visual language models for edge</td>
638
  <td><div class="badge-row"><span class="platform-badge">Ara240</span> <span class="platform-badge">Jetson</span></div></td>
639
  <td><span class="status-planned">Roadmap</span></td>
640
  </tr>
641
  </table>
 
642
  <p class="roadmap-note">Roadmap is subject to change. Models are published as validation completes on each target platform.</p>
643
 
644
+ <!-- ═══════════════════════════════════════════════════════ -->
645
+ <!-- ARCHITECTURE & STUDIO -->
646
+ <!-- ═══════════════════════════════════════════════════════ -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
647
 
648
  <h2>EdgeFirst Studio</h2>
649
  <p>