Implementasi Augmented Reality Dengan Metode Face Detection Sebagai Media Promosi Helm Di Toko Zona Helm

(1)

IMPLEMENTASI

AUGMENTED REALITY

DENGAN METODE

FACE DETECTION

SEBAGAI MEDIA PROMOSI HELM DI

TOKO ZONA HELM

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

ROBIN LIESON

10111029

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

UNIVERSITAS KOMPUTER INDONESIA

2016


(2)

iii

4.

KATA PENGANTAR

Puji dan syukur penulis panjatkan kehadirat Tuhan Yang Maha Esa atas rahmat dan karunia- Nya sehingga penulis dapat menyelesaikan penelitian skripsi yang berjudul “Implementasi Augmented Reality dengan Metode Face Detection

sebagai Media Promosi Helm di Toko Zona Helm”.

Penyusunan skripsi ini tidak akan terwujud tanpa mendapat dukungan, bantuan dan masukan dari berbagai pihak. Untuk itu, penulis ingin menyampaikan terimakasih yang sebesar-besarnya kepada:

1. Kedua orangtua dan keluarga besar penulis yang senantiasa membantu dalam doa dan dukungan baik moral maupun spiritual.

2. Bapak Dr. Ir. Eddy Soeryanto Soegoto, M.Sc, selaku Rektor Universitas Komputer Indonesia (UNIKOM).

3. Bapak Irawan Aprianto, S.T., M.T. selaku ketua jurusan Teknik Informatika UNIKOM.

4. Bapak Irfan Maliki, S.T., M.T. selaku pembimbing, serta Bapak Iskandar Ikbal, S.T.,M.Kom. dan Bapak Rangga Gelar Guntara, S.Kom., M.Kom. selaku dosen penguji sidang, yang telah memberikan bimbingan serta dorongan dan arahan dengan penuh kearifan, kekeluargaan serta memberikan masukan selama proses penyusunan skripsi ini.

5. Ibu Tati Harihayati M, S.T., M.T. selaku dosen wali kelas IF2 yang telah membimbing rekan – rekan mahasiswa IF2 selama menimba ilmu di Teknik Informatika UNIKOM.

6. Jajaran Staff Dosen dan Sekretariat jurusan Teknik Informatika yang telah memberikan ilmu yang bermanfaat sehingga kegiatan perkuliahan dapat berjalan dengan baik.

7. Ka Ferry Natalius beserta keluarga selaku pemilik toko Zona Helm yang telah memberikan izin kepada penulis untuk melakukan penelitian di tokonya. 8. Rivan, Ratih, Sulastri, Prima, Dio dan teman – teman seperjuangan kelas IF2

angkatan 2011 yang sedang menyusun skripsi, yang senantiasa saling mendukung dan membantu dalam melaksanakan skripsi ini.


(3)

iv

10. Amin, Zaeni, Rizky Bagja, Fathur, dan Wulan yang juga ikut meluangkan waktu untuk membantu dalam penyusunan skripsi ini.

11. Rekan – rekan IF2 dan rekan- rekan yang sedang menyusun skripsi yang membantu selama proses seminar.

Akhir kata, penulis berharap skripsi ini dapat bermanfaat bagi para pembaca dan berguna bagi yang membutuhkannya.

Bandung, Januari 2016


(4)

v

4.

DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ... x

DAFTAR TABEL ... xiii

DAFTAR SIMBOL ... xv

DAFTAR LAMPIRAN ... xviii

BAB 1 PENDAHULUAN ... 1

1.1. Latar Belakang ... 1

1.2. Perumusan Masalah ... 2

1.3. Maksud dan Tujuan... 2

1.3.1. Maksud ... 3

1.3.2. Tujuan ... 3

1.4. Batasan Masalah ... 3

1.5. Metodologi Penelitian ... 4

1.5.1. Metode Pengumpulan Data ... 4

1.5.2. Metode Pembangunan Perangkat Lunak ... 5

1.6. Sistematika Penulisan ... 6

BAB 2 TINJAUAN PUSTAKA ... 9

2.1. Profil Perusahaan ... 9

2.2. Landasan Teori... 9

2.2.1. Augmented Reality ... 9

2.2.2. Deteksi Wajah (Face Detection) ... 12

Training data pada Haar ... 13

Sistem Kerja Algoritma Haar Cascade Classifier... 13

Haar Feature ... 14

Integral Image ... 14


(5)

vi

Sejarah DirectX ... 20

Arsitektur Direct3D ... 21

2.2.6. EmguCV ... 22

2.2.7. Pengujian Blackbox ... 23

2.2.8. UML (Unified Modeling Language) ... 24

Use CaseDiagram ... 24

Sequence Diagram ... 25

Activity Diagram ... 26

Class Diagram ... 27

Deployment Diagram ... 29

2.2.9. Microsoft Visual Studio ... 30

2.2.10. Blender 3D ... 31

BAB 3 ANALISIS DAN PERANCANGAN ... 33

3.1. Analisis Masalah ... 33

3.2. Deskripsi Aplikasi yang Akan Dibangun ... 33

3.3. Analisis Kebutuhan Data ... 34

3.4. Tahap Pembangunan Aplikasi ... 34

3.4.1. Tahapan Kamera ... 35

Capture Frame ... 36

Convert Grayscale ... 36

3.4.2. Tahapan Deteksi... 37

Load File Training Haar Cascade ... 38

Pencarian Fitur Wajah... 40

Pemberian Kotak Wajah Terdeteksi ... 44

Estimasi Lokasi dan Posisi Wajah ... 45

3.4.3. Tahap Augmented ... 45


(6)

vii

3.6.1. Analisis Kebutuhan Perangkat Keras ... 49

3.6.2. Analisis Kebutuhan Perangkat Lunak ... 49

3.6.3. Analisis Kebutuhan Pengguna ... 50

3.7. Analisis Kebutuhan Fungsional ... 50

3.7.1. Use Case Diagram ... 50

3.7.2. Definisi Aktor ... 51

3.7.3. Definisi Use Case ... 51

3.7.4. Skenario Use Case ... 52

Skenario Use Case Menambah Foto Helm ... 52

Skenario Use Case Menghapus Foto Helm ... 53

Skenario Use Case Login Admin ... 53

Skenario Use Case Melihat Foto Helm ... 54

Skenario Use Case Menampilkan Model 3D Helm ... 54

Skenario Use Case Menampilkan AR Model Helm ... 55

Skenario Use Case Deteksi Wajah ... 55

3.7.5. Activity Diagram ... 56

Activity Diagram Menambah Foto Helm ... 56

Activity Diagram Menghapus Foto Helm ... 57

Activity Diagram Login Admin ... 58

Activity Diagram Melihat Foto Helm ... 59

Activity Diagram Menampilkan Model Helm 3D ... 60

Activity Diagram Menampilkan AR Helm ... 61

Activity Diagram Deteksi Wajah ... 62

3.7.6. Class Diagram ... 62

3.7.7. Sequence Diagram ... 64

Sequence Diagram Menambah Foto Helm ... 64


(7)

viii

Sequence Diagram Deteksi Wajah ... 67

3.8. Perancangan Sistem ... 68

3.8.1. Perancangan Struktur Menu ... 68

3.8.2. Perancangan Antarmuka ... 68

Perancangan Antarmuka Menu Utama ... 69

Perancangan Antarmuka Login Admin ... 69

Perancangan Antarmuka Halaman Utama Admin ... 70

Perancangan Antarmuka Lihat Helm ... 70

Perancangan Antarmuka Tambah Helm ... 71

Perancangan Antarmuka Hapus Helm ... 72

Perancangan Antarmuka Menu Helm 3D ... 72

Perancangan Antarmuka Tampilan Menu AR ... 73

3.8.3. Perancangan Pesan ... 73

3.8.4. Jaringan Semantik ... 74

3.8.5. Perancangan Method ... 74

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 81

4.1. Implementasi ... 81

4.1.1. Implementasi Perangkat Pengguna ... 81

4.1.2. Implementasi Antarmuka ... 82

Implementasi Antarmuka Tampilan Main Menu ... 82

Implementasi Antarmuka Tampilan Login Admin ... 83

Implementasi Antarmuka Tampilan Menu Admin ... 83

Implementasi Antarmuka Tampilan Lihat Helm ... 84

Implementasi Antarmuka Tampilan Tambah Helm ... 84

Implementasi Antarmuka Tampilan Hapus Helm ... 85

Implementasi Antarmuka Tampilan Helm 3D ... 85


(8)

ix

Pengujian Performansi ... 91

Pengujian Jarak Deteksi Wajah ... 91

Pengujian Jarak Marker Wajah terhadap Objek 3D ... 92

Pengujian Sudut Wajah ... 92

Pengujian Kondisi Cahaya ... 93

Kesimpulan Pengujian Alpha ... 93

4.2.2. Pengujian Beta ... 94

Wawancara Pemilik Toko ... 94

Kuesioner ... 95

Pengujian terhadap Pengguna ... 101

Kesimpulan Pengujian Beta ... 102

BAB 5 KESIMPULAN DAN SARAN ... 103

5.1. Kesimpulan ... 103

5.2. Saran ... 103


(9)

104

DAFTAR PUSTAKA

[1] A. I. S. Indonesia, "Motorcycle Production Wholesales Domestic and Exports," Asosisasi Ikatan SepedaMotor Indonesia, [Online]. Available: http://www.aisi.or.id/statistic/. [Accessed 20 September 2015].

[2] R. S. Pressman and I. Sommerville, Software Engineering A Practitioner's Approach 7th Edition, New York: McGraw-Hill, 2010.

[3] R. T. Azuma, "A Survey of Augmented Reality," Presence: Teleoperators and Virtual Environments., vol. 6, p. 4, Aug 1997.

[4] M. Paul, H. Takemura, A. Utsumi and F.Kishino, "Augmented Reality: A class of displays on the reality-virtuality continuum," Proceeding of Telemanipulator and Telepresence Technologies., pp. 2351-34, 1994. [5] G. Kipper, Augmented Reality : An emerging Technologies Guide to AR,

USA: Elsevier.Inc..

[6] L. Madden, Professional Augmented Reality Browsers for Smartphones: Programming for junaio, Layar, and Wikitude, United Kingdom: Wiley Publishing,Inc, 2011.

[7] H. M. Yang, D. Kriegman and N. Ahuja, "Detecting Faces in Images:," IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 24, p. 1, 2002. [8] P. Viola and M. Jones, "Robust Real-Time Face Detection," International

Journal of Computer Vision, vol. 57(2), pp. 137-154, 2004.

[9] R. Munir, Pengolahan Citra Digital dengan Pendekatan Algoritmik, Informatika Bandung, 2004..

[10] A. Rosenfeld and A. C. Kak, Digital Picture Processing, Academic Press, 1982.

[11] R. Hartley and A. Zisserman, Multiple View Geometry in Computer Vision, Cambridge University Press,, 2003.


(10)

[13] D. R. Adityo, Kalibrasi Parameter Kamera Dengan Proyeksi Patern Menggunakan Projector Pada Proses Rekontruksi 3D Berbasis Structured Light, 2012..

[14] Z. P. Juhara, Pemrograman Game 3D dengan DirectX, Andi Offset, 2011. [15] M. F. Azis, Object Oriented Programing dengan PHP 5, Jakarta: PT Elex

Media Komputindo, 2005.

[16] P. Budi, Dasar-dasar Pemrograman Visual Studio, 2012.

[17] A. Brito, Blender 3D: Architecture, Buildings, and Scenery: Create photorealistic 3D architectural visualizations of buildings, interiors, and environmental scenery, Packt Publishing Ltd,, 2008.


(11)

1 1.

BAB 1

PENDAHULUAN

1.1. Latar Belakang

Salah satu fenomena yang terjadi di Indonesia adalah semakin banyaknya pembelian kendaraan bermotor, salah satunya adalah sepeda motor. Menurut data statistik Asosiasi Industri SepedaMotor Indonesia (AISI), penjualan sepeda motor di Indonesia dari tahun 2010 selalu lebih dari 7 juta unit pertahun [1]. Fenomena ini dimanfaatkan oleh beberapa wirausahawan untuk berbisnis di bidang aksesoris sepeda motor terutama aksesoris berupa helm. Helm adalah komponen yang sangat penting dalam berkendara karena helm melindungi bagian paling penting dari tubuh manusia, yaitu kepala. Helm yang baik adalah helm yang berstandar SNI, dimana helm memiliki body yang kuat sehingga saat terjadi benturan helm tidak pecah. Dalam perkembangannya, helm bukan hanya sebagai pelindung kepala namun dapat menjadi gaya (style) bagi penggunanya.

Toko Zona Helm merupakan salah satu toko penjualan helm yang menjual berbagai macam merek dan model helm. Toko Zona Helm yang berlokasi di daerah Katapang (Kabupaten Bandung) ini dalam hal pemasaran helmnya masih menggunakan media poster, gambar maupun pembicaraan verbal dalam mempromosikan produk helm. Hal ini berdasarkan wawancara dengan pemilik toko dinilai kurang efektif untuk mempromosikan helm yang ingin dijual, serta minat konsumen terhadap toko Zona Helm masih sangat kurang. Konsumen yang datang ke toko tersebut juga kesulitan dalam menentukan model helm yang disukai dan hanya dapat melihat model helm yang dipajang saja, serta kesulitan dalam mencocokan satu persatu model helm yang ingin dicoba. Toko Zona Helm juga dalam hal penjualan helmnya dapat melakukan pemesanan warna sesuai dengan selera konsumen, karena toko ini bekerjasama dengan beberapa distributor helm. Hal ini membuat pemilik toko Zona Helm menginginkan suatu teknologi yang dapat mempromosikan model-model helm yang dijual, sekaligus membantu konsumen dalam memilih corak dan warna yang ingin dipesan. Promosi yang ingin dilakukan oleh pemilik toko Zona Helm terlebih dahulu ditempatkan di toko


(12)

tersebut agar dapat menarik konsumen yang datang ke toko tersebut, sehingga pemilik toko hanya ingin menggunakan teknologi tersebut di tokonya.

Seiring dengan perkembangan teknologi, media promosi produk yang sedang dikembangkan untuk mengenalkan produk kepada konsumen adalah kaca virtual (virtual mirror) berbasis Augmented Reality yang membuat gambar produk pada poster/brosur tampak secara visual (3 dimensi) pada wajah, badan, bahkan kaki konsumen. Augmented Reality adalah sebuah istilah untuk lingkungan yang menggabungkan dunia nyata dan dunia virtual yang dibuat melalui komputer sehingga batas antara keduanya menjadi tipis. Dengan teknologi Augmented Reality

ini, pemilihan model produk yang awalnya nampak sulit dan tidak sesuai dengan selera menjadi suatu peluang baru untuk mempermudah konsumen dalam menyesuaikan model produk dan mempermudah penjual dalam mempromosikan suatu produk di tempat usaha miliknya. Beberapa implementasi kaca virtual ini dapat kita temui di pemasaran kacamata, baju maupun sepatu.

Berdasarkan permasalahan yang ada, maka dibutuhkan sebuah media promosi untuk toko Zona Helm dalam melakukan promosi helm sekaligus tokonya. Pemanfaatan promosi dengan kaca virtual berbasis Augmented Reality ini dapat menjadi salah satu solusi untuk mempromosikan helm di toko Zona Helm maupun membantu konsumen dalam memilih model helm di toko Zona Helm.

1.2. Perumusan Masalah

Perumusan masalah yang dapat diambil berdasarkan latar belakang yang telah dijelaskan adalah bagaimana menerapakan teknologi Augmented Reality

sebagai media promosi helm di toko Zona Helm untuk membantu mempermudah konsumen dalam memilih model helm dan membantu toko Zona Helm dalam mempromosikan helm serta menarik konsumen dalam membeli helm di toko Zona Helm.

1.3. Maksud dan Tujuan

Maksud dan tujuan implementasi Augmented Reality sebagai media promosi helm di toko Zona Helm adalah sebagai berikut:


(13)

1.3.1. Maksud

Maksud dari penelitian yang dilakukan adalah untuk membangun sebuah aplikasi kaca virtual augmentedreality dengan metode face detection sebagai media promosi helm di Toko Zona Helm.

1.3.2. Tujuan

Tujuan dari implementasi Augmented Reality dengan Face Detection di Toko Zona Helm ini adalah sebagai berikut :

1. Untuk menerapkan teknologi Augmented Reality sebagai media promosi helm di toko Zona Helm.

2. Untuk membantu konsumen dalam memilih model helm yang sesuai dengan selera saat berada di toko Zona Helm.

3. Untuk membantu toko Zona Helm dalam memperkenalkan dan mempromosikan model helm yang dijual di toko tersebut dengan menggunakan teknologi informasi yang dapat menarik minat konsumen ke toko tersebut.

1.4. Batasan Masalah

Batasan masalah dalam pembangunan aplikasi Augmented Reality dengan Face Detection di Toko Zona Helm ini mencakup beberapa hal, yaitu:

1. Augmented Reality pada aplikasi yang dibangun menggunakan prototype

model-model helm.

2. Aplikasi yang dibangun menggunakan wajah/ kepala sebagai marker Augmented Reality untuk memunculkan objek virtual (face detection). 3. Objek virtual yang dimunculkan berupa model-model 3 dimensi helm yang

kurang diminati berupa helm full-face dan motorcross yang akan dipilih konsumen.

4. Ukuran objek virtual 3D akan menyesuaikan dengan ukuran kepala konsumen.

5. Model 3D yang ditampilkan menyesuaikan dengan gerak wajah konsumen. 6. Warna helm dapat dipilih oleh konsumen.


(14)

7. Aplikasi yang dibangun memerlukan spesifikasi perangkat keras yang tinggi dengan kartu grafis berkapasitas besar serta kamera dengan pixel yang tinggi.

8. Aplikasi dibangun berbasis desktop sehingga hanya dapat diakses di toko Zona Helm.

1.5. Metodologi Penelitian

Metode penelitian yang digunakan dalam implementasi Augmented Reality

dengan Face Detection di Toko Zona Helm ini adalah metode deskriptif. Metode deskriptif merupakan metode yang bertujuan untuk mendapatkan gambaran yang jelas tentang hal-hal yang diperlukan secara sistematis, faktual dan akurat. Tahapan yang dilakukan adalah sebagai berikut :

1.5.1. Metode Pengumpulan Data

Metode pengumpulan data dapat diperoleh secara langsung dari objek penelitian. Cara-cara yang mendukung untuk mendapatkan data primer yaitu sebagai berikut :

a. Studi Literatur

Studi literatur adalah metode pengumpulan data yang dilakukan dengan cara mempelajari, meneliti dan menelaah berbagai literatur-literatur dari perpustakaan yang bersumber dari buku-buku, teks, jurnal ilmiah, situs-situs di internet, dan bacaan-bacaan yang ada kaitannya dengan topik penelitian.

b. Studi Lapangan

Studi lapangan adalah metode pengumpulan data yang dilakukan dengan cara mengunjungi tempat yang akan diteliti dan pengumpulan data dilakukan secara langsung. Studi lapangan ini meliputi:

1. Wawancara

Wawancara adalah pengumpulan data yang dilakukan dengan cara mengadakan wawancara terhadap pemilik toko di toko Zona Helm serta mengadakan wawancara terhadap para konsumen pembeli helm di toko Zona Helm.


(15)

2. Observasi

Observasi adalah metode pengumpulan data yang dilakukan dengan mengamati secara langsung penjualan helm yang dilakukan serta mengamati objek-objek helm yang sering dibeli sebagai referensi objek 3D yang akan dibuat pada aplikasi.

1.5.2. Metode Pembangunan Perangkat Lunak

Metode pembangunan perangkat lunak yang dibangun ini menggunakan metode waterfall [2]. Tahap – tahap pengembangan perangkat lunak metode

waterfall dapat dilihat pada gambar 1.1 adalah sebagai berikut :

1. Tahap analisis kebutuhan perangkat lunak dilakukan dengan menganalisis kebutuhan-kebutuhan dari aplikasi yang akan dibangun, meliputi analisis metode face detection, analisis kebutuhan fungsional dan non fungsional dari aplikasi yang dibangun.

2. Tahap perancangan dilakukan dengan mendesain seluruh komponen-komponen aplikasi mulai dari desain antarmuka, desain objek 3D model helm, serta desain Augmented Reality helm dengan face-detection yang akan diimplementasikan pada aplikasi.

3. Tahap implementasi dilakukan dengan mengimplementasikan desain sistem. Perancangan aplikasi diimplementasikan menjadi serangkaian program dengan desain antarmuka, desain objek 3D helm, dan implementasi

Augmented Reality helm dengan metode face-detection yang telah dirancang dan memenuhi spesifikasi sesuai dengan tahap analisis.

4. Tahap pengujian mencangkup koreksi dari berbagai kesalahan aplikasi yang tidak ditemukan pada tahap-tahap sebelumnya, perbaikan dari implementasi desain sistem, dan pengembangan serta persyaratan baru yang akan dikembangkan.

5. Tahap pemeliharaan dilakukan setelah aplikasi yang dibangun telah diuji dan siap digunakan. Pada tahap ini dilakukan penyesuaian dan perubahan yang dilakukan setelah aplikasi digunakan pada lingkungan studi kasus.


(16)

Gambar 1.1 Metode Waterfall

1.6. Sistematika Penulisan

Gambaran secara umum dari isi skripsi ini akan dijelaskan pada sistematika penulisan dari skripsi sebagai berikut:

BAB 1 PENDAHULUAN

Bab ini berisi pembahasan masalah umum yang berhubungan dengan penyusunan laporan skripsi, yang meliputi latar belakang, rumusan masalah, maksud dan tujuan, batasan masalah, metode penelitian, dan sistematika penulisan. BAB 2 TINJAUAN PUSTAKA

Bab ini membahas teori-teori yang mendasari penulisan dari skripsi ini. Teori umum yang digunakan meliputi teori tentang Computer Vision, Augmented Reality, 3D modeling, dan teori-teori lainnya yang berhubungan dengan penulisan skripsi ini.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi analisis kebutuhan dalam membangun aplikasi ini, analisis sistem yang sedang berjalan pada aplikasi ini sesuai dengan metode pembangunan perangkat lunak yang digunakan. Pada bab ini akan dijelaskan analisis terhadap seluruh spesifikasi sistem yang mencakup analisis sistem, analisis objek deteksi


(17)

(face-detection), analisis perangkat keras, analisis perangkat lunak, analisis kebutuhan pengguna, analisis kebutuhan fungsional. Selain analisis sistem, bab ini terdapat juga terdapat pemodelkan sistem yang menggunakan UML (Unifed Modelling Language).

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini membahas implementasi dari tahapan analisis dan perancangan sistem ke dalam perangkat lunak (dalam bentuk bahasa pemrograman), beberapa implementasi yang akan dijelaskan adalah implementasi perangkat keras, implementasi perangkat lunak, implementasi class dan implementasi antarmuka. Bab ini juga berisi pengujian terhadap sistem apakah sudah benar-benar berjalan seperti yang diharapkan, baik dari pengujian alpha dan pengujian beta.

BAB 5 KESIMPULAN DAN SARAN

Bab ini berisi kesimpulan berupa hal-hal penting yang telah dibahas pada penelitian agar sesuai dengan tujuan penelitian yang ingin dipenuhi, serta saran yang diberikan untuk pengembangan penelitian lebih lanjut.


(18)

(19)

9 2.

BAB 2

TINJAUAN PUSTAKA

2.1. Profil Perusahaan

Toko Zona Helm adalah salah satu toko yang menjual helm di daerah Kabupaten Bandung, khususnya didaerah Katapang. Toko ini dibuka sejak tahun 2014 dan telah menjual berbagai macam merek dan jenis helm, seperti helm Half-Face, Full-Half-Face, Retro, dan MotoCross. Toko ini awalnya berada di kawasan Cimahi, namun karena sepinya pengunjung dan ramainya toko helm lain di daerah itu, membuat pemilik toko memilih untuk menutup toko di kawasan tersebut dan membuka kembali tokonya di kawasan Katapang. Toko Zona Helm yang kini berlokasi di Jl. Terusan Kopo No 196 KM 13,15 ini mulai berkembang dan penjualan helmnya mulai meningkat. Promosi yang dilakukan toko ini juga ikut meningkatkan pemasaran dan penjualan helm di toko Zona Helm ini.

2.2. Landasan Teori

Landasan teori merupakan beberapa ulasan atau penjabaran mengenai teori-teori yang akan digunakan dalam membangun aplikasi ini, yang diambil dari berbagai sumber baik buku-buku, pustaka, maupun jurnal-jurnal ilmiah dan jurnal online. Landasan teori yang akan dibahas pada penelitian ini meliputi konsep

Augmented Reality, Face-Detection, Citra Digital, Model Kamera dan Kalibrasi Kamera, DirectX, EmguCV, Pengujian Blackbox, UML (Unified Modeling Language), serta pembahasan singkat perangkat lunak dan 3D Model pada aplikasi yang dibangun.

2.2.1. Augmented Reality

Menurut definisi Ronald Azuma (1997), ada tiga prinsip dari augmented reality. Yang pertama yaitu augmented reality merupakan penggabungan dunia nyata dan virtual, yang kedua berjalan secara interaktif dalam waktu nyata (realtime), dan yang ketiga terdapat integrasi antarbenda dalam tiga dimensi, yaitu benda maya terintegrasi dalam dunia nyata [3]. Augmented reality sendiri adalah teknologi yang menggabungkan benda maya dua dimensi dan ataupun tiga dimensi ke dalam sebuah lingkungan nyata lalu memproyeksikan benda-benda maya tersebut dalam waktu nyata. Benda-benda maya tersebut berfungsi untuk


(20)

menampilakan informasi yang tidak dapat diterima secara langsung oleh manusia. Hal ini membuat Augmented Reality digunakan sebagai alat untuk membantu persepsi dan interaksi pengguna dengan benda-benda maya tersebut.

Paul Milgram dan Fumio Kishino (1994) menjelaskan konsep augmented reality dalam teori mereka yang disebut dengan Reality-Virtuality Continuum yang dapat dilihat dalam Gambar 2.1 [4].

Gambar 2.1 Reality-Virtuality Continuum

Milgram dan Kishino merumuskan kerangka kemungkinan penggabungan dan peleburan dunia nyata dan dunia maya ke dalam sebuah kontinuum virtualitas. Sisi yang paling kiri adalah lingkungan nyata yang hanya berisi benda nyata, dan sisi paling kanan adalah lingkungan maya yang berisi benda maya. Dalam

augmented reality atau realitas tertambah, yang lebih dekat ke sisi kiri, lingkungan bersifat nyata dan benda bersifat maya, sementara dalam augmented virtuality atau virtualitas tertambah, yang lebih dekat ke sisi kanan, lingkungan bersifat maya dan benda bersifat nyata. Realitas tertambah dan virtualitas tertambah digabungkan menjadi mixed reality atau realitas campuran.

Istilah augmented reality (AR) mulai dikenal pada tahun 1989, dimana awal pengembangannya berasal dari Virtual Reality yang diciptakan dan diperkenalkan oleh Jaron Lanier. Tahun 1992 Augmented Reality dikembangkan untuk dapat melakukan perbaikan pada pesawat boeing. Di tahun yang sama, LB Rosenberg mengembangkan sistem Augmented Reality yang digunakan di Angkatan Udara AS yang disebut Virtual Fixtures, dan pada tahun 1992 juga, Steven Feiner, Blair Maclntyre dan Dorée Seligmann, memperkenalkan untuk pertama kalinya Major Paper untuk perkembangan Prototype Augmented Reality.


(21)

Pada tahun 1999, Hirokazu Kato, mengembangkan ArToolkit di HITLab dan didemonstrasikan di SIGGRAPH, pada tahun 2000, Bruce.H.Thomas, mengembangkan ARQuake, sebuah Mobile Game Augmented Reality yang ditunjukkan di International Symposium on Wearable Computers.

Pada tahun 2008, Wikitude AR Travel Guide, memperkenalkan Android G1 Telephone yang berteknologi Augmented Reality, tahun 2009, Saqoosha memperkenalkan FLARToolkit yang merupakan perkembangan dari ArToolkit.

FLARToolkit memungkinkan kita memasang teknologi Augmented Reality

disebuah website, karena output yang dihasilkan FLARToolkit berbentuk Flash. Ditahun yang sama, Wikitude Drive meluncurkan sistem navigasi berteknologi AR di Platform Android. Tahun 2010, Acrossair menggunakan teknologi Augmented Reality pada I-Phone 3GS [5].

Augmented Reality memiliki berbagai jenis teknik yang semakin berkembang sampai saat ini. Beberapa teknik-teknik tersebut adalah sebagai berikut :

1. Teknik Marker Tracking (Marker Augmented Reality)

Teknik ini menggunakan sebuah marker untuk mendeteksi posisi tampilnya objek. Marker merupakan istilah yang dekat dengan dunia augmented reality. Markers adalah sebuah kotak hitam putih yang membuat sebuah aplikasi dapat melacak dan mendeteksi bentuk dan posisi dari objek 3D [6]. Marker yang dapat dideteksi oleh teknik marker tracking ini hanya yang berwarna hitam putih seperti Gambar 2.2.


(22)

2. Teknik Markerless Tracking (Markerless Augmented Reality)

Teknik ini masih menggunakan marker sebagai alat untuk mendeteksi. Namun marker yang digunakan dapat berbentuk apa saja tidak harus berwarnahitam putih, misalnya foto atau bahkan benda.

3. Teknik GPS Tracking

Teknik GPS Tracking memanfaatkan lokasi longitude dan latitude sebagai alat untuk mendeteksi. Biasanya teknik ini digunakan di perangkat lunak untuk smartphone.

4. Teknik Face Tracking

Teknik ini menggunakan wajah manusia untuk dideteksi dan pemanfaatannya bisa untuk face tracking maupun face recognition.

2.2.2. Deteksi Wajah (Face Detection)

Deteksi wajah merupakan salah satu teknik pengolahan citra, dimana inputnya merupakan citra wajah manusia dan menghasilkan outputnya berupa klasifikasi citra, dimana citra tersebut merupakan wajah manusia atau bukan. Deteksi wajah merupakan faktor utama dari beberapa bidang penelitian yang berkaitan dengan pemrosesan wajah. Beberapa bidang tersebut adalah sebagai berikut [7] :

1. Pengenalan wajah (face recognition) yaitu membandingkan citra wajah masukan dengan suatu database wajah dan menemukan wajah yang paling cocok dengan citra masukan tersebut.

2. Autentikasi wajah (face authentication) yaitu menguji keaslian/kesamaan suatu wajah dengan data wajah yang telah diinputkan sebelumnya.

3. Lokalisasi wajah (face localization) yaitu pendeteksian wajah namun dengan asumsi hanya ada satu wajah di dalam citra

4. Penjejakan wajah (face tracking) yaitu memperkirakan lokasi suatu wajah di dalam video secara real time.

5. Pengenalan ekspresi wajah (facial expression recognition) untuk mengenali kondisi emosi manusia.

Salah satu metode yang digunakan dalam mendekesi wajah adalah metode


(23)

deteksi objek Viola-Jones. Proses deteksi objek Viola-Jones adalah deteksi objek pertama yang menyediakan tingkat deteksi objek yang kompetitif secara real-time

yang diusulkan pada tahun 2001 oleh Paul Viola dan Michael Jones [8]. Metode ini meskipun dapat dilatih untuk mendeteksi berbagai kelas objek, deteksi objek ini terutama didorong oleh masalah deteksi wajah. Metode Haar Cascades Classifier

sendiri merupakan metode yang menggunakan statistical model (classifier). Pendekatan untuk mendeteksi wajah dalam gambar menggabungkan empat konsep utama :

1. Training data

2. Fitur segi empat sederhana yang disebut fitur Haar. 3. Integral image untuk pendeteksian fitur secara cepat.

4. Pengklasifikasi bertingkat (Cascade classifier) untuk menghubungkan banyak fitur secara efisien.

Training data pada Haar

Metode ini memerlukan 2 tipe gambar objek dalam proses training yang dilakukan, yaitu :

1. Positive samples

Berisi gambar objek yang ingin dideteksi, apabila ingin mendeteksi mata maka positive samples ini berisi gambar mata, begitu juga objek lain yang ingin dikenali, misalnya hidung atau mulut.

2. Negative samples

Berisi gambar objek selain objek yang ingin dikenali, umumnya berupa gambar background (tembok, pemandangan, lantai, dan gambar lainnya). Resolusi untuk sampel negatif disarankan untuk memiliki resolusi yang sama dengan resolusi kamera.

Training dari Haar menggunakan dua tipe sampel diatas. Informasi dari hasil training ini lalu dikonversi menjadi sebuah parameter model statistik.

Sistem Kerja Algoritma Haar Cascade Classifier

Algoritma Haar menggunakan metode statistikal dalam melakukan pengenalan wajah. Metode ini menggunakan simple haar-like features dan juga


(24)

tetap. Cara kerja dari haar dalam mendeteksi wajah adalah menggunakan teknik

sliding window pada keseluruhan gambar dan mencari apakah terdapat bagian dari gambar yang berbentuk seperti wajah atau tidak. Haar juga memiliki kemampuan untuk melakukan scalling sehingga dapat mendeteksi adanya mata yang berukuran lebih besar ataupun lebih kecil dari gambar pada classifier. Tiap fitur dari haar like feature didefinisikan pada bentuk dari fitur, diantaranya koordinat dari fitur dan juga ukuran dari fitur tersebut.

Haar Feature

Haar Feature adalah fitur yang digunakan oleh Viola dan Jones didasarkan pada Wavelet Haar. Wavelet Haar adalah gelombang tunggal bujur sangkar (satu interval tinggi dan satu interval rendah). Untuk dua dimensi, satu terang dan satu gelap. Selanjutnya kombinasi-kombinasi kotak yang digunakan untuk pendeteksian objek visual yang lebih baik. Ada tiga tipe kotak (rectangular) fitur [8] pada umunya dan dapat dilihat pada Gambar 2.3 yaitu:

1. Tipe two-rectangle feature (horizontal/vertikal) 2. Tipe three-rectangle feature

3. Tipe four-rectangle feature

Gambar 2.3 Haar Feature

Adanya fitur Haar ditentukan dengan cara mengurangi rata-rata piksel pada daerah gelap dari rata-rata piksel pada daerah terang. Jika nilai perbedaannya itu diatas nilai ambang atau threshold, maka dapat dikatakan bahwa fitur tersebut ada. Nilai dari haar-like feature adalah perbedaan antara jumlah nilai-nilai piksel

gray level dalam daerah kotak hitam dan daerah kotak putih. Kotak haar-like feature dapat dihitung secara cepat menggunakan integral image.


(25)

Integral Image

Integral Image digunakan untuk menentukan ada atau tidaknya dari ratusan fitur Haar pada sebuah gambar dan pada skala yang berbeda secara efisien. Pada umumnya, pengintegrasian tersebut berarti menambahkan unit-unit kecil secara bersamaan. Dalam hal ini unit-unit kecil tersebut adalah nilai-nilai piksel. Nilai integral untuk masing-masing piksel adalah jumlah dari semua piksel-piksel dari atas sampai bawah. Dimulai dari kiri atas sampai kanan bawah, keseluruhan gambar itu dapat dijumlahkan dengan beberapa operasi bilangan bulat per piksel.

Cascade Classifier

Cascade classifier adalah sebuah rantai stage classifier, dimana setiap stage classifier digunakan untuk mendeteksi apakah di dalam image sub window terdapat objek yang diinginkan (object of interest).

Stage classifier dibangun dengan menggunakan algoritma adaptive-boost

(AdaBoost). Algoritma tersebut mengkombinasikan performance banyak weak classifier untuk menghasilkan strong classifier. Weak classifier dalam hal ini adalah nilai dari haar-like feature. Proses Cascade Classifier dapat dilihat pada Gambar 2.4.

Gambar 2.4 Proses Cascades Classifier

2.2.3. Citra Digital

Citra digital merupakan suatu fungsi intensitas cahaya f(x,y), dimana harga x dan y

merupakan koordinat spasial dan harga fungsi tersebut pada setiap titik (x,y)

merupakan tingkat kecemerlangan citra pada titik tersebut.

Citra digital yang tingginya N, lebarnya M, dan memiliki L derajak keabuan dapat diangkap sebagai fungsi :

� , { ≤ ≤≤ ≤


(26)

Citra ditital yang berukuran N x M lazim dinyatakan dengan matriks berukuran N baris dan M kolom sebagai berikut :

� , = [

� , � , � , −

� , � , � , −

� − , � − , � − , −

] (2)

Masing-masing element pada citra digital (berarti elemen matriks) disebut image elemtn atau piksel. Jadi, citra yang berukuran N x M mempunyai N.M buah piksel.

Proses digitalisai koordinat (x,y) dikenal sebagai pencuplikan citra (image sampling), sedangkat proses digitalisasi derajat keabuan f(x,y) disebut kuantisasi derajat keabuan (gray-level quantization).

Berdasarkan format penyimpanan nilai warnanya, citra terdiri atas empat jenis, yaitu :

1. Citra biner atau monokrom

Pada citra jenis ini, setiap titik atau piksel hanya bernilai 0 atau 1. Dimana setiap titik membutuhkan media penyimpanan sebesar 1 bit.

2. Citra skala keabuan

Citra skala keabuan mempunyai kemungkinan warna antara hitam (minimal) dan putih (makasimal). Jumlah maksimum warna sesuai dengan bit penyimpanan yang digunakan.

3. Citra warna

Setiap titik (piksel) pada citra warna mewakili warna yang merupkan kombinasi dari tiga warna dasar yaitu merah, hijai dan biru. Setiap warna dasar mempunyai intensitas sendiri dengan nilai maksimum 255 (8 bit). Setiap titik pada citra warna membutuhkan data 3 byte.

4. Citra warna berindeks

Setiap titik (piksel) pada citra warna berindeks mewakili indeks dari suatu tabel warna yang tersedia (biasanya disebut palet warna). Keuntungan pemakaian palet warna adalah kita dapat dengan cepat memanipulasi warna tanpa harus mengubah


(27)

informasi pada setiap titik dalam citra.Keuntungan lain penyimpanan lebih kecil. [9]

Image Processing

Picture Processing atau image processing merupakan suatu proses yang berkaitan dengan kegiatan memanipulasi dan menganalisis gambar atau citra yang dilakukan oleh komputer. Secara garis besar terdiri dari :

1. Digitalisasi dan Kompresi: Mengubah gambar menjadi bentuk diskrit; mengefisienkan pengkodean sehingga dapat menghemat ruang penyimpanan.

2. Pengingkatan, restorasi, dan rekontruksi : Meningkatkan gradasi (rendahnya contrast, blurr, noise) dari gambar; Memperbaiki gambar dari kerusakan.

3. Pencocokan, Pendeskripsian, dan rekognisi : Mencocokan gambar anara satu gambar dengan yang lain. Membagi gambar menjadi beberapa bagian, dan membandingkan hasil deskripsi terhadap model yang telah terdefinisi. [10]

2.2.4. Model Kamera dan Kalibrasi Kamera

Kamera dapat mengasilkan gambar 2D berasal dari gambar nyata (word coordinat) 3D. kamera mentransformasi media 3D (word plane) menjadi 2D (image palane) [11]. Model kamera salah satunya adalah pinhole camera, gambar yang dihasilkan adalah gambar perspektif yang mana kamera merupakan pusat proyeksi. Semua sinar yang datang akan dikumpulkan menjadi satu pada pusat kamera. Pada Model pinhole camera dapat dilihat pada Gambar 2.5.


(28)

Pada model pinhole camera sebuah titik yang terletak di dalam ruang nyata 3D diekspresikan sebagai titik [x y z 1]T di sistem koordinat dunia (world coordinat). Titik [x y z 1]T yang direkam dengan kamera akan mengalami transformasi perspektif dari ruang 3D sistem koordinat dunia keruang 2D sistem koordinat kamera (image plane). Titik [u v w]T yang merupakan koordinat 2D pada koordinat kamera dapat diperoleh dengan persamaan koordinat homogeny sebagai berikut : [12]

[ ] = [�3| 3] [ � −�

3� ] [ ] (3)

[ ] = [ ] (4)

Dimana M = [KR | - KRT]

Matriks K dan [I3 | O3] pada persamaan (4) adalah parameter intrinsic yang mengandung variabel-variabel fisik pada kamera, seperti focus dan principal point. Matriks K adalah matriks kamera kalibrasi yang didefinisikan sebagai berikut :

= [� � 00] (5)

Dimana f adalah panjang focus pada proyeksi kamera, a dan b adalah faktor konversi ukuran citra dari unit fisik (missal : cm atau mm) ke unit pixel pada sumbu

x dan y, (u0,v0) adalah principal point pada proyeksi kamera.

Matriks [I3|O3] didefinisikan sebagai : [ ], matriks [ � −� 3� ] adalah parameter ektinsik kamera yang mendefinisikan lokasi dan orientasi kamera terhadap sistem koordinat dunia. Matriks translasi T berisi tiga buah elemen translasi dari pusat sistem koordinat dunia terhadap sistem koordinat kamera.

Proses kalibrasi kamera merupakan proses menentukan parameter-parameter pada kamera baik parameter-parameter intrinsik dan parameter-parameter ekstrinsik. Biasanya


(29)

proses kalibrasi kamera menggunakan media checkerboard yang diletakan pada sebuah papan. Langkah yang harus dilakukan dalam kalibrasi kamera adalah mengambil beberapa sampel dari chessboard pattern yang kemudan untuk setiap gambar tersebut dilakukan deteksi tepi pada chessboard pattern pada citra tersebut. Dengan mengetahui letak titik pada world coodinat dan pixel coordinate maka dapat ditemukan matriks yang mengubungkan keduanya. Dari proses kalibrasi kamera maka didapatkan matiks intrinsik dan intrinsik dari kamera. [13]

Chessboard Pattern dapat dlihat pada Gambar 2.6.

Gambar 2.6 Chessboard Pattern

2.2.5. DirectX

DirectX adalah sekumpulan Application Programming Interface (API) yang dirancang untuk membantu pengembang aplikasi untuki menciptakan aplikasi game dan aplikasi multimedia berkinerja tinggi.

Fungsi utama DirectX adalah menyediakan mekanisme standar untuk mengakses berbagai perangkat keras yang berbeda dan mengisolasi aplikasi dari kerumitan implementasi ditingkat hardware.

Pada versi 9.0, DirectX terdiri atas komponen : 1. DirectX Graphics (Direct3D), menangani grafik 3D 2. DirectX Audio, menangani efek suara.

3. DirectShow, menangani multimedia playback.

4. DirectInput, menangani input dari joystick, keyboard dan mouse.


(30)

Sejarah DirectX

Sebelum diluncurkan Windows 95, program game umumnya dirilis untuk sistem operasi DOS dengan bantuan DOS extender sepertdi DOS4GW untuk mengatasi keterbatasan memori yang disediakan DOS.

Keluarnya Windows 95 merupakan tanda dari awal berakhirnya era DOS.

Banyak pengembang game mulai menulis ulang (memporting) game-game mereka agar bias berjalan optimal di Windows 95. Graphic Device Interface (GDI) Windows tidak didesain untuk game sehingga game-game yang menggunakan GDI untuk menangani grafis game tampil dengan grafis tidak bagus karena GDI sangat lambat.

Microsoft kemudan meluncurkan WinG (DIBSection) untuk mengatasi masalah pembambang game. WinG jauh lebih baik dibandingkan GDI karena lebih cepat, namun problem yang sering dihadapi pengembang game untuk memporting game mereka ke Windwos 95 adalah menampilkan grafis game secara full sreen. Dengan WinG aplikasi game ditampilkan dalam window seperti aplikasi-aplikasi lainnya, sedangkan game umurnya berjalan pada mode full screen.

Selain itu program game umumnya dibuat agar berjalan secepat mungkin, sehingga banyak fungsi-fungsi yang dimiliki dirancang untuk memanipulasi perangkat keras secara langsung. Untuk program game yang berjalan pada sistem operasi DOS hal ini tidak menjadi masalah karena DOS mengijinkan program mengakses perangkat keras secara langsung, namun untuk game yang berjalan pada sistem operasi multi-tasking seperti Windows mengakses perangkat keras secara langsung tidak disarankan mengingat tiap aplikasi harus berbagi sumber daya dengan aplikasi lain.

Untuk mengatasi hal ini Microsoft merilis DirectX. Awalnya DirectX

dikembangkan oleh RenderMorphics, Microsoft kemudian ukut bergabung mengembangkan DirectX. Versi awal DirectX banyak dikritik oleh pengembang game karena desainnya yang buruk dan tidak terdokumentasi dengan baik.

Mulai versi 3 Microsoft lebih serius mengembangkan DirectX guna mendorong lebih banyak pengembang game untuk membuat game yang berjalan


(31)

pada sistem operasi Windows. DirectX pun akhirnya dirilis sebagai public domain sehingga DirectX dapat diperoleh dengan gratis.

Langkah Microsoft ini diikuti oleh produsen keras grafik dengan menyertakan dukungan terhadap DirectX. [14]

Arsitektur Direct3D

Direct3D adalah subsistem Windows yang sebanding dengan Graphics Device Interface (GDI). Berbeda dengan GDI, Direct3D hanya menyediakan layer tipis yang membungkus fungsional graphic card, tidak lebih. Anda tidak akan menemukan fungsionalitas untuk menggambar garis, menulis teks atau fungsional pemrograman grafis biasa anda temukan bila mengunakan GDI. Jika membutuhkan fungsionalitas semacam ini, anda harus membuat implementasinya

Dari Gambar 2.7, terlihat bahwa Direct3D berkomunikasi langsung dengan

hardware melalui HAL (Hardware Abstraction Layer).

HAL atau Hardware Abstraction Layer adalah software layer tipis yang diimplementasikan oleh vendor hardware graphic card, berfungsi mengabstraksi device driver. HAL bersifat spesifik untuk tiap perangkat keras, tiap vendor yang ingin hardwarenya kompatibel dengan Direct3D harus membuat implementasi

HAL.

HAL bertugas menerjemahkan perintah Direct3D agar dapat dieksekusi oleh device driver. Dengan cara ini maka Direct3D mampu berkomunikasi dengan beragam kartu grafis tanpa perlu tahu bagaimana cara kerja internal hardware. [14]


(32)

Gambar 2.7 Arsitektur Direct3D

2.2.6. EmguCV

EmguCV merupakan wrapper cross platform untuk OpenCV pada bahasa pemrograman .NET. EmguCV memungkinkan pemanggilan fungsi pada OpenCV

pada bahasa pemrograman .NET seperti c#, VB, VC++,IronPhython dan lain-lain.

EmguCV dapat dicompile dengan Visual Studio, Xamarin Studio dan Unity,

EmguCV dapat berjalan pada platform Windows, Linux, Mac OS X, iOS, Android

dan Windows Phone.

EmguCV memiliki dua layer pada wrapernya seperi pada Gambar 2.8. Layer pertama mengandung pemetaan fungsi, struktur dan enumerasi yang menggambarkan itu pada OpenCV. Sedangkan layer kedua mengandung kelas-kelas yang dicampur dari .NET.


(33)

Gambar 2.8 Arsitektur EmguCV

2.2.7. Pengujian Blackbox

Pengujian yang dilakukan untuk antarmuka perangkat lunak, pengujian ini dilakukan untuk memperlihatkan bahwa fungsi-fungsi bekerja dengan baik dalam arti masukan yang diterima dengan benar dan keluaran yang dihasilkan benar-benar tepat, pengintegrasian dari eksternal data berjalan dengan baik.

Metode pengujian blackbox memfokuskan pada requirement fungsi dari perangkat lunak, pengujian ini merupkan komplenatari dari pengujian whitebox.

Pengujian whitebox dilakukan terlebih dahulu pada proses pengujian, sedangkan pengujian blackbox dilakukan pada tahap akhir dari pengujian perangkat lunak. Proses yang terdapat dalam proses pengujian blackbox antara lain sebagai berikut:

1. Pembagian kelas data untuk pengujian setiap kasus yang muncul pada pengujian whitebox.


(34)

2.2.8. UML (Unified Modeling Language)

UML dimulai secara resmi pada Oktober 1994, ketika Rumbaugh bergabung dengan Booch pada Relational Software Corporation. Proyek ini memfokuskan pada penyatuan metode Booch dan OMT. UML versi 0.8 merupakan metode penyatuan yang dirilis pada bulan Oktober 1995. Dalam waktu yang sama, Jacobson bergabung dengan Relational dan cakupan dari UML semakin luas sampai diluar perusahaan OOSE. Dokumentasi UML versi 0.9 akhirnya dirilis pada bulan Juni 1996.

UML disebut sebagai bahasa pemodelan bukan metode. Kebanyakan metode terdiri paling sedikit prinsip, bahasa pemodelan dan proses. Bahasa pemodelan (sebagian besar grafik) merupakan notasi dari metode yang digunakan untuk mendesain secara cepat.

Bahasa pemodelan merupakan bagian terpenting dari metode. Ini merupakan bagian kunci tertentu untuk komunikasi. Jika anda ingin berdiskusi tentang desain dengan seseorang, maka Anda hanya membutuhkan bahasa pemodelan bukan proses yang digunakan untuk mendapatkan desain. UML merupakan bahasa standar untuk penulisan blueprint software yang digunakan untuk visualisasi, spesifikasi, pembentukan dan pendokumentasian alat-alat dari sistem perangkat lunak. UML menyediakan 10 macam diagram untuk memodelkan aplikasi berorientasi objek. Beberapa diagram dalam UML adalah sebagai berikut [15]:

Use Case Diagram

Use case diagram merupakan permodelan untuk menggambarkan kelakuan

(behavior) sistem yang akan dibangun. Use case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibangun. use case digunakan untuk mengetahui fungsi apa saja yang ada didalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.

Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Contoh use case diagram dapat dilihat pada Gambar 2.9. Ada dua hal utama pada use case yaitu aktor dan use case.


(35)

a. Aktor merupakan orang, proses atau sistem lain yang berinteraksi dengan sistem yang akan dibangun.

b. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antarunit-unit atau aktor.

Gambar 2.9 Contoh Use Case Diagram Sequence Diagram

Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem berupa pesan yang digambarkan terhadap waktu. Sequence diagram

terdiri atas dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah kejadian untuk menghasilkan output tertentu. Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan.

Masing-masing objek, termasuk aktor, memiliki lifeline vertikal. Message

digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi metoda dari class. Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan simbol khusus untuk objek boundary, controller dan


(36)

Gambar 2.10 Contoh Sequence Diagram Activity Diagram

Activity diagram menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi.

Activity diagram merupakan state diagram khusus, di mana sebagian besar

state adalah action dan sebagian besar transisi di-trigger oleh selesainya state

sebelumnya (internal processing). Oleh karena itu, activity diagram tidak menggambarkan behaviour internal sebuah sistem secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum.

Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas.

Seperti halnya state, standar UML menggunakan segi empat dengan sudut membulat untuk menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Contoh dari activity diagram dapat dilihat pada Gambar 2.11.


(37)

Gambar 2.11 Contoh Activity Diagram Class Diagram

Class Diagram menggambarkan keadaan suatu sistem dengan menjelaskan

keterhubungan antara suatu kelas dengan kelas yang lain yang terdapat pada sistem tersebut. Class Diagram bersifat statis. Di dalam class diagram digambarkan relasi dari masing - masing kelas tetapi tidak menggambarkan apa yang terjadi ketika kelas tersebut berelasi. Struktur dari class diagram dapat dilihat pada Gambar 2.12 adalah sebagai berikut :

 Nama Kelas/Stereotype

 Atribut, yaitu variabel-variabel yang dimiliki suatu kelas.

 Metoda, yaitu fungsi-fungsi yang dimiliki oleh suatu kelas.

Gambar 2.12 Class Diagram

Class Diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Class Diagram memiliki 5 macam relasi yaitu Association, Aggregation, Composition, Depedency, dan


(38)

a. Association

Assosiation adalah hubungan statis antar kelas. Umumnya menggambarkan kelas yang memiliki atribut berupa kelas lain, atau kelas yang harus mengetahui ekstensi kelas lain. Dalam notasi UML, asosiasi memiliki 2 jenis tipe yaitu asosiasi 2 arah (bidirectional) dan 1 arah (undirectional). Contoh dari asosiasi dapat dilihat pada Gambar 2.13.

Gambar 2.13 Relasi Association

b. Aggregation

Aggregation adalah association dimana salah satu kelasnya merupakan bagian dari suatu kumpulan. Aggregation memiliki titik pusat yang mencakup keseluruhan bagian. Contoh dari aggregation dapat dilihat pada Gambar 2.14.

Gambar 2.14 Relasi Aggregation

c. Composition

Composition ialah aggregation dengan ikatan yang lebih kuat. Di dalam

composite aggregation, siklus hidup part class sangat bergantung pada whole class

sehingga bila objek instance dari whole class dihapus maka objek instance dari part class juga akan terhapus. Contoh dari composition dapat dilihat pada Gambar 2.15.


(39)

d. Depedency

Depedency ialah hubungan antar-class di mana sebuah class memiliki ketergantungan pada class lainnya tetapi tidak sebaliknya. Contoh dari depedency

dapat dilihat pada Gambar 2.16.

Gambar 2.16 Relasi Depedency

e. Generalization

Generalization diperlukan untuk memperlihatkan hubungan pewarisan (inheritance) antar unsur dalam diagram kelas. Pewarisan memungkinkan suatu kelas mewarisi semua atribut, operasi ,relasi, dari kelas yang berada dalam hirarki pewarisannya. Contoh dari generalization dapat dilihat pada Gambar 2.17.

Gambar 2.17 Relasi Generalization Deployment Diagram

Deployment diagram menggambarkan detail bagaimana komponen

di-deploy dalam infrastruktur sistem, di mana komponen akan terletak, bagaimana kemampuan jaringan pada lokasi tersebut, spesifikasi server, dan hal-hal lain yang bersifat fisik sebuah node adalah server, workstation, atau perangkat keras lain yang digunakan untuk men-deploy komponen dalam lingkungan sebenarnya. Hubungan antar node (misalnya TCP/IP) dan requirement dapat juga didefinisikan dalam diagram ini. Contoh deployment diagram dapat dilihat pada Gambar2.18.


(40)

2.2.9. Microsoft Visual Studio

Microsoft Visual Studio merupakan sebuah perangkat lunak lengkap (suite) yang dapat digunakan untuk melakukan pengembangan aplikasi. Baik itu aplikasi bisnis, aplikasi personal, ataupun komponen aplikasinya dalam bentuk aplikasi

console, aplikasi windows, ataupun aplikasi web. Visual Studio mencakup

compiler, SDK, Integrated Development Environment (IDE), dan dokumentasi (umumnya berupa MSDN Library). Compiler yang berada dalam paket Visual Studio antara lain Visual C++, Visual C#, Visual Basic, Visual Basic .NET, Visual InterDev, Visual J++, Visual J#, Visual FoxPro, dan Visual SourceSafe.

Microsoft Visual Studio dapat digunakan untuk mengembangkan aplikasi dalam native code (dalam bentuk bahasa mesin yang berjalan di Windows) ataupun

managed code (dalam bentuk Microsoft Intermediate Language di atas .NET

Framework). Selain itu, Visual Studio juga dapat digunakan untuk

mengembangkan aplikasi Silverlight, aplikasi Windows Mobile (yang berjalan di atas .NET Compact Framework) [16]. Tampilan antarmuka Visual Studio dapat dilihat pada Gambar 2.19.


(41)

2.2.10.Blender 3D

Blender adalah perangkat lunak untuk desaign grafis yang digunakan untuk membuat film animasi, efek visual, aplikasi 3D interaktif atau video game. Fitur Blender termasuk pemodelan 3D, unwrapping UV, texturing, rigging dan menguliti, cairan dan simulasi asap, simulasi partikel, simulasi tubuh lembut, menjiwai, cocok bergerak, pelacakan kamera, rendering, video editing dan compositing. Ia juga memiliki mesin permainan (game engine) built-in. Blender menggunakan OpenGL sebagai render grafiknya yang dapat digunakan pada berbagai macam sistem operasi seperti Windows, Linux dan Mac OS X.

Blender dikembangkan sebagai aplikasi in-house oleh studio animasi Belanda Neo Geo pada tahun 1988, dimana Ton Roosendaal bertangung jawab sebagai art director dan pengembang software internal. Pada tahun 1998, Ton mendirikan perusahaan yang bernama Not a Number (NaN) untuk mengembangkan dan memasarkan Blender lebih jauh. Cita–cita NaN adalah untuk menciptakan sebuah software animasi 3D yang padat, cross platform yang gratis dan dapat digunakan oleh masyarakat komputer secara umum. Blender awalnya didistribusikan sebagai shareware hingga akhirnya NaN bangkrut pada tahun 2002. Tahun 2001 NaN dibentuk ulang menjadi perusahaan yang lebih kecil. NaN kemudian meluncurkan software komersial pertamanya, Blender Publisher. Sasaran pasar software ini adalah untuk web 3D interaktif. Angka penjualan yang rendah dan iklim ekonomi yang tidak menguntungkan saat itu mengakibatkan NaN ditutup. Penutupan ini termasuk penghentian terhadap pengembangan Blender. Ton Roosendaal akhirnya mendirikan organisasi non profit yang bernama Blender Foundation agar Blender tidak hilang dari pasar software animasi 3D. Tujuan utama Blender Foundation adalah terus mempromosikan dan mengembangkan Blender sebagai proyek open source. Pada tahun 2002 Blender dirilis ulang dibawah syarat– syarat GNU General Public License [17]. Tampilan antarmuka Blender dapat dilihat pada Gambar 2.20.


(42)

(43)

33 3.

BAB 3

ANALISIS DAN PERANCANGAN

3.1. Analisis Masalah

Analisis masalah yang dikembangkan dalam penelitian ini bertujuan untuk mengetahui masalah yang terjadi pada promosi helm di toko Zona Helm, yang diantaranya adalah :

1. Promosi yang dilakukan oleh pihak toko dinilai oleh pemilik toko masih kurang efektif, dimana konsumen masih kesulitan menentukan model maupun warna yang cocok untuk dibeli maupun dipesan. Katalog maupun poster yang digunakan masih memiliki keterbatasan karena bersifat statis dalam memberikan informasi mengenai model helm.

2. Konsumen tidak dapat menentukan model dan warna helm mana yang tepat dan cocok untuk dibeli. Seiring dengan perkembangan teknologi, konsumen cenderung tertarik pada sesuatu yang lebih mudah, menarik dan memberikan dampak langsung terhadap konsumen.

3. Pemilik toko dalam menjual helm ditokonya dapat dilakukan pemesanan helm sesuai corak warna yang diinginkan konsumen. Hal ini menyebabkan pemilik toko harus memesan lebih banyak helm dengan corak maupun warna yang berbeda ke distributor. Keterbatasan tempat yang ada mengakibatkan model-model helm ini tidak dapat dipajang di toko. Model-model helm seperti helm full-face dan helm cross juga kurang diminati oleh konsumen, sehingga pemilik toko ingin memperkenalkan model-model ini.

3.2. Deskripsi Aplikasi yang Akan Dibangun

Aplikasi Virtual Mirror ZonaHelm yang akan dibangun adalah sebuah aplikasi desktop menggunakan platform Windows dengan teknologi Augmented

Reality. Pemilihan dengan aplikasi desktop membuat konsumen dapat

mengaksesnya hanya saat berada di dalam toko, sehingga memudahkan konsumen dan pemilik toko berdiskusi mengenai pemilihan model helm yang dipilih konsumen. Teknologi augmented reality yang menampilkan suatu informasi secara


(44)

realtime menjadi keunggulan dalam membangun aplikasi dan memberikan solusi pada permasalahan yang ada.

Aplikasi ini merupakan aplikasi yang menggunakan wajah sebagai marker untuk menyesuaikan helm dengan wajah konsumen. Adapun proses augmented reality dilakukan ketika konsumen selesai memilih jenis helm yang akan dibeli. Aplikasi akan meminta konsumen untuk mengarahkan wajah ke kamera sebagai marker untuk menampilkan objek 3D helm yang akan ditampilkan. Rancangan dari aplikasi augmented reality yang akan dibangun dapat dilihat pada Gambar 3.1.

Gambar 3.1. Usulan Aplikasi yang Dibangun

3.3. Analisis Kebutuhan Data

Aplikasi yang dibangun adalah aplikasi Zona Helm Virtual Mirror dengan memanfaatkan teknologi augmented reality. Data masukan yang dibutuhkan antara lain berupa marker berupa wajah dan objek 3D sebagai input utama pada aplikasi. Pada proses augmented reality, aplikasi akan memunculkan objek tiga dimensi jika aplikasi mendeteksi wajah yang diarahkan pada kamera, sehingga aplikasi ini membutuhkan input berupa citra wajah yang diambil secara real-time

menggunakan alat input berupa kamera dimana citra yang diambil tersebut merupakan kumpulan matriks yang nantinya akan diolah lebih lanjut dalam sistem untuk proses pendeteksian marker wajah untuk memunculkan objek tiga dimensi yang memiliki posisi yang sama dengan posisi pada wajah yang dideteksi. Objek 3 dimensi yang dapat dipilih oleh user adalah objek 3 dimensi berformat FBX.

3.4. Tahap Pembangunan Aplikasi

Secara garis besar, augmented reality (AR) adalah penggabungan antara objek virtual dengan objek nyata. Objek virtual pada aplikasi yang akan dibangun merupakan model 3D dari helm yang telah dipilih konsumen. Objek nyata dalam


(45)

aplikasi ini berupa marker yaitu pola wajah yang ditangkap oleh webcam. Di aplikasi ini, webcam berperan penting sebagai media visi bagi perangkat lunak untuk mendapatkan video masukan. Kamera mengambil frame-frame video untuk dapat diterima oleh komputer. Komputer memproses citra digital yang diambil oleh webcam, frame demi frame, mendeteksi pola yang mirip dengan wajah dari setiap frame video tersebut, dan mencari lokasi wajah. Dengan informasi tersebut, objek helm 3D digabungkan dengan video dari webcam dan menempatkannya sesuai dengan informasi posisi yang diperoleh dari face detection. Proses tersebut berlangsung secara real-time sehingga model helm akan tampil di layar dan mengikuti posisi wajah. Gambaran umum proses aplikasi ini dapat dilihat pada Gambar 3.2.

Gambar 3.2 Proses Algoritma

3.4.1. Tahapan Kamera

Tahapan ini adalah tahap dimana proses berhubungan langsung dengan kamera webcam. Citra yang diambil dari webcam akan diproses menjadi citra

grayscale. Citra grayscale ini dibutuhkan pada tahap selanjutnya, dimana citra hasil konversi tersebut akan digunakan dalam mendeteksi wajah konsumen. Proses yang terjadi dalam tahap kamera ini dijelaskan dalam Gambar 3.3.

Gambar 3.3 Proses pada Tahap Camera

Tahap Camera Tahap Deteksi Tahap Augmented Citra Grayscale Lokasi Wajah


(46)

Capture Frame

Citra yang ditangkap dari webcam adalah berupa frame-frame video, sehingga perlu diubah menjadi citra statis yang dapat dikonversi. Frame-frame ini disimpan didalah sebuah array image. Fungsi capture frame pada library EmguCV berfungsi untuk menangkap citra yang berasal dari frame-frame video webcam. Berikut adalah fungsi capture dari frame-frame video webcam :

Image <Bgr, byte> frame;

Capture capture = new Capture(Device, Index); frame = capture.QueryFrame();

Fungsi QueryFrame akan memberikan nilai balikan berupa matriks citra. Bgr merupakan format awal citra RGB, sedangkan byte merupakan nilai kedalaman citra dimana nilai byte adalah 0-255. Device adalah perangkat keras webcam yang digunakan, sedangkan Index adalah index dari perangkat webcam.

Convert Grayscale

Sebelum citra yang ditangkap diproses pada tahap-tahap berikutnya citra perlu dikonversi menjadi citra grayscale. Citra yang akan diproses dengan metode

HaarCascade harus merupakan citra grayscale. Dalam penelitian ini

pengkonversian citra dilakukan dengan menggunakan fungsi Convert pada library

EmguCV, berikut merupakan fungsi Convert :

Image<Gray,byte> imagegray;

imagegray = frame.Convert<Gray,byte>();

Fungsi convert akan memberikan nilai balikan berupa matriks citra. Byte merupakan nilai kedalaman citra dimana nilai byte adalah 0-255. Gray merupakan format citra grayscale yang telah dideklarasi pada library EmguCV dengan satuan threshold umum dari rumus grayscaling. Rumus grayscale secara umum adalah sebagai berikut :

� = , × � + , × � + , × � (6)

Dimana w adalah nilai hasil citra grayscale, R adalah nilai matriks red pada citra, G adalah nilai green, sedangkan B adalah nilai blue.


(47)

Contoh perhitungan dari proses grayscale ini adalah sebagai berikut : a. Sebuah citra memiliki nilai R = 203, G = 145, dan B = 64

b. Perhitungan nilai grayscale-nya adalah × , + ×

, + × ,

c. Hasil dari perhitungan tersebut adalah 153, 0877

Hasil konversi citra RGB menjadi citra grayscale dapat dilihat pada Gambar 3.4.

Gambar 3.4 Hasil citra grayscale

3.4.2. Tahapan Deteksi

Pada tahap ini, aplikasi akan mendeteksi lokasi wajah dari hasil output tahap pertama yang berupa citra grayscale. Tahapan ini akan menghasilkan citra wajah dan nilai-nilai dari lokasi wajah yang telah dideteksi, yang dibutuhkan untuk keperluan tahap augmented. Proses yang terjadi pada tahap deteksi dapat dilihat pada Gambar 3.5.


(48)

Gambar 3.5 Proses pada Tahap Deteksi Load File Training Haar Cascade

Output dari tahap sebelumnya yang merupakan citra grayscale yang diambil dari webcam. Citra tersebut masih berisi informasi lingkungan dan wajah, sehingga diperlukan sebuah metode untuk mengambil citra wajah dari citra webcam yang telah diproses sebelumnya. Metode yang digunakan pada aplikasi ini adalah metode

haar cascade classifier sebagai metode untuk pengenalan pola wajah. Library EmguCV telah menyediakan sebuah class untuk mendeteksi objek melalui citra. Class ini bernama HaarCascade, dimana class ini berfungsi untuk mendeteksi objek, baik itu wajah maupun benda lainnya. Class Haar Cascade memerlukan sebuah file data training untuk deteksi wajah. File ini telah disediakan oleh library EmguCV bernama haarcascade.frontalface_default.xml digunakan sebagai media training haar cascade classifer dimana pengembang aplikasi tidak perlu melakukan kembali training untuk mendeteksi wajah manusia. File training

haarcascade.frontalface_default.xml adalah file training bawaan (default). Proses pemanggilan file pada Library Emgu CV ini adalah sebagai berikut :

Private HaarCascade haarCascade = new HaarCascade ("haarcascade_frontalface_default.xml");


(49)

Berikut ini adalah isi dari file training haarcascade.frontalface_default.xml : <opencv_storage> <haarcascade_frontalface_default type_id="opencv-haar-classifier"> <size>20 20</size> <stages> <_>

<!-- stage 0 --> <trees>

<_>

<!-- tree 0 --> <_>

<!-- root node --> <feature>

<rects>

<_>3 7 14 4 -1.</_>

<_>3 9 14 2 2.</_></rects> <tilted>0</tilted></feature>

<threshold>4.0141958743333817e-003</threshold> <left_val>0.0337941907346249</left_val>

<right_val>0.8378106951713562</right_val></_></_> <_>

<!-- tree 1 --> <_>

<!-- root node --> <feature>

<rects>

<_>1 2 18 4 -1.</_> <_>7 2 6 4 3.</_></rects> <tilted>0</tilted></feature>

<threshold>0.0151513395830989</threshold> <left_val>0.1514132022857666</left_val>

<right_val>0.7488812208175659</right_val></_></_> <_>

<!-- tree 2 --> ...

<stage_threshold>0.8226894140243530</stage_threshold> <parent>-1</parent>

<next>-1</next></_> <_>

<!-- stage 1 --> ...

<!-- stage 21 --> <trees>

<_>

<!-- tree 0 -->

<!-- tree 212 -->

<stage_threshold>105.7611007690429700</stage_threshold> <parent>20</parent>

<next>-1</next></_></stages></haarcascade_frontalface_default> </opencv_storage>

Training memiliki isi yang berbeda baik dari segi jumlah stage, jumlah tree, model segi empat dari fitur (rectangle) maupun nilai treshold nya. Stage


(50)

melambangkan banyaknya tingkatan dalam cascade of classifier, dalam training ini digunakan 22 tingkatan (stage 0 sampai stage 21). Tingkatan ini digunakan untuk mengurangi jumlah sub window citra yang perlu diperiksa. Di tingkatan pertama dilakukan pengklasifikasian terhadap seluruh sub window citra, lalu di tingkatan kedua dilakukan pengklasifikasian terhadap sub window yang berasal dari hasil pengklarifikasian tingkatan pertama. Maka semakin tinggi tingkatanya semakin sedikit jumlah sub window yang harus diperiksa. Di tiap tingkatan terdiri dari beberapa tree, biasanya semakin tinggi tingkatan maka tree yang terdapat didalamnya pun semakin banyak. Pada stage 0 terdapat 2 tree dan pada stage 21 terdapat 212 tree.

Pencarian Fitur Wajah

Setelah file training dipanggil, training dilakukan terlebih dahulu untuk mendapatkan suatu pohon keputusan dengan nama cascade classifier sebagai penentu apakah ada obyek atau tidak dalam tiap frame yang di proses. Pencarian posisi wajah dilakukan dengan cara mencari fitur-fitur yang memiliki tingkat pembeda yang tinggi. Hal ini dilakukan dengan mengevaluasi setiap fitur terhadap data latih dengan menggunakan nilai dari fitur tersebut. Fitur yang memiliki batas terbesar antara wajah dan bukan wajah dianggap sebagai fitur terbaik. Contoh dari pencarian fitur wajah dapat dilihat pada Gambar 3.6.

Gambar 3.6 Contoh pencarian fitur wajah dengan haar cascade

Haar-like feature mempunyai sifat learner dan classifier yang lemah. Jika ingin mendapatkan hasil yang lebih akurat maka harus dilakukan proses haar-like feature secara massal, semakin banyak proses haar-like feature yang dilakukan maka akan semakin akurat hasil yang dicapai. Oleh karena itu pemrosesan haar-like feature yang banyak terebut diorganisir di dalam cascade classifier.


(51)

Pada Gambar 3.7 adalah alur kerja dari klasifikasi bertingkat.

Gambar 3.7 Proses Cascade Classifier

Pada klasifikasi filter pertama, tiap subcitra akan diklasifikasi menggunakan satu fitur. Jika hasil nilai fitur dari filter tidak memenuhi kriteria yang diinginkan, hasil ditolak. Algoritma kemudian bergerak ke sub window selanjutnya dan menghitung nilai fitur kembali. Jika didapat hasil sesuai dengan threshold yang diinginkan, maka dilanjutkan ke tahap filter selanjutnya. Hingga jumlah sub window yang lolos klasifikasi pun akan berkurang hingga mendekati citra yang ada pada sampel.

Seperti pada Gambar 3.7, dapat dijelaskan secara keseluruhan proses

cascade classifier-nya sebagai berikut : 1. Filter pertama (first classifier)

 1 fitur

Detection rate : 100%, false positive rate : 50% 2. Filter kedua (second classifier)

 5 fitur

Detection rate : 100%, false positive rate : 80% 3. Filter ketiga dan keempat (third and fourth classifiers)

 20 fitur

Pencarian fitur wajah sendiri dalam library EmguCV telah dideklarasi dalam class HaarCascade. Fungsi pencarian fitur wajah dalam Class HaarCascade dari library EmguCV adalah sebagai berikut:

public DetectHaarCascade(

imagegray, haarCascade, scaleFactor, minNeighbors,

HAAR_DETECTION_TYPE, minSize, maxSize )

Fungsi DetectHaarCascade akan memberikan nilai balikan berupa array citra. yaitu array khusus pada library EmguCV untuk menyimpan array hasil deteksi


(52)

objek. imagegray merupakan citra grayscale yang akan dideteksi, dimana citra ini adalah citra hasil dari proses tahap kamera. haarCascade adalah file training yang telah dipanggil pada tahap sebelumnya untuk menguji deteksi wajah. ScaleFactor

adalah faktor skala ketika pencarian fitur wajah, dimana jika slaka diisi 1.1 maka akan membuat skala windows lebih besar sebesar 10%. minNeighbors adalah jumlah minimum (minus 1) dari persegi tetangga yang membentuk sebuah objek.

minSize dan maxSize adalah ukuran minimum dan maksimum dari ukuran aplikasi

windows.

HAAR_DETECTION_TYPE adalah tipe-tipe dari pendeteksi Haar Cascade, dimana tipe-tipe tersebut adalah sebagai berikut :

1. DEFAULT

Jenis default di mana tidak ada optimasi dilakukan. Biasanya digunakan ketika mendeteksi objek.

2. DO_CANNY_PRUNING

Jika menggunakan tipe ini, fungsi deteksi akan menggunakan detektor tepi

Canny untuk menolak beberapa daerah gambar yang mengandung terlalu sedikit atau terlalu banyak tepi atau objek yang bukan dicari. Nilai ambang batas tertentu akan disetel untuk deteksi wajah dan dalam hal ini mempercepat pemangkasan sampai pengolahan citra.

3. SCALE_IMAGE

Untuk setiap faktor skala yang digunakan pada fungsi akan diturunkan skala gambarnya daripada melakukan zoom fitur koordinat pada cascade classifier.

4. FIND_BIGGEST_OBJECT

Fungsi ini untuk mencari objek terbesar dalam sebuah citra yang dideteksi.

5. DO_ROUGH_SEARCH

Fungsi ini akan aktif ketika fungsi FIND_BIGGEST_OBJECT dipanggil, sehingga fungsi tidak akan mencari hasil deteksi dari ukuran yang lebih kecil segera setelah menemukan objek yang lebih besar pada skala tertentu.


(53)

DO_CANNY_PRUNING merupakan salah satu tipe pendeteksi Haar Cascade, dimana tipe ini menggunakan algoritma deteksi tepi Canny. Detektor tepi

Canny adalah operator deteksi tepi yang menggunakan algoritma multi-tahap untuk mendeteksi berbagai macam tepi dalam gambar. Ini dikembangkan oleh John F. Canny pada tahun 1986. Operator Canny merupakan pendeteksi tepi hasil pengembangan pendekatan gradien. Dalam algoritma Canny, deteksi tepi ditemukan dengan melihat maksimum lokal pada gradien citra. Gradien dihitung dengan menggunakan turunan dari filter Gaussian. Dalam algoritma ini digunakan dua nilai threshold (ambang), untuk mendeteksi tepi yang kuat dan tepi yang lemah dan memasukkan tepi yang lemah dalam output hanya jika terhubung pada tepi yang kuat.

Penjelasan algoritma deteksi tepi Canny adalah sebagai berikut : 1. Penghalusan citra dengan filter Gaussian

2. Menghitung besar dan arah gradien untuk turunan parsial 3. Memakai nonmakisma suppression untuk besar gradien

4. Menggunakan double thresholding untuk mendeteksi dan menghubungkan sisi dari deteksi tepi

5. Melacak tepi dengan hysteresis: Finalisasi deteksi tepi dengan menekan semua tepi lain yang lemah dan tidak terhubung ke tepi yang kuat

Algoritma Canny bertujuan untuk memenuhi tiga kriteria utama: 1. Low error rate: deteksi yang baik hanya wujud tepi yang ada

2. Good localization : jarak antara tepi piksel terdeteksi dan tepi piksel nyata harus diminimalkan

3. Minimal response: satu detektor respons per tepi

Pada library EmguCV, algortima deteksi tepi Canny ini digunakan sebagai tipe deteksi Haar Cascade untuk membuang sejumlah tepi gambar yang bukan merupakan tepi dari lingkar wajah. Ini membuat pencarian fitur wajah menjadi jauh lebih cepat sehingga wajah akan terdeteksi tanpa harus melakukan pencarian secara menyeluruh terhadap gambar hasil capture dari webcam. Algortima Canny

menggunakan citra grayscale sebagai citra masukan untuk mendeteksi tepi dari citra. Algoritma Canny yang digunakan pada EmguCV merupakan salah satu


(54)

algortima yang diturunkan dari OpenCV. Pada library OpenCV, algoritma Canny

yang digunakan disebut Canny Edge Detection. Pemberian Kotak Wajah Terdeteksi

Pada tahapan ini, class Haar Cascade pada library EmguCV yang telah menghasilkan pola wajah diposisikan pada citra asli secara real-time melalui webcam. Hasil deteksi wajah yang telah dilakukan pada proses sebelumnya akan ditampilkan pada citra real-time dengan menampilkan sebuah kotak dimana posisi kotak tersebut adalah hasil deteksi lokasi wajah setelah dilakukan pencarian citra wajah pada tahap sebelumnya. Fungsi DetectHaarCascade yang pada proses sebelumnya menghasilkan citra array citra akan disimpan ke dalam citra array lain, dimana array citra ini selanjutnya akan dibuat sebuah kotak ke frame-frame hasil citra dari webcam. Fungsi untuk membuat kotak pada wajah yang telah dideteksi adalah sebagai berikut :

foreach (array face in DetectHaarCascade) {

frame.Draw(face.rect, Color, thickness); }

Array face adalah array citra khusus pada library EmguCV untuk menyimpan array hasil deteksi objek. DetectHaarCascade adalah fungsi pencarian wajah dari tahap sebelumnya. Fungsi Draw adalah fungsi turunan dari frame yang telah dipanggil pada tahap kamera, fungsi ini akan menggambar kotak pada citra dari webcam. Fungsi Draw sendiri terdiri dari face.rect, dimana array citra face

menghasilkan fungsi rectangle untuk menggambar sebuah kotak untuk objek yang berhasil terdeteksi, Color sebagai warna kotak, dan thickness sebagai ketebalan garis kotak.

Pada fungsi tersebut, setiap kali frame video dari webcam dideteksi sebagai wajah, maka kotak hasil deteksi akan muncul. Hasil pada proses ini dapat dilihat pada Gambar 3.8.


(55)

Gambar 3.8 Hasil deteksi wajah Estimasi Lokasi dan Posisi Wajah

Pada proses ini aplikasi akan mengestimasi lokasi dan juga posisi dari wajah berdasarkan lokasi hasil deteksi wajah dari proses sebelumnya. Lokasi wajah ditentukan dari nilai vector x, vector y, panjang dan lebar dari kotak deteksi wajah. Berikut fungsi dari penentuan lokasi kotak deteksi wajah :

foreach (array face in DetectHaarCascade) {

frame.Draw(face.rect, White, 2); int X = face.rect.X;

int Y = face.rect.Y;

int height = face.rect.Height; int width = face.rect.Width; }

Nilai dari setiap vector tersebut dikalkulasi menjadi nilai tengah dimana nilai tengah tersebut akan menjadi posisi dari objek 3 dimensi yang akan dimunculkan. Berikut adalah fungsi nilai tengah dari vector-vector tersebut :

Point center = new Point((X + (height / 2)),(Y + (width / 2)));

3.4.3. Tahap Augmented

Tahapan ini merupakan tahapan terakhir dalam algoritma dimana pada tahapan ini aplikasi akan melihat apakah marker wajah berhasil ditemukan atau tidak, apabila wajah berhasil dideteksi maka aplikasi akan memunculkan objek 3 dimensi berdasarkan lokasi wajah. Proses-proses yang ada dalam tahap ini dapat dilihat pada gambar 3.9.


(56)

Gambar 3.9 Proses dalam Tahapan Augmented Deteksi Marker Wajah

Proses deteksi marker wajah adalah proses untuk menentukan apakah wajah sebagai marker telah ditemukan dalam proses sebelumnya. Jika terdeteksi, maka proses selanjutnya akan dijalankan, namun jika wajah tidak terdeteksi maka proses

augmented reality tidak akan dijalankan. Berikut adalah fungsi deteksi marker wajah:

if (array face != null) {

bool marker = true; array markerAR = face; }

else {

bool marker = false; }

Estimasi Lokasi Marker Wajah

Pada proses ini aplikasi akan mengestimasi lokasi dari marker berdasarkan lokasi wajah dari proses sebelumnya. Pada tahapan ini lokasi wajah yang merupakan bidang 2 dimensi akan diestimasi ke bidang 3 dimensi dengan acuan


(57)

parameter intrinsic dari kamera yang telah didapatkan dari proses kalibrasi kamera. Hasil estimasi bidang 3 dimensi ini akan dibandingkan dengan objek 3 dimensi berupa objek helm yang telah diinisialisasi untuk menghasilkan vector skala dan juga translasi. Matriks skala dan matrik translasi ini merupakan matriks yang akan dipakai pada tahap berikutnya yaitu tahap memunculkan objek 3 dimensi. Pada tahap ini untuk mendapatkan matriks skala dan translasi digunakan fugnsi

solvePNP pada library EmguCV, berikut merupakan fungsi solvePNP :

bool SolvePnP(

IInputArray objectPoints, IInputArray imagePoints, IOutputArray scaleVector,

IOutputArray translationVector, bool useExtrinsicGuess = false,

SolvePnpMethod flags = SolvePnpMethod.Iterative )

Fungsi SolvePnP adalah fungsi untuk mencari vector translasi dan skala suatu objek 3 dimensi. Parameter objectPoints merupakan parameter point-point pada bidang 3 dimensi pada kasus ini adalah point-point objek 3D Helm pada bidang 3 dimensi. Parameter imagePoints merupakan parameter point-point dari marker dalam bidang 2 dimensi pada kasus ini adalah lokasi wajah yang didapatkan dari proses sebelumnya. Parameter intrinsicMatrix merupakan matriks intrinsic dari kamera yang didapatkan dari proses kalibrasi kamera. Parameter distortion adalah parameter distorsi kamera yang didapatkan dari proses kalibrasi juga. Parameter scaleVector merupakan parameter keluaran parameter ini akan mengeluarkan nilai dari vector skala yang akan digunakan dalam proses memunculkan objek 3 dimensi pada tahap berikutnya. Parameter translationVector merupakan parameter keluaran yang mengularkan nilai dari vector translasi.

Memunculkan Objek 3D

Tahapan ini merupakan tahapan terakhir pada tahapan augmented dan juga pada algoritma. Pada tahapan ini objek 3 dimensi yang dimaksud yaitu objek 3 dimensi berupa helm akan munculkan di wajah. Pada tahap ini aplikasi akan


(1)

102

Kesimpulan Pengujian Beta

Berdasarkan hasil pengujian beta dari hasil wawancara dengan pemilk toko Zona Helm dan kuesioner yang diberikan kepada 30 responden, dapat disimpulkan bahwa aplikasi yang dibangun sudah cukup memenuhi tujuan utama pembangunan aplikasi yaitu membantu konsumen dalam memilih helm dan membantu toko Zona Helm dalam mempromosikan toko serta helm yang dijual. Pengembangan yang perlu aplikasi ini kembangkan dari hasil kuesioner adalah model 3D helm yang masih terbatas dan basis aplikasi.


(2)

103

BAB 5

KESIMPULAN DAN SARAN

5.1. Kesimpulan

Kesimpulan yang dapat diperoleh dari hasil analisis, implementasi dan pengujian yang sudah dilakukan dan tujuan awal dari skripsi yang berjudul Implementasi Augmented Reality dengan Metode Face Detection sebagai Media Promosi Helm di Toko Zona Helm adalah sebagai berikut :

1. Pemanfaatan teknologi augmented reality berbasis kaca virtual sebagai media promosi helm pada Toko Zona Helm untuk mendukung kegiatan promosi helm di Toko Zona Helm.

2. Aplikasi yang dibangun dapat membantu konsumen dalam memilih model helm dengan warna helm yang berbeda-beda, dengan menampilkan model helm tersebut di wajah konsumen seperti mencoba helm pada umumnya. 3. Aplikasi ini sudah cukup menarik minat konsumen untuk datang dan

membeli helm di toko Zona Helm berdasarkan hasil pengujian kuesioner kepada para responden pengguna aplikasi ini, serta mempromosikan helm yang dijual pada toko tersebut.

5.2. Saran

Aplikasi Kaca Virtual Helm berbasis Augmented Reality ini masih memiliki banyak kekurangan dan memerlukan pengembangan yang lebih baik. Untuk memperoleh hasil yang optimal dari promosi helm berbasis augmented reality ini, beberapa saran untuk pengembangan aplikasi ke depannya adalah sebagai berikut : 1. Pendeteksian wajah masih memiliki kelemahan dari segi library yang terbatas maupun pencahayaan. Metode deteksi wajah menggunakan metode Candide Tracking atau metode Head Recognition dengan Kinect dapat menjadi salah satu solusi pengembangan aplikasi ini kedepannya.

2. Untuk mengoptimalkan promosi helm yang dilakukan oleh toko Zona Helm ini diharapkan dapat dikembangkan lagi ke aplikasi berbasis website dan pemodelan objek 3D helm menggunakan model asli dari helm serta penambahan interaksi dengan pengguna aplikasi.


(3)

BIODATA PENULIS

DATA PRIBADI

Nama : Robin Lieson

NIM : 10111029

Tempat, Tgl Lahir : Bandung, 7 April 1993 Jenis Kelamin : Laki-Laki

Agama : Kristen

Alamat : Cluster Cibaduyut No. 16, Kota Bandung No. Telp : 081809897289

E-Mail : robinlieson92@gmail.com

PENDIDIKAN FORMAL

Tahun 2011 : Universitas Komputer Indonesia, Fakultas Teknik dan Ilmu

Komputer, Jurusan Teknik Informatika,Jenjang Strata 1.

Tahun 2008– 2011 : SMK Prakarya Internasional Kota Bandung

Tahun 2005– 2008 : SMP Kristen Rehoboth Kota Bandung

Tahun 1999– 2005 : SD Kristen Rehoboth Kota Bandung


(4)

(5)

(6)