face_recognition / README.md
bram4627's picture
Update README.md
13f513b verified
---
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:**
```bash
pip install -r requirements.txt
```
3. **Pastikan kamera laptop/PC Anda berfungsi**
## Cara Menjalankan
1. **Jalankan aplikasi:**
```bash
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.