@camstack/addon-vision 0.1.1 → 0.1.3

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.
Files changed (111) hide show
  1. package/dist/addons/animal-classifier/index.js +999 -823
  2. package/dist/addons/animal-classifier/index.js.map +1 -1
  3. package/dist/addons/animal-classifier/index.mjs +242 -7
  4. package/dist/addons/animal-classifier/index.mjs.map +1 -1
  5. package/dist/addons/audio-classification/index.js +501 -379
  6. package/dist/addons/audio-classification/index.js.map +1 -1
  7. package/dist/addons/audio-classification/index.mjs +224 -4
  8. package/dist/addons/audio-classification/index.mjs.map +1 -1
  9. package/dist/addons/bird-global-classifier/index.js +1002 -826
  10. package/dist/addons/bird-global-classifier/index.js.map +1 -1
  11. package/dist/addons/bird-global-classifier/index.mjs +248 -7
  12. package/dist/addons/bird-global-classifier/index.mjs.map +1 -1
  13. package/dist/addons/bird-nabirds-classifier/index.js +1002 -826
  14. package/dist/addons/bird-nabirds-classifier/index.js.map +1 -1
  15. package/dist/addons/bird-nabirds-classifier/index.mjs +289 -7
  16. package/dist/addons/bird-nabirds-classifier/index.mjs.map +1 -1
  17. package/dist/addons/face-detection/index.js +1196 -935
  18. package/dist/addons/face-detection/index.js.map +1 -1
  19. package/dist/addons/face-detection/index.mjs +227 -7
  20. package/dist/addons/face-detection/index.mjs.map +1 -1
  21. package/dist/addons/face-recognition/index.js +1003 -808
  22. package/dist/addons/face-recognition/index.js.map +1 -1
  23. package/dist/addons/face-recognition/index.mjs +197 -6
  24. package/dist/addons/face-recognition/index.mjs.map +1 -1
  25. package/dist/addons/motion-detection/index.js +214 -111
  26. package/dist/addons/motion-detection/index.js.map +1 -1
  27. package/dist/addons/motion-detection/index.mjs +12 -9
  28. package/dist/addons/motion-detection/index.mjs.map +1 -1
  29. package/dist/addons/object-detection/index.js +1287 -1083
  30. package/dist/addons/object-detection/index.js.map +1 -1
  31. package/dist/addons/object-detection/index.mjs +373 -7
  32. package/dist/addons/object-detection/index.mjs.map +1 -1
  33. package/dist/addons/plate-detection/index.js +1075 -869
  34. package/dist/addons/plate-detection/index.js.map +1 -1
  35. package/dist/addons/plate-detection/index.mjs +230 -7
  36. package/dist/addons/plate-detection/index.mjs.map +1 -1
  37. package/dist/addons/plate-recognition/index.js +684 -506
  38. package/dist/addons/plate-recognition/index.js.map +1 -1
  39. package/dist/addons/plate-recognition/index.mjs +244 -5
  40. package/dist/addons/plate-recognition/index.mjs.map +1 -1
  41. package/dist/addons/segmentation-refiner/index.js +967 -791
  42. package/dist/addons/segmentation-refiner/index.js.map +1 -1
  43. package/dist/addons/segmentation-refiner/index.mjs +21 -17
  44. package/dist/addons/segmentation-refiner/index.mjs.map +1 -1
  45. package/dist/addons/vehicle-classifier/index.js +581 -411
  46. package/dist/addons/vehicle-classifier/index.js.map +1 -1
  47. package/dist/addons/vehicle-classifier/index.mjs +20 -16
  48. package/dist/addons/vehicle-classifier/index.mjs.map +1 -1
  49. package/dist/chunk-2YMA6QOV.mjs +193 -0
  50. package/dist/chunk-2YMA6QOV.mjs.map +1 -0
  51. package/dist/chunk-3IIFBJCD.mjs +45 -0
  52. package/dist/chunk-BS4DKYGN.mjs +48 -0
  53. package/dist/{chunk-7DYHXUPZ.mjs.map → chunk-BS4DKYGN.mjs.map} +1 -1
  54. package/dist/chunk-DE7I3VHO.mjs +106 -0
  55. package/dist/{chunk-KUO2BVFY.mjs.map → chunk-DE7I3VHO.mjs.map} +1 -1
  56. package/dist/chunk-F6D2OZ36.mjs +89 -0
  57. package/dist/chunk-F6D2OZ36.mjs.map +1 -0
  58. package/dist/chunk-GAOIFQDX.mjs +59 -0
  59. package/dist/chunk-GAOIFQDX.mjs.map +1 -0
  60. package/dist/chunk-HUIX2XVR.mjs +159 -0
  61. package/dist/chunk-HUIX2XVR.mjs.map +1 -0
  62. package/dist/chunk-K36R6HWY.mjs +51 -0
  63. package/dist/{chunk-XZ6ZMXXU.mjs.map → chunk-K36R6HWY.mjs.map} +1 -1
  64. package/dist/chunk-MBTAI3WE.mjs +78 -0
  65. package/dist/chunk-MBTAI3WE.mjs.map +1 -0
  66. package/dist/chunk-MGT6RUVX.mjs +423 -0
  67. package/dist/{chunk-BP7H4NFS.mjs.map → chunk-MGT6RUVX.mjs.map} +1 -1
  68. package/dist/chunk-PIFS7AIT.mjs +446 -0
  69. package/dist/chunk-PIFS7AIT.mjs.map +1 -0
  70. package/dist/chunk-WG66JYYW.mjs +116 -0
  71. package/dist/{chunk-22BHCDT5.mjs.map → chunk-WG66JYYW.mjs.map} +1 -1
  72. package/dist/chunk-XD7WGXHZ.mjs +82 -0
  73. package/dist/{chunk-DUN6XU3N.mjs.map → chunk-XD7WGXHZ.mjs.map} +1 -1
  74. package/dist/chunk-YYDM6V2F.mjs +113 -0
  75. package/dist/{chunk-BR2FPGOX.mjs.map → chunk-YYDM6V2F.mjs.map} +1 -1
  76. package/dist/chunk-ZK7P3TZN.mjs +286 -0
  77. package/dist/chunk-ZK7P3TZN.mjs.map +1 -0
  78. package/dist/index.js +4443 -3925
  79. package/dist/index.js.map +1 -1
  80. package/dist/index.mjs +2698 -250
  81. package/dist/index.mjs.map +1 -1
  82. package/package.json +2 -3
  83. package/dist/chunk-22BHCDT5.mjs +0 -101
  84. package/dist/chunk-6DJZZR64.mjs +0 -336
  85. package/dist/chunk-6DJZZR64.mjs.map +0 -1
  86. package/dist/chunk-7DYHXUPZ.mjs +0 -36
  87. package/dist/chunk-BJTO5JO5.mjs +0 -11
  88. package/dist/chunk-BP7H4NFS.mjs +0 -412
  89. package/dist/chunk-BR2FPGOX.mjs +0 -98
  90. package/dist/chunk-DNQNGDR4.mjs +0 -256
  91. package/dist/chunk-DNQNGDR4.mjs.map +0 -1
  92. package/dist/chunk-DUN6XU3N.mjs +0 -72
  93. package/dist/chunk-EPNWLSCG.mjs +0 -387
  94. package/dist/chunk-EPNWLSCG.mjs.map +0 -1
  95. package/dist/chunk-G32RCIUI.mjs +0 -645
  96. package/dist/chunk-G32RCIUI.mjs.map +0 -1
  97. package/dist/chunk-GR65KM6X.mjs +0 -289
  98. package/dist/chunk-GR65KM6X.mjs.map +0 -1
  99. package/dist/chunk-H7LMBTS5.mjs +0 -276
  100. package/dist/chunk-H7LMBTS5.mjs.map +0 -1
  101. package/dist/chunk-IK4XIQPC.mjs +0 -242
  102. package/dist/chunk-IK4XIQPC.mjs.map +0 -1
  103. package/dist/chunk-J6VNIIYX.mjs +0 -269
  104. package/dist/chunk-J6VNIIYX.mjs.map +0 -1
  105. package/dist/chunk-KUO2BVFY.mjs +0 -90
  106. package/dist/chunk-ML2JX43J.mjs +0 -248
  107. package/dist/chunk-ML2JX43J.mjs.map +0 -1
  108. package/dist/chunk-WUMV524J.mjs +0 -379
  109. package/dist/chunk-WUMV524J.mjs.map +0 -1
  110. package/dist/chunk-XZ6ZMXXU.mjs +0 -39
  111. /package/dist/{chunk-BJTO5JO5.mjs.map → chunk-3IIFBJCD.mjs.map} +0 -0
@@ -1,412 +0,0 @@
1
- // src/catalogs/object-detection-models.ts
2
- import { hfModelUrl, COCO_80_LABELS } from "@camstack/types";
3
- var HF_REPO = "camstack/camstack-models";
4
- var MLPACKAGE_FILES = [
5
- "Manifest.json",
6
- "Data/com.apple.CoreML/model.mlmodel",
7
- "Data/com.apple.CoreML/weights/weight.bin"
8
- ];
9
- var OBJECT_DETECTION_MODELS = [
10
- // ── YOLOv8 ──────────────────────────────────────────────────────
11
- {
12
- id: "yolov8n",
13
- name: "YOLOv8 Nano",
14
- description: "YOLOv8 Nano \u2014 fastest, smallest object detection model",
15
- inputSize: { width: 640, height: 640 },
16
- labels: COCO_80_LABELS,
17
- formats: {
18
- onnx: {
19
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8n.onnx"),
20
- sizeMB: 12
21
- },
22
- coreml: {
23
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8n.mlpackage"),
24
- sizeMB: 6,
25
- isDirectory: true,
26
- files: MLPACKAGE_FILES,
27
- runtimes: ["python"]
28
- },
29
- openvino: {
30
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8n.xml"),
31
- sizeMB: 7,
32
- runtimes: ["python"]
33
- },
34
- tflite: {
35
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/tflite/camstack-yolov8n_float32.tflite"),
36
- sizeMB: 12,
37
- runtimes: ["python"]
38
- }
39
- }
40
- },
41
- {
42
- id: "yolov8s",
43
- name: "YOLOv8 Small",
44
- description: "YOLOv8 Small \u2014 balanced speed and accuracy",
45
- inputSize: { width: 640, height: 640 },
46
- labels: COCO_80_LABELS,
47
- formats: {
48
- onnx: {
49
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8s.onnx"),
50
- sizeMB: 43
51
- },
52
- coreml: {
53
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8s.mlpackage"),
54
- sizeMB: 21,
55
- isDirectory: true,
56
- files: MLPACKAGE_FILES,
57
- runtimes: ["python"]
58
- },
59
- openvino: {
60
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8s.xml"),
61
- sizeMB: 22,
62
- runtimes: ["python"]
63
- },
64
- tflite: {
65
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/tflite/camstack-yolov8s_float32.tflite"),
66
- sizeMB: 43,
67
- runtimes: ["python"]
68
- }
69
- }
70
- },
71
- {
72
- id: "yolov8s-relu",
73
- name: "YOLOv8 Small ReLU",
74
- description: "YOLOv8 Small with ReLU activation \u2014 better hardware compatibility",
75
- inputSize: { width: 640, height: 640 },
76
- labels: COCO_80_LABELS,
77
- formats: {
78
- onnx: {
79
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8s-relu.onnx"),
80
- sizeMB: 43
81
- }
82
- }
83
- },
84
- {
85
- id: "yolov8m",
86
- name: "YOLOv8 Medium",
87
- description: "YOLOv8 Medium \u2014 higher accuracy, moderate size",
88
- inputSize: { width: 640, height: 640 },
89
- labels: COCO_80_LABELS,
90
- formats: {
91
- onnx: {
92
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8m.onnx"),
93
- sizeMB: 99
94
- },
95
- coreml: {
96
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8m.mlpackage"),
97
- sizeMB: 49,
98
- isDirectory: true,
99
- files: MLPACKAGE_FILES,
100
- runtimes: ["python"]
101
- },
102
- openvino: {
103
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8m.xml"),
104
- sizeMB: 50,
105
- runtimes: ["python"]
106
- },
107
- tflite: {
108
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/tflite/camstack-yolov8m_float32.tflite"),
109
- sizeMB: 99,
110
- runtimes: ["python"]
111
- }
112
- }
113
- },
114
- {
115
- id: "yolov8l",
116
- name: "YOLOv8 Large",
117
- description: "YOLOv8 Large \u2014 high-accuracy large model",
118
- inputSize: { width: 640, height: 640 },
119
- labels: COCO_80_LABELS,
120
- formats: {
121
- onnx: {
122
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8l.onnx"),
123
- sizeMB: 167
124
- },
125
- coreml: {
126
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8l.mlpackage"),
127
- sizeMB: 83,
128
- isDirectory: true,
129
- files: MLPACKAGE_FILES,
130
- runtimes: ["python"]
131
- },
132
- openvino: {
133
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8l.xml"),
134
- sizeMB: 84,
135
- runtimes: ["python"]
136
- }
137
- }
138
- },
139
- {
140
- id: "yolov8x",
141
- name: "YOLOv8 Extra-Large",
142
- description: "YOLOv8 Extra-Large \u2014 maximum accuracy",
143
- inputSize: { width: 640, height: 640 },
144
- labels: COCO_80_LABELS,
145
- formats: {
146
- onnx: {
147
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8x.onnx"),
148
- sizeMB: 260
149
- },
150
- coreml: {
151
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8x.mlpackage"),
152
- sizeMB: 130,
153
- isDirectory: true,
154
- files: MLPACKAGE_FILES,
155
- runtimes: ["python"]
156
- },
157
- openvino: {
158
- url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8x.xml"),
159
- sizeMB: 131,
160
- runtimes: ["python"]
161
- }
162
- }
163
- },
164
- // ── YOLOv9 ──────────────────────────────────────────────────────
165
- {
166
- id: "yolov9t",
167
- name: "YOLOv9 Tiny",
168
- description: "YOLOv9 Tiny \u2014 ultra-lightweight next-gen detector",
169
- inputSize: { width: 640, height: 640 },
170
- labels: COCO_80_LABELS,
171
- formats: {
172
- onnx: {
173
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/onnx/camstack-yolov9t.onnx"),
174
- sizeMB: 8
175
- },
176
- coreml: {
177
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/coreml/camstack-yolov9t.mlpackage"),
178
- sizeMB: 4,
179
- isDirectory: true,
180
- files: MLPACKAGE_FILES,
181
- runtimes: ["python"]
182
- },
183
- openvino: {
184
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/openvino/camstack-yolov9t.xml"),
185
- sizeMB: 6,
186
- runtimes: ["python"]
187
- },
188
- tflite: {
189
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/tflite/camstack-yolov9t_float32.tflite"),
190
- sizeMB: 8,
191
- runtimes: ["python"]
192
- }
193
- }
194
- },
195
- {
196
- id: "yolov9s",
197
- name: "YOLOv9 Small",
198
- description: "YOLOv9 Small \u2014 improved efficiency over YOLOv8s",
199
- inputSize: { width: 640, height: 640 },
200
- labels: COCO_80_LABELS,
201
- formats: {
202
- onnx: {
203
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/onnx/camstack-yolov9s.onnx"),
204
- sizeMB: 28
205
- },
206
- coreml: {
207
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/coreml/camstack-yolov9s.mlpackage"),
208
- sizeMB: 14,
209
- isDirectory: true,
210
- files: MLPACKAGE_FILES,
211
- runtimes: ["python"]
212
- },
213
- openvino: {
214
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/openvino/camstack-yolov9s.xml"),
215
- sizeMB: 16,
216
- runtimes: ["python"]
217
- },
218
- tflite: {
219
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/tflite/camstack-yolov9s_float32.tflite"),
220
- sizeMB: 28,
221
- runtimes: ["python"]
222
- }
223
- }
224
- },
225
- {
226
- id: "yolov9c",
227
- name: "YOLOv9 C",
228
- description: "YOLOv9 C \u2014 high-accuracy compact model",
229
- inputSize: { width: 640, height: 640 },
230
- labels: COCO_80_LABELS,
231
- formats: {
232
- onnx: {
233
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/onnx/camstack-yolov9c.onnx"),
234
- sizeMB: 97
235
- },
236
- coreml: {
237
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/coreml/camstack-yolov9c.mlpackage"),
238
- sizeMB: 48,
239
- isDirectory: true,
240
- files: MLPACKAGE_FILES,
241
- runtimes: ["python"]
242
- },
243
- openvino: {
244
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/openvino/camstack-yolov9c.xml"),
245
- sizeMB: 49,
246
- runtimes: ["python"]
247
- },
248
- tflite: {
249
- url: hfModelUrl(HF_REPO, "objectDetection/yolov9/tflite/camstack-yolov9c_float32.tflite"),
250
- sizeMB: 97,
251
- runtimes: ["python"]
252
- }
253
- }
254
- },
255
- // ── YOLO11 ────────────────────────────────────────────────────
256
- {
257
- id: "yolo11n",
258
- name: "YOLO11 Nano",
259
- description: "YOLO11 Nano \u2014 fastest, smallest YOLO11 detection model (mAP 39.5)",
260
- inputSize: { width: 640, height: 640 },
261
- labels: COCO_80_LABELS,
262
- formats: {
263
- onnx: {
264
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11n.onnx"),
265
- sizeMB: 10
266
- },
267
- coreml: {
268
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/coreml/camstack-yolo11n.mlpackage"),
269
- sizeMB: 5,
270
- isDirectory: true,
271
- files: MLPACKAGE_FILES,
272
- runtimes: ["python"]
273
- },
274
- openvino: {
275
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11n.xml"),
276
- sizeMB: 5,
277
- runtimes: ["python"]
278
- },
279
- tflite: {
280
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11n_float32.tflite"),
281
- sizeMB: 10,
282
- runtimes: ["python"]
283
- }
284
- }
285
- },
286
- {
287
- id: "yolo11s",
288
- name: "YOLO11 Small",
289
- description: "YOLO11 Small \u2014 balanced speed and accuracy (mAP 47.0)",
290
- inputSize: { width: 640, height: 640 },
291
- labels: COCO_80_LABELS,
292
- formats: {
293
- onnx: {
294
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11s.onnx"),
295
- sizeMB: 36
296
- },
297
- coreml: {
298
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/coreml/camstack-yolo11s.mlpackage"),
299
- sizeMB: 18,
300
- isDirectory: true,
301
- files: MLPACKAGE_FILES,
302
- runtimes: ["python"]
303
- },
304
- openvino: {
305
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11s.xml"),
306
- sizeMB: 18,
307
- runtimes: ["python"]
308
- },
309
- tflite: {
310
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11s_float32.tflite"),
311
- sizeMB: 36,
312
- runtimes: ["python"]
313
- }
314
- }
315
- },
316
- {
317
- id: "yolo11m",
318
- name: "YOLO11 Medium",
319
- description: "YOLO11 Medium \u2014 higher accuracy, moderate size (mAP 51.5)",
320
- inputSize: { width: 640, height: 640 },
321
- labels: COCO_80_LABELS,
322
- formats: {
323
- onnx: {
324
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11m.onnx"),
325
- sizeMB: 77
326
- },
327
- coreml: {
328
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/coreml/camstack-yolo11m.mlpackage"),
329
- sizeMB: 39,
330
- isDirectory: true,
331
- files: MLPACKAGE_FILES,
332
- runtimes: ["python"]
333
- },
334
- openvino: {
335
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11m.xml"),
336
- sizeMB: 39,
337
- runtimes: ["python"]
338
- },
339
- tflite: {
340
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11m_float32.tflite"),
341
- sizeMB: 77,
342
- runtimes: ["python"]
343
- }
344
- }
345
- },
346
- {
347
- id: "yolo11l",
348
- name: "YOLO11 Large",
349
- description: "YOLO11 Large \u2014 high-accuracy large model (mAP 53.4)",
350
- inputSize: { width: 640, height: 640 },
351
- labels: COCO_80_LABELS,
352
- formats: {
353
- onnx: {
354
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11l.onnx"),
355
- sizeMB: 97
356
- },
357
- coreml: {
358
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/coreml/camstack-yolo11l.mlpackage"),
359
- sizeMB: 49,
360
- isDirectory: true,
361
- files: MLPACKAGE_FILES,
362
- runtimes: ["python"]
363
- },
364
- openvino: {
365
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11l.xml"),
366
- sizeMB: 49,
367
- runtimes: ["python"]
368
- },
369
- tflite: {
370
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11l_float32.tflite"),
371
- sizeMB: 97,
372
- runtimes: ["python"]
373
- }
374
- }
375
- },
376
- {
377
- id: "yolo11x",
378
- name: "YOLO11 Extra-Large",
379
- description: "YOLO11 Extra-Large \u2014 maximum accuracy (mAP 54.7)",
380
- inputSize: { width: 640, height: 640 },
381
- labels: COCO_80_LABELS,
382
- formats: {
383
- onnx: {
384
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11x.onnx"),
385
- sizeMB: 218
386
- },
387
- coreml: {
388
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/coreml/camstack-yolo11x.mlpackage"),
389
- sizeMB: 109,
390
- isDirectory: true,
391
- files: MLPACKAGE_FILES,
392
- runtimes: ["python"]
393
- },
394
- openvino: {
395
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11x.xml"),
396
- sizeMB: 109,
397
- runtimes: ["python"]
398
- },
399
- tflite: {
400
- url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11x_float32.tflite"),
401
- sizeMB: 218,
402
- runtimes: ["python"]
403
- }
404
- }
405
- }
406
- ];
407
-
408
- export {
409
- MLPACKAGE_FILES,
410
- OBJECT_DETECTION_MODELS
411
- };
412
- //# sourceMappingURL=chunk-BP7H4NFS.mjs.map
@@ -1,98 +0,0 @@
1
- // src/addons/motion-detection/frame-diff.ts
2
- function detectMotion(current, previous, width, height, threshold, minArea) {
3
- const numPixels = width * height;
4
- const mask = new Uint8Array(numPixels);
5
- for (let i = 0; i < numPixels; i++) {
6
- mask[i] = Math.abs((current[i] ?? 0) - (previous[i] ?? 0)) > threshold ? 1 : 0;
7
- }
8
- const labels = new Int32Array(numPixels).fill(0);
9
- const parent = new Int32Array(numPixels + 1).fill(0);
10
- let nextLabel = 1;
11
- function findRoot(x) {
12
- while (parent[x] !== x) {
13
- parent[x] = parent[parent[x]];
14
- x = parent[x];
15
- }
16
- return x;
17
- }
18
- function union(a, b) {
19
- const ra = findRoot(a);
20
- const rb = findRoot(b);
21
- if (ra !== rb) parent[rb] = ra;
22
- return ra;
23
- }
24
- for (let i = 0; i <= numPixels; i++) {
25
- parent[i] = i;
26
- }
27
- for (let y = 0; y < height; y++) {
28
- for (let x = 0; x < width; x++) {
29
- const idx = y * width + x;
30
- if (!mask[idx]) continue;
31
- const above = y > 0 ? labels[(y - 1) * width + x] ?? 0 : 0;
32
- const left = x > 0 ? labels[y * width + (x - 1)] ?? 0 : 0;
33
- if (above === 0 && left === 0) {
34
- labels[idx] = nextLabel;
35
- parent[nextLabel] = nextLabel;
36
- nextLabel++;
37
- } else if (above !== 0 && left === 0) {
38
- labels[idx] = above;
39
- } else if (above === 0 && left !== 0) {
40
- labels[idx] = left;
41
- } else {
42
- labels[idx] = union(above, left);
43
- }
44
- }
45
- }
46
- for (let i = 0; i < numPixels; i++) {
47
- if (labels[i]) {
48
- labels[i] = findRoot(labels[i]);
49
- }
50
- }
51
- const bboxMap = /* @__PURE__ */ new Map();
52
- for (let y = 0; y < height; y++) {
53
- for (let x = 0; x < width; x++) {
54
- const idx = y * width + x;
55
- const label = labels[idx];
56
- if (!label) continue;
57
- const diff = Math.abs((current[idx] ?? 0) - (previous[idx] ?? 0));
58
- const existing = bboxMap.get(label);
59
- if (existing) {
60
- existing.minX = Math.min(existing.minX, x);
61
- existing.minY = Math.min(existing.minY, y);
62
- existing.maxX = Math.max(existing.maxX, x);
63
- existing.maxY = Math.max(existing.maxY, y);
64
- existing.count++;
65
- existing.intensitySum += diff;
66
- } else {
67
- bboxMap.set(label, {
68
- minX: x,
69
- minY: y,
70
- maxX: x,
71
- maxY: y,
72
- count: 1,
73
- intensitySum: diff
74
- });
75
- }
76
- }
77
- }
78
- const regions = [];
79
- for (const [, info] of bboxMap) {
80
- if (info.count < minArea) continue;
81
- regions.push({
82
- bbox: {
83
- x: info.minX,
84
- y: info.minY,
85
- w: info.maxX - info.minX + 1,
86
- h: info.maxY - info.minY + 1
87
- },
88
- pixelCount: info.count,
89
- intensity: info.intensitySum / info.count
90
- });
91
- }
92
- return regions;
93
- }
94
-
95
- export {
96
- detectMotion
97
- };
98
- //# sourceMappingURL=chunk-BR2FPGOX.mjs.map