edgeflowjs 0.1.0 → 0.2.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/README.md +200 -66
- package/dist/backends/index.d.ts +9 -2
- package/dist/backends/index.d.ts.map +1 -1
- package/dist/backends/index.js +13 -13
- package/dist/backends/index.js.map +1 -1
- package/dist/backends/onnx.d.ts +11 -4
- package/dist/backends/onnx.d.ts.map +1 -1
- package/dist/backends/onnx.js +97 -78
- package/dist/backends/onnx.js.map +1 -1
- package/dist/backends/transformers-adapter.d.ts +99 -0
- package/dist/backends/transformers-adapter.d.ts.map +1 -0
- package/dist/backends/transformers-adapter.js +171 -0
- package/dist/backends/transformers-adapter.js.map +1 -0
- package/dist/backends/webgpu.d.ts +7 -5
- package/dist/backends/webgpu.d.ts.map +1 -1
- package/dist/backends/webgpu.js +7 -5
- package/dist/backends/webgpu.js.map +1 -1
- package/dist/backends/webnn.d.ts +6 -5
- package/dist/backends/webnn.d.ts.map +1 -1
- package/dist/backends/webnn.js +6 -5
- package/dist/backends/webnn.js.map +1 -1
- package/dist/core/composer.d.ts +118 -0
- package/dist/core/composer.d.ts.map +1 -0
- package/dist/core/composer.js +163 -0
- package/dist/core/composer.js.map +1 -0
- package/dist/core/device-profiler.d.ts +75 -0
- package/dist/core/device-profiler.d.ts.map +1 -0
- package/dist/core/device-profiler.js +131 -0
- package/dist/core/device-profiler.js.map +1 -0
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +8 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/memory.d.ts +22 -2
- package/dist/core/memory.d.ts.map +1 -1
- package/dist/core/memory.js +49 -13
- package/dist/core/memory.js.map +1 -1
- package/dist/core/plugin.d.ts +100 -0
- package/dist/core/plugin.d.ts.map +1 -0
- package/dist/core/plugin.js +106 -0
- package/dist/core/plugin.js.map +1 -0
- package/dist/core/runtime.d.ts +4 -0
- package/dist/core/runtime.d.ts.map +1 -1
- package/dist/core/runtime.js +18 -0
- package/dist/core/runtime.js.map +1 -1
- package/dist/core/scheduler.d.ts +17 -0
- package/dist/core/scheduler.d.ts.map +1 -1
- package/dist/core/scheduler.js +101 -3
- package/dist/core/scheduler.js.map +1 -1
- package/dist/core/types.d.ts +14 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/core/worker.d.ts +202 -0
- package/dist/core/worker.d.ts.map +1 -0
- package/dist/core/worker.js +477 -0
- package/dist/core/worker.js.map +1 -0
- package/dist/edgeflow.browser.js +9770 -4383
- package/dist/edgeflow.browser.js.map +4 -4
- package/dist/edgeflow.browser.min.js +435 -5
- package/dist/edgeflow.browser.min.js.map +4 -4
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -10
- package/dist/index.js.map +1 -1
- package/dist/pipelines/automatic-speech-recognition.d.ts +63 -0
- package/dist/pipelines/automatic-speech-recognition.d.ts.map +1 -0
- package/dist/pipelines/automatic-speech-recognition.js +269 -0
- package/dist/pipelines/automatic-speech-recognition.js.map +1 -0
- package/dist/pipelines/base.d.ts +6 -1
- package/dist/pipelines/base.d.ts.map +1 -1
- package/dist/pipelines/base.js +12 -2
- package/dist/pipelines/base.js.map +1 -1
- package/dist/pipelines/feature-extraction.d.ts +5 -40
- package/dist/pipelines/feature-extraction.d.ts.map +1 -1
- package/dist/pipelines/feature-extraction.js +44 -63
- package/dist/pipelines/feature-extraction.js.map +1 -1
- package/dist/pipelines/image-classification.d.ts +4 -36
- package/dist/pipelines/image-classification.d.ts.map +1 -1
- package/dist/pipelines/image-classification.js +22 -60
- package/dist/pipelines/image-classification.js.map +1 -1
- package/dist/pipelines/image-segmentation.d.ts +221 -0
- package/dist/pipelines/image-segmentation.d.ts.map +1 -0
- package/dist/pipelines/image-segmentation.js +535 -0
- package/dist/pipelines/image-segmentation.js.map +1 -0
- package/dist/pipelines/index.d.ts +18 -0
- package/dist/pipelines/index.d.ts.map +1 -1
- package/dist/pipelines/index.js +51 -2
- package/dist/pipelines/index.js.map +1 -1
- package/dist/pipelines/object-detection.d.ts +44 -0
- package/dist/pipelines/object-detection.d.ts.map +1 -0
- package/dist/pipelines/object-detection.js +218 -0
- package/dist/pipelines/object-detection.js.map +1 -0
- package/dist/pipelines/question-answering.d.ts +41 -0
- package/dist/pipelines/question-answering.d.ts.map +1 -0
- package/dist/pipelines/question-answering.js +164 -0
- package/dist/pipelines/question-answering.js.map +1 -0
- package/dist/pipelines/text-classification.d.ts +3 -39
- package/dist/pipelines/text-classification.d.ts.map +1 -1
- package/dist/pipelines/text-classification.js +29 -67
- package/dist/pipelines/text-classification.js.map +1 -1
- package/dist/pipelines/text-generation.d.ts +281 -0
- package/dist/pipelines/text-generation.d.ts.map +1 -0
- package/dist/pipelines/text-generation.js +766 -0
- package/dist/pipelines/text-generation.js.map +1 -0
- package/dist/pipelines/zero-shot-classification.d.ts +45 -0
- package/dist/pipelines/zero-shot-classification.d.ts.map +1 -0
- package/dist/pipelines/zero-shot-classification.js +140 -0
- package/dist/pipelines/zero-shot-classification.js.map +1 -0
- package/dist/tools/benchmark.d.ts +92 -0
- package/dist/tools/benchmark.d.ts.map +1 -0
- package/dist/tools/benchmark.js +213 -0
- package/dist/tools/benchmark.js.map +1 -0
- package/dist/tools/debugger.d.ts +258 -0
- package/dist/tools/debugger.d.ts.map +1 -0
- package/dist/tools/debugger.js +624 -0
- package/dist/tools/debugger.js.map +1 -0
- package/dist/tools/index.d.ts +8 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +16 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/monitor.d.ts +284 -0
- package/dist/tools/monitor.d.ts.map +1 -0
- package/dist/tools/monitor.js +921 -0
- package/dist/tools/monitor.js.map +1 -0
- package/dist/tools/quantization.d.ts +235 -0
- package/dist/tools/quantization.d.ts.map +1 -0
- package/dist/tools/quantization.js +830 -0
- package/dist/tools/quantization.js.map +1 -0
- package/dist/utils/hub.d.ts +162 -0
- package/dist/utils/hub.d.ts.map +1 -0
- package/dist/utils/hub.js +311 -0
- package/dist/utils/hub.js.map +1 -0
- package/dist/utils/index.d.ts +3 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/model-loader.d.ts.map +1 -1
- package/dist/utils/model-loader.js +106 -30
- package/dist/utils/model-loader.js.map +1 -1
- package/dist/utils/offline.d.ts +147 -0
- package/dist/utils/offline.d.ts.map +1 -0
- package/dist/utils/offline.js +405 -0
- package/dist/utils/offline.js.map +1 -0
- package/dist/utils/preprocessor.d.ts +82 -6
- package/dist/utils/preprocessor.d.ts.map +1 -1
- package/dist/utils/preprocessor.js +278 -21
- package/dist/utils/preprocessor.js.map +1 -1
- package/dist/utils/tokenizer.d.ts +197 -72
- package/dist/utils/tokenizer.d.ts.map +1 -1
- package/dist/utils/tokenizer.js +558 -274
- package/dist/utils/tokenizer.js.map +1 -1
- package/package.json +26 -11
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* edgeFlow.js - Image Segmentation Pipeline
|
|
3
|
+
*
|
|
4
|
+
* Interactive image segmentation using SAM (Segment Anything Model).
|
|
5
|
+
* Supports point prompts and bounding box prompts.
|
|
6
|
+
*/
|
|
7
|
+
import { PipelineConfig, PipelineOptions } from '../core/types.js';
|
|
8
|
+
import { EdgeFlowTensor } from '../core/tensor.js';
|
|
9
|
+
import { BasePipeline, PipelineResult } from './base.js';
|
|
10
|
+
/**
|
|
11
|
+
* Point prompt for segmentation
|
|
12
|
+
*/
|
|
13
|
+
export interface PointPrompt {
|
|
14
|
+
/** X coordinate (0-1 normalized) */
|
|
15
|
+
x: number;
|
|
16
|
+
/** Y coordinate (0-1 normalized) */
|
|
17
|
+
y: number;
|
|
18
|
+
/** 1 for foreground (include), 0 for background (exclude) */
|
|
19
|
+
label: 0 | 1;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Box prompt for segmentation
|
|
23
|
+
*/
|
|
24
|
+
export interface BoxPrompt {
|
|
25
|
+
/** Top-left X (0-1 normalized) */
|
|
26
|
+
x1: number;
|
|
27
|
+
/** Top-left Y (0-1 normalized) */
|
|
28
|
+
y1: number;
|
|
29
|
+
/** Bottom-right X (0-1 normalized) */
|
|
30
|
+
x2: number;
|
|
31
|
+
/** Bottom-right Y (0-1 normalized) */
|
|
32
|
+
y2: number;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Model loading progress callback
|
|
36
|
+
*/
|
|
37
|
+
export interface ModelLoadProgress {
|
|
38
|
+
/** Model name (encoder or decoder) */
|
|
39
|
+
model: 'encoder' | 'decoder';
|
|
40
|
+
/** Bytes loaded */
|
|
41
|
+
loaded: number;
|
|
42
|
+
/** Total bytes */
|
|
43
|
+
total: number;
|
|
44
|
+
/** Progress percentage (0-100) */
|
|
45
|
+
progress: number;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Segmentation options
|
|
49
|
+
*/
|
|
50
|
+
export interface ImageSegmentationOptions extends PipelineOptions {
|
|
51
|
+
/** Point prompts */
|
|
52
|
+
points?: PointPrompt[];
|
|
53
|
+
/** Box prompts */
|
|
54
|
+
boxes?: BoxPrompt[];
|
|
55
|
+
/** Return all masks or just the best one */
|
|
56
|
+
returnAllMasks?: boolean;
|
|
57
|
+
/** Mask threshold (0-1) */
|
|
58
|
+
maskThreshold?: number;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Segmentation result
|
|
62
|
+
*/
|
|
63
|
+
export interface ImageSegmentationResult extends PipelineResult {
|
|
64
|
+
/** Segmentation mask (Uint8Array, 0 or 255) */
|
|
65
|
+
mask: Uint8Array;
|
|
66
|
+
/** Mask width */
|
|
67
|
+
width: number;
|
|
68
|
+
/** Mask height */
|
|
69
|
+
height: number;
|
|
70
|
+
/** Confidence score */
|
|
71
|
+
score: number;
|
|
72
|
+
/** All masks if returnAllMasks is true */
|
|
73
|
+
allMasks?: Array<{
|
|
74
|
+
mask: Uint8Array;
|
|
75
|
+
score: number;
|
|
76
|
+
}>;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Image input types
|
|
80
|
+
*/
|
|
81
|
+
export type ImageInput = HTMLImageElement | HTMLCanvasElement | ImageBitmap | ImageData | string;
|
|
82
|
+
/**
|
|
83
|
+
* ImageSegmentationPipeline - Interactive image segmentation
|
|
84
|
+
*
|
|
85
|
+
* Uses SAM-style models for point/box prompted segmentation.
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const segmenter = createImageSegmentationPipeline();
|
|
90
|
+
*
|
|
91
|
+
* // Load models with progress callback
|
|
92
|
+
* await segmenter.loadModels((progress) => {
|
|
93
|
+
* console.log(`Loading ${progress.model}: ${progress.progress}%`);
|
|
94
|
+
* });
|
|
95
|
+
*
|
|
96
|
+
* // Set image and segment
|
|
97
|
+
* await segmenter.setImage(imageElement);
|
|
98
|
+
* const result = await segmenter.segment({
|
|
99
|
+
* points: [{ x: 0.5, y: 0.5, label: 1 }]
|
|
100
|
+
* });
|
|
101
|
+
* ```
|
|
102
|
+
*/
|
|
103
|
+
export declare class ImageSegmentationPipeline extends BasePipeline<ImageInput, ImageSegmentationResult> {
|
|
104
|
+
private encoderModel;
|
|
105
|
+
private decoderModel;
|
|
106
|
+
private imageEmbedding;
|
|
107
|
+
private imagePositionalEmbedding;
|
|
108
|
+
private currentImageSize;
|
|
109
|
+
private resizedImageSize;
|
|
110
|
+
private inputSize;
|
|
111
|
+
private modelsLoaded;
|
|
112
|
+
private encoderUrl;
|
|
113
|
+
private decoderUrl;
|
|
114
|
+
constructor(config: PipelineConfig);
|
|
115
|
+
/**
|
|
116
|
+
* Check if models are loaded
|
|
117
|
+
*/
|
|
118
|
+
get isModelsLoaded(): boolean;
|
|
119
|
+
/**
|
|
120
|
+
* Set custom model URLs
|
|
121
|
+
*/
|
|
122
|
+
setModelUrls(encoder: string, decoder: string): void;
|
|
123
|
+
/**
|
|
124
|
+
* Load both encoder and decoder models with progress callback
|
|
125
|
+
*/
|
|
126
|
+
loadModels(onProgress?: (progress: ModelLoadProgress) => void): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* Fetch model with progress tracking
|
|
129
|
+
*/
|
|
130
|
+
private fetchModelWithProgress;
|
|
131
|
+
/**
|
|
132
|
+
* Initialize pipeline (override to skip default model loading)
|
|
133
|
+
*/
|
|
134
|
+
initialize(): Promise<void>;
|
|
135
|
+
/**
|
|
136
|
+
* Load encoder model (processes the image once)
|
|
137
|
+
*/
|
|
138
|
+
loadEncoder(modelUrl: string): Promise<void>;
|
|
139
|
+
/**
|
|
140
|
+
* Load decoder model (processes prompts to generate masks)
|
|
141
|
+
*/
|
|
142
|
+
loadDecoder(modelUrl: string): Promise<void>;
|
|
143
|
+
/**
|
|
144
|
+
* Set and encode the image (call once per image)
|
|
145
|
+
*/
|
|
146
|
+
setImage(image: ImageInput): Promise<void>;
|
|
147
|
+
/**
|
|
148
|
+
* Segment the image with given prompts
|
|
149
|
+
*/
|
|
150
|
+
segment(options?: ImageSegmentationOptions): Promise<ImageSegmentationResult>;
|
|
151
|
+
/**
|
|
152
|
+
* Run segmentation (implements BasePipeline interface)
|
|
153
|
+
*/
|
|
154
|
+
run(input: ImageInput, options?: ImageSegmentationOptions): Promise<ImageSegmentationResult>;
|
|
155
|
+
/**
|
|
156
|
+
* Load image from various sources
|
|
157
|
+
*/
|
|
158
|
+
private loadImage;
|
|
159
|
+
/**
|
|
160
|
+
* Load image from URL
|
|
161
|
+
*/
|
|
162
|
+
private loadImageFromUrl;
|
|
163
|
+
/**
|
|
164
|
+
* Convert HTMLImageElement to ImageData
|
|
165
|
+
*/
|
|
166
|
+
private imageElementToImageData;
|
|
167
|
+
/**
|
|
168
|
+
* Convert canvas to ImageData
|
|
169
|
+
*/
|
|
170
|
+
private canvasToImageData;
|
|
171
|
+
/**
|
|
172
|
+
* Convert ImageBitmap to ImageData
|
|
173
|
+
*/
|
|
174
|
+
private imageBitmapToImageData;
|
|
175
|
+
/**
|
|
176
|
+
* Preprocess image for SAM
|
|
177
|
+
*/
|
|
178
|
+
private preprocessImage;
|
|
179
|
+
/**
|
|
180
|
+
* Prepare decoder inputs (prompts) for SlimSAM
|
|
181
|
+
*
|
|
182
|
+
* SlimSAM prompt_encoder_mask_decoder expects these named inputs:
|
|
183
|
+
* - image_embeddings: [1, 256, 64, 64]
|
|
184
|
+
* - point_coords: [batch, num_points, 2]
|
|
185
|
+
* - point_labels: [batch, num_points]
|
|
186
|
+
* - mask_input: [batch, 1, 256, 256]
|
|
187
|
+
* - has_mask_input: [batch, 1]
|
|
188
|
+
* - orig_im_size: [2]
|
|
189
|
+
* - position_ids: [batch, num_points]
|
|
190
|
+
*/
|
|
191
|
+
private prepareDecoderInputs;
|
|
192
|
+
/**
|
|
193
|
+
* Post-process masks from decoder output
|
|
194
|
+
*/
|
|
195
|
+
private postprocessMasks;
|
|
196
|
+
/**
|
|
197
|
+
* Resize mask from model output size to original image size
|
|
198
|
+
*/
|
|
199
|
+
private resizeMask;
|
|
200
|
+
/**
|
|
201
|
+
* Clear the current image embedding
|
|
202
|
+
*/
|
|
203
|
+
clearImage(): void;
|
|
204
|
+
/**
|
|
205
|
+
* Preprocess (required by BasePipeline)
|
|
206
|
+
*/
|
|
207
|
+
protected preprocess(input: ImageInput): Promise<EdgeFlowTensor[]>;
|
|
208
|
+
/**
|
|
209
|
+
* Postprocess (required by BasePipeline)
|
|
210
|
+
*/
|
|
211
|
+
protected postprocess(_outputs: EdgeFlowTensor[], _options?: PipelineOptions): Promise<ImageSegmentationResult>;
|
|
212
|
+
/**
|
|
213
|
+
* Dispose resources
|
|
214
|
+
*/
|
|
215
|
+
dispose(): void;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Create image segmentation pipeline
|
|
219
|
+
*/
|
|
220
|
+
export declare function createImageSegmentationPipeline(config?: Partial<PipelineConfig>): ImageSegmentationPipeline;
|
|
221
|
+
//# sourceMappingURL=image-segmentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-segmentation.d.ts","sourceRoot":"","sources":["../../src/pipelines/image-segmentation.ts"],"names":[],"mappings":"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"}
|