@webex/ladon-ts 4.4.0 → 4.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 +12 -0
- package/build/module/lib/config.js +1 -1
- package/build/module/lib/generator.d.ts +7 -5
- package/build/module/lib/generator.js +17 -7
- package/build/module/lib/pipeline.d.ts +31 -2
- package/build/module/lib/pipeline.js +90 -15
- package/build/module/lib/renderer/blur-renderer.d.ts +1 -1
- package/build/module/lib/renderer/blur-renderer.js +8 -5
- package/build/module/lib/renderer/ladon-renderer.d.ts +1 -1
- package/build/module/lib/renderer/passthrough-renderer.d.ts +1 -1
- package/build/module/lib/renderer/passthrough-renderer.js +1 -1
- package/build/module/lib/renderer/replacement-renderer.d.ts +1 -1
- package/build/module/lib/renderer/replacement-renderer.js +5 -4
- package/build/module/lib/renderer/webgl-renderer.d.ts +1 -1
- package/build/module/lib/renderer/webgl-renderer.js +8 -2
- package/build/module/lib/shared-resource-manager.js +1 -1
- package/build/module/lib/version.d.ts +1 -1
- package/build/module/lib/version.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## [4.5.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.4.0...v4.5.0) (2024-10-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* mask and frame syncing ([#13](https://github.com/beyonddunbar/ladon-ts/issues/13)) ([8a08404](https://github.com/beyonddunbar/ladon-ts/commit/8a08404afaf1479b82cd403ac45a3ecac64e94a1))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* lint ([6a05d3d](https://github.com/beyonddunbar/ladon-ts/commit/6a05d3d3f36e4d631f5e87530d654645c536bc57))
|
|
16
|
+
|
|
5
17
|
## [4.4.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.3.0...v4.4.0) (2024-09-03)
|
|
6
18
|
|
|
7
19
|
|
|
@@ -87,7 +87,7 @@ export const getPreloadConfig = (quality = Quality.LOW, generator = 'local', mod
|
|
|
87
87
|
model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
|
|
88
88
|
input_size: { height: 144, width: 256 },
|
|
89
89
|
output_size: { height: 144, width: 256 },
|
|
90
|
-
upscaled_size: { height:
|
|
90
|
+
upscaled_size: { height: 144, width: 256 },
|
|
91
91
|
model_rank: 4,
|
|
92
92
|
};
|
|
93
93
|
break;
|
|
@@ -13,13 +13,14 @@ export interface LadonOutput {
|
|
|
13
13
|
facesAndLandmarks: FacesAndLandmarks;
|
|
14
14
|
gesture: Float32Array;
|
|
15
15
|
motion: number;
|
|
16
|
+
timestamp: number;
|
|
16
17
|
warm: boolean;
|
|
17
18
|
}
|
|
18
19
|
export interface MaskGenerator {
|
|
19
|
-
getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
|
|
20
|
+
getLadonOutput(input: Uint8ClampedArray, timestamp: number): Promise<LadonOutput>;
|
|
20
21
|
load(): Promise<void>;
|
|
21
22
|
isLoaded(): boolean;
|
|
22
|
-
postRender(input: Uint8ClampedArray): Promise<void>;
|
|
23
|
+
postRender(input: Uint8ClampedArray, timestamp: number): Promise<void>;
|
|
23
24
|
destroy(): void;
|
|
24
25
|
}
|
|
25
26
|
export declare class LocalGenerator implements MaskGenerator {
|
|
@@ -27,7 +28,7 @@ export declare class LocalGenerator implements MaskGenerator {
|
|
|
27
28
|
private lastResult;
|
|
28
29
|
private lastMask;
|
|
29
30
|
private maskModel?;
|
|
30
|
-
private
|
|
31
|
+
private lastMaskGenerationTime;
|
|
31
32
|
private output?;
|
|
32
33
|
constructor(config: PipelineConfig);
|
|
33
34
|
/**
|
|
@@ -40,7 +41,8 @@ export declare class LocalGenerator implements MaskGenerator {
|
|
|
40
41
|
* @returns {Float32Array} - The processed data
|
|
41
42
|
*/
|
|
42
43
|
private preprocess;
|
|
43
|
-
|
|
44
|
+
getTimeSinceLastGeneration(): number;
|
|
45
|
+
getLadonOutput(input: Uint8ClampedArray, timestamp: number): Promise<LadonOutput>;
|
|
44
46
|
load(): Promise<void>;
|
|
45
47
|
isLoaded(): boolean;
|
|
46
48
|
postRender(_: Uint8ClampedArray): Promise<void>;
|
|
@@ -66,6 +68,6 @@ export declare class WorkerGenerator implements MaskGenerator {
|
|
|
66
68
|
getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
|
|
67
69
|
load(): Promise<void>;
|
|
68
70
|
isLoaded(): boolean;
|
|
69
|
-
postRender(input: Uint8ClampedArray): Promise<void>;
|
|
71
|
+
postRender(input: Uint8ClampedArray, timestamp: number): Promise<void>;
|
|
70
72
|
destroy(): void;
|
|
71
73
|
}
|
|
@@ -12,13 +12,14 @@ import { sharedResourceManager } from './shared-resource-manager';
|
|
|
12
12
|
export class LocalGenerator {
|
|
13
13
|
constructor(config) {
|
|
14
14
|
this.config = config;
|
|
15
|
-
this.
|
|
15
|
+
this.lastMaskGenerationTime = 0;
|
|
16
16
|
this.lastMask = new ort.Tensor('float32', new Float32Array(this.config.mask.output_size.height * this.config.mask.output_size.width), [1, 1, this.config.mask.output_size.height, this.config.mask.output_size.width]);
|
|
17
17
|
this.lastResult = {
|
|
18
18
|
data: this.lastMask.data,
|
|
19
19
|
facesAndLandmarks: { data: new Float32Array(0), dims: [] },
|
|
20
20
|
gesture: new Float32Array(0),
|
|
21
21
|
motion: 0,
|
|
22
|
+
timestamp: 0,
|
|
22
23
|
warm: false,
|
|
23
24
|
};
|
|
24
25
|
}
|
|
@@ -71,23 +72,26 @@ export class LocalGenerator {
|
|
|
71
72
|
}
|
|
72
73
|
return this.output;
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
+
getTimeSinceLastGeneration() {
|
|
76
|
+
return Date.now() - this.lastMaskGenerationTime;
|
|
77
|
+
}
|
|
78
|
+
getLadonOutput(input, timestamp) {
|
|
75
79
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
76
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
77
81
|
if (!this.maskModel) {
|
|
78
82
|
throw new Error('[ladon-ts] - mask model not loaded.');
|
|
79
83
|
}
|
|
80
|
-
|
|
81
|
-
if (!mask_generation_timeout) {
|
|
84
|
+
if (this.getTimeSinceLastGeneration() < this.config.mask.generation_interval_ms) {
|
|
82
85
|
return {
|
|
83
86
|
data: this.lastMask.data,
|
|
84
87
|
facesAndLandmarks: this.lastResult.facesAndLandmarks,
|
|
85
88
|
gesture: this.lastResult.gesture,
|
|
86
89
|
motion: this.lastResult.motion,
|
|
90
|
+
timestamp: this.lastResult.timestamp,
|
|
87
91
|
warm: false,
|
|
88
92
|
};
|
|
89
93
|
}
|
|
90
|
-
this.
|
|
94
|
+
this.lastMaskGenerationTime = Date.now();
|
|
91
95
|
const imageTensor = new ort.Tensor('float32', this.preprocess(input, this.lastMask.data), [
|
|
92
96
|
1,
|
|
93
97
|
this.config.mask.model_rank,
|
|
@@ -104,6 +108,7 @@ export class LocalGenerator {
|
|
|
104
108
|
},
|
|
105
109
|
gesture: (_g = (_f = results.gesture) === null || _f === void 0 ? void 0 : _f.data) !== null && _g !== void 0 ? _g : new Float32Array(0),
|
|
106
110
|
motion: (_j = (_h = results.motion) === null || _h === void 0 ? void 0 : _h.data[0]) !== null && _j !== void 0 ? _j : 0,
|
|
111
|
+
timestamp,
|
|
107
112
|
warm: true,
|
|
108
113
|
};
|
|
109
114
|
return this.lastResult;
|
|
@@ -148,6 +153,7 @@ export class NullGenerator {
|
|
|
148
153
|
facesAndLandmarks: { data: new Float32Array(0), dims: [] },
|
|
149
154
|
gesture: new Float32Array(0),
|
|
150
155
|
motion: 0,
|
|
156
|
+
timestamp: 0,
|
|
151
157
|
warm: false,
|
|
152
158
|
};
|
|
153
159
|
});
|
|
@@ -180,6 +186,7 @@ export class WorkerGenerator {
|
|
|
180
186
|
facesAndLandmarks: { data: new Float32Array(0), dims: [] },
|
|
181
187
|
gesture: new Float32Array(0),
|
|
182
188
|
motion: 0,
|
|
189
|
+
timestamp: 0,
|
|
183
190
|
warm: false,
|
|
184
191
|
};
|
|
185
192
|
}
|
|
@@ -191,6 +198,7 @@ export class WorkerGenerator {
|
|
|
191
198
|
facesAndLandmarks: this.lastResult.facesAndLandmarks,
|
|
192
199
|
gesture: this.lastResult.gesture,
|
|
193
200
|
motion: this.lastResult.motion,
|
|
201
|
+
timestamp: this.lastResult.timestamp,
|
|
194
202
|
warm: this.newMask,
|
|
195
203
|
};
|
|
196
204
|
this.newMask = false;
|
|
@@ -226,6 +234,7 @@ export class WorkerGenerator {
|
|
|
226
234
|
facesAndLandmarks: event.data.facesAndLandmarks,
|
|
227
235
|
gesture: event.data.gesture,
|
|
228
236
|
motion: event.data.motion,
|
|
237
|
+
timestamp: event.data.timestamp,
|
|
229
238
|
warm: true,
|
|
230
239
|
};
|
|
231
240
|
this.newMask = true;
|
|
@@ -244,7 +253,7 @@ export class WorkerGenerator {
|
|
|
244
253
|
isLoaded() {
|
|
245
254
|
return !!this.worker;
|
|
246
255
|
}
|
|
247
|
-
postRender(input) {
|
|
256
|
+
postRender(input, timestamp) {
|
|
248
257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
249
258
|
// claim ownership of the input tensor's buffer and forward to worker
|
|
250
259
|
if (!this.worker) {
|
|
@@ -253,6 +262,7 @@ export class WorkerGenerator {
|
|
|
253
262
|
this.worker.postMessage({
|
|
254
263
|
type: 'generate',
|
|
255
264
|
image: input,
|
|
265
|
+
timestamp,
|
|
256
266
|
}, [input.buffer]);
|
|
257
267
|
});
|
|
258
268
|
}
|
|
@@ -260,4 +270,4 @@ export class WorkerGenerator {
|
|
|
260
270
|
sharedResourceManager.terminateWorker();
|
|
261
271
|
}
|
|
262
272
|
}
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQTRCbEUsTUFBTSxPQUFPLGNBQWM7SUFPdkIsWUFBNEIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFIMUMseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUMxQixTQUFTLEVBQ1QsSUFBSSxZQUFZLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUMzRSxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEYsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ3hCLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDMUQsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksRUFBRSxLQUFLO1NBQ2QsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLFVBQVUs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
|
|
273
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQTZCbEUsTUFBTSxPQUFPLGNBQWM7SUFPdkIsWUFBNEIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFIMUMsMkJBQXNCLEdBQUcsQ0FBQyxDQUFDO1FBSS9CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUMxQixTQUFTLEVBQ1QsSUFBSSxZQUFZLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUMzRSxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEYsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ3hCLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDMUQsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsQ0FBQztZQUNULFNBQVMsRUFBRSxDQUFDO1lBQ1osSUFBSSxFQUFFLEtBQUs7U0FDZCxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7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
|
|
@@ -8,7 +8,7 @@ export interface IFrameInferenceResult {
|
|
|
8
8
|
timestamp: number;
|
|
9
9
|
}
|
|
10
10
|
export interface IPipeline {
|
|
11
|
-
onFrame(timestamp: number, maskNeeded?: boolean): Promise<IFrameInferenceResult>;
|
|
11
|
+
onFrame(timestamp: number, maskNeeded?: boolean, videoElement?: HTMLVideoElement): Promise<IFrameInferenceResult>;
|
|
12
12
|
isLoaded(): boolean;
|
|
13
13
|
load(): Promise<void>;
|
|
14
14
|
destroy(): void;
|
|
@@ -17,12 +17,21 @@ export declare class Pipeline implements IPipeline {
|
|
|
17
17
|
private inputCanvas;
|
|
18
18
|
private outputCanvas;
|
|
19
19
|
readonly config: PipelineConfig;
|
|
20
|
+
private readonly videoElement?;
|
|
20
21
|
private generator?;
|
|
21
22
|
private renderer?;
|
|
22
23
|
private loaded;
|
|
23
24
|
private inputCanvasCtx;
|
|
24
25
|
private lastMaskResult?;
|
|
25
|
-
|
|
26
|
+
private frameQueue;
|
|
27
|
+
private maskQueue;
|
|
28
|
+
constructor(inputCanvas: HTMLCanvasElement, outputCanvas: HTMLCanvasElement, config: PipelineConfig, videoElement?: HTMLVideoElement | undefined);
|
|
29
|
+
/**
|
|
30
|
+
* Gets the raw image data from the input canvas context.
|
|
31
|
+
*
|
|
32
|
+
* @returns The raw image data.
|
|
33
|
+
*/
|
|
34
|
+
private getRawImageDataFromInputCanvas;
|
|
26
35
|
/**
|
|
27
36
|
* Processes a single frame and returns the inference result.
|
|
28
37
|
*
|
|
@@ -32,6 +41,10 @@ export declare class Pipeline implements IPipeline {
|
|
|
32
41
|
* @throws If the pipeline (generator or renderer) is not loaded.
|
|
33
42
|
*/
|
|
34
43
|
onFrame(timestamp: number, performInference?: boolean): Promise<IFrameInferenceResult>;
|
|
44
|
+
/**
|
|
45
|
+
* Synchronizes frames and masks to ensure they are rendered together.
|
|
46
|
+
*/
|
|
47
|
+
private renderSyncedFrameAndMask;
|
|
35
48
|
/**
|
|
36
49
|
* Resizes the image data if the model expects a fixed size input.
|
|
37
50
|
*
|
|
@@ -47,7 +60,23 @@ export declare class Pipeline implements IPipeline {
|
|
|
47
60
|
* @returns {IFrameInferenceResult} - The result object containing inference details.
|
|
48
61
|
*/
|
|
49
62
|
private createInferenceResult;
|
|
63
|
+
/**
|
|
64
|
+
* Checks if the pipeline is loaded.
|
|
65
|
+
*
|
|
66
|
+
* @returns True if the pipeline is loaded, false otherwise.
|
|
67
|
+
*/
|
|
50
68
|
isLoaded(): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Loads the pipeline components such as the generator and renderer.
|
|
71
|
+
*/
|
|
51
72
|
load(): Promise<void>;
|
|
73
|
+
/**
|
|
74
|
+
* Resets the frame and mask queues.
|
|
75
|
+
*/
|
|
76
|
+
private resetQueues;
|
|
77
|
+
reset(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Destroys the pipeline and cleans up resources.
|
|
80
|
+
*/
|
|
52
81
|
destroy(): void;
|
|
53
82
|
}
|
|
@@ -11,11 +11,14 @@ import { LocalGenerator, NullGenerator, WorkerGenerator, } from './generator';
|
|
|
11
11
|
import { BlurRenderer, PassthroughRenderer, ReplacementRenderer } from './renderer';
|
|
12
12
|
import { resizeImage } from './util';
|
|
13
13
|
export class Pipeline {
|
|
14
|
-
constructor(inputCanvas, outputCanvas, config) {
|
|
14
|
+
constructor(inputCanvas, outputCanvas, config, videoElement) {
|
|
15
15
|
this.inputCanvas = inputCanvas;
|
|
16
16
|
this.outputCanvas = outputCanvas;
|
|
17
17
|
this.config = config;
|
|
18
|
+
this.videoElement = videoElement;
|
|
18
19
|
this.loaded = false;
|
|
20
|
+
this.frameQueue = [];
|
|
21
|
+
this.maskQueue = [];
|
|
19
22
|
const inputCanvasCtx = this.inputCanvas.getContext('2d', {
|
|
20
23
|
alpha: false,
|
|
21
24
|
willReadFrequently: true,
|
|
@@ -25,6 +28,14 @@ export class Pipeline {
|
|
|
25
28
|
}
|
|
26
29
|
this.inputCanvasCtx = inputCanvasCtx;
|
|
27
30
|
}
|
|
31
|
+
/**
|
|
32
|
+
* Gets the raw image data from the input canvas context.
|
|
33
|
+
*
|
|
34
|
+
* @returns The raw image data.
|
|
35
|
+
*/
|
|
36
|
+
getRawImageDataFromInputCanvas() {
|
|
37
|
+
return this.inputCanvasCtx.getImageData(0, 0, this.config.input.width, this.config.input.height).data;
|
|
38
|
+
}
|
|
28
39
|
/**
|
|
29
40
|
* Processes a single frame and returns the inference result.
|
|
30
41
|
*
|
|
@@ -34,28 +45,63 @@ export class Pipeline {
|
|
|
34
45
|
* @throws If the pipeline (generator or renderer) is not loaded.
|
|
35
46
|
*/
|
|
36
47
|
onFrame(timestamp, performInference = true) {
|
|
48
|
+
var _a, _b;
|
|
37
49
|
return __awaiter(this, void 0, void 0, function* () {
|
|
38
50
|
if (!this.generator || !this.renderer) {
|
|
39
51
|
throw new Error('[ladon-ts] - pipeline is not loaded.');
|
|
40
52
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
this.
|
|
53
|
+
const maskNeeded = performInference || !this.lastMaskResult;
|
|
54
|
+
// Generate the mask if needed.
|
|
55
|
+
if (maskNeeded) {
|
|
56
|
+
const rawImageData = this.getRawImageDataFromInputCanvas();
|
|
57
|
+
const maskImageData = this.getMaskImageData(rawImageData);
|
|
58
|
+
// Add the frame to the queue. Perform inference and get the mask result and add it to the queue.
|
|
59
|
+
this.frameQueue.push({ timestamp, rawImageData });
|
|
60
|
+
this.lastMaskResult = yield this.generator.getLadonOutput(maskImageData, timestamp);
|
|
61
|
+
this.maskQueue.push(this.lastMaskResult);
|
|
62
|
+
// Sync frames and masks to render together.
|
|
63
|
+
yield this.renderSyncedFrameAndMask();
|
|
64
|
+
// Post-process the mask after rendering.
|
|
65
|
+
yield this.generator.postRender(maskImageData, timestamp);
|
|
48
66
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
yield this.
|
|
67
|
+
else if (this.lastMaskResult) {
|
|
68
|
+
// Render the current image with the last mask when inference is skipped. Use the video element if
|
|
69
|
+
// available to avoid an uneeeded copy from GPU to CPU.
|
|
70
|
+
const videoOrImageData = (_a = this.videoElement) !== null && _a !== void 0 ? _a : this.getRawImageDataFromInputCanvas();
|
|
71
|
+
yield ((_b = this.renderer) === null || _b === void 0 ? void 0 : _b.render(videoOrImageData));
|
|
72
|
+
// Empty queues when inference is skipped to avoid jitter when switching back to inference.
|
|
73
|
+
this.resetQueues();
|
|
54
74
|
}
|
|
55
75
|
// Return the inference result.
|
|
56
76
|
return this.createInferenceResult(timestamp, performInference);
|
|
57
77
|
});
|
|
58
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Synchronizes frames and masks to ensure they are rendered together.
|
|
81
|
+
*/
|
|
82
|
+
renderSyncedFrameAndMask() {
|
|
83
|
+
var _a, _b;
|
|
84
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
85
|
+
while (this.frameQueue.length > 0 && this.maskQueue.length > 0) {
|
|
86
|
+
const frame = this.frameQueue[0];
|
|
87
|
+
const mask = this.maskQueue[0];
|
|
88
|
+
// Render the frame and mask together if they match.
|
|
89
|
+
if (frame.timestamp === mask.timestamp) {
|
|
90
|
+
yield ((_a = this.renderer) === null || _a === void 0 ? void 0 : _a.render((_b = this.videoElement) !== null && _b !== void 0 ? _b : frame.rawImageData, mask));
|
|
91
|
+
this.frameQueue.shift();
|
|
92
|
+
this.maskQueue.shift();
|
|
93
|
+
}
|
|
94
|
+
else if (frame.timestamp < mask.timestamp) {
|
|
95
|
+
// If the frame is older than the mask, discard the frame.
|
|
96
|
+
this.frameQueue.shift();
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
// If the mask is older than the frame, discard the mask.
|
|
100
|
+
this.maskQueue.shift();
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
59
105
|
/**
|
|
60
106
|
* Resizes the image data if the model expects a fixed size input.
|
|
61
107
|
*
|
|
@@ -79,7 +125,13 @@ export class Pipeline {
|
|
|
79
125
|
*/
|
|
80
126
|
createInferenceResult(timestamp, performedInference) {
|
|
81
127
|
if (!this.lastMaskResult) {
|
|
82
|
-
|
|
128
|
+
return {
|
|
129
|
+
facesAndLandmarks: { data: new Float32Array(0), dims: [] },
|
|
130
|
+
gesture: new Float32Array(0),
|
|
131
|
+
motion: 0,
|
|
132
|
+
skipped: true,
|
|
133
|
+
timestamp,
|
|
134
|
+
};
|
|
83
135
|
}
|
|
84
136
|
return {
|
|
85
137
|
facesAndLandmarks: this.lastMaskResult.facesAndLandmarks,
|
|
@@ -89,9 +141,17 @@ export class Pipeline {
|
|
|
89
141
|
timestamp,
|
|
90
142
|
};
|
|
91
143
|
}
|
|
144
|
+
/**
|
|
145
|
+
* Checks if the pipeline is loaded.
|
|
146
|
+
*
|
|
147
|
+
* @returns True if the pipeline is loaded, false otherwise.
|
|
148
|
+
*/
|
|
92
149
|
isLoaded() {
|
|
93
150
|
return this.loaded;
|
|
94
151
|
}
|
|
152
|
+
/**
|
|
153
|
+
* Loads the pipeline components such as the generator and renderer.
|
|
154
|
+
*/
|
|
95
155
|
load() {
|
|
96
156
|
return __awaiter(this, void 0, void 0, function* () {
|
|
97
157
|
switch (this.config.render.type) {
|
|
@@ -129,10 +189,25 @@ export class Pipeline {
|
|
|
129
189
|
this.loaded = true;
|
|
130
190
|
});
|
|
131
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* Resets the frame and mask queues.
|
|
194
|
+
*/
|
|
195
|
+
resetQueues() {
|
|
196
|
+
this.frameQueue = [];
|
|
197
|
+
this.maskQueue = [];
|
|
198
|
+
}
|
|
199
|
+
reset() {
|
|
200
|
+
this.resetQueues();
|
|
201
|
+
this.lastMaskResult = undefined;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Destroys the pipeline and cleans up resources.
|
|
205
|
+
*/
|
|
132
206
|
destroy() {
|
|
133
207
|
var _a, _b;
|
|
208
|
+
this.reset();
|
|
134
209
|
(_a = this.generator) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
135
210
|
(_b = this.renderer) === null || _b === void 0 ? void 0 : _b.destroy();
|
|
136
211
|
}
|
|
137
212
|
}
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL3BpcGVsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLE9BQU8sRUFHSCxjQUFjLEVBRWQsYUFBYSxFQUNiLGVBQWUsR0FDbEIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLFlBQVksRUFBaUIsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQXFCckMsTUFBTSxPQUFPLFFBQVE7SUFXakIsWUFDWSxXQUE4QixFQUM5QixZQUErQixFQUN2QixNQUFzQixFQUNyQixZQUErQjtRQUh4QyxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQW1CO1FBQ3ZCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBQ3JCLGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQVo1QyxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBS2YsZUFBVSxHQUFrRSxFQUFFLENBQUM7UUFDL0UsY0FBUyxHQUF1QixFQUFFLENBQUM7UUFRdkMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFO1lBQ3JELEtBQUssRUFBRSxLQUFLO1lBQ1osa0JBQWtCLEVBQUUsSUFBSTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztTQUNsRTtRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssOEJBQThCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ25DLENBQUMsRUFDRCxDQUFDLEVBQ0QsSUFBSSxDQUFDLE1BQU0s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
|
|
@@ -14,7 +14,7 @@ export declare class BlurRenderer extends WebGLRenderer implements LadonRenderer
|
|
|
14
14
|
private fragment_shader_pass_1_src;
|
|
15
15
|
fragment_shader_pass_2_src: string;
|
|
16
16
|
constructor(output_canvas: HTMLCanvasElement, config: PipelineConfig);
|
|
17
|
-
render(input: Uint8ClampedArray, mask
|
|
17
|
+
render(input: Uint8ClampedArray | HTMLVideoElement, mask?: LadonOutput): Promise<void>;
|
|
18
18
|
load(): Promise<void>;
|
|
19
19
|
destroy(): void;
|
|
20
20
|
private getBlurKernel;
|
|
@@ -44,14 +44,16 @@ vec3 blur(sampler2D src, vec2 uv, vec2 direction) {
|
|
|
44
44
|
vec2 step = direction / u_resolution;
|
|
45
45
|
int offset = (KERNEL_SIZE - 1) / 2;
|
|
46
46
|
|
|
47
|
+
float weightSum = 0.0;
|
|
47
48
|
for (int i = 0; i < KERNEL_SIZE; i++) {
|
|
48
49
|
vec2 sampleUV = uv + step * float(i - offset);
|
|
49
50
|
vec4 sampleTex = texture(src, sampleUV);
|
|
50
51
|
float weight = u_kernel[i];
|
|
51
52
|
accum += sampleTex * weight;
|
|
53
|
+
weightSum += weight;
|
|
52
54
|
}
|
|
53
55
|
|
|
54
|
-
|
|
56
|
+
weightSum = max(weightSum, 0.001); // Avoid division by zero
|
|
55
57
|
return accum.rgb / weightSum;
|
|
56
58
|
}
|
|
57
59
|
`;
|
|
@@ -71,10 +73,10 @@ void main() {
|
|
|
71
73
|
|
|
72
74
|
vec3 blurred = blur(u_blur, st, VERTICAL);
|
|
73
75
|
vec3 original = texture(u_image, st).rgb;
|
|
74
|
-
float mask =
|
|
76
|
+
float mask = get_inv_mask(st); // Use inverse mask to blur background, not user
|
|
75
77
|
|
|
76
78
|
// Correct blending based on the mask
|
|
77
|
-
vec3 color = mix(original, blurred,
|
|
79
|
+
vec3 color = mix(original, blurred, mask); // Ensure mask properly determines blur influence on background
|
|
78
80
|
outColor = vec4(color, 1.0);
|
|
79
81
|
}
|
|
80
82
|
`;
|
|
@@ -137,7 +139,8 @@ void main() {
|
|
|
137
139
|
render(input, mask) {
|
|
138
140
|
return __awaiter(this, void 0, void 0, function* () {
|
|
139
141
|
this.uploadVideoStream(input);
|
|
140
|
-
if (
|
|
142
|
+
// The mask may not be included if it has not been generated (e.g., frame skipped).
|
|
143
|
+
if (mask === null || mask === void 0 ? void 0 : mask.warm) {
|
|
141
144
|
const maskData = bilinearUpsample(mask.data, this.config.mask.output_size.width, this.config.mask.output_size.height, this.config.mask.upscaled_size.width, this.config.mask.upscaled_size.height);
|
|
142
145
|
this.gl.activeTexture(this.gl.TEXTURE1);
|
|
143
146
|
this.gl.bindTexture(this.gl.TEXTURE_2D, this.mask_texture);
|
|
@@ -177,4 +180,4 @@ void main() {
|
|
|
177
180
|
return new Float32Array(kernel);
|
|
178
181
|
}
|
|
179
182
|
}
|
|
180
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmx1ci1yZW5kZXJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvcmVuZGVyZXIvYmx1ci1yZW5kZXJlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUd2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFakQsTUFBTSxPQUFPLFlBQWEsU0FBUSxhQUFhO0lBZ0YzQyxZQUFtQixhQUFnQyxFQUFrQixNQUFzQjtRQUN2RixLQUFLLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRGQsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQWtCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBdkVuRiwyQkFBc0IsR0FBRzs7OzBCQUdWLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBcUIsQ0FBQyxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F1Q3ZFLENBQUM7UUFFVSwrQkFBMEIsR0FDOUIsSUFBSSxDQUFDLHNCQUFzQjtZQUMzQjs7Ozs7Q0FLUCxDQUFDO1FBRVMsK0JBQTBCLEdBQzdCLElBQUksQ0FBQyxzQkFBc0I7WUFDM0I7Ozs7TUFJRixJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Ozs7Ozs7Ozs7Q0FVNUIsQ0FBQztRQUtNLElBQUssSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFxQixDQUFDLFdBQVcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzFELE1BQU0sSUFBSSxLQUFLLENBQUMsc0NBQXNDLENBQUMsQ0FBQztTQUMzRDtRQUVELHVCQUF1QjtRQUN2QjtZQUNJLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FDL0IsSUFBSSxDQUFDLEVBQUUsRUFDUCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsSUFBSSxDQUFDLGlC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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LadonOutput } from '../generator';
|
|
2
2
|
export interface LadonRenderer {
|
|
3
|
-
render(input: Uint8ClampedArray, mask
|
|
3
|
+
render(input: Uint8ClampedArray | HTMLVideoElement, mask?: LadonOutput): Promise<void>;
|
|
4
4
|
load(): Promise<void>;
|
|
5
5
|
destroy(): void;
|
|
6
6
|
}
|
|
@@ -8,7 +8,7 @@ export declare class PassthroughRenderer extends WebGLRenderer implements LadonR
|
|
|
8
8
|
private program;
|
|
9
9
|
private fragment_shader;
|
|
10
10
|
constructor(output_canvas: HTMLCanvasElement, config: PipelineConfig);
|
|
11
|
-
render(input: Uint8ClampedArray, _: LadonOutput): Promise<void>;
|
|
11
|
+
render(input: Uint8ClampedArray | HTMLVideoElement, _: LadonOutput): Promise<void>;
|
|
12
12
|
load(): Promise<void>;
|
|
13
13
|
destroy(): void;
|
|
14
14
|
}
|
|
@@ -54,4 +54,4 @@ void main() {
|
|
|
54
54
|
// empty
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3Rocm91Z2gtcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlbmRlcmVyL3Bhc3N0aHJvdWdoLXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQW1CbEQsWUFBbUIsYUFBZ0MsRUFBa0IsTUFBc0I7UUFDdkYsS0FBSyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQURkLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFrQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQWhCbkYsb0JBQWUsR0FBRzs7Ozs7Ozs7OztNQVV4QixJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Ozs7Q0FJNUIsQ0FBQztRQUtNLE1BQU0sYUFBYSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzVGLE1BQU0sZUFBZSxHQUFHLGFBQWEsQ0FDakMsSUFBSSxDQUFDLEVBQUUsRUFDUCxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsRUFDdkIsSUFBSSxDQUFDLGVBQWUsQ0FDdkIsQ0FBQztRQUVGLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFWSxNQUFNLENBQ2YsS0FBMkM7SUFDM0MsZ0VBQWdFO0lBQ2hFLENBQWM7O1lBRWQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTlCLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUVqQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFFaEUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3BCLENBQUM7S0FBQTtJQUVZLElBQUk7O1lBQ2IsUUFBUTtRQUNaLENBQUM7S0FBQTtJQUVNLE9BQU87UUFDVixRQUFRO0lBQ1osQ0FBQztDQUNKIn0=
|
|
@@ -10,7 +10,7 @@ export declare class ReplacementRenderer extends WebGLRenderer implements LadonR
|
|
|
10
10
|
protected background_texture: WebGLTexture;
|
|
11
11
|
private fragment_shader;
|
|
12
12
|
constructor(output_canvas: HTMLCanvasElement, config: PipelineConfig);
|
|
13
|
-
render(input: Uint8ClampedArray, mask
|
|
13
|
+
render(input: Uint8ClampedArray | HTMLVideoElement, mask?: LadonOutput): Promise<void>;
|
|
14
14
|
load(): Promise<void>;
|
|
15
15
|
destroy(): void;
|
|
16
16
|
}
|
|
@@ -80,17 +80,18 @@ void main() {
|
|
|
80
80
|
render(input, mask) {
|
|
81
81
|
return __awaiter(this, void 0, void 0, function* () {
|
|
82
82
|
this.uploadVideoStream(input);
|
|
83
|
-
if (
|
|
83
|
+
// The mask may not be included if it has not been generated (e.g., frame skipped).
|
|
84
|
+
if (mask === null || mask === void 0 ? void 0 : mask.warm) {
|
|
84
85
|
const maskData = bilinearUpsample(mask.data, this.config.mask.output_size.width, this.config.mask.output_size.height, this.config.mask.upscaled_size.width, this.config.mask.upscaled_size.height);
|
|
85
86
|
this.gl.activeTexture(this.gl.TEXTURE1);
|
|
86
87
|
this.gl.bindTexture(this.gl.TEXTURE_2D, this.mask_texture);
|
|
87
88
|
this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.R8, this.config.mask.upscaled_size.width, this.config.mask.upscaled_size.height, 0, this.gl.RED, this.gl.UNSIGNED_BYTE, maskData);
|
|
88
89
|
}
|
|
89
90
|
if (!this.config.render.static) {
|
|
90
|
-
const
|
|
91
|
+
const backgroundData = this.background_canvas_ctx.getImageData(0, 0, this.config.render.background.width, this.config.render.background.height).data;
|
|
91
92
|
this.gl.activeTexture(this.gl.TEXTURE2);
|
|
92
93
|
this.gl.bindTexture(this.gl.TEXTURE_2D, this.background_texture);
|
|
93
|
-
this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.config.input.width, this.config.input.height, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE,
|
|
94
|
+
this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.config.input.width, this.config.input.height, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, backgroundData);
|
|
94
95
|
}
|
|
95
96
|
this.gl.useProgram(this.program);
|
|
96
97
|
this.gl.drawArrays(this.gl.TRIANGLES, 0, this.verts.length / 3);
|
|
@@ -106,4 +107,4 @@ void main() {
|
|
|
106
107
|
// empty
|
|
107
108
|
}
|
|
108
109
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZW1lbnQtcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlbmRlcmVyL3JlcGxhY2VtZW50LXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUVBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQXFDbEQsWUFBbUIsYUFBZ0MsRUFBa0IsTUFBc0I7UUFDdkYsS0FBSyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQztRQURkLGtCQUFhLEdBQWIsYUFBYSxDQUFtQjtRQUFrQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQS9CbkYsb0JBQWUsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztNQW1CeEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFOzs7Ozs7Ozs7O0NBVTVCLENBQUM7UUFLTSxNQUFNLHFCQUFxQixHQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQ2YsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxxQkFBcUIsRUFBRTtZQUN4QixNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7U0FDOUU7UUFDRCxJQUFJLENBQUMscUJBQXFCLEdBQUcscUJBQXFCLENBQUM7UUFDbkQsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FDM0QsQ0FBQyxFQUNELENBQUMsRUFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQTRCLENBQUMsVUFBVSxDQUFDLEtBQUssRUFDekQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUE0QixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQzlELENBQUMsSUFBSSxDQUFDO1FBRVAsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQXFCLENBQUMsV0FBVyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNEO1FBRUQsTUFBTSxhQUFhLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUYsTUFBTSxlQUFlLEdBQUcsYUFBYSxDQUNqQyxJQUFJLENBQUMsRUFBRSxFQUNQLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxFQUN2QixJQUFJLENBQUMsZUFBZSxDQUN2QixDQUFDO1FBRUYsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25ELElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7U0FDaEU7UUFDRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FDZCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFDbEIsQ0FBQyxFQUNELElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBNEIsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQTRCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFDM0QsQ0FBQyxFQUNELElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUNaLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUNyQixlQUFlLENBQ2xCLENBQUM7UUFDRixJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU5QyxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztTQUN4RTtRQUNELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFWSxNQUFNLENBQ2YsS0FBMkMsRUFDM0MsSUFBa0I7O1lBRWxCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUU5QixtRkFBbUY7WUFDbkYsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxFQUFFO2dCQUNaLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUM3QixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQ25DLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ3hDLENBQUM7Z0JBRUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FDZCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFDbEIsQ0FBQyxFQUNELElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUNWLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQ3BDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQ3JDLENBQUMsRUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFDWCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsUUFBUSxDQUNYLENBQUM7YUFDTDtZQUVELElBQUksQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQTRCLENBQUMsTUFBTSxFQUFFO2dCQUNuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUMxRCxDQUFDLEVBQ0QsQ0FBQyxFQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBNEIsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUN6RCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQTRCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FDOUQsQ0FBQyxJQUFJLENBQUM7Z0JBRVAsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7Z0JBQ2pFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUNkLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxFQUNsQixDQUFDLEVBQ0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEVBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUN2QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQ3hCLENBQUMsRUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksRUFDWixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFDckIsY0FBYyxDQUNqQixDQUFDO2FBQ0w7WUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFakMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNwQixDQUFDO0tBQUE7SUFFWSxJQUFJOztZQUNiLFFBQVE7UUFDWixDQUFDO0tBQUE7SUFFTSxPQUFPO1FBQ1YsUUFBUTtJQUNaLENBQUM7Q0FDSiJ9
|
|
@@ -12,6 +12,6 @@ export declare abstract class WebGLRenderer {
|
|
|
12
12
|
constructor(output_canvas: HTMLCanvasElement, config: PipelineConfig);
|
|
13
13
|
protected getUVCalculation(): "vec2 st = -(gl_FragCoord.xy / u_resolution) + 1.0;" | "vec2 st = vec2((gl_FragCoord.x / u_resolution.x), -(gl_FragCoord.y / u_resolution.y) + 1.0);";
|
|
14
14
|
protected setSharedUniforms(program: WebGLProgram): void;
|
|
15
|
-
protected uploadVideoStream(input: Uint8ClampedArray): void;
|
|
15
|
+
protected uploadVideoStream(input: Uint8ClampedArray | HTMLVideoElement): void;
|
|
16
16
|
protected postDraw(): void;
|
|
17
17
|
}
|
|
@@ -104,7 +104,13 @@ void main() {
|
|
|
104
104
|
uploadVideoStream(input) {
|
|
105
105
|
this.gl.activeTexture(this.gl.TEXTURE0);
|
|
106
106
|
this.gl.bindTexture(this.gl.TEXTURE_2D, this.image_texture);
|
|
107
|
-
|
|
107
|
+
// Render video stream to texture if input is a video element.
|
|
108
|
+
if (input instanceof HTMLVideoElement) {
|
|
109
|
+
this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.gl.RGBA, this.gl.UNSIGNED_BYTE, input);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
this.gl.texImage2D(this.gl.TEXTURE_2D, 0, this.gl.RGBA, this.config.input.width, this.config.input.height, 0, this.gl.RGBA, this.gl.UNSIGNED_BYTE, input);
|
|
113
|
+
}
|
|
108
114
|
}
|
|
109
115
|
postDraw() {
|
|
110
116
|
if (this.output_canvas_2d && this.intermediate_canvas) {
|
|
@@ -112,4 +118,4 @@ void main() {
|
|
|
112
118
|
}
|
|
113
119
|
}
|
|
114
120
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViZ2wtcmVuZGVyZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL3JlbmRlcmVyL3dlYmdsLXJlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBZ0IsYUFBYTtJQXdCL0IsWUFBbUIsYUFBZ0MsRUFBa0IsTUFBc0I7UUFBeEUsa0JBQWEsR0FBYixhQUFhLENBQW1CO1FBQWtCLFdBQU0sR0FBTixNQUFNLENBQWdCO1FBZmpGLFVBQUssR0FBRyxJQUFJLFlBQVksQ0FBQztZQUMvQixDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUc7WUFFOUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHO1NBQ2pELENBQUMsQ0FBQztRQUVPLHNCQUFpQixHQUFHOzs7Ozs7O0NBT2pDLENBQUM7UUFHTSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUV4RSxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ0wsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEQsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHlEQUF5RCxDQUFDLENBQUM7YUFDOUU7WUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFD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
|
|
@@ -62,7 +62,7 @@ class SharedResourceManager {
|
|
|
62
62
|
if (config.wasm_uri) {
|
|
63
63
|
ort.env.wasm.wasmPaths = toAbsoluteURI(config.wasm_uri, config.base_url);
|
|
64
64
|
}
|
|
65
|
-
ort.env.wasm.numThreads =
|
|
65
|
+
ort.env.wasm.numThreads = 0;
|
|
66
66
|
// Resolve the model URL based on the configuration.
|
|
67
67
|
const modelUrl = yield this.getModelUrl(config);
|
|
68
68
|
// Use the model session cache to avoid creating multiple sessions for the same model.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const LIB_VERSION = "4.
|
|
1
|
+
export declare const LIB_VERSION = "4.5.0";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const LIB_VERSION = '4.
|
|
1
|
+
export const LIB_VERSION = '4.5.0';
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDIn0=
|