sebastientaylor commited on
Commit
65e585d
·
verified ·
1 Parent(s): 91f94c1

Update landing page: ecosystem diagram, workflow description, naming conventions, validation pipeline

Browse files
Files changed (2) hide show
  1. 01-ecosystem.svg +228 -0
  2. index.html +133 -150
01-ecosystem.svg ADDED
index.html CHANGED
@@ -9,15 +9,12 @@
9
  <link href="https://fonts.googleapis.com/css2?family=Barlow:wght@300;400;500;600;700&family=Crimson+Text:wght@400;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
10
  <style>
11
  :root {
12
- /* Brand primary */
13
  --navy: #3E3371;
14
  --gold: #E8B820;
15
  --teal: #1FA0A8;
16
  --teal-text: #167A80;
17
  --indigo: #4B0082;
18
  --blue: #8FA3D4;
19
-
20
- /* Light theme (default) */
21
  --bg: #FFFFFF;
22
  --bg-subtle: #F8F9FA;
23
  --bg-card: #F0EDF8;
@@ -27,10 +24,7 @@
27
  --border: #E9ECEF;
28
  --heading: var(--navy);
29
  --link: var(--teal-text);
30
- --accent-bg: var(--navy);
31
- --accent-text: #FFFFFF;
32
  }
33
-
34
  @media (prefers-color-scheme: dark) {
35
  :root {
36
  --bg: #1a1a2e;
@@ -42,13 +36,9 @@
42
  --border: rgba(255,255,255,0.1);
43
  --heading: #FFFFFF;
44
  --link: #1FA0A8;
45
- --accent-bg: var(--navy);
46
- --accent-text: #FFFFFF;
47
  }
48
  }
49
-
50
  * { margin: 0; padding: 0; box-sizing: border-box; }
51
-
52
  body {
53
  font-family: 'Crimson Text', Georgia, serif;
54
  background: var(--bg);
@@ -56,76 +46,72 @@
56
  line-height: 1.7;
57
  font-size: 16px;
58
  }
59
-
60
- .container {
61
- max-width: 860px;
62
- margin: 0 auto;
63
- padding: 2.5rem 2rem;
64
- }
65
-
66
- /* Typography */
67
  h1, h2, h3 {
68
  font-family: 'Barlow', -apple-system, sans-serif;
69
  color: var(--heading);
70
  line-height: 1.3;
71
  }
72
-
73
- h1 {
74
- font-size: 2.2rem;
75
- font-weight: 700;
76
- margin-bottom: 0.15rem;
77
- }
78
-
79
  h1 .edge { color: var(--heading); }
80
  h1 .first { color: var(--gold); }
81
-
82
  h2 {
83
- font-size: 1.15rem;
84
- font-weight: 600;
85
- text-transform: uppercase;
86
- letter-spacing: 0.06em;
87
- margin-top: 2.5rem;
88
- margin-bottom: 0.75rem;
89
- padding-bottom: 0.35rem;
90
- border-bottom: 2px solid var(--gold);
91
  }
92
-
93
  .tagline {
94
- font-family: 'Barlow', sans-serif;
95
- font-weight: 500;
96
- letter-spacing: 0.12em;
97
- text-transform: uppercase;
98
- color: var(--text-muted);
99
- font-size: 0.85rem;
100
- margin-bottom: 1.5rem;
101
  }
102
-
103
  p { margin-bottom: 1rem; }
104
-
105
  a { color: var(--link); text-decoration: none; }
106
  a:hover { text-decoration: underline; color: var(--navy); }
107
- @media (prefers-color-scheme: dark) {
108
- a:hover { color: var(--gold); }
109
- }
110
-
111
- /* Badges row */
112
- .badges {
113
- display: flex;
114
- flex-wrap: wrap;
115
- gap: 0.4rem;
116
- margin: 1.25rem 0;
117
- }
118
  .badges img { height: 22px; }
119
-
120
- /* Link badges */
121
- .link-badges {
122
- display: flex;
123
- flex-wrap: wrap;
124
- gap: 0.4rem;
125
  margin: 1.5rem 0;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
126
  }
127
- .link-badges img { height: 28px; }
128
-
129
  /* Architecture table */
130
  .arch-table {
131
  width: 100%;
@@ -137,10 +123,8 @@
137
  .arch-table th {
138
  text-align: left;
139
  padding: 0.5rem 0.75rem;
140
- font-weight: 600;
141
- font-size: 0.8rem;
142
- text-transform: uppercase;
143
- letter-spacing: 0.05em;
144
  color: var(--text-muted);
145
  border-bottom: 2px solid var(--border);
146
  }
@@ -155,75 +139,52 @@
155
  }
156
  .roadmap-tag {
157
  font-family: 'Barlow', sans-serif;
158
- font-size: 0.7rem;
159
- font-weight: 600;
160
- padding: 0.1rem 0.45rem;
161
- border-radius: 3px;
162
- background: var(--indigo);
163
- color: #fff;
164
- vertical-align: middle;
165
- margin-left: 0.3rem;
166
- letter-spacing: 0.03em;
167
- text-transform: uppercase;
168
  }
169
-
170
- /* Model section sub-headings */
171
- h3.model-section, .container > h3 {
172
- font-size: 0.95rem;
173
- font-weight: 600;
 
 
 
 
 
 
174
  color: var(--text-muted);
175
- text-transform: uppercase;
176
- letter-spacing: 0.05em;
177
- margin-top: 1.25rem;
178
- margin-bottom: 0.5rem;
179
  }
180
-
181
- /* Model grid */
182
  .model-grid {
183
  display: grid;
184
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
185
- gap: 0.75rem;
186
- margin: 1rem 0;
187
  }
188
  .model-card {
189
  font-family: 'Barlow', sans-serif;
190
  background: var(--bg-card);
191
- padding: 0.85rem 1rem;
192
- border-radius: 5px;
193
  border-left: 3px solid var(--gold);
194
  transition: border-color 0.15s;
195
  }
196
  .model-card:hover { border-left-color: var(--teal); }
197
- .model-card h3 {
198
- font-size: 0.95rem;
199
- font-weight: 600;
200
- margin-bottom: 0.2rem;
201
- }
202
  .model-card h3 a { color: var(--text-strong); }
203
  .model-card h3 a:hover { color: var(--link); text-decoration: none; }
204
- .model-card .meta {
205
- color: var(--text-muted);
206
- font-size: 0.82rem;
207
- font-weight: 400;
208
- }
209
-
210
- /* Studio section */
211
- .studio-features {
212
- margin: 0.75rem 0 0 1.25rem;
213
- color: var(--text);
214
- font-size: 0.95rem;
215
- }
216
  .studio-features li { margin-bottom: 0.25rem; }
217
-
218
- /* Footer */
219
  .footer {
220
- margin-top: 3rem;
221
- padding-top: 1.5rem;
222
  border-top: 1px solid var(--border);
223
  text-align: center;
224
  font-family: 'Barlow', sans-serif;
225
- font-size: 0.8rem;
226
- color: var(--text-muted);
227
  }
228
  .footer a { color: var(--text-muted); }
229
  .footer a:hover { color: var(--link); }
@@ -245,60 +206,45 @@
245
  <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>
246
  </div>
247
 
 
 
 
 
 
 
 
 
 
 
248
  <h2>Supported Hardware</h2>
249
  <div class="badges">
250
  <img src="https://img.shields.io/badge/NXP-i.MX_8M_Plus-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 8M Plus">
251
- <img src="https://img.shields.io/badge/NXP-i.MX_93-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 93">
252
  <img src="https://img.shields.io/badge/NXP-i.MX_95-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 95">
253
  <img src="https://img.shields.io/badge/NXP-Ara240-3E3371?style=flat-square&logoColor=white" alt="NXP Ara240">
254
  <img src="https://img.shields.io/badge/RPi5-Hailo--8%2F8L-1FA0A8?style=flat-square&logoColor=white" alt="RPi5 + Hailo-8/8L">
255
  <img src="https://img.shields.io/badge/NVIDIA-Jetson-76B900?style=flat-square&logoColor=white" alt="NVIDIA Jetson">
256
  </div>
257
 
258
- <h2>Architecture</h2>
259
- <table class="arch-table">
260
- <tr>
261
- <th>Layer</th>
262
- <th>Description</th>
263
- </tr>
264
- <tr>
265
- <td>Foundation</td>
266
- <td>Hardware abstraction, video I/O, accelerated inference delegates</td>
267
- </tr>
268
- <tr>
269
- <td>Zenoh</td>
270
- <td>Modular perception pipeline over Zenoh pub/sub</td>
271
- </tr>
272
- <tr>
273
- <td>GStreamer</td>
274
- <td>Spatial perception elements for GStreamer / NNStreamer</td>
275
- </tr>
276
- <tr>
277
- <td>ROS 2</td>
278
- <td>Native ROS 2 nodes extending Zenoh microservices <span class="roadmap-tag">Roadmap</span></td>
279
- </tr>
280
- </table>
281
-
282
  <h2>Model Zoo</h2>
283
- <p>Pre-trained YOLO models for edge deployment &mdash; ONNX FP32 and TFLite INT8 with platform-specific compiled variants.</p>
284
 
285
  <h3>Detection</h3>
286
  <div class="model-grid">
287
  <div class="model-card">
288
  <h3><a href="https://huggingface.co/EdgeFirst/yolo26-det">YOLO26</a></h3>
289
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano mAP@0.5: 54.9%</p>
290
  </div>
291
  <div class="model-card">
292
  <h3><a href="https://huggingface.co/EdgeFirst/yolo11-det">YOLO11</a></h3>
293
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano mAP@0.5: 53.4%</p>
294
  </div>
295
  <div class="model-card">
296
  <h3><a href="https://huggingface.co/EdgeFirst/yolov8-det">YOLOv8</a></h3>
297
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano mAP@0.5: 50.2%</p>
298
  </div>
299
  <div class="model-card">
300
  <h3><a href="https://huggingface.co/EdgeFirst/yolov5-det">YOLOv5</a></h3>
301
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano mAP@0.5: 49.6%</p>
302
  </div>
303
  </div>
304
 
@@ -306,25 +252,62 @@
306
  <div class="model-grid">
307
  <div class="model-card">
308
  <h3><a href="https://huggingface.co/EdgeFirst/yolo26-seg">YOLO26</a></h3>
309
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano Mask mAP: 37.0%</p>
310
  </div>
311
  <div class="model-card">
312
  <h3><a href="https://huggingface.co/EdgeFirst/yolo11-seg">YOLO11</a></h3>
313
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano Mask mAP: 35.5%</p>
314
  </div>
315
  <div class="model-card">
316
  <h3><a href="https://huggingface.co/EdgeFirst/yolov8-seg">YOLOv8</a></h3>
317
- <p class="meta">5 sizes &middot; COCO 80 classes &middot; Nano Mask mAP: 34.1%</p>
318
  </div>
319
  </div>
320
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
321
  <h2>EdgeFirst Studio</h2>
322
  <p>
323
- <a href="https://edgefirst.studio"><strong>EdgeFirst Studio</strong></a> is the companion SaaS platform for the complete perception development lifecycle. <strong>Free tier available.</strong>
324
  </p>
325
  <ul class="studio-features">
326
  <li>Dataset management &amp; AI-assisted annotation</li>
327
- <li>YOLO model training with automatic INT8 quantization</li>
 
328
  <li>CameraAdaptor integration for native sensor format training</li>
329
  <li>Deploy trained models to edge devices via the <a href="https://github.com/EdgeFirstAI/client">EdgeFirst Client</a> CLI</li>
330
  </ul>
 
9
  <link href="https://fonts.googleapis.com/css2?family=Barlow:wght@300;400;500;600;700&family=Crimson+Text:wght@400;600&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
10
  <style>
11
  :root {
 
12
  --navy: #3E3371;
13
  --gold: #E8B820;
14
  --teal: #1FA0A8;
15
  --teal-text: #167A80;
16
  --indigo: #4B0082;
17
  --blue: #8FA3D4;
 
 
18
  --bg: #FFFFFF;
19
  --bg-subtle: #F8F9FA;
20
  --bg-card: #F0EDF8;
 
24
  --border: #E9ECEF;
25
  --heading: var(--navy);
26
  --link: var(--teal-text);
 
 
27
  }
 
28
  @media (prefers-color-scheme: dark) {
29
  :root {
30
  --bg: #1a1a2e;
 
36
  --border: rgba(255,255,255,0.1);
37
  --heading: #FFFFFF;
38
  --link: #1FA0A8;
 
 
39
  }
40
  }
 
41
  * { margin: 0; padding: 0; box-sizing: border-box; }
 
42
  body {
43
  font-family: 'Crimson Text', Georgia, serif;
44
  background: var(--bg);
 
46
  line-height: 1.7;
47
  font-size: 16px;
48
  }
49
+ .container { max-width: 860px; margin: 0 auto; padding: 2.5rem 2rem; }
 
 
 
 
 
 
 
50
  h1, h2, h3 {
51
  font-family: 'Barlow', -apple-system, sans-serif;
52
  color: var(--heading);
53
  line-height: 1.3;
54
  }
55
+ h1 { font-size: 2.2rem; font-weight: 700; margin-bottom: 0.15rem; }
 
 
 
 
 
 
56
  h1 .edge { color: var(--heading); }
57
  h1 .first { color: var(--gold); }
 
58
  h2 {
59
+ font-size: 1.15rem; font-weight: 600;
60
+ text-transform: uppercase; letter-spacing: 0.06em;
61
+ margin-top: 2.5rem; margin-bottom: 0.75rem;
62
+ padding-bottom: 0.35rem; border-bottom: 2px solid var(--gold);
 
 
 
 
63
  }
 
64
  .tagline {
65
+ font-family: 'Barlow', sans-serif; font-weight: 500;
66
+ letter-spacing: 0.12em; text-transform: uppercase;
67
+ color: var(--text-muted); font-size: 0.85rem; margin-bottom: 1.5rem;
 
 
 
 
68
  }
 
69
  p { margin-bottom: 1rem; }
 
70
  a { color: var(--link); text-decoration: none; }
71
  a:hover { text-decoration: underline; color: var(--navy); }
72
+ @media (prefers-color-scheme: dark) { a:hover { color: var(--gold); } }
73
+ .badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.25rem 0; }
 
 
 
 
 
 
 
 
 
74
  .badges img { height: 22px; }
75
+ .link-badges { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 1.5rem 0; }
76
+ .link-badges img { height: 28px; }
77
+ /* Workflow diagram */
78
+ .diagram-container {
 
 
79
  margin: 1.5rem 0;
80
+ text-align: center;
81
+ }
82
+ .diagram-container img {
83
+ max-width: 100%;
84
+ height: auto;
85
+ }
86
+ /* Naming table */
87
+ .naming-table {
88
+ width: 100%;
89
+ border-collapse: collapse;
90
+ margin: 0.75rem 0;
91
+ font-family: 'Barlow', sans-serif;
92
+ font-size: 0.9rem;
93
+ }
94
+ .naming-table th {
95
+ text-align: left;
96
+ padding: 0.4rem 0.6rem;
97
+ font-weight: 600;
98
+ font-size: 0.8rem;
99
+ text-transform: uppercase;
100
+ letter-spacing: 0.04em;
101
+ color: var(--text-muted);
102
+ border-bottom: 2px solid var(--border);
103
+ }
104
+ .naming-table td {
105
+ padding: 0.35rem 0.6rem;
106
+ border-bottom: 1px solid var(--border);
107
+ font-family: 'JetBrains Mono', monospace;
108
+ font-size: 0.82rem;
109
+ }
110
+ .naming-table td:first-child {
111
+ font-family: 'Barlow', sans-serif;
112
+ font-weight: 500;
113
+ color: var(--text-strong);
114
  }
 
 
115
  /* Architecture table */
116
  .arch-table {
117
  width: 100%;
 
123
  .arch-table th {
124
  text-align: left;
125
  padding: 0.5rem 0.75rem;
126
+ font-weight: 600; font-size: 0.8rem;
127
+ text-transform: uppercase; letter-spacing: 0.05em;
 
 
128
  color: var(--text-muted);
129
  border-bottom: 2px solid var(--border);
130
  }
 
139
  }
140
  .roadmap-tag {
141
  font-family: 'Barlow', sans-serif;
142
+ font-size: 0.7rem; font-weight: 600;
143
+ padding: 0.1rem 0.45rem; border-radius: 3px;
144
+ background: var(--indigo); color: #fff;
145
+ vertical-align: middle; margin-left: 0.3rem;
146
+ letter-spacing: 0.03em; text-transform: uppercase;
 
 
 
 
 
147
  }
148
+ .wip-tag {
149
+ font-family: 'Barlow', sans-serif;
150
+ font-size: 0.7rem; font-weight: 600;
151
+ padding: 0.1rem 0.45rem; border-radius: 3px;
152
+ background: var(--gold); color: #333;
153
+ vertical-align: middle; margin-left: 0.3rem;
154
+ letter-spacing: 0.03em; text-transform: uppercase;
155
+ }
156
+ /* Model sub-headings */
157
+ .container > h3 {
158
+ font-size: 0.95rem; font-weight: 600;
159
  color: var(--text-muted);
160
+ text-transform: uppercase; letter-spacing: 0.05em;
161
+ margin-top: 1.25rem; margin-bottom: 0.5rem;
 
 
162
  }
 
 
163
  .model-grid {
164
  display: grid;
165
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
166
+ gap: 0.75rem; margin: 1rem 0;
 
167
  }
168
  .model-card {
169
  font-family: 'Barlow', sans-serif;
170
  background: var(--bg-card);
171
+ padding: 0.85rem 1rem; border-radius: 5px;
 
172
  border-left: 3px solid var(--gold);
173
  transition: border-color 0.15s;
174
  }
175
  .model-card:hover { border-left-color: var(--teal); }
176
+ .model-card h3 { font-size: 0.95rem; font-weight: 600; margin-bottom: 0.2rem; }
 
 
 
 
177
  .model-card h3 a { color: var(--text-strong); }
178
  .model-card h3 a:hover { color: var(--link); text-decoration: none; }
179
+ .model-card .meta { color: var(--text-muted); font-size: 0.82rem; font-weight: 400; }
180
+ .studio-features { margin: 0.75rem 0 0 1.25rem; color: var(--text); font-size: 0.95rem; }
 
 
 
 
 
 
 
 
 
 
181
  .studio-features li { margin-bottom: 0.25rem; }
 
 
182
  .footer {
183
+ margin-top: 3rem; padding-top: 1.5rem;
 
184
  border-top: 1px solid var(--border);
185
  text-align: center;
186
  font-family: 'Barlow', sans-serif;
187
+ font-size: 0.8rem; color: var(--text-muted);
 
188
  }
189
  .footer a { color: var(--text-muted); }
190
  .footer a:hover { color: var(--link); }
 
206
  <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>
207
  </div>
208
 
209
+ <h2>Workflow</h2>
210
+
211
+ <div class="diagram-container">
212
+ <img src="01-ecosystem.svg" alt="EdgeFirst Model Zoo Ecosystem: Training, Validation, and Publication Workflow">
213
+ </div>
214
+
215
+ <p>
216
+ 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.
217
+ </p>
218
+
219
  <h2>Supported Hardware</h2>
220
  <div class="badges">
221
  <img src="https://img.shields.io/badge/NXP-i.MX_8M_Plus-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 8M Plus">
 
222
  <img src="https://img.shields.io/badge/NXP-i.MX_95-3E3371?style=flat-square&logoColor=white" alt="NXP i.MX 95">
223
  <img src="https://img.shields.io/badge/NXP-Ara240-3E3371?style=flat-square&logoColor=white" alt="NXP Ara240">
224
  <img src="https://img.shields.io/badge/RPi5-Hailo--8%2F8L-1FA0A8?style=flat-square&logoColor=white" alt="RPi5 + Hailo-8/8L">
225
  <img src="https://img.shields.io/badge/NVIDIA-Jetson-76B900?style=flat-square&logoColor=white" alt="NVIDIA Jetson">
226
  </div>
227
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  <h2>Model Zoo</h2>
229
+ <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>
230
 
231
  <h3>Detection</h3>
232
  <div class="model-grid">
233
  <div class="model-card">
234
  <h3><a href="https://huggingface.co/EdgeFirst/yolo26-det">YOLO26</a></h3>
235
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 54.9%</p>
236
  </div>
237
  <div class="model-card">
238
  <h3><a href="https://huggingface.co/EdgeFirst/yolo11-det">YOLO11</a></h3>
239
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 53.4%</p>
240
  </div>
241
  <div class="model-card">
242
  <h3><a href="https://huggingface.co/EdgeFirst/yolov8-det">YOLOv8</a></h3>
243
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 50.2%</p>
244
  </div>
245
  <div class="model-card">
246
  <h3><a href="https://huggingface.co/EdgeFirst/yolov5-det">YOLOv5</a></h3>
247
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano mAP@0.5: 49.6%</p>
248
  </div>
249
  </div>
250
 
 
252
  <div class="model-grid">
253
  <div class="model-card">
254
  <h3><a href="https://huggingface.co/EdgeFirst/yolo26-seg">YOLO26</a></h3>
255
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano Mask mAP: 37.0%</p>
256
  </div>
257
  <div class="model-card">
258
  <h3><a href="https://huggingface.co/EdgeFirst/yolo11-seg">YOLO11</a></h3>
259
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano Mask mAP: 35.5%</p>
260
  </div>
261
  <div class="model-card">
262
  <h3><a href="https://huggingface.co/EdgeFirst/yolov8-seg">YOLOv8</a></h3>
263
+ <p class="meta">n/s/m/l/x &middot; COCO 80 classes &middot; Nano Mask mAP: 34.1%</p>
264
  </div>
265
  </div>
266
 
267
+ <h2>Naming Convention</h2>
268
+ <p>Each HuggingFace repo contains one model family for one task, with all size variants inside.</p>
269
+ <table class="naming-table">
270
+ <tr><th>Component</th><th>Pattern</th><th>Example</th></tr>
271
+ <tr><td>HF Repo</td><td>EdgeFirst/{version}-{task}</td><td>EdgeFirst/yolov8-det</td></tr>
272
+ <tr><td>ONNX Model</td><td>{version}{size}-{task}-coco.onnx</td><td>yolov8n-det-coco.onnx</td></tr>
273
+ <tr><td>TFLite Model</td><td>{version}{size}-{task}-coco-int8.tflite</td><td>yolov8n-det-coco-int8.tflite</td></tr>
274
+ <tr><td>Studio Project</td><td>{Dataset} {Task}</td><td>COCO Detection</td></tr>
275
+ <tr><td>Studio Experiment</td><td>{Version} {Task}</td><td>YOLOv8 Detection</td></tr>
276
+ </table>
277
+
278
+ <h2>Validation Pipeline</h2>
279
+ <p>Models go through two validation stages before publication:</p>
280
+ <table class="arch-table">
281
+ <tr><th>Stage</th><th>What</th><th>Where</th></tr>
282
+ <tr>
283
+ <td>Reference</td>
284
+ <td>ONNX FP32 and TFLite INT8 mAP on full COCO val2017 (5000 images)</td>
285
+ <td>EdgeFirst Studio (cloud)</td>
286
+ </tr>
287
+ <tr>
288
+ <td>On-Target</td>
289
+ <td>Full dataset mAP + timing breakdown (load, preproc, invoke, decode, e2e) per device</td>
290
+ <td>Board farm (real hardware) <span class="wip-tag">In Progress</span></td>
291
+ </tr>
292
+ </table>
293
+
294
+ <h2>Perception Architecture</h2>
295
+ <table class="arch-table">
296
+ <tr><th>Layer</th><th>Description</th></tr>
297
+ <tr><td>Foundation</td><td>Hardware abstraction, video I/O, accelerated inference delegates</td></tr>
298
+ <tr><td>Zenoh</td><td>Modular perception pipeline over Zenoh pub/sub</td></tr>
299
+ <tr><td>GStreamer</td><td>Spatial perception elements for GStreamer / NNStreamer</td></tr>
300
+ <tr><td>ROS 2</td><td>Native ROS 2 nodes extending Zenoh microservices <span class="roadmap-tag">Roadmap</span></td></tr>
301
+ </table>
302
+
303
  <h2>EdgeFirst Studio</h2>
304
  <p>
305
+ <a href="https://edgefirst.studio"><strong>EdgeFirst Studio</strong></a> is the MLOps platform that drives the entire model zoo pipeline. <strong>Free tier available.</strong>
306
  </p>
307
  <ul class="studio-features">
308
  <li>Dataset management &amp; AI-assisted annotation</li>
309
+ <li>Model training with automatic multi-format export and INT8 quantization</li>
310
+ <li>Reference and on-target validation with full metrics collection</li>
311
  <li>CameraAdaptor integration for native sensor format training</li>
312
  <li>Deploy trained models to edge devices via the <a href="https://github.com/EdgeFirstAI/client">EdgeFirst Client</a> CLI</li>
313
  </ul>