Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra

dokumen-dokumen yang mirip
Strategi Algoritma Penyelesaian Puzzle Hanjie

Algoritma Brute Force pada Fluid Particle Engine

Penerapan Algoritma Brute Force di Permainan Nonogram

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Penerapan Algoritma Brute Force dalam mencari Faktor Prima pada suatu Bilangan

Algoritma Brute Force

Penerapan Algoritma Brute Force pada permainan Countdown Number

Penerapan Algoritma Brute Force pada Teka-teki Magic Square 3 x 3

Penerapan Algoritma Brute Force pada Permainan Kartu 24 (24 game)

Algoritma Brute Force (lanjutan)

Mencari Pola dalam Gambar dengan Algoritma Pattern Matching

Implementasi Algoritma Runut Balik dalam Pengenalan Citra Wajah pada Basis Data

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Perbandingan Algoritma Brute Force dan Breadth First Search dalam Permainan Onet

Strategi Optimized Brute Force Pada Tent Puzzle Solver

I. PENDAHULUAN II. DASAR TEORI. Contoh lainnya: Solusi: 0= V,1= I,2= O,3= R, 4= N,5= L,7= A,8= F,9= E.

Penerapan Strategi Algoritma Menyelesaikan Kompleksitas Pixel Maze secara Otomatis pada Virupizxel

PENCARIAN SOLUSI TTS ANGKA DENGAN ALGORITMA RUNUT BALIK BESERTA PENGEMBANGANNYA

String Matching Dalam Permainan The Hunt for Gollum

Algoritma Brute Force (lanjutan)

Deteksi Plagiarisme Gambar menggunakan Algoritma Pencocokan Pola Rabin-Karp

PERBANDINGAN APLIKASI ALGORITMA BRUTE-FORCE DAN KOMBINASI ALGORITMA BREADTH FIRST SEARCH DAN GREEDY DALAM PENCARIAN SOLUSI PERMAINAN TREASURE HUNT

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Penerapan Algoritma Brute Force pada Password Recovery

Aplikasi Algoritma Pencarian String Dalam Sistem Pembayaran Parkir

Menebak Password RAR Menggunakan RAR Password Recovery Magic dengan Algoritma Brute Force

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

Implementasi Algoritma Pencocokan String dalam Penentuan Tombol Respons Facebook

Implementasi Brute Force dan Greedy dalam Permainan Big Two (Capsa)

Algoritma Brute Force

Implementasi Algoritma Boyer-Moore untuk Memanipulasi Foto dengan Magic Color

Penyelesaian Barisan Rekursif dengan Kompleksitas Logaritmik Menggunakan Pemangkatan Matriks

Penyelesaian Permasalahan Nonogram dengan Algoritma Runut Balik

Penerapan Algoritma Brute force dalam Penentuan Keanagraman Dua Buah String

PENGENALAN BINARY INDEXED TREE DAN APLIKASINYA

Penerapan Algoritma Brute Force dan Backtracking pada Permainan Skycraper

PENERAPAN ALGORITMA RUNUT BALIK DALAM PERMAINAN TEKA-TEKI SILANG

Algoritma Brute Force

Penyelesaian Berbagai Permasalahan Algoritma dengan Kombinasi Algoritma Brute Force dan Greedy

Algoritma Brute Force (Bagian 2) Oleh: Rinaldi Munir Bahan Kuliah IF2251 Strategi Algoritmik

IMPLEMENTASI ALGORITMA BRUTE FORCE DALAM PENCARIAN DATA KATALOG BUKU PERPUSTAKAAN

Algoritma Pencarian String dalam Pemilihan Anggota Sebuah Organisasi

Penerapan Teori Graf dan Graf Cut pada Teknik Pemisahan Objek Citra Digital

ENKRIPSI CITRA BITMAP MELALUI SUBSTITUSI WARNA MENGGUNAKAN VIGENERE CIPHER

Implementasi Pencocokan String Tidak Eksak dengan Algoritma Program Dinamis

Optimasi Konversi String Biner Hasil Least Significant Bit Steganography

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Penerapan Relasi Rekursif dan Matriks dalam Partisi Bilangan Bulat

Penerapan Algoritma Greedy untuk Permainan Flood It

Penerapan Algoritma Knuth Morris Pratt dalam Aplikasi Penerjemah Teks

Pencarian Potongan Gambar Menggunakan Algoritma Boyer Moore

Penggunaan Algoritma Backtrack dan Aturan Warnsdorff Untuk Menyelesaikan Knight s Tour Problem

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Penggunaan Algoritma Knuth-Morris-Pratt untuk Pengecekan Ejaan

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

Penerapan Algoritma Pattern Matching untuk Mengidentifikasi Musik Monophonic

Penggunaan Metode Dekomposisi LU Untuk Penentuan Produksi Suatu Industri Dengan Model Ekonomi Leontief

Aplikasi Algoritma String Matching dan Regex untuk Validasi Formulir

Implementasi Brute Force pada Game Mahjong Titans

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

APLIKASI KRIPTOGRAFI VISUAL PADA DOKUMEN KEUANGAN

Penggunaan Pencocokan String Metode Booyer-Moore dalam Digital Image Matching untuk Foto Udara Ideal

Penentuan Palet Warna pada Gambar Raster dengan Algoritma Divide and Conquer

Penyelesaian Game Lights Out dengan Algoritma Runut Balik

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Aplikasi Rekursif dalam Analisis Sintaks Program

Implementasi Greedy Dalam Menemukan Rangkaian Logika Minimal Menggunakan Karnaugh Map

AlgoritmaBrute Force. Desain dan Analisis Algoritma (CS3024)

Pengaplikasian Algoritma Knuth-Morris-Pratt dalam Teknik Kompresi Data

Pendeteksian Deadlock dengan Algoritma Runut-balik

Implementasi Algoritma Knuth Morris Pratt pada Alat Penerjemah Suara

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

Percobaan Perancangan Fungsi Pembangkit Bilangan Acak Semu serta Analisisnya

APLIKASI ALGORITMA PENCOCOKAN STRING KNUTH-MORRIS-PRATT (KPM) DALAM PENGENALAN SIDIK JARI

BAB II LANDASAN TEORI

ANTIMAGIC PUZZLE. Alwi Afiansyah Ramdan

Penerapan Algoritma Backtrack pada Knight s Tour

Penggunaan Brute Force untuk Mendeteksi Potensi Terjadinya Deadlock

Penggunaan Algoritma Divide and Conquer Dalam Pewarnaan Graf

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Studi dan Implementasi Algoritma kunci publik McEliece

Brute-Force Hitori Solver

Algoritma Brute Force (Bagian 1) Oleh: Rinaldi Munir

Penerapan Algoritma Brute force dan Greedy pada Penjadwalan Disk

PENGGUNAAN EXHAUSTIVE SEARCH SEBAGAI SOLUSI PERMAINAN SCRAMBLE

Penerapan strategi BFS untuk menyelesaikan permainan Unblock Me beserta perbandingannya dengan DFS dan Branch and Bound

Perbandingan Algoritma Brute Force, Divide and conquer, dan Dynamic Programming untuk Solusi Maximum Subarray Problem

MAKALAH ALGORITMA DIVIDE AND CONQUER

Penggunaan Algoritma Pencocokkan Pola pada Aplikasi How-Old.net

Aplikasi Algoritma BFS dan String Matching pada Tag Suggestions di Facebook

Penyelesaian Teka-Teki Matematika Persegi Ajaib Menggunakan Aljabar Lanjar

Pembangkit Kunci Acak pada One-Time Pad Menggunakan Fungsi Hash Satu-Arah

Kombinasi Algoritma Pattern Matching dan BFS-DFS pada aplikasi Music Discovery

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

II. DASAR TEORI I. PENDAHULUAN

Algoritma Backtracking Pada Logic Game : Family Crisis (Game Penyebrangan)

Perbandingan Kecepatan/Waktu Komputasi Beberapa Algoritma Pengurutan (Sorting)

Aplikasi Pewarnaan Graph pada Pembuatan Jadwal

Transkripsi:

Algoritma Brute Force dalam Pattern Matching pada Aplikasi Pendeteksian Potongan Citra Ananta Pandu Wicaksana 13510077 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia ananta.pandu@students.itb.ac.id Abstrak Terkadang, kita ingin mencari letak suatu potongan citra pada citra lain, misalkan wajah teman kita pada foto kelulusan SMA, atau benda tertentu pada foto kamar yang berantakan. Untuk itu, dibuatlah aplikasi sederhana pendeteksi potongan citra yang menerapkan prinsip Pattern Matching dengan menggunakan algoritma Brute Force. Kata Kunci Citra, Potongan, Matriks, Pattern Matching, Brute Force. I. PENDAHULUAN Gambar 2 - Foto sebuah benda. Pertanyaannya adalah: Adakah potongan foto ini dalam Gambar 1? Jika ada, dimanakah letaknya? 1.1 Latar Belakang Citra, atau gambar, adalah benda yang sangat penting dalam kehidupan kita. Citra dapat memiliki makna atau informasi yang jauh lebih banyak dibandingkan dengan sebuah kalimat. Benda-benda yang tergambar pada sebuah citra adalah informasi-informasi yang bisa kita ambil. Citra ada yang memiliki sedikit informasi, ada pula yang memiliki banyak informasi. Pada citra yang memiliki banyak informasi, terkadang kita mengalami kesulitan untuk mengambil informasi yang benar-benar kita butuhkan. Sebagai contoh: mencari sebuah benda pada sebuah foto kamar yang berantakan. 1.2 Tujuan Makalah ini dibuat dengan tujuan : a. Menambah pemahaman tentang pemecahan persoalan menggunakan algoritma brute force. b. Menambah pemahaman tentang pengolahan citra. c. Membuat pengaplikasian solusi dalam bentuk program. II. DASAR TEORI 2.1 Citra Digital Gambar 1 - Foto kamar yang berantakan Citra Digital adalah foto elektronik yang diambil dari, di antara lain: scan dari dokumen, foto, manuskrip, teks, dan karya seni. Citra digital dipetakan sebagai larik dua dimensi (matriks) dari titik atau elemen gambar yang biasa disebut dengan pixel. Setiap pixel diberi nilai tonal (hitam, putih, abu-abu atau warna) yang diwakili dalam kode biner (nol dan satu). Angka biner, yang biasa disebut bit, untuk setiap pixel disimpan secara berurutan oleh komputer dan sering dikurangi menjadi representasi matematika (terkompresi). Bit tersebut kemudian Halaman 1

diinterpretasikan dan dibaca oleh komputer untuk menghasilkan versi analog untuk ditampilkan atau dicetak.[1] Seperti pada contoh citra dwiwarna dibawah, bit merepresentasikan warna dari sebuah titik pada citra. Pada gambar biasa, satu bit dapat merepresentasikan bermacam-macam warna. Gambar 3 - Seperti terlihat pada gambar dwiwarna sederhana ini, setiap pixel diberi nilai tonal, dalam hal ini 0 contoh untuk hitam dan 1 untuk putih. Oleh karena citra digital terdiri dari larik dua dimensi (matriks) berisi bit, seringkali disebut dengan bitmap. 2.2 Pattern Matching Pattern Matching adalah sebuah teknik dalam analisis data otomatis, biasanya dilakukan pada komputer, dimana sekelompok sifat karakteristik dari suatu obyek yang tidak diketahui dibandingkan dengan satu set sifat karakteristik dari suatu objek yang diketahui, untuk menemukan identitas atau klasifikasi yang tepat dari objek yang tidak diketahui. [2] Pattern Matching adalah sebuah teknik pencarian string yang berisi data teks atau biner untuk beberapa set karakter yang didasarkan pada pola pencarian tertentu. [3] Pada masalah pengurutan elemen larik, Algoritma Brute Force membandingkan setiap elemen yang ada pada larik untuk mementukan urutan. Pada permasalahan penelusuran seperti yang telah disebut diatas dan yang lainnya, algoritma menelusuri setiap elemen dengan iteratif, dari awal sampai akhir, tidak rekursif dan tidak menggunakan teknik non-iteratif lainnya. Algoritma Brute Force memiliki kelebihan dibandingkan dengan algoritma lain: Algoritma Brute Force dapat digunakan untuk memecahkan hampir sebagian besar masalah (wide applicability). Algoritma Brute Force sederhana dan mudah dimengerti. Algoritma Brute Force menghasilkan algoritma yang layak untuk beberapa masalah penting seperti pencarian, pengurutan, pencocokan string, perkalian matriks. Algoritma Brute Force menghasilkan algoritma baku (standard) untuk tugas-tugas komputasi seperti penjumlahan/perkalian n buah bilangan, menentukan elemen minimum atau maksimum di dalam tabel (list). Di lain hal, Algoritma Brute Force Metode juga memiliki kelemahan: Algoritma Brute Force jarang menghasilkan algoritma yang mangkus. Beberapa Algoritma Brute Force lambat sehingga tidak dapat diterima. Selain itu juga tidak sekontruktif/sekreatif teknik pemecahan masalah lainnya. 2.4 Matriks Dalam matematika, matriks adalah dua dimensi yang terdiri dari angka, simbol, atau ekspresi, yang diatur dalam baris dan kolom. Sebuah individu dalam matriks disebut elemen atau entri. Gambar 4 Sebuah matriks berukuran m x n. 2.3 Algoritma Brute Force Brute Force pendekatan yang lempang untuk memecahkan suatu masalah (straightforward). Brute Force biasanya didasarkan pada pernyataan masalah (problem statement) definisi konsep yang dilibatkan. Algoritma brute force memecahkan masalah dengan sangat sederhana, langsung, jelas (obvious way). Intinya: lakukan saja. [4] Pada masalah pencarian dalam struktur data larik, Algoritma Brute Force menelusuri setiap elemen larik. III. ANALISIS PEMECAHAN MASALAH Permasalahan pencocokan gambar dapat diselesaikan dengan mula-mula memodelkan hal yang merupakan masalah utama terlebih dahulu, yaitu gambar tersebut. Seperti yang telah disebutkan pada dasar teori, gambar adalah sekumpulan pixel yang tersusun dalam larik dua dimensi, jadi pertama-tama kita modelkan gambar dengan sebuah matriks. Halaman 2

Matriks model akan memiliki elemen yang berupa nilai warna dari gambar tersebut. Matriks tersebut memiliki ukuran lebar x tinggi, sesuai ukuran gambar. Elemen (1,1) merepresentasikan pixel (1,1) dari gambar, dan seterusnya sampai (m,n). Dalam kasus pencocokan citra ini, ada dua citra yang terlibat, yaitu gambar utama dan gambar potongan. Setelah selesai memodelkan kedua gambar, kita akan mendapatkan dua buah matriks, matriks gambar utama dan matriks gambar potongan. Pada gambar 6, setiap penelusuran menghitung tingkat kemiripan matriks pada koordinat yang ditelusuri. Tingkat kemiripan dihitung dengan rumus : (a) (b) Fungsi tersebut memiliki hasil dari 0 sampai dengan 1. Semakin tinggi nilai menunjukan potongan matriks semakin mirip dengan daerah yang sedang ditelusurinya. Sedangkan fungsi kesalahan adalah fungsi yang menunjukkan sama atau tidaknya elemen potongan matriks. Gambar 5 Ilustrasi matriks gambar utama (a) dan matriks gambar potongan (b). Setelah mendapatkan matriks model, permasalahan yang semula pencarian lokasi potongan gambar menjadi pencarian lokasi potongan matriks. Pertanyaannya menjadi Dimanakah koordinat matriks potongan di dalam matriks utama?. Pada tahap selanjutnya, kita akan memakai konsep pattern matching dalam pencarian koordinat. Idenya adalah mencari tingkat kemiripan dari setiap koordinat. Kita akan menelusuri setiap elemen di matriks gambar utama untuk mendapatkan tuple (pasangan) koordinattingkat kemiripan. Pasangan-pasangan tersebut akan disimpan ke dalam sebuah larik untuk kemudian diproses, misalnya: mencari koordinat dengan tingkat kemiripan tertinggi, mencari sepuluh koordinat yang paling mirip, atau yang lainnya. Fungsi kesalahan bernilai 0 ketika elemen kedua matriks yang dibandingkan tidak sama, dan bernilai 1 ketika nilainya sama. Dengan penelusuran brute force dan kedua fungsi tersebut, kita dapat memperoleh tingkat kemiripan dari setiap koordinat dan menyimpan ke dalam larik. Tahap selanjutnya adalah mencari tingkat kemiripan tertinggi dari larik tersebut. Koordinat yang memiliki tingkat kemiripan tertinggi adalah Koordinat letak potongan gambar tersebut pada gambar utama. IV. IMPLEMENTASI DAN PENERAPAN ALGORITMA Tahap penelusuran untuk mendapatkan tingkat kemiripan akan menggunakan algoritma brute force. Matriks akan ditelusuri secara dua dimensi. Gambar 6 Penelusuran Matriks dari koordinat (1,1) sampai (m,n) Pada tahap implementasi, penulis membuat sebuah program yang dijadikan percobaan untuk menyelesaikan permasalahan pencarian letak potongan citra ini. Program dibuat dengan bahasa Java dan dengan pustaka javax/swing sebagai antarmuka. Pada tahap pengembangan program, penulis menggunakan pustaka Marvin Framework untuk menggunakan fungsi-fungsi dasar pengolahan citra, karena di pustaka milik java penulis tidak menemukan fungsi-fungsi tersebut. Program ini memiliki fitur yang mengizinkan pengguna menginput gambar utama dan potongannya, Halaman 3

lalu menunjukkan letak/koordinat potongan gambar tersebut. Hasil pencarian ditandai dengan kotak merah pada gambar utama. Untuk lebih jelas, dapat dilihat pada gambar-gambar berikut. persis dengan potongan gambar. Berikut adalah koordinat beserta tingkat kemiripan dari hasil yang didapatkan. Gambar 9 Koordinat dari hasil, beserta tingkat kemiripannya Koordinat dan tingkat kemiripan tampil pada output di IDE netbeans. Berikut adalah implementasi kode dari fungsi penentuan tingkat kemiripan. Pada program yang dibuat, fungsi kemiripan dan kesalahan yang sudah disebutkan di atas digabung menjadi sebuah fungsi. function getnilai(x,y: integer) boolean { Merupakan fungsi untuk mendapatkan tingkat kemiripan } Kamus Gambar 7 Tampilan awal program a : double countbeda : integer luas : integer i,j : integer Algoritma a 0.0 countbeda 0 luas G2Width*G2Height i 0, j 0 while (i< G2Width) { while (j< G2Height) { if (pixelg1(i+x,j+y)!=pixelg2(i,j)) countbeda countbeda +1 j j+1 } i i+1 } a 1-(countbeda/luas) a Pada fungsi di atas, perbandingan pixel yang dilakukan adalah sebanyak berikut. Gambar 8 Tampilan program setelah mendeteksi potongan gambar. Pada gambar 7 dan 8, terlihat adanya perbedaan, yaitu kotak merah yang menandai lokasi hasil pencarian. Dapat dilihat, bagian dari gambar utama yang ditandai sama Rumus diatas memiliki kompleksitas sebesar O(n 2 ). Berikut ini algoritma penelusuran yang menjalankan fungsi getnilai dan meletakkan hasilnya ke dalam larik. Halaman 4

Procedure cariletak (larik posisi) {prosedur pencarian tingkat kemiripan untuk seluruh elemen matriks} Kamus b : double Gambar 10 Gambar Ir. Soekarno, hasil terdeteksi pada (159,78), tingkat kemiripan 0,9894. batasx, batasy : integer Algoritma b 0.0 batasx (G1Width -G2Width)+1 batasy (G1Height -G2Height)+1 for (int i 0; i< batasx; i++) for (int j 0; j< batasy; j++) b = getnilai(i,j) posisi[i* batasy +j] <i,j,b> V. HASIL PENGUJIAN DAN ANALISIS Dilakukan sejumlah pengujian terhadap program dengan melakukan variasi pada gambar utama dan potongan gambar. Gambar 10 Sebuah foto dengan potongan gambar kaki, hasil terdeteksi pada (9,123), tingkat kemiripan 0,9912. Gambar 11 Sebuah foto kamar berantakan dengan potongan gambar tetikus, (94,177) - 0,9907. Halaman 5

VI. KESIMPULAN Kesimpulan yang dapat diambil dari pembahasan di atas antara lain: 1. Algoritma Brute Force cocok untuk menyelesaikan permasalahan pencarian tingkat kemiripan. 2. Algoritma Brute Force ini merupakan algoritma yang mampu menyelesaikan masalah dengan cara sederhana, langsung, dan jelas meskipun bukanlah algoritma yang mangkus. 3. Untuk ukuran citra yang lebih besar, proses penentuan tingkat kemiripan akan lebih lambat, sehingga diperlukan algoritma yang lebih efektif. Saran untuk pengembangan selanjutnya: 1. Diperlukan penelitian lebih lanjut dengan menggunakan algoritma lainnya sehingga proses penentuan tingkat kemiripan ini dapat lebih efektif lagi. PERNYATAAN Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi. Bandung, 21 Desember 2012 Ananta Pandu Wicaksana 13510077 REFERENSI [1] http://www.library.cornell.edu/preservation/tutorial/intro/intr o-01.html (akses: 21 Desember 2012) [2] http://www.thefreedictionary.com/pattern+matching (akses: 21 Desember 2012) [3] http://work.lauralemay.com/samples/perl.html (akses: 21 Desember 2012) [4] http://informatika.stei.itb.ac.id/~rinaldi.munir/stmik/stmik.ht m (akses: 21 Desember 2012) Halaman 6

LAMPIRAN Berikut adalah gambar- gambar dari aplikasi. Lampiran tidak bertujuan untuk memeuhi kuota lima halaman. Halaman 7