Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Bismillah1 edit

SKRIPSI PENGGABUNGAN BEBERAPA CITRA UDARA DENGAN METODE SURF (SPEEDED-UP ROBUST FEATURES) STITCHING MULTIPLE AERIAL PHOTOGRAPH USING SURF (SPEEDED-UP ROBUST FEATURES) ALGORITHM HANIFAH DWIYANTI 12/330491/PA/14386 PROGRAM STUDI S1 ELEKTRONIKA DAN INSTRUMENTASI JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS GADJAH MADA YOGYAKARTA 2016 HALAMAN PERSETUJUAN SKRIPSI PENGGABUNGAN BEBERAPA CITRA UDARA DENGAN ALGORITMA SURF (SPEEDED-UP ROBUST FEATURES) Diusulkan Oleh : HANIFAH DWIYANTI 12/330491PA/14386 Telah disetujui Pada tanggal ……………. Pembimbing R. Sumiharto, S.Si, M. Kom. Pembimbing I KATA PENGANTAR Puji Syukur penulis ucapkan kepada Allah SWT atas kuasa-Nya yang telah melimpahkan semua kasih sayang, rahmat, hidayah dan karunia-Nya sehingga penulis dapat menyelesaikan skripsi yang berjudul “SISTEM PENGGABUNGAN BEBERAPA CITRA UDARA DENGAN ALGORITMA SURF (SPEEDED-UP ROBUST FEATURES)”. Sholawat serta salam selalu tertuju kepada junjungan umat, Nabi Muhammad SAW.yang telah memberikan tauladan dan inspirasi di segala aspek kehidupan. Skripsi ini disusun sebagai salah satu syarat untuk memperoleh gelar Sarjana S1 Program Studi Elektronika dan Instrumentasi, Jurusan Ilmu Komputer dan Elektronika, Fakultas Matematika dan Ilmu Pengetahuan Alam, Universitas Gadjah Mada Yogyakarta. Penulis menyadari bahwa terselesaikannya skripsi ini tidak terlepas dari bantuan dan dukungan dari berbagai pihak. Oleh karena itu, dengan segala hormat pada kesempatan ini penulis ingin menyampaikan penghargaan dan terima kasih yang sebesar-besarnya kepada: Kedua orang tua tercinta dan Mbak Hana Eka Prihanti tersayang yang selalu memberikan doanya, semangat, nasehat, dorongan dan bantuan kepada peneliti selama ini. Bapak R. Sumiharto, S.Si, M.Kom. selaku dosen pembimbing skripsi yang telah bersabar dan banyak meluangkan waktu untuk mem-bimbing, memberikan ide dan pemikiran, serta saran dan masukan yang baik sehingga penulis dapat menyelesaikan skripsi ini dengan baik. Dosen-dosen penulis selama mengikuti perkuliahan di program studi Elektronika dan Instrumentasi ini yang tidak bisa disebutkan namanya satu persatu, yang telah memberikan banyak ilmu dan bimbingan. Teman-teman seperjuangan dalam mengerjakan tugas ini Engga, Rheza, Arif dan Mas Yogi. Mas Lukman Awaludin Kakak-kakak HOT dari Mas Rendra, Mas Hujja, Mas Zaman, Pak Hananto, Kakak-kakak Komunitas N2 Mas Gamma, Mas Poci, Mas Ian, Mas Dedhi, Mbak Rohmi, Mbak Rilla, Mbak Nilta, Mbak Novi, Mbak Helena, Mas Awis, Mas Rizqan, Mas Annas yang telah memberikan inspirasi, semangat, dan masukan. Teman-teman kelas bunga matahari Echi, Alan, Ifah, Ofe, Faris dan Wilson yang selama ini selalu memberi semangat. Terima kasih untuk hari-hari yang menyenangkan. Yang Terkasih Semua teman-teman Elins angkatan 2011 yang tidak bisa disebutkan namanya satu persatu, terima kasih atas dukungan, kebersamaan, dan besedia berbagi ilmu. Semua pihak yang selama ini telah membantu, mendukung dan menyemangati penulis hingga saat ini. Semoga Allah selalu memberikan rahmat serta kemudahan kepada semua pihak yang telah banyak membantu dalam penyelesaian skripsi ini. Peneliti menyadari bahwa dalam skripsi ini bukan sesuatu yang sempurna. Oleh karena itu saran dan kritik yang positif sangat diharapkan. Semoga skripsi ini dapat berguna bagi peneliti dan pembaca. Yogyakarta, 2016 Hanifah Dwiyanti DAFTAR ISI HALAMAN JUDUL i HALAMAN PERSETUJUAN iii DAFTAR ISI iv BAB I PENDAHULUAN 1 1.1 Latar Belakang Masalah 1 1.2 Rumusan Masalah 2 1.3 Tujuan Penelitian 2 1.4 Manfaat Peneletian 2 1.5 Batasan Masalah 3 1.6 Metodologi Penelitian 3 1.7 Sistematika Penulisan 4 BAB II TINJAUAN PUSTAKA 6 BAB III LANDASAN TEORI 9 3.1 Unmanned Aerial Vehicle Error! Bookmark not defined. 3.2 Citra Udara 9 3.3 Algoritma SURF 11 3.3.1 Pendeteksian Fitur 11 3.3.2 Pendeskripsian titik fitur 14 3.4 Metode FLANN 16 3.5 Metode RANSAC 16 3.6 Image Blending Error! Bookmark not defined. 3.7 OpenCV 2.4.8 18 BAB IV ANALISA DAN PERANCANGAN SISTEM 20 4.1 Komponen Sistem 20 4.2 Rancangan Sistem 20 4.3 Rencana Pengujian Sistem 24 BAB V JADWAL PENELITIAN Error! Bookmark not defined. DAFTAR PUSTAKA 34 DAFTAR GAMBAR Gambar 3.1 Jenis pemotretan 10 Gambar 3.2 (a) citra panoramic (b) citra inframerah 10 Gambar 3.3 Komposisi fitur descriptor (Wang 2014) Error! Bookmark not defined. Gambar 3.4 Gambaran tentang RANSAC Kiri : kumpulan dengan banyak outlier Kanan : kumpulan data setelah proses RANSAC (Darajati, 2012). 17 Gambar 4.1 Diagram alir sistem 23 DAFTAR TABEL Tabel 2.1 Tabel Tinjauan Pustaka 7 Tabel 4.1 Komponen sistem 20 Tabel 4.2 Rencana Pengujian……………………………...………...…………..19 Tabel 5.1 Jadwal Penelitian Error! Bookmark not defined. PENDAHULUAN PENDAHULUAN Latar Belakang Masalah Seiring dengan berkembangnya teknologi banyak perubahan yang terjadi, salah satunya dalam bidang fotografi. Teknik pengambilan gambar yang semula hanya dapat dilakukan di darat kemuadian berkembang sehingga dapat mengambil gambar di udara maupun di air. Hasil yang didapatkan dari teknik pengambilan gambar di udara disebut sebagai foto udara(kata siapa). Sebuah foto udara dapat menggambarkan suatu wilayah tertentu yang memiliki cakupan luas dengan meningkatkan ketinggian pada saat pengambilan gambar namun dengan resiko kehilangan detail dari gambar yang diambil, sebaliknya jika dilakukan pengambilan gambar dari jarak yang tidak terlalu tinggi akan didapatkan detail dari gambar namun cakupan wilayahnya menjadi berkurang(kata siapa). Hal ini kemudian diatasi dengan membentuk suatu citra panorama. Citra panorama adalah sebuah gambar baru yang didapatkan dengan menggabungkan dua atau lebih gambar yang saling memiliki korelasi. (Abdelfatah, 2013). Tujuan dari penggabungan gambar adalah meningkatkan resolusi gambar sehingga detail gambar tetap dipertahankan sekaligus memperbesar ruang pandang atau wilayah yang dicakup. Citra panorama berguna untuk berbagai aplikasi termasuk pemetaan, peta digital, remote sensing dan lain sebagainya. Terdapat beberapa teknik untuk mencari korelasi antara dua buah gambar yang akan digabungkan seperti teknik yang didasarkan dengan mencari kesamaan region. Algoritma ini umumnya memklasifikasikan gambar berdasarkan nilai histogramnya. Histogram adalah representasi grafis dari persebaran data. Kelemahan dari teknik ini adalah tidak dapat mengidentifikasi kesamaan antara kedua gambar bila terjadi perubahan rotasi atau tranformasi geometris yang terlalu rumit. Teknik lain yang digunakan adalah mencari kesamaan berdasarkan domain frekuensi, dimana kesamaan antara kedua gambar dideteksi dengan melihat korelasi fasa yang dihasilkan. Kelemahan dari teknik ini adalah diperlukan komputasi yang tinggi yang akan memakan waktu lama. Berdasarkan kelemahan yang ada pada dua teknik sebelumnya, teknik mencari kesamaan dengan didasarkan fitur dari kedua gambar dianggap sebagai teknik yang paling baik dikarenakan fitur yang dideteksi tahan terhadap perubahan rotasi dan transformasi geometris serta komputasi yang dilakukan tidak memakan banyak waktu dibandingkan dengan mencari kesamaan berdasarkan domain frekuensi. Suatu citra panorama dibuat dengan menggabungkan banyak gambar, semakin banyak gambar yang digabungkan maka akan semakin besar resolusi gambar yang dihasilkan. Semakin besar resolusi gambar maka pada proses penggabungan citra selanjutnya dibutuhkan lebih banyak waktu untuk komputasi. Selain itu, dengan semakin besar resolusi gambar maka semakin besar memori yang diperlukan dalam prosesnya. Berdasarkan uraian di atas, maka pada penelitian ini akan dilakukan penggabungan banyak citra udara menggunakan algoritma SURF serta mengetahui parameter yang mempengaruhi keberhasilan penggabungannya. Algoritma SURF sendiri dipilih karena algoritma ini memiliki waktu komputasi yang cukup cepat dibandingkan dengan algoritma lainnya dalam salah satu proses penggabungan. Rumusan Masalah Dari latar belakang yang ada, dapat dirumuskan permasalahan terkait bagaimana cara menggabungkan lebih dari dua gambar menggunakan algoritma SURF dan apa saja parameter yang mempengaruhinya. Batasan Masalah Pembatasan masalah yang dilakukan dalam peneletian ini adalah : Gambar udara yang digunakan memiliki format JPG atau JPEG. Gambar yang digunakan untuk pengujian terdiri atas satu macam (panorama gunung) yang divariasikan skala resolusinya antara 307 x 230 piksel hingga 1024 x 768 piksel. Tujuan Penelitian Tujuan dari penelitian ini adalah menggabungkan lebih dari dua foto udara menjadi citra panorama dengan metode SURF untuk mendeteksi fitur. Manfaat Peneletian Manfaat penelitian ini adalah menghasilkan sebuah citra panorama, yang nantinya dapat digunakan dalam proses pemetaan. Metodologi Penelitian Metodologi penelitian yang telah dilakukan adalah sebagai berikut: Menentukan topik yang akan dipilih dengan cara studi literatur. Pemilihan topik ini juga disertai dengan konsultasi dengan dosen pembimbing. Setelah mengidentifikasi permasalahan-permasalahan yang ada maka akan ditemukan solusi dari masalah-masalah tersebut. Ini kemudian menjadi dasar dibuatnya sistem pentautan beberapa citra udara menggunakan algoritma surf. Pengumpulan materi referensi dilakukan dengan pengkajian dan pembelajaran lebih lanjut terhadap sistem yang akan dibuat, yaitu dengan cara: Studi Literatur, yaitu mempelajari artikel, makalah, jurnal, karya tulis, situs web di internet, serta buku-buku yang terkait dengan multiple stitching images, serta metode-metode yang digunakan. Konsultasi dengan dosen pembimbing dan dosen lain yang mengerti dalam bidang pemograman dan pengolahan citra untuk dimintai saran terkait topik yang diambil. Rancangan sistem penggabungan citra udara meliputi rancangan logika untuk mengatasi masalah-masalah pendeteksian, rancangan perangkat lunak dan algoritma untuk penggabungan citra udara. Algoritma yang digunakan dalam proses deteksi keypoint adalah algoritma surf. Selanjutnya adalah penerapan sistem yang telah dirancang menggunakan Bahasa Pemrograman C++ dengan algoritma SURF, sistem operasi Linux, dan OpenCV. Pengujian dilakukan dengan menautkan dua buah citra udara dengan beberapa titik kesamaan menjadi sebuah citra baru, kemudian ditautkan kembali dengan citra lain yang memiliki titik kesamaan hingga membentuk sebuah panorama citra. Yang terakhir adalah analisis dan pengujian terhadap sistem yang telah dibuat. Dari proses ini kemudian dapat ditarik kesimpulan dari hasil penelitian yang telah dilakukan. Sistematika Penulisan Sistematika penulisan yang digunakan dalam penyusunan tugas akhir ini adalah sebagai berikut: BAB I : PENDAHULUAN Bab ini berisi uraian tentang latar belakang masalah yang dikaji, tujuan penelitian, batasan malasah pada penelitian, metodologi penelitian yang dilakukan serta sistematika penulisan laporan penelitian. BAB II : TINJAUAN PUSTAKA Tinjauan pustaka memuat uraian sistematis tentang informasi hasil penelitian yang disajikan dalam pustaka dan menghubungkannya dengan masalah penelitian yang sedang diteliti. BAB III : LANDASAN TEORI Bab ini berisi tentang dasar teori yang mencakup teori-teori mengenai metode-metode pentautan citra serta algoritma-algoritma yang diperlukan dalam penelitian ini. BAB IV : ANALISIS DAN RANCANGAN SISTEM Bab ini berisi tentang perancangan algoritma dan metode yang digunakan untuk sistem penggabungan lebih dari dua citra udara menggunakan algoritma SURF. Rancangan sistem tersebut digambarkan dengan menggunakan diagram blok dan diagram alir. BAB V : IMPLEMENTASI Bab ini berisi penjelasan tentang implementasi sistem penggabungan lebih dari dua citra udara menggunakan algoritma SURF yang telah dirancang pada bab sebelumnya. BAB VI : PENGUJIAN DAN PEMBAHASAN Bab ini berisi tentang proses karakterisasi, pengujian, evaluasi sistem penggabungan lebih dari dua citra udara menggunakan algoritma SURF . BAB VII : PENUTUP Bab ini berisi tentang kesimpulan dari penelitian serta saran untuk mengembangkan penelitian selanjutnya. TINJAUAN PUSTAKA TINJAUAN PUSTAKA Penelitian terkait penggabungan gambar untuk membentuk suatu citra panorama telah banyak dilakukan. Diantaranya adalah proses penggabungan gambar yang didasari oleh metode deteksi fitur untuk mencari korelasi antara dua buah gambar. Algoritma yang sering digunakan untuk deteksi fitur diantaranya adalah SIFT dan SURF. Di dalam penelitiannya, (Ali & Hussain 2012) yang melakukan pembandingan kinerja algoritma SIFT dan algoritma SURF dalam mendeteksi fitur. Pada algoritma SIFT dapat mendeteksi fitur dengan detail yang lebih akurat dibandingkan dengan algoritma SURF namun algoritma SIFT membutuhkan waktu komputasi lebih lambat dibandingkan dengan algoritma SURF. Selain itu SIFT menghasilkan gambar yang lebih baik dibandingkan SURF ketika terdapat perubahan eksposur atau transformasi geometris tetapi SURF lebih baik mendeteksi fitur untuk gambar yang blur dan gambar yang mengalami rotasi. Pada suatu penelitian yang menggabungkan dua buah foto udara yang memiliki korelasi menggunakan algoritma SIFT untuk deteksi fitur diketahui bahwa sistem tahan terhadap variasi rotasi namun untuk variasi skala bergantung pada resolusi gambar yang digunakan. Penggabungan dapat dilakukan dengan minimal korelasi atau perpotongan antara kedua gambar sebesar 6 % dan jumlah minimal titik fitur yang berkesesuaian adalah 5 titik fitur (Diwangkaton,2014). Dewanti pada tahun 2014 merancang dan mengimplementasikan sistem penggabungan dua buah foto udara yang didapat dari pesawat Unmanned Aerial Vehicle (UAV) menggunakan algoritma SURF. Algoritma SURF bekerja berdasarkan 3 tahapan yakni deteksi fiturdari kedua gambar, kemudian memberikan deskripsi dari setiap titik fitur dan terakhir mencari kecocokan dari fitur-fitur yang ada. Berdasarkan pengujian ini diketahui minimal perpotongan, kedua gambar sebesar 15 % dengan minimal titik fitur yang berkesesuaian sebanyak 5 titik. Sistem ini tahan terhadap variasi rotasi tetapi perbedaan skala yang dapat dilakukan penggabungan adalah skala gambar yang diperkecil sebesar 25 %.dan skala citra yang diperbesar 600 %. Proses penggabungan gambar ini terus berkembang, dengan yang semula hanya menggabungkan dua buah citra kemudian dengan metode deteksi fitur yang sama diimplentasikan sistem penggabungan untuk lebih dari dua buah gambar. Berdasarkan penelitian yang dilakukan oleh Ghosh dkk. (2012) berhasil menggabungkan 5 buah gambar. Gambar yang digunakan dibagi kedalam 3 jenis, antara lain gambar 2D, gambar 3D, dan gambar yang didapatkan dari pemotretan menggunakan pesawat fixed-wings UAV. Berdasarkan hasil pengujian didapatkan bahwa mosaik citra yang paling baik didapat dari citra hasil citra udara menggunakan fixed-wings UAV dikarenakan tidak ada perubahan sudut yang terlalu mencolok seperti pada gambar 2D ataupun 3D. Berbeda dengan penelitian sebelumnya, Putra dkk. (2014) melakukan penelitian membuat aplikasi yang dapat menggabungkan 9 gambar menggunakan metode SIFT. Proses pentautan diawali dengan pendeteksian fitur menggunakan SIFT, kemudian proses pencocokan fitur menggunakan fasilitas K-D-Tree, dan proses pemilihan nilai kecocokan terbaik menggunakan best bin first search dan RANSAC. Selanjutnya, proses pentautan menggunakan metode projective transformation dengan memanfaatkan homography matrix. Pada proses pengujian, penelitian ini menggunakan beberapa perpotongan gambar sebuah gedung yang diambil dengan pengaruh rotasi, translasi, skew, dan intensitas cahaya. Berdasarkan paparan di atas, maka dirancang suatu sistem penggabungan foto untuk lebih dari dua buah gambar menggunakan metode SURF. Pada Tabel 2.1 dipaparkan rangkuman dari penelitian yang ada sebelumnya yang berhubungan dengan usulan penelitian ini. Tabel 2. SEQ Tabel \* ARABIC \s 1 1 Tabel Perbandingan antarapenelitian lain dengan penelitian penulis No Nama Pengarang Judul Penelitian Keterangan 1. Ali (2012) Panoramic Image Construction using Feature based Registration Methods Mengevaluasi dua metode penggabungan citra antara algoritma SIFT dan SURF. Algoritma SIFT diguanakan untuk membentuk citra dengan presisi tinggi, sedangkan algoritma SURF digunakan pada proses tracking atau video stitching. 2. Ghosh (2012) Quantitative Evaluation of Image Mosaicing in Multiple Scene Categories Mengevaluasi mosaik citra dengan kategori sudut pandang berbeda yang menggabungkan 5 citra dengan beberapa titik kesamaan menggunakan algoritma SIFT. 3. Putra dkk. (2014) Aplikasi Automatic Image Stitching pada Kumpulan Gambar dalam Satu Scene Sistem aplikasi menggabungkan 9 buah gambar dengan meng-gunakan metode SIFT. 4. Dewanti (2014) Purwarupa Sistem Penggabungan Citra Udara pada UAV Menggunakan Algoritma SURF Menggabungkan dua buah citra udara dengan metode SURF untuk menghasilkan citra mosaik. 5. Diwangkaton (2014) Sistem Penggabungan Citra Udara dengan Algoritma SIFT Menggabungkan dua buah citra udara dengan metode SIFT untuk menghasilkan citra mosaic. 6. Dwiyanti (2016) Sistem Penggabungan Beberapa Citra Udara dengan Algoritma SURF Menggabungkan lebih dari dua citra udara dengan metode SURF untuk menghasilkan citra panorama. LANDASAN TEORI LANDASAN TEORI Citra Udara Citra udara adalah salah satu produk dari bidang ilmu geografi dalam mengambil objek, daerah, atau fenomena yang ada di permukaan bumi ini menggunakan alat berupa kamera dengan proses perekaman secara citragrafik dengan bantuan detektor atau alat pendeteksi berupa film. Citra didapatkan dengan cara memotret menggunakan sebuah wahana atau alat transportasi udara seperti balon udara, pesawat, helikopter, ataupun gantole. Terdapat beberapa jenis pemotretan yaitu: pemotretan udara secara tegak, pemotretan udara secara condong (oblique), dan pemotretan udara sangat condong (high oblique).(Yanuar,2006) Pemotretan udara secara tegak dilakukan dengan posisi pesawat udara yang membawa kamera melakukan pemotretan secara tegak lurus dengan permukaan bumi. Pemotretan udara secara condong dilakukan dengan sudut pengambilan citra agak miring. Hasil pemotretan akan terlihat agak miring namun tidak menampakkan batas cakrawala. Sedangkan untuk pemotretan sangat condong dilakukan dengan sudut pengambilan citra yang sangat condong sehingga menampakkan garis cakrawala. Jenis-jenis pengambilan citra dapat dilihat Gambar 3.1 Gambar 3. SEQ Gambar \* ARABIC \s 1 1 Jenis pemotretan (Yanuar, 2006) Ketinggian pesawat udara terhadap permukaan bumi pada saat pemotretan juga memengaruhi skala citra udara yang dihasilkan. Semakin tinggi pesawat udara, maka akan menghasilkan citra udara yang relatif kecil namun dengan cakupan yang luas, akan tetapi objek yang tampak jadi tidak begitu jelas. Jika pemotretan dilakukan dengan ketinggian rata-rata, maka hasil citra udara adalah cakupan yang cukup luas dan kenampakan objek yang cukup jelas pula. Ada 2 jenis citra udara pankromatik (hitam putih) dan citra udara inframerah. Contoh-contoh citra udara tersebut dapat dilihat pada Gambar 3.2 Gambar 3. SEQ Gambar \* ARABIC \s 1 2 (a) Citra panorama (b) Citra Inframerah (Yanuar, 2006) Algoritma SURF SURF atau Speeded Up Robust Features merupakan algoritma untuk deteksi fitur. Deteksi fitur adalah proses mengolah citra untuk mengekstrasi fitur-fitur yang unik dari suatu objek di dalam citra, tujuannya agar objek dapat dideteksi pada citra lain yang mengandung objek yang sama meskipun objek mengalami perubahan skala ataupun rotasi. Prosesnya dibagi ke dalam tiga tahapan yakni: Pendeteksian Fitur Pendeteksian titik fitur bertujuan untuk mendeteksi titik fitur serta membangun ketahanannya sehingga fitur yang sama tidak akan dideteksi sebagai fitur baru dengan sudut pandang yang berbeda sekalipun. Teknik yang digunakan untuk mendapatkan titik fitur dengan menggunakan kernel Gaussian yang membagi scale space ke dalam beberapa level dan oktaf. Scale space merupakan ruang penskalaan yang menunjukkan perubahan terhadap citra setelah dikenakan filter Gaussian orde kedua. Ilustrasi dari scale space berbentuk seperti piramida ditunjukkan pada Gambar 3.3 Gambar 3. SEQ Gambar \* ARABIC \s 1 3 Struktur Piramida (Chaokui Li, 2008) Pendeteksian fitur umumnya melibatkan 3 tahap; membangun scale space menggunakan kernel Gaussian, menemukan determinan dari matriks Hessian dan mencari nilai extrema. Pada SURF metode Laplacian of Gaussian diubah menjadi filter kotak setelah didiskritisasi dan dipotong. SURF menggunakan kernel gaussian orde kedua dengan nilai (merupakan skala terkecil untuk mendapatkan resolusi spasial terbaik) pada perhitungan matriks Hessian setelah didiskritisasi menjadi kotak filter berukuran 9 x 9 seperti digambarkan pada Gambar 3.4. Kotak berwarna abu-abu pada citra dianggap bernilai 0 sedangkan kotak putih bernilai positif, sebaliknya kotak hitam bernilai negatif. Kotak filter direferensikan sebagai untuk dan untuk . Gambar 3. SEQ Gambar \* ARABIC \s 1 4 Laplacian of Gaussian didiskritisasi menjadi kotak filter (Pedersen,2011) Kemampuan Matriks Hessian dalam mendeteksi blob digunakan untuk mendeteksi fitur. Hessian sendiri merupakan matriks dari derivatif kedua Gaussian yang dituliskan ke dalam persamaan (3.1) (3.1) Dimana, (3.2) (3.3) Determinan dari matriks Hessian yang kemudian digunakan untuk mendeteksi fitur dituliskan seperti pada persamaan (3.4) (3.4) Dikarenakan kernel Gaussian diubah kedalam bentuk diskrit maka perlu adanya penambahan nilai untuk memastikan efisiensi komputasi. Nilai sensitif terhadap periubahan skala namun pada kasus ini dapat dibuat konstan dengan memberikan nilai sebesar 0.9 (Herbert,2008). Determinan matriks Hessian dari Gaussian yang telah didiskritisasi diberikan pada persamaan (3.3). (3.5) Menemukan titik fitur yang tahan terhadap penskalaan perlu dilakukan pada beberapa level dan oktaf dari scale space. Algoritma SURF memperbesar skala citra dari setiap perubahan oktaf seperti diilustrasikan pada Gambar 3.5. Gambar 3. SEQ Gambar \* ARABIC \s 1 5 Penskalaan citra pada algoritma SURF (Pedersen, 2011) Semakin besar citra maka semakin besar kernel yang digunakan. Meski bertambah besar ukuran kernel harus dipastikan untuk mempertahankan bentuknya dalam artian tidak mengubah fungsi filternya. Perubahan ukuran filter bergantung pada skala dan oktaf seperti diperlihatkan pada Gambar 3.6 Gambar 3. SEQ Gambar \* ARABIC \s 1 6 Hubungan antara skala dan oktaf pada ukuran kernel (Pedersen,2011) Perhitungan determinan matriks Hessian ataupun pembentukan scale space untuk algoritma SURF menggunakan citra integral. Citra integral adalah representasi tengah untuk citra dan terdiri dari jumlah nilai keabu-abuan dari citra N dengan tinggi y dan lebar x. Perumusannya dapat dilihat pada persamaan (3.4) (3.6) Pendeskripsian titik fitur Setiap titik fitur harus memiliki deskripsi yang unik agar tidak terpengaruh terhadap transformasi rotasi ataupun skala pada citra. Agar deskriptor dapat bekerja meski terjadi transformasi rotasi pada citra, mula-mula perlu diketahui orientasi titik fitur. SURF menggunakan Haar Wavelet yang dapat dihitung dengan mudah menggunakan citra integral untuk menemukan orientasi dari titik fitur. Apabila orientasinya didapatkan maka fitur ini akan tahan terhadap perubahan rotasi. Metode ini dikenal dengan metode Upright SURF (U-SURF) yang mampu menahan perubahan rotasi ±15º tanpa perlu adanya perubahan orientasi Gambar 3. SEQ Gambar \* ARABIC \s 1 7 Respon Haar Wavelet (Hong, 2009) Gambar 3.7 menunjukkan respon dari Haar Wavelet pada arah horizontal dan arah vertikal. Orientasi yang dominan ditentukan dengan menghitung jumlah seluruh orientasi dalam juring dengan sudut 60 derajat. Apabila flag bernilai 0 maka tidak dihitung, sedangkan bila bernilai satu dideteksi sebagai orientasi. .Setelah mengetahui orientasi fitur maka hal lain yang perlu diketahui adalah diskripsi fitur. Dibentuk ketenggaan disekitar titik fitur sebesar 20s. Kemudian dibagi ke dalam 4 x 4 sub-area. Pada bagian ini disimpan informasi spasial. Untuk setiap sub-area, dilakukan perhitungan Haar Wavelet dengan membaginya ke dalam 5 x 5 ruang sampel. Masing-masing dicari nilai dari respon wavelet baik secara vertikal ataupun horizontal. Respon wavelet ini dikenal dengan dan , seperti pada Gambar 3.8 Gambar 3. SEQ Gambar \* ARABIC \s 1 8 Wavelet dalam arah horizontal dan vertikal (Wang, 2014) Gambar 3. SEQ Gambar \* ARABIC \s 1 9 Mencari respon wavelet di area 20s yang dibagi ke dalam 4 x 4 sub-area (Wang, 2014) Untuk meningkatkan ketahanan ketika terjadi transformasi geometrik dan kesalahan lokal, respon di dan dititik beratkan pada pusat Gaussian di keypoint. Sehingga didapatkan vektor 4D yakni . Bila ditempakan pada masing-masing 4 x 4 sub-area akan didapatkan vektor descriptor dengan panjang 64. Respon wavelet bervariasi terhadap perubahan iluminasi. Faktor skala didapatkan dengan merubah descriptor ke dalam vektor unit. Ilustrasi dari perhitungan respon wavelet ditunjukkan pada Gambar 3.9. Pencocokan Fitur Apabila ada citra baru yang mengandung objek yang sama dari citra sebelumnya maka objek tersebut dapat dideteksi dari titik fitur yang sudah ditentukan. Hal ini yang kemudian disebut proses pencocokan fitur. Metode FLANN Metode Fast Library Approximated Nearest Neighbor (FLANN) digunakan untuk matching fitur SURF pada sistem penggabungan citra udara. Fitur SURF ini terdiri dari keypoint dan descriptor yang berupa vektor. Untuk satu citra di basis data terdapat banyak klaster untuk fitur SURF. Klaster ini dibuat otomatis dengan menggunakan KNN dengan tipe indeks kd tree, dimana KNN ini akan mencari jarak yang paling kecil antara vektor fitur dengan vektor pada klaster. (Tania, 2010). (Tania & Arymurthy, 2010). Proses matching atau pencocokan fitur citra udara, vector keypoint dan descriptor pada citra udara pertama akan dicocokkan nilainya dengan menggunakan KNN-search. KNN-search mencari klaster pada basis data yang nilai vector deskriptornya paling dekat jaraknya dengan vector descriptor citra udara pertama. Jika ada yang sama maka akan ada satu keypoint yang paling banyak cocok yang menghasilkan nilai kecocokan keypoint dan nantiya akan diproses untuk dihitung pada matriks homografi dan dilakukan penggabungan citra dengan metode warpPrespective. Algoritma RANSAC RANSAC merupakan teknik resampling yang menghasilkan kandidat calon dengan menggunakan minimum jumlah pengamatan (data points) yang diperlukan untuk memperkirakan model parameter secara iteratif untuk sekumpulan data. Algoritma ini diusulkan oleh Fischler dan Bolles pada tahun 1981. RANSAC memberikan estimasi pendekatan parameter umum yang dirancang untuk mengatasi proporsi outlier yang besar dalam data masukan. Input untuk algoritma RANSAC merupakan seperangkat nilai data yang diamati dan parameter yang dipasang untuk pengamatan yaitu melibatkan pemilihan subset poin acak dari satu set data dan menghitung ukuran seberapa total poin yang konsisten dengan model parameter yang terbentuk dari subset ini dengan probabilitas tertentu. Pada RANSAC, pencapaian hasil terbaik dilakukan dengan menentukan jumlah iterasi yang dilakukan. Algoritma RANSAC bergantung pada ambang jarak ( threshold ). Ketika poin terbanyak dan konsisten dengan parameter model ini, kemudian dipilih untuk menjadi model estimasi akhir yang dinamakan dengan inlies. Yaitu poin yang kira-kira dipasang ke dalam satu barisan dan outlier yaitu poin yang tidak dapat dipasang kebaris ini. Outlier biasanya muncul dari noise atau dari pengukuran yang keliru atau salah hipotesis tentang interpretasi data (Darajati,2012). Penggambaran algoritma RANSAC diberikan pada Gambar 3.10 Gambar 3. SEQ Gambar \* ARABIC \s 1 10 Gambaran tentang RANSAC Kiri : kumpulan dengan banyak outlier Kanan : kumpulan data setelah proses RANSAC (Darajati, 2012). Salah satu alternatif untuk menggunakan RANSAC adalah memilih subset berdasarkan poin terkuat yang ditentukan oleh proses pencocokan dalam tahap sebelumnya daripada sampel poin secara acak. Masalah pada pendekatan ini bahwa algoritma ini sangat bergantung pada tahap sebelumnya. Berikut ini adalah prosedur dalam algoritma RANSAC: Tentukan jumlah iterasi, nilai threshold, dan probabilitas kemunculan inliers. Pilih secara acak jumlah minimum poin dari himpunan yang sesuai dengan standar threshold. Fit model untuk subset minimum poin yang dipilih secara acak. Terapkan transformasi ke set lengkap poin dan hitung nilai inlier. Jika jumlah inlier melebihi ambang batas, tandai sebagai yang cocok. Jika tidak ulangi langkah 2 hingga 6 (sebanyak jumlah iterasi). Prosedur ini diulang beberapa kali, setiap kali menghasilkan model yang ditolak karena terlalu sedikit poin yang diklasifikasikan sebagai inlier. Dalamkasus terakhir, kita terus memperbaiki model jika kesalahan lebih kecil dibandingkan dengan mode yang terakhir disimpan. Bash Script Saat menggunakan Linux, seseorang diijinkan menuliskan program yang dapat dijalankan melalui terminal. Program tersebut biasa disebut dengan script. Script terdiri atas beberapa macam seperti Shell Script atau Bash Script. Keduanya menjalankan program yang hampir sama. Program umumnya dituliskan pada aplikasi text editor. Saat memulai menulis program biasanya terdapat “shebang” atau awalan bertuliskan #!/bin/bash. Tujuan pemberian awalan agar program dijalankan sesuai dengan intepreternya. Ada beragam interpreter selain bash yakni tsch, zsh,atau Perl. Bila tidak diberikan maka secara otomatis interpreter yang digunakan adalah shell. Penggunaan Script untuk image processing lebih kepada mengolah suatu folder a tau direktori, seperti membaca nama file dalam satu folder, menamai ulang file yang ada, mengurutkan file berdasarkan abjad, waktu dan lain sebagainya. OpenCV 2.4.11 OpenCV (Open Computer Visison) adalah sebuah API (Application Programming Interface), pustaka yang sudah sangat familiar pada pengolahan citra computer vision. Computer Vision adalah salah satu cabang dari bidang Ilmu Pengolahan Citra (Image Processing) yang memungkinkan komputer dapat melihat seperti manusia. Vision tersebut dapat mengambil keputusan, melakukan aksi, dan mengenali terhadap suatu objek. Beberapa pengimplementasian dari Computer Vision adalah Face Recognition, Face Detection,Face/Object Tracking, Road Tracking, dan lain-lain. OpenCV adalah pustaka Open Source untuk Computer Vision untuk C/C++, OpenCV didesain untuk aplikasi real-time, memiliki fungsi-fungsi akuisisi yang baik untuk citra/video (Diwangkaton,2014). ANALISA DAN PERANCANGAN SISTEM ANALISIS DAN PERANCANGAN SISTEM Komponen Sistem Komponen-komponen yang digunakan pada penelitian ini ditunjukkan pada Tabel 4.1sebagai berikut : Tabel 4. SEQ Tabel \* ARABIC \s 1 1 Komponen sistem No komponen Kegunaan 1 Laptop Digunakan untuk menjalankan aplikasi 2 Sistem Operasi Linux Ubuntu Digunakan sebagai Sistem Operasi untuk menjalankan OpenCV 2.4.8 3 OpenCV 2.4.8 Digunakan sebagai pustaka pemrograman yang menggunkan bahasa C++ Analisis Sistem Sistem yang dibuat merupakan sebuah sistem yang mendapatkan data citra dari hasil pemotretan menggunakan pesawat udara tanpa awak sayap tetap. Citra-citra tersebut dikelompokkan ke dalam satu folder kemudian digabungkan dengan algoritma Speeded Up Robust Features (SURF). Perangkat lunak dari sistem yang dibuat menggunakan pustaka OpenCV dengan menggunakan beberapa fungsi didalamnya untuk mempermudah proses dari sistem. Perangkat lunak lain yang digunakan adalah Script Bash untuk mengolah folder dan mendapatkan data waktu dari citra. Perangkat lunak yang sudah dibuat kemudian dijadikan satu folder dengan citra-citra yang dikelompokkan sebelumnya. Penggabungan beberapa citra yang ada di dalam satu folder berjalan secara otomatis, artinya perangkat lunak yang telah dibuat akan mengambil citra sesuai dengan data waktunya untuk kemudian diproses. Data waktu citra diperoleh dengan algoritma bash script sesuai yang ditunjukkan pada sub bab 3.5. Satu kali proses membutuhkan dua buah masukan citra dan program akan berulang hingga seluruh citra yang ada di folder telah diolah. Citra pertama adalah citra yang ukuran dan bentuknya tidak dirubah sedangkan citra kedua adalah citra yang disamakan ukurannya dengan citra pertama agar dapat dilakukan pengujian. Algoritma SURF dipilih karena performa dari SURF mendekati peforma yang dihasilkan oleh SIFT namun waktu komputasinya jauh lebih cepat bila dibandingkan dengan penggunaan algoritma SIFT. Penggunaan dari citra integral dan matriks perkiraan Hessian pada algoritma SURF yang membantu mengurangi komplesitas saat komputasi. (Fan & Lingyi, 2011). Diagram alir progam yang akan dibuat untuk penggabungan lebih dari dua citra digambarkan pada gambar 4.1 Program utama berisikan proses penggabungan yang diawali dengan langkah preprocessing dengan mengkonversi citra masukan RGB menjadi citra grayscale. Konversi citra kedua gambar dilakukan dengan memanggil sebuah fungsi dari pustaka OpenCV. Proses selanjutnya yang merupakan proses utama adalah deteksi keypoints masing-masing citra menggunakan algoritma Speeded up Robust Features yang telah disediakan oleh pustakan OpenCV sehingga proses menjadi lebih mudah. Pada proses ini didapat keypoints yang kemudian diekstraksi untuk memperoleh deskripsi dari setiap keypoints kedua citra. Langkah selanjutnya adalah melakukan proses pencocokan keypoints menggunakan FLANN atau Fast Library Approximated Nearest Neighbor. untuk memperoleh keypoints yang saling berkesesuaian dari kedua citra masukan. Dari proses pencocokan diperoleh titik-titik kesamaan antar keypoints dari kedua citra yang membentuk suatu pola. Dari pola-pola yang terbuat tersebut kemudian dilakukan perhitungan untuk memperoleh homography matrix atau pola kesamaan dari keypoints yang berkesesuaian menggunakan algoritma RANSAC yang telah tersedia pada pustaka OpenCV. Setelah didapat pola kesamaan keypoints dilakukan warping yang merupakan proses penggabungan citra sehingga diperoleh hasil akhir berupa citra utuh berkesesuaian yang berasal dari dua masukan citra yang berbeda Sistem ini dilakukan dengan menjalankan program script bash melalui terminal. Output yang dihasilkan ditulis dan disimpan dalam folder yang sama dalam bentuk file .jpg. Rancangan sistem membahas tentang garis besar perencanaan tahap-tahap untuk melakukan proses penggabungan citra yang lebih dari 2 citra menggunakan algoritma SURF. Algoritma SURF dipilih karena performa dari SURF mendekati peforma yang dihasilkan oleh SIFT namun waktu komputasinya jauh lebih cepat bila dibandingkan dengan penggunaan algoritma SIFT. Penggunaan dari citra integral dan matriks perkiraan Hessian pada algoritma SURF yang membantu mengurangi komplesitas saat komputasi. (Fan & Lingyi, 2011). Perancangan sistem ini akan dirancang untuk menganalisis dan mengolah data berupa citra udara yang didapat dari kamera UAV Fixed-wings dan selanjutnya akan diproses menjadi sebuah citra baru yang lebih luas cakupannya Diagram blok sistem dalam penelitian ini digambarkan pada Gambar 4.1 Berdasarkan Gambar 4.1 mula-mula dua buah citra digabung menjadi satu menggunakan algoritma SURF. Hasilnya akan digabungkan dengan citra lainnya yang masih memiliki kesamaan titik-titik fitur. Namun sebelum digabung kembali, citra yang sebelumnya telah ditautkan atau digabung perlu dilakukan image blending atau image fusion. Kegunaannya yakni menghilangkan “ghost-like” atau perpotongan citra yang samar-samar masih terlihat pada citra gabungan. Terkadang hasil penggabungan citra tidak simetris dan menyebabkan ruang kosong berwarna gelap pada citra. Untuk itu perlu adanya pemotongan beberapa sisi citra sesuai dengan aspek rasio untuk citra panorama. Peralatan Pada penelitian ini, terdapat beberapa peralatan yang dibutuhkan dalam pemrosesan sistem pentautan citra udara yaitu perangkat keras dan perangkat lunak. Berikut ini spesifikasi dari perangkat keras dan perangkat lunak: Spesifikasi Perangkat Keras Perangkat keras yang digunakan untuk pemrosesan sistem pentautan citra udara menggunakan algoritma SURF yaitu: Prosesor  Intel(R) Core(TM) i3-2330M CPU @2.20GHz (4CPUs). RAM 2GB DDR3 Memory 64-bit Operating System NVIDIA® GeForce® GT740M 1GB Spesifikasi Perangkat Lunak Pada penelitian ini perangkat lunak yang digunakan untuk perancangan sistem yaitu IDE Geany dengan pustaka OpenCV 2.4.11 yang telah terintegrasi di dalamnya sebagai compiler program. Sistem Operasi dijalankan di Linux Ubuntu 14.04 LTS. Rancangan perangkat lunak Sistem yang dirancang merupakan sistem yang dapat menggabungkan lebih dari dua gambar secara otomatis menggunakan algoritma SURF untuk mendeteksi fitur. Setiap kali proses dibutuhkan dua buah gambar yang memiliki korelasi. Gambar yang digunakan berupa foto udara dengan ketinggian di atas 50 meter. Proses penggabungan dilakukan dengan menggabungkan dua buah gambar terlebih dahulu, setelah digabungkan program akan berulang dengan mengambil gambar yang sudah digabungkan sebelumnya dengan gambar baru yang berada di dalam satu folder. Proses penggabungan ini akan secara otomatis terus berulang hingga seluruh gambar di dalam satu folder digabungkan. Sistem ini dijalankan dalam dua bagian. Bagian pertama mengurus segala sesuatu berkaitan dengan file gambar yang ada di dalam satu folder, terutama tentang bagaimana mengurutkan file gambar berdasarkan waktu. Tujuan dari mengurutkan file gambar berdasarkan waktu dengan anggapan bahwa proses pengambilan gambar dilakukan secara beruntun, sehingga terdapat korelasi antara satu gambar dengan gambar selanjutnya. mudian memanggil program utama secara berulang. Sebelum dilakukan pendeteksian pada kedua gambar dilakukan preprocessing untuk mempersiapkan gambar sebelum proses pengolahan. Prosesnya berupa perubahan terhadap gambar yang semula RGB menjadi gambar keabu-abuan. Preprocessing gambar Tahap awal sebelum proses pengolahan citra adalah preprocessing. Pada gambar … ditunjukkan diagram alirdari proses preprocessing. Tahap ini diawali dengan membaca gambar masukan. Sistem akan berjalan apabila sistem mendeteksi dua buah masukan yang dimaksudkan pada direktori. Kedua gambar merupakan gambar RGB yang terdiri dari 3 lapis matriks yaitu, R-layer, G-layer dan B-layer. Bila proses pengolahan gambar dilakukan dengan keadaan gambar RGB maka dalam prosesnya harus memperhatikan ketiga layer, untuk mempermudah komputasi maka gambar diubah kedalam bentuk greyscale dikarenakan citra ini tidak memiliki warna, hanyaderaja keabuan yang di dapat dari rata-rata ketiga matriks. Proses pengolahan hanya dilakukan sekali saja. Proses mendeteksi fitur dengan algoritma SURF Setelah berhasil mengubah citra RGB menjadi citra keabuan, proses yang dijalani selanjutnya adalah mendeteksi titik-titik fitur dengan algoritma Speeded-Up Robust Features (SURF). Langkah yang dilakukan pertama kali adalah mengubah gambar menjadi citra integral kemudian membuat scale space (ruang skala). Ruang skala berguna untuk memperjelas tepian pada gambar. Scale space terbagi menjadi bilangan yang disebut octave. Setiap octave merepresentasikan respon filter yang didapat dengan proses konvolusi terhadap kotak filter yang dimasukkan dengan ukuran filter yang semakin besar. Matching menggunakan FLANN Proses matching adalah pencocokan titik-titik fitur yang telah terdeteksi. Pustaka Fast Library Approximated Nearest Neighbor (FLANN) digunakan untuk mencari nilai tetangga terdekat. Nilai ini kemudian dijadikan sebagai deskriptor dari setiap titik fitur. Kemudian dengan metode KNN search dicari deskriptor manakah yang paling dekat jaraknya dengan nili vector deskriptor pada foto acuan. Apabila ditemukan vector deskriptor yang sama, maka ditemukan satu keypoint yang cocok antara foto masukan. Semakin banyak jumlah keypoin yang cocok, maka dianggap paling baik dalam mendeteksi titik fitur. Penggabungan gambar dengan RANSAC dan WarpPerspective Metode RANSAC digunakan untuk mencari matriks homografi dengan cara memfiltrasi titik-titik fitur yang telah dicocokkan sebelumnya. Bila titik fitur tersebut dianggap sebagai outlier maka akan dihilangkan. Outlier merupakan titik yang apabila dari sekumpulan data titik fitur tersebut ditarik garis lurus, titik tersebut tidak termasuk di dalamnya. Semakin tinggi ambang batas yang digunakan maka semakin banyak keypoint yang dibuang. Matriks homografi yang didapatkan dengan bantuan metode RANSAC ini digunakan dalam proses transformasi prespektif antara gambar acuan dengan gambar yang hendak digabungkan. Proses transformasi ini memerlukan nilai Offset untuk dikalikan dengan matriks homografi, tujuannya agar dapat membuat objek yang menyatu dengan objek yang dijadikan acuan. Rencana Pengujian Penelitian ini akan dilakukan penggabungan dua buah citra udara dengan algoritma SURF. Algoritma SURF ini akan mendeteksi titik-titik fitur atau keypoint kemudian melakukan lokalisasi fitur. Setelah dilakukan lokalisasi titik-titik ini kemudian akan dideskripsikan. Selanjutnya dengan metode FLANN titik-titik fitur ini akan dipilih untuk dicocokkan dengan metode RANSAC. Proses penggabungannya menggunakan warpPrespective. Sistem ini bertujuan untuk melihat faktor-faktor yang mempengaruhi proses penggabungan banyak citra dengan algoritma SURF sebagai deteksi fiturnya. Salah satu faktor yang diuji adalahpengaruh besar resolusi terhadap kebutuhan dari RAM. Pada pengujian lain dilakukan dengan melihat pengaruh objek yang beragam terhadap deteksi fitur sehingga didapatkan jumlah maksimal citra yang dapat digabungkan untuk masing-masing objek. Pengujian terakhir dilakukan dengan memvariasikan objek serta resolusi gambar yang digunakan. Tabel 4. SEQ Tabel \* ARABIC \s 1 2 Rencana Pengujian No. Rencana Pengujian Keterangan 1. Variasi resolusi gambar untuk menggabungkan dua gambar Menguji pengaruh resolusi terhadap kebutuhan RAM dengan melihat besar RAM yang terpakai ketika menggabungkan dua buah citra yang memiliki resolusi berbeda-berbeda. 2. Variasi objek yang di stitching Menguji tiga objek yang berbeda-beda karakter seperti objek pegunungan, perkotaan dan pedesaan, kemudian dilihat pengaruhnya terhadap deteksi fitur. 3. Variasi resolusi citra dari setiap objek untuk menggabungkan banyak gambar Menguji perbedaan resolusi terhadap banyaknya citra yang dapat ditautkan serta pengaruh lain seperti objek yang berbeda terhadap IMPLEMENTASI IMPLEMENTASI Bab ini akan menjelaskan tentang implementasi penggabungan citra udara menggunakan OpenCV 2.4.11 pada Linux Ubuntu 14.04 64 bit terdiri dari implementasi preprocessing, implementasi deteksi keypoint atau titik fitur dengan algoritma SURF, dan implementasi penggabungan kedua citra yang berkesesuaian. Implementasi sistem penggabungan citra udara menggunakan algoritma SURF ini dibuat dengan menggunakan perangkat keras dan perangkat lunak sebagai berikut: Notebook ASUS A43S Series Intel(R) Core(TM) i3 CPU 2330 M 2.20 GHz (4CPUs), RAM DDR 2 GB, HD 500 GB OpenCV 2.4.11 Linux Ubuntu 14.04 LTS Implementasi menggunakan Bahasa Pemograman C++ Implementasi menggunakan Bahasa Pemograman C++ dan pustaka OpenCV 2.4.11 terdiri atas proses pengolahan citra seperti proses preprocessing yakni tahapan awal sebelum citra diolah, deteksi keypoint, pencocokan keypoint dengan metode Fast Library Approximated Nearest Neighbor (FLANN), proses penggabungan citra, dan pemotongan citra untuk mengurangi area hitam di sekitar citra. Implementasi preprocessing citra Preprocessing merupakan tahap awal yang dilakukan supaya citra dapat lebih mudah diolah nantinya. Proses ini terdiri atas proses mengubah citra yang semula Red Green Blue (RGB) menjadi citra gray-scale (keabu-abuan). Tujuannya agar citra yang semula berada pada tiga layer berubah menjadi satu layer saja agar proses komputasinya lebih mudah. Kedua citra yang hendak digabungkan dibaca oleh sistem menggunakan perintah imread dan disimpan dalam kelas Mat. Mat disini merupakan sebuah kelas yang menyimpan citra dalam bentuk matriks 2D dengan masing-masing titik mewakili satu piksel. Citra diubah menjadi citra abu-abu menggunakan perintah cvtColor Gambar 5.1 Mat gray_image1; Mat gray_image2; cvtColor( image1, gray_image1, CV_RGB2GRAY ); cvtColor( image2, gray_image2, CV_RGB2GRAY ); Gambar 5. SEQ Gambar \* ARABIC \s 1 1 Potongan program konversi dari RGB ke greyscale Implementasi deteksi keypoint menggunakan algoritma SURF Pada Gambar 5.2 perintah SurfFeatureDetector merupakan pemanggilan algoritma SURF untuk mendeteksi keypoint. Sesuai dengan algoritma SURF itu sendiri yang menggunakan perhitungan dengan pendekatan matriks Hessian sesuai persamaan 3.1, maka perlu ditentukan ambang batas dari nilai determinan Hessian agar suatu titik dapat dikatakan sebagai keypoint. Semakin besar ambang batas yang digunakan maka semakin sedikit keypoint yang terdeteksi, sebaliknya semakin kecil nilai Hessian maka semakin banyak keypoint yang terdeteksi. Menurut penelitian yang telah dilakukan oleh Darajati pada tahun 2012 ambang batas yang sebaiknya digunakan bernilai 400. Perintah yang menyatakan ambang batas yang digunakan untuk program ini ada pada potongan kode baris 41. int minHessian = 400; SurfFeatureDetector detector( minHessian ); std::vector< KeyPoint > keypoints_object, keypoints_scene; detector.detect( gray_image1, keypoints_object ); detector.detect( gray_image2, keypoints_scene ); Gambar 5. SEQ Gambar \* ARABIC \s 1 2 Potongan program untuk mendeteksi keypoint Perintah pada nomor 44 dan 45 menunjukkan sebuah variabel bernama detector digunakan untuk menyimpan data hasil deteksi keypoint. Kemudian hasil perhitungan ini dideklarasikan dalam suatu bentuk vektor, nilai keypoints dimasukkan ke dalam variabel keypoints_object untuk citra pertama dan keypoints_scene untuk citra kedua. Deskriptor merupakan daerah piksel di sekitar keypoint yang dihasilkan. Deskriptor menggambarkan distribusi intensitas piksel tetangga disekitar keypoint. Proses pertama yang dilakukan adalah mencocokkan orientasi yang dihasilkan berdasarkan informasi dari daerah yang berbentuk lingkaran disekitar piksel yang menjadi keypoint. Kemudian proses berikutnya membuat daerah berbentuk kotak pada orientasi yang terpilih dan mengekstrak deskriptor SURF dari daerah tersebut. Listing pada Gambar 5.3 merupakan perintah untuk mengekstrak deskriptor SURF yang kemudian nantinya hasilnya akan dilakukan pencocokan keypoint antar kedua citra masukan. SurfDescriptorExtractor extractor; Mat descriptors_object, descriptors_scene; extractor.compute( gray_image1, keypoints_object, descriptors_object ); extractor.compute( gray_image2, keypoints_scene, descriptors_scene ); Gambar 5. SEQ Gambar \* ARABIC \s 1 3 Potongan program untuk mengekstrak deskriptor Implementasi pencocokan keypoint menggunakan FLANN Implementasi dari pencocokan FLANN KNN bertujuan untuk mencocokkan masing-masing keypoint yang memiliki deskriptor pada setiap citra. Nilai hasil dari pencocokan disimpan dalam vector<Dmatch> dan hasil keluarannya diseklarasikan sebagai matches. Hasil kecocokan kemudian diperiksa kembali pada setiap barisnya dengan fungsi perulangan for untuk mendapatkan nilai-nilai yang terbaik dan sesuai dengan batasan yang ditentukan. Nilai ini kemudian dideklarasikan sebagai good_matches. Nilai good_matches ini selanjutnya akan digunakan pada proses penggabungan. FlannBasedMatcher matcher; std::vector< DMatch > matches; matcher.match( descriptors_object, descriptors_scene, matches ); double max_dist=0; double min_dist=100; for( int i = 0; i < descriptors_object.rows; i++ ) { double dist = matches[i].distance; if( dist < min_dist ) min_dist = dist; if( dist > max_dist ) max_dist = dist; } std::vector< DMatch > good_matches; for( int i = 0; i < descriptors_object.rows; i++ ) { if( matches[i].distance < 2*min_dist ) { good_matches.push_back( matches[i]); } Gambar 5. SEQ Gambar \* ARABIC \s 1 4 Potongan program untuk mencocokan keypoint Implementasi penggabungan kedua gambar Implementasi penggabungan gambar dilakukan dengan menentukan homography matrix menggunakan RANSAC sebagai metode untuk menghilangkan outlier keypoin yang cocok yang didapatkan dari proses sebelumnya. Matriks ini kemudian digabungkan dengan warpPerspective. Homography matrix dideklarasikan sebagai Mat H dengan masukan nilai float hasil filtrasi. Kemudian dideklarasikan Mat offset sebagai matriks tambahan untuk dikalikan dengan Mat H. Tujuannya untuk menggeser koordinat citra agar berada di tengah-tengah canvas. Tahap akhir adalah proses penumpukan fitur dan menyamakan ukuran foto masukan dengan warpPerspective didasarkan dengan matriks homografi yang ada dan ukuran kanvas yang diinginkan. Ukuran kanvas diusahakan sebesar mungkin dikarenakan gambar yang digabungkan tidak hanya terdiri atas dua gambar, bila kanvas terlalu kecil gambar bisa jadi terpotog saat digabungkan. Dikarenakan metode warpPerspective hanya mengeluarkan salah satu gambar yang sudah diproyeksikan. Gambar lainnya yang dijadikan sebagai acuan ditambahkan dengan menggunakan pustaka Region of Interest (ROI). ROI ini digunakan untuk menentukan di area dan koordinat manakah gambar akan diletakkan. Selanjutnya dengan perintah copyTo gambar tersebut ditempelkan dan diperoleh hasil akhir berupa citra panorama. Proses tahapan ini dapat dilihat pada potongan program pada Gambar 5.5 berikut cv::Mat result; cv::Mat Offset = (cv::Mat_<double>(3,3) << 0.5, 0,image1.cols, 0, 0.5,image1.rows, 0, 0, 0.5); H = Offset * H; cv::warpPerspective(image1, result, H, cv::Size(5*image1.cols, 5*image1.rows)); image2(cv::Rect(0,0,image2.cols,image2.rows)). copyTo(result(cv::Rect((((image1.cols*5)-image1.cols)/2),(((image1.rows*5)-image1.rows)/2), image2.cols,image2.rows))); Gambar 5. SEQ Gambar \* ARABIC \s 1 5 Potongan program untuk menggabungkan gambar Implementasi untuk memotong area hitam pada gambar Setelah kedua gambar berhasil disatukan biasanya terdapat area hitam dikarenakan kanvas masih tersisa, bila area hitam terlalu besar maka akan mengganggu proses penggabungan dengan gambar selanjutnya. Oleh karena itu, perlu dihilangkan dengan menggunakan filter biner. Pada Gambar 5.6 hasil perubahan dari citra RGB menjadi citra biner disimpan di dalam Mat thr. Mat thr(src.rows,src.cols,CV_8UC4); cvtColor(src,thr,CV_BGR2GRAY); threshold(thr, thr,10, 255,THRESH_BINARY); Gambar 5. SEQ Gambar \* ARABIC \s 1 6 Potongan program untuk membuat gambar menjadi citra biner Setelah mendapatkan citra biner, dicari kontur pada gambar yang berguna untuk memisahkan area yang hitam dan area yang terkandung data gambar (digambarkan dengan warna putih). Kontur dicari dengan perintah findContours seperti pada Gambar 5.7. vector<vector<cv::Point> > contours; vector<Vec4i> hierarchy; findContours( thr,contours,hierarchy,CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE ); Gambar 5. SEQ Gambar \* ARABIC \s 1 7 Potongan program untuk mmencari kontur Pada Gambar 5.8 nilai kontur yang ada dicari area yang dianggap sebagai gambar dan disimpan nilainya dalam a. Dari kontur yang ada kemudian dibentuk suatu frame persegi panjang menggunakan perintah boundingRect yang kemudian frame ini digunakan untuk memotong gambar setelah ditentukan koordinat titik sudut dari frame persegi panjang seperti pada Gambar 5.9 for( int i = 0; i< contours.size(); i++ ) { double a=contourArea( contours[i],false); if(a>largest_area){ largest_area=a; largest_contour_index=i; bounding_rect=boundingRect(contours[i]); } Gambar 5. SEQ Gambar \* ARABIC \s 1 8 Potongan program untuk mencari kontur double min, max, min1, max1, min2, max2, min3, max3; minMaxIdx(bounding_rect.x, &min, &max); minMaxIdx(bounding_rect.y, &min1, &max1); minMaxIdx(bounding_rect.width, &min2, &max2); minMaxIdx(bounding_rect.height, &min3, &max3); cv::Mat subImg = src(Rect(max,max1,max2,max3)); imwrite( argv[3], subImg); Gambar 5. SEQ Gambar \* ARABIC \s 1 9 Potongan program untuk memotong gambar sesuai koordinat yang sudah ditentukan Implementasi menggunakan Bahasa Shell Script Dikarenakan data gambar yang digunakan tidak hanya dua, tidak efektif jika memasukkan gambar satu persatu dengan menuliskan nama gambar sehingga digunakan Shell Script untuk mengatur data yang ada dalam satu folder agar secara langsung dapat dimasukkan ke dalam program. Mula-mula dibuat file dengan tipe .txt dengan perintah touch. Kemudian data gambar yang bertipe .JPG diurutkan berdasarkan waktu dengan perintah ls –t. Setelah diurutkan, nama data gambar dituliskan di dalam file .txt yang telah dibuat. touch /tmp/tmpsort.txt ls -t *.JPG > /home/hanifah/skripsi/dua/tmpsort.txt while read line do (echo $line | awk '{print $8}') filedate=$(echo $line | awk '{print $6}') filedir=${filedate:0:7} if [ ! -d $destdir/$filedir ]; then mkdir -p $destdir/$filedir fi Gambar 5. SEQ Gambar \* ARABIC \s 1 10 Potongan program untuk mengurutkan gambar berdasarkan waktu diambilnya touch /tmp/tmpsort.txt ls -t *.JPG > /home/hanifah/skripsi/dua/tmpsort.txt while read line do (echo $line | awk '{print $8}') filedate=$(echo $line | awk '{print $6}') filedir=${filedate:0:7} if [ ! -d $destdir/$filedir ]; then mkdir -p $destdir/$filedir fi Gambar 5. SEQ Gambar \* ARABIC \s 1 11 Potongan program untuk mengurutkan gambar berdasarkan waktu diambilnya Implementasi pengujian HASIL PENGUJIAN DAN PEMBAHASAN bab 6, semua hasil dari implementasi dimasukin yak, dari hasil yang pencarian keypoint terus yang flann tadi. KESIMPULAN Kesimpulan Telah berhasil dibuat system penggabungan citra lebih dari dua gambar dengan algoritma surf dan lalala Banyaknya gambar yang dapat ditangani oleh system, maksimal gambar yang bisa digabung lah Parameter yang mempengaruhi, resolusi dll Pengaruh resolusi, semakin gede gimana kecil gimana atau dua gambar resolusi beda gimana dll Saykooo… udah bagus kok laporannya… bagian analisa aja si yang menurutku bahasanya agak muter muter… Semangat yaaa mumumu saykoo Masmu sayang DAFTAR PUSTAKA Ali, S. & Hussain, M., 2012. Registration Methods. Darajati, Aisah. 2012. Implementasi dan Analisis Citra Mosaik Berbasis Fitur dengan Metode Global Alignment untuk Pembentukan Citra Panorama pada Android. Fakultas Elektro dan Komunikasi Universitas Telkom. Bandung Dewanti, Farida. 2014. Purwarupa Sistem Penggabungan Citra Udara pada UAV Menggunakan Algoritma SURF (Speeded-Up Robust Features). Universitas Gadjah Mada. Yogyakarta Diwangkaton, Arumi.2014. Sistem Penggabungan Citra Udara Menggunakan Algoritma SIFT. Universitas Gadjah Mada. Yogyakarta. Fan, Y. & Lingyi, S., 2011. Improved Method of Automatic Image Stitching Based on SURF. Ghosh, D. et al., 2012. Quantitative Evaluation of Image Mosaicing in Multiple Scene Categories. Juan, L. & Gwun, O., 2010. SURF applied in Panorama Image Stitching. , pp.2–6. Tania, K.D. & Arymurthy, A.M., 2010. TATTOO RECOGNITION BASED ON SPEED UP WITH ROBUST FEATURES ( SURF ). , pp.123–140. Wang, W., 2014. A Fast Method for Image Mosaic Based on SURF. , (x), pp.79–82. Yanuar, F. & Wicaksono, E., 2009. APA ITU CITRA UDARA. , pp.1–7. ? 1 7 11 ? ? 6 11 8