@camstack/addon-pipeline 1.2.298 → 1.2.300
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/THIRD_PARTY_MODELS.md +126 -123
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-Bim_g_Ui.mjs → default-detection-model-DX-p9O91.mjs} +391 -170
- package/dist/{default-detection-model-BTJZvSr_.js → default-detection-model-nKzvW7BX.js} +391 -170
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-L_HlB0At.js → dist-C2WOjQsy.js} +471 -26
- package/dist/{dist-DVz_88D_.mjs → dist-CqhrlD0m.mjs} +471 -26
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-Cr8Ch1ZN.mjs → node-CZ1Z3f6z.mjs} +1 -1
- package/dist/{node-CmzZ_-zB.js → node-CiWM78Ze.js} +1 -1
- package/dist/pipeline-runner/index.js +3 -3
- package/dist/pipeline-runner/index.mjs +3 -3
- package/dist/{process-memory-FfRDGu11.js → process-memory-C0a37mXF.js} +1 -1
- package/dist/{process-memory-DO7La1yB.mjs → process-memory-taq9GnsO.mjs} +1 -1
- package/dist/recorder/index.js +15 -2
- package/dist/recorder/index.mjs +15 -2
- package/dist/{segment-demux-js-Cd7btWna.js → segment-demux-js-5Xcu3sTI.js} +1 -1
- package/dist/{segment-demux-js-BuioTwCh.mjs → segment-demux-js-Cydmp9fc.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-CsbrrsyY.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-C7I6DjP3.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-vnc0r4NV.mjs +26 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-CUFWg1jj.mjs +26 -0
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-NCsHzij7.mjs → hostInit-DyrGVuyu.mjs} +2 -2
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/postprocessors/softmax.py +2 -1
- package/python/postprocessors/testdata/ssdlite_mobiledet_outputs.json +289 -1
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-DisouA2F.mjs +0 -26
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-Dti8Ex88.mjs +0 -26
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
1
|
+
const require_dist = require("./dist-C2WOjQsy.js");
|
|
2
2
|
let node_crypto = require("node:crypto");
|
|
3
3
|
//#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
|
|
4
4
|
/**
|
|
@@ -16,6 +16,284 @@ function landmarkPrecisionVerdict(input) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
//#endregion
|
|
19
|
+
//#region src/detection-pipeline/registry/model-licenses.ts
|
|
20
|
+
var COCO_DATA = {
|
|
21
|
+
name: "COCO 2017",
|
|
22
|
+
terms: "annotations CC-BY-4.0; images under their Flickr owners' terms",
|
|
23
|
+
url: "https://cocodataset.org/#termsofuse"
|
|
24
|
+
};
|
|
25
|
+
var WIDER_FACE_DATA = {
|
|
26
|
+
name: "WIDER FACE",
|
|
27
|
+
terms: "research-oriented terms; images CC BY-NC-ND",
|
|
28
|
+
url: "http://shuoyang1213.me/WIDERFACE/"
|
|
29
|
+
};
|
|
30
|
+
var ULTRALYTICS_AGPL = {
|
|
31
|
+
weights: "AGPL-3.0",
|
|
32
|
+
code: "AGPL-3.0",
|
|
33
|
+
data: COCO_DATA,
|
|
34
|
+
upstream: {
|
|
35
|
+
name: "Ultralytics",
|
|
36
|
+
url: "https://github.com/ultralytics/ultralytics"
|
|
37
|
+
},
|
|
38
|
+
url: "https://github.com/ultralytics/ultralytics/blob/main/LICENSE",
|
|
39
|
+
attribution: "© Ultralytics, AGPL-3.0. Corresponding source: the upstream Ultralytics checkpoint and scripts/build-camstack-models.py in https://github.com/camstack/server.",
|
|
40
|
+
modifications: "exported to ONNX, OpenVINO IR and CoreML (scripts/build-camstack-models.py)",
|
|
41
|
+
hosting: "camstack-hf"
|
|
42
|
+
};
|
|
43
|
+
var ULTRALYTICS_YOLOV9_AGPL = {
|
|
44
|
+
...ULTRALYTICS_AGPL,
|
|
45
|
+
attribution: "© Ultralytics, AGPL-3.0 (Ultralytics YOLOv9 weights). YOLOv9 architecture: Chien-Yao Wang, I-Hau Yeh, Hong-Yuan Mark Liao, GPL-3.0 (https://github.com/WongKinYiu/yolov9). Corresponding source: the upstream Ultralytics checkpoint and scripts/build-camstack-models.py in https://github.com/camstack/server."
|
|
46
|
+
};
|
|
47
|
+
var CORAL_APACHE = {
|
|
48
|
+
weights: "Apache-2.0",
|
|
49
|
+
code: "Apache-2.0",
|
|
50
|
+
upstream: {
|
|
51
|
+
name: "Google Coral test_data",
|
|
52
|
+
url: "https://github.com/google-coral/test_data"
|
|
53
|
+
},
|
|
54
|
+
url: "https://github.com/google-coral/test_data/blob/master/LICENSE",
|
|
55
|
+
attribution: "Coral Edge TPU models and AIY Vision Birds V1 © Google LLC, Apache-2.0.",
|
|
56
|
+
hosting: "third-party"
|
|
57
|
+
};
|
|
58
|
+
/** The Coral COCO detectors (SSD MobileNet V2, EfficientDet-Lite0). */
|
|
59
|
+
var CORAL_COCO_APACHE = {
|
|
60
|
+
...CORAL_APACHE,
|
|
61
|
+
data: COCO_DATA
|
|
62
|
+
};
|
|
63
|
+
/** The Coral MobileDet build, mirrored byte for byte on the CamStack HF repo. */
|
|
64
|
+
var CORAL_MOBILEDET_MIRRORED = {
|
|
65
|
+
...CORAL_COCO_APACHE,
|
|
66
|
+
modifications: "none: ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite mirrored byte for byte (sha256 b69e508e…434a2e), with the CPU build and coco_labels.txt beside it (scripts/build-ssdlite-mobiledet-model.py)",
|
|
67
|
+
hosting: "camstack-hf"
|
|
68
|
+
};
|
|
69
|
+
var RFDETR_APACHE = {
|
|
70
|
+
weights: "Apache-2.0",
|
|
71
|
+
code: "Apache-2.0",
|
|
72
|
+
data: {
|
|
73
|
+
name: "parcel fine-tuning set (not recorded)",
|
|
74
|
+
terms: "UNVERIFIED"
|
|
75
|
+
},
|
|
76
|
+
upstream: {
|
|
77
|
+
name: "Roboflow RF-DETR",
|
|
78
|
+
url: "https://github.com/roboflow/rf-detr"
|
|
79
|
+
},
|
|
80
|
+
url: "https://github.com/roboflow/rf-detr/blob/develop/LICENSE",
|
|
81
|
+
attribution: "RF-DETR © Roboflow, Apache-2.0.",
|
|
82
|
+
modifications: "RF-DETR-M fine-tuned to 2 classes at 576; exported to ONNX, OpenVINO IR and CoreML; training checkpoint .pth also published",
|
|
83
|
+
hosting: "camstack-hf"
|
|
84
|
+
};
|
|
85
|
+
var INSIGHTFACE_SCRFD_NC = {
|
|
86
|
+
weights: "LicenseRef-InsightFace-NonCommercial-Research",
|
|
87
|
+
code: "MIT",
|
|
88
|
+
data: WIDER_FACE_DATA,
|
|
89
|
+
upstream: {
|
|
90
|
+
name: "InsightFace SCRFD",
|
|
91
|
+
url: "https://github.com/deepinsight/insightface/tree/master/detection/scrfd"
|
|
92
|
+
},
|
|
93
|
+
url: "https://github.com/deepinsight/insightface#license",
|
|
94
|
+
attribution: "SCRFD © InsightFace. Pretrained models released for non-commercial research purposes only.",
|
|
95
|
+
modifications: "obtained via RuteNL/SCRFD-face-detection-ONNX; converted to OpenVINO IR and CoreML FP16",
|
|
96
|
+
hosting: "camstack-hf",
|
|
97
|
+
nonCommercial: true
|
|
98
|
+
};
|
|
99
|
+
var YUNET_MIT = {
|
|
100
|
+
weights: "MIT",
|
|
101
|
+
code: "BSD-3-Clause",
|
|
102
|
+
data: WIDER_FACE_DATA,
|
|
103
|
+
upstream: {
|
|
104
|
+
name: "OpenCV Zoo YuNet",
|
|
105
|
+
url: "https://github.com/opencv/opencv_zoo/tree/main/models/face_detection_yunet"
|
|
106
|
+
},
|
|
107
|
+
url: "https://github.com/opencv/opencv_zoo/blob/main/models/face_detection_yunet/LICENSE",
|
|
108
|
+
attribution: "YuNet weights Copyright (c) 2020 Shiqi Yu, MIT. Training code: ShiqiYu/libfacedetection.train, BSD-3-Clause.",
|
|
109
|
+
modifications: "input contract baked into the graph (the pool RGB /255 becomes the upstream BGR 0..255: Mul(255) plus a channel Gather); internal tensor names cleared in the OpenVINO IR; ONNX fp32, OpenVINO IR fp32, CoreML fp16 (scripts/build-yunet-model.py)",
|
|
110
|
+
hosting: "camstack-hf"
|
|
111
|
+
};
|
|
112
|
+
var SCRYPTED_UNKNOWN = {
|
|
113
|
+
weights: "UNKNOWN",
|
|
114
|
+
upstream: {
|
|
115
|
+
name: "Scrypted plugin-models (repository tagged MIT, no per-model terms)",
|
|
116
|
+
url: "https://huggingface.co/scrypted/plugin-models"
|
|
117
|
+
},
|
|
118
|
+
url: "https://huggingface.co/scrypted/plugin-models",
|
|
119
|
+
attribution: "Scrypted plugin models, Koushik Dutta: repository tagged MIT (licenses/models/MIT-scrypted-plugin-models.txt), no per-model terms.",
|
|
120
|
+
modifications: "ONNX and CoreML fetched from scrypted/plugin-models; OpenVINO IR converted and re-hosted by CamStack",
|
|
121
|
+
hosting: "camstack-hf"
|
|
122
|
+
};
|
|
123
|
+
var ARCFACE_UNKNOWN = {
|
|
124
|
+
weights: "UNKNOWN",
|
|
125
|
+
upstream: {
|
|
126
|
+
name: "onnx-community/arcface-onnx (re-upload of garavv/arcface-onnx)",
|
|
127
|
+
url: "https://huggingface.co/onnx-community/arcface-onnx"
|
|
128
|
+
},
|
|
129
|
+
url: "https://huggingface.co/onnx-community/arcface-onnx",
|
|
130
|
+
modifications: "converted to OpenVINO IR and CoreML FP16",
|
|
131
|
+
hosting: "camstack-hf"
|
|
132
|
+
};
|
|
133
|
+
var AURAFACE_APACHE = {
|
|
134
|
+
weights: "Apache-2.0",
|
|
135
|
+
upstream: {
|
|
136
|
+
name: "fal.ai AuraFace v1 (glintr100.onnx only)",
|
|
137
|
+
url: "https://huggingface.co/fal/AuraFace-v1"
|
|
138
|
+
},
|
|
139
|
+
url: "https://huggingface.co/fal/AuraFace-v1",
|
|
140
|
+
attribution: "AuraFace v1 by fal.ai, Apache-2.0.",
|
|
141
|
+
modifications: "input scaling y = 2x - 1 baked ahead of the first Conv (scripts/build-auraface-model.py); converted to OpenVINO IR and CoreML FP16",
|
|
142
|
+
hosting: "camstack-hf"
|
|
143
|
+
};
|
|
144
|
+
var FAST_PLATE_OCR_MIT = {
|
|
145
|
+
weights: "MIT",
|
|
146
|
+
code: "MIT",
|
|
147
|
+
data: {
|
|
148
|
+
name: "fast-plate-ocr training set",
|
|
149
|
+
terms: "private, not released upstream"
|
|
150
|
+
},
|
|
151
|
+
upstream: {
|
|
152
|
+
name: "ankandrew/fast-plate-ocr",
|
|
153
|
+
url: "https://github.com/ankandrew/fast-plate-ocr"
|
|
154
|
+
},
|
|
155
|
+
url: "https://github.com/ankandrew/fast-plate-ocr/blob/master/LICENSE",
|
|
156
|
+
attribution: "fast-plate-ocr, MIT License, copyright (c) 2024 ankandrew (full notice: licenses/models/MIT-fast-plate-ocr.txt).",
|
|
157
|
+
modifications: "input head removed (recorded in the ONNX doc_string); converted to OpenVINO IR and CoreML",
|
|
158
|
+
hosting: "camstack-hf"
|
|
159
|
+
};
|
|
160
|
+
var EASYOCR_APACHE = {
|
|
161
|
+
weights: "Apache-2.0",
|
|
162
|
+
code: "Apache-2.0",
|
|
163
|
+
upstream: {
|
|
164
|
+
name: "JaidedAI EasyOCR (via Scrypted plugin-models)",
|
|
165
|
+
url: "https://github.com/JaidedAI/EasyOCR"
|
|
166
|
+
},
|
|
167
|
+
url: "https://github.com/JaidedAI/EasyOCR/blob/master/LICENSE",
|
|
168
|
+
attribution: "EasyOCR © JaidedAI, Apache-2.0.",
|
|
169
|
+
modifications: "ONNX and CoreML fetched from scrypted/plugin-models; OpenVINO IR converted and re-hosted by CamStack",
|
|
170
|
+
hosting: "camstack-hf"
|
|
171
|
+
};
|
|
172
|
+
var ANIMAL_CLASSIFIER_APACHE = {
|
|
173
|
+
weights: "Apache-2.0",
|
|
174
|
+
code: "Apache-2.0",
|
|
175
|
+
data: {
|
|
176
|
+
name: "Open Images V7",
|
|
177
|
+
terms: "annotations CC-BY-4.0 (Google LLC); images listed as CC-BY-2.0, no warranty",
|
|
178
|
+
url: "https://storage.googleapis.com/openimages/web/factsfigures_v7.html"
|
|
179
|
+
},
|
|
180
|
+
upstream: {
|
|
181
|
+
name: "timm EfficientNet-Lite0, fine-tuned by CamStack",
|
|
182
|
+
url: "https://github.com/huggingface/pytorch-image-models"
|
|
183
|
+
},
|
|
184
|
+
url: "https://github.com/huggingface/pytorch-image-models/blob/main/LICENSE",
|
|
185
|
+
attribution: "EfficientNet-Lite0 via timm (Ross Wightman), Apache-2.0. Open Images V7 annotations © Google LLC, CC BY 4.0; images listed by Google as CC BY 2.0, without warranty.",
|
|
186
|
+
modifications: "fine-tuned by CamStack on the Open Images V7 animal subset (8 classes); exported to ONNX, OpenVINO IR and CoreML",
|
|
187
|
+
hosting: "camstack-hf"
|
|
188
|
+
};
|
|
189
|
+
var AIY_BIRDS_APACHE = {
|
|
190
|
+
weights: "Apache-2.0",
|
|
191
|
+
upstream: {
|
|
192
|
+
name: "Google AIY Vision birds_V1",
|
|
193
|
+
url: "https://github.com/google-coral/test_data"
|
|
194
|
+
},
|
|
195
|
+
url: "https://github.com/google-coral/test_data/blob/master/LICENSE",
|
|
196
|
+
attribution: "Coral Edge TPU models and AIY Vision Birds V1 © Google LLC, Apache-2.0.",
|
|
197
|
+
modifications: "converted from TensorFlow with tf2onnx; OpenVINO IR and CoreML derived from it",
|
|
198
|
+
hosting: "camstack-hf"
|
|
199
|
+
};
|
|
200
|
+
var VEHICLE_TYPE_V1_NC = {
|
|
201
|
+
weights: "CC-BY-NC-4.0",
|
|
202
|
+
code: "BSD-3-Clause",
|
|
203
|
+
data: {
|
|
204
|
+
name: "DrBimmer/vehicle-classification",
|
|
205
|
+
terms: "CC-BY-NC-4.0 — treated as binding the trained weights (conservative reading)",
|
|
206
|
+
url: "https://huggingface.co/datasets/DrBimmer/vehicle-classification"
|
|
207
|
+
},
|
|
208
|
+
upstream: {
|
|
209
|
+
name: "torchvision MobileNetV3-Large, fine-tuned by CamStack",
|
|
210
|
+
url: "https://github.com/pytorch/vision"
|
|
211
|
+
},
|
|
212
|
+
url: "https://creativecommons.org/licenses/by-nc/4.0/",
|
|
213
|
+
attribution: "torchvision MobileNetV3, BSD-3-Clause. Trained on the Vehicle classification dataset by DrBimmer (https://huggingface.co/datasets/DrBimmer/vehicle-classification), CC BY-NC 4.0.",
|
|
214
|
+
modifications: "fine-tuned by CamStack (8 classes); exported to ONNX, OpenVINO IR and CoreML",
|
|
215
|
+
hosting: "camstack-hf",
|
|
216
|
+
nonCommercial: true
|
|
217
|
+
};
|
|
218
|
+
var U2NET_APACHE = {
|
|
219
|
+
weights: "Apache-2.0",
|
|
220
|
+
code: "Apache-2.0",
|
|
221
|
+
data: {
|
|
222
|
+
name: "DUTS-TR",
|
|
223
|
+
terms: "not checked"
|
|
224
|
+
},
|
|
225
|
+
upstream: {
|
|
226
|
+
name: "xuebinqin/U-2-Net",
|
|
227
|
+
url: "https://github.com/xuebinqin/U-2-Net"
|
|
228
|
+
},
|
|
229
|
+
url: "https://github.com/xuebinqin/U-2-Net/blob/master/LICENSE",
|
|
230
|
+
attribution: "U²-Net © Xuebin Qin et al., Apache-2.0.",
|
|
231
|
+
modifications: "converted to ONNX, OpenVINO IR and CoreML",
|
|
232
|
+
hosting: "camstack-hf"
|
|
233
|
+
};
|
|
234
|
+
var APPLE_MOBILECLIP_AMLR = {
|
|
235
|
+
weights: "LicenseRef-Apple-AMLR",
|
|
236
|
+
code: "MIT",
|
|
237
|
+
upstream: {
|
|
238
|
+
name: "Apple ml-mobileclip",
|
|
239
|
+
url: "https://github.com/apple/ml-mobileclip"
|
|
240
|
+
},
|
|
241
|
+
url: "https://github.com/apple/ml-mobileclip/blob/main/LICENSE_MODELS",
|
|
242
|
+
attribution: "Apple Machine Learning Research Model is licensed under the Apple Machine Learning Research Model License Agreement.",
|
|
243
|
+
modifications: "model derivative: vision encoders converted to OpenVINO IR and CoreML FP16",
|
|
244
|
+
hosting: "camstack-hf",
|
|
245
|
+
nonCommercial: true
|
|
246
|
+
};
|
|
247
|
+
var SIGLIP2_APACHE = {
|
|
248
|
+
weights: "Apache-2.0",
|
|
249
|
+
code: "Apache-2.0",
|
|
250
|
+
data: {
|
|
251
|
+
name: "WebLI",
|
|
252
|
+
terms: "Google internal, not released"
|
|
253
|
+
},
|
|
254
|
+
upstream: {
|
|
255
|
+
name: "Google SigLIP 2 (google/siglip2-base-patch16-224)",
|
|
256
|
+
url: "https://huggingface.co/google/siglip2-base-patch16-224"
|
|
257
|
+
},
|
|
258
|
+
url: "https://huggingface.co/google/siglip2-base-patch16-224",
|
|
259
|
+
attribution: "SigLIP 2 © Google LLC, Apache-2.0.",
|
|
260
|
+
modifications: "input scaling y = 2x - 1 baked ahead of the patch embedding; converted to OpenVINO IR and CoreML FP16, an FP32 ONNX hosted as the verification reference (scripts/build-siglip2-model.py)",
|
|
261
|
+
hosting: "camstack-hf"
|
|
262
|
+
};
|
|
263
|
+
var YAMNET_APACHE = {
|
|
264
|
+
weights: "Apache-2.0",
|
|
265
|
+
code: "Apache-2.0",
|
|
266
|
+
data: {
|
|
267
|
+
name: "AudioSet ontology/labels",
|
|
268
|
+
terms: "CC-BY-4.0 (Google LLC)",
|
|
269
|
+
url: "https://research.google.com/audioset/"
|
|
270
|
+
},
|
|
271
|
+
upstream: {
|
|
272
|
+
name: "tensorflow/models research/audioset/yamnet",
|
|
273
|
+
url: "https://github.com/tensorflow/models/tree/master/research/audioset/yamnet"
|
|
274
|
+
},
|
|
275
|
+
url: "https://github.com/tensorflow/models/blob/master/LICENSE",
|
|
276
|
+
attribution: "YAMNet © Google LLC, Apache-2.0. AudioSet ontology and labels © Google LLC, CC BY 4.0.",
|
|
277
|
+
modifications: "converted from TensorFlow with tf2onnx; OpenVINO IR derived from it",
|
|
278
|
+
hosting: "camstack-hf"
|
|
279
|
+
};
|
|
280
|
+
var APPLE_SOUNDANALYSIS = {
|
|
281
|
+
weights: "LicenseRef-Apple-macOS",
|
|
282
|
+
upstream: {
|
|
283
|
+
name: "Apple SoundAnalysis (macOS built-in)",
|
|
284
|
+
url: "https://developer.apple.com/documentation/soundanalysis"
|
|
285
|
+
},
|
|
286
|
+
url: "https://www.apple.com/legal/sla/",
|
|
287
|
+
hosting: "built-in"
|
|
288
|
+
};
|
|
289
|
+
/** Compose a per-entry record: same upstream, entry-specific modifications / data. */
|
|
290
|
+
function licensed(base, overrides) {
|
|
291
|
+
return {
|
|
292
|
+
...base,
|
|
293
|
+
...overrides
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
//#endregion
|
|
19
297
|
//#region src/detection-pipeline/registry/model-catalogs.ts
|
|
20
298
|
var HF_REPO = "camstack/camstack-models";
|
|
21
299
|
var HF_SCRYPTED = "scrypted/plugin-models";
|
|
@@ -59,6 +337,7 @@ var ovPrecisionVariant = (baseId, ovDir, baseName, precision, sizeMB, legacy = f
|
|
|
59
337
|
},
|
|
60
338
|
labels: [],
|
|
61
339
|
preprocessMode: "letterbox",
|
|
340
|
+
license: licensed(ULTRALYTICS_AGPL, { modifications: precision === "int8" ? "exported to OpenVINO IR, then OpenVINO NNCF INT8 post-training quantisation" : "OpenVINO FP16 export" }),
|
|
62
341
|
formats: { openvino: ovFormat(hf(`${ovDir}/camstack-${baseId}-${precision}.xml`), sizeMB) },
|
|
63
342
|
...legacy ? { legacy: true } : {},
|
|
64
343
|
...precision === "int8" ? { group: {
|
|
@@ -86,9 +365,10 @@ var YOLOV9_TIER_NAME = {
|
|
|
86
365
|
c: "Compact"
|
|
87
366
|
};
|
|
88
367
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
* Intel NPU
|
|
368
|
+
* The Ultralytics YOLOv9 family (COCO-pretrained Ultralytics weights,
|
|
369
|
+
* re-exported by CamStack — not trained by us) — the NPU-detection line. Unlike
|
|
370
|
+
* yolo26 (whose arch the Intel NPU rejects → 0 frames), yolov9 COMPILES AND RUNS
|
|
371
|
+
* on the Intel NPU ("AI Boost"). Empirically: the yolov9t-320-int8 export = ~298 fps on the
|
|
92
372
|
* NPU vs yolo26n = 103 on the iGPU (~2.9×). t/s/m/c × {320,640}; each size ships
|
|
93
373
|
* a base entry (onnx + coreml + openvino **fp16**) + an OpenVINO **int8** entry
|
|
94
374
|
* (the NPU/iGPU-optimal config). CoreML (fp16) runs on the Mac ANE — the
|
|
@@ -111,6 +391,7 @@ var yolov9Reduced = (tier, res, sizes) => {
|
|
|
111
391
|
},
|
|
112
392
|
labels: [],
|
|
113
393
|
preprocessMode: "letterbox",
|
|
394
|
+
license: licensed(ULTRALYTICS_YOLOV9_AGPL, { modifications: `exported at ${res}×${res} to ONNX, OpenVINO IR FP16 and CoreML` }),
|
|
114
395
|
formats: {
|
|
115
396
|
onnx: {
|
|
116
397
|
url: hf(`objectDetection/yolov9/onnx/camstack-yolov9${tier}-${res}.onnx`),
|
|
@@ -134,13 +415,14 @@ var yolov9Reduced = (tier, res, sizes) => {
|
|
|
134
415
|
resolution: res
|
|
135
416
|
},
|
|
136
417
|
name: `YOLOv9 ${name} @${res} (INT8)`,
|
|
137
|
-
description: `YOLOv9 ${name} @${res} — OpenVINO INT8 for the Intel NPU / iGPU. The NPU's fastest config (
|
|
418
|
+
description: `YOLOv9 ${name} @${res} — OpenVINO INT8 for the Intel NPU / iGPU. The NPU's fastest config (Ultralytics YOLOv9 weights).`,
|
|
138
419
|
inputSize: {
|
|
139
420
|
width: res,
|
|
140
421
|
height: res
|
|
141
422
|
},
|
|
142
423
|
labels: [],
|
|
143
424
|
preprocessMode: "letterbox",
|
|
425
|
+
license: licensed(ULTRALYTICS_YOLOV9_AGPL, { modifications: `exported at ${res}×${res} to OpenVINO IR; OpenVINO NNCF INT8 post-training quantisation` }),
|
|
144
426
|
formats: { openvino: ovFormat(hf(`objectDetection/yolov9/openvino/camstack-yolov9${tier}-${res}-int8.xml`), sizes.ovInt8) }
|
|
145
427
|
}];
|
|
146
428
|
};
|
|
@@ -170,6 +452,7 @@ var yolo26Reduced = (tier, res, sizes) => {
|
|
|
170
452
|
},
|
|
171
453
|
labels: [],
|
|
172
454
|
preprocessMode: "letterbox",
|
|
455
|
+
license: licensed(ULTRALYTICS_AGPL, { modifications: `re-exported at ${res}×${res} to ONNX, OpenVINO IR and CoreML` }),
|
|
173
456
|
formats: {
|
|
174
457
|
onnx: {
|
|
175
458
|
url: hf(`objectDetection/yolo26/onnx/camstack-yolo26${tier}-${res}.onnx`),
|
|
@@ -200,12 +483,14 @@ var yolo26Reduced = (tier, res, sizes) => {
|
|
|
200
483
|
},
|
|
201
484
|
labels: [],
|
|
202
485
|
preprocessMode: "letterbox",
|
|
486
|
+
license: licensed(ULTRALYTICS_AGPL, { modifications: `re-exported at ${res}×${res} to OpenVINO IR; OpenVINO NNCF INT8 post-training quantisation` }),
|
|
203
487
|
formats: { openvino: ovFormat(hf(`objectDetection/yolo26/openvino/camstack-yolo26${tier}-${res}-int8.xml`), sizes.ovInt8) }
|
|
204
488
|
}];
|
|
205
489
|
};
|
|
206
490
|
var OBJECT_DETECTION_MODELS = [
|
|
207
491
|
{
|
|
208
492
|
id: "yolo26n",
|
|
493
|
+
license: ULTRALYTICS_AGPL,
|
|
209
494
|
group: {
|
|
210
495
|
family: "yolo26",
|
|
211
496
|
tier: "n",
|
|
@@ -236,6 +521,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
236
521
|
},
|
|
237
522
|
{
|
|
238
523
|
id: "yolo26s",
|
|
524
|
+
license: ULTRALYTICS_AGPL,
|
|
239
525
|
group: {
|
|
240
526
|
family: "yolo26",
|
|
241
527
|
tier: "s",
|
|
@@ -266,6 +552,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
266
552
|
},
|
|
267
553
|
{
|
|
268
554
|
id: "yolo26m",
|
|
555
|
+
license: ULTRALYTICS_AGPL,
|
|
269
556
|
group: {
|
|
270
557
|
family: "yolo26",
|
|
271
558
|
tier: "m",
|
|
@@ -296,6 +583,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
296
583
|
},
|
|
297
584
|
{
|
|
298
585
|
id: "yolo26l",
|
|
586
|
+
license: ULTRALYTICS_AGPL,
|
|
299
587
|
group: {
|
|
300
588
|
family: "yolo26",
|
|
301
589
|
tier: "l",
|
|
@@ -326,6 +614,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
326
614
|
},
|
|
327
615
|
{
|
|
328
616
|
id: "yolo26x",
|
|
617
|
+
license: ULTRALYTICS_AGPL,
|
|
329
618
|
legacy: true,
|
|
330
619
|
name: "YOLO26 XLarge",
|
|
331
620
|
description: "YOLO26 XLarge — highest accuracy, attention-based architecture",
|
|
@@ -352,6 +641,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
352
641
|
},
|
|
353
642
|
{
|
|
354
643
|
id: "ssd-mobilenet-v2-coco-edgetpu",
|
|
644
|
+
license: CORAL_COCO_APACHE,
|
|
355
645
|
name: "SSD MobileNet V2 (Coral)",
|
|
356
646
|
description: "SSD MobileNet V2 COCO — EdgeTPU-compiled full-integer TFLite, 300×300; runs on the Coral USB Edge TPU (~11 ms/frame)",
|
|
357
647
|
inputSize: {
|
|
@@ -369,6 +659,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
369
659
|
},
|
|
370
660
|
{
|
|
371
661
|
id: "efficientdet-lite0-edgetpu",
|
|
662
|
+
license: CORAL_COCO_APACHE,
|
|
372
663
|
name: "EfficientDet-Lite0 (Coral)",
|
|
373
664
|
description: "EfficientDet-Lite0 COCO — EdgeTPU-compiled full-integer TFLite, 320×320; higher accuracy than SSD MobileNet on the Coral USB Edge TPU",
|
|
374
665
|
inputSize: {
|
|
@@ -386,6 +677,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
386
677
|
},
|
|
387
678
|
{
|
|
388
679
|
id: "ssdlite-mobiledet-coco-edgetpu",
|
|
680
|
+
license: CORAL_MOBILEDET_MIRRORED,
|
|
389
681
|
name: "SSDLite MobileDet (Coral)",
|
|
390
682
|
description: "SSDLite MobileDet COCO (QAT) — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. More accurate than SSD MobileNet V2 (32.9 vs 25.6 % COCO mAP, Coral-published). Scores top out near 0.77.",
|
|
391
683
|
inputSize: {
|
|
@@ -395,7 +687,6 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
395
687
|
labels: [],
|
|
396
688
|
preprocessMode: "letterbox",
|
|
397
689
|
postprocessor: "ssd",
|
|
398
|
-
license: "Apache-2.0",
|
|
399
690
|
formats: { tflite: {
|
|
400
691
|
url: hf("objectDetection/ssdlite-mobiledet/edgetpu/ssdlite_mobiledet_coco_qat_postprocess_edgetpu.tflite"),
|
|
401
692
|
sizeMB: 5.1,
|
|
@@ -510,7 +801,7 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
510
801
|
ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "int8", 56, true)
|
|
511
802
|
];
|
|
512
803
|
/**
|
|
513
|
-
* Model ids REMOVED from a step's catalog, per step id (D643).
|
|
804
|
+
* Model ids REMOVED from a step's catalog, per step id (D643, D661).
|
|
514
805
|
*
|
|
515
806
|
* Not the same as `legacy` (still in the catalog, still runnable when chosen):
|
|
516
807
|
* a retired id has nothing to download and nothing that can parse it. It is
|
|
@@ -519,10 +810,16 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
519
810
|
* custom model — so a saved pin would keep naming a model no node can load.
|
|
520
811
|
* A retired id resolves to the step's format default instead.
|
|
521
812
|
*/
|
|
522
|
-
var RETIRED_MODEL_IDS = {
|
|
813
|
+
var RETIRED_MODEL_IDS = {
|
|
814
|
+
"face-detection": ["scrypted-yolov9t-face"],
|
|
815
|
+
"animal-classifier": ["animals-10"],
|
|
816
|
+
"bird-classifier": ["bird-nabirds-404"],
|
|
817
|
+
"vehicle-classifier": ["vehicle-type-efficientnet"]
|
|
818
|
+
};
|
|
523
819
|
var FACE_DETECTION_MODELS = [
|
|
524
820
|
{
|
|
525
821
|
id: "scrfd-2.5g",
|
|
822
|
+
license: INSIGHTFACE_SCRFD_NC,
|
|
526
823
|
name: "SCRFD 2.5G",
|
|
527
824
|
description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
|
|
528
825
|
inputSize: {
|
|
@@ -535,7 +832,6 @@ var FACE_DETECTION_MODELS = [
|
|
|
535
832
|
}],
|
|
536
833
|
preprocessMode: "letterbox",
|
|
537
834
|
inputNormalization: "scrfd",
|
|
538
|
-
license: "InsightFace-NonCommercial-Research",
|
|
539
835
|
formats: {
|
|
540
836
|
onnx: {
|
|
541
837
|
url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
|
|
@@ -553,6 +849,7 @@ var FACE_DETECTION_MODELS = [
|
|
|
553
849
|
},
|
|
554
850
|
{
|
|
555
851
|
id: "yunet-2023mar",
|
|
852
|
+
license: YUNET_MIT,
|
|
556
853
|
name: "YuNet 2023mar",
|
|
557
854
|
description: "YuNet (OpenCV Zoo, 2023mar) — tiny face detector with 5 keypoints, MIT weights (WIDER FACE AP 0.884/0.866/0.750). ~0.2 MB. Trained on WIDER FACE (CC BY-NC-ND images).",
|
|
558
855
|
inputSize: {
|
|
@@ -565,7 +862,6 @@ var FACE_DETECTION_MODELS = [
|
|
|
565
862
|
}],
|
|
566
863
|
preprocessMode: "letterbox",
|
|
567
864
|
postprocessor: "yunet",
|
|
568
|
-
license: "MIT",
|
|
569
865
|
formats: {
|
|
570
866
|
onnx: {
|
|
571
867
|
url: hf("faceDetection/yunet/onnx/camstack-yunet-2023mar.onnx"),
|
|
@@ -583,6 +879,7 @@ var FACE_DETECTION_MODELS = [
|
|
|
583
879
|
},
|
|
584
880
|
{
|
|
585
881
|
id: "ssd-mobilenet-v2-face-edgetpu",
|
|
882
|
+
license: CORAL_APACHE,
|
|
586
883
|
legacy: true,
|
|
587
884
|
name: "SSD MobileNet V2 Face (Coral)",
|
|
588
885
|
description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
|
|
@@ -596,7 +893,6 @@ var FACE_DETECTION_MODELS = [
|
|
|
596
893
|
}],
|
|
597
894
|
preprocessMode: "letterbox",
|
|
598
895
|
postprocessor: "ssd",
|
|
599
|
-
license: "Apache-2.0",
|
|
600
896
|
formats: { tflite: {
|
|
601
897
|
url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
|
|
602
898
|
sizeMB: 6.7,
|
|
@@ -607,6 +903,7 @@ var FACE_DETECTION_MODELS = [
|
|
|
607
903
|
var FACE_EMBEDDING_MODELS = [
|
|
608
904
|
{
|
|
609
905
|
id: "arcface-r100",
|
|
906
|
+
license: ARCFACE_UNKNOWN,
|
|
610
907
|
name: "ArcFace (ResNet34)",
|
|
611
908
|
description: "ArcFace ResNet34 — face recognition embeddings (512-d). NOTE: despite the `arcface-r100` id this is a ResNet34, not a ResNet-100 (verified 2026-08-19).",
|
|
612
909
|
inputSize: {
|
|
@@ -620,7 +917,6 @@ var FACE_EMBEDDING_MODELS = [
|
|
|
620
917
|
}],
|
|
621
918
|
preprocessMode: "resize",
|
|
622
919
|
faceAlignment: true,
|
|
623
|
-
license: "UNKNOWN",
|
|
624
920
|
formats: {
|
|
625
921
|
onnx: {
|
|
626
922
|
url: hf("faceRecognition/arcface/onnx/camstack-arcface-arcface.onnx"),
|
|
@@ -638,6 +934,7 @@ var FACE_EMBEDDING_MODELS = [
|
|
|
638
934
|
},
|
|
639
935
|
{
|
|
640
936
|
id: "auraface-r100",
|
|
937
|
+
license: AURAFACE_APACHE,
|
|
641
938
|
name: "AuraFace R100",
|
|
642
939
|
description: "AuraFace v1 (fal.ai) — iResNet-100 ArcFace face recognition embeddings (512-d), Apache-2.0. Benchmarks published by fal: LFW 99.65, CFP-FP 95.19, AgeDB 96.10, CALFW 94.70, CPLFW 90.93. Genuinely a ResNet-100 (65 M params) — roughly twice the depth of the `arcface-r100` entry, which is a ResNet34.",
|
|
643
940
|
inputSize: {
|
|
@@ -650,7 +947,6 @@ var FACE_EMBEDDING_MODELS = [
|
|
|
650
947
|
}],
|
|
651
948
|
preprocessMode: "resize",
|
|
652
949
|
faceAlignment: true,
|
|
653
|
-
license: "Apache-2.0",
|
|
654
950
|
formats: {
|
|
655
951
|
onnx: {
|
|
656
952
|
url: hf("faceRecognition/auraface/onnx/camstack-auraface-r100.onnx"),
|
|
@@ -668,6 +964,7 @@ var FACE_EMBEDDING_MODELS = [
|
|
|
668
964
|
},
|
|
669
965
|
{
|
|
670
966
|
id: "inception-resnet-v1",
|
|
967
|
+
license: SCRYPTED_UNKNOWN,
|
|
671
968
|
name: "Inception ResNet V1",
|
|
672
969
|
description: "FaceNet-style face recognition embeddings (512-d) — hosted on plugin-models HF repo",
|
|
673
970
|
inputSize: {
|
|
@@ -679,7 +976,6 @@ var FACE_EMBEDDING_MODELS = [
|
|
|
679
976
|
name: "Face Embedding"
|
|
680
977
|
}],
|
|
681
978
|
preprocessMode: "resize",
|
|
682
|
-
license: "UNKNOWN",
|
|
683
979
|
formats: {
|
|
684
980
|
onnx: {
|
|
685
981
|
url: hfScrypted("onnx/inception_resnet_v1/inception_resnet_v1.onnx"),
|
|
@@ -698,6 +994,14 @@ var FACE_EMBEDDING_MODELS = [
|
|
|
698
994
|
];
|
|
699
995
|
var PLATE_DETECTION_MODELS = [{
|
|
700
996
|
id: "yolov8n-plate",
|
|
997
|
+
license: licensed(ULTRALYTICS_AGPL, {
|
|
998
|
+
data: {
|
|
999
|
+
name: "unidentified plate dataset (third-party model, trained 2023-12-05 per its ONNX metadata)",
|
|
1000
|
+
terms: "UNKNOWN"
|
|
1001
|
+
},
|
|
1002
|
+
attribution: "© Ultralytics, AGPL-3.0 (YOLOv8n base, fine-tuned for plates by an unidentified third party). CamStack holds no training checkpoint; the ONNX file is the only form it has.",
|
|
1003
|
+
modifications: "converted to OpenVINO IR and CoreML"
|
|
1004
|
+
}),
|
|
701
1005
|
name: "YOLOv8 Nano — License Plate",
|
|
702
1006
|
description: "YOLOv8 Nano fine-tuned for license plate detection",
|
|
703
1007
|
inputSize: {
|
|
@@ -726,6 +1030,15 @@ var PLATE_DETECTION_MODELS = [{
|
|
|
726
1030
|
}];
|
|
727
1031
|
var PACKAGE_DETECTION_MODELS = [{
|
|
728
1032
|
id: "yolov8n-package",
|
|
1033
|
+
license: licensed(ULTRALYTICS_AGPL, {
|
|
1034
|
+
data: {
|
|
1035
|
+
name: "Roboflow Universe package-at-front-door (most likely)",
|
|
1036
|
+
terms: "UNVERIFIED",
|
|
1037
|
+
url: "https://universe.roboflow.com/package-detection/package-at-front-door"
|
|
1038
|
+
},
|
|
1039
|
+
attribution: "© Ultralytics, AGPL-3.0 (YOLOv8n base, fine-tuned by CamStack with Ultralytics). The fine-tuning checkpoint is not published yet.",
|
|
1040
|
+
modifications: "fine-tuned by CamStack with Ultralytics; exported to ONNX, OpenVINO IR and CoreML"
|
|
1041
|
+
}),
|
|
729
1042
|
name: "YOLOv8 Nano — Package",
|
|
730
1043
|
description: "YOLOv8 Nano fine-tuned for parcel/package detection (mAP50 0.93) — dedicated model, not the COCO suitcase/backpack proxy",
|
|
731
1044
|
inputSize: {
|
|
@@ -737,7 +1050,6 @@ var PACKAGE_DETECTION_MODELS = [{
|
|
|
737
1050
|
name: "Package"
|
|
738
1051
|
}],
|
|
739
1052
|
preprocessMode: "letterbox",
|
|
740
|
-
license: "AGPL-3.0",
|
|
741
1053
|
formats: {
|
|
742
1054
|
onnx: {
|
|
743
1055
|
url: hf("packageDetection/yolov8-package/onnx/camstack-yolov8n-package.onnx"),
|
|
@@ -754,6 +1066,7 @@ var PACKAGE_DETECTION_MODELS = [{
|
|
|
754
1066
|
}
|
|
755
1067
|
}, {
|
|
756
1068
|
id: "rfdetr-package",
|
|
1069
|
+
license: RFDETR_APACHE,
|
|
757
1070
|
name: "RF-DETR — Package",
|
|
758
1071
|
description: "RF-DETR parcel detector — DETR-style decode (onnx / coreml / openvino). Separates parcel from doormat far better than yolov8n-package (+0.86 vs +0.21 margin on 615) at ~4× the size and ~6× the latency",
|
|
759
1072
|
inputSize: {
|
|
@@ -767,7 +1080,6 @@ var PACKAGE_DETECTION_MODELS = [{
|
|
|
767
1080
|
preprocessMode: "resize",
|
|
768
1081
|
inputNormalization: "imagenet",
|
|
769
1082
|
postprocessor: "rfdetr",
|
|
770
|
-
license: "Apache-2.0",
|
|
771
1083
|
formats: {
|
|
772
1084
|
onnx: {
|
|
773
1085
|
url: hf("packageDetection/rfdetr-package/onnx/camstack-rfdetr-package.onnx"),
|
|
@@ -785,6 +1097,7 @@ var PACKAGE_DETECTION_MODELS = [{
|
|
|
785
1097
|
}];
|
|
786
1098
|
var PLATE_OCR_MODELS = [{
|
|
787
1099
|
id: "cct-s-v2-global",
|
|
1100
|
+
license: FAST_PLATE_OCR_MIT,
|
|
788
1101
|
name: "CCT-S v2 Global — License Plate",
|
|
789
1102
|
description: "fast-plate-ocr CCT-S v2 — a dedicated license-plate reader (66 regions incl. Germany). 19/21 exact on the cam-617 ground-truth set vs 4/21 for the generic VGG text recognizer, with zero false reads on 18 junk ROIs",
|
|
790
1103
|
inputSize: {
|
|
@@ -798,7 +1111,6 @@ var PLATE_OCR_MODELS = [{
|
|
|
798
1111
|
}],
|
|
799
1112
|
preprocessMode: "resize",
|
|
800
1113
|
postprocessor: "plate-slots",
|
|
801
|
-
license: "MIT",
|
|
802
1114
|
formats: {
|
|
803
1115
|
onnx: {
|
|
804
1116
|
url: hf("plateRecognition/cct-s-v2-global/onnx/camstack-cct-s-v2-global.onnx"),
|
|
@@ -815,6 +1127,7 @@ var PLATE_OCR_MODELS = [{
|
|
|
815
1127
|
}
|
|
816
1128
|
}, {
|
|
817
1129
|
id: "vgg-english-g2",
|
|
1130
|
+
license: EASYOCR_APACHE,
|
|
818
1131
|
name: "VGG English G2",
|
|
819
1132
|
description: "EasyOCR VGG English G2 — generic English text recognition. Superseded as the plate-OCR default by cct-s-v2-global (4/21 vs 19/21 exact on the cam-617 set); kept selectable for non-plate scene text and for any node pinned to it",
|
|
820
1133
|
inputSize: {
|
|
@@ -844,6 +1157,7 @@ var PLATE_OCR_MODELS = [{
|
|
|
844
1157
|
}];
|
|
845
1158
|
var ANIMAL_CLASSIFIER_MODELS = [{
|
|
846
1159
|
id: "animal-classifier",
|
|
1160
|
+
license: ANIMAL_CLASSIFIER_APACHE,
|
|
847
1161
|
name: "Animal Classifier (8)",
|
|
848
1162
|
description: "EfficientNet-Lite0 animal classifier — bird, cat, cow, deer, dog, horse, sheep, squirrel (Open Images V7, publicly distributable)",
|
|
849
1163
|
inputSize: {
|
|
@@ -852,7 +1166,6 @@ var ANIMAL_CLASSIFIER_MODELS = [{
|
|
|
852
1166
|
},
|
|
853
1167
|
inputLayout: "nchw",
|
|
854
1168
|
inputNormalization: "imagenet",
|
|
855
|
-
license: "Apache-2.0",
|
|
856
1169
|
labels: [{
|
|
857
1170
|
id: "animal-type",
|
|
858
1171
|
name: "Animal Type"
|
|
@@ -877,141 +1190,75 @@ var ANIMAL_CLASSIFIER_MODELS = [{
|
|
|
877
1190
|
filename: "animal-classifier-labels.json",
|
|
878
1191
|
sizeMB: .01
|
|
879
1192
|
}]
|
|
880
|
-
}
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
1193
|
+
}];
|
|
1194
|
+
var BIRD_CLASSIFIER_MODELS = [{
|
|
1195
|
+
id: "bird-classifier",
|
|
1196
|
+
license: AIY_BIRDS_APACHE,
|
|
1197
|
+
name: "Bird Classifier (AIY 965)",
|
|
1198
|
+
description: "Google AIY Birds V1 (MobileNetV2) — 964 species + background; publicly distributable (Apache-2.0)",
|
|
885
1199
|
inputSize: {
|
|
886
1200
|
width: 224,
|
|
887
1201
|
height: 224
|
|
888
1202
|
},
|
|
889
|
-
|
|
1203
|
+
inputLayout: "nhwc",
|
|
1204
|
+
inputNormalization: "none",
|
|
1205
|
+
outputProbabilities: true,
|
|
890
1206
|
labels: [{
|
|
891
|
-
id: "
|
|
892
|
-
name: "
|
|
1207
|
+
id: "species",
|
|
1208
|
+
name: "Bird Species"
|
|
893
1209
|
}],
|
|
894
1210
|
preprocessMode: "resize",
|
|
895
1211
|
formats: {
|
|
896
1212
|
onnx: {
|
|
897
|
-
url: hf("animalClassification/
|
|
898
|
-
sizeMB:
|
|
1213
|
+
url: hf("animalClassification/bird-classifier/onnx/bird-classifier.onnx"),
|
|
1214
|
+
sizeMB: 14
|
|
899
1215
|
},
|
|
900
1216
|
coreml: {
|
|
901
|
-
url: hf("animalClassification/
|
|
902
|
-
sizeMB:
|
|
1217
|
+
url: hf("animalClassification/bird-classifier/coreml/bird-classifier.mlpackage"),
|
|
1218
|
+
sizeMB: 6.8,
|
|
903
1219
|
isDirectory: true,
|
|
904
1220
|
files: [...MLPACKAGE_FILES],
|
|
905
1221
|
runtimes: ["python"]
|
|
906
1222
|
},
|
|
907
|
-
openvino: ovFormat(hf("animalClassification/
|
|
908
|
-
}
|
|
909
|
-
}];
|
|
910
|
-
var BIRD_CLASSIFIER_MODELS = [
|
|
911
|
-
{
|
|
912
|
-
id: "bird-classifier",
|
|
913
|
-
name: "Bird Classifier (AIY 965)",
|
|
914
|
-
description: "Google AIY Birds V1 (MobileNetV2) — 964 species + background; publicly distributable (Apache-2.0)",
|
|
915
|
-
inputSize: {
|
|
916
|
-
width: 224,
|
|
917
|
-
height: 224
|
|
918
|
-
},
|
|
919
|
-
inputLayout: "nhwc",
|
|
920
|
-
inputNormalization: "none",
|
|
921
|
-
outputProbabilities: true,
|
|
922
|
-
license: "Apache-2.0",
|
|
923
|
-
labels: [{
|
|
924
|
-
id: "species",
|
|
925
|
-
name: "Bird Species"
|
|
926
|
-
}],
|
|
927
|
-
preprocessMode: "resize",
|
|
928
|
-
formats: {
|
|
929
|
-
onnx: {
|
|
930
|
-
url: hf("animalClassification/bird-classifier/onnx/bird-classifier.onnx"),
|
|
931
|
-
sizeMB: 14
|
|
932
|
-
},
|
|
933
|
-
coreml: {
|
|
934
|
-
url: hf("animalClassification/bird-classifier/coreml/bird-classifier.mlpackage"),
|
|
935
|
-
sizeMB: 6.8,
|
|
936
|
-
isDirectory: true,
|
|
937
|
-
files: [...MLPACKAGE_FILES],
|
|
938
|
-
runtimes: ["python"]
|
|
939
|
-
},
|
|
940
|
-
openvino: ovFormat(hf("animalClassification/bird-classifier/openvino/bird-classifier.xml"), 14)
|
|
941
|
-
},
|
|
942
|
-
extraFiles: [{
|
|
943
|
-
url: hf("animalClassification/bird-classifier/onnx/bird-classifier-labels.json"),
|
|
944
|
-
filename: "bird-classifier-labels.json",
|
|
945
|
-
sizeMB: .03
|
|
946
|
-
}]
|
|
1223
|
+
openvino: ovFormat(hf("animalClassification/bird-classifier/openvino/bird-classifier.xml"), 14)
|
|
947
1224
|
},
|
|
948
|
-
{
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
preprocessMode: "resize",
|
|
963
|
-
formats: {
|
|
964
|
-
onnx: {
|
|
965
|
-
url: hf("animalClassification/bird-nabirds/onnx/camstack-bird-nabirds-404.onnx"),
|
|
966
|
-
sizeMB: 93
|
|
967
|
-
},
|
|
968
|
-
coreml: {
|
|
969
|
-
url: hf("animalClassification/bird-nabirds/coreml/camstack-bird-nabirds-404.mlpackage"),
|
|
970
|
-
sizeMB: 47,
|
|
971
|
-
isDirectory: true,
|
|
972
|
-
files: [...MLPACKAGE_FILES],
|
|
973
|
-
runtimes: ["python"]
|
|
974
|
-
},
|
|
975
|
-
openvino: ovFormat(hf("animalClassification/bird-nabirds/openvino/camstack-bird-nabirds-404.xml"), 47)
|
|
976
|
-
},
|
|
977
|
-
extraFiles: [{
|
|
978
|
-
url: hf("animalClassification/bird-nabirds/onnx/camstack-bird-nabirds-404-labels.json"),
|
|
979
|
-
filename: "camstack-bird-nabirds-404-labels.json",
|
|
980
|
-
sizeMB: .02
|
|
981
|
-
}]
|
|
1225
|
+
extraFiles: [{
|
|
1226
|
+
url: hf("animalClassification/bird-classifier/onnx/bird-classifier-labels.json"),
|
|
1227
|
+
filename: "bird-classifier-labels.json",
|
|
1228
|
+
sizeMB: .03
|
|
1229
|
+
}]
|
|
1230
|
+
}, {
|
|
1231
|
+
id: "bird-classifier-aiy-edgetpu",
|
|
1232
|
+
license: CORAL_APACHE,
|
|
1233
|
+
legacy: true,
|
|
1234
|
+
name: "Bird Classifier AIY (Coral)",
|
|
1235
|
+
description: "Google AIY Birds V1 (MobileNetV2) — EdgeTPU-compiled full-integer TFLite, 224×224, 964 species + background; runs on the Coral USB Edge TPU. Requires EdgeTPU classifier output dequantization (not yet available).",
|
|
1236
|
+
inputSize: {
|
|
1237
|
+
width: 224,
|
|
1238
|
+
height: 224
|
|
982
1239
|
},
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
url: "https://github.com/google-coral/test_data/raw/master/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite",
|
|
1003
|
-
sizeMB: 4.3,
|
|
1004
|
-
runtimes: ["python"]
|
|
1005
|
-
} },
|
|
1006
|
-
extraFiles: [{
|
|
1007
|
-
url: hf("animalClassification/bird-classifier/onnx/bird-classifier-labels.json"),
|
|
1008
|
-
filename: "bird-classifier-labels.json",
|
|
1009
|
-
sizeMB: .03
|
|
1010
|
-
}]
|
|
1011
|
-
}
|
|
1012
|
-
];
|
|
1240
|
+
inputLayout: "nhwc",
|
|
1241
|
+
inputNormalization: "none",
|
|
1242
|
+
outputProbabilities: true,
|
|
1243
|
+
labels: [{
|
|
1244
|
+
id: "species",
|
|
1245
|
+
name: "Bird Species"
|
|
1246
|
+
}],
|
|
1247
|
+
preprocessMode: "resize",
|
|
1248
|
+
formats: { tflite: {
|
|
1249
|
+
url: "https://github.com/google-coral/test_data/raw/master/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite",
|
|
1250
|
+
sizeMB: 4.3,
|
|
1251
|
+
runtimes: ["python"]
|
|
1252
|
+
} },
|
|
1253
|
+
extraFiles: [{
|
|
1254
|
+
url: hf("animalClassification/bird-classifier/onnx/bird-classifier-labels.json"),
|
|
1255
|
+
filename: "bird-classifier-labels.json",
|
|
1256
|
+
sizeMB: .03
|
|
1257
|
+
}]
|
|
1258
|
+
}];
|
|
1013
1259
|
var VEHICLE_CLASSIFIER_MODELS = [{
|
|
1014
1260
|
id: "vehicle-type-v1",
|
|
1261
|
+
license: VEHICLE_TYPE_V1_NC,
|
|
1015
1262
|
name: "Vehicle Type (8)",
|
|
1016
1263
|
description: "MobileNetV3-Large vehicle type classifier — Ambulance, Bicycle, Bus, Car, Motorcycle, Taxi, Truck, Van (val 89.4%)",
|
|
1017
1264
|
inputSize: {
|
|
@@ -1044,43 +1291,10 @@ var VEHICLE_CLASSIFIER_MODELS = [{
|
|
|
1044
1291
|
filename: "vehicle-type-v1-labels.json",
|
|
1045
1292
|
sizeMB: .01
|
|
1046
1293
|
}]
|
|
1047
|
-
}, {
|
|
1048
|
-
id: "vehicle-type-efficientnet",
|
|
1049
|
-
name: "Vehicle Type (EfficientNet)",
|
|
1050
|
-
description: "EfficientNet-B4 vehicle make/model/year classifier — 8,949 classes from VMMRdb",
|
|
1051
|
-
legacy: true,
|
|
1052
|
-
inputSize: {
|
|
1053
|
-
width: 380,
|
|
1054
|
-
height: 380
|
|
1055
|
-
},
|
|
1056
|
-
inputNormalization: "imagenet",
|
|
1057
|
-
labels: [{
|
|
1058
|
-
id: "vehicle-type",
|
|
1059
|
-
name: "Vehicle Type"
|
|
1060
|
-
}],
|
|
1061
|
-
preprocessMode: "resize",
|
|
1062
|
-
formats: {
|
|
1063
|
-
onnx: {
|
|
1064
|
-
url: hf("vehicleClassification/efficientnet/onnx/camstack-vehicle-type-efficientnet.onnx"),
|
|
1065
|
-
sizeMB: 135
|
|
1066
|
-
},
|
|
1067
|
-
coreml: {
|
|
1068
|
-
url: hf("vehicleClassification/efficientnet/coreml/camstack-vehicle-type-efficientnet.mlpackage"),
|
|
1069
|
-
sizeMB: 10,
|
|
1070
|
-
isDirectory: true,
|
|
1071
|
-
files: [...MLPACKAGE_FILES],
|
|
1072
|
-
runtimes: ["python"]
|
|
1073
|
-
},
|
|
1074
|
-
openvino: ovFormat(hf("vehicleClassification/efficientnet/openvino/camstack-vehicle-type-efficientnet.xml"), 68)
|
|
1075
|
-
},
|
|
1076
|
-
extraFiles: [{
|
|
1077
|
-
url: hf("vehicleClassification/efficientnet/camstack-vehicle-type-labels.json"),
|
|
1078
|
-
filename: "camstack-vehicle-type-labels.json",
|
|
1079
|
-
sizeMB: .2
|
|
1080
|
-
}]
|
|
1081
1294
|
}];
|
|
1082
1295
|
var SEGMENTATION_REFINER_MODELS = [{
|
|
1083
1296
|
id: "u2netp",
|
|
1297
|
+
license: U2NET_APACHE,
|
|
1084
1298
|
name: "U2-Net Portable",
|
|
1085
1299
|
description: "U2-Net-P — ultra-lightweight salient object segmentation (4.7 MB)",
|
|
1086
1300
|
inputSize: {
|
|
@@ -1110,6 +1324,7 @@ var SEGMENTATION_REFINER_MODELS = [{
|
|
|
1110
1324
|
var INSTANCE_SEGMENTATION_MODELS = [
|
|
1111
1325
|
{
|
|
1112
1326
|
id: "yolo26n-seg",
|
|
1327
|
+
license: licensed(ULTRALYTICS_AGPL, { modifications: "exported to ONNX, OpenVINO IR and CoreML" }),
|
|
1113
1328
|
name: "YOLO26 Nano Seg",
|
|
1114
1329
|
description: "YOLO26 Nano Segmentation — ultra-lightweight instance segmentation with masks",
|
|
1115
1330
|
inputSize: {
|
|
@@ -1135,6 +1350,7 @@ var INSTANCE_SEGMENTATION_MODELS = [
|
|
|
1135
1350
|
},
|
|
1136
1351
|
{
|
|
1137
1352
|
id: "yolo26s-seg",
|
|
1353
|
+
license: licensed(ULTRALYTICS_AGPL, { modifications: "exported to ONNX, OpenVINO IR and CoreML" }),
|
|
1138
1354
|
name: "YOLO26 Small Seg",
|
|
1139
1355
|
description: "YOLO26 Small Segmentation — balanced instance segmentation",
|
|
1140
1356
|
inputSize: {
|
|
@@ -1160,6 +1376,7 @@ var INSTANCE_SEGMENTATION_MODELS = [
|
|
|
1160
1376
|
},
|
|
1161
1377
|
{
|
|
1162
1378
|
id: "yolo26m-seg",
|
|
1379
|
+
license: licensed(ULTRALYTICS_AGPL, { modifications: "exported to ONNX, OpenVINO IR and CoreML" }),
|
|
1163
1380
|
name: "YOLO26 Medium Seg",
|
|
1164
1381
|
description: "YOLO26 Medium Segmentation — high-accuracy instance segmentation",
|
|
1165
1382
|
inputSize: {
|
|
@@ -1187,6 +1404,7 @@ var INSTANCE_SEGMENTATION_MODELS = [
|
|
|
1187
1404
|
var CLIP_EMBEDDING_MODELS = [
|
|
1188
1405
|
{
|
|
1189
1406
|
id: "mobileclip-s1",
|
|
1407
|
+
license: APPLE_MOBILECLIP_AMLR,
|
|
1190
1408
|
name: "MobileCLIP S1",
|
|
1191
1409
|
description: "MobileCLIP S1 — Apple balanced CLIP vision encoder, 512-dim, 256×256 (fp16 OpenVINO/CoreML)",
|
|
1192
1410
|
inputSize: {
|
|
@@ -1212,6 +1430,7 @@ var CLIP_EMBEDDING_MODELS = [
|
|
|
1212
1430
|
},
|
|
1213
1431
|
{
|
|
1214
1432
|
id: "mobileclip-s2",
|
|
1433
|
+
license: APPLE_MOBILECLIP_AMLR,
|
|
1215
1434
|
name: "MobileCLIP S2",
|
|
1216
1435
|
description: "MobileCLIP S2 — Apple high-accuracy CLIP vision encoder, 512-dim, 256×256 (fp16 OpenVINO/CoreML)",
|
|
1217
1436
|
inputSize: {
|
|
@@ -1237,6 +1456,7 @@ var CLIP_EMBEDDING_MODELS = [
|
|
|
1237
1456
|
},
|
|
1238
1457
|
{
|
|
1239
1458
|
id: "siglip2-b16-224",
|
|
1459
|
+
license: SIGLIP2_APACHE,
|
|
1240
1460
|
name: "SigLIP2 B/16",
|
|
1241
1461
|
description: "Google SigLIP2 base, patch 16, 224×224 — Apache-2.0 CLIP vision encoder, 768-dim (fp16 OpenVINO/CoreML)",
|
|
1242
1462
|
inputSize: {
|
|
@@ -1249,7 +1469,6 @@ var CLIP_EMBEDDING_MODELS = [
|
|
|
1249
1469
|
}],
|
|
1250
1470
|
preprocessMode: "resize",
|
|
1251
1471
|
inputNormalization: "none",
|
|
1252
|
-
license: "Apache-2.0",
|
|
1253
1472
|
formats: {
|
|
1254
1473
|
openvino: ovFormat(hf("clip/siglip2/openvino/camstack-siglip2-b16-224-vision.xml"), 186),
|
|
1255
1474
|
coreml: {
|
|
@@ -1264,6 +1483,7 @@ var CLIP_EMBEDDING_MODELS = [
|
|
|
1264
1483
|
];
|
|
1265
1484
|
var AUDIO_CLASSIFIER_MODELS = [{
|
|
1266
1485
|
id: "yamnet-onnx",
|
|
1486
|
+
license: YAMNET_APACHE,
|
|
1267
1487
|
name: "YAMNet",
|
|
1268
1488
|
description: "Google YAMNet — 521-class audio event classifier (3.2 MB ONNX, runs on any platform)",
|
|
1269
1489
|
inputSize: {
|
|
@@ -1281,6 +1501,7 @@ var AUDIO_CLASSIFIER_MODELS = [{
|
|
|
1281
1501
|
}
|
|
1282
1502
|
}, {
|
|
1283
1503
|
id: "apple-soundanalysis",
|
|
1504
|
+
license: APPLE_SOUNDANALYSIS,
|
|
1284
1505
|
name: "Apple SoundAnalysis",
|
|
1285
1506
|
description: "macOS built-in — 303 sound categories, Neural Engine accelerated, zero download",
|
|
1286
1507
|
inputSize: {
|
|
@@ -2546,7 +2767,7 @@ var OBJECT_DETECTION_STEP_ID = "object-detection";
|
|
|
2546
2767
|
/**
|
|
2547
2768
|
* Balanced default object-detection model per accelerator class. `'cpu'` maps to
|
|
2548
2769
|
* `null` → the caller substitutes the step's own `defaultModelId` (`yolo26n`).
|
|
2549
|
-
* INTEL NPU + iGPU default to
|
|
2770
|
+
* INTEL NPU + iGPU default to the Ultralytics YOLOv9 re-export (int8 @320): yolo26 does NOT compile on
|
|
2550
2771
|
* the Intel NPU (arch incompat → 0 frames), while yolov9 runs on it (~298 fps
|
|
2551
2772
|
* measured). Apple ANE uses the CoreML yolov9 @320 build.
|
|
2552
2773
|
*
|