@webex/ladon-ts 4.3.0 → 4.4.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 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.4.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.3.0...v4.4.0) (2024-09-03)
6
+
7
+
8
+ ### Features
9
+
10
+ * 0.7.7.1 model updates and mask edge fix ([#12](https://github.com/beyonddunbar/ladon-ts/issues/12)) ([00c5584](https://github.com/beyonddunbar/ladon-ts/commit/00c5584b6f2f86803ddb70027c010d2ef00f79db))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * lint ([e19d2de](https://github.com/beyonddunbar/ladon-ts/commit/e19d2de5146da979dcba82b659ab2802b9c8ea49))
16
+
5
17
  ## [4.3.0](https://github.com/beyonddunbar/ladon-ts/compare/v4.2.4...v4.3.0) (2024-03-25)
6
18
 
7
19
 
@@ -2,8 +2,22 @@ export declare const BASE_URL = "https://models.intelligence.webex.com/ladon";
2
2
  export declare const LOCAL_BASE_URL = "https://localhost";
3
3
  export declare const LOCAL_WORKER_URI = "/segmentation.js";
4
4
  export declare const LOCAL_PORT = 1235;
5
- export declare const MODEL_VERSION = "1.0.0";
5
+ export declare const MODEL_VERSION = "0.7.7.1";
6
6
  export declare const WASM_URI = "/wasm/1.15.1b/";
7
+ export declare enum Quality {
8
+ TINY = "TINY",
9
+ LOW = "LOW",
10
+ MEDIUM = "MEDIUM",
11
+ HIGH = "HIGH",
12
+ ULTRA = "ULTRA"
13
+ }
14
+ export declare enum BlurStrength {
15
+ WEAK = "WEAK",
16
+ MODERATE = "MODERATE",
17
+ STRONG = "STRONG",
18
+ STRONGER = "STRONGER",
19
+ STRONGEST = "STRONGEST"
20
+ }
7
21
  export declare type SizeConfig = {
8
22
  readonly height: number;
9
23
  readonly width: number;
@@ -34,10 +48,12 @@ export declare type BaseMaskConfig = {
34
48
  readonly worker_uri: string;
35
49
  readonly input_size?: SizeConfig;
36
50
  readonly output_size?: SizeConfig;
51
+ readonly upscaled_size?: SizeConfig;
37
52
  };
38
53
  export declare type MaskConfig = BaseMaskConfig & {
39
54
  readonly input_size: SizeConfig;
40
55
  readonly output_size: SizeConfig;
56
+ readonly upscaled_size: SizeConfig;
41
57
  };
42
58
  export declare type PreloadConfig = {
43
59
  readonly base_url?: string;
@@ -51,20 +67,6 @@ export declare type PipelineConfig = {
51
67
  readonly input: InputConfig;
52
68
  readonly mask: MaskConfig;
53
69
  };
54
- export declare enum Quality {
55
- TINY = "TINY",
56
- LOW = "LOW",
57
- MEDIUM = "MEDIUM",
58
- HIGH = "HIGH",
59
- ULTRA = "ULTRA"
60
- }
61
- export declare enum BlurStrength {
62
- WEAK = "WEAK",
63
- MODERATE = "MODERATE",
64
- STRONG = "STRONG",
65
- STRONGER = "STRONGER",
66
- STRONGEST = "STRONGEST"
67
- }
68
70
  export declare const getBlurConfig: (blur_strength: BlurStrength, horizontal_mirror?: boolean) => BlurConfig;
69
71
  export declare const getPreloadConfig: (quality?: Quality, generator?: Generator, model_url_resolver?: ModelUrlResolver, base_url?: string, useLocalWorker?: boolean) => {
70
72
  mask: {
@@ -76,6 +78,7 @@ export declare const getPreloadConfig: (quality?: Quality, generator?: Generator
76
78
  worker_uri: string;
77
79
  input_size?: SizeConfig | undefined;
78
80
  output_size?: SizeConfig | undefined;
81
+ upscaled_size?: SizeConfig | undefined;
79
82
  };
80
83
  base_url?: string | undefined;
81
84
  wasm_uri?: string | undefined;
@@ -89,6 +92,7 @@ export declare const getConfig: (height: number, width: number, quality?: Qualit
89
92
  mask: {
90
93
  input_size: SizeConfig;
91
94
  output_size: SizeConfig;
95
+ upscaled_size: SizeConfig;
92
96
  generator: Generator;
93
97
  generation_interval_ms: number;
94
98
  model_rank: number;
@@ -4,7 +4,7 @@ export const BASE_URL = 'https://models.intelligence.webex.com/ladon';
4
4
  export const LOCAL_BASE_URL = 'https://localhost';
5
5
  export const LOCAL_WORKER_URI = '/segmentation.js';
6
6
  export const LOCAL_PORT = 1235;
7
- export const MODEL_VERSION = '1.0.0';
7
+ export const MODEL_VERSION = '0.7.7.1';
8
8
  export const WASM_URI = '/wasm/1.15.1b/';
9
9
  export var Quality;
10
10
  (function (Quality) {
@@ -68,12 +68,15 @@ export const getPreloadConfig = (quality = Quality.LOW, generator = 'local', mod
68
68
  base_url,
69
69
  wasm_uri: WASM_URI,
70
70
  mask: {
71
- generation_interval_ms: 48,
72
71
  generator,
72
+ generation_interval_ms: 48,
73
+ model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
74
+ input_size: { height: 144, width: 256 },
75
+ output_size: { height: 144, width: 256 },
76
+ upscaled_size: { height: 360, width: 640 },
77
+ model_rank: 4,
73
78
  model_url_resolver,
74
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
75
79
  worker_uri,
76
- model_rank: 3,
77
80
  },
78
81
  };
79
82
  let mask_quality_config = {};
@@ -81,34 +84,51 @@ export const getPreloadConfig = (quality = Quality.LOW, generator = 'local', mod
81
84
  case Quality.TINY:
82
85
  mask_quality_config = {
83
86
  generation_interval_ms: 48,
84
- model_uri: `/models/${model_version}/tiny_model.onnx`,
87
+ model_uri: `/models/${model_version}/tiny-256x144-256x144.onnx`,
85
88
  input_size: { height: 144, width: 256 },
86
- output_size: { height: 360, width: 640 },
89
+ output_size: { height: 144, width: 256 },
90
+ upscaled_size: { height: 360, width: 640 },
87
91
  model_rank: 4,
88
92
  };
89
93
  break;
90
94
  case Quality.LOW:
91
95
  mask_quality_config = {
92
96
  generation_interval_ms: 48,
93
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
97
+ model_uri: `/models/${model_version}/low-256x144-256x144.onnx`,
98
+ input_size: { height: 144, width: 256 },
99
+ output_size: { height: 144, width: 256 },
100
+ upscaled_size: { height: 360, width: 640 },
101
+ model_rank: 4,
94
102
  };
95
103
  break;
96
104
  case Quality.MEDIUM:
97
105
  mask_quality_config = {
98
106
  generation_interval_ms: 24,
99
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_mn3sm100.onnx`,
107
+ model_uri: `/models/${model_version}/medium-256x144-256x144.onnx`,
108
+ input_size: { height: 144, width: 256 },
109
+ output_size: { height: 144, width: 256 },
110
+ upscaled_size: { height: 360, width: 640 },
111
+ model_rank: 4,
100
112
  };
101
113
  break;
102
114
  case Quality.HIGH:
103
115
  mask_quality_config = {
104
116
  generation_interval_ms: 36,
105
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
117
+ model_uri: `/models/${model_version}/medium-640x360-256x144.onnx`,
118
+ input_size: { height: 360, width: 640 },
119
+ output_size: { height: 360, width: 640 },
120
+ upscaled_size: { height: 360, width: 640 },
121
+ model_rank: 4,
106
122
  };
107
123
  break;
108
124
  case Quality.ULTRA:
109
125
  mask_quality_config = {
110
126
  generation_interval_ms: 0,
111
- model_uri: `/models/${model_version}/mv2_dlv3plus_dynamic_dev_plus_dual_op11_full_depth_2.onnx`,
127
+ model_uri: `/models/${model_version}/medium-640x360-256x144.onnx`,
128
+ input_size: { height: 360, width: 640 },
129
+ output_size: { height: 360, width: 640 },
130
+ upscaled_size: { height: 360, width: 640 },
131
+ model_rank: 4,
112
132
  };
113
133
  break;
114
134
  default:
@@ -126,6 +146,6 @@ export const getConfig = (height, width, quality = Quality.LOW, generator = 'loc
126
146
  const maskConfig = basePreloadConfig.mask;
127
147
  return Object.assign(Object.assign({}, basePreloadConfig), { render: renderConfig, input: { height, width }, mask: Object.assign(Object.assign({}, maskConfig), {
128
148
  // Need to ensure we don't override the tiny model's input and output sizes.
129
- input_size: maskConfig.input_size || { height, width }, output_size: maskConfig.output_size || { height, width } }) });
149
+ input_size: maskConfig.input_size || { height, width }, output_size: maskConfig.output_size || { height, width }, upscaled_size: maskConfig.upscaled_size || { height, width } }) });
130
150
  };
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDO0FBQ3JDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztBQWdFekMsTUFBTSxDQUFOLElBQVksT0FNWDtBQU5ELFdBQVksT0FBTztJQUNmLHdCQUFhLENBQUE7SUFDYixzQkFBVyxDQUFBO0lBQ1gsNEJBQWlCLENBQUE7SUFDakIsd0JBQWEsQ0FBQTtJQUNiLDBCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQU5XLE9BQU8sS0FBUCxPQUFPLFFBTWxCO0FBRUQsTUFBTSxDQUFOLElBQVksWUFNWDtBQU5ELFdBQVksWUFBWTtJQUNwQiw2QkFBYSxDQUFBO0lBQ2IscUNBQXFCLENBQUE7SUFDckIsaUNBQWlCLENBQUE7SUFDakIscUNBQXFCLENBQUE7SUFDckIsdUNBQXVCLENBQUE7QUFDM0IsQ0FBQyxFQU5XLFlBQVksS0FBWixZQUFZLFFBTXZCO0FBRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLGFBQTJCLEVBQzNCLGlCQUEyQixFQUNqQixFQUFFO0lBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FB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
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXhDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyw2Q0FBNkMsQ0FBQztBQUN0RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsbUJBQW1CLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsa0JBQWtCLENBQUM7QUFDbkQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxnQkFBZ0IsQ0FBQztBQUV6QyxNQUFNLENBQU4sSUFBWSxPQU1YO0FBTkQsV0FBWSxPQUFPO0lBQ2Ysd0JBQWEsQ0FBQTtJQUNiLHNCQUFXLENBQUE7SUFDWCw0QkFBaUIsQ0FBQTtJQUNqQix3QkFBYSxDQUFBO0lBQ2IsMEJBQWUsQ0FBQTtBQUNuQixDQUFDLEVBTlcsT0FBTyxLQUFQLE9BQU8sUUFNbEI7QUFFRCxNQUFNLENBQU4sSUFBWSxZQU1YO0FBTkQsV0FBWSxZQUFZO0lBQ3BCLDZCQUFhLENBQUE7SUFDYixxQ0FBcUIsQ0FBQTtJQUNyQixpQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBcUIsQ0FBQTtJQUNyQix1Q0FBdUIsQ0FBQTtBQUMzQixDQUFDLEVBTlcsWUFBWSxLQUFaLFlBQVksUUFNdkI7QUFrRUQsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLGFBQTJCLEVBQzNCLGlCQUEyQixFQUNqQixFQUFFO0lBQ1osSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FB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
@@ -4,12 +4,19 @@ declare global {
4
4
  url: string;
5
5
  }
6
6
  }
7
- export interface MaskResult {
7
+ export interface FacesAndLandmarks {
8
8
  data: Float32Array;
9
+ dims: readonly number[];
10
+ }
11
+ export interface LadonOutput {
12
+ data: Float32Array;
13
+ facesAndLandmarks: FacesAndLandmarks;
14
+ gesture: Float32Array;
15
+ motion: number;
9
16
  warm: boolean;
10
17
  }
11
18
  export interface MaskGenerator {
12
- getMask(input: Uint8ClampedArray): Promise<MaskResult>;
19
+ getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
13
20
  load(): Promise<void>;
14
21
  isLoaded(): boolean;
15
22
  postRender(input: Uint8ClampedArray): Promise<void>;
@@ -17,8 +24,9 @@ export interface MaskGenerator {
17
24
  }
18
25
  export declare class LocalGenerator implements MaskGenerator {
19
26
  readonly config: PipelineConfig;
20
- private last_mask;
21
- private mask_model?;
27
+ private lastResult;
28
+ private lastMask;
29
+ private maskModel?;
22
30
  private last_mask_generation;
23
31
  private output?;
24
32
  constructor(config: PipelineConfig);
@@ -32,7 +40,7 @@ export declare class LocalGenerator implements MaskGenerator {
32
40
  * @returns {Float32Array} - The processed data
33
41
  */
34
42
  private preprocess;
35
- getMask(input: Uint8ClampedArray): Promise<MaskResult>;
43
+ getLadonOutput(input: Uint8ClampedArray): Promise<LadonOutput>;
36
44
  load(): Promise<void>;
37
45
  isLoaded(): boolean;
38
46
  postRender(_: Uint8ClampedArray): Promise<void>;
@@ -40,9 +48,9 @@ export declare class LocalGenerator implements MaskGenerator {
40
48
  }
41
49
  export declare class NullGenerator implements MaskGenerator {
42
50
  readonly config: PipelineConfig;
43
- private last_mask;
51
+ private lastMask;
44
52
  constructor(config: PipelineConfig);
45
- getMask(_: Uint8ClampedArray): Promise<MaskResult>;
53
+ getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
46
54
  load(): Promise<void>;
47
55
  isLoaded(): boolean;
48
56
  postRender(_: Uint8ClampedArray): Promise<void>;
@@ -50,11 +58,12 @@ export declare class NullGenerator implements MaskGenerator {
50
58
  }
51
59
  export declare class WorkerGenerator implements MaskGenerator {
52
60
  readonly config: PipelineConfig;
53
- private last_mask;
61
+ private lastMask;
62
+ private newMask;
54
63
  private worker?;
55
- private new_mask;
64
+ private lastResult;
56
65
  constructor(config: PipelineConfig);
57
- getMask(_: Uint8ClampedArray): Promise<MaskResult>;
66
+ getLadonOutput(_: Uint8ClampedArray): Promise<LadonOutput>;
58
67
  load(): Promise<void>;
59
68
  isLoaded(): boolean;
60
69
  postRender(input: Uint8ClampedArray): Promise<void>;
@@ -13,7 +13,14 @@ export class LocalGenerator {
13
13
  constructor(config) {
14
14
  this.config = config;
15
15
  this.last_mask_generation = 0;
16
- this.last_mask = 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]);
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
+ this.lastResult = {
18
+ data: this.lastMask.data,
19
+ facesAndLandmarks: { data: new Float32Array(0), dims: [] },
20
+ gesture: new Float32Array(0),
21
+ motion: 0,
22
+ warm: false,
23
+ };
17
24
  }
18
25
  /**
19
26
  * This method preprocesses an input Uint8ClampedArray to a Float32Array
@@ -25,14 +32,14 @@ export class LocalGenerator {
25
32
  * @returns {Float32Array} - The processed data
26
33
  */
27
34
  preprocess(input, alpha) {
35
+ var _a;
28
36
  const { model_rank, input_size, output_size } = this.config.mask;
29
37
  const { height, width } = input_size;
30
38
  const numImagePixels = height * width;
31
- if (!this.output) {
32
- this.output = new Float32Array(numImagePixels * model_rank);
33
- }
39
+ // Initialize the output buffer if it is not already set
40
+ (_a = this.output) !== null && _a !== void 0 ? _a : (this.output = new Float32Array(numImagePixels * model_rank));
34
41
  // In-place modification of class-scoped output buffer
35
- const channelFlipOffset = model_rank === 4 ? 2 : 0;
42
+ const channelFlipOffset = 2;
36
43
  const numInputPixels = input.length / 4;
37
44
  // Loop over all color channels in the image
38
45
  for (let channel = 0; channel < 3; channel++) {
@@ -44,63 +51,62 @@ export class LocalGenerator {
44
51
  input[pixel * 4 + Math.abs(channelFlipOffset - channel)];
45
52
  }
46
53
  }
47
- // If the model_rank is 4, an additional alpha channel needs to be set
48
- if (model_rank === 4) {
49
- // Scaling factors for width and height based on the ratio of output to input sizes
50
- const widthScale = output_size.width / width;
51
- const heightScale = output_size.height / height;
52
- // Iterate over each pixel in the width of the input image
53
- for (let x = 0; x < width; x++) {
54
- const nearestNeighborX = Math.floor(x * widthScale);
55
- // Iterate over each pixel in the height of the input image
56
- for (let y = 0; y < height; y++) {
57
- const nearestNeighborY = Math.floor(y * heightScale);
58
- const maskIdx = nearestNeighborX + nearestNeighborY * output_size.width;
59
- const outputIdx = x + y * width + 3 * numImagePixels;
60
- // Normalize the alpha value to range between 0 and 1, and scale it to the range of 0-255
61
- const normalizedValue = Math.min(Math.max(alpha[maskIdx], 0), 1) * 255;
62
- // Assign the normalized value to the output at the computed index
63
- this.output[outputIdx] = normalizedValue;
64
- }
54
+ // Scaling factors for width and height based on the ratio of output to input sizes
55
+ const widthScale = output_size.width / width;
56
+ const heightScale = output_size.height / height;
57
+ // Iterate over each pixel in the width of the input image
58
+ for (let x = 0; x < width; x++) {
59
+ const nearestNeighborX = Math.floor(x * widthScale);
60
+ // Iterate over each pixel in the height of the input image
61
+ for (let y = 0; y < height; y++) {
62
+ const nearestNeighborY = Math.floor(y * heightScale);
63
+ const maskIdx = nearestNeighborX + nearestNeighborY * output_size.width;
64
+ const outputIdx = x + y * width + 3 * numImagePixels;
65
+ // Normalize the alpha value to range between 0 and 1, and scale it to the range of 0-255
66
+ // This step is necessary because the rendering pipeline expects alpha values in the [0, 255] range
67
+ const normalizedValue = Math.min(Math.max(alpha[maskIdx], 0), 255);
68
+ // Assign the normalized value to the output at the computed index
69
+ this.output[outputIdx] = normalizedValue;
65
70
  }
66
71
  }
67
72
  return this.output;
68
73
  }
69
- getMask(input) {
74
+ getLadonOutput(input) {
75
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
70
76
  return __awaiter(this, void 0, void 0, function* () {
71
- if (!this.mask_model) {
77
+ if (!this.maskModel) {
72
78
  throw new Error('[ladon-ts] - mask model not loaded.');
73
79
  }
74
80
  const mask_generation_timeout = Date.now() - this.last_mask_generation > this.config.mask.generation_interval_ms;
75
81
  if (!mask_generation_timeout) {
76
82
  return {
77
- data: this.last_mask.data,
83
+ data: this.lastMask.data,
84
+ facesAndLandmarks: this.lastResult.facesAndLandmarks,
85
+ gesture: this.lastResult.gesture,
86
+ motion: this.lastResult.motion,
78
87
  warm: false,
79
88
  };
80
89
  }
81
90
  this.last_mask_generation = Date.now();
82
- const image_tns = new ort.Tensor('float32', this.preprocess(input, this.last_mask.data), [
91
+ const imageTensor = new ort.Tensor('float32', this.preprocess(input, this.lastMask.data), [
83
92
  1,
84
93
  this.config.mask.model_rank,
85
94
  this.config.mask.input_size.height,
86
95
  this.config.mask.input_size.width,
87
96
  ]);
88
- if (this.config.mask.model_rank === 4) {
89
- // This feed uses the new model input params for the tiny model.
90
- const results = yield this.mask_model.run({ input: image_tns });
91
- this.last_mask = results.segmentation;
92
- }
93
- else {
94
- const results = yield this.mask_model.run({
95
- input_image: image_tns,
96
- prev_mask: this.last_mask,
97
- });
98
- this.last_mask = results.output_mask;
99
- }
100
- return {
101
- data: this.last_mask.data,
97
+ const results = yield this.maskModel.run({ input: imageTensor });
98
+ this.lastMask = results.segmentation;
99
+ this.lastResult = {
100
+ data: (_a = this.lastMask.data) !== null && _a !== void 0 ? _a : new Float32Array(0),
101
+ facesAndLandmarks: {
102
+ data: (_c = (_b = results.faces_and_landmarks) === null || _b === void 0 ? void 0 : _b.data) !== null && _c !== void 0 ? _c : new Float32Array(0),
103
+ dims: (_e = (_d = results.faces_and_landmarks) === null || _d === void 0 ? void 0 : _d.dims) !== null && _e !== void 0 ? _e : [],
104
+ },
105
+ gesture: (_g = (_f = results.gesture) === null || _f === void 0 ? void 0 : _f.data) !== null && _g !== void 0 ? _g : new Float32Array(0),
106
+ motion: (_j = (_h = results.motion) === null || _h === void 0 ? void 0 : _h.data[0]) !== null && _j !== void 0 ? _j : 0,
102
107
  warm: true,
103
108
  };
109
+ return this.lastResult;
104
110
  });
105
111
  }
106
112
  load() {
@@ -108,16 +114,16 @@ export class LocalGenerator {
108
114
  return __awaiter(this, void 0, void 0, function* () {
109
115
  const modelUrl = yield sharedResourceManager.getModelUrl(this.config);
110
116
  // Attempt to retrieve a preloaded InferenceSession from the shared resource manager.
111
- this.mask_model = sharedResourceManager.getModelSession(modelUrl);
117
+ this.maskModel = sharedResourceManager.getModelSession(modelUrl);
112
118
  // If the model is not preloaded, load it from the provided model URL.
113
- (_a = this.mask_model) !== null && _a !== void 0 ? _a : (this.mask_model = yield sharedResourceManager.preloadModel(this.config));
114
- if (!this.mask_model) {
119
+ (_a = this.maskModel) !== null && _a !== void 0 ? _a : (this.maskModel = yield sharedResourceManager.preloadModel(this.config));
120
+ if (!this.maskModel) {
115
121
  throw new Error('Failed to load the ONNX model.');
116
122
  }
117
123
  });
118
124
  }
119
125
  isLoaded() {
120
- return !!this.mask_model;
126
+ return !!this.maskModel;
121
127
  }
122
128
  /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
123
129
  postRender(_) {
@@ -132,13 +138,16 @@ export class LocalGenerator {
132
138
  export class NullGenerator {
133
139
  constructor(config) {
134
140
  this.config = config;
135
- this.last_mask = new Float32Array(this.config.mask.output_size.height * this.config.mask.output_size.width);
141
+ this.lastMask = new Float32Array(this.config.mask.output_size.height * this.config.mask.output_size.width);
136
142
  }
137
143
  /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
138
- getMask(_) {
144
+ getLadonOutput(_) {
139
145
  return __awaiter(this, void 0, void 0, function* () {
140
146
  return {
141
- data: this.last_mask,
147
+ data: this.lastMask,
148
+ facesAndLandmarks: { data: new Float32Array(0), dims: [] },
149
+ gesture: new Float32Array(0),
150
+ motion: 0,
142
151
  warm: false,
143
152
  };
144
153
  });
@@ -164,17 +173,27 @@ export class NullGenerator {
164
173
  export class WorkerGenerator {
165
174
  constructor(config) {
166
175
  this.config = config;
167
- this.new_mask = true;
168
- this.last_mask = new Float32Array(this.config.mask.output_size.height * this.config.mask.output_size.width);
176
+ this.newMask = true;
177
+ this.lastMask = new Float32Array(this.config.mask.output_size.height * this.config.mask.output_size.width);
178
+ this.lastResult = {
179
+ data: this.lastMask,
180
+ facesAndLandmarks: { data: new Float32Array(0), dims: [] },
181
+ gesture: new Float32Array(0),
182
+ motion: 0,
183
+ warm: false,
184
+ };
169
185
  }
170
186
  /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
171
- getMask(_) {
187
+ getLadonOutput(_) {
172
188
  return __awaiter(this, void 0, void 0, function* () {
173
189
  const toReturn = {
174
- data: this.last_mask,
175
- warm: this.new_mask,
190
+ data: this.lastMask,
191
+ facesAndLandmarks: this.lastResult.facesAndLandmarks,
192
+ gesture: this.lastResult.gesture,
193
+ motion: this.lastResult.motion,
194
+ warm: this.newMask,
176
195
  };
177
- this.new_mask = false;
196
+ this.newMask = false;
178
197
  return toReturn;
179
198
  });
180
199
  }
@@ -200,9 +219,16 @@ export class WorkerGenerator {
200
219
  resolutionCb = resolve;
201
220
  });
202
221
  this.worker.onmessage = (event) => {
203
- if (event.data.mask) {
204
- this.last_mask = event.data.mask;
205
- this.new_mask = true;
222
+ if (event.data.status === 'generated') {
223
+ this.lastMask = event.data.mask;
224
+ this.lastResult = {
225
+ data: event.data.mask,
226
+ facesAndLandmarks: event.data.facesAndLandmarks,
227
+ gesture: event.data.gesture,
228
+ motion: event.data.motion,
229
+ warm: true,
230
+ };
231
+ this.newMask = true;
206
232
  }
207
233
  else {
208
234
  const workerUrl = sharedResourceManager.getWorkerUrl();
@@ -234,4 +260,4 @@ export class WorkerGenerator {
234
260
  sharedResourceManager.terminateWorker();
235
261
  }
236
262
  }
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQXFCbEUsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBNEIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFIMUMseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUMzQixTQUFTLEVBQ1QsSUFBSSxZQUFZLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUMzRSxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEYsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLFVBQVUsQ0FBQyxLQUF3QixFQUFFLEtBQW1CO1FBQzVELE1BQU0sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1FBQ2pFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZCxJQUFJ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
263
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxLQUFLLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQztBQUd2QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQTRCbEUsTUFBTSxPQUFPLGNBQWM7SUFPdkIsWUFBNEIsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFIMUMseUJBQW9CLEdBQUcsQ0FBQyxDQUFDO1FBSTdCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUMxQixTQUFTLEVBQ1QsSUFBSSxZQUFZLENBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUMzRSxFQUNELENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FDbEYsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEdBQUc7WUFDZCxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQ3hCLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDMUQsT0FBTyxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksRUFBRSxLQUFLO1NBQ2QsQ0FBQztJQUNOLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNLLFVBQVUs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
@@ -1,20 +1,52 @@
1
1
  import { PipelineConfig } from './config';
2
+ import { FacesAndLandmarks } from './generator';
3
+ export interface IFrameInferenceResult {
4
+ facesAndLandmarks: FacesAndLandmarks;
5
+ gesture: Float32Array;
6
+ motion: number;
7
+ skipped: boolean;
8
+ timestamp: number;
9
+ }
2
10
  export interface IPipeline {
3
- onFrame(): Promise<void>;
11
+ onFrame(timestamp: number, maskNeeded?: boolean): Promise<IFrameInferenceResult>;
4
12
  isLoaded(): boolean;
5
13
  load(): Promise<void>;
6
14
  destroy(): void;
7
15
  }
8
16
  export declare class Pipeline implements IPipeline {
9
- private input_canvas;
10
- private output_canvas;
17
+ private inputCanvas;
18
+ private outputCanvas;
11
19
  readonly config: PipelineConfig;
12
20
  private generator?;
13
21
  private renderer?;
14
22
  private loaded;
15
- private input_ctx;
16
- constructor(input_canvas: HTMLCanvasElement, output_canvas: HTMLCanvasElement, config: PipelineConfig);
17
- onFrame(): Promise<void>;
23
+ private inputCanvasCtx;
24
+ private lastMaskResult?;
25
+ constructor(inputCanvas: HTMLCanvasElement, outputCanvas: HTMLCanvasElement, config: PipelineConfig);
26
+ /**
27
+ * Processes a single frame and returns the inference result.
28
+ *
29
+ * @param timestamp - The timestamp of the frame.
30
+ * @param [performInference=true] - Flag to perform mask inference.
31
+ * @returns The result of the frame processing.
32
+ * @throws If the pipeline (generator or renderer) is not loaded.
33
+ */
34
+ onFrame(timestamp: number, performInference?: boolean): Promise<IFrameInferenceResult>;
35
+ /**
36
+ * Resizes the image data if the model expects a fixed size input.
37
+ *
38
+ * @param {Uint8ClampedArray} rawImageData - The raw image data.
39
+ * @returns {Uint8ClampedArray} - The processed mask image data.
40
+ */
41
+ private getMaskImageData;
42
+ /**
43
+ * Creates the inference result object.
44
+ *
45
+ * @param {number} timestamp - The timestamp of the frame.
46
+ * @param {boolean} performedInference - Indicates if the inference was performed.
47
+ * @returns {IFrameInferenceResult} - The result object containing inference details.
48
+ */
49
+ private createInferenceResult;
18
50
  isLoaded(): boolean;
19
51
  load(): Promise<void>;
20
52
  destroy(): void;