A7 Seminar Nasional Teknologi Informasi 2016 MEMBANDINGKAN CITRA DIGITAL UNTUK MEMPREDIKSI KETERHUBUNGANNYA Pradita Chandra Kurniawan 1) Yulius Denny Prabowo 2) Teknik Informatika Institut Teknologi dan Bisnis Kalbis Jl. Pulomas Selatan Kav.22 Jakarta Timur 1) email : pchandrakurniawan@gmail.com 2) email : yulius.prabowo@kalbis.ac.id This research aims to develop applications that can compare digital image. The image comparison itself will be done using a feature matching method with OpenCV library. Feature matching compares the corner found in an image, this comparison generates keypoint value. This keypoint value will decide whether the said image is a match, not a match, or a possible match. The software development method used is incremental model. The development phase is done by comparing the face area and then comparing the background area. Comparing these images generates data that are stored into the database. Based on these data, the application makes predictions in the form of a list of names of people who may be known. Keywords digital image, feature matching, image comparison, opencv, prediction 1. Pendahuluan Di dalam media sosial, pengguna bisa mengunggah citra yang dimilikinya. Data yang terkandung pada citra yang diunggah pengguna, tidak hanya data seperti nilai warna di tiap piksel, ukuran dan resolusi citra, tapi juga data seperti siapa orang yang ada di dalam citra, dan di mana citra itu diambil. Dengan terapan ilmu computer vision, saat komputer menerima citra baru dengan wajah dan lokasi yang sudah dikenali, mungkin saja komputer bisa mengatakan A berfoto dengan B di lokasi Y. Lalu dengan meniru fitur orang yang mungkin anda kenal dalam media sosial seperti Facebook (Jika A berteman dengan B, dan B berteman dengan C, maka C akan direkomendasikan untuk menjadi teman A, begitu juga sebaliknya, A akan direomendasikan ke C),peneliti mencoba membuat suatu yang baru,komputer bisa memberikan prediksi berupa daftar orang yang mungkin dikenal dengan melihat keterhubungan orang-orang dari beberapa citra. Agar pembahasan tidak menyimpang dari pokok perumusan masalah yang ada, maka peneliti membatasi permasalahan pada: (1) Wajah manusia yang dideteksi dalam citra haruslah jelas, dan menghadap tepat ke kamera. (2) Posisi badan orang yang diambil harus tegap menghadap ke kamera, dan tidak tertutupi oleh objek apapun. (3) Diasumsikan jika A berfoto dengan B, lalu B berfoto dengan C, maka A kemungkinan kenal dengan C karena A dan C pernah berfoto dengan B. Penelitian bertujuan untuk (1) Mengetahui apakah featurematching dapat digunakan untuk face recognition. (2) Membangun aplikasi yang dapat memberikan kemungkinan nama orang yang ada di dalam citra dan lokasi pengambilan citra tersebut. (3) Melihat keterhubungan objek wajah dan kesamaan lokasi dari beberapa citra untuk menampilkan daftar nama orang yang mungkin dikenal. Metode pengembangan perangkat lunak yang digunakan pada penelitian ini adalahincremental model.incremental model merupakan salah satu evolutionary software process model yang cukup populer yang digunakan di industri pengembangan aplikasi. Incremental model merilis produk hanya sebagian diawal, setelah itu produk akan terus menerus dirilis dengan beberapa fungsi tambahan. [1] Pengembangan aplikasi dilakukan dengan dua kali incremental. Pada incremental satu, target yang ingin dicapai adalah komputer dapat mendeteksi area wajah, lalu menyimpan lokasi file citra, nama orang dan area wajah ke dalam basis data. Jika komputer mendapatkan citra baru, komputer bisa mengenali wajah yang ada di dalam citra tersebut, dengan cara membandingkan area wajah yang ada di citra yang baru dengan area wajah di citra yang telah tersimpan di dalam basis data. Di incremental dua, aplikasi akan ditambahkan fitur untuk bisa mengenali lokasi pengambilan citra. Area yang dibandingkan adalah seluruh citra tanpa area tubuh manusia. Setelah data citra seperti nama wajah dan lokasi sudah tersimpan di dalam basis data, pada incremental dua akan dilakukan pengecekan keterhubungan antar tiap wajah di tiap citra, sehingga komputer bisa memberikan daftar nama orang yang mungkin dikenal. 36
Seminar Nasional Teknologi Informasi 2016 A7 Pada setiap proses incremental, terdapat tahap analisis, desain, implementasi, dan pengujian aplikasi. Aplikasi ini dibangun untuk platform berbasis desktop (Windows 7) menggunakan bahasa pemrograman Python 2.7 dengan bantuan library OpenCV 2.4.9. 2. Pengembangan Aplikasi 2.1 Pembandingan area wajah Citra yang akan diproses adalah citra yang terdapat wajah atau tidak ada wajah di dalamnya. Pembandingan citra hanya akan dilakukan bilamana terdapat pola wajah di dalam citra. Jika tidak ditemukan wajah di dalam citra, maka hanya alamat file dari citra yang akan disimpan ke dalam basis data. Masukan data akan dimasukkan ke dalam basis data SQLite. Nama basis data yang digunakan aplikasi adalah DataCitra. Tabel basis data ini akan digunakan untuk pengembangan pada incremental satu dan dua. Gambar 2 Gelombang haar [2] Data area wajah yang ditemukan akan disimpan dalam array multi dimensional. Citra akan dipotong sesuai koordinat yang akan menyisakan area wajah saja. Pembandingan hanya akan dilakukan pada area wajah saja, ini dilakukan untuk mempersempit area pembandingan, agar proses pembandingan bisa lebih cepat. Gambar 3 Jendela dengan citra penuh Gambar 1 Desain basis data Saat komputer menerima citra baru untuk diproses, citra akan melewati proses pengolahan citra terlebih dahulu. Akuisisi citra dilakukan menggunakan kamera ponsel Xiaomi Redmi 2 Prime,dengan resolusi 8MP. Agar pembandingan bisa dilakukan lebih cepat, ukuran dari citra akan diperkecil tiga kali. Setelah itu, citra ini akan diubah menjadi citra berskala keabuan. Dengan bantuan library OpenCV, aplikasi akan mendeteksi area wajah. OpenCV face detector menggunakan metode Paul-Viola dan Michael Jones yang dipublikasikan pada tahun 2001 dalam paper "Rapid Object Detection using a Boosted Cascade of Simple Features". Viola dan Jones menggunakan bentuk gelombang haar dalam mendeteksi sebuah objek. Bentuk gelombang haaradalah sebuah gelombang kotak. Library OpenCV mendeteksi area wajah pada sebuah citra menggunakan gelombang haar, dan metode ini dinamakan haar cascades. [2] Gambar 4 Area wajah Area wajah ditemukan dengan menggunakan metode haar cascades yang terdapat pada library OpenCV. Gelombang haar akan mendeteksi objek yang ada di dalam citra. Ada beberapa pola area yang dideteksi oleh metode haar cascades milik OpenCV, sebagai contoh bisa dilihat pada Gambar 5. 37
A7 Seminar Nasional Teknologi Informasi 2016 membandingkan area wajah adalah 0.76. Dengan nilai 0.76, keypoint yang dinyatakan cocok cukup akurat, walaupun jumlah keypoint yang didapatkan menjadi sedikit. Gambar 5Contoh gelombang haar pada objek wajah [2] Hasil daripengambilan data untuk pembandingan citra akan diurutkan berdasarkan total data area wajah dari tiap nama. Pengurutan ini dilakukan agar saatmembandingkan citra bisa dimulai dengan total area wajah yang sedikit terlebih dahulu, jadi pembandingan tidak akan terjebak untuk memproses nama orang dengan total area wajah yang banyak. Pembandingan citra satu dengan yang lain dilakukan dengan membandingkan feature. Feature yang digunakan adalah sudut yang ada di dalam citra.[3] Untuk dapat membandingkan feature, aplikasi harus menemukan keypoint dari citra terlebih dahulu.keypointini merujuk pada sudut yang ditemukan dalam suatu objek di citra digital. Sudut ini tercipta dari dua buah perpotongan garis. [4] Dengan algoritma harris corner detection yang ditemukan Chris Harris dan Mike Stephens, komputer akan menemukan perbedaan dalam intensitas untuk perpindahan (u, v) ke segala arah. [5] Lalu Algoritma harris dikembangkan lagi untuk citra yang telah dilakukan scalling, karena sebuah sudut objek tidak akan lagi seperti sudut jika telah dilakukan scaling. Maka dari itu D. Lowe dari Universitas British Columbia membuat algoritma baru, yang bernama Scale-Invariant Feature Transform (SIFT). Algoritma ini mengekstrak keypoint dan melakukan komputasi pada descriptor-nya. [6] Gambar 6Keypoint di area wajah Setelah keypoint untuk tiap citra ditemukan, citra akan dibandingkan dengan citra yang telah tersimpan dalam basis data. Nilai 0.7 digunakan padatutorial feature matching OpenCV[7], namun dalam pengembangan aplikasi ini, berdasarkan pengujian yang telah dilakukan, nilai yang digunakandalam Gambar 7 Membandingkan area wajah Dalam pembandingan area wajah, terdapat rentang dan nilai minimum sebuah citra dinyatakan cocok, berikut adalah nilainya: (1) Jika total keypoint di atas delapan atau di atas KeypointTemp tertinggi, maka Nama dan keypoint itu akan disimpan sebagai temp. Jika sampai akhir pembandingan tidak ditemukan citra yang cocok, variabel temp ini yang akan digunakan, dan citra akan dinyatakan mungkin cocok. (2) Jika total keypoint diantara nol sampai empat, maka nama akan disimpan sebagai data yang tidak cocok. Jika nama yang tidak cocok didapatkan sebanyak empat kali, maka pembandingan citra untuk nama orang itu tidak akan dilakukan lagi. (3) Jika total keypoint di atas nilai 13, maka citra ini dinyatakan cocok. Jika ditemukan area citra X cocok dengan wajah A, maka aplikasi akan menyimpan data area X dengan nama A ke dalam basis data. Jika X dinyatakan mungkin cocok dengan wajah A, mak aplikasi akan menampilkan confirmation box, jika pengguna memilih ya, maka area X akan diakui sebagai nama A, tapi jika pengguna memilih untuk area X secara manual. Lalu jika X tidak cocok dengan citra manapun, pengguna diharuskan memasukkan data nama orang untuk area X itu. Nilai rentang penentuan area wajah dinyatakan cocok, mungkin cocok, atau tidak cocok, didapatkan setelah melakukan pengujian pada 20 citra. Terdapat tujuh orang yang berbeda dalam 20 citra ini. Satu citra bisa terdapat satu hingga tiga wajah di dalamnya, namun ada juga citra yang tidak terdapat objek wajah di dalamnya. 2.2 Pembandingan area latar belakang Sama seperti pembandingan area wajah, ukuran citra akan diperkecil lalu di ubah menjadi citra berskala keabuan. Kali ini area yang dibandingkan lebih besar, jadi citra akan diperkecil tujuh kali.fokus pembandingan lokasi berada pada area latar belakang tanpa tubuh manusia, maka dari itu area wajah sampai badan dari tidak, pengguna bisa memasukkan nama orangmanusia 38
Seminar Nasional Teknologi Informasi 2016 A7 dihilangkan untuk mengurangi keypoint yang ditemukan. Citra akan bertransformasi menjadi seperti Gambar 8. Gambar 8 Area tubuh manusia diberi nilai warna hitam (1) Citra akan dideteksi area wajahnya terlebih dahulu untuk menghasilkan area kotak di sekitar wajah. (2) Lalu ukuran area wajah itu akan dibesarkan agar area lain seperti telinga, dan rambut bisa masuk ke dalam area tersebut. (3) Area wajah yang sudah dibesarkan ini akan dipanjangkan lagi sampai tepi bawah citra, setelah itu area ini akan diberi nilai warna hitam untuk menghilangkan objek. Hasil akhir dari proses ini adalah citra latar belakang tanpa tubuh manusia Saat membandingkan area latar belakang, nilai minimal kecocokan keypoint adalah 0,72. Lalu terdapat rentang dan nilai minimum sebuah citra dinyatakan cocok, berikut adalah nilainya: (1) Jika total keypoint di atas 16 atau KeypointTemp tertinggi, maka Lokasi dan keypoint itu akan disimpan sebagai temp. Jika sampai akhir pembandingan tidak ditemukan citra yang cocok, variabel temp ini yang akan digunakan, dan citra akan dinyatakan mungkin cocok. (2) Jika total keypoint diantara nol sampai tujuh, maka lokasi akan disimpan sebagai datayang tidak cocok. Jika lokasi yang tidak cocok didapatkan sebanyak tiga kali, maka pembandingan citra untuk nama lokasi itu tidak akan dilakukan lagi. (3) Jika total keypoint di atas nilai 22, maka citra ini dinyatakan cocok. Jika ditemukan area citra Ycocok dengan lokasi C, maka aplikasi akan menyimpan data area Y dengan nama lokasi C ke dalam basis data. Jika Y dinyatakan mungkin cocok dengan lokasi C, aplikasi akan menampilkan confirmation box, jika pengguna memilih ya, maka area Y akan diakui sebagai lokasi C, tapi jika pengguna memilih tidak, pengguna bisa memasukkan nama orang untuk area Y secara manual. Lalu jika Y tidak cocok dengan citra manapun, pengguna diharuskan memasukkan nama lokasi untuk area Y itu. Nilai rentang penentuan area latar belakang dinyatakan cocok, mungkin cocok, atau tidak cocok, didapatkan setelah melakukan pengujian pada 55 citra. Terdapat 14 orang, dan 10 area latar belakang yang berbeda dalam 55 citra ini. Gambar 9 Membandingkan area latar belakang 2.3 Daftar Nama Orang yang Mungkin Dikenal Gambar 10 Relasi orang melihat dari citra Dalam penelitian ini, diasumsikan jika A berfoto dengan B dalam satu citra yang sama, maka A dinyatakan mungkin kenal dengan B. Sama halnya jika B berfoto dengan C, maka B mungkin kenal dengan C. Lalu dengan melihat dua citra ini, maka A kemungkinan kenal dengan C, karena A dan C sama-sama pernah berfoto dengan B Tabel 1 Contoh data citra Lokasi File Citra C:/citra1.jpg C:/citra1.jpg C:/citra2.jpg C:/citra2.jpg Nama A B B C Tabel 2 Daftar nama orang yang mungkin dikenal (satu citra) Nama B E 39
A7 Seminar Nasional Teknologi Informasi 2016 Tabel 3 Daftar nama orang yang mungkin dikenal (dua citra) Nama C D 3. Hasil 3.1 Pembandingan Area Wajah Wajah yang terdeteksi menghasilkan area yang cukup baik, area wajah terambil semua dengan area rambut terambil sedikit. Jika wajah sedikit menoleh ke samping, maka area samping arah wajah akan terambil lebih banyak. Hasil pembandingan citra untuk wajah dengan ekspresi, rambut dan arah wajah yang sama cukup baik, citra bisa dikatakan cocok. Jika rambut atau arah wajahnya berbeda, nilai total keypoint yang cocok akan menurun, akibatnya citra bisa dikatakan mungkin atau tidak cocok. Jika area wajah yang ditemukan cukup kecil, maka saat area wajah itu dibandingkan, kemungkinan ditemukan ketidak cocokan yang sangat tinggi. Pencahayaan dan warna dari kulit wajah dengan kulit yang gelap juga mempengaruhi nilai keypoint yang didapatkan. Total keypoint yang didapatkan akan menjadi kecil (sekitar 0-4). 3.2 Pembandingan Area Latar Belakang Gambar 12 Citra B yang diambil di Rak Perpustakaan Jika dilihat, latar dalam pengambilan citra untuk Gambar 11 dan Gambar 12mirip, tapi karena area latar belakang yang dibandingkan cukup berbeda dari segisudut pengambilan citra dan besar area yang tertangkap oleh kamera, maka kedua latar belakang ini belum bisa dikatakan sebagai lokasi yang sama. Namun untuk citra dengan sudut dan area pengambilan citra yang tidak terlalu berbeda, keypoint cocok yang didapatkan akan cukup ting3.3 Daftar Nama Orang yang Mungkin Dikenal Jika latar belakang citra yang dibandingkan cukup berbeda dari segi sudut pengambilan citra dan besar area, maka total keypoint yang didapatkan tidak terlalu banyak, sekitar di bawah 12. Gambar 11 Citra A yang diambil di Rak Perpustakaan Gambar 13 Daftar nama orang yang mungkin dikenal Gambar 13 menunjukkan daftar nama orang yang mungkin dikenal. Jika pengguna menekan cell pada kolom total, maka akan muncul jendela seperti pada Gambar 14, 15 dan 16. Jendela ini akan menampilkan 40
Seminar Nasional Teknologi Informasi 2016 A7 citra yang menunjukkan adanya keterhubungan dari orang-orang tersebut. Pada Gambar 15 dan 16 menunjukkan keterhubungan antar dua orang yang dilihat dari dua citra. Untuk Gambar 15, dua orang ini dikatakan mungkin saling kenal karena mereka berdua sama-sama pernah berfoto dengan orang yang sama. Lalu untuk Gambar 16, menunjukan bahwa keduanya pernah berfoto di lokasi yang sama, namun data lokasi ini hanya dijadikan sebagai data pendukung, data utamanya tetap pada keterhubungan objek wajah. 4. Kesimpulan Gambar 14 Jendela yang menampilkan bukti keterhubungan Pada Gambar 14 menunjukkan keterhubungan antar dua orang yang dilihat dari satu citra. Dua orang ini dikatakan mungkin saling kenal karena mereka berdua pernah berfoto bersama. Gambar 15 Jendela yang menampilkan citra bersama orang yang menjadi penghubung Aplikasi pembandingan citra dengan metode feautre matching tidak cukup baik jika citra yang dibandingkan memiliki perbedaan area dan sudut pengambilan citra yang berbeda, namun jika kedua citra memiliki besar area dan sudut pengambilan yang sama, hasilnya baik. Feature matching dapat digunakan untuk face recognition, namun jika pencahayaan pada area wajah kurang, nilai total keypoint cocok yang didapatkan akan sedikit, ini mengakibatkan akurasi dari pembandingan citra menjadi menurun. Waktu pembandingan citra saat aplikasi menerima citra baru bisa lebih dipercepat dengan melakukan penyeleksian dan pengurutan daftar nama atau lokasi saat membandingkan citra. REFERENSI [1]. S. Sabharwal, Software Engineering. New Delhi: New Age International, 2008. hlm. 16-17. [2]. Face Detection using Haar Cascades. 2016. [Online]. Diakses 27 Mei 2016 dari http://docs.opencv.org/master/d7/d8b/tutorial_py_face_d etection.html#gsc.tab=0 [3]. Understanding Features. 2016. [Online]. Diakses 27 Mei 2016 dari http://docs.opencv.org/master/df/d54/tutorial_py_feature s_meaning.html#gsc.tab=0 [4]. K. Demaagd et al. Practical Computer Vision. United States of America: O Reilly. 2012. hlm. 200. [5]. Harris Corner Detection. 2016. [Online]. Diakses 27 Mei 2016 dari http://docs.opencv.org/master/dc/d0d/tutorial_py_feature s_harris.html#gsc.tab=0 [6]. Introduction to SIFT (Scale-Invariant Feature Transform). 2016. [Online]. Diakses 27 Mei 2016 dari http://docs.opencv.org/master/da/df5/tutorial_py_sift_intr o.html#gsc.tab=0 [7]. FeatureMatching. 2016. [Online]. Diakses 27 Mei 2016 dari http://docs.opencv.org/master/dc/dc3/tutorial_py_matche r.html#gsc.tab=0 Gambar 16 Jendela yang menampilkan dua citra di lokasi yang sama 41