@camstack/addon-pipeline 1.2.292 → 1.2.294
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-DcTy-nJl.mjs → default-detection-model-0dPKRKUD.mjs} +62 -80
- package/dist/{default-detection-model-jjdmKKr3.js → default-detection-model-D24AJOTn.js} +67 -79
- package/dist/detection-pipeline/index.js +6 -5
- package/dist/detection-pipeline/index.mjs +6 -5
- package/dist/{dist-D7FonEUB.js → dist-CJR259Xf.js} +426 -22
- package/dist/{dist-Bn6BQW8q.mjs → dist-RXbmRAwP.mjs} +426 -22
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-D3C1krEi.js → node-DWg9zbY1.js} +1 -1
- package/dist/{node-BN0Na3HN.mjs → node-atmRSHPk.mjs} +1 -1
- package/dist/pipeline-runner/index.js +80 -5
- package/dist/pipeline-runner/index.mjs +80 -5
- package/dist/{process-memory-DI4jrCtX.js → process-memory-BJUXvTjd.js} +1 -1
- package/dist/{process-memory-CeZ8ms80.mjs → process-memory-BgFOHFnx.mjs} +1 -1
- package/dist/recorder/index.js +2 -2
- package/dist/recorder/index.mjs +2 -2
- package/dist/{segment-demux-js-COooJ-t0.js → segment-demux-js-C_fPJub3.js} +1 -1
- package/dist/{segment-demux-js-CNPzlcyO.mjs → segment-demux-js-G7wFpHzn.mjs} +1 -1
- package/dist/stream-broker/_stub.js +2 -2
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-BfrONGaR.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-6IyM-BIn.mjs} +2 -2
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-6IHzlLJ_.mjs +26 -0
- package/dist/stream-broker/{_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DhImOdbA.mjs → _virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_ui_mf_2_library__loadShare__.js-DoyA71_q.mjs} +1 -1
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-0k0JYZnk.mjs → hostInit-BBYHWS3M.mjs} +2 -2
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
- package/python/inference_pool.py +33 -10
- package/python/postprocessors/scrfd.py +21 -3
- package/python/postprocessors/test_scrfd.py +151 -0
- package/python/test_inference_pool_ov_ppp_scrfd.py +264 -0
- package/python/test_inference_pool_scrfd_normalization.py +142 -0
- package/dist/stream-broker/_virtual_mf___mfe_internal__addon_stream_broker_widgets__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-pSFdAaR0.mjs +0 -26
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_process_memory = require("../process-memory-
|
|
6
|
+
const require_dist = require("../dist-CJR259Xf.js");
|
|
7
|
+
const require_process_memory = require("../process-memory-BJUXvTjd.js");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
10
10
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { $t as errMsg, A as PoolMemoryWatchdog, Ln as EventCategory, T as HF_BASE_URL, U as audioAnalysisCapability, Ut as resolvePoolMemoryPolicy, W as audioAnalyzerCapability, bn as nodePin, d as DEFAULT_AUDIO_ANALYZER_CONFIG, dn as audioChunkBytesPerSample, gn as hydrateSchema, hn as expandAudioChunkToF32le, n as AUDIO_BACKEND_CHOICES, on as BaseAddon, yt as mapAudioLabelToMacro } from "../dist-
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { $t as errMsg, A as PoolMemoryWatchdog, Ln as EventCategory, T as HF_BASE_URL, U as audioAnalysisCapability, Ut as resolvePoolMemoryPolicy, W as audioAnalyzerCapability, bn as nodePin, d as DEFAULT_AUDIO_ANALYZER_CONFIG, dn as audioChunkBytesPerSample, gn as hydrateSchema, hn as expandAudioChunkToF32le, n as AUDIO_BACKEND_CHOICES, on as BaseAddon, yt as mapAudioLabelToMacro } from "../dist-RXbmRAwP.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BgFOHFnx.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { G as audioKindId, l as COCO_80_LABELS, mt as hfModelUrl, r as AUDIO_MACRO_LABELS, u as COCO_TO_MACRO } from "./dist-
|
|
1
|
+
import { G as audioKindId, l as COCO_80_LABELS, mt as hfModelUrl, r as AUDIO_MACRO_LABELS, u as COCO_TO_MACRO } from "./dist-RXbmRAwP.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
|
|
4
4
|
/**
|
|
@@ -491,88 +491,68 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
491
491
|
ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "fp16", 112, true),
|
|
492
492
|
ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "int8", 56, true)
|
|
493
493
|
];
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
sizeMB: 3.1
|
|
513
|
-
},
|
|
514
|
-
coreml: {
|
|
515
|
-
url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
|
|
516
|
-
sizeMB: 1.7,
|
|
517
|
-
isDirectory: true,
|
|
518
|
-
files: [...MLPACKAGE_FILES],
|
|
519
|
-
runtimes: ["python"]
|
|
520
|
-
},
|
|
521
|
-
openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
{
|
|
525
|
-
id: "scrypted-yolov9t-face",
|
|
526
|
-
name: "YOLOv9t Face ReLU",
|
|
527
|
-
description: "YOLOv9t face detection — YOLO-based, fast, 320x320 ReLU",
|
|
528
|
-
inputSize: {
|
|
529
|
-
width: 320,
|
|
530
|
-
height: 320
|
|
531
|
-
},
|
|
532
|
-
labels: [{
|
|
533
|
-
id: "face",
|
|
534
|
-
name: "Face"
|
|
535
|
-
}],
|
|
536
|
-
preprocessMode: "letterbox",
|
|
537
|
-
license: "UNKNOWN",
|
|
538
|
-
formats: {
|
|
539
|
-
onnx: {
|
|
540
|
-
url: hfScrypted("onnx/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.onnx"),
|
|
541
|
-
sizeMB: 8.1
|
|
542
|
-
},
|
|
543
|
-
coreml: {
|
|
544
|
-
url: hfScrypted("coreml/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.mlpackage"),
|
|
545
|
-
sizeMB: 4,
|
|
546
|
-
isDirectory: true,
|
|
547
|
-
files: [...MLPACKAGE_FILES],
|
|
548
|
-
runtimes: ["python"]
|
|
549
|
-
},
|
|
550
|
-
openvino: ovFormat(hf("faceDetection/scrypted-yolov9-face/openvino/scrypted_yolov9t_relu_face.xml"), 6)
|
|
551
|
-
}
|
|
494
|
+
/**
|
|
495
|
+
* Model ids REMOVED from a step's catalog, per step id (D643).
|
|
496
|
+
*
|
|
497
|
+
* Not the same as `legacy` (still in the catalog, still runnable when chosen):
|
|
498
|
+
* a retired id has nothing to download and nothing that can parse it. It is
|
|
499
|
+
* listed rather than simply deleted because `resolveModelForFormat` passes an
|
|
500
|
+
* id the catalog does not know through UNCHANGED — it reads as an operator's
|
|
501
|
+
* custom model — so a saved pin would keep naming a model no node can load.
|
|
502
|
+
* A retired id resolves to the step's format default instead.
|
|
503
|
+
*/
|
|
504
|
+
var RETIRED_MODEL_IDS = { "face-detection": ["scrypted-yolov9t-face"] };
|
|
505
|
+
var FACE_DETECTION_MODELS = [{
|
|
506
|
+
id: "scrfd-2.5g",
|
|
507
|
+
name: "SCRFD 2.5G",
|
|
508
|
+
description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
|
|
509
|
+
inputSize: {
|
|
510
|
+
width: 640,
|
|
511
|
+
height: 640
|
|
552
512
|
},
|
|
553
|
-
{
|
|
554
|
-
id: "
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
513
|
+
labels: [{
|
|
514
|
+
id: "face",
|
|
515
|
+
name: "Face"
|
|
516
|
+
}],
|
|
517
|
+
preprocessMode: "letterbox",
|
|
518
|
+
inputNormalization: "scrfd",
|
|
519
|
+
license: "InsightFace-NonCommercial-Research",
|
|
520
|
+
formats: {
|
|
521
|
+
onnx: {
|
|
522
|
+
url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
|
|
523
|
+
sizeMB: 3.1
|
|
561
524
|
},
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
postprocessor: "ssd",
|
|
568
|
-
license: "Apache-2.0",
|
|
569
|
-
formats: { tflite: {
|
|
570
|
-
url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
|
|
571
|
-
sizeMB: 6.7,
|
|
525
|
+
coreml: {
|
|
526
|
+
url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
|
|
527
|
+
sizeMB: 1.7,
|
|
528
|
+
isDirectory: true,
|
|
529
|
+
files: [...MLPACKAGE_FILES],
|
|
572
530
|
runtimes: ["python"]
|
|
573
|
-
}
|
|
531
|
+
},
|
|
532
|
+
openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
|
|
574
533
|
}
|
|
575
|
-
|
|
534
|
+
}, {
|
|
535
|
+
id: "ssd-mobilenet-v2-face-edgetpu",
|
|
536
|
+
legacy: true,
|
|
537
|
+
name: "SSD MobileNet V2 Face (Coral)",
|
|
538
|
+
description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
|
|
539
|
+
inputSize: {
|
|
540
|
+
width: 320,
|
|
541
|
+
height: 320
|
|
542
|
+
},
|
|
543
|
+
labels: [{
|
|
544
|
+
id: "face",
|
|
545
|
+
name: "Face"
|
|
546
|
+
}],
|
|
547
|
+
preprocessMode: "letterbox",
|
|
548
|
+
postprocessor: "ssd",
|
|
549
|
+
license: "Apache-2.0",
|
|
550
|
+
formats: { tflite: {
|
|
551
|
+
url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
|
|
552
|
+
sizeMB: 6.7,
|
|
553
|
+
runtimes: ["python"]
|
|
554
|
+
} }
|
|
555
|
+
}];
|
|
576
556
|
var FACE_EMBEDDING_MODELS = [
|
|
577
557
|
{
|
|
578
558
|
id: "arcface-r100",
|
|
@@ -1876,6 +1856,7 @@ function getDefaultModelForFormatFromDef(def, format) {
|
|
|
1876
1856
|
* - chosen is a catalog model → keep it if it has a `format` build; else
|
|
1877
1857
|
* the addon's default model for `format`
|
|
1878
1858
|
* (a substitution — the caller surfaces it).
|
|
1859
|
+
* - chosen is RETIRED (`RETIRED_MODEL_IDS`) → the format default (D643).
|
|
1879
1860
|
* - chosen is NOT in the catalog (custom/unknown) → returned unchanged; the
|
|
1880
1861
|
* operator owns a custom model's format compat.
|
|
1881
1862
|
* - unknown stepId → chosen returned unchanged (never throws).
|
|
@@ -1888,6 +1869,7 @@ function resolveModelForFormat(stepId, chosenModelId, format) {
|
|
|
1888
1869
|
return chosenModelId ?? "";
|
|
1889
1870
|
}
|
|
1890
1871
|
if (chosenModelId === null) return getDefaultModelForFormat(stepId, format);
|
|
1872
|
+
if (RETIRED_MODEL_IDS[stepId]?.includes(chosenModelId) === true) return getDefaultModelForFormat(stepId, format);
|
|
1891
1873
|
const entry = def.models.find((m) => m.id === chosenModelId);
|
|
1892
1874
|
if (!entry) return chosenModelId;
|
|
1893
1875
|
if (entry.formats[format]) return chosenModelId;
|
|
@@ -2225,4 +2207,4 @@ function resolveDefaultDetectionModel(backend, device, format, getStepDef = getS
|
|
|
2225
2207
|
return getDefaultModelForFormatFromDef(def, format);
|
|
2226
2208
|
}
|
|
2227
2209
|
//#endregion
|
|
2228
|
-
export { localFrameRegistry as a, ALL_STEPS as c, getStepDefinition as d, resolveModelForFormat as f, rootObjectGate as i, getDefaultModelForFormat as l, resolveDefaultDetectionModel as n, resolveFrameViewGeometry as o,
|
|
2210
|
+
export { localFrameRegistry as a, ALL_STEPS as c, getStepDefinition as d, resolveModelForFormat as f, rootObjectGate as i, getDefaultModelForFormat as l, landmarkPrecisionVerdict as m, resolveDefaultDetectionModel as n, resolveFrameViewGeometry as o, RETIRED_MODEL_IDS as p, macroGateVerdict as r, ALL_PIPELINE_STEPS as s, OBJECT_DETECTION_STEP_ID as t, getStep as u };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_dist = require("./dist-
|
|
1
|
+
const require_dist = require("./dist-CJR259Xf.js");
|
|
2
2
|
let node_crypto = require("node:crypto");
|
|
3
3
|
//#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
|
|
4
4
|
/**
|
|
@@ -491,88 +491,68 @@ var OBJECT_DETECTION_MODELS = [
|
|
|
491
491
|
ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "fp16", 112, true),
|
|
492
492
|
ovPrecisionVariant("yolo26x", "objectDetection/yolo26/openvino", "YOLO26 XLarge", "int8", 56, true)
|
|
493
493
|
];
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
sizeMB: 3.1
|
|
513
|
-
},
|
|
514
|
-
coreml: {
|
|
515
|
-
url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
|
|
516
|
-
sizeMB: 1.7,
|
|
517
|
-
isDirectory: true,
|
|
518
|
-
files: [...MLPACKAGE_FILES],
|
|
519
|
-
runtimes: ["python"]
|
|
520
|
-
},
|
|
521
|
-
openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
|
|
522
|
-
}
|
|
523
|
-
},
|
|
524
|
-
{
|
|
525
|
-
id: "scrypted-yolov9t-face",
|
|
526
|
-
name: "YOLOv9t Face ReLU",
|
|
527
|
-
description: "YOLOv9t face detection — YOLO-based, fast, 320x320 ReLU",
|
|
528
|
-
inputSize: {
|
|
529
|
-
width: 320,
|
|
530
|
-
height: 320
|
|
531
|
-
},
|
|
532
|
-
labels: [{
|
|
533
|
-
id: "face",
|
|
534
|
-
name: "Face"
|
|
535
|
-
}],
|
|
536
|
-
preprocessMode: "letterbox",
|
|
537
|
-
license: "UNKNOWN",
|
|
538
|
-
formats: {
|
|
539
|
-
onnx: {
|
|
540
|
-
url: hfScrypted("onnx/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.onnx"),
|
|
541
|
-
sizeMB: 8.1
|
|
542
|
-
},
|
|
543
|
-
coreml: {
|
|
544
|
-
url: hfScrypted("coreml/scrypted_yolov9t_relu_face/scrypted_yolov9t_relu_face.mlpackage"),
|
|
545
|
-
sizeMB: 4,
|
|
546
|
-
isDirectory: true,
|
|
547
|
-
files: [...MLPACKAGE_FILES],
|
|
548
|
-
runtimes: ["python"]
|
|
549
|
-
},
|
|
550
|
-
openvino: ovFormat(hf("faceDetection/scrypted-yolov9-face/openvino/scrypted_yolov9t_relu_face.xml"), 6)
|
|
551
|
-
}
|
|
494
|
+
/**
|
|
495
|
+
* Model ids REMOVED from a step's catalog, per step id (D643).
|
|
496
|
+
*
|
|
497
|
+
* Not the same as `legacy` (still in the catalog, still runnable when chosen):
|
|
498
|
+
* a retired id has nothing to download and nothing that can parse it. It is
|
|
499
|
+
* listed rather than simply deleted because `resolveModelForFormat` passes an
|
|
500
|
+
* id the catalog does not know through UNCHANGED — it reads as an operator's
|
|
501
|
+
* custom model — so a saved pin would keep naming a model no node can load.
|
|
502
|
+
* A retired id resolves to the step's format default instead.
|
|
503
|
+
*/
|
|
504
|
+
var RETIRED_MODEL_IDS = { "face-detection": ["scrypted-yolov9t-face"] };
|
|
505
|
+
var FACE_DETECTION_MODELS = [{
|
|
506
|
+
id: "scrfd-2.5g",
|
|
507
|
+
name: "SCRFD 2.5G",
|
|
508
|
+
description: "SCRFD 2.5G bnkps — balanced face detection with 5 keypoints (WIDER FACE 93.80/92.02/77.13). InsightFace pretrained weights.",
|
|
509
|
+
inputSize: {
|
|
510
|
+
width: 640,
|
|
511
|
+
height: 640
|
|
552
512
|
},
|
|
553
|
-
{
|
|
554
|
-
id: "
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
513
|
+
labels: [{
|
|
514
|
+
id: "face",
|
|
515
|
+
name: "Face"
|
|
516
|
+
}],
|
|
517
|
+
preprocessMode: "letterbox",
|
|
518
|
+
inputNormalization: "scrfd",
|
|
519
|
+
license: "InsightFace-NonCommercial-Research",
|
|
520
|
+
formats: {
|
|
521
|
+
onnx: {
|
|
522
|
+
url: hf("faceDetection/scrfd/onnx/camstack-scrfd-2.5g.onnx"),
|
|
523
|
+
sizeMB: 3.1
|
|
561
524
|
},
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
postprocessor: "ssd",
|
|
568
|
-
license: "Apache-2.0",
|
|
569
|
-
formats: { tflite: {
|
|
570
|
-
url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
|
|
571
|
-
sizeMB: 6.7,
|
|
525
|
+
coreml: {
|
|
526
|
+
url: hf("faceDetection/scrfd/coreml/camstack-scrfd-2.5g.mlpackage"),
|
|
527
|
+
sizeMB: 1.7,
|
|
528
|
+
isDirectory: true,
|
|
529
|
+
files: [...MLPACKAGE_FILES],
|
|
572
530
|
runtimes: ["python"]
|
|
573
|
-
}
|
|
531
|
+
},
|
|
532
|
+
openvino: ovFormat(hf("faceDetection/scrfd/openvino/camstack-scrfd-2.5g.xml"), 1.8)
|
|
574
533
|
}
|
|
575
|
-
|
|
534
|
+
}, {
|
|
535
|
+
id: "ssd-mobilenet-v2-face-edgetpu",
|
|
536
|
+
legacy: true,
|
|
537
|
+
name: "SSD MobileNet V2 Face (Coral)",
|
|
538
|
+
description: "SSD MobileNet V2 face detector — EdgeTPU-compiled full-integer TFLite, 320×320; runs on the Coral USB Edge TPU. Requires an ssd-face postprocessor (not yet available).",
|
|
539
|
+
inputSize: {
|
|
540
|
+
width: 320,
|
|
541
|
+
height: 320
|
|
542
|
+
},
|
|
543
|
+
labels: [{
|
|
544
|
+
id: "face",
|
|
545
|
+
name: "Face"
|
|
546
|
+
}],
|
|
547
|
+
preprocessMode: "letterbox",
|
|
548
|
+
postprocessor: "ssd",
|
|
549
|
+
license: "Apache-2.0",
|
|
550
|
+
formats: { tflite: {
|
|
551
|
+
url: "https://github.com/google-coral/test_data/raw/master/ssd_mobilenet_v2_face_quant_postprocess_edgetpu.tflite",
|
|
552
|
+
sizeMB: 6.7,
|
|
553
|
+
runtimes: ["python"]
|
|
554
|
+
} }
|
|
555
|
+
}];
|
|
576
556
|
var FACE_EMBEDDING_MODELS = [
|
|
577
557
|
{
|
|
578
558
|
id: "arcface-r100",
|
|
@@ -1876,6 +1856,7 @@ function getDefaultModelForFormatFromDef(def, format) {
|
|
|
1876
1856
|
* - chosen is a catalog model → keep it if it has a `format` build; else
|
|
1877
1857
|
* the addon's default model for `format`
|
|
1878
1858
|
* (a substitution — the caller surfaces it).
|
|
1859
|
+
* - chosen is RETIRED (`RETIRED_MODEL_IDS`) → the format default (D643).
|
|
1879
1860
|
* - chosen is NOT in the catalog (custom/unknown) → returned unchanged; the
|
|
1880
1861
|
* operator owns a custom model's format compat.
|
|
1881
1862
|
* - unknown stepId → chosen returned unchanged (never throws).
|
|
@@ -1888,6 +1869,7 @@ function resolveModelForFormat(stepId, chosenModelId, format) {
|
|
|
1888
1869
|
return chosenModelId ?? "";
|
|
1889
1870
|
}
|
|
1890
1871
|
if (chosenModelId === null) return getDefaultModelForFormat(stepId, format);
|
|
1872
|
+
if (RETIRED_MODEL_IDS[stepId]?.includes(chosenModelId) === true) return getDefaultModelForFormat(stepId, format);
|
|
1891
1873
|
const entry = def.models.find((m) => m.id === chosenModelId);
|
|
1892
1874
|
if (!entry) return chosenModelId;
|
|
1893
1875
|
if (entry.formats[format]) return chosenModelId;
|
|
@@ -2243,6 +2225,12 @@ Object.defineProperty(exports, "OBJECT_DETECTION_STEP_ID", {
|
|
|
2243
2225
|
return OBJECT_DETECTION_STEP_ID;
|
|
2244
2226
|
}
|
|
2245
2227
|
});
|
|
2228
|
+
Object.defineProperty(exports, "RETIRED_MODEL_IDS", {
|
|
2229
|
+
enumerable: true,
|
|
2230
|
+
get: function() {
|
|
2231
|
+
return RETIRED_MODEL_IDS;
|
|
2232
|
+
}
|
|
2233
|
+
});
|
|
2246
2234
|
Object.defineProperty(exports, "getDefaultModelForFormat", {
|
|
2247
2235
|
enumerable: true,
|
|
2248
2236
|
get: function() {
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-CJR259Xf.js");
|
|
7
|
+
const require_node = require("../node-DWg9zbY1.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-D24AJOTn.js");
|
|
9
9
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-BJUXvTjd.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_chunk.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -5062,7 +5062,8 @@ function buildFrameResult(input) {
|
|
|
5062
5062
|
...embeddingModelId !== void 0 ? { embeddingModelId } : {}
|
|
5063
5063
|
} : {},
|
|
5064
5064
|
...m.faceAlignedCrop !== void 0 ? { faceAlignedCrop: m.faceAlignedCrop } : {},
|
|
5065
|
-
...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {}
|
|
5065
|
+
...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {},
|
|
5066
|
+
...m.landmarks !== void 0 ? { landmarks: m.landmarks } : {}
|
|
5066
5067
|
};
|
|
5067
5068
|
if (input.debug) {
|
|
5068
5069
|
const cleanDebug = pruneUndefined({
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { $ as defaultDeviceFor$1, $t as errMsg, A as PoolMemoryWatchdog, En as array, Et as overlayClusterStepSettings, Fn as string, Gt as runtimeDevices$1, In as union, Ln as EventCategory, Mn as object, Mt as pipelineExecutorCapability, Ot as pickClusterStepModels, Ut as resolvePoolMemoryPolicy, V as YAMNET_TO_MACRO, Xt as supportedRuntimes$1, _t as loadContributionCapability, bn as nodePin, ct as evaluateZoneRules, f as DEFAULT_CLUSTER_STEP_MODELS, fn as createEvent, gn as hydrateSchema, ht as inferModelProvider, kt as pickClusterStepSettings, on as BaseAddon, ot as enumerateInferenceDevices, p as DEFAULT_CLUSTER_STEP_SETTINGS, rt as detectionPipelineCapability, t as APPLE_SA_TO_MACRO, v as DEVICE_BACKEND_TO_FORMAT, wn as sleep, xn as parseJsonUnknown, zt as resolveClusterStepModelId } from "../dist-
|
|
3
|
-
import { s as readProcessCost } from "../node-
|
|
4
|
-
import { a as localFrameRegistry, c as ALL_STEPS, d as getStepDefinition, f as resolveModelForFormat, l as getDefaultModelForFormat,
|
|
2
|
+
import { $ as defaultDeviceFor$1, $t as errMsg, A as PoolMemoryWatchdog, En as array, Et as overlayClusterStepSettings, Fn as string, Gt as runtimeDevices$1, In as union, Ln as EventCategory, Mn as object, Mt as pipelineExecutorCapability, Ot as pickClusterStepModels, Ut as resolvePoolMemoryPolicy, V as YAMNET_TO_MACRO, Xt as supportedRuntimes$1, _t as loadContributionCapability, bn as nodePin, ct as evaluateZoneRules, f as DEFAULT_CLUSTER_STEP_MODELS, fn as createEvent, gn as hydrateSchema, ht as inferModelProvider, kt as pickClusterStepSettings, on as BaseAddon, ot as enumerateInferenceDevices, p as DEFAULT_CLUSTER_STEP_SETTINGS, rt as detectionPipelineCapability, t as APPLE_SA_TO_MACRO, v as DEVICE_BACKEND_TO_FORMAT, wn as sleep, xn as parseJsonUnknown, zt as resolveClusterStepModelId } from "../dist-RXbmRAwP.mjs";
|
|
3
|
+
import { s as readProcessCost } from "../node-atmRSHPk.mjs";
|
|
4
|
+
import { a as localFrameRegistry, c as ALL_STEPS, d as getStepDefinition, f as resolveModelForFormat, l as getDefaultModelForFormat, m as landmarkPrecisionVerdict, n as resolveDefaultDetectionModel, r as macroGateVerdict, s as ALL_PIPELINE_STEPS, u as getStep } from "../default-detection-model-0dPKRKUD.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
6
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-BgFOHFnx.mjs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
@@ -5055,7 +5055,8 @@ function buildFrameResult(input) {
|
|
|
5055
5055
|
...embeddingModelId !== void 0 ? { embeddingModelId } : {}
|
|
5056
5056
|
} : {},
|
|
5057
5057
|
...m.faceAlignedCrop !== void 0 ? { faceAlignedCrop: m.faceAlignedCrop } : {},
|
|
5058
|
-
...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {}
|
|
5058
|
+
...m.nativeFaceShortSidePx !== void 0 ? { nativeFaceShortSidePx: m.nativeFaceShortSidePx } : {},
|
|
5059
|
+
...m.landmarks !== void 0 ? { landmarks: m.landmarks } : {}
|
|
5059
5060
|
};
|
|
5060
5061
|
if (input.debug) {
|
|
5061
5062
|
const cleanDebug = pruneUndefined({
|