@camstack/addon-vision 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/addons/animal-classifier/index.d.mts +6 -1
- package/dist/addons/animal-classifier/index.d.ts +6 -1
- package/dist/addons/animal-classifier/index.js +514 -49
- package/dist/addons/animal-classifier/index.js.map +1 -1
- package/dist/addons/animal-classifier/index.mjs +6 -4
- package/dist/addons/audio-classification/index.d.mts +6 -1
- package/dist/addons/audio-classification/index.d.ts +6 -1
- package/dist/addons/audio-classification/index.js +87 -26
- package/dist/addons/audio-classification/index.js.map +1 -1
- package/dist/addons/audio-classification/index.mjs +3 -2
- package/dist/addons/bird-global-classifier/index.d.mts +6 -1
- package/dist/addons/bird-global-classifier/index.d.ts +6 -1
- package/dist/addons/bird-global-classifier/index.js +515 -50
- package/dist/addons/bird-global-classifier/index.js.map +1 -1
- package/dist/addons/bird-global-classifier/index.mjs +6 -4
- package/dist/addons/bird-nabirds-classifier/index.d.mts +6 -1
- package/dist/addons/bird-nabirds-classifier/index.d.ts +6 -1
- package/dist/addons/bird-nabirds-classifier/index.js +524 -60
- package/dist/addons/bird-nabirds-classifier/index.js.map +1 -1
- package/dist/addons/bird-nabirds-classifier/index.mjs +6 -4
- package/dist/addons/face-detection/index.d.mts +6 -1
- package/dist/addons/face-detection/index.d.ts +6 -1
- package/dist/addons/face-detection/index.js +539 -39
- package/dist/addons/face-detection/index.js.map +1 -1
- package/dist/addons/face-detection/index.mjs +5 -3
- package/dist/addons/face-recognition/index.d.mts +6 -1
- package/dist/addons/face-recognition/index.d.ts +6 -1
- package/dist/addons/face-recognition/index.js +488 -33
- package/dist/addons/face-recognition/index.js.map +1 -1
- package/dist/addons/face-recognition/index.mjs +5 -3
- package/dist/addons/motion-detection/index.d.mts +3 -1
- package/dist/addons/motion-detection/index.d.ts +3 -1
- package/dist/addons/motion-detection/index.js +11 -3
- package/dist/addons/motion-detection/index.js.map +1 -1
- package/dist/addons/motion-detection/index.mjs +140 -3
- package/dist/addons/motion-detection/index.mjs.map +1 -1
- package/dist/addons/object-detection/index.d.mts +6 -1
- package/dist/addons/object-detection/index.d.ts +6 -1
- package/dist/addons/object-detection/index.js +370 -72
- package/dist/addons/object-detection/index.js.map +1 -1
- package/dist/addons/object-detection/index.mjs +5 -3
- package/dist/addons/plate-detection/index.d.mts +6 -1
- package/dist/addons/plate-detection/index.d.ts +6 -1
- package/dist/addons/plate-detection/index.js +532 -31
- package/dist/addons/plate-detection/index.js.map +1 -1
- package/dist/addons/plate-detection/index.mjs +5 -3
- package/dist/addons/plate-recognition/index.d.mts +7 -1
- package/dist/addons/plate-recognition/index.d.ts +7 -1
- package/dist/addons/plate-recognition/index.js +177 -44
- package/dist/addons/plate-recognition/index.js.map +1 -1
- package/dist/addons/plate-recognition/index.mjs +4 -3
- package/dist/addons/segmentation-refiner/index.d.mts +30 -0
- package/dist/addons/segmentation-refiner/index.d.ts +30 -0
- package/dist/addons/segmentation-refiner/index.js +1049 -0
- package/dist/addons/segmentation-refiner/index.js.map +1 -0
- package/dist/addons/segmentation-refiner/index.mjs +209 -0
- package/dist/addons/segmentation-refiner/index.mjs.map +1 -0
- package/dist/addons/vehicle-classifier/index.d.mts +31 -0
- package/dist/addons/vehicle-classifier/index.d.ts +31 -0
- package/dist/addons/vehicle-classifier/index.js +689 -0
- package/dist/addons/vehicle-classifier/index.js.map +1 -0
- package/dist/addons/vehicle-classifier/index.mjs +250 -0
- package/dist/addons/vehicle-classifier/index.mjs.map +1 -0
- package/dist/{chunk-6OR5TE7A.mjs → chunk-22BHCDT5.mjs} +2 -2
- package/dist/chunk-22BHCDT5.mjs.map +1 -0
- package/dist/{chunk-LPI42WL6.mjs → chunk-6DJZZR64.mjs} +24 -12
- package/dist/chunk-6DJZZR64.mjs.map +1 -0
- package/dist/chunk-7DYHXUPZ.mjs +36 -0
- package/dist/chunk-7DYHXUPZ.mjs.map +1 -0
- package/dist/chunk-BJTO5JO5.mjs +11 -0
- package/dist/chunk-BP7H4NFS.mjs +412 -0
- package/dist/chunk-BP7H4NFS.mjs.map +1 -0
- package/dist/chunk-BR2FPGOX.mjs +98 -0
- package/dist/chunk-BR2FPGOX.mjs.map +1 -0
- package/dist/{chunk-B3R66MPF.mjs → chunk-DNQNGDR4.mjs} +58 -21
- package/dist/chunk-DNQNGDR4.mjs.map +1 -0
- package/dist/{chunk-ISOIDU4U.mjs → chunk-DUN6XU3N.mjs} +23 -5
- package/dist/chunk-DUN6XU3N.mjs.map +1 -0
- package/dist/{chunk-MEVASN3P.mjs → chunk-EPNWLSCG.mjs} +104 -22
- package/dist/chunk-EPNWLSCG.mjs.map +1 -0
- package/dist/{chunk-AYBFB7ID.mjs → chunk-G32RCIUI.mjs} +200 -318
- package/dist/chunk-G32RCIUI.mjs.map +1 -0
- package/dist/{chunk-3MQFUDRU.mjs → chunk-GR65KM6X.mjs} +76 -47
- package/dist/chunk-GR65KM6X.mjs.map +1 -0
- package/dist/{chunk-5AIQSN32.mjs → chunk-H7LMBTS5.mjs} +66 -17
- package/dist/chunk-H7LMBTS5.mjs.map +1 -0
- package/dist/{chunk-J4WRYHHY.mjs → chunk-IK4XIQPC.mjs} +66 -36
- package/dist/chunk-IK4XIQPC.mjs.map +1 -0
- package/dist/{chunk-5JJZGKL7.mjs → chunk-J6VNIIYX.mjs} +102 -19
- package/dist/chunk-J6VNIIYX.mjs.map +1 -0
- package/dist/{chunk-Q3SQOYG6.mjs → chunk-ML2JX43J.mjs} +67 -37
- package/dist/chunk-ML2JX43J.mjs.map +1 -0
- package/dist/{chunk-PDSHDDPV.mjs → chunk-WUMV524J.mjs} +159 -35
- package/dist/chunk-WUMV524J.mjs.map +1 -0
- package/dist/chunk-XZ6ZMXXU.mjs +39 -0
- package/dist/chunk-XZ6ZMXXU.mjs.map +1 -0
- package/dist/index.d.mts +17 -5
- package/dist/index.d.ts +17 -5
- package/dist/index.js +1344 -550
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +191 -20
- package/dist/index.mjs.map +1 -1
- package/package.json +95 -18
- package/python/coreml_inference.py +61 -18
- package/python/openvino_inference.py +12 -4
- package/python/pytorch_inference.py +12 -4
- package/dist/addons/camera-native-detection/index.d.mts +0 -32
- package/dist/addons/camera-native-detection/index.d.ts +0 -32
- package/dist/addons/camera-native-detection/index.js +0 -99
- package/dist/addons/camera-native-detection/index.js.map +0 -1
- package/dist/addons/camera-native-detection/index.mjs +0 -7
- package/dist/chunk-3MQFUDRU.mjs.map +0 -1
- package/dist/chunk-5AIQSN32.mjs.map +0 -1
- package/dist/chunk-5JJZGKL7.mjs.map +0 -1
- package/dist/chunk-6OR5TE7A.mjs.map +0 -1
- package/dist/chunk-AYBFB7ID.mjs.map +0 -1
- package/dist/chunk-B3R66MPF.mjs.map +0 -1
- package/dist/chunk-DTOAB2CE.mjs +0 -79
- package/dist/chunk-DTOAB2CE.mjs.map +0 -1
- package/dist/chunk-ISOIDU4U.mjs.map +0 -1
- package/dist/chunk-J4WRYHHY.mjs.map +0 -1
- package/dist/chunk-LPI42WL6.mjs.map +0 -1
- package/dist/chunk-MEVASN3P.mjs.map +0 -1
- package/dist/chunk-PDSHDDPV.mjs.map +0 -1
- package/dist/chunk-Q3SQOYG6.mjs.map +0 -1
- package/dist/chunk-QIMDG34B.mjs +0 -229
- package/dist/chunk-QIMDG34B.mjs.map +0 -1
- package/python/__pycache__/coreml_inference.cpython-313.pyc +0 -0
- package/python/__pycache__/openvino_inference.cpython-313.pyc +0 -0
- package/python/__pycache__/pytorch_inference.cpython-313.pyc +0 -0
- /package/dist/{addons/camera-native-detection/index.mjs.map → chunk-BJTO5JO5.mjs.map} +0 -0
|
@@ -2,294 +2,44 @@ import {
|
|
|
2
2
|
nms,
|
|
3
3
|
yoloPostprocess
|
|
4
4
|
} from "./chunk-KUO2BVFY.mjs";
|
|
5
|
+
import {
|
|
6
|
+
MLPACKAGE_FILES,
|
|
7
|
+
OBJECT_DETECTION_MODELS
|
|
8
|
+
} from "./chunk-BP7H4NFS.mjs";
|
|
5
9
|
import {
|
|
6
10
|
letterbox
|
|
7
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-22BHCDT5.mjs";
|
|
8
12
|
import {
|
|
9
13
|
resolveEngine
|
|
10
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-6DJZZR64.mjs";
|
|
11
15
|
|
|
12
|
-
// src/catalogs/
|
|
16
|
+
// src/catalogs/segmentation-models.ts
|
|
13
17
|
import { hfModelUrl, COCO_80_LABELS } from "@camstack/types";
|
|
14
18
|
var HF_REPO = "camstack/camstack-models";
|
|
15
|
-
var OBJECT_DETECTION_MODELS = [
|
|
16
|
-
{
|
|
17
|
-
id: "yolov8n",
|
|
18
|
-
name: "YOLOv8 Nano",
|
|
19
|
-
description: "YOLOv8 Nano \u2014 fastest, smallest object detection model",
|
|
20
|
-
inputSize: { width: 640, height: 640 },
|
|
21
|
-
labels: COCO_80_LABELS,
|
|
22
|
-
formats: {
|
|
23
|
-
onnx: {
|
|
24
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8n.onnx"),
|
|
25
|
-
sizeMB: 12
|
|
26
|
-
},
|
|
27
|
-
coreml: {
|
|
28
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8n.mlpackage"),
|
|
29
|
-
sizeMB: 6
|
|
30
|
-
},
|
|
31
|
-
openvino: {
|
|
32
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8n.xml"),
|
|
33
|
-
sizeMB: 7
|
|
34
|
-
},
|
|
35
|
-
tflite: {
|
|
36
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/tflite/camstack-yolov8n_float32.tflite"),
|
|
37
|
-
sizeMB: 12
|
|
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
|
-
},
|
|
56
|
-
openvino: {
|
|
57
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8s.xml"),
|
|
58
|
-
sizeMB: 22
|
|
59
|
-
},
|
|
60
|
-
tflite: {
|
|
61
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/tflite/camstack-yolov8s_float32.tflite"),
|
|
62
|
-
sizeMB: 43
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
id: "yolov8m",
|
|
68
|
-
name: "YOLOv8 Medium",
|
|
69
|
-
description: "YOLOv8 Medium \u2014 higher accuracy, moderate size",
|
|
70
|
-
inputSize: { width: 640, height: 640 },
|
|
71
|
-
labels: COCO_80_LABELS,
|
|
72
|
-
formats: {
|
|
73
|
-
onnx: {
|
|
74
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/onnx/camstack-yolov8m.onnx"),
|
|
75
|
-
sizeMB: 99
|
|
76
|
-
},
|
|
77
|
-
coreml: {
|
|
78
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/coreml/camstack-yolov8m.mlpackage"),
|
|
79
|
-
sizeMB: 49
|
|
80
|
-
},
|
|
81
|
-
openvino: {
|
|
82
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/openvino/camstack-yolov8m.xml"),
|
|
83
|
-
sizeMB: 50
|
|
84
|
-
},
|
|
85
|
-
tflite: {
|
|
86
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov8/tflite/camstack-yolov8m_float32.tflite"),
|
|
87
|
-
sizeMB: 99
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
id: "yolov9t",
|
|
93
|
-
name: "YOLOv9 Tiny",
|
|
94
|
-
description: "YOLOv9 Tiny \u2014 ultra-lightweight next-gen detector",
|
|
95
|
-
inputSize: { width: 640, height: 640 },
|
|
96
|
-
labels: COCO_80_LABELS,
|
|
97
|
-
formats: {
|
|
98
|
-
onnx: {
|
|
99
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/onnx/camstack-yolov9t.onnx"),
|
|
100
|
-
sizeMB: 8
|
|
101
|
-
},
|
|
102
|
-
coreml: {
|
|
103
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/coreml/camstack-yolov9t.mlpackage"),
|
|
104
|
-
sizeMB: 4
|
|
105
|
-
},
|
|
106
|
-
openvino: {
|
|
107
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/openvino/camstack-yolov9t.xml"),
|
|
108
|
-
sizeMB: 6
|
|
109
|
-
},
|
|
110
|
-
tflite: {
|
|
111
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/tflite/camstack-yolov9t_float32.tflite"),
|
|
112
|
-
sizeMB: 8
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
id: "yolov9s",
|
|
118
|
-
name: "YOLOv9 Small",
|
|
119
|
-
description: "YOLOv9 Small \u2014 improved efficiency over YOLOv8s",
|
|
120
|
-
inputSize: { width: 640, height: 640 },
|
|
121
|
-
labels: COCO_80_LABELS,
|
|
122
|
-
formats: {
|
|
123
|
-
onnx: {
|
|
124
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/onnx/camstack-yolov9s.onnx"),
|
|
125
|
-
sizeMB: 28
|
|
126
|
-
},
|
|
127
|
-
coreml: {
|
|
128
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/coreml/camstack-yolov9s.mlpackage"),
|
|
129
|
-
sizeMB: 14
|
|
130
|
-
},
|
|
131
|
-
openvino: {
|
|
132
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/openvino/camstack-yolov9s.xml"),
|
|
133
|
-
sizeMB: 16
|
|
134
|
-
},
|
|
135
|
-
tflite: {
|
|
136
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/tflite/camstack-yolov9s_float32.tflite"),
|
|
137
|
-
sizeMB: 28
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
id: "yolov9c",
|
|
143
|
-
name: "YOLOv9 C",
|
|
144
|
-
description: "YOLOv9 C \u2014 high-accuracy compact model",
|
|
145
|
-
inputSize: { width: 640, height: 640 },
|
|
146
|
-
labels: COCO_80_LABELS,
|
|
147
|
-
formats: {
|
|
148
|
-
onnx: {
|
|
149
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/onnx/camstack-yolov9c.onnx"),
|
|
150
|
-
sizeMB: 97
|
|
151
|
-
},
|
|
152
|
-
coreml: {
|
|
153
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/coreml/camstack-yolov9c.mlpackage"),
|
|
154
|
-
sizeMB: 48
|
|
155
|
-
},
|
|
156
|
-
openvino: {
|
|
157
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/openvino/camstack-yolov9c.xml"),
|
|
158
|
-
sizeMB: 49
|
|
159
|
-
},
|
|
160
|
-
tflite: {
|
|
161
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolov9/tflite/camstack-yolov9c_float32.tflite"),
|
|
162
|
-
sizeMB: 97
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
// YOLO11 — no CoreML (coremltools incompatible)
|
|
167
|
-
{
|
|
168
|
-
id: "yolo11n",
|
|
169
|
-
name: "YOLO11 Nano",
|
|
170
|
-
description: "YOLO11 Nano \u2014 fastest, smallest YOLO11 detection model",
|
|
171
|
-
inputSize: { width: 640, height: 640 },
|
|
172
|
-
labels: COCO_80_LABELS,
|
|
173
|
-
formats: {
|
|
174
|
-
onnx: {
|
|
175
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11n.onnx"),
|
|
176
|
-
sizeMB: 10
|
|
177
|
-
},
|
|
178
|
-
openvino: {
|
|
179
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11n.xml"),
|
|
180
|
-
sizeMB: 5.4
|
|
181
|
-
},
|
|
182
|
-
tflite: {
|
|
183
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11n_float32.tflite"),
|
|
184
|
-
sizeMB: 10
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
id: "yolo11s",
|
|
190
|
-
name: "YOLO11 Small",
|
|
191
|
-
description: "YOLO11 Small \u2014 balanced speed and accuracy",
|
|
192
|
-
inputSize: { width: 640, height: 640 },
|
|
193
|
-
labels: COCO_80_LABELS,
|
|
194
|
-
formats: {
|
|
195
|
-
onnx: {
|
|
196
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11s.onnx"),
|
|
197
|
-
sizeMB: 36
|
|
198
|
-
},
|
|
199
|
-
openvino: {
|
|
200
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11s.xml"),
|
|
201
|
-
sizeMB: 18
|
|
202
|
-
},
|
|
203
|
-
tflite: {
|
|
204
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11s_float32.tflite"),
|
|
205
|
-
sizeMB: 36
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
{
|
|
210
|
-
id: "yolo11m",
|
|
211
|
-
name: "YOLO11 Medium",
|
|
212
|
-
description: "YOLO11 Medium \u2014 higher accuracy, moderate size",
|
|
213
|
-
inputSize: { width: 640, height: 640 },
|
|
214
|
-
labels: COCO_80_LABELS,
|
|
215
|
-
formats: {
|
|
216
|
-
onnx: {
|
|
217
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11m.onnx"),
|
|
218
|
-
sizeMB: 77
|
|
219
|
-
},
|
|
220
|
-
openvino: {
|
|
221
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11m.xml"),
|
|
222
|
-
sizeMB: 39
|
|
223
|
-
},
|
|
224
|
-
tflite: {
|
|
225
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11m_float32.tflite"),
|
|
226
|
-
sizeMB: 77
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
},
|
|
230
|
-
{
|
|
231
|
-
id: "yolo11l",
|
|
232
|
-
name: "YOLO11 Large",
|
|
233
|
-
description: "YOLO11 Large \u2014 high-accuracy large model",
|
|
234
|
-
inputSize: { width: 640, height: 640 },
|
|
235
|
-
labels: COCO_80_LABELS,
|
|
236
|
-
formats: {
|
|
237
|
-
onnx: {
|
|
238
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11l.onnx"),
|
|
239
|
-
sizeMB: 97
|
|
240
|
-
},
|
|
241
|
-
openvino: {
|
|
242
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11l.xml"),
|
|
243
|
-
sizeMB: 49
|
|
244
|
-
},
|
|
245
|
-
tflite: {
|
|
246
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11l_float32.tflite"),
|
|
247
|
-
sizeMB: 97
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
id: "yolo11x",
|
|
253
|
-
name: "YOLO11 Extra-Large",
|
|
254
|
-
description: "YOLO11 Extra-Large \u2014 maximum accuracy",
|
|
255
|
-
inputSize: { width: 640, height: 640 },
|
|
256
|
-
labels: COCO_80_LABELS,
|
|
257
|
-
formats: {
|
|
258
|
-
onnx: {
|
|
259
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/onnx/camstack-yolo11x.onnx"),
|
|
260
|
-
sizeMB: 218
|
|
261
|
-
},
|
|
262
|
-
openvino: {
|
|
263
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/openvino/camstack-yolo11x.xml"),
|
|
264
|
-
sizeMB: 109
|
|
265
|
-
},
|
|
266
|
-
tflite: {
|
|
267
|
-
url: hfModelUrl(HF_REPO, "objectDetection/yolo11/tflite/camstack-yolo11x_float32.tflite"),
|
|
268
|
-
sizeMB: 218
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
];
|
|
273
|
-
|
|
274
|
-
// src/catalogs/segmentation-models.ts
|
|
275
|
-
import { hfModelUrl as hfModelUrl2, COCO_80_LABELS as COCO_80_LABELS2 } from "@camstack/types";
|
|
276
|
-
var HF_REPO2 = "camstack/camstack-models";
|
|
277
19
|
var SEGMENTATION_MODELS = [
|
|
278
|
-
// YOLO11-seg
|
|
20
|
+
// ── YOLO11-seg ───────────────────────────────────────────────
|
|
279
21
|
{
|
|
280
22
|
id: "yolo11n-seg",
|
|
281
23
|
name: "YOLO11 Nano Segmentation",
|
|
282
24
|
description: "YOLO11 Nano \u2014 fastest, smallest YOLO11 instance segmentation model",
|
|
283
25
|
inputSize: { width: 640, height: 640 },
|
|
284
|
-
labels:
|
|
26
|
+
labels: COCO_80_LABELS,
|
|
285
27
|
formats: {
|
|
286
28
|
onnx: {
|
|
287
|
-
url:
|
|
29
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/onnx/camstack-yolo11n-seg.onnx"),
|
|
288
30
|
sizeMB: 11
|
|
289
31
|
},
|
|
32
|
+
coreml: {
|
|
33
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/coreml/camstack-yolo11n-seg.mlpackage"),
|
|
34
|
+
sizeMB: 6,
|
|
35
|
+
isDirectory: true,
|
|
36
|
+
files: MLPACKAGE_FILES,
|
|
37
|
+
runtimes: ["python"]
|
|
38
|
+
},
|
|
290
39
|
openvino: {
|
|
291
|
-
url:
|
|
292
|
-
sizeMB: 6
|
|
40
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/openvino/camstack-yolo11n-seg.xml"),
|
|
41
|
+
sizeMB: 6,
|
|
42
|
+
runtimes: ["python"]
|
|
293
43
|
}
|
|
294
44
|
}
|
|
295
45
|
},
|
|
@@ -298,15 +48,23 @@ var SEGMENTATION_MODELS = [
|
|
|
298
48
|
name: "YOLO11 Small Segmentation",
|
|
299
49
|
description: "YOLO11 Small \u2014 balanced speed and accuracy for instance segmentation",
|
|
300
50
|
inputSize: { width: 640, height: 640 },
|
|
301
|
-
labels:
|
|
51
|
+
labels: COCO_80_LABELS,
|
|
302
52
|
formats: {
|
|
303
53
|
onnx: {
|
|
304
|
-
url:
|
|
54
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/onnx/camstack-yolo11s-seg.onnx"),
|
|
305
55
|
sizeMB: 39
|
|
306
56
|
},
|
|
57
|
+
coreml: {
|
|
58
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/coreml/camstack-yolo11s-seg.mlpackage"),
|
|
59
|
+
sizeMB: 20,
|
|
60
|
+
isDirectory: true,
|
|
61
|
+
files: MLPACKAGE_FILES,
|
|
62
|
+
runtimes: ["python"]
|
|
63
|
+
},
|
|
307
64
|
openvino: {
|
|
308
|
-
url:
|
|
309
|
-
sizeMB: 20
|
|
65
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/openvino/camstack-yolo11s-seg.xml"),
|
|
66
|
+
sizeMB: 20,
|
|
67
|
+
runtimes: ["python"]
|
|
310
68
|
}
|
|
311
69
|
}
|
|
312
70
|
},
|
|
@@ -315,37 +73,49 @@ var SEGMENTATION_MODELS = [
|
|
|
315
73
|
name: "YOLO11 Medium Segmentation",
|
|
316
74
|
description: "YOLO11 Medium \u2014 higher accuracy instance segmentation",
|
|
317
75
|
inputSize: { width: 640, height: 640 },
|
|
318
|
-
labels:
|
|
76
|
+
labels: COCO_80_LABELS,
|
|
319
77
|
formats: {
|
|
320
78
|
onnx: {
|
|
321
|
-
url:
|
|
79
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/onnx/camstack-yolo11m-seg.onnx"),
|
|
322
80
|
sizeMB: 86
|
|
323
81
|
},
|
|
82
|
+
coreml: {
|
|
83
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/coreml/camstack-yolo11m-seg.mlpackage"),
|
|
84
|
+
sizeMB: 43,
|
|
85
|
+
isDirectory: true,
|
|
86
|
+
files: MLPACKAGE_FILES,
|
|
87
|
+
runtimes: ["python"]
|
|
88
|
+
},
|
|
324
89
|
openvino: {
|
|
325
|
-
url:
|
|
326
|
-
sizeMB: 43
|
|
90
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolo11-seg/openvino/camstack-yolo11m-seg.xml"),
|
|
91
|
+
sizeMB: 43,
|
|
92
|
+
runtimes: ["python"]
|
|
327
93
|
}
|
|
328
94
|
}
|
|
329
95
|
},
|
|
330
|
-
// YOLOv8-seg — CoreML
|
|
96
|
+
// ── YOLOv8-seg — CoreML supported ─────────────────────────────
|
|
331
97
|
{
|
|
332
98
|
id: "yolov8n-seg",
|
|
333
99
|
name: "YOLOv8 Nano Segmentation",
|
|
334
100
|
description: "YOLOv8 Nano \u2014 fastest, smallest YOLOv8 instance segmentation model",
|
|
335
101
|
inputSize: { width: 640, height: 640 },
|
|
336
|
-
labels:
|
|
102
|
+
labels: COCO_80_LABELS,
|
|
337
103
|
formats: {
|
|
338
104
|
onnx: {
|
|
339
|
-
url:
|
|
105
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/onnx/camstack-yolov8n-seg.onnx"),
|
|
340
106
|
sizeMB: 13
|
|
341
107
|
},
|
|
342
108
|
coreml: {
|
|
343
|
-
url:
|
|
344
|
-
sizeMB: 7
|
|
109
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/coreml/camstack-yolov8n-seg.mlpackage"),
|
|
110
|
+
sizeMB: 7,
|
|
111
|
+
isDirectory: true,
|
|
112
|
+
files: MLPACKAGE_FILES,
|
|
113
|
+
runtimes: ["python"]
|
|
345
114
|
},
|
|
346
115
|
openvino: {
|
|
347
|
-
url:
|
|
348
|
-
sizeMB: 7
|
|
116
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/openvino/camstack-yolov8n-seg.xml"),
|
|
117
|
+
sizeMB: 7,
|
|
118
|
+
runtimes: ["python"]
|
|
349
119
|
}
|
|
350
120
|
}
|
|
351
121
|
},
|
|
@@ -354,19 +124,23 @@ var SEGMENTATION_MODELS = [
|
|
|
354
124
|
name: "YOLOv8 Small Segmentation",
|
|
355
125
|
description: "YOLOv8 Small \u2014 balanced speed and accuracy for instance segmentation",
|
|
356
126
|
inputSize: { width: 640, height: 640 },
|
|
357
|
-
labels:
|
|
127
|
+
labels: COCO_80_LABELS,
|
|
358
128
|
formats: {
|
|
359
129
|
onnx: {
|
|
360
|
-
url:
|
|
130
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/onnx/camstack-yolov8s-seg.onnx"),
|
|
361
131
|
sizeMB: 45
|
|
362
132
|
},
|
|
363
133
|
coreml: {
|
|
364
|
-
url:
|
|
365
|
-
sizeMB: 23
|
|
134
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/coreml/camstack-yolov8s-seg.mlpackage"),
|
|
135
|
+
sizeMB: 23,
|
|
136
|
+
isDirectory: true,
|
|
137
|
+
files: MLPACKAGE_FILES,
|
|
138
|
+
runtimes: ["python"]
|
|
366
139
|
},
|
|
367
140
|
openvino: {
|
|
368
|
-
url:
|
|
369
|
-
sizeMB: 23
|
|
141
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/openvino/camstack-yolov8s-seg.xml"),
|
|
142
|
+
sizeMB: 23,
|
|
143
|
+
runtimes: ["python"]
|
|
370
144
|
}
|
|
371
145
|
}
|
|
372
146
|
},
|
|
@@ -375,26 +149,30 @@ var SEGMENTATION_MODELS = [
|
|
|
375
149
|
name: "YOLOv8 Medium Segmentation",
|
|
376
150
|
description: "YOLOv8 Medium \u2014 higher accuracy instance segmentation",
|
|
377
151
|
inputSize: { width: 640, height: 640 },
|
|
378
|
-
labels:
|
|
152
|
+
labels: COCO_80_LABELS,
|
|
379
153
|
formats: {
|
|
380
154
|
onnx: {
|
|
381
|
-
url:
|
|
155
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/onnx/camstack-yolov8m-seg.onnx"),
|
|
382
156
|
sizeMB: 104
|
|
383
157
|
},
|
|
384
158
|
coreml: {
|
|
385
|
-
url:
|
|
386
|
-
sizeMB: 52
|
|
159
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/coreml/camstack-yolov8m-seg.mlpackage"),
|
|
160
|
+
sizeMB: 52,
|
|
161
|
+
isDirectory: true,
|
|
162
|
+
files: MLPACKAGE_FILES,
|
|
163
|
+
runtimes: ["python"]
|
|
387
164
|
},
|
|
388
165
|
openvino: {
|
|
389
|
-
url:
|
|
390
|
-
sizeMB: 53
|
|
166
|
+
url: hfModelUrl(HF_REPO, "segmentation/yolov8-seg/openvino/camstack-yolov8m-seg.xml"),
|
|
167
|
+
sizeMB: 53,
|
|
168
|
+
runtimes: ["python"]
|
|
391
169
|
}
|
|
392
170
|
}
|
|
393
171
|
}
|
|
394
172
|
];
|
|
395
173
|
|
|
396
174
|
// src/addons/object-detection/index.ts
|
|
397
|
-
import { COCO_TO_MACRO, MACRO_LABELS, COCO_80_LABELS as
|
|
175
|
+
import { COCO_TO_MACRO, MACRO_LABELS, COCO_80_LABELS as COCO_80_LABELS2 } from "@camstack/types";
|
|
398
176
|
|
|
399
177
|
// src/shared/postprocess/yolo-seg.ts
|
|
400
178
|
function sigmoid(x) {
|
|
@@ -527,6 +305,50 @@ function applyClassMap(detections, classMap) {
|
|
|
527
305
|
class: classMap.mapping[d.class]
|
|
528
306
|
}));
|
|
529
307
|
}
|
|
308
|
+
var RAM_ESTIMATES = {
|
|
309
|
+
"yolov8n": 80,
|
|
310
|
+
"yolov8s": 150,
|
|
311
|
+
"yolov8s-relu": 150,
|
|
312
|
+
"yolov8m": 300,
|
|
313
|
+
"yolov8l": 500,
|
|
314
|
+
"yolov8x": 800,
|
|
315
|
+
"yolov9t": 60,
|
|
316
|
+
"yolov9s": 120,
|
|
317
|
+
"yolov9c": 300,
|
|
318
|
+
"yolo11n": 70,
|
|
319
|
+
"yolo11s": 130,
|
|
320
|
+
"yolo11m": 280,
|
|
321
|
+
"yolo11l": 450,
|
|
322
|
+
"yolo11x": 750,
|
|
323
|
+
"yolo11n-seg": 84,
|
|
324
|
+
"yolo11s-seg": 156,
|
|
325
|
+
"yolo11m-seg": 336,
|
|
326
|
+
"yolov8n-seg": 96,
|
|
327
|
+
"yolov8s-seg": 180,
|
|
328
|
+
"yolov8m-seg": 360
|
|
329
|
+
};
|
|
330
|
+
var ACCURACY_SCORES = {
|
|
331
|
+
"yolov8n": 55,
|
|
332
|
+
"yolov8s": 70,
|
|
333
|
+
"yolov8s-relu": 68,
|
|
334
|
+
"yolov8m": 82,
|
|
335
|
+
"yolov8l": 88,
|
|
336
|
+
"yolov8x": 92,
|
|
337
|
+
"yolov9t": 58,
|
|
338
|
+
"yolov9s": 73,
|
|
339
|
+
"yolov9c": 86,
|
|
340
|
+
"yolo11n": 62,
|
|
341
|
+
"yolo11s": 78,
|
|
342
|
+
"yolo11m": 88,
|
|
343
|
+
"yolo11l": 93,
|
|
344
|
+
"yolo11x": 97,
|
|
345
|
+
"yolo11n-seg": 62,
|
|
346
|
+
"yolo11s-seg": 78,
|
|
347
|
+
"yolo11m-seg": 88,
|
|
348
|
+
"yolov8n-seg": 55,
|
|
349
|
+
"yolov8s-seg": 70,
|
|
350
|
+
"yolov8m-seg": 82
|
|
351
|
+
};
|
|
530
352
|
var ObjectDetectionAddon = class {
|
|
531
353
|
id = "object-detection";
|
|
532
354
|
slot = "detector";
|
|
@@ -538,31 +360,43 @@ var ObjectDetectionAddon = class {
|
|
|
538
360
|
name: "Object Detection",
|
|
539
361
|
version: "0.1.0",
|
|
540
362
|
description: "YOLO-based object detection \u2014 detects persons, vehicles, and animals",
|
|
541
|
-
packageName: "@camstack/addon-vision",
|
|
542
363
|
slot: "detector",
|
|
543
364
|
inputClasses: void 0,
|
|
544
365
|
outputClasses: ["person", "vehicle", "animal"],
|
|
545
366
|
supportsCustomModels: true,
|
|
546
367
|
mayRequirePython: false,
|
|
547
368
|
defaultConfig: {
|
|
548
|
-
modelId: "
|
|
549
|
-
runtime: "
|
|
369
|
+
modelId: "yolo11n",
|
|
370
|
+
runtime: "node",
|
|
550
371
|
backend: "cpu",
|
|
551
372
|
confidence: 0.5,
|
|
552
373
|
iouThreshold: 0.45,
|
|
553
374
|
classMapMode: "macro"
|
|
554
375
|
}
|
|
555
376
|
};
|
|
556
|
-
engine;
|
|
377
|
+
engine = null;
|
|
557
378
|
modelEntry;
|
|
558
379
|
confidence = 0.5;
|
|
559
380
|
iouThreshold = 0.45;
|
|
560
381
|
classMapMode = "macro";
|
|
382
|
+
resolvedConfig = null;
|
|
383
|
+
ctx = null;
|
|
384
|
+
getModelRequirements() {
|
|
385
|
+
return ALL_DETECTION_MODELS.map((m) => ({
|
|
386
|
+
modelId: m.id,
|
|
387
|
+
name: m.name,
|
|
388
|
+
minRAM_MB: RAM_ESTIMATES[m.id] ?? 100,
|
|
389
|
+
accuracyScore: ACCURACY_SCORES[m.id] ?? 60,
|
|
390
|
+
formats: Object.keys(m.formats)
|
|
391
|
+
}));
|
|
392
|
+
}
|
|
393
|
+
configure(config) {
|
|
394
|
+
this.resolvedConfig = config;
|
|
395
|
+
}
|
|
561
396
|
async initialize(ctx) {
|
|
397
|
+
this.ctx = ctx;
|
|
562
398
|
const cfg = ctx.addonConfig;
|
|
563
|
-
const modelId = cfg["modelId"] ?? "
|
|
564
|
-
const runtime = cfg["runtime"] ?? "auto";
|
|
565
|
-
const backend = cfg["backend"] ?? "cpu";
|
|
399
|
+
const modelId = cfg["modelId"] ?? this.resolvedConfig?.modelId ?? "yolo11n";
|
|
566
400
|
this.confidence = cfg["confidence"] ?? 0.5;
|
|
567
401
|
this.iouThreshold = cfg["iouThreshold"] ?? 0.45;
|
|
568
402
|
this.classMapMode = cfg["classMapMode"] ?? "macro";
|
|
@@ -571,16 +405,30 @@ var ObjectDetectionAddon = class {
|
|
|
571
405
|
throw new Error(`ObjectDetectionAddon: unknown modelId "${modelId}"`);
|
|
572
406
|
}
|
|
573
407
|
this.modelEntry = entry;
|
|
574
|
-
const resolved = await resolveEngine({
|
|
575
|
-
runtime,
|
|
576
|
-
backend,
|
|
577
|
-
modelEntry: entry,
|
|
578
|
-
modelsDir: ctx.locationPaths.models
|
|
579
|
-
});
|
|
580
|
-
this.engine = resolved.engine;
|
|
581
408
|
}
|
|
582
409
|
async detect(frame) {
|
|
410
|
+
if (!this.engine) await this.ensureEngine();
|
|
583
411
|
const start = Date.now();
|
|
412
|
+
if ("runJpeg" in this.engine && typeof this.engine.runJpeg === "function") {
|
|
413
|
+
const result = await this.engine.runJpeg(frame.data);
|
|
414
|
+
const rawDets = result.detections ?? [];
|
|
415
|
+
const detections2 = rawDets.map((d) => ({
|
|
416
|
+
class: this.classMapMode === "all" ? d.className : COCO_TO_MACRO.mapping[d.className] ?? d.className,
|
|
417
|
+
originalClass: d.className,
|
|
418
|
+
score: d.score,
|
|
419
|
+
bbox: {
|
|
420
|
+
x: d.bbox[0] * frame.width,
|
|
421
|
+
y: d.bbox[1] * frame.height,
|
|
422
|
+
w: (d.bbox[2] - d.bbox[0]) * frame.width,
|
|
423
|
+
h: (d.bbox[3] - d.bbox[1]) * frame.height
|
|
424
|
+
}
|
|
425
|
+
})).filter((d) => this.classMapMode === "all" || COCO_TO_MACRO.mapping[d.originalClass] !== void 0);
|
|
426
|
+
return {
|
|
427
|
+
detections: detections2,
|
|
428
|
+
inferenceMs: result.inferenceMs ?? Date.now() - start,
|
|
429
|
+
modelId: this.modelEntry.id
|
|
430
|
+
};
|
|
431
|
+
}
|
|
584
432
|
const { width: inputW, height: inputH } = this.modelEntry.inputSize;
|
|
585
433
|
const targetSize = Math.max(inputW, inputH);
|
|
586
434
|
const lb = await letterbox(frame.data, targetSize);
|
|
@@ -635,6 +483,40 @@ var ObjectDetectionAddon = class {
|
|
|
635
483
|
modelId: this.modelEntry.id
|
|
636
484
|
};
|
|
637
485
|
}
|
|
486
|
+
async ensureEngine() {
|
|
487
|
+
const config = this.resolvedConfig;
|
|
488
|
+
const modelId = config?.modelId ?? this.modelEntry.id;
|
|
489
|
+
const runtime = config?.runtime === "python" ? "coreml" : config?.runtime === "node" ? "onnx" : "auto";
|
|
490
|
+
const backend = config?.backend ?? "cpu";
|
|
491
|
+
const format = config?.format ?? "onnx";
|
|
492
|
+
const entry = ALL_DETECTION_MODELS.find((m) => m.id === modelId) ?? this.modelEntry;
|
|
493
|
+
this.modelEntry = entry;
|
|
494
|
+
const modelsDir = this.ctx.models?.getModelsDir() ?? this.ctx.locationPaths.models;
|
|
495
|
+
if (this.ctx.models) {
|
|
496
|
+
await this.ctx.models.ensure(modelId, format);
|
|
497
|
+
}
|
|
498
|
+
let pythonPath;
|
|
499
|
+
if (config?.runtime === "python") {
|
|
500
|
+
for (const cmd of ["python3", "python"]) {
|
|
501
|
+
try {
|
|
502
|
+
const { execSync } = await import("child_process");
|
|
503
|
+
execSync(`${cmd} --version`, { timeout: 3e3, stdio: "ignore" });
|
|
504
|
+
pythonPath = cmd;
|
|
505
|
+
break;
|
|
506
|
+
} catch {
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
const resolved = await resolveEngine({
|
|
511
|
+
runtime,
|
|
512
|
+
backend,
|
|
513
|
+
modelEntry: entry,
|
|
514
|
+
modelsDir,
|
|
515
|
+
pythonPath,
|
|
516
|
+
models: this.ctx.models
|
|
517
|
+
});
|
|
518
|
+
this.engine = resolved.engine;
|
|
519
|
+
}
|
|
638
520
|
async shutdown() {
|
|
639
521
|
await this.engine?.dispose();
|
|
640
522
|
}
|
|
@@ -644,7 +526,7 @@ var ObjectDetectionAddon = class {
|
|
|
644
526
|
{
|
|
645
527
|
id: "model",
|
|
646
528
|
title: "Model",
|
|
647
|
-
columns:
|
|
529
|
+
columns: 1,
|
|
648
530
|
fields: [
|
|
649
531
|
{
|
|
650
532
|
key: "modelId",
|
|
@@ -669,7 +551,7 @@ var ObjectDetectionAddon = class {
|
|
|
669
551
|
label: "Runtime",
|
|
670
552
|
type: "select",
|
|
671
553
|
options: [
|
|
672
|
-
{ value: "auto", label: "Auto
|
|
554
|
+
{ value: "auto", label: "Auto" },
|
|
673
555
|
{ value: "onnx", label: "ONNX Runtime" },
|
|
674
556
|
{ value: "coreml", label: "CoreML (Apple)" },
|
|
675
557
|
{ value: "openvino", label: "OpenVINO (Intel)" }
|
|
@@ -679,8 +561,9 @@ var ObjectDetectionAddon = class {
|
|
|
679
561
|
key: "backend",
|
|
680
562
|
label: "Backend",
|
|
681
563
|
type: "select",
|
|
682
|
-
|
|
564
|
+
showWhen: { field: "runtime", equals: "onnx" },
|
|
683
565
|
options: [
|
|
566
|
+
{ value: "auto", label: "Auto" },
|
|
684
567
|
{ value: "cpu", label: "CPU" },
|
|
685
568
|
{ value: "coreml", label: "CoreML" },
|
|
686
569
|
{ value: "cuda", label: "CUDA (NVIDIA)" },
|
|
@@ -743,7 +626,7 @@ var ObjectDetectionAddon = class {
|
|
|
743
626
|
return [];
|
|
744
627
|
}
|
|
745
628
|
getActiveLabels() {
|
|
746
|
-
return this.classMapMode === "all" ?
|
|
629
|
+
return this.classMapMode === "all" ? COCO_80_LABELS2 : MACRO_LABELS;
|
|
747
630
|
}
|
|
748
631
|
async probe() {
|
|
749
632
|
return {
|
|
@@ -756,8 +639,7 @@ var ObjectDetectionAddon = class {
|
|
|
756
639
|
};
|
|
757
640
|
|
|
758
641
|
export {
|
|
759
|
-
OBJECT_DETECTION_MODELS,
|
|
760
642
|
SEGMENTATION_MODELS,
|
|
761
643
|
ObjectDetectionAddon
|
|
762
644
|
};
|
|
763
|
-
//# sourceMappingURL=chunk-
|
|
645
|
+
//# sourceMappingURL=chunk-G32RCIUI.mjs.map
|