Face Recognition di Flutter
Membuat face recognition di Flutter melibatkan deteksi wajah (menggunakan Google ML Kit) dan pencocokan fitur wajah (menggunakan TensorFlow Lite) untuk membandingkan wajah baru dengan data tersimpan. Langkah utamanya meliputi: penggunaan kamera (camera package), deteksi wajah (google_mlkit_face_detection), ekstraksi fitur (embedding) dengan model TFLite (tflite_flutter), dan perbandingan vektor wajah.
Tutorial Langkah demi Langkah Face Recognition Flutter
1. Persiapan Proyek & Dependencies
Tambahkan paket berikut di pubspec.yaml untuk mengakses kamera, deteksi wajah, dan memproses gambar:
dependencies:
flutter:
sdk: flutter
camera: ^0.11.0+2
google_mlkit_face_detection: ^0.11.0
tflite_flutter: ^0.10.0
image: ^4.2.0
2. Akses Kamera & Deteksi Wajah (ML Kit)
- Inisialisasi kamera dan gunakan
CameraController. - Gunakan
InputImage.fromCameraImageuntuk memproses streaming kamera. - Gunakan
FaceDetectoruntuk mendeteksi wajah dan mendapatkan bounding box (kotak wajah).
3. Preprocessing & Embedding (TFLite)
- Potong wajah dari gambar hasil kamera sesuai bounding box.
- Ubah ukuran gambar menjadi 112×112112 cross 112112×112piksel (sesuai standar MobileFaceNet).
- Normalisasi data gambar dan masukkan ke model TFLite (
.tfliteSv6Kpe[]) untuk menghasilkan Face Vector(192 nilai float sebagai embedding).
4. Penyimpanan & Pencocokan Wajah (Face Recognition)
- Registrasi: Simpan face vector hasil ekstraksi ke database lokal (
shared_preferencesatau local DB) dengan nama pengguna. - Pengenalan: Saat kamera memindai wajah baru, ekstrak *vector-*nya, lalu hitung jarak (jarak Euclidean) dengan vector yang sudah tersimpan.
- Jika jarak terdekat di bawah ambang batas (misal < 1.0), wajah dianggap cocok (terdeteksi).
5. Visualisasi
Gunakan CustomPainter untuk menggambar kotak di sekitar wajah yang terdeteksi di layar preview kamera.