face_recognition / README.md
bram4627's picture
Update README.md
13f513b verified
metadata
title: Face Recognition App
emoji: πŸ–ΌοΈ
colorFrom: indigo
colorTo: purple
sdk: docker
app_file: app.py
pinned: false

Sistem Pengenalan Wajah Sederhana

Website sederhana untuk melakukan pengenalan wajah menggunakan Python, Flask, dan OpenCV.

Fitur

  • Registrasi Wajah: Mendaftarkan wajah baru ke dalam database
  • Pengenalan Wajah: Mengidentifikasi wajah yang sudah terdaftar secara real-time
  • Manajemen Data: Melihat dan menghapus data wajah yang terdaftar
  • Interface Web: Antarmuka web yang user-friendly dengan Bootstrap

Teknologi yang Digunakan

  • Python 3.7+
  • Flask (Web Framework)
  • OpenCV (Computer Vision)
  • NumPy (Numerical Computing)
  • Bootstrap 5 (Frontend Framework)

Instalasi

  1. Clone atau download proyek ini

  2. Install Python dependencies:

    pip install -r requirements.txt
    
  3. Pastikan kamera laptop/PC Anda berfungsi

Cara Menjalankan

  1. Jalankan aplikasi:

    python app.py
    
  2. Buka browser dan akses:

    http://localhost:5000
    

Cara Penggunaan

1. Mendaftarkan Wajah Baru

  • Klik tombol "Daftarkan Wajah Baru"
  • Masukkan nama lengkap
  • Posisikan wajah di depan kamera
  • Klik "Ambil Foto" ketika wajah sudah terlihat jelas
  • Pastikan hanya ada satu wajah dalam frame

2. Pengenalan Wajah

  • Klik tombol "Pengenalan Wajah"
  • Sistem akan menampilkan video real-time dengan deteksi wajah
  • Wajah yang dikenali akan ditampilkan dengan nama dan persentase akurasi
  • Wajah yang tidak dikenali akan ditampilkan sebagai "Unknown"

3. Mengelola Data Wajah

  • Di halaman utama, Anda dapat melihat semua wajah yang terdaftar
  • Klik tombol sampah untuk menghapus data wajah tertentu

Tips untuk Hasil Terbaik

Saat Registrasi:

  • Gunakan pencahayaan yang baik dan merata
  • Pastikan wajah menghadap langsung ke kamera
  • Hindari bayangan pada wajah
  • Jangan gunakan kacamata hitam atau topi
  • Pastikan tidak ada orang lain di dalam frame

Saat Pengenalan:

  • Jaga jarak yang tepat dari kamera
  • Hindari gerakan yang terlalu cepat
  • Pastikan pencahayaan konsisten dengan saat registrasi

Struktur Proyek

Pengenalan Wajah/
β”œβ”€β”€ app.py                 # Aplikasi utama Flask
β”œβ”€β”€ requirements.txt       # Dependencies Python
β”œβ”€β”€ README.md             # Dokumentasi proyek
β”œβ”€β”€ templates/            # Template HTML
β”‚   β”œβ”€β”€ index.html        # Halaman utama
β”‚   β”œβ”€β”€ register.html     # Halaman registrasi
β”‚   └── recognize.html    # Halaman pengenalan
β”œβ”€β”€ static/               # File statis (CSS, JS, images)
└── face_data/           # Data wajah (dibuat otomatis)
    β”œβ”€β”€ names.pkl        # Daftar nama terdaftar
    └── [nama_orang]/    # Folder untuk setiap orang
        └── *.jpg        # File gambar wajah

Cara Kerja Sistem

  1. Deteksi Wajah: Menggunakan Haar Cascade Classifier dari OpenCV
  2. Ekstraksi Fitur: Menggunakan Local Binary Pattern Histogram (LBPH)
  3. Pelatihan Model: Model dilatih ulang setiap kali ada penambahan wajah baru
  4. Pengenalan: Sistem mencocokkan wajah dengan database yang ada

Troubleshooting

Kamera tidak berfungsi:

  • Pastikan kamera tidak digunakan oleh aplikasi lain
  • Coba restart aplikasi
  • Periksa permission kamera di sistem operasi

Wajah tidak terdeteksi:

  • Pastikan pencahayaan cukup
  • Coba ubah posisi atau jarak dari kamera
  • Pastikan wajah menghadap langsung ke kamera

Akurasi pengenalan rendah:

  • Daftarkan lebih banyak foto untuk orang yang sama
  • Pastikan kualitas foto registrasi baik
  • Gunakan pencahayaan yang konsisten

Limitasi

  • Sistem bekerja optimal dengan 1 wajah per frame
  • Membutuhkan pencahayaan yang cukup
  • Akurasi tergantung pada kualitas kamera dan kondisi pencahayaan
  • Performa menurun dengan jumlah wajah terdaftar yang sangat banyak

Pengembangan Lanjutan

Sistem ini dapat dikembangkan lebih lanjut dengan:

  • Database yang lebih robust (SQLite/PostgreSQL)
  • Multiple foto per orang untuk akurasi yang lebih baik
  • Logging aktivitas pengenalan
  • API untuk integrasi dengan sistem lain
  • Autentikasi dan authorization
  • Deployment ke cloud platform

Lisensi

Proyek ini dibuat untuk tujuan edukasi dan penelitian.