@mauriciobenjamin700/ort-vision-sdk-web 0.4.0 → 0.5.0
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/CHANGELOG.md +57 -0
- package/dist/core/graph.d.ts +21 -0
- package/dist/core/graph.d.ts.map +1 -1
- package/dist/core/graph.js +34 -0
- package/dist/core/graph.js.map +1 -1
- package/dist/core/metadata.d.ts +39 -0
- package/dist/core/metadata.d.ts.map +1 -0
- package/dist/core/metadata.js +233 -0
- package/dist/core/metadata.js.map +1 -0
- package/dist/core/session.d.ts +37 -2
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +65 -9
- package/dist/core/session.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/tasks/classifier.d.ts +14 -5
- package/dist/tasks/classifier.d.ts.map +1 -1
- package/dist/tasks/classifier.js +7 -3
- package/dist/tasks/classifier.js.map +1 -1
- package/dist/tasks/detector.d.ts.map +1 -1
- package/dist/tasks/detector.js +4 -3
- package/dist/tasks/detector.js.map +1 -1
- package/dist/tasks/segmenter.d.ts.map +1 -1
- package/dist/tasks/segmenter.js +4 -3
- package/dist/tasks/segmenter.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,54 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.5.0] - 2026-08-03
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Tasks read their class names off the model, matching the Python SDK.**
|
|
15
|
+
`labels` is now optional on all three tasks: when omitted, the names the
|
|
16
|
+
exporter baked into the model are used (Ultralytics writes them as `names` in
|
|
17
|
+
the metadata map), and only a model carrying none falls back to the COCO
|
|
18
|
+
preset for detection/segmentation or generated `class_<id>` labels for
|
|
19
|
+
classification. Passing `labels` still wins, for a model whose names are
|
|
20
|
+
wrong or absent.
|
|
21
|
+
|
|
22
|
+
```typescript
|
|
23
|
+
const det = await Detector.create("/models/detect.onnx");
|
|
24
|
+
console.log(det.labels); // ["ocular-mucosa"] — from the model, not a preset
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
This also fixes a trap: a single-class detector used to **fail** without an
|
|
28
|
+
explicit `labels`, because the 80-name COCO default disagreed with its class
|
|
29
|
+
count.
|
|
30
|
+
|
|
31
|
+
- **`numClasses` is inferred from the declared output shape.** A YOLO head
|
|
32
|
+
declares `(B, 4 + nc, N)` and a classifier `(B, nc)`, so the count no longer
|
|
33
|
+
has to be supplied. Passing it still validates the labels against the model.
|
|
34
|
+
|
|
35
|
+
- **`OrtSession.metadata`** exposes the model's custom metadata map (`names`,
|
|
36
|
+
`task`, `imgsz`, ...). `onnxruntime-web` does not surface that map — unlike
|
|
37
|
+
Python's `custom_metadata_map` — so it is read from the model's own bytes at
|
|
38
|
+
load time by walking `metadata_props` in the ModelProto. A truncated or
|
|
39
|
+
unexpected file yields an empty map instead of an error, and every caller
|
|
40
|
+
falls back to what it was given.
|
|
41
|
+
|
|
42
|
+
- **`OrtSession.outputShapes` / `.outputShape`**, the shapes the graph declares
|
|
43
|
+
for its outputs, with dynamic axes as `null` — the same treatment
|
|
44
|
+
`inputShapes` already got.
|
|
45
|
+
|
|
46
|
+
- **`detectionNumClasses`, `classificationNumClasses`, `readModelMetadata`,
|
|
47
|
+
`modelNames`**: the pure helpers behind the above, exported for anyone
|
|
48
|
+
assembling their own pipeline.
|
|
49
|
+
|
|
50
|
+
### Changed
|
|
51
|
+
|
|
52
|
+
- **A URL model is fetched by the SDK instead of by ORT**, so its bytes are
|
|
53
|
+
available to read metadata from. It is the same single download, and
|
|
54
|
+
`readMetadata: false` on the session options restores the previous path (ORT
|
|
55
|
+
fetches the URL, `metadata` stays empty). A failed fetch falls back to handing
|
|
56
|
+
ORT the URL, so a model that ORT could load still loads.
|
|
57
|
+
|
|
10
58
|
## [0.4.0] - 2026-08-03
|
|
11
59
|
|
|
12
60
|
### Added
|
|
@@ -93,6 +141,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
93
141
|
would break `tempest-react-sdk`, which re-exports all three from its vendored
|
|
94
142
|
copy. The warning now points at `0.4.0`.
|
|
95
143
|
|
|
144
|
+
## [0.2.2] - 2026-05-31
|
|
145
|
+
|
|
146
|
+
### Changed
|
|
147
|
+
|
|
148
|
+
- README now links to the bilingual (PT-BR + EN-US) documentation site on
|
|
149
|
+
GitHub Pages (<https://mauriciobenjamin700.github.io/ort-vision-sdk/>) so the
|
|
150
|
+
npm package page points readers to the full guide and API reference.
|
|
151
|
+
Documentation-only release; no public API changes.
|
|
152
|
+
|
|
96
153
|
## [0.2.1] - 2026-05-03
|
|
97
154
|
|
|
98
155
|
First **published** release on npm. The previous `0.2.0` tag never produced a
|
package/dist/core/graph.d.ts
CHANGED
|
@@ -36,6 +36,27 @@ export declare function declaredShapesFrom(metadata: readonly ort.InferenceSessi
|
|
|
36
36
|
* than one resolution and there is nothing to correct.
|
|
37
37
|
*/
|
|
38
38
|
export declare function spatialInputSize(shape: DeclaredShape): readonly [number, number] | null;
|
|
39
|
+
/**
|
|
40
|
+
* Infer how many classes a YOLO detection/segmentation head emits.
|
|
41
|
+
*
|
|
42
|
+
* Such a head declares `(B, 4 + nc, N)` — four box coordinates stacked above one
|
|
43
|
+
* score per class, over `N` candidate anchors. `N` is in the thousands and the
|
|
44
|
+
* batch is 1, so the channel axis is the smallest static axis above 1.
|
|
45
|
+
*
|
|
46
|
+
* @param shape Declared shape of the model's first output.
|
|
47
|
+
* @returns The class count, or `null` when the shape leaves it undeterminable —
|
|
48
|
+
* fully dynamic, or too small to hold boxes plus at least one class.
|
|
49
|
+
*/
|
|
50
|
+
export declare function detectionNumClasses(shape: DeclaredShape): number | null;
|
|
51
|
+
/**
|
|
52
|
+
* Infer how many classes a classification head emits.
|
|
53
|
+
*
|
|
54
|
+
* A classifier declares `(B, nc)`, so the count is the last static axis.
|
|
55
|
+
*
|
|
56
|
+
* @param shape Declared shape of the model's first output.
|
|
57
|
+
* @returns The class count, or `null` when the last axis is dynamic or absent.
|
|
58
|
+
*/
|
|
59
|
+
export declare function classificationNumClasses(shape: DeclaredShape): number | null;
|
|
39
60
|
export interface ResolveInputSizeOptions {
|
|
40
61
|
/** Declared shape of the model's image input, from {@link declaredShapesFrom}. */
|
|
41
62
|
readonly graphShape?: DeclaredShape;
|
package/dist/core/graph.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAExC,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,SAAS,WAAW,EAAE,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,SAAS,GAClE,SAAS,aAAa,EAAE,CAO1B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAMvF;AAED,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAW5F"}
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAE5C;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,IAAI,CAAC;AAExC,uEAAuE;AACvE,MAAM,MAAM,aAAa,GAAG,SAAS,WAAW,EAAE,CAAC;AAEnD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,SAAS,GAAG,CAAC,gBAAgB,CAAC,aAAa,EAAE,GAAG,SAAS,GAClE,SAAS,aAAa,EAAE,CAO1B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAMvF;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAMvE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAI5E;AAED,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAW5F"}
|
package/dist/core/graph.js
CHANGED
|
@@ -42,6 +42,40 @@ export function spatialInputSize(shape) {
|
|
|
42
42
|
return null;
|
|
43
43
|
return [width, height];
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Infer how many classes a YOLO detection/segmentation head emits.
|
|
47
|
+
*
|
|
48
|
+
* Such a head declares `(B, 4 + nc, N)` — four box coordinates stacked above one
|
|
49
|
+
* score per class, over `N` candidate anchors. `N` is in the thousands and the
|
|
50
|
+
* batch is 1, so the channel axis is the smallest static axis above 1.
|
|
51
|
+
*
|
|
52
|
+
* @param shape Declared shape of the model's first output.
|
|
53
|
+
* @returns The class count, or `null` when the shape leaves it undeterminable —
|
|
54
|
+
* fully dynamic, or too small to hold boxes plus at least one class.
|
|
55
|
+
*/
|
|
56
|
+
export function detectionNumClasses(shape) {
|
|
57
|
+
const staticDims = shape.filter((dim) => dim !== null && dim > 1);
|
|
58
|
+
if (staticDims.length === 0)
|
|
59
|
+
return null;
|
|
60
|
+
const channels = Math.min(...staticDims);
|
|
61
|
+
if (channels < 5)
|
|
62
|
+
return null;
|
|
63
|
+
return channels - 4;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Infer how many classes a classification head emits.
|
|
67
|
+
*
|
|
68
|
+
* A classifier declares `(B, nc)`, so the count is the last static axis.
|
|
69
|
+
*
|
|
70
|
+
* @param shape Declared shape of the model's first output.
|
|
71
|
+
* @returns The class count, or `null` when the last axis is dynamic or absent.
|
|
72
|
+
*/
|
|
73
|
+
export function classificationNumClasses(shape) {
|
|
74
|
+
const last = shape[shape.length - 1];
|
|
75
|
+
if (last === null || last === undefined || last < 1)
|
|
76
|
+
return null;
|
|
77
|
+
return last;
|
|
78
|
+
}
|
|
45
79
|
/**
|
|
46
80
|
* Decide the input size a task will preprocess to.
|
|
47
81
|
*
|
package/dist/core/graph.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAmE;IAEnE,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5B,KAAK,CAAC,QAAQ;QACZ,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtG,CAAC,CAAC,EAAE,CACP,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAClG,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACzB,CAAC;AAWD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7F,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,SAAS,IAAI,OAAO,CAAC,QAAQ,CAAC;IACzD,IAAI,SAAS,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,OAAO,CAAC,IAAI,CACV,yCAAyC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,UAAU;YACrE,0BAA0B,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,oCAAoC,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"graph.js","sourceRoot":"","sources":["../../src/core/graph.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the metadata an exporter baked into a `.onnx` file.
|
|
3
|
+
*
|
|
4
|
+
* `onnxruntime-web` exposes input/output metadata but **not** the model's
|
|
5
|
+
* custom metadata map, which is where Ultralytics writes `names`, `task` and
|
|
6
|
+
* `imgsz`. The Python SDK gets it for free from
|
|
7
|
+
* `InferenceSession.get_modelmeta().custom_metadata_map`; in the browser the
|
|
8
|
+
* only way to the same information is to read it out of the file, so this
|
|
9
|
+
* module walks just enough of the ModelProto wire format to collect
|
|
10
|
+
* `metadata_props`.
|
|
11
|
+
*
|
|
12
|
+
* It never throws and never allocates unbounded: a truncated, hostile or
|
|
13
|
+
* simply unexpected file yields an empty map, and every caller treats that as
|
|
14
|
+
* "the model says nothing", falling back to what it was given.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Collect a model's custom metadata map straight out of its bytes.
|
|
18
|
+
*
|
|
19
|
+
* @param model The `.onnx` file contents.
|
|
20
|
+
* @returns Key/value metadata — `names`, `task`, `imgsz`, ... for an
|
|
21
|
+
* Ultralytics export — or an empty object when the file carries none or
|
|
22
|
+
* cannot be walked.
|
|
23
|
+
*/
|
|
24
|
+
export declare function readModelMetadata(model: Uint8Array | ArrayBufferLike): Readonly<Record<string, string>>;
|
|
25
|
+
/**
|
|
26
|
+
* Read the class names an export baked into the model metadata.
|
|
27
|
+
*
|
|
28
|
+
* Ultralytics writes `names` as the Python `repr` of a `dict[int, str]` — e.g.
|
|
29
|
+
* `"{0: 'deworm', 1: 'not_deworm'}"`. The value is parsed structurally (never
|
|
30
|
+
* evaluated), and anything unparseable, non-`dict`, or not keyed by contiguous
|
|
31
|
+
* integers from zero is rejected whole rather than half-applied: a partial name
|
|
32
|
+
* map would silently mislabel predictions.
|
|
33
|
+
*
|
|
34
|
+
* @param metadata A model's custom metadata map.
|
|
35
|
+
* @returns Class names in class-id order, or `null` when the model carries no
|
|
36
|
+
* usable `names` entry.
|
|
37
|
+
*/
|
|
38
|
+
export declare function modelNames(metadata: Readonly<Record<string, string>> | undefined): readonly string[] | null;
|
|
39
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAyIH;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,UAAU,GAAG,eAAe,GAClC,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAqBlC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,GACrD,SAAS,MAAM,EAAE,GAAG,IAAI,CA6B1B"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the metadata an exporter baked into a `.onnx` file.
|
|
3
|
+
*
|
|
4
|
+
* `onnxruntime-web` exposes input/output metadata but **not** the model's
|
|
5
|
+
* custom metadata map, which is where Ultralytics writes `names`, `task` and
|
|
6
|
+
* `imgsz`. The Python SDK gets it for free from
|
|
7
|
+
* `InferenceSession.get_modelmeta().custom_metadata_map`; in the browser the
|
|
8
|
+
* only way to the same information is to read it out of the file, so this
|
|
9
|
+
* module walks just enough of the ModelProto wire format to collect
|
|
10
|
+
* `metadata_props`.
|
|
11
|
+
*
|
|
12
|
+
* It never throws and never allocates unbounded: a truncated, hostile or
|
|
13
|
+
* simply unexpected file yields an empty map, and every caller treats that as
|
|
14
|
+
* "the model says nothing", falling back to what it was given.
|
|
15
|
+
*/
|
|
16
|
+
/** Field number of `metadata_props` in `ModelProto` (repeated StringStringEntryProto). */
|
|
17
|
+
const MODEL_METADATA_PROPS_FIELD = 14;
|
|
18
|
+
/** Field numbers of `key` and `value` in `StringStringEntryProto`. */
|
|
19
|
+
const ENTRY_KEY_FIELD = 1;
|
|
20
|
+
const ENTRY_VALUE_FIELD = 2;
|
|
21
|
+
/** Protobuf wire types this reader understands. */
|
|
22
|
+
const WIRE_VARINT = 0;
|
|
23
|
+
const WIRE_FIXED64 = 1;
|
|
24
|
+
const WIRE_LENGTH_DELIMITED = 2;
|
|
25
|
+
const WIRE_FIXED32 = 5;
|
|
26
|
+
/**
|
|
27
|
+
* Hard ceiling on a single length-delimited field, as a guard against a corrupt
|
|
28
|
+
* length turning into a huge slice. Model metadata values are strings — a class
|
|
29
|
+
* name map for thousands of classes still fits well inside this.
|
|
30
|
+
*/
|
|
31
|
+
const MAX_FIELD_BYTES = 1 << 20;
|
|
32
|
+
/**
|
|
33
|
+
* Read a base-128 varint.
|
|
34
|
+
*
|
|
35
|
+
* @param cursor Cursor to advance.
|
|
36
|
+
* @returns The value, or `null` when the varint is truncated or overlong
|
|
37
|
+
* (beyond the 64-bit range protobuf allows).
|
|
38
|
+
*/
|
|
39
|
+
function readVarint(cursor) {
|
|
40
|
+
let result = 0;
|
|
41
|
+
let shift = 0;
|
|
42
|
+
while (cursor.pos < cursor.end) {
|
|
43
|
+
const byte = cursor.bytes[cursor.pos];
|
|
44
|
+
cursor.pos += 1;
|
|
45
|
+
result += (byte & 0x7f) * 2 ** shift;
|
|
46
|
+
if ((byte & 0x80) === 0)
|
|
47
|
+
return result;
|
|
48
|
+
shift += 7;
|
|
49
|
+
if (shift > 63)
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Skip a field whose contents are not needed.
|
|
56
|
+
*
|
|
57
|
+
* @param cursor Cursor to advance past the field's payload.
|
|
58
|
+
* @param wireType Wire type read from the field's tag.
|
|
59
|
+
* @returns `true` when the field was skipped, `false` when the stream is
|
|
60
|
+
* unreadable from here (unknown wire type or truncated payload).
|
|
61
|
+
*/
|
|
62
|
+
function skipField(cursor, wireType) {
|
|
63
|
+
switch (wireType) {
|
|
64
|
+
case WIRE_VARINT:
|
|
65
|
+
return readVarint(cursor) !== null;
|
|
66
|
+
case WIRE_FIXED64:
|
|
67
|
+
cursor.pos += 8;
|
|
68
|
+
return cursor.pos <= cursor.end;
|
|
69
|
+
case WIRE_LENGTH_DELIMITED: {
|
|
70
|
+
const length = readVarint(cursor);
|
|
71
|
+
if (length === null)
|
|
72
|
+
return false;
|
|
73
|
+
cursor.pos += length;
|
|
74
|
+
return cursor.pos <= cursor.end;
|
|
75
|
+
}
|
|
76
|
+
case WIRE_FIXED32:
|
|
77
|
+
cursor.pos += 4;
|
|
78
|
+
return cursor.pos <= cursor.end;
|
|
79
|
+
default:
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Read a length-delimited payload as a byte range.
|
|
85
|
+
*
|
|
86
|
+
* @param cursor Cursor to advance past the payload.
|
|
87
|
+
* @returns Start and end offsets of the payload, or `null` when the length is
|
|
88
|
+
* truncated, overruns the buffer, or exceeds {@link MAX_FIELD_BYTES}.
|
|
89
|
+
*/
|
|
90
|
+
function readLengthDelimited(cursor) {
|
|
91
|
+
const length = readVarint(cursor);
|
|
92
|
+
if (length === null || length > MAX_FIELD_BYTES)
|
|
93
|
+
return null;
|
|
94
|
+
const start = cursor.pos;
|
|
95
|
+
const end = start + length;
|
|
96
|
+
if (end > cursor.end)
|
|
97
|
+
return null;
|
|
98
|
+
cursor.pos = end;
|
|
99
|
+
return { start, end };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Decode one `StringStringEntryProto` into a key/value pair.
|
|
103
|
+
*
|
|
104
|
+
* @param bytes The model buffer.
|
|
105
|
+
* @param start Offset the entry's payload starts at.
|
|
106
|
+
* @param end Offset the entry's payload ends at.
|
|
107
|
+
* @returns The pair, or `null` when either half is missing or undecodable.
|
|
108
|
+
*/
|
|
109
|
+
function readEntry(bytes, start, end) {
|
|
110
|
+
const cursor = { bytes, end, pos: start };
|
|
111
|
+
const decoder = new TextDecoder("utf-8", { fatal: false });
|
|
112
|
+
let key = null;
|
|
113
|
+
let value = null;
|
|
114
|
+
while (cursor.pos < end) {
|
|
115
|
+
const tag = readVarint(cursor);
|
|
116
|
+
if (tag === null)
|
|
117
|
+
return null;
|
|
118
|
+
const field = tag >>> 3;
|
|
119
|
+
const wireType = tag & 0x07;
|
|
120
|
+
if (wireType === WIRE_LENGTH_DELIMITED &&
|
|
121
|
+
(field === ENTRY_KEY_FIELD || field === ENTRY_VALUE_FIELD)) {
|
|
122
|
+
const range = readLengthDelimited(cursor);
|
|
123
|
+
if (range === null)
|
|
124
|
+
return null;
|
|
125
|
+
const text = decoder.decode(bytes.subarray(range.start, range.end));
|
|
126
|
+
if (field === ENTRY_KEY_FIELD)
|
|
127
|
+
key = text;
|
|
128
|
+
else
|
|
129
|
+
value = text;
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
if (!skipField(cursor, wireType))
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
if (key === null || value === null)
|
|
136
|
+
return null;
|
|
137
|
+
return [key, value];
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Collect a model's custom metadata map straight out of its bytes.
|
|
141
|
+
*
|
|
142
|
+
* @param model The `.onnx` file contents.
|
|
143
|
+
* @returns Key/value metadata — `names`, `task`, `imgsz`, ... for an
|
|
144
|
+
* Ultralytics export — or an empty object when the file carries none or
|
|
145
|
+
* cannot be walked.
|
|
146
|
+
*/
|
|
147
|
+
export function readModelMetadata(model) {
|
|
148
|
+
const bytes = model instanceof Uint8Array ? model : new Uint8Array(model);
|
|
149
|
+
const cursor = { bytes, end: bytes.length, pos: 0 };
|
|
150
|
+
const metadata = {};
|
|
151
|
+
while (cursor.pos < cursor.end) {
|
|
152
|
+
const tag = readVarint(cursor);
|
|
153
|
+
if (tag === null)
|
|
154
|
+
break;
|
|
155
|
+
const field = tag >>> 3;
|
|
156
|
+
const wireType = tag & 0x07;
|
|
157
|
+
if (field === MODEL_METADATA_PROPS_FIELD && wireType === WIRE_LENGTH_DELIMITED) {
|
|
158
|
+
const range = readLengthDelimited(cursor);
|
|
159
|
+
if (range === null)
|
|
160
|
+
break;
|
|
161
|
+
const entry = readEntry(bytes, range.start, range.end);
|
|
162
|
+
if (entry)
|
|
163
|
+
metadata[entry[0]] = entry[1];
|
|
164
|
+
continue;
|
|
165
|
+
}
|
|
166
|
+
if (!skipField(cursor, wireType))
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
return metadata;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Read the class names an export baked into the model metadata.
|
|
173
|
+
*
|
|
174
|
+
* Ultralytics writes `names` as the Python `repr` of a `dict[int, str]` — e.g.
|
|
175
|
+
* `"{0: 'deworm', 1: 'not_deworm'}"`. The value is parsed structurally (never
|
|
176
|
+
* evaluated), and anything unparseable, non-`dict`, or not keyed by contiguous
|
|
177
|
+
* integers from zero is rejected whole rather than half-applied: a partial name
|
|
178
|
+
* map would silently mislabel predictions.
|
|
179
|
+
*
|
|
180
|
+
* @param metadata A model's custom metadata map.
|
|
181
|
+
* @returns Class names in class-id order, or `null` when the model carries no
|
|
182
|
+
* usable `names` entry.
|
|
183
|
+
*/
|
|
184
|
+
export function modelNames(metadata) {
|
|
185
|
+
const raw = metadata?.names?.trim();
|
|
186
|
+
if (!raw || !raw.startsWith("{") || !raw.endsWith("}"))
|
|
187
|
+
return null;
|
|
188
|
+
const body = raw.slice(1, -1).trim();
|
|
189
|
+
if (!body)
|
|
190
|
+
return null;
|
|
191
|
+
const names = new Map();
|
|
192
|
+
const entryPattern = /(-?\d+)\s*:\s*(?:'((?:[^'\\]|\\.)*)'|"((?:[^"\\]|\\.)*)")/g;
|
|
193
|
+
let consumed = 0;
|
|
194
|
+
for (const match of body.matchAll(entryPattern)) {
|
|
195
|
+
const id = Number(match[1]);
|
|
196
|
+
const text = match[2] ?? match[3];
|
|
197
|
+
if (!Number.isInteger(id) || text === undefined)
|
|
198
|
+
return null;
|
|
199
|
+
names.set(id, unescapeQuoted(text));
|
|
200
|
+
consumed += match[0].length;
|
|
201
|
+
}
|
|
202
|
+
if (names.size === 0)
|
|
203
|
+
return null;
|
|
204
|
+
const separators = body.length - consumed;
|
|
205
|
+
if (separators > names.size * 3)
|
|
206
|
+
return null;
|
|
207
|
+
const ordered = [];
|
|
208
|
+
for (let id = 0; id < names.size; id += 1) {
|
|
209
|
+
const name = names.get(id);
|
|
210
|
+
if (name === undefined)
|
|
211
|
+
return null;
|
|
212
|
+
ordered.push(name);
|
|
213
|
+
}
|
|
214
|
+
return ordered;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Resolve the backslash escapes Python's `repr` emits inside a quoted string.
|
|
218
|
+
*
|
|
219
|
+
* @param text The quoted string's contents, escapes intact.
|
|
220
|
+
* @returns The same text with `\\`, `\'`, `\"`, `\n`, `\r` and `\t` resolved.
|
|
221
|
+
*/
|
|
222
|
+
function unescapeQuoted(text) {
|
|
223
|
+
return text.replace(/\\(.)/g, (_, char) => {
|
|
224
|
+
if (char === "n")
|
|
225
|
+
return "\n";
|
|
226
|
+
if (char === "r")
|
|
227
|
+
return "\r";
|
|
228
|
+
if (char === "t")
|
|
229
|
+
return "\t";
|
|
230
|
+
return char;
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"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"}
|
package/dist/core/session.d.ts
CHANGED
|
@@ -10,6 +10,17 @@ export interface OrtSessionOptions {
|
|
|
10
10
|
readonly providers?: readonly string[];
|
|
11
11
|
/** Optional ORT session options forwarded to `InferenceSession.create`. */
|
|
12
12
|
readonly sessionOptions?: ort.InferenceSession.SessionOptions;
|
|
13
|
+
/**
|
|
14
|
+
* Whether to read the model's custom metadata map (`names`, `task`, `imgsz`).
|
|
15
|
+
* Defaults to `true`.
|
|
16
|
+
*
|
|
17
|
+
* The runtime does not expose that map, so it is read from the file itself —
|
|
18
|
+
* which means a URL model is fetched here and handed to ORT as bytes instead
|
|
19
|
+
* of letting ORT fetch it. That is the same single download either way, and
|
|
20
|
+
* it is what lets a task resolve its labels off the model. Set to `false` to
|
|
21
|
+
* keep the URL path untouched and leave {@link OrtSession.metadata} empty.
|
|
22
|
+
*/
|
|
23
|
+
readonly readMetadata?: boolean;
|
|
13
24
|
}
|
|
14
25
|
/**
|
|
15
26
|
* Wrap an ONNX Runtime Web `InferenceSession` with convenient metadata access.
|
|
@@ -21,12 +32,14 @@ export interface OrtSessionOptions {
|
|
|
21
32
|
export declare class OrtSession {
|
|
22
33
|
private readonly _session;
|
|
23
34
|
readonly providers: readonly string[];
|
|
35
|
+
private readonly _metadata;
|
|
24
36
|
private constructor();
|
|
25
37
|
/**
|
|
26
38
|
* Load an ONNX model into an ORT inference session.
|
|
27
39
|
*
|
|
28
|
-
* @param model Either a URL string
|
|
29
|
-
* @param options Provider list
|
|
40
|
+
* @param model Either a URL string, or a `Uint8Array`/`ArrayBuffer` containing the model bytes.
|
|
41
|
+
* @param options Provider list, pass-through `SessionOptions`, and whether to
|
|
42
|
+
* read the model's metadata map (see {@link OrtSessionOptions.readMetadata}).
|
|
30
43
|
* @throws {@link ModelLoadError} if the model cannot be loaded.
|
|
31
44
|
*/
|
|
32
45
|
static create(model: ModelSource, options?: OrtSessionOptions): Promise<OrtSession>;
|
|
@@ -50,6 +63,28 @@ export declare class OrtSession {
|
|
|
50
63
|
* Empty when the runtime reports no metadata for it.
|
|
51
64
|
*/
|
|
52
65
|
get inputShape(): DeclaredShape;
|
|
66
|
+
/**
|
|
67
|
+
* Shapes the graph declares for its outputs, in declaration order.
|
|
68
|
+
*
|
|
69
|
+
* Dynamic (symbolic) axes appear as `null`. Reading them is how a task can
|
|
70
|
+
* tell how many classes a head emits without being told.
|
|
71
|
+
*/
|
|
72
|
+
get outputShapes(): readonly DeclaredShape[];
|
|
73
|
+
/**
|
|
74
|
+
* Shape the graph declares for its first output, dynamic axes as `null`.
|
|
75
|
+
*
|
|
76
|
+
* Empty when the runtime reports no metadata for it.
|
|
77
|
+
*/
|
|
78
|
+
get outputShape(): DeclaredShape;
|
|
79
|
+
/**
|
|
80
|
+
* The model's custom metadata map — `names`, `task`, `imgsz`, ... for an
|
|
81
|
+
* Ultralytics export.
|
|
82
|
+
*
|
|
83
|
+
* Read from the model's bytes at load time, since the runtime does not expose
|
|
84
|
+
* it. Empty when the session was created with `readMetadata: false`, from a
|
|
85
|
+
* URL that could not be fetched here, or from a model carrying no metadata.
|
|
86
|
+
*/
|
|
87
|
+
get metadata(): Readonly<Record<string, string>>;
|
|
53
88
|
/**
|
|
54
89
|
* Release the native session and free its memory.
|
|
55
90
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,KAAK,aAAa,EAAsB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,GAAG,MAAM,iBAAiB,CAAC;AAI5C,OAAO,EAAE,KAAK,aAAa,EAAsB,MAAM,YAAY,CAAC;AAIpE,kDAAkD;AAClD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,eAAe,GAAG,UAAU,CAAC;AAsBhE,MAAM,WAAW,iBAAiB;IAChC,2FAA2F;IAC3F,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,cAAc,CAAC;IAC9D;;;;;;;;;OASG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IAEnB,OAAO,CAAC,QAAQ,CAAC,QAAQ;aACT,SAAS,EAAE,SAAS,MAAM,EAAE;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS;IAH5B,OAAO;IAMP;;;;;;;OAOG;WACU,MAAM,CACjB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IAkCtB,yDAAyD;IACzD,IAAI,UAAU,IAAI,SAAS,MAAM,EAAE,CAElC;IAED,kDAAkD;IAClD,IAAI,SAAS,IAAI,MAAM,CAMtB;IAED,0DAA0D;IAC1D,IAAI,WAAW,IAAI,SAAS,MAAM,EAAE,CAEnC;IAED;;;;;;OAMG;IACH,IAAI,WAAW,IAAI,SAAS,aAAa,EAAE,CAM1C;IAED;;;;OAIG;IACH,IAAI,UAAU,IAAI,aAAa,CAE9B;IAED;;;;;OAKG;IACH,IAAI,YAAY,IAAI,SAAS,aAAa,EAAE,CAM3C;IAED;;;;OAIG;IACH,IAAI,WAAW,IAAI,aAAa,CAE/B;IAED;;;;;;;OAOG;IACH,IAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE/C;IAED;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B,wEAAwE;IACxE,IAAI,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAE9B;IAED;;;;;OAKG;IACG,GAAG,CACP,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,GAChC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAWvC"}
|
package/dist/core/session.js
CHANGED
|
@@ -4,7 +4,29 @@
|
|
|
4
4
|
import * as ortRuntime from "onnxruntime-web";
|
|
5
5
|
import { InferenceError, ModelLoadError } from "./exceptions.js";
|
|
6
6
|
import { declaredShapesFrom } from "./graph.js";
|
|
7
|
+
import { readModelMetadata } from "./metadata.js";
|
|
7
8
|
import { resolveProviders } from "./providers.js";
|
|
9
|
+
/**
|
|
10
|
+
* Fetch a model URL as bytes so its metadata can be read.
|
|
11
|
+
*
|
|
12
|
+
* Falls back to the URL itself when the fetch fails, letting ORT try its own
|
|
13
|
+
* load path: losing the metadata map is a downgrade, but failing to load a model
|
|
14
|
+
* that ORT could have fetched would be a regression.
|
|
15
|
+
*
|
|
16
|
+
* @param url Where the `.onnx` lives.
|
|
17
|
+
* @returns The model bytes, or the original URL when they could not be fetched.
|
|
18
|
+
*/
|
|
19
|
+
async function fetchModel(url) {
|
|
20
|
+
try {
|
|
21
|
+
const response = await fetch(url);
|
|
22
|
+
if (!response.ok)
|
|
23
|
+
return url;
|
|
24
|
+
return new Uint8Array(await response.arrayBuffer());
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return url;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
8
30
|
/**
|
|
9
31
|
* Wrap an ONNX Runtime Web `InferenceSession` with convenient metadata access.
|
|
10
32
|
*
|
|
@@ -15,15 +37,18 @@ import { resolveProviders } from "./providers.js";
|
|
|
15
37
|
export class OrtSession {
|
|
16
38
|
_session;
|
|
17
39
|
providers;
|
|
18
|
-
|
|
40
|
+
_metadata;
|
|
41
|
+
constructor(_session, providers, _metadata) {
|
|
19
42
|
this._session = _session;
|
|
20
43
|
this.providers = providers;
|
|
44
|
+
this._metadata = _metadata;
|
|
21
45
|
}
|
|
22
46
|
/**
|
|
23
47
|
* Load an ONNX model into an ORT inference session.
|
|
24
48
|
*
|
|
25
|
-
* @param model Either a URL string
|
|
26
|
-
* @param options Provider list
|
|
49
|
+
* @param model Either a URL string, or a `Uint8Array`/`ArrayBuffer` containing the model bytes.
|
|
50
|
+
* @param options Provider list, pass-through `SessionOptions`, and whether to
|
|
51
|
+
* read the model's metadata map (see {@link OrtSessionOptions.readMetadata}).
|
|
27
52
|
* @throws {@link ModelLoadError} if the model cannot be loaded.
|
|
28
53
|
*/
|
|
29
54
|
static async create(model, options = {}) {
|
|
@@ -32,22 +57,25 @@ export class OrtSession {
|
|
|
32
57
|
...(options.sessionOptions ?? {}),
|
|
33
58
|
executionProviders: providers,
|
|
34
59
|
};
|
|
60
|
+
const wantsMetadata = options.readMetadata !== false;
|
|
61
|
+
const source = typeof model === "string" && wantsMetadata ? await fetchModel(model) : model;
|
|
35
62
|
let session;
|
|
36
63
|
try {
|
|
37
|
-
if (typeof
|
|
38
|
-
session = await ortRuntime.InferenceSession.create(
|
|
64
|
+
if (typeof source === "string") {
|
|
65
|
+
session = await ortRuntime.InferenceSession.create(source, sessionOptions);
|
|
39
66
|
}
|
|
40
|
-
else if (
|
|
41
|
-
session = await ortRuntime.InferenceSession.create(
|
|
67
|
+
else if (source instanceof Uint8Array) {
|
|
68
|
+
session = await ortRuntime.InferenceSession.create(source, sessionOptions);
|
|
42
69
|
}
|
|
43
70
|
else {
|
|
44
|
-
session = await ortRuntime.InferenceSession.create(
|
|
71
|
+
session = await ortRuntime.InferenceSession.create(source, sessionOptions);
|
|
45
72
|
}
|
|
46
73
|
}
|
|
47
74
|
catch (err) {
|
|
48
75
|
throw new ModelLoadError(`Failed to load ONNX model: ${err.message}`, { cause: err });
|
|
49
76
|
}
|
|
50
|
-
|
|
77
|
+
const metadata = wantsMetadata && typeof source !== "string" ? readModelMetadata(source) : {};
|
|
78
|
+
return new OrtSession(session, providers, metadata);
|
|
51
79
|
}
|
|
52
80
|
/** Names of the model's inputs, in declaration order. */
|
|
53
81
|
get inputNames() {
|
|
@@ -83,6 +111,34 @@ export class OrtSession {
|
|
|
83
111
|
get inputShape() {
|
|
84
112
|
return this.inputShapes[0] ?? [];
|
|
85
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* Shapes the graph declares for its outputs, in declaration order.
|
|
116
|
+
*
|
|
117
|
+
* Dynamic (symbolic) axes appear as `null`. Reading them is how a task can
|
|
118
|
+
* tell how many classes a head emits without being told.
|
|
119
|
+
*/
|
|
120
|
+
get outputShapes() {
|
|
121
|
+
return declaredShapesFrom(this._session.outputMetadata);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Shape the graph declares for its first output, dynamic axes as `null`.
|
|
125
|
+
*
|
|
126
|
+
* Empty when the runtime reports no metadata for it.
|
|
127
|
+
*/
|
|
128
|
+
get outputShape() {
|
|
129
|
+
return this.outputShapes[0] ?? [];
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The model's custom metadata map — `names`, `task`, `imgsz`, ... for an
|
|
133
|
+
* Ultralytics export.
|
|
134
|
+
*
|
|
135
|
+
* Read from the model's bytes at load time, since the runtime does not expose
|
|
136
|
+
* it. Empty when the session was created with `readMetadata: false`, from a
|
|
137
|
+
* URL that could not be fetched here, or from a model carrying no metadata.
|
|
138
|
+
*/
|
|
139
|
+
get metadata() {
|
|
140
|
+
return this._metadata;
|
|
141
|
+
}
|
|
86
142
|
/**
|
|
87
143
|
* Release the native session and free its memory.
|
|
88
144
|
*
|
package/dist/core/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAE9C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAsB,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,8 @@ export { Boxes, ClassificationResults, DetectionResults, Masks, Probs, Segmentat
|
|
|
7
7
|
export { COCO_CLASSES, type LabelSpec, type ResolveLabelsOptions, resolveLabels, } from "./labels.js";
|
|
8
8
|
export { ImageLoadError, InferenceError, LabelMapError, ModelLoadError, OrtVisionError, ProviderNotAvailableError, } from "./core/exceptions.js";
|
|
9
9
|
export { type ModelSource, type OrtSessionOptions, OrtSession, } from "./core/session.js";
|
|
10
|
-
export { type DeclaredDim, type DeclaredShape, type ResolveInputSizeOptions, declaredShapesFrom, resolveInputSize, spatialInputSize, } from "./core/graph.js";
|
|
10
|
+
export { type DeclaredDim, type DeclaredShape, type ResolveInputSizeOptions, classificationNumClasses, declaredShapesFrom, detectionNumClasses, resolveInputSize, spatialInputSize, } from "./core/graph.js";
|
|
11
|
+
export { modelNames, readModelMetadata } from "./core/metadata.js";
|
|
11
12
|
export { DEFAULT_PROVIDERS, resolveProviders } from "./core/providers.js";
|
|
12
13
|
export { type Speed, SpeedTimer } from "./core/timing.js";
|
|
13
14
|
export { type ImageInput, loadImage } from "./io/image.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,KAAK,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EACL,KAAK,eAAe,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,KAAK,UAAU,EACf,OAAO,EACP,IAAI,GACL,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,GAAG,GACJ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,aAAa,EACb,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,OAAO,EAAE,MAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,EACR,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EACZ,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EACtB,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,uBAAuB,EAC5B,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,KAAK,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,KAAK,UAAU,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EACL,KAAK,eAAe,EACpB,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,KAAK,UAAU,EACf,OAAO,EACP,IAAI,GACL,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,iBAAiB,EACtB,KAAK,0BAA0B,EAC/B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,GAAG,GACJ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,sBAAsB,EAC3B,KAAK,mBAAmB,EACxB,aAAa,EACb,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,eAAO,MAAM,OAAO,EAAE,MAAgB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,8 @@ export { Boxes, ClassificationResults, DetectionResults, Masks, Probs, Segmentat
|
|
|
7
7
|
export { COCO_CLASSES, resolveLabels, } from "./labels.js";
|
|
8
8
|
export { ImageLoadError, InferenceError, LabelMapError, ModelLoadError, OrtVisionError, ProviderNotAvailableError, } from "./core/exceptions.js";
|
|
9
9
|
export { OrtSession, } from "./core/session.js";
|
|
10
|
-
export { declaredShapesFrom, resolveInputSize, spatialInputSize, } from "./core/graph.js";
|
|
10
|
+
export { classificationNumClasses, declaredShapesFrom, detectionNumClasses, resolveInputSize, spatialInputSize, } from "./core/graph.js";
|
|
11
|
+
export { modelNames, readModelMetadata } from "./core/metadata.js";
|
|
11
12
|
export { DEFAULT_PROVIDERS, resolveProviders } from "./core/providers.js";
|
|
12
13
|
export { SpeedTimer } from "./core/timing.js";
|
|
13
14
|
export { loadImage } from "./io/image.js";
|
|
@@ -19,5 +20,5 @@ export { VisionTask } from "./tasks/base.js";
|
|
|
19
20
|
export { Classifier, } from "./tasks/classifier.js";
|
|
20
21
|
export { Detector, } from "./tasks/detector.js";
|
|
21
22
|
export { Segmenter, } from "./tasks/segmenter.js";
|
|
22
|
-
export const VERSION = "0.
|
|
23
|
+
export const VERSION = "0.5.0";
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,GAKT,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EAGZ,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAmB,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,OAAO,EACP,IAAI,GACL,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAOL,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,GAAG,GACJ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAIL,aAAa,EACb,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAGL,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,WAAW,EACX,IAAI,EACJ,QAAQ,GAKT,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,KAAK,EACL,qBAAqB,EACrB,gBAAgB,EAChB,KAAK,EACL,KAAK,EACL,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,YAAY,EAGZ,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAGL,UAAU,GACX,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAIL,wBAAwB,EACxB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAc,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAmB,SAAS,EAAE,MAAM,eAAe,CAAC;AAE3D,OAAO,EAEL,OAAO,EACP,SAAS,EACT,SAAS,EACT,MAAM,EACN,KAAK,EACL,KAAK,EACL,SAAS,EACT,eAAe,EACf,QAAQ,GACT,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAEL,OAAO,EACP,IAAI,GACL,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAOL,UAAU,EACV,UAAU,EACV,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,GAAG,GACJ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAIL,aAAa,EACb,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAGL,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAIL,QAAQ,GACT,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAIL,SAAS,GACV,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,OAAO,GAAW,OAAO,CAAC"}
|
|
@@ -7,11 +7,20 @@ import { type LabelSpec } from "../labels.js";
|
|
|
7
7
|
import { ClassificationResults } from "../results.js";
|
|
8
8
|
import { VisionTask } from "./base.js";
|
|
9
9
|
export interface ClassifierOptions extends OrtSessionOptions {
|
|
10
|
-
/** Class label spec — see {@link resolveLabels}. */
|
|
11
|
-
readonly labels: LabelSpec;
|
|
12
10
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* Class label spec — see {@link resolveLabels}.
|
|
12
|
+
*
|
|
13
|
+
* Optional: when omitted, the names the export baked into the model are used
|
|
14
|
+
* (Ultralytics writes them as `names` in the metadata map). Only when the
|
|
15
|
+
* model carries none does this fall back to generated `class_<id>` labels.
|
|
16
|
+
* Passing a spec always wins, for a model whose names are wrong or absent.
|
|
17
|
+
*/
|
|
18
|
+
readonly labels?: LabelSpec;
|
|
19
|
+
/**
|
|
20
|
+
* Number of classes the model can predict.
|
|
21
|
+
*
|
|
22
|
+
* Optional: inferred from the classification head's declared output shape
|
|
23
|
+
* `(B, nc)`. Pass it to validate that the supplied labels match the model.
|
|
15
24
|
*/
|
|
16
25
|
readonly numClasses?: number;
|
|
17
26
|
/**
|
|
@@ -71,7 +80,7 @@ export declare class Classifier extends VisionTask {
|
|
|
71
80
|
private readonly _applySoftmax;
|
|
72
81
|
private constructor();
|
|
73
82
|
/** Load the model and resolve labels. */
|
|
74
|
-
static create(model: ModelSource, options
|
|
83
|
+
static create(model: ModelSource, options?: ClassifierOptions): Promise<Classifier>;
|
|
75
84
|
/** Class labels indexed by class id. */
|
|
76
85
|
get labels(): readonly string[];
|
|
77
86
|
/** Class id → class name dict (matches Ultralytics' `model.names`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/tasks/classifier.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAc,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../src/tasks/classifier.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAc,MAAM,oBAAoB,CAAC;AAE1F,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,cAAc,CAAC;AAQ7D,OAAO,EAAE,qBAAqB,EAAS,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAUvC,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,yEAAyE;IACzE,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,gEAAgE;IAChE,QAAQ,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD;;;;OAIG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,UAAW,SAAQ,UAAU;IAGtC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAPhC,OAAO;IAYP,yCAAyC;WAC5B,MAAM,CACjB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,UAAU,CAAC;IA0BtB,wCAAwC;IACxC,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED,uEAAuE;IACvE,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE5C;IAED;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzC;IAED,+CAA+C;IAC/C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED,4EAA4E;IACtE,IAAI,CACR,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAInC,4CAA4C;IACtC,OAAO,CACX,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAiEnC,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;CAGrB"}
|
package/dist/tasks/classifier.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { OrtSession } from "../core/session.js";
|
|
5
5
|
import { SpeedTimer } from "../core/timing.js";
|
|
6
|
-
import { resolveInputSize } from "../core/graph.js";
|
|
7
6
|
import { loadImage } from "../io/image.js";
|
|
7
|
+
import { classificationNumClasses, resolveInputSize } from "../core/graph.js";
|
|
8
|
+
import { modelNames } from "../core/metadata.js";
|
|
8
9
|
import { resolveLabels } from "../labels.js";
|
|
9
10
|
import { softmax, topK } from "../postprocess/classification.js";
|
|
10
11
|
import { normalize, resize, toCHW, toFloat32Tensor, } from "../preprocess/image.js";
|
|
@@ -50,9 +51,12 @@ export class Classifier extends VisionTask {
|
|
|
50
51
|
this._applySoftmax = _applySoftmax;
|
|
51
52
|
}
|
|
52
53
|
/** Load the model and resolve labels. */
|
|
53
|
-
static async create(model, options) {
|
|
54
|
+
static async create(model, options = {}) {
|
|
54
55
|
const session = await OrtSession.create(model, options);
|
|
55
|
-
const
|
|
56
|
+
const numClasses = options.numClasses ?? classificationNumClasses(session.outputShape) ?? undefined;
|
|
57
|
+
const labels = resolveLabels(options.labels ?? modelNames(session.metadata), {
|
|
58
|
+
numClasses,
|
|
59
|
+
});
|
|
56
60
|
const names = {};
|
|
57
61
|
for (let i = 0; i < labels.length; i++) {
|
|
58
62
|
names[i] = labels[i];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/tasks/classifier.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAA4C,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"classifier.js","sourceRoot":"","sources":["../../src/tasks/classifier.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/tasks/detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAc,MAAM,oBAAoB,CAAC;AAG1F,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../src/tasks/detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,iBAAiB,EAAc,MAAM,oBAAoB,CAAC;AAG1F,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,gBAAgB,CAAC;AAG5D,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,cAAc,CAAC;AAQ7D,OAAO,EAAS,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAOvC;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,MAAM,WAAW,eAAgB,SAAQ,iBAAiB;IACxD;;;OAGG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC;IAC7B,0FAA0F;IAC1F,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;IAC5B,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;;OAMG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,uDAAuD;IACvD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,yDAAyD;IACzD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,8CAA8C;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACrC,iDAAiD;IACjD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,QAAS,SAAQ,UAAU;IAGpC,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,cAAc;IARjC,OAAO;IAaP,yCAAyC;WAC5B,MAAM,CACjB,KAAK,EAAE,WAAW,EAClB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,QAAQ,CAAC;IA6BpB,+DAA+D;IAC/D,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,wCAAwC;IACxC,IAAI,MAAM,IAAI,SAAS,MAAM,EAAE,CAE9B;IAED,uEAAuE;IACvE,IAAI,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAE5C;IAED;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAEzC;IAED,4CAA4C;IAC5C,IAAI,UAAU,IAAI,MAAM,CAEvB;IAED;;;;;;OAMG;IACG,IAAI,CACR,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI9B;;;;;OAKG;IACG,OAAO,CACX,KAAK,EAAE,UAAU,EACjB,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IA0D9B,OAAO,CAAC,WAAW;IAkBnB,OAAO,CAAC,YAAY;IA4CpB,OAAO,CAAC,WAAW;CAmBpB"}
|
package/dist/tasks/detector.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { OrtSession } from "../core/session.js";
|
|
5
5
|
import { SpeedTimer } from "../core/timing.js";
|
|
6
|
-
import { resolveInputSize } from "../core/graph.js";
|
|
7
6
|
import { loadImage } from "../io/image.js";
|
|
7
|
+
import { detectionNumClasses, resolveInputSize } from "../core/graph.js";
|
|
8
|
+
import { modelNames } from "../core/metadata.js";
|
|
8
9
|
import { resolveLabels } from "../labels.js";
|
|
9
10
|
import { decodeYolo } from "../postprocess/detection.js";
|
|
10
11
|
import { letterbox, toCHW, toFloat32, toFloat32Tensor, } from "../preprocess/image.js";
|
|
@@ -55,8 +56,8 @@ export class Detector extends VisionTask {
|
|
|
55
56
|
throw new Error(`Unsupported detector head '${head}'. Supported: 'yolo'.`);
|
|
56
57
|
}
|
|
57
58
|
const session = await OrtSession.create(model, options);
|
|
58
|
-
const labels = resolveLabels(options.labels ?? "coco", {
|
|
59
|
-
numClasses: options.numClasses,
|
|
59
|
+
const labels = resolveLabels(options.labels ?? modelNames(session.metadata) ?? "coco", {
|
|
60
|
+
numClasses: options.numClasses ?? detectionNumClasses(session.outputShape) ?? undefined,
|
|
60
61
|
});
|
|
61
62
|
const names = {};
|
|
62
63
|
for (let i = 0; i < labels.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/tasks/detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAA4C,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"detector.js","sourceRoot":"","sources":["../../src/tasks/detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmenter.d.ts","sourceRoot":"","sources":["../../src/tasks/segmenter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,iBAAiB,EAEvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,KAAK,UAAU,EAAa,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"segmenter.d.ts","sourceRoot":"","sources":["../../src/tasks/segmenter.ts"],"names":[],"mappings":"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"}
|
package/dist/tasks/segmenter.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { OrtSession, } from "../core/session.js";
|
|
5
5
|
import { SpeedTimer } from "../core/timing.js";
|
|
6
|
-
import { resolveInputSize } from "../core/graph.js";
|
|
7
6
|
import { loadImage } from "../io/image.js";
|
|
7
|
+
import { detectionNumClasses, resolveInputSize } from "../core/graph.js";
|
|
8
|
+
import { modelNames } from "../core/metadata.js";
|
|
8
9
|
import { resolveLabels } from "../labels.js";
|
|
9
10
|
import { decodeYoloSeg } from "../postprocess/segmentation.js";
|
|
10
11
|
import { letterbox, toCHW, toFloat32, toFloat32Tensor, } from "../preprocess/image.js";
|
|
@@ -63,8 +64,8 @@ export class Segmenter extends VisionTask {
|
|
|
63
64
|
throw new Error(`Unsupported segmenter head '${head}'. Supported: 'yolo-seg'.`);
|
|
64
65
|
}
|
|
65
66
|
const session = await OrtSession.create(model, options);
|
|
66
|
-
const labels = resolveLabels(options.labels ?? "coco", {
|
|
67
|
-
numClasses: options.numClasses,
|
|
67
|
+
const labels = resolveLabels(options.labels ?? modelNames(session.metadata) ?? "coco", {
|
|
68
|
+
numClasses: options.numClasses ?? detectionNumClasses(session.outputShape) ?? undefined,
|
|
68
69
|
});
|
|
69
70
|
const names = {};
|
|
70
71
|
for (let i = 0; i < labels.length; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmenter.js","sourceRoot":"","sources":["../../src/tasks/segmenter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"segmenter.js","sourceRoot":"","sources":["../../src/tasks/segmenter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED