• Tidak ada hasil yang ditemukan

Pembangunan Sistem Pengenalan Objek Pada Permainan Monopoli Menggunakan Algoritma Speeded Up Robust Features

N/A
N/A
Protected

Academic year: 2017

Membagikan "Pembangunan Sistem Pengenalan Objek Pada Permainan Monopoli Menggunakan Algoritma Speeded Up Robust Features"

Copied!
189
0
0

Teks penuh

(1)

1

BAB 1

PENDAHULUAN

1.1. Latar Belakang Masalah

Dalam sebuah permainan, pemain yang mahir bukan menjadi sebuah masalah jika dihadapkan dengan pemain yang baru karena selain sudah berpengalaman juga sudah mengetahui cara untuk menang. Kebutuhan pemain akan suatu tantangan dalam sebuah permainan menjadi salah satu tujuan para pemain untuk meningkatkan kemampuannya dalam bermain atau berlatih dalam suatu perlombaan. Salah satu alternatif dalam upaya yang dilakukan untuk melatih kemampuan dalam bermain adalah dengan menerapkan kecerdasan buatan pada permainan tersebut sebagai lawan bermain. Kecerdasan buatan tradisional pada sebuah permainan monopoli, ditanamkan bersamaan dengan permainan itu sendiri, dengan ini kecerdasan buatan dapat mengakses lebih banyak informasi mengenai permainan yang dimainkan [1]. Kecerdasan buatan pada sebuah permainan monopoli di komputer dalam menentukan sebuah properti itu sudah terjual atau tidak, dilakukan dengan perbandingan nilai dari variable yang di tanamkan pada tiap tiap objek. Variable adalah suatu lokasi penyimpanan di dalam memori komputer yang berisikan nilai atau informasi yang nilainya tidak diketahui maupun telah diketahui [2]. Apabila nilai dari variable tersebut kosong, maka properti tersebut tidak ada yang memiliki, namun jika nilai dari variable tersebut terisi, maka properti tersebut sudah ada yang memiliki.

(2)

2

melihat kumpulan properti pemain itu sendiri dan pemain lainnya dengan mencocokan warna, nama atau gambar dari properti tersebut. Untuk itulah, diperlukan suatu pengembangan terhadap kecerdasan buatan dalam mengenali sebuah objek, seperti menggunakan pengenalan terhadap objek (Object Recognition). Dengan menggunakan pengenalan objek, sistem membandingkan antara objek satu dengan objek lainnya bukan berdasarkan nilai yang diberikan pada suatu variable pada tiap objek, melainkan dengan menggunakan gambar atau citra dari objek tersebut. Sehingga akan membuat kecerdasan buatan tersebut dapat lebih dekat dalam mengikuti tingkah laku manusia.

(3)

Dari penjelasan yang sudah dipaparkan diatas, maka dibutuhkan suatu sistem “Pembangunan Sistem Pengenalan Objek Pada Permainan Monopoli Menggunakan Algoritma Speeded Up Robust Features”.

1.2. Identifikasi Masalah

Pada pengenalan dan pengambilan keputusan terhadap suatu objek seperti yang dijelaskan di atas, dapat di identifikasi masalahnya adalah bagaimana mendeteksi kepemilikan dari sebuah properti pada permainan monopoli fisik menggunakan kecerdasan buatan yaitu pengenalan objek pada komputer.

1.3. Maksud dan Tujuan

Berdasarkan permasalahan yang ada, maksud dari penelitian tugas akhir ini adalah untuk membuat sistem yang dapat mendeteksi kepemilikan dari sebuah properti dalam permainan monopoli .

Sedangkan tujuan dari penelitian tugas akhir ini adalah menciptakan aplikasi yang dapat mengenali objek dengan bantuan kecerdasan buatan untuk mendeteksi kepemilikan properti pada permainan monopoli fisik menggunakan metode Speeded Up Robust Feature.

1.4. Batasan Masalah

Pada penelitian ini, batasan masalah yang akan dibahas adalah sebagai berikut 1. Citra yang digunakan untuk citra masukan pada penelitian kali ini adalah Citra

bergerak atau berupa kumpulan gambar(video) dengan ukuran 640 x480 pixel . Pixel adalah titik fisik dalam sebuah gambar raster.

2. Aplikasi yang akan dibangun berupa pengenalan terhadap objek serta pendeteksian kepemilikan dari sebuah properti.

3. Edisi monopoli yang digunakan dalam penelitian kali ini adalah Monopoli edisi Littlest Pet Shop menggunakan kartu properti yang dimodifikasi sehingga terdapat gambar properti pada tiap kartu properti dan tanpa menggunakan bidak. 4. Komputer menjadi pemain, dan hanya terdapat 1 buah pemain dengan tipe

(4)

4

5. Tiap pemain memiliki tempat kartu properti sebanyak 5 tempat kartu per pemain.

6. Pencarian menggunakan alat bantu daerah jangkauannya dibatasi sebanyak 25cm (dari alat bantu ke arah depan, samping kiri dan samping kanan).

7. Bahasa Pemrograman menggunakan C#.

8. Menggunakan Library Emgu CV , yaitu library Open CV yang mensupport bahasa pemrograman C# dengan menggunakan metode SURF (Speeded Up Robust Features) yaitu metode pendeteksi Feature atau potongan informasi pada sebuah gambar, dengan proses pencocokannya menggunakan metode FLANN (Fast Approximate Nearest Neighbor Search), yaitu perkiraan cepat pencarian tetangga terdekat dalam ruang dimensi yang tinggi [5].

1.5. Metodologi Penelitian

Metode penelitian merupakan cara utama yang digunakan peneliti untuk mencapai tujuan dan menentukan jawaban atas masalah yang diajukan. Pada penelitian kali ini akan digunakan metode penelitian developmental research [6].

Metode penelitian developmental research, yaitu salah satu paradigma penelitian yang berguna untuk merancang dan mengembangkan suatu model tertentu sesuai dengan tujuan yang diharapkan. Tujuan dari penelitian developmental research ini adalah untuk menghasilkan dan mengembangkan sebuah produk berupa prototipe, desain, materi pembelajaran, media alat, atau strategi pembelajaran, untuk mengatasi masalah.

1.5.1. Metode Pengumpulan Data

(5)

1.5.2. Metode Pembangunan Perangkat Lunak

Pembangunan perangkat lunak ini menggunakan metode pengembangan Linear Sequential Model, yang meliputi beberapa proses diantaranya [7]:

1. Analysis

Proses pengumpulan kebutuhan kebutuhan yang diintensifkan dan difokuskan secara spesifik kepada perangkat lunak.

2. Design

Desain adalah proses mendesain perangkat lunak seacara aktual yang berfokus pada empat buah atribut berbeda dari program , yaitu struktur data, arsitektur perangkat lunak, representasi antar muka, dan detail prosedural.

3. Code

Setelah mendesain perangkat lunak, kemudian proses selanjutnya mengubah hasil desain ditranslasikan kedalam bahasa mesin.

4. Test

Proses terakhir adalah mentest perangkat lunak yang difokuskan pada logika internal dari perangkat lunak , memastikan bahwa statement telah diuji.

Gambar 1.1 Model Linear Sequential Model [7]

1.6. Sistematika Penulisan

(6)

6

BAB 1 PENDAHULUAN

Pada bab ini memuat latar belakang masalah, identifikasi masalah, maksud dan tujuan penelitian, batasan masalah, metodologi penelitian yang digunakan serta sistematika penulisan.

BAB 2 LANDASAN TEORI

Bab 2 berisi teori yang berkaitan dengan Game, Monopoli, Citra, Kecerdasan Buatan, Pengenalan Objek, Speeded Up Robust Feature (SURF), Fast Approximate Nearest Neighbor Search (FLANN), Unified Modelling Languange (UML), EmguCV dan Arduino.

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

Pada bab ini akan dilakukan analisis kebutuhan dan perancangan sistem yang akan digunakan untuk mengenali objek dengan menggunakan LibraryEmgu CV pada bahasa pemrograman C#.

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

Bab ini berisi implementasi dan pengujian sistem berdasarkan analisis dan perancangan yang dilakukan pada bab 3. Pengujian dilakukan dengan metode Black Box dan White Box , pengujian deteksi petak dan pengujian multiplayer.

BAB 5 KESIMPULAN DAN SARAN

(7)

7

BAB 2

LANDASAN TEORI

2.1. Game

Game adalah suatu aktifitas yang tidak dilakukan dengan sungguh sungguh [8]. Pengertian Game menurut beberapa ahli [9] diantaranya adalah sebagai berikut:

a. Menurut Ivan C Sibero, Game merupakan salah satu aplikasi yang paling banyak dipakai dan dinikmati oleh pengguna media elektronik saat ini. b. Menurut Samuel Henry Game adalah sesuatu yang tidak bisa dipisahkan

dari keseharian anak anak.

c. Menurut Fauzia A Game adalah salah satu bentuk hiburan yang dapat dijadikan sebagai penyegar pikiran dari kepenatan akibat dari padatnya aktivitas sehari hari.

d. Menurut John Naisbitt Game merupakan sistem partisipatoris dinamis karena Game memiliki tingkat penceritaan yang tidak dimiliki film. e. Menurut Wiaya Ariyana dan Arifianto Game adalah salah satu kebutuhan

sekaligus menjadi masalah besar bagi para pengguna komputer, hal tersebut dikarenakan untuk dapat menjalankan suatu Game dengan nyaman, maka dibutuhkan spesifikasi komputer yang relatif tinggi dibanding komputer untuk penggunaan biasa.

Dari beberapa pendapat yang dikemukakan oleh para ahli , dapat disimpulkan bahwa Game adalah sebuah kebutuhan untuk menghibur dari kepenatan dan tidak dapat dipisahkan dari keseharian anak anak.

2.2. Monopoli

(8)

8

mengerti bagaimana pemilik tanah memperkaya dirinya dan mempermiskin para penyewa [10]. Permainan monopoli yang standar biasanya memiliki peralatan sebagai berikut:

a. Kartu, Sebanyak 32 kartu kesempatan dan dana umum ( 16 kartu kesempatan dan 16 kartu dana umum). Dimana pemain mengambil kartu tersebut ketika berada pada petak kesempatan atau dana umum.

b. Properti, 22 properti yang dapat dikembangkan dengan rumah atau hotel, 4 jalur kereta api, 2 utilitas (utility).

c. Dadu, sepasang atau 2 buah 6 sisi dadu, pada c penggunaan dadu tergantung dalam waktu dan kondisi tertentu. Seperti perang dunia ke II, dadu digantikan dengan papan putar atau Spinner dikarenakan terbatasnya material dari dadu pada jaman tersebut .

d. Rumah dan Hotel, 32 rumah dan 12 hotel terbuat dari kayu dan plastik. e. Uang, pada permainan monopoli lama terdapat uang dengan total $15,140,

sedangkan pada permainan monopoli baru meningkat menjadi $20,580. f. Serta bidak atau tokens, sebagai representasi dari pemain.

2.2.1. Gameplay

Cara memainkan monopoli berbeda beda pada tiap negara maupun tiap daerah. Ada yang menambah peraturannya sendiri dan ada yang mengurangi peraturan yang sudah ada. Peraturan yang resmi dikeluarkan oleh Parker Brothers dari artikel “Monopoly Parker Brothers Real Estate Trading Game “ [11]. itu sendiri adalah sebagai berikut:

(9)

tersebut ketika giliran pemain itu kembali bermain. Dua atau lebih bidak dapat ditempatkan di posisi yang sama pada waktu yang bersamaan. 2. GO, ketika bidak pemain berada atau melewati GO, pemain dapat

melempar dadu atau mengambil kartu serta banker memberi uang sebanyak $200. Uang tersebut diberikan kepada pemain setiap kali melewati atau berada di GO, pemain bisa saja mendapatkan uang sebanyak dua kali lipat apabila setelah melewati GO dan berhenti di dana umum atau kesempatan yang kemudian mendapatkan kartu untuk maju sampai GO.

3. Membeli properti, ketika suatu pemain berada pada properti yang tidak dimiliki oleh pemain lain, pemain tersebut dapat membeli properti tersebut dengan cara membayar uang yang tertera pada harga properti tersebut kepada Banker. Pemain yang berada pada properti yang tidak dimiliki oleh pemain lain dan tidak membeli properti tersebut. Maka banker akan melakukan pelelangan terhadap properti tersebut, pelelangan dapat dimulai pada harga berapapun.

4. Membayar Sewa, ketika suatu pemain berada pada properti yang dimiliki oleh pemain lain, pemain tersebut harus membayar uang sewa kepada pemain yang memiliki properti tersebut. Apabila properti yang dimiliki digadaikan, maka pemain yang berada pada properti tersebut tidak mengeluarkan uang sewa kepada pemain yang memilikinya. Ketika pemain memiliki semua properti dengan warna group yang sama, maka pemain tersebut dapat menaikan uang sewa menjadi dua kali lipat. Peraturan ini berlaku bagi properti yang tidak digadaikan, walaupun kartu lainya dengan warna yang sama digadaikan.

5. Dana Umum dan Kesempatan, ketika berada pada tempat dana umum atau kesempatan, ambil kartu paling atas dan ikuti petunjuk yang tertera. Kemudian taruh kembali kartu tersebut paling bawah dari tumpukan dimana kartu tersebut diambil.

(10)

10

7. Penjara, seorang pemain akan berada dipenjara apabila bidak pemain berada pada petak bertuliskan “Go to Jail”, mengambil kartu yang bertuliskan “Go to Jail”, atau melempar dadu kembar atau doubles sebanyak tiga kali berturut turut. Ketika pemain akan dikirimkan kedalam penjara, pemain tersebut tidak mendapatkan uang $200 dalam perjalanannya ke penjara, dimanapun bidak pemain berada, bidak pemain tersebut masuk penjara secara langsung. Apabila pemain yang sebelumnya tidak dipenjara dan berada di petak bertuliskan penjara atau “Jail”, maka pemain tersebut hanya menjenguk atau melewati penjara saja. Seorang pemain akan keluar dari penjara apabila melempar dadu secara

2.3. Citra

Citra adalah kombinasi antara titik, garis, bidang dan warna untuk menciptakan suatu imitasi dari suatu objek. Citra bisa berupa gambar dua dimensi seperti lukisan, foto, dan berwujud tiga dimensi seperti patung [12]. Gambar atau Citra telah berkembang seiring dengan peradaban manusia, bentuknya tidak lagi hanya sebuah lukisan prasejarah. Sekarang ada foto yang dihasilkan dengan menangkap cahaya pada medium yang telah dilapisi bahan kimia peka cahaya atau sensor digital [12].

2.3.1. Pengolahan Citra

(11)

2.4. Kecerdasan Buatan

Kecerdasan buatan (Artificial Intelligence) atau sering disebut AI adalah suatu ilmu yang mempelajari cara membuat komputer melakukan sesuatu seperti yang dilakukan oleh manusia [14]. Kecerdasan buatan memiliki penafsiran yang berbeda beda oleh para ahli namun memiliki makna yang sama, berikut adalah pengertian kecerdasan buatan menurut para ahli [14]:

a. Menurut H. A. Simon menjelaskan bahwa kecerdasan buatan (Artificial Intelligence) merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas.

b. Menurut Rick and Knight menjelaskan bahwa Kecerdasan buatan (Artificial Intelligence) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia, dengan tujuan utama dari kecerdasan buatan itu sendiri adalah membuat mesin menjadi lebih pintar.

2.5. Pengenalan Objek

Pengenalan objek (Object Recognition ) adalah menemukan objek pada dunia asli dari sebuah gambar menggunakan model [15]. Algoritma pengenalan objek bergantung pada pencocokan, pembelajaran atau algoritma pengenalan pola yang menggunakan tehnik berbasis fitur. Beberapa metode yang populer dalam pengenalan objek dan pendekatannya dalam penelitian ini dapat menggunakan metode OCR, Template Matching dan yang berbasis Feature seperti FAST, SURF dan SIFT.

2.5.1. Pengenalan Karakter Optik (Optical Character Recognition)

(12)

12

mungkin. Serta menggunakan format tiff agar tidak ada informasi yang hilang pada citra tersebut [17]. Pada Tabel 2.1 berikut menjelaskan proses serta faktor yang mempengaruhi pengenalan karakter optik tersebut [17]:

Tabel 2.1 Proses dan faktor yang mempengaruhi pengenalan karakter optik [17]

Langkah Proses

Faktor yang mempengaruhi

pengenalan karakter optik Aksi yang disarankan

Mengambil

Citra asli

Kualitas dari citra a. Menggunakan hard copies jika dana mencukupi .

b. Hard copies harus bersih dari debu dan benda yang menghalangi agar dapat mengambil informasi yang banyak

Memindai file Resolusi pemindaian dan format

dari file

a. Resolusi pemindaian harus lebih atau sama dengan 300 dot per inch untuk mengambil informasi gambar sebanyak mungkin. b. Format dari file harus

tidak menggunakan kompresi(lossless) agar tidak ada informasi atau data yang hilang ,misalnya format tiff.

Membuat

kontras yang

baik antara

hitam dan putih

di file citra

a. Kedalaman warna dari gambar.

b. pengoptimasian citra atau proses mengubah menjadi biner. c. Kualitas dari sumber

atau citra.

a. Memindai citra sebagai citra abu abu

(GreyScale).

b. Pengoptimasian citra untuk pengenalan karakter optik untuk meningkatkan kontras citra melalui perangkat lunak pemindaian atau perangkat lunak lainnya. c. Jika gambar adalah

(13)

Langkah Proses

Faktor yang mempengaruhi

pengenalan karakter optik Aksi yang disarankan

optimasi atau pengubahan kedalam bentuk biner.

d. Mengambil citra sumber yang paling baik kualitasnya.

Perangkat

Lunak

pengenalan

karakter optik

tahap layout dari

citra

a. Citra yang tidak tegak lurus atau miring (Skewed Images). b. Citra yang memiliki

layout yang kompleks atau rumit.

c. Kecukupan jarak putih diantara baris, klom dan pada batas text pada sisi citra, sehingga dapat dikenali.

a. Meluruskan citra pada langkah pengolahan citra agar baris kata

horizontal .

b. Layout dari citra dan jarak putih antar baris tidak bisa diubah.

Perangkat lunak

pengenalan

karakter optik

tahap analisa

tiap karakter.

a. Pengoptimasian Citra. b. Kualitas dari citra

sumber.

a. Citra di optimasi untuk pengenalan karakter optik agar tepi dari karakter lebih halus jelas dan tajam untuk

meningkatkan akurasi dari pengenalan karakter tersebut.

b. Mengambil sumber sebaik mungkin. Perangkat lunak pengenalan karakter optik tahap pencocokan tepi karakter dari

citra Sample dan

membuat

keputusan untuk

mengidentifikasi

a. Citra Sample pada database perangkat lunak pengenalan karakter optik. b. Algoritma pada

pengenalan karakter optik.

(14)

14

Langkah Proses

Faktor yang mempengaruhi

pengenalan karakter optik Aksi yang disarankan

dari suatu

karakter.

Perangkat lunak

pengenalan

karakter optik

tahap

mencocokan

seluruh kata

pada kamus dan

mengambil

keputusan .

a. Algoritma dan kamus yang ada pada perangkat lunak pengenalan karakter optik.

a. Memilih perangkat lunak yang bagus untuk pengenalan karakter optik

Gambar 2.1 Proses penghapusan Border dan Halftone [18]

(15)

Gambar 2.3 Proses Cropping [18]

Gambar 2.4 Proses pelurusan gambar[18]

(16)

16

Gambar 2.6 Proses Eroding[18]

Gambar 2.7 Proses penghalusan[18]

(17)

Gambar 2.9 Proses penghapusan garis[18]

Gambar 2.10 Proses penghapusan Noise [18]

(18)

18

Gambar 2.12 Proses skala[18]

Dalam artikel lain yang berjudul “The DPI You Should Be Scanning Your Paper Photographs” melakukan penelitian waktu yang digunakan pada pemindaian dengan DPI tertentu pada gambar dengan ukuran 3,5 X 3,5”. Untuk pemindaian 300 DPI membutuhkan waktu 12 detik [18]. Masalah yang timbul saat pendeteksian OCR adalah seperti text yang tidak lurus (Straight Line), tiap karakter berdempetan, juga resolusi yang kecil [19]. Untuk mengatasi masalah seperti diatas pada OCR dapat dilakukan dengan berbagai macam pemprosesan gambar diantaranya adalah Deskew(Meluruskan gambar), Line Removal/Editing (Menghapus garis), juga Noise Removal (Menghilangkan bercak bercak hitam) [20]. DPI atau Dot per Inch adalah pengukuran kepadatan titik pada cetakan spasial atau video. Tiff atau Tagged Image File Format adalah format file komputer untuk menyimpan gambar raster (raster image), serta menggunakan kompresi loseless tanpa mengubah kualitas gambar. Proses proses yang terjadi dalam meningkatkan akurasi pada OCR yang dijelaskan pada “Oracle Distributed Document Capture/Oracle Document Capture Administrator’s Guide” diantaranya adalah sebagai berikut :

a. Penghapusan Border, Halftone dan lubang

(19)

b. Cropping

Proses ini membuang bagian yang tidak perlu pada sebuah teks. Seperti pada Gambar 2.3 citra sesudah melalui proses ini akan membuang bagian yang tidak perlu untuk meningkatkan efisiensi dari proses pengenalan karakter optik.

c. Meluruskan gambar yang miring

Proses ini untuk meluruskan gambar yang posisinya tidak lurus atau miring. Pada Gambar 2.4 terlihat setelah melalui proses ini akan lebih mudah mengenali karakter yang horizontal.

d. Dilating and Eroding

Proses Dilating adalah untuk membesarkan area hitam pada huruf. Juga dapat meningkatkan kualitas gambar namun meningkatkan ukuran file gambar tersebut. Seperti pada Gambar 2.5 karakter terlihat lebih tebal dari sebelumnya.

Untuk proses Eroding digunakan untuk mengecilkan area hitam pada huruf. Proses ini mengecilkan ukuran file gambar, namun menurukan detail dari gambar tersebut. Pada Gambar 2.6 karakter terlihat lebih tipis dari sebelumnya.

e. Penghalusan dan pembalikan warna

Proses Penghalusan (Smoothing) adalah untuk menghapus benjolan atau gumpalan diluar teks maupun kilauan didalam teks. Pada Gambar 2.7 karakter yang terdapat benjolan atau kilauan diperbaiki menjadi karakter yang normal.

Proses pembalikan warna ( Inverting) adalah untuk mengubah pixel hitam ke pixel putih. Seperti pada Gambar 2.8 yang sebelumnya berwarna hitam menjadi warna putih.

f. Penghapusan garis

Proses ini menghapus garis yang ada dalam sebuah gambar. Pada Gambar 2.9 beberapa garis dihilangkan dengan ketebalan tertentu.

g. Penghapusan Noise

(20)

20

h. Rotasi dan Skala

Proses ini untuk merotasikan gambar serta men-scale gambar. Pada Gambar 2.11 gambar dirotasi ke arah tertentu. Pada Gambar 2.12 gambar diskala dan dapat digunakan untuk meningkatkan akurasi dari proses pengenalan karakter optiknya. 2.5.2. Pencocokan Sampel

Metode Pencocokan Sampel adalah sebuah tehnik dalam pemprosesan citra untuk menemukan bagian kecil dari sebuah gambar yang cocok dengan gambar sampel [21]. Namun dari metode ini memiliki banyak kelemahan seperti sensitif terhadap distorsi pola, seperti arah penglihatan (Angle of Viewing), sensitif terhadap ukuran dan rotasi, serta komputasi dalam komputer yang besar [22]. Contoh dari pencocokan sampel seperti pada Gambar 2.13 berikut.

Gambar 2.13 Contoh Template Matching koin [23] 2.5.3. Pendeteksian Berbasis Feature

(21)

adalah metode pendeteksi sudut (Corner Detection), yang dapat digunakan untuk menghasilkan Feature. Sedangkan Features di dalam penglihatan komputer adalah sebuah potongan informasi, yang mungkin menjadi struktur spesifik dalam sebuah gambar seperti points, tepi (Edge), atau objek. Deskriptoradalah representasi dari sebuah fitur.

Tabel 2.2 Perbandingan ketiga algoritma dalam mendeteksi Feature [3]

(22)

22

Tabel 2.4 Efisiensi dari metode SURF[3]

Tabel 2.5 Efisiensi dari metode FAST[3]

(23)

Gambar 2.14 Graph akurasi dan partikel yang dihasilkan tiap metode[3] Metode SIFT atau Scale Invariant Feature Transform adalah algoritma untuk mendeteksi den mendeskripsikan fitur lokal dari sebuah gambar. Metode SURF atau Speeded Up Robust Feature adalah metode yang dikembangkan dari metode SIFT dengan fungsi yang sama sebagai algortima pendeteksi fitur yang dapat digunakan dalam penglihatan komputer seperti pengenalan objek (Object Recognition) [4]. Perbedaan dari metode SIFT dalah penggunaan gambar integral (Integral Image) sebagai basis atau dasar dari pendeteksiannya [3]. Metode FAST atau Features From Accelerated Segment Test adalah metode pendeteksi sudut (Corner Detection), yang dapat digunakan untuk menghasilkan Feature. Sedangkan Features di dalam penglihatan komputer adalah sebuah potongan informasi, yang mungkin menjadi struktur spesifik dalam sebuah gambar seperti points, tepi (Edge), atau objek.

2.6. Speeded Up Robust Feature (SURF)

(24)

24

kunci tingkat tinggi dalam sebuah gambar, dimana gambar diubah kedalam bentuk koordinat menggunakan tehnik multi-resolution.

2.6.1. Integral Image

Gambar integral atau penjumlahan area tabel (Summed Area Table) dikomputasi secara cepat dari gambar masukan dan digunakan untuk mempercepat kalkulasi dari area persegi panjang yang tegak lurus seperti konvolusi dengan Box Filter atau box blur. Dengan menggunakan gambar integral dalam menentukan jumlah intensitas pixel, dapat dikalkulasikan dengan rumus 2.1 sebagai berikut dan contoh area komputasi dari gambar integral pada gambar 2.17 [4]:

... (2.1)

Misal terdapat sebuah matriks gambar masukan sebagai berikut pada Gambar 2.15, kemudian akan dicari penjumlahan dari area komputasi tertentu (A,B,C,D) dalam matriks gambar (O) tersebut seperti Gambar 2.16.

Gambar 2.15 Contoh gambar masukan

Gambar 2.16 Contoh area komputasi [4]

1

2

2

4

1

3

4

1

5

2

2

3

3

2

4

4

1

5

4

6

(25)

Pertama adalah mencari gambar integralnya atau penjumlahan area tabel menggunakan rumus (2.2) dengan cara menjumlahkan nilai mulai dari kiri atas seperti Gambar 2.17. i adalah gambar masukan, S adalah jumlah nilai pada posisi x dan y, x dan y adalah sumbu koordinat.

, , , , , (2.2)

Gambar 2.17 Ilustrasi perhitungan nilai S(x,y) Gambar Integral

Untuk menentukan nilai S(x,y) atau gambar integral pada posisi x dan y. Dikarenakan x-1, y-1serta x-1 y-1 diluar dari batas angka matriks yang ada, maka secara default diberi nilai 0. Tahapan pembentukan gambar integral adalah sebagai berikut, apabila titik yang ingin dicari nilainya adalah S(x,y) :

1. Untuk mencari nilai S(x,y) pada Gambar 2.18 berikut, jumlahkan hasil dari tiap tiap S dengan menggunakan Gambar 2.19.

2. Hasilnya dimasukan kedalam rumus (2.2). 3. Didapatlah hasilnya seperti Gambar 2.20.

Gambar 2.18 Mencari nilai S(x,y) gambar integral

S(x

1,y

1)

 

1

S(x,y

1)

 

(26)

26

Gambar 2.19 Gambar awal

Kemudian dicari nilainya sampai semuanya terhitung seperti yang terlihat pada Gambar 2.20.

Gambar 2.20 Hasil gambar Integral

Setelah semua terisi, dimisalkan ingin mencari penjumlahan dari area yang di beri tanda kotak merah pada Gambar 2.21 menggunakan rumus gambar integral (Integral Images) yaitu rumus (2.1).

Gambar 2.21 Area yang akan dicari jumlah pixel-nya

Sehingga menjadi 46 + 10 – 22 – 20 = 14, 14 adalah jumlah dari nilai yang diberi kotak pada gambar awal pada gambar 3.7, 3 + 2 + 5 + 4 = 14 .

1

2

3

i(x,y)

       

4

1

3

5

9

10

4

10

13

22

25

6

15

21

32

39

10

20

31

46

59

16

29

42

58

74

1

3

5

9

10

4

10

13

22

25

6

15

21

32

39

10

20

31

46

59

16

29

42

58

74

A

B

(27)

Gambar 2.22 Gambar awal 2.6.2. Key Point Detection

Pendeteksian pada SURF menggunakan matriks hessian. Dalam pengimplementasian matriks tersebut, digunakan sebuah fungsi f(x,y) kedalam matriks tersebut. Matriks hessian adalah turunan parsial dari fungsi f seperti pada rumus (2.3) sebagai berikut.

,

... (2.3)

Determinan dari matrik ini disebut juga sebagai diskriminan dikalkulasikan dengan rumus (2.4)

det

... (2.4)

Nilai diskriminan tersebut digunakan untuk mengklasifikasikan maxima dan minima dari sebuah fungsi turunan orde dua. Dikarenakan determinan adalah produk dari nilai eigen pada hessian, dapat diklasifikasikan sebuah titik berdasarkan tanda dari hasilnya. Jika determinannya negatif maka nilai eigennya memiliki tanda yang berbeda dan tidak berada pada extrenum lokal biasa disebut maximum atau minimum. Dan dapat berupa lokal atau relative dimana extrenum tersebut bukanlah yang paling besar atau kecil (overall) pada batas yang diberikan [25]. Sebaliknya jika determinannya positif maka antara nilai eigen adalah positif atau negatif dan titik tersebut diklasifikasikan sebagai extrenum. Untuk menggunakan rumus ini

1

2

2

4

1

3

4

1

5

2

2

3

3

2

4

4

1

5

4

6

(28)

28

pada gambar digunakanlah turunan kedua dari gaussian sehingga matriks tersebut menjadi seperti rumus (2.5) berikut. Untuk menghitung determinannya metode SURF menggunakan pendekatan hessian seperti rumus (2.6) berikut. Metode SURF memanfaatkan pendekatan Laplacian of Gaussian menggunakan Box Filter yang sudah ditentukan kernelnya. Penggunaan kernel dengan beban yang simpel pada SURF meningkatkan kemudahan dalam pemprosesannya. Box Filter ini dapat dipercepat perhitungannya menggunakan integral image [4].

, ,, ,, ... (2.5)

det . ... (2.6) Ruang skala atau Scale Space adalah fungsi yang berkelanjutan atau continous function yang digunakan untuk menentukan extrema atau biasa disebut maximum dan minimum dari sebuah fungsi dari segala kemungkinan skala. Dalam penglihatan komputer ruang skala biasanya diimplementasikan sebagai gambar piramid seperti pada Gambar 2.23 [4].

Gambar 2.23 Ruang Skala [4]

Ruang skala tersebut dibagi menjadi beberapa Octave. Dimana sebuah Octave yaitu serangkaian peta respon yang meliputi penggandaan skala. Untuk menghitung skala pada tiap filter dapat menggunakan rumus (2.7) berikut.

(29)

untuk meningkatkan ukurannya dibatasi oleh panjang lobe yang direpresentasikan garis hitam pada arah tertentu dari turunan orde dua gaussian. Pada pendekatan turunan orde dua gaussian ukuran lobe di buat satu pertiga dari panjang filter seperti pada Gambar 2.24, Gambar 2.25 dan Gambar 2.26.

Lobe

Gambar 2.24 LobeFilter arah X [4]

(30)
[image:30.612.207.401.101.283.2]

30

Gambar 2.26 LobeFilter arah XY [4]

Dikarenakan terdapat 3 buah lobe pada tiap filter yang ukurannya harus sama, langkah (step) terkecil diantara filter tersebut adalah 6. Pada SURF secara default menggunakan 3 Octave dan 4 Interval pada tiap Octave nya seperti pada Gambar 2.27 [4].

Gambar 2.27 Octave dan Interval/ Scale [4]

Untuk mencari penempatan titik kunci yang tetap atau invariant pada rotasi dan skala dalam sebuah gambar dapat dilakukan dengan tiga cara. pertama dengan cara tresholding atau ambang batas.Ini bertujuan agar semua nilai dibawah ambang batas dihapus sehingga apabila ambang batas dinaikan maka akan terdapat sedikit titik kunci yang terdeteksi begitu juga sebaliknya. Penentuan ambang batas ini dapat diadaptasikan atau ditentukan pada tiap aplikasi. Setelah di tresholding dilakukan penekanan non-maximal seperti Gambar 2.28 untuk menentukan titik

Lobe

(31)
[image:31.612.266.402.148.267.2]

kandidat atau calon dari titik kunci. Dengan cara membandingkan 6 tetangga yang terdiri atas 8 titik di Scale asli dan 9 di tiap Scale atas dan bawahnya [4].

Gambar 2.28 Penekanan Non Maximal [4] 2.6.3. Descriptor Key Point

Deskriptor pada SURF menjelaskan bagaimana intensitas pixel di distribusikan dalam tiap titik kunci. Pendekatan ini sama dengan apa yang ada pada SIFT, namun dalam SURF menggunakan gambar integral untuk meningkatkan robustness dan mengurangi waktu komputasi [4].

Untuk mendapatkan titik yang tetap atau invariance pada rotasi setiap titik kunci yang terdeteksi seperti pada Gambar 2.29 dan ditugaskan untuk dapat mereproduksi ulang pada orientasi. Untuk menentukan orientasi Haar Wavelet atau urutan yang berbentuk persegi dari ukuran 4σ dihitung untuk beberapa bagian pixel di dalam jangkauan 6σ dari point yang terdeteksi [4]. Tanggapannya akan diukur dengan Gaussian yang terletak ditengah pada titik kunci dan kemudian direpresentasikan sebagai titik padaruang vektor [4].

[image:31.612.231.441.539.629.2]
(32)

32

2.7. Fast Library for Approximate Nearest Neighbors(FLANN)

Fast Library for Approximate Nearest Neighbors adalah sebuah library untuk melakukan pendekatan yang cepat dalam pencarian tetangga terdekat pada ruang dimensi yang tinggi. Fast Library for Approximate Nearest (FLANN) ditulis dalam bahasa C++ dan bisa dieksekusi oleh bahasa lainnya seperti C, Matlab, dan Phyton [5]. Library FLANN melakukan pencarian tetangga terdekat menggunakan linear, brute force search atau pencarian linear secara paksa dari awal sampai akhir.

2.8. Unified Modelling Languange (UML)

Unified Modelling Languange (UML) adalah sebuah bahasa pemodelan standar yang memiliki sintaks dan semantic. Pemodelan ini sangat cocok digunakan untuk merancang dan memodelkan sistem berorientasi objek. Diagram pada uml dibagi menjadi dua bagian yaitu structural Diagram dan behavior Diagram. Structural Diagram digunakan untuk mendeskripsikan relasi antar kelas, Tools yang digunakan pada bagian ini yaitu Class Diagram. Sedangkan behavior Diagram digunakan untuk mendeskripsikan interaksi antara aktor dan sebuah Use Case (bagaimana seorang aktor menggunakan sistem). Tools yang digunakan pada bagian ini yaitu Use Case Diagram, Sequence Diagram, dan Activity Diagram [26].

2.8.1. Diagram Use Case

(33)

2.8.2. Diagram Sequence

Diagram Sequence menggambarkan interaksi antar objek di dalam dan di sekitar sistem yang menekankan pada pengiriman pesan dalam suatu waktu tertentu. Diagram Sequence biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan dari sebuah event 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[26].

2.8.3. Diagram Activity

Diagram Activity menggambarkan berbagai alur aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision atau keputusan yang mungkin terjadi, dan bagaimana mereka berakhir. Diagram Activity 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 Diagram Activity tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum [26].

2.8.4. Diagram Class

Diagram Class digunakan untuk menggambarkan keadaan suatu sistem dengan menjelaskan keterhubungan antara suatu Class dengan Class yang lain yang terdapat pada sistem. Sebuah Class terdiri dari nama, atribut dan method. Atribut dan method dari sebuah Class atau kelas mempunyai visibility. Ada tiga jenis visibility yang digunakan yaitu private, public, dan protected. Setiap kelas pada Diagram Class mempunyai hubungan dengan kelas lainnya. Ada beberapa jenis hubungan kelas, yaitu dependency, asosiasi, agregasi dan generalisasi [26].

(34)

34

b. Asosiasi
mempunyai hubungan yang lebih kuat dari hubungan dependency. Dimana suatu Class tetap berhubungan dengan kelas lain seterusnya, hubungan asosiasi dibagi menjadi dua jenis yaitu directional dan bidirectional.

c. Agregasi
merupakan bentuk hubungan yang mengimplikasikan kepemilikan suatu kelas. Agregasi juga merupakan bentuk yang lebih kuat dari asosiasi. Hubungan agregasi dinyatakan dengan simbol diamond pada pemilik kelas dan garis utuh berpanah kekelas yang dimiliki.

d. Generalisasi
merupakan bentuk hubungan antar kelas, dari kelas yang umum dengan kelas yang lebih khusus. Contoh kelas hewan memiliki hubungan generalisasi dengan kelas kucing, karena kucing merupakan kelas khusus dari kelas hewan yang lebih umum.

2.9. Emgu CV

Emgu CV adalah sebuah library OpenCV yang dapat digunakan pada bahasa pemprograman C#. Emgu CV dapat di-compile pada Microsoft Visual Studio, Xamarin Studio, dan Unity. Emgu CV dapat dijalankan juga pada sistem operasi linux, windows, Mac OS X, iOS, Android, dan Windows Phone [27].

2.10. Arduino

(35)

35

BAB 3

ANALISIS DAN PERANCANGAN SISTEM

3.1. Analisis Masalah

Berdasarkan penelitian yang dilakukan dalam menentukan suatu properti terjual atau tidak pada permainan monopoli, dalam sebuah permainan di komputer untuk menentukannya menggunakan variable yang tertanam pada tiap objek, jika sebuah variable pada properti tersebut terisi maka properti tersebut sudah ada yang punya, jika variable tersebut tidak terisi maka properti tersebut belum ada yang punya, namun pada permainan asli tidak ada tempat untuk menanamkan variable seperti yang ada pada sebuah permainan komputer, melainkan membandingkan objek tersebut dengan objek lainya berdasarkan gambar maupun warna dan tulisan, agar sebuah kecerdasan buatan dapat melakukan tugasnya mendekati apa yang manusia lakukan.

3.2. Analisis Metode

(36)
[image:36.612.174.466.109.424.2]

36

Gambar 3.1 Alur metode pencocokan gambar 3.2.1. Image

(37)

3.2.2. Grayscale

Grayscale adalah proses pengubahan sebuah gambar menjadi gambar keabu abuan. Dalam tiap pixel pada gambar mengandung satu Sample atau sinyal, yang membawa hanya informasi intensitas. Grayscale ini juga sering disebut sebagai hitam putih (Black and White) [13]. Dalam sebuah forum diskusi dengan judul “How does EMGU CV convert an RGB image to Grayscale” [29]. Pada library Emgu CV proses mengubah gambar RGB kedalam Gray sama seperti pada Open CV, yaitu menggunakan Luminosity. Luminosity adalah sebuah algoritma Grayscale dengan mengalikan setiap nilai RGB dengan konstanta tertentu yang sudah ditetapkan nilainya. Kemudian hasil perkalian seluruh RGB dijumlahkan dan didapatlah nilai Grayscale [30]. Nilai parameter yang sering digunakan pada Luminosity biasanya menggunakan BT709 Grayscale. Dimana dengan nilai parameternya adalah Red: 0.2125 Green: 0.7154 Blue: 0.0721. Dalam Emgu CV nilai paramater Luminosity yang digunakan adalah Y-Grayscale dengan nilai parameternya Red: 0.299 Green: 0.587 Blue: 0.114 [31]. Pada BT709Grayscale ini biasa digunakan pada televisi berkualitas tinggi (HDTV), sedangkan Y-Grayscale digunakan pada PAL dan NTSC.

Dalam penelitian ini kedalaman warna yang digunakan untuk proses Grayscale adalah 8 bit Grayscale biasa disebut dengan byte yang memiliki 256 derajat keabuan dengan nilai dari 0 sampai 255. Dengan rumus luminosity dan nilai parameter y-Grayscale pada rumus (3.1) berikut.

Y’=0.299R’+0.587G’+0.114B’ ... (3.1) Misalkan saja terdapat sebuah nilai RGB pada suatu pixel adalah (100,0,150). Kemudian dimasukan kedalam rumus luminosity tersebut seperti pada persamaan (3.2), yang menghasilkan nilai Y’ adalah 47, sehingga nilai Grayscale-nya (47,47,47) [32].

Y’= 0.299(100)+0.587(0)+0.114(150) ... (3.2) Y’ = 47

(38)

38

[image:38.612.257.387.186.309.2]

pada Lampiran C2 dan warna biru pada Lampiran C3. Kemudian akan diubah kedalam bentuk Grayscale menggunakan luminance seperti pada rumus (3.1). Hasil dari proses ini dapat dilihat pada Lampiran C4..

Gambar 3.2 Gambar Awal 3.2.3. SURF

SURF atau Speeded Up Robust Feature adalah metode yang dikembangkan dari metode SIFT. Dengan fungsi yang sama sebagai algortima pendeteksi fitur yang dapat digunakan dalam penglihatan komputer (Computer Vision) seperti pengenalan objek (Object Recognition) [4]. Dalam tahap ini, terbagi beberapa subprocess diantaranya adalah Integral Image, Key Point Detection, Descriptor.

3.2.3.1.Integral Image

(39)

3.2.3.2.Key Point Detection

SURF menggunakan pendekatan Laplacian of Gaussian dengan menggunakan Box Filter. Box Filter tersebut mempunyai kernel yang sudah diberi nilainya (weight). Ukuran filter terkecil yang dapat ditangani oleh SURF adalah 9x9 sesuai pada rumus 3.4 berikut. Secara default terdapat 3 buah Octave dan 4 buah Interval dalam tiap Octave-nya. Dengan menggunakan rumus 3.4, dapat menghitung ukuran filter pada Octave dan Interval. Gambar 3.3 dan Gambar 3.4 menunjukan ukuran filter pada Octave 1 dan Interval 1 arah X. Gambar 3.5 dan Gambar 3.6 menunjukan ukuran filter pada Octave 1 dan Interval 1 arah Y. Gambar 3.7 dan Gambar 3.8 menunjukan ukuran filter pada Octave 1 dan Interval 1 arah XY.

... (3.4) Octave = 1, Interval = 1

Octave = 1, Interval = 2

[image:39.612.233.409.474.650.2]

Gambar 3.3 Box Filter Arah X, Octave =1 Interval =1 [4] 9

(40)
[image:40.612.190.450.106.236.2]

40

[image:40.612.235.416.277.456.2]

Gambar 3.4 Nilai Box Filter Arah X, Octave =1 Interval =1

Gambar 3.5 Box Filter Arah Y, Octave =1 Interval =1 [4]

Gambar 3.6 Nilai Box Filter Arah Y, Octave =1 Interval =1

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

1 1 1 ‐2 ‐2 ‐2 1 1 1 1 1 1 ‐2 ‐2 ‐2 1 1 1 1 1 1 ‐2 ‐2 ‐2 1 1 1 1 1 1 ‐2 ‐2 ‐2 1 1 1 1 1 1 ‐2 ‐2 ‐2 1 1 1

0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

0 0 ‐2 ‐2 ‐2 ‐2 ‐2 0 0 0 0 ‐2 ‐2 ‐2 ‐2 ‐2 0 0 0 0 ‐2 ‐2 ‐2 ‐2 ‐2 0 0

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

9

[image:40.612.188.451.499.631.2]
(41)
[image:41.612.177.461.110.454.2]

Gambar 3.7 Box Filter Arah XY, Octave =1 Interval =1 [4]

Gambar 3.8 Nilai Box Filter Arah XY, Octave =1 Interval =1

Untuk menentukan panjang lobe hitam pada tiap Interval menggunakan rumus filter size dibagi dengan 3 seperti rumus 3.5 berikut. Sehingga terlihat seperti pada Gambar 3.9, Gambar 3.10 dan Gambar 3.11 berikut.

... (3.5) Octave = 1, Interval = 1

0 0 0 0 0 0 0 0 0

0 1 1 1 0 ‐2 ‐2 ‐2 0 0 1 1 1 0 ‐2 ‐2 ‐2 0 0 1 1 1 0 ‐2 ‐2 ‐2 0

0 0 0 0 0 0 0 0 0

0 ‐2 ‐2 ‐2 0 1 1 1 0 0 ‐2 ‐2 ‐2 0 1 1 1 0 0 ‐2 ‐2 ‐2 0 1 1 1 0

0 0 0 0 0 0 0 0 0

(42)
[image:42.612.246.408.117.297.2]

42

Gambar 3.9 Panjang Lobe Box Filter arah X [4]

Gambar 3.10 Panjang Lobe Box Filter arah Y [4] 3

[image:42.612.246.427.353.513.2]
(43)
[image:43.612.215.442.359.610.2]

Gambar 3.11 Panjang Lobe Box Filter arah XY [4]

Untuk Dxx dan Dyy lebar lobe-nya ditambahkan 2 pixel untuk sisi kiri dan sisi kanan setelah filter 9x9, seperti pada Gambar 3.12.

Gambar 3.12 Pengukuran Lebar lobe 15x15 dari lobe awal [4]

Untuk menormalisasikan hasil dari konvolusi menggunakan rumus 3.6 berikut, dengan cara membagi nilai setelah konvolusi dengan nilai normalisasi berikut.

. ... (3.6) 3

3 3

3 3

(44)

44

.

Untuk konvolusi antara gambar integral pada Gambar 3.13 dengan Box Filter 9x9 pada Gambar 3.14 dengan arah y adalah pada Gambar 3.15 dan Gambar 3.16 berikut.

[image:44.612.133.508.204.370.2]

Gambar 3.13 Contoh konvolusi Box Filter, gambar awal

Gambar 3.14 KernelBox Filter dengan arah y

0

0

0

0

0

0

0

0

0

0

0

255

510

765

1020

1275

1530

1785

2040

2295

0

510

1020

1530

2040

2550

3060

3570

4080

4590

0

765

1530

2295

3060

3825

4590

5355

6120

6885

0

1020

2040

3060

4080

5100

6120

7140

8160

9180

0

1275

2550

3825

5100

6375

7650

8925

10200

11475

0

1530

3060

4590

6120

7650

9180

10710

12240

13770

0

1785

3570

5355

7140

8925

10710

12495

14280

16065

0

2040

4080

6120

8160

10200

12240

14280

16320

18360

0

2295

4590

6885

9180

11475

13770

16065

18360

20655

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

0 0 ‐2 ‐2 ‐2 ‐2 ‐2 0 0 0 0 ‐2 ‐2 ‐2 ‐2 ‐2 0 0 0 0 ‐2 ‐2 ‐2 ‐2 ‐2 0 0

0 0 1 1 1 1 1 0 0

0 0 1 1 1 1 1 0 0

(45)
[image:45.612.156.552.115.353.2]

Gambar 3.15 Proses konvolusi gambar integral dengan kernelBox Filter Dengan memanfaatkan integral image, dapat dikalkulasikan dengan cepat perhitungan pada Box Filter. Untuk menghitung area yang diberi beban 1 tersebut, cukup dengan menggunakan rumus perhitungan integral image (2.3).

[image:45.612.142.526.463.681.2]
(46)

46

0 + 3825 – 1530 – 0 = 2295

2295 * weight, wight adalah beban pada kernel, sehingga 2295 * 1 = 2295. Hasil ini kemudian dijumlahkan dengan perhitungan integral image pada beban lain pada kernel, seperti -2 dan 1 pada bagian atas. Untuk perhitungan arah X, Y dan XY ada pada Lampiran C6, Lampiran C7, dan Lampiran C8.

Setelah mengkonvolusikan integral image dengan Box Filter, hasil tersebut akan di normalisasikan dengan menggunakan rumus berikut.

∗ ... (3.7)

Hasil dari pembagian atau normalisasi untuk arah x,y dan xy terlihat pada Lampiran C9, Lampiran C10 danLampiran C11. Setelah normalisasi, dicari determinan dari hessian menggunakan pendekatan determinant of hessian dengan rumus berikut 3.8 dan hasilnya seperti pada Lampiran C12 berikut.

det . ... (3.8)

Hasil ini adalah lapisan awal atau initial layer pada octav dan Interval pertama, secara default terdapat 3 Octave dan 4 Interval dengan ukurannya pada Gambar 3.9. Kemudian dicari lagi dengan tingkatan filter selanjutnya, untuk hasilnya pada Lampiran C13 dengan filter ukuran 15, Lampiran C14 dengan filter ukuran 21 dan Lampiran C15 dengan filter ukuran 27.

(47)

Setelah dihitung ke 3 Octave tersebut, kemudian akan diterapkan tresholding ambang batas tunggal menggunakan rumus pada tiap gambar tersebut. Dengan nilai keabuan yang dapat diatur sehingga nilai yang lebih atau sama dengan nilai tresholding saja yang akan di ekstrak. Untuk hasil dari ukuran 9 pada Lampiran C16, ukuran 15 pada Lampiran C17, ukuran 21 pada Lampiran C18, dan ukuran 27 pada Lampiran C19.

,

, ,

,

,

,

...

(3.9)

Setelah tresholding akan diterapkan non-maximal suppression pada tiap skala, ukuran dari filter memiliki skala yang berbeda beda. Penerapan non-maximal suppression seperti Gambar 3.18 pada titik X dibandingkan dengan 8 titik tetangga pada skala titik X dan 9 titik tetangga pada skala dibawah dan diatas skala titik X. Apabila titik X lebih besar dari titik tetangga pada skala sesudah dan sebelumnya, maka titik X adalah maxima.

(48)

48

Contoh Non-Maximal Suppression pada ukuran 9,15,dan 21. Ukuran 9

0  0  1829  0  1145  2680  923  3193  3038  Ukuran 15

0  640  3424  0  687  2909  0  564  2344  Ukuran 27

0  0  679  0  0  0  0  0  0 

Dengan titik X berada pada Interval ke 2 atau ukuran 15 titik tengah, yaitu 687. Maka akan dibandingkan apakah titik X tersebut lebih besar dari tetangga di Interval tersebut dan apakah titik X tersebut lebih besar dari tetangga di Interval bawah dan diatas titik X tersebut. Jika tidak maka titik tersebut bukanlah key point atau point kunci. Apabila titik X lebih besar dari tetangga tetangganya, maka titik X menjadi calon dari Key Point yang akan disimpan dalam bentuk koordinat. Seperti

keypoint 1 = (3,2) keypoint 2 = (2,5) keypoint 3 = (5,5)

3.2.3.3.Descriptor Key Point

Untuk membuat deskriptor, SURF menggunakan Haar Wavelet seperti gambar Gambar 3.19 dalam prosesnya, untuk mencari nilai v dari rumus (3.10) berikut .

(49)

Gambar 3.19 Wavelet Response Tahapnya adalah sebagai berikut :

1. Sebuah kotak di buat dengan jarak 20 ditengah tiap tiap keypoint seperti Gambar 3.20 berikut .

2. Kemudian dibagi menjadi 4 x4 subarea atau dibagi 16 kotak seperti Gambar 3.21 berikut.

3. Hitung dengan menggunakan Haar Wavelet pada arah x dan y, x di refer sebagai dx dan y di refer sebagai dy.

4. Dengan menggunakan filterwavelet response pada Gambar 3.19 dapat dihitung dx, dy, abs(dx) atau absolute(dx) dan abs(dy) atau absolute(dy).

Untuk kotak pertama (kiri atas)

Dx = (3817-2863)+( 4362-3817)+(3917-4362)+(2675-3917)+(2553-1367)+(3371- 2553)+(3208-3371)+(2254-3208)+(1435-0)+(2535-1435)+(2663-2535)+(2014- 2663)+(0-0)+(1633-0)+(2102-1633)+(1826-2102)+(0-0)+(827-0)+(1613-827)+(1668-1613)= 5937

Dy = (1367-2863)+(0-1367)+(0-0)+(0-0)+(2553-3817)+(1435-2553)+(0-1435) +(0-0)+(3371-4362)+(2535-3371)+(1633-2535)+(827-1613)+(2254-2675)

+(2014-2254) +(1826-2014)+(1668-1826)= - 15420

(50)

50

∑| | 1496+1367+1264+1118+1435+991+836+902+421+240+188+158 = 10416

(51)

Gamb

ar 3.20

Haar Wavelet

20 X

20

2863 3817 4362 3917 2675 993 0 0 0 0 0 0 0 0 0 959 2303 3179 3673 4478

1367 2553 3371 3208 2254 938 0 0 0 0 0 0 0 0 0 1253 2008 2290 2267 2737 0 1435 2535 2663 2014 1094 598 1028 1750 2025 1162 0 530 572 1168 1744 1852 1489 913 1019 0 0 1633 2102 1826 1378 1494 2672 4094 4859 4160 2631 3064 2495 2467 2363 1770 722 0 0 0 0 827 1613 1668 1646 2335 4231 6330 7565 7006 5372 5444 4291 3678 2927 1656 0 0 0 0 0 0 1132 1584 2065 3404 6094 8934 10686 10286 8545 8179 6354 5060 3574 1549 0 0 0 0 0 0 910 1619 2465 4316 7625 11030 13156 12858 11038 10375 8043 6227 4113 1397 0 0 0 0 0 0 1406 2187 3217 5393 9092 12813 15128 14866 13026 12215 9558 7392 4785 1494 0 0 0 0 0 904 2307 3057 4165 6564 10533 14451 16865 16595 14730 13811 10896 8453 5413 1600 0 0 0 0 0 621 2003 2741 3919 6471 10567 14546 16967 16664 14811 13865 10858 8284 4970 782 0 0 0 0 1101 3251 4373 4871 5879 8332 12304 16103 18340 17904 16000 14989 11937 9321 5874 1535 0 0 0 1217 4030 5948 6784 7006 7804 10112 13906 17468 19484 18891 16933 15881 12819 10200 6648 2177 0 0 0 4249 7019 8681 9196 9109 9665 11779 15325 18576 20320 19563 17590 16563 13563 11004 7404 2845 0 0 0 7481 10179 11536 11673 11226 11480 13327 16524 19371 20771 19832 17861 16914 14059 11640 8065 3485 0 0 0 10659 13306 14349 14082 13230 13115 14617 17370 19724 20728 19593 17647 16855 14241 12054 8592 4069 0 0 0 13643 16155 16844 16169 14914 14408 15470 17632 19356 19874 18535 16661 16111 13864 12030 8843 4545 0 0 0 14999 17395 17826 16878 15360 14576 15286 16954 18182 18342 16897 15124 14805 12910 11404 8512 4472 0 0 0 16163 18453 18673 17512 15786 14784 15200 16450 17251 17102 15566 13889 13743 12136 10896 8239 4408 0 0 0 16730 18873 18884 17542 15652 14448 14554 15348 15709 15260 13672 12117 12184 10917 9990 7659 4139 0 0 0 16669 18696 18542 17057 15024 13633 13429 13771 13700 12966 11348 9956 10288 9410 8839 6867 3680 0 0 0

20

(52)

52 G a m b ar 3.21 Haa r Wa vel et d ib agi menjad i 4 x 4 su b area ata u 16 petak

(53)

3.2.4. FLANN

FLANN adalah sebuah library untuk mencocokan tetanga yang terdekat. FLANN menggunakan kd-tree dalam prosesnya, dengan masukan beberapa buah keypoint dapat dihitung dengan cara berikut.

Keypoint= {1,9},{2,3},{4,1},{3,7},{5,4},{6,8},{7,2},{8,8},{7,9},{9,6} 1. Untuk urutan pertama cari median pada tiap X, median = 1 + 2 + 4 + 3 + 5 + 6 + 7 + 8 + 9 + 7= 52 / 10 = 5.2 dibulatkan ke atas yaitu 6

2. Titik 6, 8 menjadi median, selanjutnya pada iterasi pertama apabila x lebih kecil daripada x median, maka ditaruh disebelah kiri, jika tidak maka ditaruh disebelah kanan. Untuk iterasi ke dua dibedakan menggunakan y dan selanjutnya. 3. Kemudian untuk iterasi kedua ulangi tahap pertama pada tiap data yang x nya kurang dan lebih, cari median menggunakan y lalu buat tree nya.

4. Lalu titik dari keypoint lain diambil salah satu, kemudian akan dicocokan dengan kd-tree yang mana yang paling dekat, misal keypointnya adalah 7, 12 periksa pada iterasi pertama apakah 7 lebih besar dari 6, jika benar lanjut ke kanan bawah, apakah 12 lebih besar dari 8, jika benar maka periksa lagi leaf nya, jika sudah tidak ada, maka titik tersebut dianggap sebagai titik terdekat.

[image:53.612.161.474.455.681.2]

Untuk hasil nya adalah sebagai Gambar 3.22 berikut :

(54)

54

3.3. Analisis Kebutuhan Non-Fungsional

Analisis Kebutuhan non-fungsional terdiri dari analisis perangkat keras, perangkat lunak dan pengguna yang menggunakan aplikasi yang akan dibangun. 3.3.1. Analisis Kebutuhan Perangkat Keras

Kebutuhan perangkat keras untuk menjalankan aplikasi ini terlihat pada Tabel 3.1 berikut .

Tabel 3.1 Analisis Kebutuhan Perangkat Keras

No Tipe Perangkat Spesifikasi Perangkat

1 Prosesor Intel Core I7-3610QM 2.3Ghz

2 Ram 6 GB DDR3 Dual Channel

3 VGA Nvidia GT 630M 2GB

4 Layar LCD 14 “

5 Penyimpanan 256 GB SSD (Solid State

Disk)

6 Keyboard Laptop Keyboard

7 Mouse Logitech Wireless Mouse

M185

8 Kamera Logitech C170 5 MP

9 Papan Prototipe Arduino Uno Rev 3, Bread

board (840 lubang)

10 Servo 1. 1 x Hitech HS-805bb+

(24.7Kg/Cm)

2. 2 x GWS(Grand Wing System)S03N/STD/J (3.2Kg/Cm)

3. 2 x GWS(Grand Wing System)S03T/STD/F (8Kg/Cm)

Power Supply 1. Montana Regulated

(55)

Perangkat lain 1. Rangka alat bantu (Alumunium)

2. Rainbow Flat Cable 2 M 3. Beban Pemberat (2 x

Stainless Steel) 4. Usb Extension 1.5 M

3.3.2. Analisis Kebutuhan Perangkat Lunak

Perangkat lunak yang dipakai dalam pembuatan aplikasi terlihat pada Tabel 3.2 sebagai berikut .

Tabel 3.2 Analisa Kebutuhan Perangkat Lunak No Tipe Perangkat Spesifikasi Perangkat

1 Sistem Operasi Windows 7 Ultimate SP1 64 Bit 2 Bahasa Pemprograman C#

3 Compiler Microsoft Visual Studio Ultimate 2012, Arduino 1.63

4 FrameWork Emgu CV 2.4.10.1940

3.3.3. Analisis Pengguna

Pengguna yang menggunakan sistem ini dapat dimainkan dari anak anak yang dibimbing oleh orang tuanya sampai dapat dimainkan oleh anak remaja hingga dewasa, berkisar dari umur 10 tahun keatas.

3.4. Analisis Kebutuhan Fungsional

(56)

56

3.4.1. Diagram Use Case

[image:56.612.131.506.199.471.2]

Diagram Use Case memperlihatkan pada kita hubungan-hubungan yang terjadi antara aktor-aktor dengan usecase-usecase di dalam sistem. Adapun Use Case Diagram yang dari aplikasi yang dibangun adalah sebagai Gambar 3.23 berikut

Gambar 3.23 Diagram Use Case

3.4.2. Skenario Use Case Mengatur Lokasi Penyimpanan Gambar Sampel Skenario Use Case mengatur lokasi penyimpanan gambar sampel dalam sistem yang dibangun adalah seperti Tabel 3.3 berikut :

Tabel 3.3 Skenario Use Case Mengatur Lokasi Penyimpanan Gambar Sampel

Use Case name Mengatur Lokasi Penyimpanan Gambar Sampel Related Requirements -

(57)

Failed End Condition Lokasi penyimpanan gambar tidak tersimpan

Primay Actors User

Secondary Actor Sistem

Trigger Setelah user memilih menu

pengaturan petak dan lokasi papan permainan

Main Flow Step Action

1

User memilih menu pengaturan petak dan lokasi papan

permainan

2

Sistem menampilkan form pengaturan petak dan lokasi papan permainan

3 User memilih lokasi

penyimpanan gambar sampel

4

Sistem memverifikasi apakah ada datagambarsample.txt pada lokasi penyimpanan gambar sampel

5 Sistem menload

datagambarsampel.txt

6 SIstem menyimpan lokasi

penyimpanan gambar sampel

7

Sistem memverifikasi lokasi penyimpanan gambar sampel apakah sama dengan "Belum ditentukan"

8

(58)

58

kepemilikan dan kalibrasi papan permainan

Extension Step Branch Action

3.1 Sistem memverifikasi lokasi

penyimpanan gambar sampel apakah sama dengan "Belum ditentukan"

4.1 SIstem menyimpan lokasi

penyimpanan gambar sampel

7.1 Sistem menonaktifkan fungsi

pengaturan petak, mengatur lokasi pencarian, deteksi

kepemilikan dan kalibrasi papan permainan

[image:58.612.130.507.104.400.2]

3.4.3. Skenario Use Case Mengatur Petak dan Lokasi Papan Permainan Skenario Use Case mengatur petak dan lokasi papan permainan dalam sistem yang dibangun adalah seperti Tabel 3.4 berikut :

Tabel 3.4 Skenario Use Case Mengatur Petak dan Lokasi Papan Permainan

Use Case name Mengatur Petak dan Lokasi Papan Permainan Related Requirements -

Goal in Context Menyimpan lokasi, gambar, nama petak serta koordinat pergerakan kamera

Precondition User memiliki lokasi, gambar, nama petak, serta koordinat pergerakan kamera

(59)

Failed End Condition Lokasi, gambar, nama dan koordinat pergerakan kamera petak tidak tersimpan

Primay Actors User

Secondary Actor Sistem

Trigger Setelah user memilih menu

pengaturan petak dan papan permainan

Main Flow Step Action

1 User memilih menu pengaturan

petak dan papan permainan

2

Sistem menampilkan form pengaturan petak dan papan permainan

3 User memasukan nama, lokasi,

koordinat dan gambar petak

4 Sistem memverifikasi nama

petak

5

Sistem memverifikasi lokasi dan koordinat petak apakah ada yang sama

6 Sistem memverifikasi gambar

petak

7 Sistem menyimpan pengaturan

petak ke datagambarsampel.txt

8

Sistem menampilkan pemberitahuan data berhasil ditambah

Extension Step Branch Action

(60)

60

2.a2 User memilih ubah

2.a3 Sistem menampilkan data yang dipilih

2.a4 User merubah data petak 2.a5 Sistem memverifikasi

kelengkapan data

2.a5.1 Sistem menverifikasi lokasi dan

koordinat petak apakah ada yang sama

2.a5.1.a1 Sistem menyimpan pengaturan

petak ke datagambarsampel.txt

2.a5.1.a2 Sistem menampilkan

pemberitahuan data berhasil diubah

2.a5.1.2 Sistem menampilkan

pemberitahuan terdapat petak dengan lokasi atau koordinat yang sama

2.a5.2 Sistem menampilkan

pemberitahuan data petak belum terisi lengkap

2.b1 User memilih data petak untuk

dihapus

2.b2 Sistem menghapus data yang dipilih

2.b3 Sistem menampilkan

(61)

4.1 Sistem menampilkan pemberitahuan nama petak harus

diisi

5.1 Sistem menampilkan

pemberitahuan terdapat lokasi dan koordinat yang sama

6.1 Sistem menampilkan

pemberitahuan gambar petak belum dipilih

3.4.4. Skenario Use Case Mengatur Pemain

Skenario Use Case mengatur pemain dalam sistem yang dibangun adalah seperti Tabel 3.5 berikut :

Tabel 3.5 Skenario Use Case Mengatur Pemain Use Case name Mengatur Pemain

Related Requirements -

Goal in Context Pemain terdaftar dalam sistem

Precondition User memiliki posisi, nama dan jumlah pemain. Successful End Condition Pemain terdaftar dalam sistem

Failed End Condition Pemain tidak terdaftar dalam sistem

Primay Actors User

Secondary Actor Sistem

Trigger Setelah user memilih menu

pengaturan pemain

Main Flow Step Action

1 User memilih menu pengaturan

pemain

2 Sistem menampilkan form

(62)

62

3 User memasukan nama, lokasi

dan atribut pemain

4 Sistem memverifikasi

kelengkapan data pemain

5 Sistem memverifikasi lokasi

pemain yang sama

6

Sistem memverifikasi data pemain apakah jumlah pemain = 4 dan tidak ada pemain dengan atribut komputer

7 Sistem menyimpan data pemain

8

Sistem menampilkan pemberitahuan data berhasil ditambah

Extension Step Branch Action

2.a1 User memilih data untuk

dirubah

2.a2 Sistem menampilkan data yang dipilih

2.a3 User mengubah data pemain 2.a4 Sistem memerifikasi

kelengkapan data

2.a4.1 Sistem memverifikasi lokasi pemain apakah ada yang sama 2.a4.1.1 Sistem menampilkan

(63)

2.a4.1.b2 Sistem menampilkan pemberitahuan data berhasil di ubah

2.a4.2 Sistem menampilkan pemberitahuan terdapat pemain dengan lokasi yang sama 2.b1 User memilih data untuk

dihapus

2.b2 Sistem menghapus data pemain yang dipilih

2.b3 Sistem menampilkan pemberitahuan data berhasil dihapus

4.1 Sistem menampilkan

pemberitahuan data pemain belum terisi lengkap

5.1 Sistem menampilkan

pemberitahuan terdapat pemain dengan lokasi yang sama

6.1 Sistem menampilkan

pemberitahuan harus ada pemain dengan atribut komputer

3.4.5. Skenario Use Case Deteksi Kepemilikan Properti

[image:63.612.133.508.101.540.2]

Skenario Use Case deteksi kepemilikan properti dalam sistem yang dibangun adalah seperti Tabel 3.6 berikut :

Tabel 3.6 Skenario Use Case Deteksi Kepemilikan Properti Use Case name Deteksi Kepemilikan Properti

Related Requirements -

(64)

64

Precondition Petak papan permainan, lokasi pencarian, pemain, kamera dan port Arduino sudah diatur

Successful End Condition Properti diketahui kepemilikannya Failed End Condition Properti tidak diketahui kepemilikannya

Primay Actors User

Secondary Actor Sistem

Trigger Setelah user memilih menu

deteksi properti

Main Flow Step Action

1 User memilih petak yang akan

dicari kepemilikan propertinya

2 Sistem memverifikasi kamera,

port Arduino dan data petak

3 Sistem memverifikasi jenis kartu

4 Sistem memverifikasi apakah

pernah melakukan kalibrasi

5 Sistem menggerakan kamera ke

lokasi pencarian yang dipilih

6

Sistem menampilkan pesan pemberitahuan menggerakan alat bantu

7 Deteksi Petak

8 Sistem menggerakan kamera ke

lokasi kartu properti pemain

9

Sistem menampilkan pesan pemberitahuan menggerakan alat bantu

(65)

11

Sistem menampilkan nama pemain dari lokasi pencarian dan lokasi pemain

12 Sistem memverifikasi koordinat

idle

13 Sistem menggerakan kamera ke

koordinat idle

14

Sistem menampilkan pesan pemberitahuan menggerakan alat bantu

Extension Step Branch Action

2.1

Sistem menampilkan pesan pemberitahuan Pastikan kamera, port Arduino sudah dipilih dan data petak sudah lengkap

3.1

Sistem menampilkan pemberitahuan petak yang dipilih bukan kartu properti

4.1 Kalibrasi Posisi Papan

Permainan

7.1

Sistem menampilkan pemberitahuan periksa data petak atau lakukan kalibrasi

10.1

Sistem memverifikasi batas jumlah kartu pemain apakah masih ada

10.1.1 Sistem menggerakan kamera ke

(66)

66

10.1.2

Sistem memverifikasi jumlah pemain apakah masih ada pemain

10.1.2.1 Sistem menggerakan kamera ke lokasi kartu properti pemain

10.1.2.2

Sistem menampilkan

pemberitahuan properti tersebut belum ada yang memiliki

12.1 Sistem menggerakan kamera ke

koordinat deafult idle

3.4.6. Skenario Use Case Kalibrasi Posisi Papan Permainan

Skenario Use Case kalibrasi posisi papan permainan dalam sistem yang dibangun adalah seperti Tabel 3.7 berikut :

Tabel 3.7 Skenario Use Case Kalibrasi Posisi Papan Permainan Use Case name Kalibrasi Posisi Papan Permainan

Related Requirements -

Goal in Context Posisi papan terkalibrasi pada sistem

Precondition Petak papan permainan, kamera dan port Arduino sudah diatur

Successful End Condition Papan terkalibrasi pada sistem Failed End Condition Papan tidak terkalibrasi pada sistem

Primay Actors User

Secondary Actor Sistem

Trigger Setelah user memilih menu

kalibrasi papan permainan

Main Flow Step Action

1 User memilih menu kalibrasi

(67)

2 Sistem memverifikasi kamera, port Arduino dan data petak

3 Sistem menggerakan kamera ke

lokasi pencarian

4

Sistem menampilkan pesan pemberitahuan menggerakan alat bantu

5 Deteksi Petak

6

Sistem menampilkan

pemberitahuan proses kalibrasi berhasil dengan lokasi petak

7 Sistem menggerakan kamera ke

koordinat idle

8

Sistem menampilkan pesan pemberitahuan menggerakan alat bantu

Extension Step Branch Action

2.1

Sistem menampilkan pesan pemberitahuan Pastikan kamera, port Arduino sudah dipilih dan data petak sudah lengkap

5.1

Sistem memverifikasi apakah sudah dicari semua

kemungkinan

5.1.1 Sistem mengambil gambar dari

kamera

5.1.2

Gambar

Gambar 2.26 Lobe Filter arah XY [4]
Gambar 2.29 Wavelet Response [4]
Gambar 3.1 Alur metode pencocokan gambar
Gambar 3.2 Gambar Awal
+7

Referensi

Dokumen terkait

Dalam suatu penelitian, konseptual berguna untuk menjelaskan konsep konsep dan mencari ketersinambungan hubungan antara konsep- konsep tersebut. Dalam penelitian ini

Arief Pujo Warsono RT.. Sentot

dan Menyanyi Secara Islami, (Bandung: Remaja Rosdakarya, 2014), hlm.. 16 Salah satu permainan yang efektif diterapkan dalam pembelajaran ialah permainan asah otak. Di

kum Pidana Internasional dan Implikasinya Terhadap Hukum Pidana Nasional , Bandung: Alumni, 2011, hlm. 26/2000 menyatakan bahwa kekhususan penanganan perkara pelangga- ran HAM

Hasil penelitian menunjukkan bahwa pemberian kompos Trichoderma sp memberikan pengaruh terhadap jumlah anakan rumput Setaria umur 4 mst, 6 mst dan 8 mst, tinggi tanaman

SKP TIDAK URAIAN DOKUMEN DIUPLOAD DI SIMPEG PADA MENU BERKAS FISIK ASLI (ADA/TIDAK) BERKAS DIGITAL/ SOFT COPY (ADA/TIDAK) KETERANGAN (SESUAI/TIDAK SESUAI) PENDIDIKAN (NAMA

Menurut keterangan dari Staf Seksi Kelahiran dan Kematian di Dinas Kependudukan dan Pencatatan Sipil Kota Malang yang menyatakan bahwa, “Dispenduk Capil Kota Malang dalam

Puji syukur kehadirat Tuhan Yang Maha Esa yang telah melimpahkan berkat dan rahmat-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “Faktor Akuntansi