YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
Face Recognition Attendance System π
Sistem presensi otomatis menggunakan pengenalan wajah dengan algoritma LBPH (Local Binary Patterns Histograms).
π Fitur
- β Registrasi wajah dengan multiple pose untuk akurasi tinggi
- β Presensi otomatis menggunakan webcam
- β Anti-duplicate (tidak bisa presensi 2x di hari yang sama)
- β Rekam presensi ke CSV
- β View data terdaftar dan rekap presensi
- β Cooldown system untuk mencegah double detection
π§ Instalasi
1. Clone Repository
git clone https://huggingface.co/[username]/face-attendance-system
cd face-attendance-system
2. Install Dependencies
pip install -r requirements.txt
Catatan Penting: Pastikan install opencv-contrib-python (bukan opencv-python biasa) karena module cv2.face hanya tersedia di contrib version.
3. Setup Webcam
Pastikan webcam/kamera laptop kamu berfungsi dengan baik.
π Cara Menggunakan
1. Registrasi Wajah Baru
python register_face.py
Proses:
- Masukkan nama dan NIM/NIP
- Ikuti instruksi pose di layar (10 foto dengan berbagai pose)
- Tekan SPASI untuk capture foto
- Tekan Q untuk membatalkan
Tips untuk hasil terbaik:
- Pastikan pencahayaan cukup
- Wajah menghadap langsung ke kamera
- Hindari backlight yang terlalu terang
- Ikuti semua pose yang diminta
2. Jalankan Sistem Presensi
python attendance_system.py
Cara kerja:
- Sistem akan otomatis mendeteksi wajah
- Jika wajah dikenali dan confidence cukup, presensi otomatis tercatat
- Data tersimpan di
attendance.csv - Tekan Q untuk keluar
3. Lihat Data & Kelola
python view_data.py
Menu tersedia:
- Lihat data wajah terdaftar
- Lihat rekap presensi
- Hapus data orang tertentu
- Keluar
π Struktur File
PRESENSEE-ML/
βββ dataset/ # Folder foto wajah terdaftar
βββ register_face.py # Script registrasi wajah
βββ attendance_system.py # Script sistem presensi
βββ view_data.py # Script kelola data
βββ face_data.pkl # Data wajah tersimpan (pickle)
βββ lbph_model.yml # Model LBPH terlatih
βββ attendance.csv # Rekap presensi
βββ requirements.txt # Dependencies
βοΈ Konfigurasi
Kamu bisa adjust parameter di attendance_system.py:
# Threshold confidence LBPH (40-80, lower = lebih strict)
LBPH_CONFIDENCE_THRESHOLD = 45.0
# Cooldown antar deteksi (detik)
COOLDOWN_SECONDS = 5
# Frame skip untuk performa
FRAME_SKIP = 2
π Troubleshooting
Error: "OpenCV tidak memiliki modul cv2.face"
Solusi:
pip uninstall opencv-python
pip install opencv-contrib-python
Wajah tidak terdeteksi
Solusi:
- Pastikan pencahayaan cukup
- Coba atur jarak ke kamera (30-50 cm ideal)
- Hindari wajah terlalu miring
Confidence terlalu tinggi (wajah tidak dikenali)
Solusi:
- Registrasi ulang dengan foto lebih banyak
- Kurangi nilai
LBPH_CONFIDENCE_THRESHOLD - Pastikan kondisi pencahayaan saat registrasi dan presensi mirip
Kamera tidak terbuka
Solusi:
- Pastikan tidak ada aplikasi lain yang menggunakan kamera
- Coba ganti index kamera di
cv2.VideoCapture(0)ke(1)atau(2) - Check permission kamera di system settings
π Format Data
attendance.csv
Nama,NIM/NIP,Tanggal,Waktu
John Doe,123456789,2024-12-04,08:30:15
Jane Smith,987654321,2024-12-04,08:31:22
face_data.pkl
Berisi dictionary dengan struktur:
id: ID unique personnama: Nama lengkapnim_nip: Nomor indukimages_gray: List gambar grayscale untuk trainingimages_color: List gambar color untuk displaynum_photos: Jumlah foto
π€ Kontribusi
Feel free untuk fork dan improve system ini! Some ideas:
- Add GUI dengan Tkinter/PyQt
- Web interface dengan Gradio/Streamlit
- Multi-camera support
- Export ke Excel
- Dashboard statistik presensi
- Integration dengan database
β οΈ Privacy & Security
PENTING:
- Jangan upload
face_data.pklatau folderdataset/ke repository public jika berisi data pribadi orang lain - Pastikan consent dari semua orang yang datanya direkam
- Gunakan dengan bijak dan sesuai regulasi privasi yang berlaku
π License
MIT License - Feel free to use for educational purposes
π¨βπ» Author
Dibuat untuk memudahkan sistem presensi otomatis menggunakan computer vision.
Happy Coding! π
Jika ada pertanyaan atau issue, silakan buat issue di repository ini.