@sssxyd/face-liveness-detector 0.4.0-alpha.9 → 0.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.
Files changed (38) hide show
  1. package/README.en.md +118 -144
  2. package/README.md +23 -49
  3. package/dist/index.esm.js +3170 -2330
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/index.js +3170 -2330
  6. package/dist/index.js.map +1 -1
  7. package/dist/types/browser_utils.d.ts +3 -3
  8. package/dist/types/browser_utils.d.ts.map +1 -1
  9. package/dist/types/config.d.ts.map +1 -1
  10. package/dist/types/dlp-color-wheel-detector.d.ts +76 -0
  11. package/dist/types/dlp-color-wheel-detector.d.ts.map +1 -0
  12. package/dist/types/face-detection-engine.d.ts +113 -16
  13. package/dist/types/face-detection-engine.d.ts.map +1 -1
  14. package/dist/types/face-detection-state.d.ts +5 -2
  15. package/dist/types/face-detection-state.d.ts.map +1 -1
  16. package/dist/types/face-frontal-calculator.d.ts +3 -3
  17. package/dist/types/face-frontal-calculator.d.ts.map +1 -1
  18. package/dist/types/image-quality-calculator.d.ts +10 -23
  19. package/dist/types/image-quality-calculator.d.ts.map +1 -1
  20. package/dist/types/motion-liveness-detector.d.ts +34 -19
  21. package/dist/types/motion-liveness-detector.d.ts.map +1 -1
  22. package/dist/types/optical-distortion-detector.d.ts +116 -0
  23. package/dist/types/optical-distortion-detector.d.ts.map +1 -0
  24. package/dist/types/screen-capture-detector.d.ts +74 -115
  25. package/dist/types/screen-capture-detector.d.ts.map +1 -1
  26. package/dist/types/screen-corners-contour-detector.d.ts +78 -0
  27. package/dist/types/screen-corners-contour-detector.d.ts.map +1 -0
  28. package/dist/types/screen-flicker-detector.d.ts +103 -0
  29. package/dist/types/screen-flicker-detector.d.ts.map +1 -0
  30. package/dist/types/screen-moire-pattern-detect.d.ts.map +1 -1
  31. package/dist/types/screen-response-time-detector.d.ts +70 -0
  32. package/dist/types/screen-response-time-detector.d.ts.map +1 -0
  33. package/dist/types/screen-rgb-emission-detect.d.ts.map +1 -1
  34. package/dist/types/types.d.ts +9 -51
  35. package/dist/types/types.d.ts.map +1 -1
  36. package/dist/types/video-frame-collector.d.ts +111 -0
  37. package/dist/types/video-frame-collector.d.ts.map +1 -0
  38. package/package.json +2 -1
@@ -32,6 +32,14 @@ export interface FaceDetectionEngineOptions {
32
32
  tensorflow_wasm_path?: string;
33
33
  /** TensorFlow 后端选择 */
34
34
  tensorflow_backend?: 'auto' | 'webgl' | 'wasm';
35
+ /** 调试模式 */
36
+ debug_mode?: boolean;
37
+ /** 调试日志最低级别(默认 'info') */
38
+ debug_log_level?: 'info' | 'warn' | 'error';
39
+ /** 调试日志阶段过滤(默认全部)- 可选择特定阶段 */
40
+ debug_log_stages?: string[];
41
+ /** 调试日志节流间隔(毫秒,默认 0 表示不节流) */
42
+ debug_log_throttle?: number;
35
43
  /** 视频流建议分辨率宽度(默认 1920) */
36
44
  detect_video_ideal_width?: number;
37
45
  /** 视频流建议分辨率高度(默认 1080) */
@@ -40,10 +48,8 @@ export interface FaceDetectionEngineOptions {
40
48
  detect_video_mirror?: boolean;
41
49
  /** 加载视频流的超时时间(毫秒,默认 5000) */
42
50
  detect_video_load_timeout?: number;
43
- /** 检测帧之间的延迟(毫秒,默认 100) */
51
+ /** 检测帧之间的延迟(毫秒,默认 150) */
44
52
  detect_frame_delay?: number;
45
- /** 错误后重试前的延迟(毫秒,默认 200) */
46
- detect_error_retry_delay?: number;
47
53
  /** 要采集的静默检测次数(默认 3) */
48
54
  collect_min_collect_count?: number;
49
55
  /** 最小人脸尺寸比例(默认 0.5) */
@@ -68,56 +74,8 @@ export interface FaceDetectionEngineOptions {
68
74
  action_liveness_verify_timeout?: number;
69
75
  /** 最小嘴部张开百分比(默认 0.2) */
70
76
  action_liveness_min_mouth_open_percent?: number;
71
- /** 通过活体检查的最小运动分数(0-1,默认 0.15) */
72
- motion_liveness_min_motion_score?: number;
73
- /** 自然运动的最小关键点方差(0-1,默认 0.02) */
74
- motion_liveness_min_keypoint_variance?: number;
75
- /** 用于运动分析的帧缓冲区数量(默认 5) */
76
- motion_liveness_frame_buffer_size?: number;
77
- /** 眨眼检测的眼睛长宽比阈值(默认 0.15) */
78
- motion_liveness_eye_aspect_ratio_threshold?: number;
79
- /** 光流和关键点方差一致性阈值 (0-1,默认 0.3) - 防止照片微动 */
80
- motion_liveness_motion_consistency_threshold?: number;
81
- /** 最小光流幅度阈值 - 照片几乎无光流 (0-1,默认 0.02) */
82
- motion_liveness_min_optical_flow_threshold?: number;
83
77
  /** 是否启用严格照片检测模式(默认 false) */
84
78
  motion_liveness_strict_photo_detection?: boolean;
85
- /** 屏幕采集的置信度阈值(0-1,默认 0.7) */
86
- screen_capture_confidence_threshold?: number;
87
- /** 屏幕采集检测策略(默认 'adaptive') */
88
- screen_capture_detection_strategy?: 'fastest' | 'fast' | 'accurate' | 'adaptive';
89
- /** 综合莫尔纹置信度阈值(0-1,默认 0.65) */
90
- screen_moire_pattern_threshold?: number;
91
- /** 是否启用 DCT 分析(默认 true) */
92
- screen_moire_pattern_enable_dct?: boolean;
93
- /** 是否启用边缘检测(默认 true) */
94
- screen_moire_pattern_enable_edge_detection?: boolean;
95
- /** 色彩饱和度阈值(0-100%,屏幕图像通常 < 40%,默认 40) */
96
- screen_color_saturation_threshold?: number;
97
- /** RGB通道相关性阈值(0-1,屏幕通常 > 0.85,默认 0.75) */
98
- screen_color_rgb_correlation_threshold?: number;
99
- /** 像素值熵阈值(0-8,屏幕通常 < 6.5,默认 6.5) */
100
- screen_color_pixel_entropy_threshold?: number;
101
- /** 梯度平滑性阈值(0-1,屏幕通常 > 0.7,默认 0.7) */
102
- screen_color_gradient_smoothness_threshold?: number;
103
- /** 综合置信度阈值(0-1,用于判定是否为屏幕拍摄,默认 0.65) */
104
- screen_color_confidence_threshold?: number;
105
- /** 低频段开始位置(相对于频谱长度的百分比,默认 0.15) */
106
- screen_rgb_low_freq_start_percent?: number;
107
- /** 低频段结束位置(相对于频谱长度的百分比,默认 0.35) */
108
- screen_rgb_low_freq_end_percent?: number;
109
- /** 能量比归一化因子(默认 10) */
110
- screen_rgb_energy_ratio_normalization_factor?: number;
111
- /** 通道均值差异的归一化因子(默认 50) */
112
- screen_rgb_channel_difference_normalization_factor?: number;
113
- /** RGB 周期性能量权重(默认 0.40) */
114
- screen_rgb_energy_score_weight?: number;
115
- /** RGB 通道不同步程度权重(默认 0.40) */
116
- screen_rgb_asymmetry_score_weight?: number;
117
- /** 通道均值差异权重(默认 0.20) */
118
- screen_rgb_difference_factor_weight?: number;
119
- /** RGB 屏幕拍摄的置信度阈值(默认 0.65) */
120
- screen_rgb_confidence_threshold?: number;
121
79
  }
122
80
  /**
123
81
  * 与默认值合并后的已解析配置
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 公共帧采集器 - 统一管理多帧图像
3
+ *
4
+ * 核心功能:
5
+ * - 采集灰度和彩色帧
6
+ * - 计算视频FPS
7
+ * - 为多个检测器提供帧缓冲
8
+ * - 支持时间戳记录
9
+ */
10
+ export interface FrameCollectorConfig {
11
+ bufferSize: number;
12
+ }
13
+ /**
14
+ * 公共帧采集器
15
+ *
16
+ * 多个检测器可以共用一个 VideoFrameCollector 实例,减少内存占用和代码重复
17
+ */
18
+ export declare class VideoFrameCollector {
19
+ private config;
20
+ private grayFrames;
21
+ private bgrFrames;
22
+ private frameTimestamps;
23
+ private frameWidth;
24
+ private frameHeight;
25
+ private averageFps;
26
+ private fpsHistory;
27
+ constructor(config?: Partial<FrameCollectorConfig>);
28
+ /**
29
+ * 添加一帧(灰度 + 可选的彩色)
30
+ *
31
+ * @param grayMat 灰度图像矩阵(必需)
32
+ * @param bgrMat 彩色图像矩阵,BGR格式(可选)
33
+ * @param frameTimestamp 帧时间戳,毫秒(可选,默认使用当前时间)
34
+ */
35
+ addFrame(grayMat: any, bgrMat?: any, frameTimestamp?: number): void;
36
+ /**
37
+ * 获取灰度帧缓冲区(直接引用,不复制)
38
+ * @param n 返回最后n个帧,<=0或不提供则返回全部
39
+ */
40
+ getGrayFrames(n?: number): Uint8Array[];
41
+ /**
42
+ * 获取彩色帧缓冲区(可能包含null值)
43
+ * @param n 返回最后n个帧,<=0或不提供则返回全部
44
+ */
45
+ getBgrFrames(n?: number): (Uint8Array | null)[];
46
+ /**
47
+ * 获取指定索引的灰度帧
48
+ */
49
+ getGrayFrame(index: number): Uint8Array | null;
50
+ /**
51
+ * 获取指定索引的彩色帧
52
+ */
53
+ getBgrFrame(index: number): Uint8Array | null;
54
+ /**
55
+ * 获取当前缓冲区中的帧数
56
+ */
57
+ getBufferedFrameCount(): number;
58
+ /**
59
+ * 获取帧时间戳
60
+ */
61
+ getFrameTimestamp(index: number): number | null;
62
+ /**
63
+ * 获取所有帧的时间戳
64
+ */
65
+ getFrameTimestamps(): number[];
66
+ /**
67
+ * 获取帧尺寸
68
+ */
69
+ getFrameSize(): {
70
+ width: number;
71
+ height: number;
72
+ };
73
+ getFrameWidth(): number;
74
+ getFrameHeight(): number;
75
+ /**
76
+ * 获取平均FPS
77
+ */
78
+ getAverageFps(): number;
79
+ /**
80
+ * 重置收集器,清空所有缓冲区
81
+ */
82
+ reset(): void;
83
+ /**
84
+ * 清空帧缓冲区,但保留配置和FPS统计
85
+ */
86
+ clearFrames(): void;
87
+ /**
88
+ * 获取统计信息
89
+ */
90
+ getStats(): {
91
+ bufferedFrames: number;
92
+ bufferSize: number;
93
+ frameWidth: number;
94
+ frameHeight: number;
95
+ averageFps: number;
96
+ fpsHistory: number[];
97
+ };
98
+ /**
99
+ * 获取最近N帧(用于批量处理)
100
+ */
101
+ getLastNFrames(n: number): {
102
+ grayFrames: Uint8Array[];
103
+ bgrFrames: (Uint8Array | null)[];
104
+ timestamps: number[];
105
+ };
106
+ /**
107
+ * 更新FPS统计
108
+ */
109
+ private updateFpsStats;
110
+ }
111
+ //# sourceMappingURL=video-frame-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-frame-collector.d.ts","sourceRoot":"","sources":["../../src/video-frame-collector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,WAAW,oBAAoB;IAEnC,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAsB;IAGpC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,eAAe,CAAe;IAGtC,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,WAAW,CAAY;IAG/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,UAAU,CAAe;gBAErB,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC;IAMlD;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IAyCnE;;;OAGG;IACH,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,UAAU,EAAE;IAOvC;;;OAGG;IACH,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE;IAO/C;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAO9C;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAO7C;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAO/C;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B;;OAEG;IACH,YAAY,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAOjD,aAAa,IAAI,MAAM;IAIvB,cAAc,IAAI,MAAM;IAIxB;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;OAEG;IACH,WAAW,IAAI,IAAI;IAOnB;;OAEG;IACH,QAAQ,IAAI;QACV,cAAc,EAAE,MAAM,CAAA;QACtB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,CAAA;QAClB,WAAW,EAAE,MAAM,CAAA;QACnB,UAAU,EAAE,MAAM,CAAA;QAClB,UAAU,EAAE,MAAM,EAAE,CAAA;KACrB;IAWD;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG;QACzB,UAAU,EAAE,UAAU,EAAE,CAAA;QACxB,SAAS,EAAE,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAA;QAChC,UAAU,EAAE,MAAM,EAAE,CAAA;KACrB;IASD;;OAEG;IACH,OAAO,CAAC,cAAc;CAiCvB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "@sssxyd/face-liveness-detector",
4
- "version": "0.4.0-alpha.9",
4
+ "version": "0.4.0",
5
5
  "description": "Pure JS/TS implementation of liveness face detection based on human.js and opencv.js",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.esm.js",
@@ -26,6 +26,7 @@
26
26
  "files": [
27
27
  "dist",
28
28
  "README.md",
29
+ "README.en.md",
29
30
  "LICENSE"
30
31
  ],
31
32
  "scripts": {