Kasus terorisme seringkali terjadi di Indonesia dan tidak jarang teroris melarikan diri. Permasalahan yang sedang terjadi saat ini adalah kurangnya teknologi pendeteksi teroris. Seorang teroris bisa saja berada di tempat ramai sehingga sulit untuk dideteksi secara manual. Oleh karena itu, penulis ingin menerapkan Face Recognition dengan Convolutional Neural Network agar kita dapat lebih mudah untuk mendeteksi wajah teroris tersebut.
Convolutional
Neural Network (CNN)
merupakan salah satu bagian dari algoritma deep learning yang cara kerjanya
mirip dengan neural network biasanya, namun CNN memiliki keunggulan yaitu
mengurangi jumlah unit di network sehingga mengurangi parameter yang perlu
dipelajari (tentunya akan mengurangi resiko overfitting). CNN juga dianggap
bekerja sangat baik dalam bidang computer vision seperti image classifcation,
object detection, dan neural style transfer. CNN adalah feed forward network yang terdiri dari kumpulan neuron yang
memiliki weight, bias, dan score function yang akan mempresentasikan pixel dari
image. Convolutional Neural Network mempelajari
kategori-kategori image pada hidden layer architecture dan mengidentifikasi
area terang atau gelap dari sebuah image sebelum menerapkan face recognition. Setiap node di network
akan mempresentasikan satu aspek dari keseluruhan image. Seperti neural network
pada umumnya, network akan di train menggunakan back propagation. Pada bahasan artikel ini, image yang dimaksud
adalah wajah dari teroris.
Edge
Detection dengan CNN
Dengan menggunakan CNN,
hal pertama yang dilakukan adalah mendeteksi tepi (edge) dari objek yang
terdapat di dalam image. Seperti ini:
![]() |
| Contoh Image |
![]() |
| Jika diubah ke dalam bentuk matriks |
Source: deeplearning.ai
Semakin tinggi
nilai elemennya maka semakin terang (brighter) pula pixelnya
Vertical
Edge Detection
![]() |
| Source: deeplearning.ai |
Matiks [1 0 -1, 1 0 -1, 1 0 -1] disebut sebagai vertical detection filter, tanda ‘*’ disebut dengan operasi
convolutional. Hasil dari operasi itu akan menghasilkan vertical edge dari
sebuah image. Untuk Horizontal
detection filter:
[1 1 1, 0 0 0, -1 -1 -1]. Masih banyak jenis filter lainnya yang dapat
digunakan seperti Sobel Filter dan Schorr Filter.
Note: untuk gambar
RGB maka butuh 3 filter (sesuai dengan jumlah channel)
Face
Recognition
Salah satu aplikasi yang dapat dibuat menggunakan CNN
adalah face recognition. Saya akan menggunakan Python dengan library imutils, openCV
dan face_recognition.
Untuk dataset, saya menggunakan foto dari Abu Bkar Al-Baghdadi
(ketua dari organisasi teroris ISIL)

Source: Wikipedia dan pyImageSearch
Modul face_recognition akan mengenerate 128-d dari
wajah yang terdapat pada dataset dan akan disimpan di dalam vektor (ke dalam
CNN). Kita tidak perlu membuat network dari scretch karna network yang terdapat
di dalam modul sudah di train dengan sekitar 3 juta image (akurasi 99.38%)
Code
untuk train dataset
Loop ini akan berjalan sebanyak dataset yang kita
miliki. Dari nama folder, kita bisa mengekstrak nama dari orang-orang yang
terdapat pada dataset kita.
Image yang terdapat pada dataset kita akan di-convert
ke dalam bentuk RGB agar compatible dengan dlib (method untuk deep learning
(CNN)). Jika ditemukan wajah di dalam image, maka 128d dari wajah tersebut akan
di extract (disebut dengan encoding face
ke bentuk vektor). Hasil dari train dataset ini akan berupa file dengan
extension “.pickle” yang mengandung 128d
untuk setiap dataset.
Code
untuk face recognition dari video
Pada tahapan ini, kita me-load file .pickle yang berisi
wajah yang sudah dikenal dan juga mengakses video yang akan dideteksi.
Di tahapan ini, kita sudah mengakses frame per frame dari
video tersebut. Jika ditemukan wajah yang menyerupai yang terdapat di dataset
maka kita akan memilih vote yang terbesar untuk nama yang akan muncul.
Note: untuk source code lengkapnya bisa di download:
https://drive.google.com/open?id=1wCLQVQSEw3AnRusYOz8Pg9tUVSHQo_XU
https://drive.google.com/open?id=1wCLQVQSEw3AnRusYOz8Pg9tUVSHQo_XU
source:PyImageSearch
Wajah dari Abu Bakr Al-Baghdari sudah dapat dideteksi
Kesimpulan
Metode face recognition menggunakan
CNN memang membutuhkan waktu yang cukup lama untuk ditrain jika dibandingkan
dengan SVM. Tapi hasil dari face recognition dengan CNN bisa dibilang jauh
lebih akurat dari SVM. Dengan dataset berupa image wajah teroris yang telah di-train menggunakan Convolutional Neural Network, alat pengaman seperti CCTV yang
terletak di area ramai akan dapat digunakan untuk memantau sekaligus untuk
mendeteksi wajah teroris.
Referensi
Patrik KAMENCAY,
M. B. T. M. R. R., 2017. A New Method for Face Recognition Using Convolutional
Neural Network. DIGITAL IMAGE PROCESSING AND COMPUTER GRAPHICS, Volume
15.
Hurieh Khalajzadeh, M. M. a. M. T., n.d.
Face Recognition using Convolutional Neural Network.
Koessurya, A.,
2018. Learn AI through Deep Learning. Jakarta: s.n.










