From 1ed6fb43f1c03103cf0af4361119320d90559371 Mon Sep 17 00:00:00 2001 From: Novy San87 Date: Wed, 5 Aug 2026 18:09:10 +0700 Subject: [PATCH] =?UTF-8?q?Face=20scan:=20gerak=20(motion)=20ikut=20jadi?= =?UTF-8?q?=20sinyal=20penerimaan=20=E2=80=94=20praktis=20di=20kamera=20HP?= =?UTF-8?q?;=20foto=20diam=20tetap=20tertolak;=20auto-accept=20tidak=20lag?= =?UTF-8?q?i=20bergantung=20landmarker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/vendor/mediapipe/facefinder.js | 8 ++++---- resources/views/face/scan.blade.php | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/public/vendor/mediapipe/facefinder.js b/public/vendor/mediapipe/facefinder.js index fad2f6a..a07034e 100644 --- a/public/vendor/mediapipe/facefinder.js +++ b/public/vendor/mediapipe/facefinder.js @@ -231,11 +231,11 @@ function processMotion(box) { prevFaceGray = gray; } -/** Jumlah sinyal PENGGUNA UNTUK PENERIMAAN (strong signals): kedip + senyum. - * Depth & motion TIDAK dipakai menerima (foto yang dipegang ikut bergerak; - * ambang depth perlu kalibrasi lapangan) — hanya info di tracker. */ +/** Jumlah sinyal PENGGUNA UNTUK PENERIMAAN: kedip + senyum + gerak. + * Motion ikut menerima — praktis utk kamera HP (landmarker kadang lambat/off). + * Foto DIAM tetap tertolak (tidak ada motion). */ function signalCount() { - return [blinks > 0, smileSeen].filter(Boolean).length; + return [blinks > 0, smileSeen, motionSeen].filter(Boolean).length; } async function tick(detector) { diff --git a/resources/views/face/scan.blade.php b/resources/views/face/scan.blade.php index 2a0e7b3..0aa6f60 100644 --- a/resources/views/face/scan.blade.php +++ b/resources/views/face/scan.blade.php @@ -600,12 +600,13 @@ function faceScan() { _maybeFinishAuto(d) { const loop = window.__faceLoop; - // Penerimaan: kedip / senyum (sinyal kuat). Depth & motion hanya info (foto dipegang ikut bergerak) - if (loop && loop.livenessAvailable && loop.signalCount > 0) { + // Penerimaan: kedip / senyum / gerak (sinyal apa pun yang lolos — gerak + // ikut menerima agar praktis di kamera HP; foto diam tetap tertolak). + if (loop && loop.signalCount > 0) { this._finishAuto(d); return; } - // Mesin liveness tidak aktif → jangan auto-accept; wajib konfirmasi staff + // Mesin liveness tidak aktif & tanpa sinyal → wajib konfirmasi staff if (loop && !loop.livenessAvailable) { this.livenessWarn = true; this._finishAuto(d);