miva-proctor-sdk 0.0.34 → 0.0.35
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/cjs/src/core/proctor/faceDetector.d.ts +1 -0
- package/dist/cjs/src/core/proctor/faceDetector.js +38 -12
- package/dist/esm/src/core/proctor/faceDetector.d.ts +1 -0
- package/dist/esm/src/core/proctor/faceDetector.js +38 -12
- package/dist/types/src/core/proctor/faceDetector.d.ts +1 -0
- package/dist/umd/index.js +1 -1
- package/package.json +1 -1
|
@@ -13,17 +13,39 @@ class FaceDetector {
|
|
|
13
13
|
this.start();
|
|
14
14
|
}
|
|
15
15
|
async start() {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
16
|
+
try {
|
|
17
|
+
await this.video.play();
|
|
18
|
+
console.log('Starting FaceDetector');
|
|
19
|
+
let vision;
|
|
20
|
+
try {
|
|
21
|
+
vision = await tasks_vision_1.FilesetResolver.forVisionTasks('https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.0/wasm');
|
|
22
|
+
console.log('MediaPipe WASM loaded successfully');
|
|
23
|
+
}
|
|
24
|
+
catch (wasmError) {
|
|
25
|
+
console.error('Failed to load MediaPipe WASM:', wasmError);
|
|
26
|
+
this.useFallbackFaceDetection();
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
try {
|
|
30
|
+
this.faceDetector = await tasks_vision_1.FaceDetector.createFromOptions(vision, {
|
|
31
|
+
baseOptions: {
|
|
32
|
+
modelAssetPath: `https://storage.googleapis.com/mediapipe-models/face_detector/blaze_face_short_range/float16/1/blaze_face_short_range.tflite`,
|
|
33
|
+
delegate: 'CPU',
|
|
34
|
+
},
|
|
35
|
+
runningMode: 'VIDEO',
|
|
36
|
+
});
|
|
37
|
+
console.log('Face detector initialized successfully');
|
|
38
|
+
}
|
|
39
|
+
catch (detectorError) {
|
|
40
|
+
console.error('Failed to initialize face detector:', detectorError);
|
|
41
|
+
this.useFallbackFaceDetection();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.detectFaces();
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
console.error('FaceDetector start failed:', error);
|
|
48
|
+
}
|
|
27
49
|
}
|
|
28
50
|
async detectFaces() {
|
|
29
51
|
this.startTimeMs = performance.now();
|
|
@@ -37,6 +59,10 @@ class FaceDetector {
|
|
|
37
59
|
}
|
|
38
60
|
window.requestAnimationFrame(this.detectFaces.bind(this));
|
|
39
61
|
}
|
|
62
|
+
useFallbackFaceDetection() {
|
|
63
|
+
// Implement a simpler face detection method
|
|
64
|
+
// For example, using canvas-based motion detection or a simpler library
|
|
65
|
+
}
|
|
40
66
|
}
|
|
41
67
|
exports.FaceDetector = FaceDetector;
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZURldGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvcmUvcHJvY3Rvci9mYWNlRGV0ZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBR21DO0FBTWpDLE1BQWEsWUFBWTtJQVF2QixZQUFZLE1BQW1CLEVBQUUsU0FBaUM7UUFMbEUsa0JBQWEsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpCLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUc3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBSztRQUNqQixJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyQyxJQUFJLE1BQVcsQ0FBQztZQUNoQixJQUFJO2dCQUNGLE1BQU0sR0FBRyxNQUFNLDhCQUFlLENBQUMsY0FBYyxDQUMzQyxrRUFBa0UsQ0FDbkUsQ0FBQztnQkFDRixPQUFPLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7YUFDbkQ7WUFBQyxPQUFPLFNBQVMsRUFBRTtnQkFDbEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxnQ0FBZ0MsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7Z0JBQ2hDLE9BQU87YUFDUjtZQUdELElBQUk7Z0JBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLDJCQUFhLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFO29CQUNoRSxXQUFXLEVBQUU7d0JBQ1gsY0FBYyxFQUFFLDhIQUE4SDt3QkFDOUksUUFBUSxFQUFFLEtBQUs7cUJBQ2hCO29CQUNELFdBQVcsRUFBRSxPQUFPO2lCQUNyQixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO2FBQ3ZEO1lBQUMsT0FBTyxhQUFhLEVBQUU7Z0JBQ3RCLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEVBQUUsYUFBYSxDQUFDLENBQUM7Z0JBQ3BFLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO2dCQUNoQyxPQUFPO2FBQ1I7WUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDcEI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLE9BQU8sQ0FBQyxLQUFLLENBQUMsNEJBQTRCLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDcEQ7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVc7UUFDZixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNyQyxJQUFJLElBQUksQ0FBQyxLQUFNLENBQUMsV0FBVyxLQUFLLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUM1QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBYSxDQUFDLGNBQWMsQ0FDbEQsSUFBSSxDQUFDLEtBQUssRUFDVixJQUFJLENBQUMsV0FBVyxDQUNqQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBRXpFLElBQUksSUFBSSxDQUFDLGtCQUFrQixLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNyRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUM3QztTQUNGO1FBRUQsTUFBTSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVPLHdCQUF3QjtRQUM5Qiw0Q0FBNEM7UUFDNUMsd0VBQXdFO0lBQzFFLENBQUM7Q0FDRjtBQTNFRCxvQ0EyRUMifQ==
|
|
@@ -10,17 +10,39 @@ export class FaceDetector {
|
|
|
10
10
|
this.start();
|
|
11
11
|
}
|
|
12
12
|
async start() {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
try {
|
|
14
|
+
await this.video.play();
|
|
15
|
+
console.log('Starting FaceDetector');
|
|
16
|
+
let vision;
|
|
17
|
+
try {
|
|
18
|
+
vision = await FilesetResolver.forVisionTasks('https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@0.10.0/wasm');
|
|
19
|
+
console.log('MediaPipe WASM loaded successfully');
|
|
20
|
+
}
|
|
21
|
+
catch (wasmError) {
|
|
22
|
+
console.error('Failed to load MediaPipe WASM:', wasmError);
|
|
23
|
+
this.useFallbackFaceDetection();
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
this.faceDetector = await GFaceDetector.createFromOptions(vision, {
|
|
28
|
+
baseOptions: {
|
|
29
|
+
modelAssetPath: `https://storage.googleapis.com/mediapipe-models/face_detector/blaze_face_short_range/float16/1/blaze_face_short_range.tflite`,
|
|
30
|
+
delegate: 'CPU',
|
|
31
|
+
},
|
|
32
|
+
runningMode: 'VIDEO',
|
|
33
|
+
});
|
|
34
|
+
console.log('Face detector initialized successfully');
|
|
35
|
+
}
|
|
36
|
+
catch (detectorError) {
|
|
37
|
+
console.error('Failed to initialize face detector:', detectorError);
|
|
38
|
+
this.useFallbackFaceDetection();
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.detectFaces();
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.error('FaceDetector start failed:', error);
|
|
45
|
+
}
|
|
24
46
|
}
|
|
25
47
|
async detectFaces() {
|
|
26
48
|
this.startTimeMs = performance.now();
|
|
@@ -34,5 +56,9 @@ export class FaceDetector {
|
|
|
34
56
|
}
|
|
35
57
|
window.requestAnimationFrame(this.detectFaces.bind(this));
|
|
36
58
|
}
|
|
59
|
+
useFallbackFaceDetection() {
|
|
60
|
+
// Implement a simpler face detection method
|
|
61
|
+
// For example, using canvas-based motion detection or a simpler library
|
|
62
|
+
}
|
|
37
63
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjZURldGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2NvcmUvcHJvY3Rvci9mYWNlRGV0ZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFlBQVksSUFBSSxhQUFhLEVBQzdCLGVBQWUsR0FDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQU1qQyxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUFZLE1BQW1CLEVBQUUsU0FBaUM7UUFMbEUsa0JBQWEsR0FBVyxDQUFDLENBQUMsQ0FBQztRQUMzQixnQkFBVyxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXpCLHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUc3QixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDO1FBQzlCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBSztRQUNqQixJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyQyxJQUFJLE1BQVcsQ0FBQztZQUNoQixJQUFJO2dCQUNGLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQyxjQUFjLENBQzNDLGtFQUFrRSxDQUNuRSxDQUFDO2dCQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0NBQW9DLENBQUMsQ0FBQzthQUNuRDtZQUFDLE9BQU8sU0FBUyxFQUFFO2dCQUNsQixPQUFPLENBQUMsS0FBSyxDQUFDLGdDQUFnQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDaEMsT0FBTzthQUNSO1lBR0QsSUFBSTtnQkFDRixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sYUFBYSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sRUFBRTtvQkFDaEUsV0FBVyxFQUFFO3dCQUNYLGNBQWMsRUFBRSw4SEFBOEg7d0JBQzlJLFFBQVEsRUFBRSxLQUFLO3FCQUNoQjtvQkFDRCxXQUFXLEVBQUUsT0FBTztpQkFDckIsQ0FBQyxDQUFDO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsd0NBQXdDLENBQUMsQ0FBQzthQUN2RDtZQUFDLE9BQU8sYUFBYSxFQUFFO2dCQUN0QixPQUFPLENBQUMsS0FBSyxDQUFDLHFDQUFxQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO2dCQUNwRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztnQkFDaEMsT0FBTzthQUNSO1lBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO1FBQUMsT0FBTyxLQUFLLEVBQUU7WUFDZCxPQUFPLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLEtBQUssQ0FBQyxDQUFDO1NBQ3BEO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxXQUFXO1FBQ2YsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsS0FBTSxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUM7WUFDNUMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQWEsQ0FBQyxjQUFjLENBQ2xELElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLFdBQVcsQ0FDakIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxHQUFHLENBQUMsQ0FBQztZQUV6RSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUNqRCxJQUFJLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUM7YUFDN0M7U0FDRjtRQUVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsNENBQTRDO1FBQzVDLHdFQUF3RTtJQUMxRSxDQUFDO0NBQ0YifQ==
|