@camstack/types 0.1.0 → 0.1.1
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/dist/index.d.mts +2345 -90
- package/dist/index.d.ts +2345 -90
- package/dist/index.js +96 -649
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +206 -28
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -1
- package/dist/catalogs/index.d.mts +0 -1
- package/dist/catalogs/index.d.ts +0 -1
- package/dist/catalogs/index.js +0 -805
- package/dist/catalogs/index.js.map +0 -1
- package/dist/catalogs/index.mjs +0 -31
- package/dist/catalogs/index.mjs.map +0 -1
- package/dist/chunk-QNLZQW6W.mjs +0 -770
- package/dist/chunk-QNLZQW6W.mjs.map +0 -1
- package/dist/index-B9wf2RhV.d.mts +0 -89
- package/dist/index-B9wf2RhV.d.ts +0 -89
package/dist/index.js
CHANGED
|
@@ -20,25 +20,85 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
BIRD_NABIRDS_MODELS: () => BIRD_NABIRDS_MODELS,
|
|
26
|
-
BIRD_SPECIES_MODELS: () => BIRD_SPECIES_MODELS,
|
|
23
|
+
BINARY_FRAME_HEADER_SIZE: () => BINARY_FRAME_HEADER_SIZE,
|
|
24
|
+
BINARY_FRAME_TYPE: () => BINARY_FRAME_TYPE,
|
|
27
25
|
COCO_80_LABELS: () => COCO_80_LABELS,
|
|
28
26
|
COCO_TO_MACRO: () => COCO_TO_MACRO,
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
DEFAULT_FEATURES: () => DEFAULT_FEATURES,
|
|
28
|
+
DEFAULT_LOCATION_SUBPATHS: () => DEFAULT_LOCATION_SUBPATHS,
|
|
29
|
+
DEFAULT_RETENTION: () => DEFAULT_RETENTION,
|
|
30
|
+
DETECTION_TYPES: () => DETECTION_TYPES,
|
|
31
31
|
HF_BASE_URL: () => HF_BASE_URL,
|
|
32
32
|
HF_REPO: () => HF_REPO,
|
|
33
33
|
MACRO_LABELS: () => MACRO_LABELS,
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
RECOGNITION_TYPES: () => RECOGNITION_TYPES,
|
|
35
|
+
SUB_DETECTION_TYPES: () => SUB_DETECTION_TYPES,
|
|
36
|
+
cosineSimilarity: () => cosineSimilarity,
|
|
37
|
+
createAnalysisContext: () => createAnalysisContext,
|
|
38
|
+
enrichContext: () => enrichContext,
|
|
38
39
|
hfModelUrl: () => hfModelUrl
|
|
39
40
|
});
|
|
40
41
|
module.exports = __toCommonJS(src_exports);
|
|
41
42
|
|
|
43
|
+
// src/interfaces/storage-backend.ts
|
|
44
|
+
var DEFAULT_LOCATION_SUBPATHS = {
|
|
45
|
+
data: "db",
|
|
46
|
+
media: "media",
|
|
47
|
+
recordings: "recordings",
|
|
48
|
+
models: "models",
|
|
49
|
+
cache: "/tmp/camstack-cache",
|
|
50
|
+
logs: "logs"
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
// src/interfaces/feature-flags.ts
|
|
54
|
+
var DEFAULT_FEATURES = {
|
|
55
|
+
streaming: true,
|
|
56
|
+
notifications: true,
|
|
57
|
+
objectDetection: false,
|
|
58
|
+
remoteAccess: true,
|
|
59
|
+
agentCluster: false,
|
|
60
|
+
smartHome: true,
|
|
61
|
+
recordings: true,
|
|
62
|
+
backup: true,
|
|
63
|
+
repl: true
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
// src/interfaces/agent-protocol.ts
|
|
67
|
+
var BINARY_FRAME_HEADER_SIZE = 29;
|
|
68
|
+
var BINARY_FRAME_TYPE = 1;
|
|
69
|
+
|
|
70
|
+
// src/interfaces/server-analysis.ts
|
|
71
|
+
var DETECTION_TYPES = ["person", "vehicle", "animal", "package"];
|
|
72
|
+
var SUB_DETECTION_TYPES = ["face", "plate"];
|
|
73
|
+
var RECOGNITION_TYPES = ["face", "plate", "clip", "custom"];
|
|
74
|
+
function createAnalysisContext(deviceId, frame, rawDetections) {
|
|
75
|
+
return {
|
|
76
|
+
deviceId,
|
|
77
|
+
frame,
|
|
78
|
+
timestamp: frame.timestamp,
|
|
79
|
+
rawDetections,
|
|
80
|
+
trackedDetections: [],
|
|
81
|
+
events: [],
|
|
82
|
+
metadata: {}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
function enrichContext(ctx, updates) {
|
|
86
|
+
return {
|
|
87
|
+
...ctx,
|
|
88
|
+
trackedDetections: updates.trackedDetections ?? ctx.trackedDetections,
|
|
89
|
+
events: updates.events ?? ctx.events,
|
|
90
|
+
metadata: updates.metadata ? { ...ctx.metadata, ...updates.metadata } : ctx.metadata
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/interfaces/analysis-persistence.ts
|
|
95
|
+
var DEFAULT_RETENTION = {
|
|
96
|
+
cleanupIntervalMs: 60 * 60 * 1e3,
|
|
97
|
+
detectionEventsDays: 30,
|
|
98
|
+
audioLevelsDays: 7,
|
|
99
|
+
snapshotsDays: 14
|
|
100
|
+
};
|
|
101
|
+
|
|
42
102
|
// src/constants.ts
|
|
43
103
|
var HF_REPO = "camstack/camstack-models";
|
|
44
104
|
var HF_BASE_URL = `https://huggingface.co/${HF_REPO}/resolve/main`;
|
|
@@ -48,6 +108,21 @@ function hfModelUrl(repo, path) {
|
|
|
48
108
|
return `https://huggingface.co/${repo}/resolve/main/${path}`;
|
|
49
109
|
}
|
|
50
110
|
|
|
111
|
+
// src/utils/cosine-similarity.ts
|
|
112
|
+
function cosineSimilarity(a, b) {
|
|
113
|
+
if (a.length !== b.length) return 0;
|
|
114
|
+
let dotProduct = 0;
|
|
115
|
+
let normA = 0;
|
|
116
|
+
let normB = 0;
|
|
117
|
+
for (let i = 0; i < a.length; i++) {
|
|
118
|
+
dotProduct += a[i] * b[i];
|
|
119
|
+
normA += a[i] * a[i];
|
|
120
|
+
normB += b[i] * b[i];
|
|
121
|
+
}
|
|
122
|
+
const denom = Math.sqrt(normA) * Math.sqrt(normB);
|
|
123
|
+
return denom === 0 ? 0 : dotProduct / denom;
|
|
124
|
+
}
|
|
125
|
+
|
|
51
126
|
// src/catalogs/coco-classmap.ts
|
|
52
127
|
var COCO_80_LABELS = [
|
|
53
128
|
{ id: "person", name: "Person" },
|
|
@@ -160,652 +235,24 @@ var COCO_TO_MACRO = {
|
|
|
160
235
|
},
|
|
161
236
|
preserveOriginal: true
|
|
162
237
|
};
|
|
163
|
-
|
|
164
|
-
// src/catalogs/object-detection-models.ts
|
|
165
|
-
var HF_REPO2 = "camstack/camstack-models";
|
|
166
|
-
var OBJECT_DETECTION_MODELS = [
|
|
167
|
-
{
|
|
168
|
-
id: "yolov8n",
|
|
169
|
-
name: "YOLOv8 Nano",
|
|
170
|
-
description: "YOLOv8 Nano \u2014 fastest, smallest object detection model",
|
|
171
|
-
inputSize: { width: 640, height: 640 },
|
|
172
|
-
labels: COCO_80_LABELS,
|
|
173
|
-
formats: {
|
|
174
|
-
onnx: {
|
|
175
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/onnx/camstack-yolov8n.onnx"),
|
|
176
|
-
sizeMB: 12
|
|
177
|
-
},
|
|
178
|
-
coreml: {
|
|
179
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/coreml/camstack-yolov8n.mlpackage"),
|
|
180
|
-
sizeMB: 6
|
|
181
|
-
},
|
|
182
|
-
openvino: {
|
|
183
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/openvino/camstack-yolov8n.xml"),
|
|
184
|
-
sizeMB: 7
|
|
185
|
-
},
|
|
186
|
-
tflite: {
|
|
187
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/tflite/camstack-yolov8n_float32.tflite"),
|
|
188
|
-
sizeMB: 12
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
id: "yolov8s",
|
|
194
|
-
name: "YOLOv8 Small",
|
|
195
|
-
description: "YOLOv8 Small \u2014 balanced speed and accuracy",
|
|
196
|
-
inputSize: { width: 640, height: 640 },
|
|
197
|
-
labels: COCO_80_LABELS,
|
|
198
|
-
formats: {
|
|
199
|
-
onnx: {
|
|
200
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/onnx/camstack-yolov8s.onnx"),
|
|
201
|
-
sizeMB: 43
|
|
202
|
-
},
|
|
203
|
-
coreml: {
|
|
204
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/coreml/camstack-yolov8s.mlpackage"),
|
|
205
|
-
sizeMB: 21
|
|
206
|
-
},
|
|
207
|
-
openvino: {
|
|
208
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/openvino/camstack-yolov8s.xml"),
|
|
209
|
-
sizeMB: 22
|
|
210
|
-
},
|
|
211
|
-
tflite: {
|
|
212
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/tflite/camstack-yolov8s_float32.tflite"),
|
|
213
|
-
sizeMB: 43
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
id: "yolov8m",
|
|
219
|
-
name: "YOLOv8 Medium",
|
|
220
|
-
description: "YOLOv8 Medium \u2014 higher accuracy, moderate size",
|
|
221
|
-
inputSize: { width: 640, height: 640 },
|
|
222
|
-
labels: COCO_80_LABELS,
|
|
223
|
-
formats: {
|
|
224
|
-
onnx: {
|
|
225
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/onnx/camstack-yolov8m.onnx"),
|
|
226
|
-
sizeMB: 99
|
|
227
|
-
},
|
|
228
|
-
coreml: {
|
|
229
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/coreml/camstack-yolov8m.mlpackage"),
|
|
230
|
-
sizeMB: 49
|
|
231
|
-
},
|
|
232
|
-
openvino: {
|
|
233
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/openvino/camstack-yolov8m.xml"),
|
|
234
|
-
sizeMB: 50
|
|
235
|
-
},
|
|
236
|
-
tflite: {
|
|
237
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov8/tflite/camstack-yolov8m_float32.tflite"),
|
|
238
|
-
sizeMB: 99
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
},
|
|
242
|
-
{
|
|
243
|
-
id: "yolov9t",
|
|
244
|
-
name: "YOLOv9 Tiny",
|
|
245
|
-
description: "YOLOv9 Tiny \u2014 ultra-lightweight next-gen detector",
|
|
246
|
-
inputSize: { width: 640, height: 640 },
|
|
247
|
-
labels: COCO_80_LABELS,
|
|
248
|
-
formats: {
|
|
249
|
-
onnx: {
|
|
250
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/onnx/camstack-yolov9t.onnx"),
|
|
251
|
-
sizeMB: 8
|
|
252
|
-
},
|
|
253
|
-
coreml: {
|
|
254
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/coreml/camstack-yolov9t.mlpackage"),
|
|
255
|
-
sizeMB: 4
|
|
256
|
-
},
|
|
257
|
-
openvino: {
|
|
258
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/openvino/camstack-yolov9t.xml"),
|
|
259
|
-
sizeMB: 6
|
|
260
|
-
},
|
|
261
|
-
tflite: {
|
|
262
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/tflite/camstack-yolov9t_float32.tflite"),
|
|
263
|
-
sizeMB: 8
|
|
264
|
-
}
|
|
265
|
-
}
|
|
266
|
-
},
|
|
267
|
-
{
|
|
268
|
-
id: "yolov9s",
|
|
269
|
-
name: "YOLOv9 Small",
|
|
270
|
-
description: "YOLOv9 Small \u2014 improved efficiency over YOLOv8s",
|
|
271
|
-
inputSize: { width: 640, height: 640 },
|
|
272
|
-
labels: COCO_80_LABELS,
|
|
273
|
-
formats: {
|
|
274
|
-
onnx: {
|
|
275
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/onnx/camstack-yolov9s.onnx"),
|
|
276
|
-
sizeMB: 28
|
|
277
|
-
},
|
|
278
|
-
coreml: {
|
|
279
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/coreml/camstack-yolov9s.mlpackage"),
|
|
280
|
-
sizeMB: 14
|
|
281
|
-
},
|
|
282
|
-
openvino: {
|
|
283
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/openvino/camstack-yolov9s.xml"),
|
|
284
|
-
sizeMB: 16
|
|
285
|
-
},
|
|
286
|
-
tflite: {
|
|
287
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/tflite/camstack-yolov9s_float32.tflite"),
|
|
288
|
-
sizeMB: 28
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
id: "yolov9c",
|
|
294
|
-
name: "YOLOv9 C",
|
|
295
|
-
description: "YOLOv9 C \u2014 high-accuracy compact model",
|
|
296
|
-
inputSize: { width: 640, height: 640 },
|
|
297
|
-
labels: COCO_80_LABELS,
|
|
298
|
-
formats: {
|
|
299
|
-
onnx: {
|
|
300
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/onnx/camstack-yolov9c.onnx"),
|
|
301
|
-
sizeMB: 97
|
|
302
|
-
},
|
|
303
|
-
coreml: {
|
|
304
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/coreml/camstack-yolov9c.mlpackage"),
|
|
305
|
-
sizeMB: 48
|
|
306
|
-
},
|
|
307
|
-
openvino: {
|
|
308
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/openvino/camstack-yolov9c.xml"),
|
|
309
|
-
sizeMB: 49
|
|
310
|
-
},
|
|
311
|
-
tflite: {
|
|
312
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolov9/tflite/camstack-yolov9c_float32.tflite"),
|
|
313
|
-
sizeMB: 97
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
},
|
|
317
|
-
// YOLO11 — no CoreML (coremltools incompatible)
|
|
318
|
-
{
|
|
319
|
-
id: "yolo11n",
|
|
320
|
-
name: "YOLO11 Nano",
|
|
321
|
-
description: "YOLO11 Nano \u2014 fastest, smallest YOLO11 detection model",
|
|
322
|
-
inputSize: { width: 640, height: 640 },
|
|
323
|
-
labels: COCO_80_LABELS,
|
|
324
|
-
formats: {
|
|
325
|
-
onnx: {
|
|
326
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/onnx/camstack-yolo11n.onnx"),
|
|
327
|
-
sizeMB: 10
|
|
328
|
-
},
|
|
329
|
-
openvino: {
|
|
330
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/openvino/camstack-yolo11n.xml"),
|
|
331
|
-
sizeMB: 5.4
|
|
332
|
-
},
|
|
333
|
-
tflite: {
|
|
334
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/tflite/camstack-yolo11n_float32.tflite"),
|
|
335
|
-
sizeMB: 10
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
id: "yolo11s",
|
|
341
|
-
name: "YOLO11 Small",
|
|
342
|
-
description: "YOLO11 Small \u2014 balanced speed and accuracy",
|
|
343
|
-
inputSize: { width: 640, height: 640 },
|
|
344
|
-
labels: COCO_80_LABELS,
|
|
345
|
-
formats: {
|
|
346
|
-
onnx: {
|
|
347
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/onnx/camstack-yolo11s.onnx"),
|
|
348
|
-
sizeMB: 36
|
|
349
|
-
},
|
|
350
|
-
openvino: {
|
|
351
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/openvino/camstack-yolo11s.xml"),
|
|
352
|
-
sizeMB: 18
|
|
353
|
-
},
|
|
354
|
-
tflite: {
|
|
355
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/tflite/camstack-yolo11s_float32.tflite"),
|
|
356
|
-
sizeMB: 36
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
},
|
|
360
|
-
{
|
|
361
|
-
id: "yolo11m",
|
|
362
|
-
name: "YOLO11 Medium",
|
|
363
|
-
description: "YOLO11 Medium \u2014 higher accuracy, moderate size",
|
|
364
|
-
inputSize: { width: 640, height: 640 },
|
|
365
|
-
labels: COCO_80_LABELS,
|
|
366
|
-
formats: {
|
|
367
|
-
onnx: {
|
|
368
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/onnx/camstack-yolo11m.onnx"),
|
|
369
|
-
sizeMB: 77
|
|
370
|
-
},
|
|
371
|
-
openvino: {
|
|
372
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/openvino/camstack-yolo11m.xml"),
|
|
373
|
-
sizeMB: 39
|
|
374
|
-
},
|
|
375
|
-
tflite: {
|
|
376
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/tflite/camstack-yolo11m_float32.tflite"),
|
|
377
|
-
sizeMB: 77
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
id: "yolo11l",
|
|
383
|
-
name: "YOLO11 Large",
|
|
384
|
-
description: "YOLO11 Large \u2014 high-accuracy large model",
|
|
385
|
-
inputSize: { width: 640, height: 640 },
|
|
386
|
-
labels: COCO_80_LABELS,
|
|
387
|
-
formats: {
|
|
388
|
-
onnx: {
|
|
389
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/onnx/camstack-yolo11l.onnx"),
|
|
390
|
-
sizeMB: 97
|
|
391
|
-
},
|
|
392
|
-
openvino: {
|
|
393
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/openvino/camstack-yolo11l.xml"),
|
|
394
|
-
sizeMB: 49
|
|
395
|
-
},
|
|
396
|
-
tflite: {
|
|
397
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/tflite/camstack-yolo11l_float32.tflite"),
|
|
398
|
-
sizeMB: 97
|
|
399
|
-
}
|
|
400
|
-
}
|
|
401
|
-
},
|
|
402
|
-
{
|
|
403
|
-
id: "yolo11x",
|
|
404
|
-
name: "YOLO11 Extra-Large",
|
|
405
|
-
description: "YOLO11 Extra-Large \u2014 maximum accuracy",
|
|
406
|
-
inputSize: { width: 640, height: 640 },
|
|
407
|
-
labels: COCO_80_LABELS,
|
|
408
|
-
formats: {
|
|
409
|
-
onnx: {
|
|
410
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/onnx/camstack-yolo11x.onnx"),
|
|
411
|
-
sizeMB: 218
|
|
412
|
-
},
|
|
413
|
-
openvino: {
|
|
414
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/openvino/camstack-yolo11x.xml"),
|
|
415
|
-
sizeMB: 109
|
|
416
|
-
},
|
|
417
|
-
tflite: {
|
|
418
|
-
url: hfModelUrl(HF_REPO2, "objectDetection/yolo11/tflite/camstack-yolo11x_float32.tflite"),
|
|
419
|
-
sizeMB: 218
|
|
420
|
-
}
|
|
421
|
-
}
|
|
422
|
-
}
|
|
423
|
-
];
|
|
424
|
-
|
|
425
|
-
// src/catalogs/face-detection-models.ts
|
|
426
|
-
var HF_REPO3 = "camstack/camstack-models";
|
|
427
|
-
var FACE_LABELS = [
|
|
428
|
-
{ id: "face", name: "Face" }
|
|
429
|
-
];
|
|
430
|
-
var FACE_DETECTION_MODELS = [
|
|
431
|
-
{
|
|
432
|
-
id: "scrfd-500m",
|
|
433
|
-
name: "SCRFD 500M",
|
|
434
|
-
description: "SCRFD 500M \u2014 ultra-lightweight face detector",
|
|
435
|
-
inputSize: { width: 640, height: 640 },
|
|
436
|
-
labels: FACE_LABELS,
|
|
437
|
-
formats: {
|
|
438
|
-
onnx: {
|
|
439
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/onnx/camstack-scrfd-500m.onnx"),
|
|
440
|
-
sizeMB: 2.2
|
|
441
|
-
},
|
|
442
|
-
coreml: {
|
|
443
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/coreml/camstack-scrfd-500m.mlpackage"),
|
|
444
|
-
sizeMB: 1.2
|
|
445
|
-
},
|
|
446
|
-
openvino: {
|
|
447
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/openvino/camstack-scrfd-500m.xml"),
|
|
448
|
-
sizeMB: 1.3
|
|
449
|
-
}
|
|
450
|
-
}
|
|
451
|
-
},
|
|
452
|
-
{
|
|
453
|
-
id: "scrfd-2.5g",
|
|
454
|
-
name: "SCRFD 2.5G",
|
|
455
|
-
description: "SCRFD 2.5G \u2014 balanced face detection model",
|
|
456
|
-
inputSize: { width: 640, height: 640 },
|
|
457
|
-
labels: FACE_LABELS,
|
|
458
|
-
formats: {
|
|
459
|
-
onnx: {
|
|
460
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
|
|
461
|
-
sizeMB: 3.1
|
|
462
|
-
},
|
|
463
|
-
coreml: {
|
|
464
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
|
|
465
|
-
sizeMB: 1.7
|
|
466
|
-
},
|
|
467
|
-
openvino: {
|
|
468
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"),
|
|
469
|
-
sizeMB: 1.8
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
id: "scrfd-10g",
|
|
475
|
-
name: "SCRFD 10G",
|
|
476
|
-
description: "SCRFD 10G \u2014 high-accuracy face detector",
|
|
477
|
-
inputSize: { width: 640, height: 640 },
|
|
478
|
-
labels: FACE_LABELS,
|
|
479
|
-
formats: {
|
|
480
|
-
onnx: {
|
|
481
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/onnx/camstack-scrfd-10g.onnx"),
|
|
482
|
-
sizeMB: 16
|
|
483
|
-
},
|
|
484
|
-
coreml: {
|
|
485
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/coreml/camstack-scrfd-10g.mlpackage"),
|
|
486
|
-
sizeMB: 8.2
|
|
487
|
-
},
|
|
488
|
-
openvino: {
|
|
489
|
-
url: hfModelUrl(HF_REPO3, "faceDetection/scrfd/openvino/camstack-scrfd-10g.xml"),
|
|
490
|
-
sizeMB: 8.3
|
|
491
|
-
}
|
|
492
|
-
}
|
|
493
|
-
}
|
|
494
|
-
];
|
|
495
|
-
|
|
496
|
-
// src/catalogs/face-recognition-models.ts
|
|
497
|
-
var HF_REPO4 = "camstack/camstack-models";
|
|
498
|
-
var FACE_EMBEDDING_LABELS = [
|
|
499
|
-
{ id: "embedding", name: "Face Embedding" }
|
|
500
|
-
];
|
|
501
|
-
var FACE_RECOGNITION_MODELS = [
|
|
502
|
-
{
|
|
503
|
-
id: "arcface-r100",
|
|
504
|
-
name: "ArcFace R100",
|
|
505
|
-
description: "ArcFace ResNet-100 \u2014 high-accuracy face recognition embeddings",
|
|
506
|
-
inputSize: { width: 112, height: 112 },
|
|
507
|
-
inputLayout: "nhwc",
|
|
508
|
-
labels: FACE_EMBEDDING_LABELS,
|
|
509
|
-
formats: {
|
|
510
|
-
onnx: {
|
|
511
|
-
url: hfModelUrl(HF_REPO4, "faceRecognition/arcface/onnx/camstack-arcface-arcface.onnx"),
|
|
512
|
-
sizeMB: 130
|
|
513
|
-
},
|
|
514
|
-
coreml: {
|
|
515
|
-
url: hfModelUrl(HF_REPO4, "faceRecognition/arcface/coreml/camstack-arcface-r100.mlpackage"),
|
|
516
|
-
sizeMB: 65
|
|
517
|
-
},
|
|
518
|
-
openvino: {
|
|
519
|
-
url: hfModelUrl(HF_REPO4, "faceRecognition/arcface/openvino/camstack-arcface-r100.xml"),
|
|
520
|
-
sizeMB: 65
|
|
521
|
-
}
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
];
|
|
525
|
-
|
|
526
|
-
// src/catalogs/plate-detection-models.ts
|
|
527
|
-
var HF_REPO5 = "camstack/camstack-models";
|
|
528
|
-
var PLATE_LABELS = [
|
|
529
|
-
{ id: "plate", name: "License Plate" }
|
|
530
|
-
];
|
|
531
|
-
var PLATE_DETECTION_MODELS = [
|
|
532
|
-
{
|
|
533
|
-
id: "yolov8n-plate",
|
|
534
|
-
name: "YOLOv8 Nano \u2014 License Plate",
|
|
535
|
-
description: "YOLOv8 Nano fine-tuned for license plate detection",
|
|
536
|
-
inputSize: { width: 640, height: 640 },
|
|
537
|
-
labels: PLATE_LABELS,
|
|
538
|
-
formats: {
|
|
539
|
-
onnx: {
|
|
540
|
-
url: hfModelUrl(HF_REPO5, "plateDetection/yolov8-plate/onnx/camstack-yolov8n-plate.onnx"),
|
|
541
|
-
sizeMB: 12
|
|
542
|
-
},
|
|
543
|
-
coreml: {
|
|
544
|
-
url: hfModelUrl(HF_REPO5, "plateDetection/yolov8-plate/coreml/camstack-yolov8n-plate.mlpackage"),
|
|
545
|
-
sizeMB: 5.9
|
|
546
|
-
},
|
|
547
|
-
openvino: {
|
|
548
|
-
url: hfModelUrl(HF_REPO5, "plateDetection/yolov8-plate/openvino/camstack-yolov8n-plate.xml"),
|
|
549
|
-
sizeMB: 6.1
|
|
550
|
-
},
|
|
551
|
-
tflite: {
|
|
552
|
-
url: hfModelUrl(HF_REPO5, "plateDetection/yolov8-plate/tflite/camstack-yolov8n-plate_float32.tflite"),
|
|
553
|
-
sizeMB: 12
|
|
554
|
-
}
|
|
555
|
-
}
|
|
556
|
-
}
|
|
557
|
-
];
|
|
558
|
-
|
|
559
|
-
// src/catalogs/plate-recognition-models.ts
|
|
560
|
-
var HF_REPO6 = "camstack/camstack-models";
|
|
561
|
-
var PLATE_TEXT_LABELS = [
|
|
562
|
-
{ id: "text", name: "Plate Text" }
|
|
563
|
-
];
|
|
564
|
-
var PLATE_RECOGNITION_MODELS = [
|
|
565
|
-
{
|
|
566
|
-
id: "paddleocr-latin",
|
|
567
|
-
name: "PaddleOCR Latin",
|
|
568
|
-
description: "PaddleOCR recognition model for Latin-script license plates",
|
|
569
|
-
inputSize: { width: 320, height: 48 },
|
|
570
|
-
labels: PLATE_TEXT_LABELS,
|
|
571
|
-
formats: {
|
|
572
|
-
onnx: {
|
|
573
|
-
url: hfModelUrl(HF_REPO6, "plateRecognition/paddleocr/onnx/camstack-paddleocr-latin-rec.onnx"),
|
|
574
|
-
sizeMB: 7.5
|
|
575
|
-
},
|
|
576
|
-
openvino: {
|
|
577
|
-
url: hfModelUrl(HF_REPO6, "plateRecognition/paddleocr/openvino/camstack-paddleocr-latin.xml"),
|
|
578
|
-
sizeMB: 4
|
|
579
|
-
}
|
|
580
|
-
}
|
|
581
|
-
},
|
|
582
|
-
{
|
|
583
|
-
id: "paddleocr-en",
|
|
584
|
-
name: "PaddleOCR English",
|
|
585
|
-
description: "PaddleOCR recognition model optimized for English license plates",
|
|
586
|
-
inputSize: { width: 320, height: 48 },
|
|
587
|
-
labels: PLATE_TEXT_LABELS,
|
|
588
|
-
formats: {
|
|
589
|
-
onnx: {
|
|
590
|
-
url: hfModelUrl(HF_REPO6, "plateRecognition/paddleocr/onnx/camstack-paddleocr-en-rec.onnx"),
|
|
591
|
-
sizeMB: 7.5
|
|
592
|
-
},
|
|
593
|
-
openvino: {
|
|
594
|
-
url: hfModelUrl(HF_REPO6, "plateRecognition/paddleocr/openvino/camstack-paddleocr-en.xml"),
|
|
595
|
-
sizeMB: 4
|
|
596
|
-
}
|
|
597
|
-
}
|
|
598
|
-
}
|
|
599
|
-
];
|
|
600
|
-
|
|
601
|
-
// src/catalogs/audio-classification-models.ts
|
|
602
|
-
var HF_REPO7 = "camstack/camstack-models";
|
|
603
|
-
var AUDIO_LABELS = [
|
|
604
|
-
{ id: "audio", name: "Audio Event" }
|
|
605
|
-
];
|
|
606
|
-
var AUDIO_CLASSIFICATION_MODELS = [
|
|
607
|
-
{
|
|
608
|
-
id: "yamnet",
|
|
609
|
-
name: "YAMNet",
|
|
610
|
-
description: "YAMNet \u2014 audio event classification from raw waveform",
|
|
611
|
-
inputSize: { width: 1, height: 16e3 },
|
|
612
|
-
labels: AUDIO_LABELS,
|
|
613
|
-
formats: {
|
|
614
|
-
onnx: {
|
|
615
|
-
url: hfModelUrl(HF_REPO7, "audioClassification/yamnet/onnx/camstack-yamnet.onnx"),
|
|
616
|
-
sizeMB: 15
|
|
617
|
-
},
|
|
618
|
-
openvino: {
|
|
619
|
-
url: hfModelUrl(HF_REPO7, "audioClassification/yamnet/openvino/camstack-yamnet.xml"),
|
|
620
|
-
sizeMB: 8
|
|
621
|
-
}
|
|
622
|
-
}
|
|
623
|
-
}
|
|
624
|
-
];
|
|
625
|
-
|
|
626
|
-
// src/catalogs/segmentation-models.ts
|
|
627
|
-
var HF_REPO8 = "camstack/camstack-models";
|
|
628
|
-
var SEGMENTATION_MODELS = [
|
|
629
|
-
// YOLO11-seg — no CoreML (coremltools incompatible)
|
|
630
|
-
{
|
|
631
|
-
id: "yolo11n-seg",
|
|
632
|
-
name: "YOLO11 Nano Segmentation",
|
|
633
|
-
description: "YOLO11 Nano \u2014 fastest, smallest YOLO11 instance segmentation model",
|
|
634
|
-
inputSize: { width: 640, height: 640 },
|
|
635
|
-
labels: COCO_80_LABELS,
|
|
636
|
-
formats: {
|
|
637
|
-
onnx: {
|
|
638
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolo11-seg/onnx/camstack-yolo11n-seg.onnx"),
|
|
639
|
-
sizeMB: 11
|
|
640
|
-
},
|
|
641
|
-
openvino: {
|
|
642
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolo11-seg/openvino/camstack-yolo11n-seg.xml"),
|
|
643
|
-
sizeMB: 6
|
|
644
|
-
}
|
|
645
|
-
}
|
|
646
|
-
},
|
|
647
|
-
{
|
|
648
|
-
id: "yolo11s-seg",
|
|
649
|
-
name: "YOLO11 Small Segmentation",
|
|
650
|
-
description: "YOLO11 Small \u2014 balanced speed and accuracy for instance segmentation",
|
|
651
|
-
inputSize: { width: 640, height: 640 },
|
|
652
|
-
labels: COCO_80_LABELS,
|
|
653
|
-
formats: {
|
|
654
|
-
onnx: {
|
|
655
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolo11-seg/onnx/camstack-yolo11s-seg.onnx"),
|
|
656
|
-
sizeMB: 39
|
|
657
|
-
},
|
|
658
|
-
openvino: {
|
|
659
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolo11-seg/openvino/camstack-yolo11s-seg.xml"),
|
|
660
|
-
sizeMB: 20
|
|
661
|
-
}
|
|
662
|
-
}
|
|
663
|
-
},
|
|
664
|
-
{
|
|
665
|
-
id: "yolo11m-seg",
|
|
666
|
-
name: "YOLO11 Medium Segmentation",
|
|
667
|
-
description: "YOLO11 Medium \u2014 higher accuracy instance segmentation",
|
|
668
|
-
inputSize: { width: 640, height: 640 },
|
|
669
|
-
labels: COCO_80_LABELS,
|
|
670
|
-
formats: {
|
|
671
|
-
onnx: {
|
|
672
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolo11-seg/onnx/camstack-yolo11m-seg.onnx"),
|
|
673
|
-
sizeMB: 86
|
|
674
|
-
},
|
|
675
|
-
openvino: {
|
|
676
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolo11-seg/openvino/camstack-yolo11m-seg.xml"),
|
|
677
|
-
sizeMB: 43
|
|
678
|
-
}
|
|
679
|
-
}
|
|
680
|
-
},
|
|
681
|
-
// YOLOv8-seg — CoreML available
|
|
682
|
-
{
|
|
683
|
-
id: "yolov8n-seg",
|
|
684
|
-
name: "YOLOv8 Nano Segmentation",
|
|
685
|
-
description: "YOLOv8 Nano \u2014 fastest, smallest YOLOv8 instance segmentation model",
|
|
686
|
-
inputSize: { width: 640, height: 640 },
|
|
687
|
-
labels: COCO_80_LABELS,
|
|
688
|
-
formats: {
|
|
689
|
-
onnx: {
|
|
690
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/onnx/camstack-yolov8n-seg.onnx"),
|
|
691
|
-
sizeMB: 13
|
|
692
|
-
},
|
|
693
|
-
coreml: {
|
|
694
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/coreml/camstack-yolov8n-seg.mlpackage"),
|
|
695
|
-
sizeMB: 7
|
|
696
|
-
},
|
|
697
|
-
openvino: {
|
|
698
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/openvino/camstack-yolov8n-seg.xml"),
|
|
699
|
-
sizeMB: 7
|
|
700
|
-
}
|
|
701
|
-
}
|
|
702
|
-
},
|
|
703
|
-
{
|
|
704
|
-
id: "yolov8s-seg",
|
|
705
|
-
name: "YOLOv8 Small Segmentation",
|
|
706
|
-
description: "YOLOv8 Small \u2014 balanced speed and accuracy for instance segmentation",
|
|
707
|
-
inputSize: { width: 640, height: 640 },
|
|
708
|
-
labels: COCO_80_LABELS,
|
|
709
|
-
formats: {
|
|
710
|
-
onnx: {
|
|
711
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/onnx/camstack-yolov8s-seg.onnx"),
|
|
712
|
-
sizeMB: 45
|
|
713
|
-
},
|
|
714
|
-
coreml: {
|
|
715
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/coreml/camstack-yolov8s-seg.mlpackage"),
|
|
716
|
-
sizeMB: 23
|
|
717
|
-
},
|
|
718
|
-
openvino: {
|
|
719
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/openvino/camstack-yolov8s-seg.xml"),
|
|
720
|
-
sizeMB: 23
|
|
721
|
-
}
|
|
722
|
-
}
|
|
723
|
-
},
|
|
724
|
-
{
|
|
725
|
-
id: "yolov8m-seg",
|
|
726
|
-
name: "YOLOv8 Medium Segmentation",
|
|
727
|
-
description: "YOLOv8 Medium \u2014 higher accuracy instance segmentation",
|
|
728
|
-
inputSize: { width: 640, height: 640 },
|
|
729
|
-
labels: COCO_80_LABELS,
|
|
730
|
-
formats: {
|
|
731
|
-
onnx: {
|
|
732
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/onnx/camstack-yolov8m-seg.onnx"),
|
|
733
|
-
sizeMB: 104
|
|
734
|
-
},
|
|
735
|
-
coreml: {
|
|
736
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/coreml/camstack-yolov8m-seg.mlpackage"),
|
|
737
|
-
sizeMB: 52
|
|
738
|
-
},
|
|
739
|
-
openvino: {
|
|
740
|
-
url: hfModelUrl(HF_REPO8, "segmentation/yolov8-seg/openvino/camstack-yolov8m-seg.xml"),
|
|
741
|
-
sizeMB: 53
|
|
742
|
-
}
|
|
743
|
-
}
|
|
744
|
-
}
|
|
745
|
-
];
|
|
746
|
-
|
|
747
|
-
// src/catalogs/animal-classification-models.ts
|
|
748
|
-
var hf = (path) => hfModelUrl(HF_REPO, path);
|
|
749
|
-
var BIRD_LABEL = { id: "species", name: "Bird Species" };
|
|
750
|
-
var ANIMAL_TYPE_LABEL = { id: "animal-type", name: "Animal Type" };
|
|
751
|
-
var BIRD_SPECIES_MODELS = [
|
|
752
|
-
{
|
|
753
|
-
id: "bird-species-525",
|
|
754
|
-
name: "Bird Species (525)",
|
|
755
|
-
description: "EfficientNet bird species classifier \u2014 525 species, MIT license",
|
|
756
|
-
inputSize: { width: 224, height: 224 },
|
|
757
|
-
inputNormalization: "imagenet",
|
|
758
|
-
labels: [BIRD_LABEL],
|
|
759
|
-
formats: {
|
|
760
|
-
onnx: { url: hf("animalClassification/bird-species/onnx/camstack-bird-species-525.onnx"), sizeMB: 32 }
|
|
761
|
-
}
|
|
762
|
-
}
|
|
763
|
-
];
|
|
764
|
-
var BIRD_NABIRDS_MODELS = [
|
|
765
|
-
{
|
|
766
|
-
id: "bird-nabirds-404",
|
|
767
|
-
name: "NABirds (404 species)",
|
|
768
|
-
description: "ResNet50 trained on NABirds \u2014 404 North American species with ONNX, CoreML, OpenVINO",
|
|
769
|
-
inputSize: { width: 224, height: 224 },
|
|
770
|
-
inputNormalization: "imagenet",
|
|
771
|
-
labels: [{ id: "species", name: "Bird Species" }],
|
|
772
|
-
formats: {
|
|
773
|
-
onnx: { url: hf("animalClassification/bird-nabirds/onnx/camstack-bird-nabirds-404.onnx"), sizeMB: 93 },
|
|
774
|
-
coreml: { url: hf("animalClassification/bird-nabirds/coreml/camstack-bird-nabirds-404.mlpackage"), sizeMB: 47 },
|
|
775
|
-
openvino: { url: hf("animalClassification/bird-nabirds/openvino/camstack-bird-nabirds-404.xml"), sizeMB: 47 }
|
|
776
|
-
}
|
|
777
|
-
}
|
|
778
|
-
];
|
|
779
|
-
var ANIMAL_TYPE_MODELS = [
|
|
780
|
-
{
|
|
781
|
-
id: "animals-10",
|
|
782
|
-
name: "Animal Classifier (10)",
|
|
783
|
-
description: "ViT-based animal type classifier \u2014 cat, cow, dog, dolphin, eagle, panda, horse, monkey, sheep, spider",
|
|
784
|
-
inputSize: { width: 224, height: 224 },
|
|
785
|
-
inputNormalization: "imagenet",
|
|
786
|
-
labels: [ANIMAL_TYPE_LABEL],
|
|
787
|
-
formats: {
|
|
788
|
-
onnx: { url: hf("animalClassification/animals-10/onnx/camstack-animals-10.onnx"), sizeMB: 328 }
|
|
789
|
-
}
|
|
790
|
-
}
|
|
791
|
-
];
|
|
792
238
|
// Annotate the CommonJS export names for ESM import in node:
|
|
793
239
|
0 && (module.exports = {
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
BIRD_NABIRDS_MODELS,
|
|
797
|
-
BIRD_SPECIES_MODELS,
|
|
240
|
+
BINARY_FRAME_HEADER_SIZE,
|
|
241
|
+
BINARY_FRAME_TYPE,
|
|
798
242
|
COCO_80_LABELS,
|
|
799
243
|
COCO_TO_MACRO,
|
|
800
|
-
|
|
801
|
-
|
|
244
|
+
DEFAULT_FEATURES,
|
|
245
|
+
DEFAULT_LOCATION_SUBPATHS,
|
|
246
|
+
DEFAULT_RETENTION,
|
|
247
|
+
DETECTION_TYPES,
|
|
802
248
|
HF_BASE_URL,
|
|
803
249
|
HF_REPO,
|
|
804
250
|
MACRO_LABELS,
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
251
|
+
RECOGNITION_TYPES,
|
|
252
|
+
SUB_DETECTION_TYPES,
|
|
253
|
+
cosineSimilarity,
|
|
254
|
+
createAnalysisContext,
|
|
255
|
+
enrichContext,
|
|
809
256
|
hfModelUrl
|
|
810
257
|
});
|
|
811
258
|
//# sourceMappingURL=index.js.map
|