Anda di halaman 1dari 9

Tutorial Liveness Detection

menggunakan Kamera
*Oleh: [Nama Anda]*

**Langkah 1: Persiapan Lingkungan**

Pastikan Anda telah menginstal Python dan semua dependensi yang diperlukan seperti OpenCV,
TensorFlow, dan Keras. Pastikan juga bahwa Anda memiliki akses ke kamera yang terhubung ke komputer
Anda.

**Langkah 1: Instal Python**

Pastikan Anda memiliki Python terinstal di komputer Anda. Anda dapat mengunduh dan menginstal
Python dari situs web resminya: [Python.org](https://www.python.org/).

**Langkah 2: Instal OpenCV**

OpenCV adalah library komputer vision yang sangat penting untuk melakukan deteksi wajah dan
pengolahan gambar. Anda dapat menginstal OpenCV menggunakan pip, dengan menjalankan perintah
berikut di terminal atau command prompt:

**Langkah 3: Instal TensorFlow dan Keras**

TensorFlow dan Keras adalah library deep learning yang diperlukan untuk melatih dan menggunakan
model neural networks. Anda dapat menginstal TensorFlow dan Keras menggunakan pip:
**Langkah 4: Instal Library Pendukung Lainnya**

Anda mungkin juga perlu menginstal library pendukung lainnya sesuai dengan kebutuhan spesifik Anda,
misalnya numpy untuk pengolahan data numerik, matplotlib untuk visualisasi data, dan sebagainya.
Anda dapat menginstalnya dengan pip juga:

Pastikan untuk menginstal semua library yang diperlukan sebelum menjalankan tutorial liveness
detection. Jika Anda mengalami masalah saat menginstalnya, pastikan untuk memeriksa kembali apakah
Anda telah mengatur lingkungan Python dan pip dengan benar.

**Langkah 2: Persiapkan Struktur Folder**

Buatlah struktur folder yang diperlukan untuk menyimpan dataset, model yang dilatih, dan skrip Python.
Struktur folder yang disarankan adalah sebagai berikut:

Pastikan untuk menyesuaikan struktur folder sesuai dengan kebutuhan Anda.

**Langkah 3: Merekam Gambar Wajah**


Buat skrip Python untuk merekam gambar wajah dari kamera. Skrip ini akan membuka kamera,
mendeteksi wajah, dan menyimpan gambar wajah yang diambil ke dalam folder dataset.

import cv2

import os

# Fungsi untuk merekam gambar wajah

def record_face_images():

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

cap = cv2.VideoCapture(0)

# Tentukan folder tempat menyimpan gambar

output_folder = 'dataset/real' # Ubah sesuai dengan folder yang sesuai

if not os.path.exists(output_folder):

os.makedirs(output_folder)

count = 0

while True:

ret, frame = cap.read()

if not ret:

break

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

for (x, y, w, h) in faces:

face_img = frame[y:y+h, x:x+w]

cv2.imwrite(f'{output_folder}/face_{count}.jpg', face_img)

count += 1

cv2.imshow('Recording Faces', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cap.release()

cv2.destroyAllWindows()
# Panggil fungsi untuk merekam gambar wajah

record_face_images()

Pastikan untuk menjalankan skrip ini dan merekam cukup banyak gambar wajah untuk digunakan dalam
pelatihan model.

**Langkah 4: Melatih Model Liveness**

Gunakan skrip Python yang diberikan untuk melatih model liveness menggunakan dataset yang telah
Anda rekam sebelumnya. Pastikan untuk menyesuaikan parameter dan arsitektur model sesuai
kebutuhan Anda.

import numpy as np

import os

from tensorflow.keras.preprocessing.image import ImageDataGenerator

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

# Tentukan path ke dataset

train_dir = 'dataset/train'

validation_dir = 'dataset/validation'

# Tentukan parameter untuk proses augmentasi gambar

train_datagen = ImageDataGenerator(

rescale=1./255,

rotation_range=40,

width_shift_range=0.2,

height_shift_range=0.2,

shear_range=0.2,

zoom_range=0.2,

horizontal_flip=True,
fill_mode='nearest'

test_datagen = ImageDataGenerator(rescale=1./255)

# Inisialisasi generator untuk data latih dan validasi

train_generator = train_datagen.flow_from_directory(

train_dir,

target_size=(100, 100),

batch_size=32,

class_mode='binary'

validation_generator = test_datagen.flow_from_directory(

validation_dir,

target_size=(100, 100),

batch_size=32,

class_mode='binary'

# Bangun arsitektur model

model = Sequential([

Conv2D(32, (3, 3), activation='relu', input_shape=(100, 100, 3)),

MaxPooling2D(2, 2),

Conv2D(64, (3, 3), activation='relu'),

MaxPooling2D(2, 2),

Conv2D(128, (3, 3), activation='relu'),

MaxPooling2D(2, 2),

Conv2D(128, (3, 3), activation='relu'),


MaxPooling2D(2, 2),

Flatten(),

Dense(512, activation='relu'),

Dense(1, activation='sigmoid')

])

# Kompilasi model

model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Latih model

history = model.fit(

train_generator,

steps_per_epoch=100, # Tentukan jumlah batch yang akan diambil dari generator pada setiap epoch

epochs=20,

validation_data=validation_generator,

validation_steps=50, # Tentukan jumlah batch yang akan diambil dari generator validasi pada setiap
epoch

verbose=1

# Simpan model ke file

model.save('liveness_model.h5')

Pastikan untuk menyimpan model yang dilatih di dalam folder model.

**Langkah 5: Deteksi Liveness**

Terakhir, buat skrip Python untuk mendeteksi liveness menggunakan kamera. Skrip ini akan membuka
kamera, mendeteksi wajah, dan menentukan apakah wajah yang terdeteksi tersebut hidup atau palsu.
import cv2

import numpy as np

from tensorflow.keras.models import load_model

# Load cascade classifier untuk deteksi wajah dan mata

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

eye_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_eye.xml')

# Load model liveness yang telah dilatih sebelumnya

liveness_model = load_model('liveness_model.h5') # Ganti dengan path ke model liveness yang Anda


miliki

# Fungsi untuk mendeteksi wajah dan mata

def detect_face_and_eyes(gray):

faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))

for (x, y, w, h) in faces:

roi_gray = gray[y:y+h, x:x+w]

eyes = eye_cascade.detectMultiScale(roi_gray)

if len(eyes) >= 2:

return True

return False

# Fungsi untuk mendeteksi liveness

def detect_liveness(frame):

gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

if detect_face_and_eyes(gray):

face = cv2.resize(gray, (100, 100)) # Ukuran input yang diharapkan oleh model

face = face.astype('float') / 255.0

face = np.expand_dims(face, axis=0)


face = np.expand_dims(face, axis=-1)

prediction = liveness_model.predict(face)[0][0]

if prediction > 0.5:

return "Real"

else:

return "Fake"

else:

return "No Face Detected"

# Mulai membaca video dari webcam

cap = cv2.VideoCapture(0)

while True:

ret, frame = cap.read()

if not ret:

break

# Deteksi liveness

result = detect_liveness(frame)

# Tampilkan hasil deteksi

cv2.putText(frame, result, (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)

cv2.imshow('Liveness Detection', frame)

# Keluar dari loop jika tombol 'q' ditekan

if cv2.waitKey(1) & 0xFF == ord('q'):

break

# Bebaskan sumber daya dan tutup jendela


cap.release()

cv2.destroyAllWindows()

Pastikan untuk menjalankan skrip ini dan melihat hasil deteksi liveness secara real-time menggunakan
kamera.

**Langkah 6: Uji Coba dan Eksperimen**

Setelah Anda berhasil menjalankan tutorial ini, jangan ragu untuk bereksperimen lebih lanjut dengan
parameter dan arsitektur model. Cobalah untuk meningkatkan akurasi deteksi liveness dengan
menyesuaikan berbagai faktor dalam proses pelatihan.

**Kesimpulan**

Dengan mengikuti panduan langkah demi langkah ini, Anda sekarang memiliki sistem liveness detection
yang siap digunakan dengan kamera. Anda dapat mengintegrasikannya ke dalam berbagai aplikasi
keamanan, pengawasan, atau otentikasi yang Anda buat.

Semoga tutorial ini bermanfaat dan membantu Anda memahami konsep deteksi liveness menggunakan
deep learning! Jika Anda memiliki pertanyaan lebih lanjut, jangan ragu untuk bertanya. Selamat
mencoba!

Anda mungkin juga menyukai