Face Recognition part 3 (end)

Gifa Delyani Nursyafitri
4 min readJan 2, 2020

--

Pada postingan sebelumnya, kita telah berhasil menampilkan informasi dari tampilan wajah dan juga telah berhasil membedakan dua wajah yang berbeda.

Kali ini, kita akan melanjutkan pengenalan wajah dengan lebih detail, dimana informasi dari wajah yang ditampilkan tidak hanya berupa nama. Namun untuk hal itu, kita perlu menyiapkan database yang berisi data tersebut.

Penasaran? Check it out!

Langkah pertama adalah membuka google, kemudian ketikkan “SQLitestudio”, kemudian setelah muncul tampilan seperti di bawah ini, download dan install SQLite tersebut.

Sesuaikan dengan latop anda. Misalkan saya disini menggunakan SQLite untuk Windows yang potable, kemudian akan mengunduh file berekstensi .zip.

Setelah berhasil di download, pindahkan ke “C:/capture”. Kemudian file .zip tersebut di ekstrak, sehingga berada di “C:/capture/SQLiteStudio-3.2.1”.

Kemudian double klik di SQLiteStudio.

pada Menu utama klik Database, terus klik “Add a database” seperti berikut,

Setelah muncul tampilan seperti ini, misalkan kita namakan database tersebut dengan nama “datawajah”. Kemudian klik icon yang berbentuk tanda tambah untuk menyimpan database.

Kemudian simpan di folder “c:/capture” dengan mengklik “Save” sehingga menjadi c:/capture/datawajah.db”

Setelah berhasil menyimpan, maka akan otomatis kembali lagi. Namun kali ini nama file telah menjadi seperti gambar di bawah ini. Kemudian klik “OK”.

Maka muncul nama database baru yakni “datawajah.db” seperti berikut,

kemudian klik dua kali pada database “datawajah” tersebut, maka akan muncul Tables dan Views, kemudian cari ikon “Create a Table”.

sehingga muncul seperti ini, setelah isi nama tabel dengan “orang” kemudian klik commit, kemudian klik “add a column”.

muncul jendela seperti berikut,

berikutnya dengan cara yang sama memasukkan variabel ke dalam kolom,

selanjutnya masukkan variabel lainnya, hasi akhir seperti berikut,

kemudian klik tanda centang hijau (commit) sehingga muncul seperti berikut, kemudian klik OK.

selanjutnya, pada Menu klik Data dan klik Insert Rows untuk setiap kali mengisi data yang baru.

jika pengisian telah selesai, maka klik tanda centang hijau atau commit yang berarti perubahan/penambahan data baru sudah benar. Dan ingat “datawajah.db” ini berada dalam folder yang sama.

Selanjutnya kita kembali ke coding terakhir kita, untuk menyambungkan antara data SQL dengan koding pengenalan wajah, seperti berikut,

import cv2,os, timeimport numpy as npfrom PIL import Imageimport pickleimport sqlite3faceDetect=cv2.CascadeClassifier(‘haarcascade_frontalface_default.xml’);video=cv2.VideoCapture(0)a=0recognizer=cv2.face.LBPHFaceRecognizer_create();recognizer.read(“c://capture/training/trainingbaru.xml”)id=0fontface=cv2.FONT_HERSHEY_SIMPLEXfontscale=1fontcolor=(0,0,255)path=’DataSet’def getProfile(id):conn=sqlite3.connect(“datawajah.db”)cmd=”SELECT * FROM orang WHERE id=”+str(id)cursor=conn.execute(cmd)profile=Nonefor row in cursor:profile=rowconn.close()return profilewhile(True):check, frame=video.read();gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)faces=faceDetect.detectMultiScale(gray,1.3,5);for(x,y,w,h) in faces:a=a+1cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),2)id,conf=recognizer.predict(gray[y:y+h,x:x+w])profile=getProfile(id)if(profile!=None):cv2.putText(frame,str(profile[1]),(x,y+h+30),fontface,fontscale,fontcolor)cv2.putText(frame,str(profile[2]),(x,y+h+60),fontface,fontscale,fontcolor)cv2.putText(frame,str(profile[3]),(x,y+h+90),fontface,fontscale,fontcolor)#cv2.putText(frame,str(profile[4]),(x,y+h+100),fontface,fontscale,fontcolor);cv2.imshow(“wajah”,frame);if(cv2.waitKey(1)==ord(‘q’)):breakprint(a)cam.release()cv2.destroyAllWindows()

Simpan koding tersebut dengan nama “tangkapwajahlengkap.py” didalam folder “c:/capture/”. Terus jalankan dengan perintah melalui command prompt seperti berikut,

c:/capture/> python tangkapwajahlengkap.py

dan, boom!

hasilnya seperti berikut,

Yeay! berhasil.

Identitas menjadi lebih lengkap dengan adanya umur dan jenis kelamin. Kita juga masih bisa menambahkan informasi lainnya dengan menambahkan isian kolom pada setiap user yang diinginkan.

Referensi:

https://medium.com/@986110101/pengenalan-wajah-5-cb65f3726e44

--

--

Gifa Delyani Nursyafitri

Ku abadikan disini, karena aku paham betul bahwa ingatan manusia terbatas.