Institutional Repository | Satya Wacana Christian University: Perancangan Aplikasi Perkiraan Wajah Manusia di Masa Depan Menggunakan Algoritma Warp dan Morph Berbasis Android

  Perancangan Aplikasi Perkiraan Wajah Manusia di Masa Depan Menggunakan Algoritma Warp dan Morph Berbasis Android Artikel Ilmiah Diajukan kepada Fakultas Teknologi Informasi untuk Memperoleh Gelar Sarjana Komputer Oleh : Martha Sadari Nugraheni NIM: 672011198 Program Studi Teknik Informatika Fakultas Teknologi Informasi Universitas Kristen Satya Wacana Salatiga September 2015

  

Perancangan Aplikasi Perkiraan Wajah Manusia di Masa

Depan Menggunakan Algoritma Warp dan Morph

1) 2) 3)

Berbasis Android

Martha Sadari Nugraheni, Alz Danny Wowor, Yos Richard Beeh

  

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

1) 2)

Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 672011198@student.uksw.edu, alzdanny.wr@gmail.com,

3)

yos.fti.uksw@gmail.com

Abstract

  Research on human face aging using digital image processing has been done with

various algorithms. Warp and morph algorithm has the ability to distort image, so it can

be used to make aging effect on human face image. With Research and Development

method, an Android-based application created to estimate human face aging using warp

and morph algorithm. Image distortion in this algorithm done by triangulation

transformation based on source and destination mesh formed from facial features points.

To do morphing with only one input image, the value of Affine transformation matrix

should be determined first to calculate the value of destination mesh in a single face. The

determination of affine matrix value done through experiment by modifying young image

mesh to be looked closely similar with the old face. The image result for specific face

shape ’s criteria which is tested shows a good similarity between simulation result image with the truth image in aspect of facial features shape.

  Keywords: Digital Image, Warp, Morph, Face Aging, Android

Abstrak

  Penelitian mengenai penuaan wajah manusia dengan memanfaatkan pengolahan

citra telah dilakukan dengan berbagai algoritma. Algoritma warp dan morph memiliki

kemampuan untuk mendistorsi citra, sehingga dapat dimanfaatkan untuk menghasilkan

efek penuaan pada citra wajah manusia. Dengan metode Research and Development

dibuat aplikasi berbasis Android untuk memperkirakan penuaan wajah seseorang

menggunakan algoritma warp dan morph. Distorsi citra pada algoritma ini dilakukan

dengan transformasi triangulasi berdasarkan mesh awal dan akhir yang terbentuk dari

titik-titik bagian wajah. Untuk melakukan proses morphing dengan hanya satu citra

masukan, terlebih dulu nilai matriks transformasi Affine untuk mendapatkan mesh akhir

sebuah wajah. Penentuan nilai matriks Affine dilakukan melalui percobaan modifikasi

mesh wajah muda yang dibuat semirip mungkin dengan gambar wajah tua. Citra keluaran

yang dihasilkan untuk kriteria bentuk wajah yang diuji menunjukkan kemiripan yang baik

antara wajah hasil simulasi dengan wajah sebenarnya dalam aspek bentuk bagian-bagian

wajah. 1) Kata Kunci: Citra Digital , Warp, Morph, Penuaan Wajah, Android.

  

Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya

2) Wacana, Salatiga. 3) Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga

1. Pendahuluan

  Proses pengolahan citra merupakan hal yang sering dijumpai dalam penggunaan teknologi di kehidupan sehari-hari. Seiring dengan munculnya beragam media sosial, aplikasi pengolah citra semakin diminati. Hasil survei The

  

Renfrew Center Foundation kepada 1.710 responden menunjukkan bahwa 70%

  perempuan serta lebih dari 50% laki-laki mengedit foto wajahnya sebelum diunggah ke media sosial agar terlihat lebih menaHal ini menunjukkan bahwa bagi kebanyakan orang, wajah merupakan bagian yang penting dan perlu perhatian khusus. Banyak orang ingin memiliki wajah yang sempurna, namun wajah setiap orang pasti mengalami penuaan seiring bertambahnya usia. Proses penuaan adalah proses fisiologis yang akan terjadi pada semua makhluk hidup. Proses ini meliputi seluruh organ tubuh termasuk kulit yang merupakan salah satu jaringan tubuh yang secara langsung memperlihatkan terjadinya proses penuaan. Berbagai masalah dan kelainan kulit dapat timbul pada penuaan kulit, salah satunya adalah kulit kendur. Dengan mengendurnya kulit, maka terjadi perubahan posisi bagian-bagian wajah serta timbul kerutan.

  Sebuah metode untuk membuat model kerutan pada penuaan kulit manusia pernah diusulkan oleh Bando et al. Triangle mesh digunakan untuk memetakan bagian tubuh, kemudian dilakukan operasi geometri berupa distorsi

  

mesh untuk membuat efek kerutan. Sayangnya, Bando tidak membuatnya menjadi

  sebuah aplikasi, namun hanya memproses model kerutan tersebut menggunakan sebuah Computer Graphic software.

  Salah satu metode pengolahan citra digital yang menggunakan distorsi mesh sebagai dasarnya adalah image warping. Warping dari dua gambar yang berbeda dan memadukan warp tersebut akan menghasilkan morph dari kedua gambar. Beberapa teknik dalam image morphing yaitu cross dissolve, feature morph, dan

  

mesh morph . Berdasarkan hasil penelitian oleh Gunadi et al. dari ketiga

  teknik tersebut yang memiliki efisiensi waktu dan kualitas hasil terbaik adalah mesh morph.

  Penelitian terhadap pengolahan citra telah dilakukan oleh banyak peneliti, sehingga mucul berbagai pemanfaatan dari pengolahan citra. Dari pengolahan sederhana seperti rotating, scaling, dan recoloring, sampai pada morphing sehingga dapat menghasilkan gambar gerak atau animasi yang berguna di bidang seni dan hiburan. Algoritma image denoising dapat digunakan untuk mendeteksi asli atau tidaknya suatu dokumen dalam sebuah citra. Dalam bidang kedokteran, pengolahan citra yang dikombinasikan dengan berbagai disiplin ilmu dapat mendeteksi adanya penyakit dalam tubuh manusia. Selain itu, para peneliti juga melakukan pengolahan citra dengan berbagai metode untuk mengetahui penuaan pada wajah manusia.

  Pengolahan citra dalam penuaan wajah manusia telah diteliti dengan berbagai algoritma, diantaranya Curvature-Weighted (CW), Learning-based

  

Mahalanobis (LM) , dan morph. Penelitian yang menggunakan morph oleh

  Nguyenmemerlukan lebih dari satu gambar masukan dari seseorang untuk menghasilkan efek penuaan. Maka dari itu, muncul gagasan untuk membuat sebuah aplikasi yang menghasilkan efek penuaan wajah menggunakan warp dan

  

morph yang hanya memerlukan satu gambar masukan. Aplikasi ini akan

  memberikan gambaran wajah bagi siapa saja yang ingin mengetahui efek penuaan pada wajah seseorang, sehingga bermanfaat untuk keperluan pencarian orang hilang, pencarian pelaku tindak kriminal, maupun bagi siapa saja yang ingin mengetahui wajah seseorang di masa depan.

  Berdasarkan latar belakang yang ada, maka rumusan masalah dalam penelitian ini adalah bagaimana cara menerapkan algoritma warp dan morph dalam pembuatan aplikasi berbasis Android untuk memperkirakan wajah seseorang di masa mendatang. Aplikasi ini dibuat pada platform Android karena sistem operasi perangkat mobile yang paling banyak digunakan di dunia adalah AndrMobile phone merupakan perangkat yang data penjualannya saat ini paling banyak dan terus meningkat dari tahun ke tahun, jauh lebih banyak dibandingkan perangkat lain seperti Personal Computer (PC) Minat pengguna Android terhadap aplikasi pengolah citra juga cukup tinggi, terbukti dalam 10 aplikasi gratis yang paling banyak diunduh oleh seluruh pengguna Android, 2 diantaranya merupakan aplikasi pengolah citra

  Untuk memperjelas area pembahasan dalam penelitian ini, perlu adanya batasan-batasan masalah, diantaranya (1) Aplikasi memproses gambar wajah yang utuh dan jelas dengan ekspresi datar dan sudut pengambilan gambar tepat dari depan; (2) Ukuran gambar masukan 280

  280 piksel berisi citra wajah dengan jarak dari alis sampai ujung dagu 146 piksel.

2. Tinjauan Pustaka

  Pada bab ini dibahas beberapa penelitian terdahulu dan teori-teori yang berkaitan dengan algoritma warp dan morph maupun aplikasi penuaan wajah. Penelitian yang menjadi acuan sekaligus pembanding berjudul Age

  

Progression using Image Morphing telah dilakukan oleh Nguyen yang

  membuat sebuah aplikasi untuk memprediksi perubahan wajah seseorang dari waktu ke waktu menggunakan dengan menggabungkan warp beberapa gambar dari seseorang pada usia yang berbeda. Beberapa gambar dari usia berbeda dengan ekspresi wajah dan ukuran yang sama akan membuat hasil age

  

progression yang lebih bagus. Perbedaannya dengan penelitian ini adalah bahwa

  aplikasi yang dibuatnya tidak dapat memprediksi wajah di masa depan, namun hanya membuat prediksi perubahan wajah sehingga tidak dapat diproses jika hanya memiliki satu gambar masukan.

  Penelitian selanjutnya mengenai algoritma penuaan dilakukan oleh Shen et

  

al yaitu memprediksi perubahan wajah seseorang pada usia tertentu melalui

  perpaduan wajah saudara-saudaranya yang berada pada kisaran usia yang ditentukan. Shen mengusulkan beberapa metode yaitu Craniofacial Growth (CG),

  • Bending-Energy (BE) Distance dan Learning-based

  Curvature-Weighted (CW)

Mahalanobis (LM) Distance. Untuk mengetahui tingkat kemiripan hasil

  digunakan bending energy technique dengan menghitung error dari model 3D prediksi dibanding model 3D asli. Hasil model dari setiap metode untuk wajah Michael Jackson dapat dilihat pada Gambar 1. Penelitian ini menghasilkan kesimpulan bahwa metode CW + BE dan LM dapat menghasilkan gambar yang mirip dengan wajah asli, karena bending energy error pada kedua metode tersebut tidak terlalu banyak seperti pada CG. Diagram hasil pengujian bending energy

  

error dapat dilihat pada Gambar 2. Kelemahan dari metode yang diusulkan yaitu

  sangat terbatasnya foto dari saudara pada usia yang dibutuhkan. Dari penelitian ini diketahui bahwa pengambilan sampel wajah yang mirip dapat digunakan sebagai acuan dalam menentukan penuaan wajah seseorang.

  

Gambar 1 Prediksi Perubahan Wajah Michael Jackson [8]

Gambar 2 Bending Energy Error pada CG (Biru), CW+BE (Hijau), dan LM (Merah) [8]

  Penelitian mengenai pengembangan algoritma warp dilakukan oleh Bando,

  

et al yang membuat suatu model kerutan pada kulit manusia menggunakan

  sebuah Computer Graphic software. Pembuatan model dimulai dari mendistorsi

  

triangle mesh yang merepresentasikan sebuah bagian tubuh, kemudian

  diinterpolasi untuk membuat direction field dari setiap titik pada mesh. Efek kerutan dihasilkan dengan mengukir kerut di sepanjang direction field, yaitu dengan cara menggambarkan segmen garis abu-abu pada citra. Dalam mendemonstrasikan model yang dibuatnya, Bando menggunakan sebuah 3D

  

digitizer . Dari penelitian ini dapat disimpulkan bahwa mesh warping saja tidak

dapat menambahkan komponen baru dalam sebuah citra.

  Acuan penelitian selanjutnya berjudul A Multi-Resolution Dynamic Model

  

for Face Aging Simulation . Suo et al. membuat model penuaan wajah seseorang menggunakan Markov Chain yang memiliki dua variasi yaitu

  

continous variation dan abrupt variation. Pada continous variation hanya

  dilakukan perubahan pada atribut yang telah ada, seperti warna rambut dan warna kulit. Namun pada abrupt variation dilakukan penambahan atribut baru seperti kerutan dan juga mengganti gaya rambut. Atribut yang ada didapatkan dengan menggunakan model dari sampel yang diambil dari kebanyakan orang pada ras sejenis. Atribut mewakili bagian yang paling menonjol perubahannya ketika mengalami penuaan, yaitu mata, mulut, dahi, dan rambut. Penelitian ini menghasilkan kesimpulan bahwa tingkat kemiripan maksimal tercapai pada jarak usia penuaan 10

  • – 20 tahun. Semakin jauh jarak usia prediksi dari usia gambar masukan, tingkat kemiripannya dengan wajah asli semakin kecil.

  Pada bagian berikut dijelaskan teori-teori yang digunakan sebagai landasan dalam penelitian ini, yaitu mengenai penuaan, citra digital, warp, dan morph. Penuaan adalah proses yang terjadi pada organ tubuh seluruh makhluk hidup, termasuk kulit. Proses menua pada kulit dibagi menjadi dua yaitu proses intrinsik dan ekstrinsik. Proses menua intrinsik berlangsung secara alamiah, disebabkan oleh faktor dari dalam tubuh seperti genetik, hormonal, dan rasial. Perubahan ini tidak dapat dihindari, dan akan terjadi sesuai pertambahan usia. Sedangkan proses menua ekstrinsik terjadi akibat faktor dari luar tubuh seperti sinar matahari, kelembaban udara, dan faktor lain yang mempercepat proses penuaan kuliPada penuaan intrinsik akan terjadi gejala kulit kendur. Dengan kendurnya kulit, maka bagian-bagian yang menempel pada kulit seperti mata, alis, dan mulut juga ikut mengalami perubahan.

  Citra adalah suatu representasi (gambaran), kemiripan, atau imitasi dari suatu objek. Citra terbagi 2 yaitu ada citra yang bersifat analog dan ada citra yang bersifat digital. Citra analog adalah citra yang bersifat kontinu seperti gambar pada monitor televisi, foto sinar X, hasil CT Scan, dll. Sedangkan citra digital adalah citra yang dapat diolah oleh komputer

  Secara matematis citra digital dapat dituliskan sebagai fungsi ,

  ( )

  dimana harga x (baris) dan y (kolom) merupakan koordinat posisi, dan

  ( )

  adalah nilai fungsi pada setiap titik yang menyatakan besar intensitas citra

  ( )

  atau tingkat keabuan atau warna dari piksel di titik tersebut. Pada proses digitalisasi (sampling dan kuantitas) diperoleh besar baris M dan kolom N hingga citra membentuk matriks . Sebuah citra digital dapat ditulis dalam bentuk matriks sebagai berikut:

  ( ) ( ) ( ) ( ) ( ) ( ) ( ) [

  ] (1) ( ) ( ) ( )

  Salah satu metode transformasi geometri pada citra adalah dengan mendistorsi (distorting) citra. Mendistorsikan berbagai potongan dari sebuah citra dengan cara yang berbeda akan menghasilkan warp. Image warping adalah pasangan dari fungsi dua dimensi dan , yang memetakan posisi

  ( ) ( ) di satu gambar, dimana x adalah denotasi kolom dan y adalah denotasi baris,

  ( ) ke posisi di gambar lainnya

  ( )

  Proses warping dimulai dengan menguraikan warp sederhana dari sebuah daerah segitiga pada suatu bidang. Ketiga verteks (titik sudut) segitiga tersebut dinyatakan oleh tiga titik nonkolinear v

  1 , v 2 , dan v 3 . Jika sebuah segitiga yang

  akan di-warp mengandung sebuah gambar didalamnya, maka di tiap titik pada segitiga awal akan ditetapkan sebuah derajat warna abu-abu (gray level). Misal didefinisikan fungsi adalah gray level pada titik v di segitiga awal, maka

  ( )

  dapat didefinisikan gambar di segitiga akhir sebagai hasil warp dari segitiga awal yang memiliki kerapatan gambar . Transformasi dari segitiga awal ke segitiga akhir dapat dilihat pada Gambar 3 .

  Gambar 3 Segitiga Awal (a) dan Akhir (b

  Sebuah morph dengan perubahan waktu dapat dijelaskan sebagai perpaduan dua warp dari dua gambar yang berbeda dengan menggunakan dua triangulasi yang dapat mencocokan ciri-ciri kunci yang bersesuaian pada gambar. Salah satu dari gambar ditentukan sebagai gambar awal dan lainnya sebagai gambar akhir. Setelah dilakukan warp dari waktu t=0 ke t=1 pada gambar awal dan dilakukan warp dari t=1 ke t=0 dari gambar akhir, dapat dihasilkan nilai rata-rata terbobot (weighted average) dari derajat warna abu-abu kedua warp tersebut. atau sering disebut triangle based morphing adalah teknik

  Mesh morph

morphing yang menggunakan features yang membentuk kurva tertutup berbentuk

  segitiga, dimana segitiga awal berpasangan dengan segitiga tujuan Jika n adalah jumlah titik verteks dan k adalah jumlah titik verteks yang terletak pada batas garis persegi panjang pada gambar, maka jumlah segitiga m dari triangulasi pada titik tersebut dinyatakan dengan:

  m = 2n (2)

  • – 2 – k Pembentukan kurva segitiga dapat dilakukan menggunakan metode triangulasi Delaunay, yaitu pembentukan jala-jala segitiga dari himpunan titik- titik pada suatu bidang. Segitiga-segitiga yang terbentuk harus memenuhi syarat

  

incircle , yaitu tidak ada titik lain di dalam lingkaran yang dibentuk dari tiap tiga

  titik sudut segitiga yang ada kecuali tiga titik sudut segitiga itu sendiri. Dengan adanya syarat tersebut maka triangulasi Delaunay membentuk himpunan segitiga yang efisien, yaitu tidak ada segitiga yang terlalu lancip, sehingga triangulasi Delaunay dapat digunakan untuk interpolasi linear piecewise yang optimal. [13]

  Proses transformasi segitiga pada warp dan morph dilakukan dengan transformasi Affine menggunakan matriks berukuran 3 x 3. Segitiga awal yang berisi titik-titik sudut (x ,y ), (x

  1 ,y 1 ), (x 2 ,y 2 ) didefinisikan dalam matriks X, sedangkan segitiga akhir (u ,v ), (u ,v ), (u ,v ) didefinisikan dalam matriks U.

  1

  1

  2

  2 Persamaan transformasi kedua segitiga didefinisikan dengan

  (3) Matriks A adalah matriks Affine, berisi koefisien-koefisien yang mentransformasi matriks X ke U. Sehingga persamaan 3 dalam bentuk matriks adalah sebagai berikut.

  (4) [ ] [ ] [ ]

  Untuk mendapatkan nilai matriks A dapat dilakukan pengalian invers matriks U dengan matriks X, sehingga persamaan 3 dapat diubah menjadi (5)

  Nilai dari matriks Affine dapat digunakan untuk melakukan proses penuaan pada seseorang yang hanya diketahui gambar awalnya saja. Dalam hal ini berarti matriks yang dicari adalah matriks U, dengan persamaan sebagai berikut

  (6) Persamaan 6 diuraikan dalam matriks adalah sebagai berikut

  (7)

[ ] [ ] [ ]

  Dari persamaan 7 dapat ditentukan nilai u n dan v n dari setiap mesh point pada gambar akhir, yaitu dengan persamaan berikut

  • -1 -1 -1

  u = x . A + y . A + A (8) n n

11 n

  21

  31

  • -1 -1 -1

  v = x . A + y . A + A (9) n n

12 n

  22

  32

3. Metode Penelitian

  Metode penelitian yang digunakan yaitu Penelitian dan Pengembangan atau

  

Research and Development (R&D). Metode ini digunakan untuk menghasilkan

  suatu produk tertentu dan menguji keefektifan dari produk tersebut supaya dapat berfungsi di masyarakat Langkah-langkah dari metode ini dapat dilihat pada Gambar 4.

  

Gambar 4 Langkah-langkah Penelitian dalam Metode R&D [12] Dalam penelitian ini, tahapan R&D yang ditempuh hanya sampai uji coba produk. Langkah penelitian pada Gambar 3 dijelaskan sebagai berikut: 1) Tahap potensi dan masalah, pada tahap ini dilakukan observasi terhadap beberapa survei atau penelitian mengenai citra digital yang berkaitan dengan penuaan wajah, kemudian mengidentifikasi potensi dan masalah yang timbul dari hasil observasi. Potensi yang ditemukan adalah kemampuan algoritma warp dan morph untuk menangani masalah penuaan wajah pada citra pada platform Android. 2) Tahap pengumpulan data, dikumpulkan informasi untuk menentukan kebutuhan berdasarkan masalah yang ada, yaitu fitur apa saja yang akan dibuat dalam aplikasi supaya dapat digunakan dengan mudah dan sesuai dengan kebutuhan pengguna. Selain itu, dilakukan studi pustaka mengenai algoritma yang akan digunakan dalam program dan penggunaanya untuk menghasilkan efek penuaan pada citra wajah. 3) Tahap desain produk, merancang sistem dengan diagram

  

Unified Modelling Language (UML). Setelah merancang sistem kemudian

  dilakukan desain tampilan atau user interface dari aplikasi. 4) Tahap validasi desain, dilakukan penilaian apakah desain produk yang dibuat telah sesuai dengan kebutuhan pengguna. Pada tahap ini dilakukan diskusi dengan beberapa orang sebagai representasi dari calon pengguna. Jika ada sesuatu yang harus diperbaiki maka akan dilakukan tahap perbaikan desain. 5) Tahap perbaikan desain, merupakan tahap dimana kebutuhan pengguna yang tidak sesuai dengan desain sebelumnya diperbaiki sesuai hasil validasi desain. 6) Tahap uji coba produk, dalam bidang teknik sebelum dilakukan uji coba produk harus dibuat terlebih dulu. Pembuatan produk dilakukan dengan membuat aplikasi pada platform Android menggunakan bahasa pemrograman Java pada Eclipse editor. Didalam pembuatan aplikasi digunakan Software Development Kit (SDK) dari Luxand, Inc yaitu FaceSDK untuk melakukan deteksi bagian-bagian wajah yang akan diproses. Setelah aplikasi dibuat barulah dilakukan uji coba produk, dimana dilakukan pengujian aplikasi dan analisis hasil pengujian. Pengujian pertama menggunakan metode black box testing untuk memastikan bahwa seluruh fungsi dalam aplikasi dapat berjalan dengan baik. Pengujian kedua yaitu dengan melakukan kalkulasi jarak koordinat titik-titik wajah gambar hasil dengan gambar asli sehingga dapat diketahui akurasi letak titik-titik wajah pada gambar hasil terhadap gambar aslinya.

  UML yang yang dirancang pada tahap desain produk diantaranya diagram

use case, diagram class, diagram activity, dan diagram sequence. Diagram use

case digunakan untuk memodelkan interaksi antara sistem dengan aktor atau

  pengguna. Diagram use case dalam aplikasi perkiraan penuaan wajah dapat dilihat pada Gambar 5.

  

Gambar 5 Diagram Use Case Aplikasi Perkiraan Penuaan Wajah Penjelasan pada Gambar 5 adalah pengguna dapat memasukkan gambar untuk diproses, yaitu menggunakan gambar yang sudah tersimpan dalam perangkat Androidnya. Setelah itu pengguna tinggal menunggu hasil pengolahan gambar yang telah diberi efek penuaan. Pengguna juga dapat menyimpan gambar hasil setelah melihatnya.

  Diagram activity menjelaskan alur aktivitas antara pengguna dan aplikasi saat pertama kali aplikasi dijalankan hingga selesai. Diagram activity aplikasi ini dapat dilihat pada Gambar 6.

  

Gambar 6 Diagram Activity Aplikasi Perkiraan Penuaan Wajah

  Tahap awal pada diagram activity yaitu aplikasi menampilkan menu utama dimana pengguna dapat memilih bentuk wajah yang akan diproses. Kemudian, pengguna dapat memasukkan foto dari file yang sudah ada dalam perangkat Androidnya. Aplikasi akan mendeteksi bagian-bagian wajah yang ada dalam foto. Jika tidak ditemukan bagian-bagian wajah dalam foto, maka akan tampil pesan

  

error sehingga pengguna harus menggunakan foto yang lain. Namun jika bagian-

  bagian wajah sudah ditemukan maka akan diproses untuk menghasilkan foto perkiraan penuaan wajah. Setelah ditampilkan hasilnya, pengguna dapat memilih apakah ingin menyimpannya dalam perangkat atau tidak.

  Diagram class menggambarkan struktur dan deskripsi class, package dan objek beserta hubungannya satu dengan yang lain. Diagram class aplikasi ini dapat dilihat pada Gambar 7.

  

Gambar 7 Diagram Class Aplikasi

  Sesuai dengan diagram class pada Gambar 7, aplikasi ini memiliki beberapa

  

class yang saling terhubung satu sama lain. MenuScreen adalah class yang

  menampilkan menu utama aplikasi, dimana pengguna dapat memilih bentuk wajah yang akan diproses. FaceAgingScreen adalah class untuk menampilkan gambar yang akan diproses dan mendeteksi bagian-bagian wajah pada gambar awal sehingga menghasilkan mesh awal. Tampilan gambar pada FaceAgingScreen diatur dalam class FaceImageView. Class DestPoint melakukan perhitungan untuk memperoleh mesh akhir berdasarkan mesh awal yang terdeteksi. Class Triangulation berfungsi untuk melakukan triangulasi berdasarkan mesh. Segitiga hasil triangulasi yang telah terbentuk disimpan dalam class Triangle. Class Line berfungsi menentukan garis-garis pembentuk segitiga yang ada pada class Triangle. Class GeometryTrans melakukan perhitungan untuk mencari nilai matriks transformasi, dimana elemen matriksnya terdapat di class Transform. WarpMorph adalah class untuk melakukan warping dan morphing berdasarkan triangulasi dan matriks transformasi yang terbentuk. Class ImageClip melakukan gambar untuk menentukan piksel gambar yang sesuai antara gambar awal

  clipping

  dan akhir berdasarkan dimensi gambar. Class Config berfungsi sebagai penampung beberapa variabel yang berperan penting dalam proses penuaan wajah.

  Diagram sequence menggambarkan interaksi antar object dan mengindikasikan komunikasi diantara object tersebut. FaceAgingScreen yang telah mendeteksi mesh wajah akan memanggil fungsi getDestPoint dari object DestPoint untuk mendapatkan destination mesh. Kemudian dilakukan image

  

clipping dengan memanggil fungsi genClip dari object ImageClip. Fungsi

  triangulate akan memproses triangulasi berdasarkan data mesh awal dan akhir, kemudian fungsi morph dijalankan untuk mentransformasi segitiga hasil triangulasi. Transformasi ini dilakukan berdasarkan nilai matriks transformasi yang dihasilkan oleh object GeometryTrans. Gambaran sistem dalam diagram

  sequence dapat dilihat pada Gambar 8.

  

Gambar 8 Diagram Sequence

Gambar 9 Flowchart Proses Mengubah Gambar Input Menjadi Output

  pada Gambar 9 menjelaskan proses mengubah gambar input

  Flowchart

  menjadi output. Gambar input dideteksi dengan FaceSDK untuk mendapatkan

  

mesh dari wajah pada gambar. Jika mesh wajah tidak terdeteksi, maka program

  akan mengembalikan pesan error. Jika mesh wajah awal terdeteksi, selanjutnya program akan menentukan awal dan mesh akhir untuk gambar output yang telah mengalami penuaan. Selanjutnya dilakukan proses warping dan morphing untuk menghasilkan gambar output.

  Gambar 10 menggambarkan tahapan umum proses algoritma warp dan

  

morph . Dari mesh awal dan akhir yang telah diperoleh, dibentuk triangulasi

  berdasarkan mesh yang memenuhi syarat triangulasi Delaunay. Selanjutnya, dilakukan deformasi gambar dari triangulasi awal dan akhir yang terbentuk. Deformasi gambar dilakukan untuk menghasilkan gambar setiap frame pada proses morphing. Titik-titik segitiga awal akan ditransformasi sebanyak jumlah

  

morph steps sehingga menghasilkan gambar proses penuaan. Untuk melakukan

  transformasi dari segitiga awal ke segitiga frame ke-i dilakukan pencocokan titik awal dan titik akhir yang koresponden terlebih dahulu, kemudian dilakukan

  

merging yaitu menghitung weighted average dari kedua titik tersebut. Setelah

  dilakukan transformasi, ditentukan nilai piksel gambar untuk setiap frame agar menghasilkan gambar output yang sesuai dengan hasil transformasi.

  

Gambar 10 Flowchart Algoritma Warp dan Morph

4. Hasil dan Pembahasan

  Untuk memproses penuaan wajah dengan satu gambar input, terlebih dahulu harus diketahui nilai matriks Affine atau matriks transformasi yang dapat menghasilkan efek penuaan. Penentuan nilai matriks Afiine dilakukan dengan melakukan transformasi pada sampel gambar yang telah diketahui mesh wajah awalnya, kemudian ditentukan koordinat mesh akhir melalui percobaan agar mesh gambar hasil menjadi semirip mungkin dengan gambar sebenarnya yang telah mengalami penuaan.

  Nilai matriks transformasi dari triangle awal ke triangle tujuan didapatkan dalam fungsi getTrafo. Fungsi ini merupakan implementasi dari rumus pada Persamaan 5, dimana Kode Program 3 baris 20

  • – 25 merupakan perhitungan nilai
setiap koefisien matriks Affine. Kode Program 1 merupakan kode fungsi getTrafo untuk memperoleh nilai matriks transformasi.

  Kode Program 1 Fungsi untuk Menentukan Nilai Matriks Transformasi

  • – ((double) y1 - y3) * t) / u; 22. trafo.a_11 = (((double) x1 - x3) – trafo.a_21*((double) v1 - v3))/ d; 23. trafo.a_12 = (((double) y1 - y3) – trafo.a_22*((double) v1 - v3))/ d; 24. trafo.a_31 = (double) x1 - trafo.a_11 * u1 – trafo.a_21 * v1; 25. trafo.a_32 = (double) y1 - trafo.a_12 * u1 – trafo.a_22 * v1; 26. return trafo;

  Setelah diketahui nilai matriks transformasi berdasarkan percobaan pada sampel, dapat dilakukan morph dengan satu gambar masukan saja. Nilai matriks transformasi ini selanjutnya dapat digunakan untuk menghasilkan efek penuaan pada gambar wajah lain dengan memiliki bentuk wajah yang sama, karena nilai matriks transformasi yang dihasilkan antara satu bentuk wajah dengan bentuk wajah lainnya memiliki perbedaan yang signifikan. Dalam aplikasi ini dilakukan pengelompokan matriks transformasi berdasarkan dua bentuk wajah yaitu oval dan square.

  Hasil invers matriks Affine yang telah didapat dari sampel disimpan dalam sebuah text file, kemudian digunakan untuk menentukan mesh point pada gambar akhir. Mesh point akhir (u,v) didapatkan menggunakan Persamaan 8 dan 9 yang dituliskan dalam Kode Program 1 pada baris 10

  1. public static Transform getTrafo(Triangle origin_,

  2. Triangle result) { 3. int x1 = origin_.getPoints()[0].x, 4. x2 = origin_.getPoints()[1].x, 5. x3 = origin_.getPoints()[2].x, 6. y1 = origin_.getPoints()[0].y, 7. y2 = origin_.getPoints()[1].y, 8. y3 = origin_.getPoints()[2].y, 9. u1 = result.getPoints()[0].x, 10. u2 = result.getPoints()[1].x, 11. u3 = result.getPoints()[2].x, 12. v1 = result.getPoints()[0].y, 13. v2 = result.getPoints()[1].y, 14. v3 = result.getPoints()[2].y;

  15. Transform trafo = new Transform(); 16. double t, u, d; 17. d = (double) u1 - u3; 18. t = ((double) u1 - u2) / d; 19. u = ((double) v1 - v2) - ((double) v1 - v3) * t; 20. trafo.a_21 = (((double) x1 - x2) – ((double) x1- x3) * t) / u; 21. trafo.a_22 = (((double) y1 - y2)

  }

  • – 12 untuk nilai u, dan baris 13 – 15 untuk nilai v. Kode Program 2 adalah kode fungsi untuk mendapatkan mesh point gambar akhir.

  Kode Program 2 Fungsi untuk Mendapatkan Mesh Point Gambar Akhir.

  Setelah mesh point wajah awal dan akhir diketahui, dilakukan proses

  

warping dan morphing. Pada proses morphing dilakukan perulangan sebanyak

morph steps yang dikehendaki sehingga menghasilkan sejumlah gambar yang

  menunjukkan proses penuaan dari gambar awal ke gambar akhir, yang ditunjukkan pada Kode Program 3 baris 3

  • – 7 . Proses morphing diawali dengan membentuk triangulasi mesh pada gambar kemudian dilakukan deformasi gambar dari triangulasi awal ke triangulasi akhir yang dilakukan dengan fungsi triangle pada kode baris ke-12. Kode Program 3 merupakan kode fungsi morph untuk melakukan proses morphing.

  Kode Program 3 Fungsi Morphing 1. destPoint = new Vector<Point>();

  2. FileInputStream in = new FileInputStream(face_shape);

  3. BufferedReader read = new BufferedReader(new

  4. InputStreamReader(in));

  5. String line = ""; 6. int n = 0; 7. while (null != (line = read.readLine())) {

  8. String[] arr = new String[9]; 9. arr = (line.split(" ")); 10. double xcor = (Double.parseDouble(arr[0]) * left.get(n).x) 11. + (Double.parseDouble(arr[1]) * left.get(n).y) 12. + Double.parseDouble(arr[2]); 13. double ycor = (Double.parseDouble(arr[3]) * left.get(n).x) 14. + (Double.parseDouble(arr[4]) * left.get(n).y) 15. + Double.parseDouble(arr[5]);

  16. Point p = new Point(); 17. p.x = (int) Math.round(xcor); 18. p.y = (int) Math.round(ycor); 19. destPoint.add(p); 20. n++; 21. } 22. read.close(); 23. } 24. . 25. . 26. return destPoint; 1. public static void morph() { 2. try { 3. for (int i = 0; (i <= Config.MORPH_STEPS); ++i) { 4. for (int x = 0; x < Config.result_image.getWidth(); ++x) { 5. for (int y = 0; y < Config.result_image.getHeight(); ++y) {

  6. Config.result_image.setPixel(x, y, 0x0); 7. } 8. } 9. ratio = ((double) i / Config.MORPH_STEPS); 10. genResultTriangles(); 11. for (t_idx = 0; t_idx < Config.result_triangles.size(); ++t_idx) { 12. triangle(); 13. }

  14. File f = new File("/sdcard/temp_outputWM" + (i) + ".jpg");

  15. FileOutputStream outStream; 16. outStream = new FileOutputStream(f);

  

17. Config.result_image.compress(Bitmap.CompressFormat.JPEG, 100, outStream);

18. outStream.flush(); 19. outStream.close(); 20. } 21. } catch (IOException e) { 22. e.printStackTrace(); 23. } 24. }

  Pada fungsi genResultTriangles dalam fungsi morph dilakukan mesh

  

merging yaitu menghitung weighted average untuk setiap titik segitiga pada frame

  ke-i dari i=0 sampai i=morph_steps supaya triangle mesh gambar ke-i dan gambar ke-i+1 memiliki nilai matriks transformasi yang konstan. Gambaran transformasi bentuk triangulasi awal dan akhir berdasarkan hasil morphing dapat dilihat pada gambar 11 dan Gambar 12.

  

Gambar 11 Triangulasi Awal Gambar 12 Triangulasi Akhir

  Dari transformasi Gambar 11 ke 12 terlihat bahwa segitiga yang mengalami perubahan ada pada bagian tertentu yaitu alis, mata, bibir, dan dagu, sedangkan bagian hidung tidak mengalami perubahan. Perbedaan setiap bagian wajah dari gambar input dengan gambar output dapat dilihat pada Gambar 13.

  

Gambar 13 Perbedaan Bagian Wajah Gambar Input dan Output

Gambar 14 Hasil Gambar Proses Penuaan Gambar 15 merupakan tampilan awal program yang menyajikan menu bentuk wajah yang dapat diproses oleh aplikasi, yaitu oval face maupun square

  

face. Gambar 16 merupakan tampilan menu ambil gambar dari file yang ada

  dalam perangkat. Setelah gambar dipilih, dilakukan deteksi bagian-bagian wajah yang ada, kemudian ditampilkan hasilnya dengan titik-titik biru pada gambar. Jika deteksi menyatakan tidak terdapat wajah didalam gambar, maka muncul peringatan untuk memasukkan gambar wajah yang benar.

  Gambar 15 Tampilan Menu Utama Gambar 16 Tampilan Menu Ambil Gambar

  Gambar 17 merupakan tampilan gambar hasil yang telah melalui proses penuaan. Hasil berjumlah 3 gambar yang merupakan proses perubahan dari gambar awal sampai ke gambar akhir. Ketika tombol

  ‘back’ atau ‘kembali’ ditekan, akan muncul dialog konfirmasi penyimpanan gambar ke perangkat seperti terlihat pada Gambar 18.

  Gambar 17 Tampilan Gambar Hasil Gambar 18 Tampilan Dialog Konfirmasi Simpan Gambar

  Pengujian aplikasi dilakukan dengan menguji fungsi-fungsi dari aplikasi yang telah dibuat untuk mengetahui bahwa sistem telah berjalan sesuai dengan yang diharapkan dan dapat memenuhi kebutuhan pengguna. Pengujian aplikasi ini melalui dua tahap yaitu pengujian fungsional program dan pengujian hasil gambar penuaan yang telah diproses pada program.

  Pengujian fungsional program dilakukan menggunakan metode black box

  

testing, yaitu pengujian fungsi-fungsi aplikasi secara langsung tanpa

  memperhatikan alur eksekusi program. Hasil black box testing untuk semua fungsi berstatus valid, maka dapat disimpulkan bahwa aplikasi telah berfungsi dengan baik sesuai dengan yang diharapkan.

  Pengujian selanjutnya yaitu menguji akurasi titik-titik wajah hasil gambar penuaan yang telah diproses pada program dengan gambar asli. Pengujian ini dilakukan dengan terlebih dahulu mendeteksi titik-titik bagian wajah yang berjumlah 66 titik pada masing-masing gambar dengan menggunakan teknologi

  

facial feature detection dari Luxand FaceSDK, kemudian dilakukan penghitungan

  jarak setiap titik hasil deteksi pada gambar output aplikasi dengan titik hasil deteksi pada gambar asli yang telah mengalami penuaan. Perhitungan jarak titik dilakukan dengan satuan piksel. Pengujian dilakukan terhadap tiga kategori gambar yaitu: (1) gambar hasil usia 30 tahun dari gambar masukan usia 20 tahun; (2) gambar hasil usia 40 tahun dari gambar masukan usia 30 tahun; (3) gambar hasil usia 40 tahun dari gambar masukan usia 20 tahun. Hasil perhitungan jarak untuk titik-titik pada mata ditunjukkan pada Gambar 19. 4 5 1 2

  3

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

Gambar 19 Diagram Jarak Titik Bagian Mata untuk Kategori Gambar 1 (Biru),

  

Kategori 2 (Merah), Kategori 3 (Kuning)

  Gambar 20 menunjukkan hasil perhitungan jarak titik-titik pada bagian alis untuk ketiga kategori gambar. Hasil jarak titik untuk bagian hidung ditunjukkan pada Gambar 21. 4 5 5 4 1 2

  3 1 2 3 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10 11 12 Gambar 20 Diagram Jarak Titik Bagian Gambar 21 Diagram Jarak Titik Bagian

  Alis Hidung Gambar 22 adalah diagram jarak titik-titik pada bagian bibir, sedangkan Gambar 23 menunjukkan jarak setiap titik pada bagian dagu. 5 6 5 6 2 3

  4 1 1 3 4 2 1 2 3 4 5 6 7 8 9 10 11 12 13 14

  1 2 3 4 5 6 7 Gambar 22 Diagram Jarak Titik Gambar 23 Diagram Jarak Titik

Bagian Bibir Bagian Dagu

  Tingkat akurasi yang baik ditunjukkan dengan semakin kecilnya nilai jarak titik yang diperoleh. Jarak titik-titik pada bagian hidung memiliki rata-rata terkecil yaitu 2,2 piksel, sehingga dapat dikatakan bahwa akurasi paling baik ada pada bagian hidung. Rata-rata jarak untuk bagian mata adalah 2,3 piksel, bagian bibir 2,3 piksel, bagian alis 2,7 piksel, dan bagian dagu 3,2 piksel. Penuaan yang terjadi berjarak 10 tahun dari gambar masukan memiliki jarak titik terkecil 0 piksel dan jarak maksimal 4,4 piksel, sedangkan untuk penuaan berjarak 20 tahun memiliki jarak titik terkecil 1 piksel dan jarak maksimal 5,3 piksel. Berdasarkan hasil pengujian dapat diketahui bahwa perubahan yang dihasilkan oleh algoritma

  

warp dan morph telah menghasilkan efek penuaan dengan tingkat kemiripan yang

baik untuk titik-titik bagian wajah yang diuji.

5. Simpulan

  Berdasarkan hasil penelitian yang telah dilakukan dapat disimpulkan bahwa pembuatan aplikasi prediksi penuaan wajah manusia menggunakan algoritma

  

warp dan morph dapat dilakukan dengan melakukan transformasi segitiga hasil

Dokumen yang terkait

Institutional Repository | Satya Wacana Christian University: Upaya Meningkatkan Kemampuan Mengenal Konsep Bilangan dan Lambang Bilangan dengan Media Playdough pada Kelompok A TK Pelangi Nusantara Ambarawa

0 0 15

I. KEGIATAN SEBELUM MASUK KELAS [± 2O menit]  Salam berbaris dan berdoa sebelum kegiatan bermain  Menyanyi  Berjalan membawa beban Anak Anakdan guru Balok Observasi Unjuk kerja  Mengenal konsep bilangan  Menggunakanlambangbilanganuntukmenghitung  Me

0 0 18

Institutional Repository | Satya Wacana Christian University: Model Pendukung Sistem Informasi Akademik berbasis Android (Studi Kasus: Universitas Kristen Satya Wacana)

1 1 22

BAB II KAJIAN PUSTAKA 1.1 Kajian Teori 2.1.1 Perilaku Sopan Santun Anak Usia Dini a. Pengertian perilaku sopan santun - Institutional Repository | Satya Wacana Christian University: Peningkatan Perilaku Sopan Santun Melalui Metode Bercerita pada Anak Usia

0 2 8

BAB III METODE PENELITIAN 3.1 Jenis Penelitian - Institutional Repository | Satya Wacana Christian University: Peningkatan Perilaku Sopan Santun Melalui Metode Bercerita pada Anak Usia 5-6 Tahun di Kampung Krajan RT. 07 & 10/ RW. 05 Kelurahan Salatiga

0 0 9

BAB IV HASIL PELITIAN DAN PEMBAHASAN 4.1 Gambaran Umum Subyek Penelitian - Institutional Repository | Satya Wacana Christian University: Peningkatan Perilaku Sopan Santun Melalui Metode Bercerita pada Anak Usia 5-6 Tahun di Kampung Krajan RT. 07 & 10/ RW.

0 0 28

Institutional Repository | Satya Wacana Christian University: Peningkatan Perilaku Sopan Santun Melalui Metode Bercerita pada Anak Usia 5-6 Tahun di Kampung Krajan RT. 07 & 10/ RW. 05 Kelurahan Salatiga

0 0 70

BAB II KAJIAN PUSTAKA A. Pendidikan Anak Usia Dini 1. Pengertian Anak Usia dini - Institutional Repository | Satya Wacana Christian University: Peran Ibu dan Pembantu Rumah Tangga sebagai Pengasuh Utama dalam Kegiatan Bermain Anak di Lingkungan Perumahan

0 1 7

BAB IV HASIL PENELITIAN DAN PEMBAHASAN A. Jalannya Penelitian 1. Tahap Persiapan - Institutional Repository | Satya Wacana Christian University: Peran Ibu dan Pembantu Rumah Tangga sebagai Pengasuh Utama dalam Kegiatan Bermain Anak di Lingkungan Perumahan

0 0 12

Institutional Repository | Satya Wacana Christian University: Peran Ibu dan Pembantu Rumah Tangga sebagai Pengasuh Utama dalam Kegiatan Bermain Anak di Lingkungan Perumahan Purnamandala Wonosobo

0 3 48