1. BAB I PENDAHULUAN 1.1
Latar Belakang Dalam beberapa tahun terakhir, perkembangan teknologi pengolahan citra
semakin pesat. Salah satu bidang pengolahan citra tersebut adalah bidang identifikasi citra atau ekstraksi fitur. Dalam bidang ekstraksi fitur, sebuah sistem dikembangkan untuk mampu mengenali sebuah citra atau objek. Yaitu dengan mengambil ciri-ciri, atau sering disebut sebagai fitur, yang terdapat pada objekobjek pada citra tersebut. Fitur tersebut merupakan sebuah ciri khusus yang digunakan untuk membedakan antara suatu objek dengan objek lain. Dalam satu objek bisa terdapat puluhan hingga ratusan fitur, tergantung pada algoritma dan nilai-nilai parameter yang digunakan. Terdapat berbagai algoritma ekstraksi fitur yang sering digunakan. Beberapa di antaranya adalah Harris Corner Detector, Correlation Matching, dan SIFT (Scale Invariant Feature Transform). Harris Corner Detector merupakan algoritma ekstraksi fitur yang bekerja dengan mendeteksi ciri-ciri suatu objek dalam bentuk kelengkungan atau sudut. Pada dasarnya sebuah sudut merupakan sebuah lengkungan yang tinggi atau sangat tajam. Sehingga algoritma Harris Corner Detector akan mendeteksi sebuah fitur sudut apabila suatu titik memiliki kelengkungan yang tinggi. Namun, sebuah sudut dapat terlihat sebagai lengkungan biasa apabila dilihat pada jarak yang lebih dekat atau skala yang lebih kecil, dan sebaliknya, sehingga algoritma ini tidak dapat bekerja pada skala yang berbeda-
beda. Sedangkan algoritma Correlation Matching merupakan algoritma deteksi fitur yang mendeteksi fitur sebuah citra pada posisi yang sesuai dengan fitur yang dicari. Algoritma ini sangat rentan terhadap perubahan orientasi dan skala. Apabila sebuah citra mengalami rotasi, maka algoritma ini tidak lagi dapat mengenali fitur yang semula terdeteksi. Selain itu, apabila citra tersebut mengalami perubahan skala, algoritma ini juga tidak dapat lagi mengenali fitur tersebut. Algoritma ekstraksi fitur lain yang sering digunakan adalah SIFT. Algoritma ini bersifat scale invariant, yaitu tidak terpengaruh dengan perubahan skala, tetap dapat mengenali objek yang sama meskipun memiliki ukuran yang berbeda-beda. Selain itu, algoritma SIFT juga bersifat rotation invariant, sehingga perubahan orientasi citra juga tidak akan mempengaruhi kinerja algoritma ini dalam melakukan deteksi fitur. Algoritma ini akan tetap dapat mengenali objek dalam posisi arah yang berbeda-beda. Dengan demikian, algoritma SIFT tetap mampu mendeteksi fitur dan mengenali objek dalam kondisi citra yang beragam. Meskipun demikian, algoritma SIFT memiliki komputasi yang berat sehingga jarang digunakan dalam embedded system. Sebagian besar orang mengembangkan algoritma SIFT dalam sistem PC (Personal Computer) karena memiliki clock yang tinggi, mencapai 3 GHz, apabila dibandingkan dengan mikrokontroller pada umumnya yang hanya memiliki clock sekitar 8 MHz hingga 96 MHz saja. Selain itu, adanya algoritma SIFT yang bersifat opensource, misal library yang disediakan oleh OpenCV yang tidak dapat digunakan pada embedded system, menyebabkan orang-orang menjadi lebih mudah apabila memilih
2
mengembangkan algoritma SIFT pada sistem PC. Hal ini menyebabkan semakin jarangnya pengembangan algoritma SIFT yang dilakukan pada embedded system. Dengan demikian, diperlukan pengembangan coding algoritma SIFT sehingga dapat digunakan pada platform sistem apapun, khususnya pada embedded system. Diharapkan dengan adanya algoritma SIFT pada embedded system ini mampu memberikan kemudahan dan kemampuan lebih untuk mengembangkan berbagai macam sistem, terutama yang memerlukan algoritma deteksi fitur dengan menggunakan SIFT dan berjalan pada embedded system. 1.2
Rumusan Masalah Sebagian besar pengembangan algoritma SIFT dilakukan pada sistem PC.
Kemudahan pengembangan pada PC, terlebih lagi dengan adanya opensource algoritma SIFT oleh OpenCV dalam bentuk library, menyebabkan hampir tidak adanya orang yang mengembangkan algoritma SIFT pada embedded system. Untuk itu diperlukan pengembangan coding algoritma SIFT untuk dapat berjalan pada platform apapun, khususnya pada embedded system, sehingga akan mempermudah pengembangan sistem-sistem lebih lanjut yang berdasarkan pada deteksi fitur dengan menggunakan algoritma SIFT pada embedded system. 1.3
Batasan Masalah
Batasan masalah pada penelitian ini adalah: 1. Proses feature matching, optimasi memory dan waktu komputasi bukan merupakan bagian dari penelitian ini.
3
2. Pengujian dilakukan dengan menggunakan file gambar secara umum, tidak dikhususkan pada sidik jari saja. 3. Data input yang digunakan berupa file gambar dengan ekstensi .jpg atau .png. 4. Pemrograman algoritma SIFT dilakukan pada Visual Studio 2010 dengan sistem operasi Windows 7. 5. Bahasa pemrograman yang digunakan adalah C dan C++. 1.4 1.4.1
Tujuan dan Manfaat Penelitian Tujuan Penelitian Tujuan dilaksanakannya penelitian ini adalah sebagai berikut : 1. Menghasilkan source code algoritma SIFT dengan beberapa modifikasi sehingga dapat diimplementasikan serta dikembangkan secara bebas dan lebih mudah pada sistem-sistem yang dibuat, khususnya pada embedded system. 2. Mengetahui tingkat keandalan algoritma SIFT dalam melakukan ekstraksi fitur pada sebuah citra.
1.4.2
Manfaat Penelitian Manfaat dilaksanakannya penelitian ini adalah sebagai berikut : 1. Menambah wawasan mengenai pengolahan citra terutama pada bidang deteksi objek. 2. Meningkatkan pemahaman mengenai embedded system.
4
3. Memahami cara kerja algoritma SIFT untuk menghasilkan fitur-fitur yang merupakan ciri-ciri suatu objek pada sebuah citra. 4. Meningkatkan kemampuan pemrograman terutama pada bidang pemrograman perangkat lunak dengan menggunakan Visual Studio. 1.5
Metodologi Penelitian Metode penelitian yang digunakan yaitu dengan melakukan studi pustaka
melalui buku, jurnal ilmiah, artikel dan bahan-bahan lain yang dapat ditemukan melalui internet. Selain itu dilakukan pula diskusi dengan dosen pembimbing pada pembuatan desain algoritma dan implementasinya dalam bentuk source code program. Selanjutnya, pengujian dilakukan dengan melakukan beberapa perubahan pada parameter-parameter algoritma serta perubahan posisi, orientasi dan skala pada file gambar masukan. Nilai parameter yang diukur adalah keypoint dan descriptor. 1.6
Sistematika Penulisan Sistematika yang akan digunakan untuk menyusun penulisan tugas akhir ini
adalah sebagai berikut : 1. Bab I Pendahuluan Berisi mengenai latar belakang, rumusan masalah, batasan masalah, tujuan penelitian, manfaaat penelitian, metodologi penelitian dan sistematika penelitian. 2. Bab II Tinjauan Pustaka dan Landasan Teori Berisi mengenai konsep dasar fungsi Gaussian dan algoritma SIFT (Scale Invariant Feature Transform), termasuk Scale Space, LoG (Laplacian of 5
Gaussian), extrema image, serta keypoint dan descriptor sebagai ciri-ciri atau fitur dari suatu objek. 3. Bab III Metodologi Penelitian Berisi mengenai perangkat dan data yang digunakan dalam penelitian tentang pengembangan algoritma SIFT dalam bahasa C. Terdapat pula blok diagram penelitian beserta penjelasan mengenai blok diagram tersebut. 4. Bab IV Hasil dan Pembahasan Berisi penjelasan mengenai algoritma SIFT yang dibuat, termasuk beberapa bagian source code program beserta hasil dari setiap tahap pada algoritma SIFT tersebut. Selain itu dilakukan pula perbandingan data keypoint dan descriptor yang dihasilkan pada file gambar masukan yang mengalami perubahan posisi, orientasi dan skala. 5. Bab V Penutup Berisi kesimpulan yang diperoleh dari penelitian yang telah dilakukan serta beberapa masukan untuk melanjutkan penelitian mengenai implementasi algoritma SIFT pada sistem autentifikasi sidik jari.
6