File size: 4,271 Bytes
13f513b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
---
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.