List

Face Detection dan Face recognition merupakan bagian dari aplikasi biometrics. Aplikasi yang berfungsi untuk identifikasi seseorang berdasarkan ciri fisik yang dimiliki. Pengenalan wajah atau face recognition memiliki banyak fungsi, diantaranya adalah :

1. Membuka kunci perangkat seperti ponsel atau komputer
2. Membuka Pintu dan Sistem
3. Memvalidasi transaksi online (terutama yang finansial)
4. Otorisasi pembayaran pembelian online
5. Pengawasan Massal di bandara, Kereta Api, stadion.

Step by Step Proses Pengenalan Wajah

Sumber : Medium.com
  1. Face Detection, Merupakan metode untuk mendeteksi lokasi wajah dari sebuah citra atau image. Metode yang digunakan antara lain menggunakan Haar Cascade, Faster R-CNN, YOLO YOLO( You Only Look Once) or SSD (Single Shot Detector)
  2. Face Alignment, Normalisasi wajah agar konsisten dengan basis data, seperti geometri dan fotometrik.
  3. Feature Extraction, Melakukan ekstraksi fitur wajah sehingga bisa digunakan untuk pengenalan.

Pada artikel sebelumnya, kita sudah berdiskusi mengenai Deteksi wajah menggunakan Haar Cascade. Pada kesempatan ini kita akan menambahkan metode Deep Learning untuk Pengenalan wajah. Paket yang mtcnn, install menggunakan PIP

sudo pip show mtcnn

kadang muncul peringatan/warning bahwa pip kita harus di update. Lakukan update dengan perintah

WARNING: You are using pip version 20.1.1; however, version 20.2.1 is available. You should consider upgrading via the 'c:\python\python36\python.exe -m pip install --upgrade pip' command.

buatlah program dengan nama cnn_1.py, dan ketikkan perintah

import cv2 from matplotlib import pyplot from matplotlib.patches import Rectangle from matplotlib.patches import Circle from mtcnn.mtcnn import MTCNN filename = '1.jpg' # load image from file pixels = pyplot.imread(filename) # create the detector, using default weights detector = MTCNN() # detect faces in the image faces = detector.detect_faces(pixels) data = pyplot.imread(filename) # plot each face as a subplot for i in range(len(faces)): x1, y1, width, height = faces[i]['box'] x2, y2 = x1 + width, y1 + height cv2.imshow("image%d.jpg" % i,data[y1:y2, x1:x2]) resized_image = cv2.resize(data[y1:y2, x1:x2], (50, 50)) cv2.imwrite("image%d.jpg" % i,resized_image ) # When everything done, release the capture cv2.waitKey(0) cv2.destroyAllWindows()

Penjelasan program

filename = '1.jpeg' pixels = pyplot.imread(filename)

Bagian program yang memuat file f1.jpg

detector = MTCNN() faces = detector.detect_faces(pixels) draw_faces(filename, faces)

Membuat class detector dan memanggil fungsi detect_faces dari gambar f1.jpg

faces = detector.detect_faces(pixels) data = pyplot.imread(filename) # plot each face as a subplot for i in range(len(faces)): x1, y1, width, height = faces[i]['box'] x2, y2 = x1 + width, y1 + height cv2.imshow("image%d.jpg" % i,data[y1:y2, x1:x2]) resized_image = cv2.resize(data[y1:y2, x1:x2], (50, 50)) cv2.imwrite("image%d.jpg" % i,resized_image ) # When everything done, release the capture cv2.waitKey(0) cv2.destroyAllWindows()

Fungsi untuk mendeteksi wajah, menampilkan wajah dan menyimpan wajah dimulai dari angka 1 hingga terakhir wajah yang terdeteksi.