Aplikasi Python untuk Face Detection dengan OpenCV
menggunakan Algoritma Haar-Cascade.
(Bagian #1 Face Recognition)
Pada kesempatan kali ini, penulis akan melakukan face detection serta face recognition menggunakan OpenCV pada Python. Apa itu face recognition dan face detection?
Deteksi wajah atau face detection adalah teknologi komputer yang digunakan dalam berbagai aplikasi yang mengidentifikasi wajah manusia dalam gambar digital. Deteksi wajah juga mengacu pada proses psikologis yang digunakan manusia untuk menemukan dan memperhatikan wajah dalam pemandangan visual.
Sedangkan Sistem pengenalan wajah atau face recognition adalah teknologi yang mampu mencocokkan wajah manusia dari gambar digital atau bingkai video dengan database wajah, biasanya digunakan untuk mengotentikasi pengguna melalui layanan verifikasi ID, bekerja dengan menunjukkan dan mengukur fitur wajah dari gambar tertentu.
Seperti yang sebelumnya telah disebutkan, pada latihan kali ini modul yang digunakan yaitu OpenCV atau lebih spesifik lagi yaitu OpenCV-contrib yang akan digunakan pada Python karena modul OpenCV yang satu ini adalah bukan bawaan dari Python melaikan OpenCV yang berasal dari kontribusi berbagai macam orang.
OpenCV-Python adalah sebuah library pada Python yang dirancang untuk memecahkan masalah penglihatan komputer.
Penulis dalam menjalankan file-file Python nantinya, akan menggunakan bantuan software PyCharm Community Edition karena dianggap lebih mudah untuk menjalankan file Python. Untuk mendownload software ini, silahkan anda ikuti langkah-langkah yang ada pada blog ini.
Sebelum masuk ke face detection, terdapat library pada Python yang harus dimiliki terlebih dahulu, yaitu OpenCv. Jika menggunakan jendela Command Prompt, maka gunakan kode berikut untuk menginstall OpenCV :
python -m pip install --upgrade opencv-contrib-python
Selain itu, disini juga menggunakan librari Pillow, yang mana untuk menginstalnya, gunakan kode berikut :
pip install Pillow
Face Detection menggunakan Webcam Laptop
Langkah pertama yang harus dilakukan untuk membuat sebuah sistem face detection adalah membuat program untuk mendeteksi wajah terlebih dahulu. Disini penulis menggunakan kamera bawaan dari laptop, sehingga penulisan file python nya dapat dilakukan seperti berikut.
import cv2
cam = cv2.VideoCapture(0)
while True:
retV, frame = cam.read()
abuAbu = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('Webcamku',frame)
cv2.imshow('Webacamku', abuAbu)
k = cv2.waitKey(1) & 0xFF
if k == 27 or k == ord('q'):
break
cam.release()
cv2.destroyAllWindows()
Simpan file diatas dengan nama “webcam.py”. Hasilnya adalah sebagai berikut.
Untuk mengeluarkan webcam, cukup menekan tombol “Q” atau “ESC” pada keyboard. Mengapa harus warna abu-abu? karena pada pembelajaran mengenai IMAGE PROCCESING dijelaskan lebih lengkap mengenai mengapa gambar yang berwarna harus diubah ke warna abu-abu dalam proses face recognition ini.
Face Detection dengan Tambahan Frame
Yang selanjutnya penulis mencoba untuk mengatur ukuran jendela webcam dengan menyisipkan code berikut.
cam.set(3, 640) #ubah lebar cam
cam.set(4, 480) #ubah tinggi cam
Kemudian copy-kan semua kode yang ada pada link ini. Selanjutnya buka Notepad atau editor teks yang kalian miliki dan buat file baru dan paste-kan kode-kode tersebut lalu simpan dengan nama “haarcascade_frontalface_default.xml”.
Berikut adalah kode yang digunakan untuk mendeteksi wajah pada Python :
import cv2
cam = cv2.VideoCapture(0)
cam.set(3, 640) #ubah lebar cam
cam.set(4, 480) #ubah tinggi cam
faceDetector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
while True:
retV, frame = cam.read()
abuAbu = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceDetector.detectMultiScale(abuAbu, 1.3, 5)
for (x, y, w, h) in faces:
frame = cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
cv2.imshow('Webcamku',frame)
#cv2.imshow('Webcam - Grey', abuAbu)
k = cv2.waitKey(1) & 0xFF
if k == 27 or k == ord('q'):
break
cam.release()
cv2.destroyAllWindows()
simpan kode diatas dengan nama file “DeteksiWajahWebcam.py”, maka hasilnya akan menjadi seperti berikut.
Face Recognition yaitu Merekam Wajah
Langkah selanjutnya adakah merekan wajah.
Terlebih dahulu harus membuat sebuah folder yang akan menjadi tempat penyimpanan hasil rekam wajah. Letak folder ini harus dalam satu direktori dengan file “DeteksiWajahWebcam.py:”sebelumnya. Beri nama folder ini yaitu “datawajah”, kemudian buat file baru yaitu untuk merekan wajah dengan nama file “RekamDataWajah.py” dan copy-paste kode berikut kedalam file rekam wajah tersebut.
import cv2, os
wajahDir = 'datawajah'
cam = cv2.VideoCapture(0)
cam.set(3, 640) #ubah lebar cam
cam.set(4, 480) #ubah tinggi cam
faceDetector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
#eyeDetector = cv2.CascadeClassifier('haarcascade_eye.xml')
faceID = input("Masukkan Face ID yang akan Direkam Datanya [kemudian tekan ENTER]: ")
print("Arahkan wajah Anda ke depan webcam. Tunggu proses pengambilan data wajah selesai..")
ambilData = 1
while True:
retV, frame = cam.read()
abuAbu = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = faceDetector.detectMultiScale(abuAbu, 1.3, 5)
for (x, y, w, h) in faces:
frame = cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)
namaFile = 'wajah.'+str(faceID)+'.'+str(ambilData)+'.jpg'
cv2.imwrite(wajahDir+'/'+namaFile,frame)
ambilData += 1
cv2.imshow('Webcamku',frame)
#cv2.imshow('Webcam - Grey', abuAbu)
k = cv2.waitKey(1) & 0xFF
if k == 27 or k == ord('q'):
break
elif ambilData>=30:
break
print("Pengambilan data selesai")
cam.release()
cv2.destroyAllWindows()
Jalankan file Python tersebut, kemudian ketika muncul seperti gambar berikut.
Masukkan ID yang diinginkan untuk menamai hasil rekaman wajah tersebut. Disini penulis memasukkan angka “1” sebagai ID untuk wajah yang akan direkam, lalu tekan ENTER.
Tunggu proses rekam wajah tersebut hingga muncul keterangan seperti berikut pada jendela Run PyCharm.
Hasil dari rekam wajah ini akan disimpan dalam folder”datawajah” yang sebelumnya telah dibuat, yang hasilnya akan seperti berikut.
Langkah selanjutnya adalah anda harus men-training data hasil rekaman wajah tersebut supaya Python dapat membacanya. Penjelasan lebih lengkapnya akan dijelaskan pada pembahasan Face Recognition selanjutnya.
Referensi
Pengertian Face Detection dan Face Recognition :
Cara Menginstall PyCharm Community Edition :
Kode Cascade Classifier untuk Deteksi Wajah dan Mata: