berbasis android artikel ilmiah -...

24
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

Upload: ngokhuong

Post on 10-May-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

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

Page 2: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment
Page 3: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment
Page 4: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment
Page 5: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment
Page 6: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

1

Perancangan Aplikasi Perkiraan Wajah Manusia di Masa

Depan Menggunakan Algoritma Warp dan Morph

Berbasis Android

1) Martha Sadari Nugraheni,

2) Alz Danny Wowor,

3) Yos Richard Beeh

Fakultas Teknologi Informasi

Universitas Kristen Satya Wacana

Jl. Diponegoro 52-60, Salatiga 50711, Indonesia

Email: 1)

[email protected], 2)

[email protected],

3)[email protected]

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.

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

1)

Mahasiswa Fakultas Teknologi Informasi Jurusan Teknik Informatika, Universitas Kristen Satya

Wacana, Salatiga. 2)

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

Staff Pengajar Fakultas Teknologi Informasi, Universitas Kristen Satya Wacana, Salatiga

Page 7: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

2

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 menarik [1]. Hal 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. [2]. 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. [3], 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

Nguyen [4] memerlukan 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

Page 8: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

3

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

Android [5]. Mobile 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) [6]. 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 [7].

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 [4], 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. [8], 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),

Curvature-Weighted (CW) + Bending-Energy (BE) Distance dan Learning-based

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

Page 9: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

4

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 [2], 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. [8] membuat model penuaan wajah

Page 10: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

5

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 kulit [4]. Pada 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. [10]

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

Page 11: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

6

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

ke posisi ( ) di gambar lainnya [11].

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 v1, v2, dan v3. 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) [11]

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.

Mesh morph atau sering disebut triangle based morphing adalah teknik

morphing yang menggunakan features yang membentuk kurva tertutup berbentuk

segitiga, dimana segitiga awal berpasangan dengan segitiga tujuan [3]. 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 – k (2)

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]

Page 12: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

7

Proses transformasi segitiga pada warp dan morph dilakukan dengan

transformasi Affine menggunakan matriks berukuran 3 x 3. Segitiga awal yang

berisi titik-titik sudut (x0,y0), (x1,y1), (x2,y2) didefinisikan dalam matriks X,

sedangkan segitiga akhir (u0,v0), (u1,v1), (u2,v2) didefinisikan dalam matriks U.

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 un dan vn dari setiap mesh point pada

gambar akhir, yaitu dengan persamaan berikut

un = xn . A-1

11 + yn . A-1

21 + A-1

31 (8)

vn = xn . A-1

12 + yn . A-1

22 + A-1

32 (9)

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 luas [12]. Langkah-langkah dari metode ini dapat dilihat

pada Gambar 4.

Gambar 4 Langkah-langkah Penelitian dalam Metode R&D [12]

Page 13: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

8

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

Page 14: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

9

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.

Page 15: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

10

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

clipping gambar untuk menentukan piksel gambar yang sesuai antara gambar awal

dan akhir berdasarkan dimensi gambar. Class Config berfungsi sebagai

penampung beberapa variabel yang berperan penting dalam proses penuaan

wajah.

Page 16: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

11

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

Flowchart pada Gambar 9 menjelaskan proses mengubah gambar input

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

Page 17: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

12

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

Page 18: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

13

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

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 – 12 untuk nilai u, dan baris 13 –

15 untuk nilai v. Kode Program 2 adalah kode fungsi untuk mendapatkan mesh

point gambar akhir.

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) – ((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;

}

Page 19: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

14

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. }

Page 20: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

15

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

Page 21: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

16

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

Page 22: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

17

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.

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.

Gambar 20 Diagram Jarak Titik Bagian

Alis

Gambar 21 Diagram Jarak Titik Bagian

Hidung

0

1

2

3

4

5

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

0

1

2

3

4

5

1 2 3 4 5 6 7 8 9 100

1

2

3

4

5

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

Page 23: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

18

Gambar 22 adalah diagram jarak titik-titik pada bagian bibir, sedangkan Gambar

23 menunjukkan jarak setiap titik pada bagian dagu.

Gambar 22 Diagram Jarak Titik

Bagian Bibir

Gambar 23 Diagram Jarak Titik

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

triangulasi menggunakan matriks transformasi yang telah ditentukan. Triangulasi

dibentuk menggunakan mesh bagian-bagian wajah yang dideteksi otomatis

menggunakan FaceSDK. Penentuan matriks transformasi dapat dilakukan dengan

percobaan modifikasi mesh akhir agar gambar hasil menjadi semirip mungkin

dengan gambar penuaan yang sebenarnya. Setelah diketahui mesh awal gambar

masukan dan matriks transformasinya, barulah ditentukan mesh akhir melalui

rumus yang ada untuk melakukan proses morphing. Dalam penelitian ini

ditemukan bahwa matriks transformasi satu bentuk wajah dengan yang lainnya

memiliki perbedaan yang signifikan, maka dalam penggunaannya perlu dilakukan

pengelompokan berdasarkan kriteria tertentu baik menurut bentuk maupun ukuran

bagian-bagian wajah. Algoritma yang dipakai tidak dapat memunculkan

komponen baru seperti kerutan dan rambut, sehingga tingkat kemiripan dengan

wajah asli hanya sebatas bentuk dan posisi bagian-bagian wajah yang ada.

Pengembangan penelitian ini di kemudian hari dapat dilakukan dengan

menentukan banyak variasi matriks transformasi yang dipakai, tidak hanya

0

1

2

3

4

5

6

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

0

1

2

3

4

5

6

1 2 3 4 5 6 7

Page 24: Berbasis Android Artikel Ilmiah - repository.uksw.edurepository.uksw.edu/bitstream/123456789/15262/2/T1_672011198_Full... · determination of affine matrix value done through experiment

19

sebatas bentuk wajah saja namun juga berdasarkan bentuk mata, alis, hidung, dan

bagian wajah lain. Selain itu dapat dilakukan pengembangan pada algoritma warp

dan morph baik dengan mengembangkan rumus yang telah ada maupun

mengkombinasikannya dengan algoritma tertentu supaya dapat menambahkan

efek kerutan dan perubahan warna pada rambut-rambut dan kulit wajah.

6. Daftar Pustaka

[1] The Renfew Center. 2014. Afraid To Be Your Selfie? Survey Reveals Most

People Photoshop Their Images. http://renfrewcenter.com/news/afraid-be-

your-selfie-survey-reveals-most-people-photoshop-their-images. Diakses

tanggal 5 April 2015.

[2] Bando, Yosuke, Takaaki Kuratate, Tomoyuki Nishita. 2002. A Simple

Method for Modeling Wrinkles on Human Skin.

web.media.mit.edu/~bandy/wrinkle/PG02wrinkle.pdf. Diakses tanggal 11

April 2015.

[3] Gunadi, Kartika, Resmana Lim, Stephan Yos. 2004. Morphing Citra dengan

Berbagai Teknik Morphing. Proceedings Komputer dan Sistem Intelijen

(KOMMIT2004): 160-167

[4] Nguyen, R. 2009. Age Progression using Image Morphing.

http://fcl.uncc.edu/nhnguye1/AgeProgression.pdf. Diakses tanggal 5 April

2015.

[5] Refsnes Data. 2015. Mobile Devices Statistics.

http://www.w3schools.com/browsers/browsers_mobile.asp. Diakses tanggal

5 April 2015.

[6] Gartner, Inc. 2015. Gartner Says Tablet Sales Continue to Be Slow in 2015.

http://www.gartner.com/newsroom/id/2954317. Diakses 1 Mei 2015.

[7] Google. 2015. Google Play Top Free Apps.

https://play.google.com/store/apps/collection/topselling_free?hl=en.

Diakses tanggal 6 April 2015.

[8] Shen, C. Ta, Fay Huang, Wan-Hua Lu, et al. 2012. 3-D Age Progression

Prediction in Children’s Faces with a Small Exemplar-Image Set. Journal of

Information Science and Engineering.

[9] Suo, Jinli, Feng Min, Songchun Zhu, et al. 2007. A Multi-resolution

Dynamic Model for Face Aging Simulation. Proceedings of the IEEE

Computer Society Conference on Computer Vision and Pattern Recognition.

[10] Sutoyo, T., Edy Mulyanto, Vincent Suhartono, Oky D. Nurhayati, et al.

2009. Teori Pengolahan Citra Digital. Yogyakarta: Penerbit Andi.

[11] Anton, Howard, dan Chris Rorres. 2005. Aljabar Linear Elementer

Versi Aplikasi. Jakarta: Penerbit Erlangga.

[12] Sugiyono. 2006. Metode Penelitian Kuantitatif, Kualitatif dan R&D.

Bandung: Penerbit Alfabeta.

[13] Chen, Long and Jin-chao Xu. 2004. Optimal Delaunay Triangulations.

Journal of Computational Mathematics, Vol.22, No.2, hal 299-308.