idmission-web-sdk 1.0.367 → 1.0.369
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/components/common/debug.d.ts +2 -2
- package/dist/components/id_capture/CapturedDocuments.d.ts +2 -1
- package/dist/components/id_capture/DocumentDetectionModelProvider.d.ts +55 -0
- package/dist/components/id_capture/FocusModelProvider.d.ts +23 -0
- package/dist/components/id_capture/IdCapture.d.ts +1 -1
- package/dist/components/id_capture/IdCaptureModelsProvider.d.ts +12 -28
- package/dist/components/selfie_capture/SelfieCapture.d.ts +1 -1
- package/dist/components/selfie_capture/SelfieGuidanceModelsProvider.d.ts +21 -3
- package/dist/contexts/SubmissionContext.d.ts +2 -1
- package/dist/lib/barcode/Scan.d.ts +2 -1
- package/dist/lib/models/CapabilityProbing.d.ts +11 -0
- package/dist/lib/models/DocumentDetection.d.ts +14 -25
- package/dist/lib/models/FaceDetection.d.ts +20 -5
- package/dist/lib/models/Focus.d.ts +12 -9
- package/dist/lib/models/VisionRuntime.d.ts +2 -0
- package/dist/lib/models/preloadModels.d.ts +9 -2
- package/dist/lib/utils/cropping.d.ts +3 -2
- package/dist/lib/utils/isMobile.d.ts +1 -0
- package/dist/lib/utils/logger.d.ts +2 -0
- package/dist/sdk2.cjs.development.js +1501 -7811
- package/dist/sdk2.cjs.development.js.map +1 -1
- package/dist/sdk2.cjs.production.js +1 -1
- package/dist/sdk2.cjs.production.js.map +1 -1
- package/dist/sdk2.esm.js +1502 -7811
- package/dist/sdk2.esm.js.map +1 -1
- package/dist/sdk2.umd.development.js +1523 -7834
- package/dist/sdk2.umd.development.js.map +1 -1
- package/dist/sdk2.umd.production.js +1 -1
- package/dist/sdk2.umd.production.js.map +1 -1
- package/dist/stories/Experiments/VideoCapture.stories.d.ts +1 -1
- package/dist/stories/models/FocusModel.stories.d.ts +1 -1
- package/dist/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/components/id_capture/HighPerformanceObjectDetectionModelsProvider.d.ts +0 -36
- package/dist/components/selfie_capture/HighPerformanceSelfieGuidanceModelsProvider.d.ts +0 -42
- package/dist/contexts/SelfieGuidanceModelsContext.d.ts +0 -15
- package/dist/stories/Components/HighPerformanceFaceDetection/Original.stories.d.ts +0 -8
- package/dist/stories/Experiments/BarcodeReader.stories.d.ts +0 -7
- package/dist/stories/models/DocumentDetection.stories.d.ts +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React, { ReactElement, ReactNode } from 'react';
|
|
2
2
|
import { DetectedObject } from '../../lib/models/DocumentDetection';
|
|
3
|
-
import { Face, FaceKeypoint } from '
|
|
3
|
+
import { Face, FaceKeypoint } from '../../lib/models/FaceDetection';
|
|
4
4
|
export declare const DebugStatsPane: import("styled-components").IStyledComponent<"web", {
|
|
5
5
|
ref?: React.LegacyRef<HTMLSpanElement> | undefined;
|
|
6
6
|
key?: React.Key | null | undefined;
|
|
@@ -313,7 +313,7 @@ export type DetectedObjectDebugBoxProps = {
|
|
|
313
313
|
flipX?: boolean;
|
|
314
314
|
color?: string;
|
|
315
315
|
};
|
|
316
|
-
export declare function IdCaptureDetectedObjectDebugBox({ obj, flipX, color, }: DetectedObjectDebugBoxProps): ReactElement;
|
|
316
|
+
export declare function IdCaptureDetectedObjectDebugBox({ obj, flipX, color, scaling, }: DetectedObjectDebugBoxProps): ReactElement;
|
|
317
317
|
export type SelfieCaptureFaceDebugBoxProps = {
|
|
318
318
|
face: Face;
|
|
319
319
|
scaling: DebugScalingDetails;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { DetectedObjectBox } from '../../lib/models/DocumentDetection';
|
|
1
2
|
export type CapturedDocument = {
|
|
2
3
|
imageData: string;
|
|
3
4
|
width: number;
|
|
4
5
|
height: number;
|
|
5
|
-
boundingBox?:
|
|
6
|
+
boundingBox?: DetectedObjectBox;
|
|
6
7
|
};
|
|
7
8
|
export declare const CapturedDocumentTypeValues: readonly ["idCardFront", "idCardBack", "passport", "selfie"];
|
|
8
9
|
export type CapturedDocumentType = (typeof CapturedDocumentTypeValues)[number];
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MutableRefObject, ReactElement, ReactNode } from 'react';
|
|
3
|
+
import { DetectedObject, DocumentType } from '../../lib/models/DocumentDetection';
|
|
4
|
+
type PredictionHandler = (prediction: DocumentDetectionPrediction) => Promise<void>;
|
|
5
|
+
type DocumentDetectionModelState = {
|
|
6
|
+
documentDetectionModelReady: boolean;
|
|
7
|
+
startDocumentDetection: () => void;
|
|
8
|
+
stopDocumentDetection: () => void;
|
|
9
|
+
onDocumentDetected: (handler: PredictionHandler) => void;
|
|
10
|
+
detectionTime: number;
|
|
11
|
+
documentDetectionThresholds: DocumentDetectionThresholds;
|
|
12
|
+
setDocumentDetectionThresholds: (value: DocumentDetectionThresholds) => void;
|
|
13
|
+
documentDetectionLastPredictionCanvas: MutableRefObject<HTMLCanvasElement | null>;
|
|
14
|
+
documentDetectionModelDownloadProgress: number;
|
|
15
|
+
documentDetectionModelError: Error | null;
|
|
16
|
+
};
|
|
17
|
+
export declare const DocumentDetectionModelContext: React.Context<DocumentDetectionModelState>;
|
|
18
|
+
export type DocumentDetectionModelProviderProps = {
|
|
19
|
+
autoStart?: boolean;
|
|
20
|
+
children: ReactNode;
|
|
21
|
+
throttleMs?: number;
|
|
22
|
+
documentDetectionModelPath?: string;
|
|
23
|
+
documentDetectionModelDelegate?: 'CPU' | 'GPU';
|
|
24
|
+
documentDetectionModelScoreThreshold?: number;
|
|
25
|
+
documentDetectionModelLoadTimeoutMs?: number;
|
|
26
|
+
};
|
|
27
|
+
export declare function DocumentDetectionModelProvider({ autoStart, children, throttleMs, documentDetectionModelPath, documentDetectionModelDelegate, documentDetectionModelScoreThreshold, documentDetectionModelLoadTimeoutMs, }: DocumentDetectionModelProviderProps): ReactElement;
|
|
28
|
+
export type DocumentDetectionThresholds = {
|
|
29
|
+
document?: number;
|
|
30
|
+
passport?: number;
|
|
31
|
+
mrz?: number;
|
|
32
|
+
pdf417?: number;
|
|
33
|
+
};
|
|
34
|
+
export type DocumentDetectionPrediction = {
|
|
35
|
+
detectedObjects: DetectedObject[];
|
|
36
|
+
detectionTime: number;
|
|
37
|
+
detectionScore: number;
|
|
38
|
+
detectionThresholdMet: boolean;
|
|
39
|
+
detectedDocumentType: DocumentType;
|
|
40
|
+
passportDetectionScore: number;
|
|
41
|
+
passportDetectionThresholdMet: boolean;
|
|
42
|
+
mrzDetectionScore: number;
|
|
43
|
+
mrzDetectionThresholdMet: boolean;
|
|
44
|
+
pdf417DetectionScore: number;
|
|
45
|
+
pdf417DetectionThresholdMet: boolean;
|
|
46
|
+
bestDocumentOrPassport: DetectedObject | undefined;
|
|
47
|
+
bestMrz: DetectedObject | undefined;
|
|
48
|
+
bestPdf417: DetectedObject | undefined;
|
|
49
|
+
documentInBounds: boolean;
|
|
50
|
+
documentTooClose: boolean;
|
|
51
|
+
frameWidth: number;
|
|
52
|
+
frameHeight: number;
|
|
53
|
+
allZero: boolean;
|
|
54
|
+
};
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
|
+
import { Frame } from '../../lib/utils/getFrameDimensions';
|
|
3
|
+
import { FocusPrediction, FocusThresholds } from '../../lib/models/Focus';
|
|
4
|
+
import { DetectedObjectBox } from '../../lib/models/DocumentDetection';
|
|
5
|
+
type FocusModelState = {
|
|
6
|
+
focusModelReady: boolean;
|
|
7
|
+
focusModelDownloadProgress: number;
|
|
8
|
+
focusModelError: Error | null;
|
|
9
|
+
focusThresholds: FocusThresholds;
|
|
10
|
+
setFocusThresholds: (value: FocusThresholds) => void;
|
|
11
|
+
makeFocusPrediction: (image: Frame, box?: DetectedObjectBox) => Promise<FocusPrediction | null>;
|
|
12
|
+
focusPredictionTime: number;
|
|
13
|
+
};
|
|
14
|
+
export declare const FocusModelContext: React.Context<FocusModelState>;
|
|
15
|
+
export type FocusModelProviderProps = {
|
|
16
|
+
children: ReactNode;
|
|
17
|
+
focusModelPath?: string;
|
|
18
|
+
focusModelLoadTimeoutMs?: number;
|
|
19
|
+
focusModelDelegate?: 'CPU' | 'GPU';
|
|
20
|
+
onFocusModelError?: (error: Error) => void;
|
|
21
|
+
};
|
|
22
|
+
export declare function FocusModelProvider({ children, focusModelPath, focusModelLoadTimeoutMs, focusModelDelegate, onFocusModelError, }: FocusModelProviderProps): React.JSX.Element;
|
|
23
|
+
export {};
|
|
@@ -60,4 +60,4 @@ export type IdCaptureProps = {
|
|
|
60
60
|
verbiage?: IdCaptureVerbiage;
|
|
61
61
|
debugMode?: boolean;
|
|
62
62
|
};
|
|
63
|
-
export declare const IdCapture: ({ requiredDocumentType, autoCaptureEnabled, autoCaptureScoreThreshold, autoCaptureGoodFramesRequired, autoCaptureBarcodeRequired, mrzDetectionScoreThreshold, passportPageDetectionThreshold, pdf417DetectionThreshold, focusScoreThreshold, barcodeScanningEnabled, maxBarcodeScanAttempts, guidanceMessage, guidanceSatisfied, onPrediction,
|
|
63
|
+
export declare const IdCapture: ({ requiredDocumentType, autoCaptureEnabled, autoCaptureScoreThreshold, autoCaptureGoodFramesRequired, autoCaptureBarcodeRequired, mrzDetectionScoreThreshold, passportPageDetectionThreshold, pdf417DetectionThreshold, focusScoreThreshold, barcodeScanningEnabled, maxBarcodeScanAttempts, guidanceMessage, guidanceSatisfied, onPrediction, onCapture, assets, classNames, colors, verbiage: rawVerbiage, debugMode, }: IdCaptureProps) => React.ReactElement;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import { DetectedObject, DocumentType } from '../../lib/models/DocumentDetection';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
1
|
+
import React, { ReactElement, ReactNode } from 'react';
|
|
2
|
+
import { DetectedObject, DetectedObjectBox, DocumentType } from '../../lib/models/DocumentDetection';
|
|
3
|
+
import { DocumentDetectionModelProviderProps, DocumentDetectionThresholds } from './DocumentDetectionModelProvider';
|
|
4
|
+
import { FocusModelProviderProps } from './FocusModelProvider';
|
|
5
|
+
import { FocusThresholds } from '../../lib/models/Focus';
|
|
5
6
|
export type IdCapturePrediction = {
|
|
6
7
|
detectedObjects: DetectedObject[];
|
|
7
8
|
detectionTime: number;
|
|
@@ -26,30 +27,23 @@ export type IdCapturePrediction = {
|
|
|
26
27
|
frameHeight: number;
|
|
27
28
|
allZero: boolean;
|
|
28
29
|
};
|
|
29
|
-
export type IdCaptureThresholds = {
|
|
30
|
-
|
|
31
|
-
passport?: number;
|
|
32
|
-
mrz?: number;
|
|
33
|
-
pdf417?: number;
|
|
34
|
-
focus?: {
|
|
35
|
-
desktop?: number;
|
|
36
|
-
mobile?: number;
|
|
37
|
-
};
|
|
30
|
+
export type IdCaptureThresholds = DocumentDetectionThresholds & {
|
|
31
|
+
focus?: FocusThresholds;
|
|
38
32
|
};
|
|
39
33
|
export type BestFrame = {
|
|
40
34
|
canvas: HTMLCanvasElement;
|
|
41
|
-
boundingBox?:
|
|
35
|
+
boundingBox?: DetectedObjectBox;
|
|
42
36
|
detectionScore: number;
|
|
43
37
|
focusScore: number;
|
|
44
38
|
};
|
|
45
39
|
export type IdCaptureModelsState = {
|
|
46
40
|
ready: boolean;
|
|
41
|
+
start: () => void;
|
|
42
|
+
stop: () => void;
|
|
47
43
|
modelDownloadProgress: number;
|
|
48
|
-
working: MutableRefObject<boolean>;
|
|
49
44
|
idModelError: Error | null;
|
|
50
45
|
thresholds: IdCaptureThresholds;
|
|
51
46
|
setThresholds: (value: IdCaptureThresholds) => void;
|
|
52
|
-
makePrediction: (frame: Frame) => void;
|
|
53
47
|
onPredictionMade: (handler: (prediction: IdCapturePrediction) => void) => void;
|
|
54
48
|
detectionTime: number;
|
|
55
49
|
focusPredictionTime: number;
|
|
@@ -63,18 +57,8 @@ export type IdCaptureModelsProviderProps = {
|
|
|
63
57
|
children: ReactNode;
|
|
64
58
|
documentDetectionModelUrl?: string | undefined;
|
|
65
59
|
focusModelUrl?: string | undefined;
|
|
66
|
-
logPredictions?: boolean;
|
|
67
60
|
onModelError?: (error: Error) => void;
|
|
68
61
|
modelLoadTimeoutMs?: number;
|
|
69
62
|
};
|
|
70
|
-
export declare
|
|
71
|
-
export declare
|
|
72
|
-
export declare const defaultIdCaptureModelLoadTimeoutMs = 45000;
|
|
73
|
-
export declare const IdCaptureModelsProvider: ({ children, documentDetectionModelUrl, focusModelUrl, logPredictions, onModelError, modelLoadTimeoutMs, }: IdCaptureModelsProviderProps) => ReactElement;
|
|
74
|
-
type Canvases = {
|
|
75
|
-
lastPredictionCanvas: HTMLCanvasElement;
|
|
76
|
-
cropCanvas: HTMLCanvasElement;
|
|
77
|
-
rotateCanvas: HTMLCanvasElement;
|
|
78
|
-
};
|
|
79
|
-
export declare function makeFocusPrediction(imageData: Frame, canvases: Canvases, bbox?: number[], logPredictions?: boolean): Promise<[FocusPrediction, number]>;
|
|
80
|
-
export {};
|
|
63
|
+
export declare function IdCaptureModelsProviderInner({ children, onModelError, }: IdCaptureModelsProviderProps): ReactElement;
|
|
64
|
+
export declare function IdCaptureModelsProvider({ children, ...props }: IdCaptureModelsProviderProps & DocumentDetectionModelProviderProps & FocusModelProviderProps): React.JSX.Element;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ReactElement } from 'react';
|
|
2
2
|
import { FaceCaptureGuideOverlayClassNames } from '../face_liveness/FaceCaptureGuideOverlay';
|
|
3
|
-
import { Face } from './HighPerformanceSelfieGuidanceModelsProvider';
|
|
4
3
|
import { CustomerSuppliedVerbiage } from '../../lib/locales';
|
|
5
4
|
import { SelfieCaptureFallbackClassNames } from '../fallback_flows/SelfieCapture';
|
|
5
|
+
import { Face } from '../../lib/models/FaceDetection';
|
|
6
6
|
export type SelfieCaptureClassNames = {
|
|
7
7
|
container?: string;
|
|
8
8
|
cameraFeed?: string;
|
|
@@ -1,5 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { MutableRefObject, ReactElement, ReactNode } from 'react';
|
|
3
|
+
import { Face } from '../../lib/models/FaceDetection';
|
|
4
|
+
type PredictionHandler = (prediction: Face[]) => void;
|
|
5
|
+
type SelfieGuidanceModelsState = {
|
|
6
|
+
start: () => void;
|
|
7
|
+
stop: () => void;
|
|
8
|
+
onPredictionMade: (handler: PredictionHandler) => void;
|
|
9
|
+
canvasRef: MutableRefObject<HTMLCanvasElement | null>;
|
|
10
|
+
ready: boolean;
|
|
11
|
+
error: Error | null;
|
|
12
|
+
modelDownloadProgress: number;
|
|
13
|
+
};
|
|
14
|
+
export declare const SelfieGuidanceModelsContext: React.Context<SelfieGuidanceModelsState>;
|
|
2
15
|
export type SelfieGuidanceModelsProviderProps = {
|
|
3
|
-
|
|
16
|
+
autoStart?: boolean;
|
|
17
|
+
children: ReactNode;
|
|
18
|
+
throttleMs?: number;
|
|
19
|
+
onModelError?: (error: Error) => void;
|
|
20
|
+
modelLoadTimeoutMs?: number;
|
|
4
21
|
};
|
|
5
|
-
export declare
|
|
22
|
+
export declare function SelfieGuidanceModelsProvider({ autoStart, children, throttleMs, onModelError, modelLoadTimeoutMs, }: SelfieGuidanceModelsProviderProps): ReactElement;
|
|
23
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { UploadedDocument } from '../components/additional_document_capture/AdditionalDocumentCapture';
|
|
2
|
+
import { DetectedObjectBox } from '../lib/models/DocumentDetection';
|
|
2
3
|
export declare enum SubmissionAction {
|
|
3
4
|
NONE = "NONE",
|
|
4
5
|
ENROLL = "ENROLL",
|
|
@@ -80,7 +81,7 @@ export type CaptureAttemptMetadata = {
|
|
|
80
81
|
operationTime?: number;
|
|
81
82
|
bestDetectionScore?: number;
|
|
82
83
|
bestFocusScore?: number;
|
|
83
|
-
boundingBox?:
|
|
84
|
+
boundingBox?: DetectedObjectBox;
|
|
84
85
|
};
|
|
85
86
|
export type PersonalData = {
|
|
86
87
|
uniqueNumber?: string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import { PDF417DetectionResult } from './Native';
|
|
2
|
+
import { DetectedObjectBox } from '../models/DocumentDetection';
|
|
2
3
|
export declare function supportsNativeBarcodeScanning(): boolean;
|
|
3
|
-
export declare function scanBarcode(blob: Blob,
|
|
4
|
+
export declare function scanBarcode(blob: Blob, box?: DetectedObjectBox): Promise<PDF417DetectionResult | null>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
type ProbeState = 'notProbed' | 'probing' | 'probed';
|
|
2
|
+
type ModelCapabilities = {
|
|
3
|
+
probeState: ProbeState;
|
|
4
|
+
delegate: 'GPU' | 'CPU' | 'NONE';
|
|
5
|
+
networkSpeed: number;
|
|
6
|
+
networkTier: 'untested' | 'slow' | 'medium' | 'fast';
|
|
7
|
+
};
|
|
8
|
+
export declare const defaultImageSegmenterModelPath = "https://websdk-cdn-dev.idmission.com/assets/models/selfiesegmenter20240524/selfie_segmenter.tflite";
|
|
9
|
+
export declare const modelCapabilities: ModelCapabilities;
|
|
10
|
+
export declare function probeModelCapabilities(): Promise<void>;
|
|
11
|
+
export {};
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ObjectDetector } from '@mediapipe/tasks-vision';
|
|
2
|
+
export declare const defaultDocumentDetectorModelPath = "https://websdk-cdn-dev.idmission.com/assets/models/docdetectmp20240530/model_fp16.tflite";
|
|
3
|
+
export declare const defaultDocumentDetectionModelLoadTimeoutMs = 45000;
|
|
2
4
|
export type DocumentType = 'none' | 'idCard' | 'passport';
|
|
3
|
-
export interface DocumentDetectionModel extends tf.GraphModel {
|
|
4
|
-
outputPositions: {
|
|
5
|
-
boxes: number;
|
|
6
|
-
scores: number;
|
|
7
|
-
labels: number;
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
export declare let documentDetectionModel: DocumentDetectionModel | null;
|
|
11
|
-
export declare function loadDocumentDetectionModel(url: string): Promise<DocumentDetectionModel>;
|
|
12
|
-
export declare function unloadDocumentDetectionModel(): void;
|
|
13
|
-
export type RawEdgeDetectionResult = tf.Tensor<tf.Rank>[];
|
|
14
|
-
export declare function makeDocumentDetectionPredictions(model: tf.GraphModel, image: ImageBitmap | ImageData | HTMLImageElement): Promise<[RawEdgeDetectionResult, () => void]>;
|
|
15
|
-
export type DocumentDetectionResults = {
|
|
16
|
-
boxes: number[][];
|
|
17
|
-
scores: number[];
|
|
18
|
-
labels: number[];
|
|
19
|
-
};
|
|
20
|
-
export declare const labelMap: {
|
|
21
|
-
[id: number]: Label;
|
|
22
|
-
};
|
|
23
5
|
export type Label = 'Document' | 'MRZ' | 'PDF417' | 'Primary face' | 'Secondary face' | 'Glare' | 'Punch Hole' | 'Passport Page';
|
|
24
|
-
export
|
|
6
|
+
export type DetectedObjectBox = {
|
|
7
|
+
xMin: number;
|
|
8
|
+
xMax: number;
|
|
9
|
+
yMin: number;
|
|
10
|
+
yMax: number;
|
|
11
|
+
width: number;
|
|
12
|
+
height: number;
|
|
13
|
+
};
|
|
25
14
|
export type DetectedObject = {
|
|
26
|
-
|
|
27
|
-
bbox: number[];
|
|
15
|
+
box: DetectedObjectBox;
|
|
28
16
|
label: Label;
|
|
17
|
+
score: number;
|
|
29
18
|
};
|
|
30
|
-
export declare function
|
|
19
|
+
export declare function loadDocumentDetector(modelAssetPath: string, scoreThreshold?: number): Promise<ObjectDetector>;
|
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
import * as faceDetection from '@tensorflow-models/face-detection';
|
|
2
1
|
import '@mediapipe/face_detection';
|
|
3
|
-
import {
|
|
4
|
-
export
|
|
5
|
-
export declare
|
|
6
|
-
export
|
|
2
|
+
import { FaceDetector } from '@mediapipe/tasks-vision';
|
|
3
|
+
export declare const defaultFaceDetectorModelPath = "https://websdk-cdn-dev.idmission.com/assets/models/blazeface20240207/blaze_face_short_range.tflite";
|
|
4
|
+
export declare const defaultSelfieCaptureModelLoadTimeoutMs = 45000;
|
|
5
|
+
export type FaceKeypoint = {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
name: string;
|
|
9
|
+
};
|
|
10
|
+
export type Face = {
|
|
11
|
+
keypoints: FaceKeypoint[];
|
|
12
|
+
box: {
|
|
13
|
+
xMin: number;
|
|
14
|
+
xMax: number;
|
|
15
|
+
yMin: number;
|
|
16
|
+
yMax: number;
|
|
17
|
+
width: number;
|
|
18
|
+
height: number;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export declare function loadFaceDetector(): Promise<FaceDetector>;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
2
|
-
export declare
|
|
3
|
-
export declare
|
|
4
|
-
export
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
export
|
|
9
|
-
|
|
1
|
+
import { ImageClassifier } from '@mediapipe/tasks-vision';
|
|
2
|
+
export declare const defaultFocusModelPath = "https://websdk-cdn-dev.idmission.com/assets/models/focusmp20240523/model_float16.tflite";
|
|
3
|
+
export declare const defaultFocusModelLoadTimeoutMs = 45000;
|
|
4
|
+
export type FocusPrediction = {
|
|
5
|
+
score: number;
|
|
6
|
+
predictionTime: number;
|
|
7
|
+
};
|
|
8
|
+
export type FocusThresholds = {
|
|
9
|
+
desktop?: number;
|
|
10
|
+
mobile?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare function loadFocusModel(modelAssetPath: string, delegate?: 'CPU' | 'GPU'): Promise<ImageClassifier>;
|
|
@@ -7,8 +7,15 @@ export type PreloadProgress = {
|
|
|
7
7
|
loaded: number;
|
|
8
8
|
total: number;
|
|
9
9
|
};
|
|
10
|
+
export declare const progressByUseCase: {
|
|
11
|
+
visionRuntime: PreloadProgress;
|
|
12
|
+
documentDetection: PreloadProgress;
|
|
13
|
+
focus: PreloadProgress;
|
|
14
|
+
faceDetection: PreloadProgress;
|
|
15
|
+
};
|
|
10
16
|
export declare function preloadDependency(url: string): Promise<unknown>;
|
|
11
|
-
export declare function
|
|
17
|
+
export declare function preloadDocumentDetectorDependencies(): Promise<void>;
|
|
18
|
+
export declare function preloadFocusModelDependencies(): Promise<void>;
|
|
12
19
|
export declare function preloadFaceDetectorDependencies(): Promise<void>;
|
|
13
|
-
export declare function getTfjsModelDependencies(url: string): Promise<string[]>;
|
|
14
20
|
export declare function progressToPercentage(progress: PreloadProgress): number;
|
|
21
|
+
export declare function sumUpProgressForDependencies(dependencies: string[]): PreloadProgress;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Face } from '@tensorflow-models/face-detection';
|
|
2
1
|
import { Frame } from './getFrameDimensions';
|
|
2
|
+
import { DetectedObjectBox } from '../models/DocumentDetection';
|
|
3
|
+
import { Face } from '../models/FaceDetection';
|
|
3
4
|
export declare function cropToShoulders(rawCanvas: HTMLCanvasElement | null, cropCanvas: HTMLCanvasElement | null, frame: ImageData, face: Face): string;
|
|
4
|
-
export declare function
|
|
5
|
+
export declare function cropToDetectedObjectBox(frame: Frame, box: DetectedObjectBox, canvas?: HTMLCanvasElement): HTMLCanvasElement;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isMobile(nav?: Navigator): any;
|
|
@@ -11,4 +11,6 @@ export declare function debug(...parts: unknown[]): void;
|
|
|
11
11
|
export declare function log(...parts: unknown[]): void;
|
|
12
12
|
export declare function warn(...parts: unknown[]): void;
|
|
13
13
|
export declare function error(...parts: unknown[]): void;
|
|
14
|
+
export declare function time(label?: string): void;
|
|
15
|
+
export declare function timeEnd(label?: string): void;
|
|
14
16
|
export default log;
|