IMPLEMENTASI ALGORITMA AFFINE SCALE...

98
IMPLEMENTASI ALGORITMA AFFINE SCALE INVARIANT FEATURE TRANSFORM UNTUK PENGENALAN WAJAH PADA CITRA SKETSA SKRIPSI Disusun Oleh : Mukhlis NIM : 108091000062 PROGRAM SARJANA (S1) KOMPUTER PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH JAKARTA 2015

Transcript of IMPLEMENTASI ALGORITMA AFFINE SCALE...

Page 1: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

IMPLEMENTASI ALGORITMA AFFINE SCALE

INVARIANT FEATURE TRANSFORM UNTUK

PENGENALAN WAJAH PADA CITRA SKETSA

SKRIPSI

Disusun Oleh :

Mukhlis

NIM : 108091000062

PROGRAM SARJANA (S1) KOMPUTER

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2015

Page 2: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

i

IMPLEMENTASI ALGORITMA AFFINE SCALE

INVARIANT FEATURE TRANSFORM UNTUK

PENGENALAN WAJAH PADA CITRA SKETSA

SKRIPSI

Diajukan sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer

Pada Program Studi Teknik Informatika Fakultas Sains dan Teknologi

Universitas Islam Negeri Syarif Hidayatullah Jakarta

Disusun Oleh :

Mukhlis

NIM : 108091000062

PROGRAM SARJANA (S1) KOMPUTER

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SYARIF HIDAYATULLAH

JAKARTA

2015

Page 3: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

ii

Page 4: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

iii

Page 5: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

iv

PERNYATAAN

DENGAN INI SAYA MENYATAKAN BAHWA SKRIPSI INI BENAR-BENAR

HASIL KARYA SENDIRI YANG BELUM PERNAH DIAJUKAN SEBAGAI SKRIPSI

ATAU KARYA ILMIAH PADA PERGURUAN TINGGI ATAU LEMBAGA

MANAPUN.

Jakarta, Juni 2015

Mukhlis

Page 6: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

v

Nama : Mukhlis

Program Studi : Teknik Informatika

Judul : Implementasi Algoritma Affine Scale Invarirant Feature

Transform Untuk Pengenalan Wajah Pada Citra Sketsa

ABSTRAK

Skripsi ini membahas penggunaan algoritma Affine Scale Invariant Feature

Transform dalam mengekstraksi ciri khusus (feature) yang terdapat dalam citra

sketsa dan foto. Dari ciri feature tersebut akan dicari kecocokkan antara citra

sketsa dan foto. Sehingga foto hasil identifikasi dapat memiliki wajah yang sama

atau setidaknya mirip dengan wajah pada citra sketsa. Hasil dari penelitian ini

menunjukkan bahwa metode Affine Scale Invariant Feature Transform dapat

mengidentifikasi feature dengan baik, ini terlihat dari banyaknya feature yang

dihasilkan. Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa

metode Affine Scale Invariant Feature Transform dapat digunakan untuk

mengidentifikasi wajah pada citra sketsa.

Kata Kunci : Pengolahan Citra, Pengenalan Wajah, Citra Sketsa, Scale Invariant,

ASIFT

Page 7: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

vi

KATA PENGANTAR

Puji dan syukur kehadirat Allah SWT atas segala karunia, rahmat dan

kekuatan, juga segala petunjuk dan kemudahan sehingga penulis dapat

menyelesaikan penulisan skripsi ini. Shalawat serta salam selalu kita haturkan

kepada junjungan kita Nabi besar Muhammad SAW beserta keluarganya, para

sahabatnya, dan para pengikutnya.

Skripsi ini berjudul ”Implementasi Algoritma Affine Scale Invariant

Feature Transform Untuk Pengenalan Wajah Pada Citra Sketsa”, yang

disusun untuk memenuhi salah satu syarat dalam menyelesaikan program S1 pada

Program Studi Teknik Informatika di Universitas Islam Negeri Syarif

Hidayatullah Jakarta.

Pada kesempatan yang berbahagia ini, penulis mengucapkan terima kasih

kepada:

1. Ibu A. Hanifa Setianingrum, M.Si. selaku Pembimbing I dan Bapak Victor

Amrizal, M.Kom selaku Pembimbing II, yang senantiasa meluangkan waktu

ditengah-tengah berbagai kesibukan dan aktifitasnya untuk membimbing

penulis dalam menyelesaikan skripsi ini.

2. Ibu Arini, ST., MT. selaku Ketua Program Studi Teknik Informatika, Bapak

Feri Fahrianto, M.Sc. selaku Sekretaris Program Studi Teknik Informatika,

dan Bapak Dr. Agus Salim, M.Si., selaku Dekan Fakultas Sains dan

Teknologi, Universitas Islam Negeri Syarif Hidayatullah Jakarta.

Page 8: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

vii

3. Pimpinan Perpustakaan Utama dan Perpustakaan Fakultas Sains dan

Teknologi yang telah memberikan fasilitas untuk mengadakan studi

kepustakaan.

4. Kepada semua dosen Program Studi Teknik Informatika yang telah

membimbing penulis untuk menambah wawasan mengenai pengetahuan di

bidang teknik informatika.

5. Umi dan Abi yang selalu memberikan dukungan kepada penulis berupa moril,

materil, semangat, kasih sayang, dan doa yang tiada hentinya.

6. Sanak Famili yang turut memberikan motivasinya kepada penulis.

7. Teman-teman TI B 2008, TI Software Engineering 2008, dan TI UIN 2008

yang telah berjuang bersama dalam menempuh pendidikan di Prodi Teknik

Infomatika, Universitas Islam Negeri Syarif Hidayatullah Jakarta.

8. Akhirnya, penulis berharap semoga skripsi ini dapat bermanfaat. Saran dan

kritik untuk kesempurnaan skripsi ini dapat disampaikan melalui email

[email protected].

Jakarta, 20 Mei 2015

Mukhlis

10809100006

Page 9: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

viii

DAFTAR ISI

HALAMAN JUDUL ...................................................................................... i

LEMBAR PENGESAHAN SKRIPSI .......................................................... ii

LEMBAR PENGESAHAN UJIAN .............................................................. iii

LEMBAR PERNYATAAN ........................................................................... iv

ABSTRAK ...................................................................................................... v

KATA PENGANTAR .................................................................................... vi

DAFTAR ISI ................................................................................................... viii

DAFTAR GAMBAR ...................................................................................... xi

DAFTAR TABEL .......................................................................................... xiii

BAB I PENDAHULUAN ............................................................................... 1

1.1. Latar Belakang ................................................................................. 1

1.2. Rumusan Permasalahan ................................................................... 2

1.3. Batasan Masalah .............................................................................. 2

1.4. Tujuan Penelitian ............................................................................. 3

1.5. Manfaat Penelitian ........................................................................... 3

1.6. Sistematika Peneliatian .................................................................... 4

BAB II LANDASAN TEORI ........................................................................ 5

2.1. Pengolahan Citra Digital ...................................................................... 5

2.2. Scale Infariant Feature Transform(SIFT) ........................................... 6

2.1.1. Pencarian Nilai Ekstrema pada Skala Ruang .................................. 7

Page 10: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

ix

2.1.2. Penentuan Keypoint ......................................................................... 9

2.1.3. Penentuan Orientasi ......................................................................... 11

2.1.4. Deskriptor Keypoint ......................................................................... 12

2.3. Affine Transformation .......................................................................... 13

2.4. Affine Scale Invariant Feature Transform ........................................... 14

2.3.1. Algoritma ASIFT ............................................................................. 16

2.5. Matlab .................................................................................................. 17

2.6. Metode Prototyping ............................................................................. 19

2.7. Falase Acceptance Rate(FAR), False Rejection Rate(FRR) dan

Equal Erorr Rate(EER) ........................................................................ 23

BAB III METODOLOGI PENELITIAN .................................................... 24

3.1. Metode Pengumpulan Data .................................................................. 24

3.1.1. Studi Pustaka ................................................................................... 24

3.1.2. Penelitian Sejenis ............................................................................. 25

3.2. Metode Pengembangan Prototipe ........................................................ 26

3.2.1 Pengumpulan Kebutuhan ................................................................. 27

3.2.1.1 Analisa Sistem ................................................................................ 27

3.2.1.2 Identifikasi Masalah ....................................................................... 27

3.2.1.3 Usulan Penyelesaian Masalah ........................................................ 27

3.2.1.4 Kebutuhan Perangkat Lunak dan Perangkat Keras ......................... 27

3.2.2 Membangun Prototype .................................................................... 28

3.2.2.1. Desain Image Processing ......................................................... 28

3.2.2.2. Desain Interface........................................................................ 29

Page 11: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

x

3.2.3 Mengkodekan System ..................................................................... 29

3.2.4 Pengujian aplikasi ............................................................................ 29

3.3. Kerangka Berfikir................................................................................. 30

BAB IV PEMBAHASAN DAN HASIL ....................................................... 31

4.1. Pengumpulan Kebutuhan ..................................................................... 31

4.1.1. Analisa Sistem ................................................................................. 31

4.1.2. Identifikasi Masalah ........................................................................ 32

4.1.3. Usulan Penyelesaian Masalah ......................................................... 32

4.1.4. Kebutuhan perangkat Lunak dan Perangkat Keras.......................... 32

4.2. Membangun Prototype ......................................................................... 33

4.2.1. Desain Image Processing ................................................................ 33

4.2.2. Desain Interface ............................................................................... 42

4.3. Mengkodekan Sistem ........................................................................... 44

4.4. Pengujian Prototipe .............................................................................. 62

BAB V PENUTUP .......................................................................................... 67

5.1. Kesimpulan ........................................................................................... 67

5.2. Saran ..................................................................................................... 67

DAFTAR PUSTAKA .....................................................................................

LAMPIRAN ....................................................................................................

Page 12: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

xi

DAFTAR GAMBAR

Gambar 2.1 Diagram Difference-of-Gaussian ................................................. 8

Gambar 2.2 Ilustrasi pencarian maksimum atau minimum lokal dari citra

DoG .................................................................................................................. 9

Gambar 2.3 Deskriptor dari perhitungan besar gradien dan orientasi serta

gambar lingkaran Gaussian (kiri) dan gambar deskriptor keypoint (kanan) .... 12

Gambar 2.4 Keypoint yang diperoleh dari suatu citra menggunakan SIFT ..... 13

Gambar 2.5. Model kamera proyektif u = S1G1Au0. A adalah mengubah

sebuah proyektif planar (Homography). G1 adalah anti-aliasing Gaussian

filtering. S1 adalah sampling CCD .................................................................. 14

Gambar 3.1.1 Alur Kerangka Berpikir ............................................................. 30

Gambar 4.1 Contoh citra hasil pengkaburan(blurring) 1S.jpg dengan

ukuran 828x1164, 414x582, 207x291,103x145 ............................................... 35

Gambar 4.2 Contoh citra hasil pengkaburan(blurring) 1F.jpg dengan

ukuran 2048x1536, 1024x768, 512x384, 256x192 .......................................... 36

Gambar 4.3 Contoh citra blurring menjadi citra DoG ..................................... 37

Gambar 4.4 Contoh Mencari Ekstrema dalam citra DoG ................................ 38

Gambar 4.5 Contoh Histogram Orientasi......................................................... 39

Gambar 4.6 Contoh pemberian finger print pada keypoint .............................. 40

Gambar 4.7 Memasukkan orientasi pada hitogram lingkaran ......................... 40

Gambar 4.8 gradient orientasi yang mengalami pembobotan gaussian ........... 41

Gambar 4.9 Gambar Interface Halaman Utama .............................................. 43

Page 13: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

xii

Gambar 4.9 Desain Interface Halaman Utama ................................................ 43

Gambar 4.10 Desain Interface Inisialisasi ....................................................... 43

Gambar 4.11 DesainInterface Identifikasi Sketsa ............................................ 44

Page 14: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

xiii

DAFTAR TABEL

Tabel 3.1. Tabel Perbandingan Studi Literatur Sejenis.................................... 25

Tabel 4.1. Tabel Spesifikasi Kebutuhan Perangkat Keras ............................... 32

Tabel 4.2. Perangkat Lunak Yang Digunakan ................................................. 33

Tabel 4.3 Hasil Matching Keypoint ................................................................. 42

Tabel 4.4 Jumlah Keypoint Citra Sketsa .......................................................... 62

Tabel 4.5 Jumlah Keypoint Citra Foto ............................................................. 64

Tabel 4.6 Hasil Pengujian FER dan FRR ........................................................ 65

Tabel 4.7 Jumlah Match Keypoint Citra Sketsa dan Foto ................................ 66

Page 15: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

1

BAB I

PENDAHULUAN

1.1. Latar Belakang

Dewasa ini banyak terjadi kejahatan, yang terkadang pelaku kriminal tidak

dapat ditangkap setelah kejadian terjadi. Polisi dapat mengidentifikasi pelaku

kejahatan dari keterangan saksi atau dari kamera pengawas. Wajah pelaku

kejahatan dapat dibuat sketsa wajahnya berdasarkan dari informasi tersebut.

Sketsa wajah tersebut dianalisa sehingga didapatkan foto wajah dari pelaku

kejahatan tersebut. Untuk mempermudah dalam menganalisa sketsa wajah

dibutuhkan sistem yang dapat mengidentifikasi sketsa sehingga didapatkan foto

wajah yang cocok.

Citra sketsa dan citra foto memiliki dua perbedaan yang terletak pada

tekstur dan bentuknya. Perbedaan tekstur antara citra sketsa dan citra foto terjadi

karena pembuatan citra sketsa secara manual yang biasanya menggunakan pensil

atau pulpen. Sedangkan perbedaan bentuk terjadi karena bentuk dari citra sketsa

yang dibuat merupakan penggambaran dari informasi deskriptif mengenai wajah

pelaku. Ada beberapa metode yang dapat digunakan untuk mengatasi masalah ini

salah satunya adalah menggunakan metode Scale Invariant Feature

Ttransform(SIFT).

Dalam tugas akhir yang dibuat oleh saudara Yuwono dari Universitas

Kristen Maranatha, beliau menggunakan metode SIFT untuk menngenali wajah

Page 16: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

2

dari citra input berupa sketsa. Dalam penelitiannya beliau mengungkapkan bahwa

metode SIFT dapat digunakan untuk mendeteksi wajah pada citra sketsa.

Penulis menemukan modifikasi dari metode SIFT yang bernama metode

Affine Scale Invariant Feature Transform (ASIFT). Metode ASIFT ini

menambahkan factor sudut pandang yang mendefinisikan orientasi axis dari

kamera. Metode ini dapat mengidentifikasi fiture yang telah mengalami distorsi

affine yang besar dengan mengukurnya menggunakan parameter baru yaitu

transisi kemiringan. Metode ini diklaim lebih baik dalam proses ekstraksi fiture.

Oleh karena itu penulis ingin membuat protype aplikasi untuk menguji apa

metode ASIFT dapat menganalisa wajah pada citra sketsa.

1.2. Rumusan Permasalahan

Masalah yang akan dibahas pada penelitian ini adalah sebagai berikut:

1. Bagaimana cara identifikasi pengenalan ciri sketsa wajah dan foto

wajah?

2. Bagaimana Hasil Identifikasi dan pencocokan sketsa wajah dan

foto wajah menggunakan ASIFT?

1.3. Batasan Masalah

Dalam Tugas Akhir ini, terdapat batasan-batasan masalah yang dibahas

sebagai berikut :

1. Input Sketsa wajah menggunakan tipe Viewed Sketch

2. Dalam proses pencocokan wajah, hanya digunakan foto dan sketsa

yang memiliki pose wajah menghadap ke depan (frontal view),

Page 17: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

3

tingkat pencahayaan normal, dan tidak menggunakan aksesoris

apapun.

3. Menggunakan lima pasang citra dan sketsa wajah, karena running

time proccess analisa pengenalan wajah maka penulis hanya

menggunakan lima pasang sample citra.

4. Format file citra yang digunakan adalah .jpg

5. Pengenalan wajah ini dilakukan dalam simulasi dengan

menggunakan MATLAB

6. Sketsa wajah dan foto wajah dimasukkan menggunakan scanner ke

dalam komputer.

1.4. Tujuan Penelitian

1. Melakukan identifikasi sketsa wajah dan foto wajah menggunakan

metode ASIFT.

2. Melakukan pencocokkan antara sketsa wajah dan foto wajah.

1.5. Manfaat Penelitian

1. Menambah pengetahuan penulis, terutama mengenai proses

pengenalan wajah.

2. Dapat menjadi refrensi untuk membuat aplikasi pengenalan wajah

dari citra masukan berupa sketsa.

Page 18: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

4

1.6. Sistematika Penelitian

Penyusunan laporan tugas akhir terdiri dari lima bab sebagai berikut :

Bab I. Pendahuluan

Pada bab ini akan dibahas mengenai latar belakang, perumusan masalah,

identifikasi masalah, tujuan, pembatasan masalah, dan sistematika

penulisan dari tugas akhir ini.

Bab II. Landasan Teori

Pada bab ini akan dibahas mengenai teori-teori penunjang yang akan

digunakan untuk merancang protipe aplikasi pengenalan wajah

menggunakan metode Affine Scale Invariant Feature Transform dengan

citra masukan berupa citra sketsa wajah.

Bab III. Metodologi Penelitian

Pada bab ini akan dibahas penjelasan tentang desain perancangan protype

perangkat lunak untuk pengenalan wajah menggunakan metode Affine

Scale Invariant Feature Transform dengan citra masukan berupa citra

sketsa wajah.

Bab IV. Pembahasan dan Hasil

Bab ini berisi proses yang penulis lakukan dalam membuat protype

pengenalan wajah pada citra sketsa dan hasil pengujian dari dari sample

sketsa.

Bab V. Kesimpulan dan Saran

Bab ini berisi tentang kesimpulan dari hasil pengujian program dan saran-

saran yang diperlukan untuk pengembangan di masa mendatang.

Page 19: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

5

BAB II

LANDASAN TEORI

2.1. Pengolahan Citra Digital

Ada dua prinsip daerah aplikasi pengolahan citra digital, peningkatan

informasi piktoral untuk interpretasi manusia, dan pengolahan data citra digital

untuk penyimpanan, transmisi, dan representasi bagi peralatan

presepsi(preception).

Satu dari aplikasi citra digital yang pertama adalah industri surat kabar,

ketika citra pertama kali dikirim dengan kabel kapal selam antara London dan

New York. Pengenalan sistem transmisi kabel laut Bartlane pada awal tahun 1920

mengurangi waktu yang dibutuhkan untuk mentransmisikan citra melintasi

atlantik lebih dari satu minggu sampai kurang dari tiga jam. Awalnya sistem

Bartlane dapat mengkodekan citra dalam lima perbedaan level keabuan.

Kemampuan ini ditingkatkan menjadi 15 level pada tahun 1929 (Prasetyo, 2011).

Walaupun sistem Bartlane diliputi oleh citra digital, proses yang dilakukan

tidak dipandang sebagai hasil pengolahan citra digital karena komputer tidak

digunakan dalam pembuatannya.pengolahan citra digital erat kaitannya dengan

perkembangan komputer digital. Nyatanya, citra difital membutuhka banyak

tempat penyimpanan (storage) dan kekuatan komputasi (Prasetyo, 2011)

Page 20: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

6

.Komputer pertama yang cukup kuat untuk melakukan

pekerjaanpengolahan cita digital muncul pada tahun 1960. Bekerja menggunakan

teknik komputer untuk meningkatkan citra dari sebuah tempat penelitian dimulai

oleh Jet Propulsion Laboratory(Pasadena, California) pada tahun 1964 ketika

gambar bulan ditransmisikan oleh Ranger 7 yang kemudian diproses oleh

komputer untuk menyempurnakan bermacam - macam jenis distorsi citranya

(Prasetyo, 2011).

2.2. Scale Infariant Feature Transform(SIFT)

Pada tahun 1999, David G. Lowe seorang peneliti dari University of

British Columbia memperkenalkan suatu metode baru dalam ekstraksi fiture dari

suatu citra. Metode ekstraksi fiture ini disebut sebagai Scale Invariant Fiture

Transform(SIFT). Dengan menggunakn SIFT ini, suatu citra akan di ubah menjadi

vektor fiture lokal yang kemudian akan digunakan sebagai pendekatan dalam

mendeteksi objek yang dimaksud.

Sebagai metode ektraksi fiture pada pengenalan objek, SIFT ini memiliki

kelebihan – kelebihan sebagai berikut :

1. Hasil ektraksi fiture bersifat invariant sebagian terhadap ukuran,

translasi dan rotasi dua dimensi.

2. Hasil ekstraksi fiture bersifat invariant sebagian terhadap

perubahan iluminasi dan perubahan sudut pandang tiga dimensi.

3. Mampu meng-ekstrak banyak keypoint dari citra yang tipikal

4. Hasil ekstraksi fitur benar – benar mencirikan secara khusus

(distincsive)

Page 21: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

7

Dengan kelebihan – kelebihan tersebut, penggunaan metode SIFT banyak

dikembangkan untuk aplikasi pengenalan objek.

Secara garis besar, alur proses yang berjalan pada metode SIFT terdiri

empat tahap, yaitu :

1. Mencari Nilai Ekstrema Pada Skala Ruang

2. Menentukan Keypoint

3. Penentuan Orientasi

4. Descriptor keypoint

Setelah melalui tahapan tersebut maka akan diperoleh fiture – fiture lokal

yang digunakan sebagai descriptor dari suatu objek.

2.1.1. Pencarian Nilai Ekstrema pada Skala Ruang

Pencarian nilai ekstrim maximum dan minimum pada skala ruang

merupakan tahap awal dalam penentuan keypoint dari suatu citra. Dengan

menggunakan fungsi Gaussian, citra pada skala ruang dapat didefinisikan sebagai

fungsi L(x,y,σ), yang diperoleh dari hasil konvolusi skala – variable Gaussian,

G(x,y,σ), dengan citra masukan I(x,y), sehingga diperoleh (Lowe, 2004) :

L(x,y,σ) = G(x,y,σ) * I(x,y)................................................................... (2.1)

dimana * adalah operasi konvolusi antara x dan y dan G(x,y,σ) adalah skala

variable Gaussian (Lowe, 2004):

G(x,y,σ) = �

���� ��(�����)/���..................................................................(2.2)

Citra hasil Difference-of-Gaussian, D(x, y, σ), diperoleh dengan

melakukan operasi konvolusi pada citra masukan dengan filter Difference-of-

Gaussian, maka (Lowe, 2004):

Page 22: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

8

D(x, y, σ) = G(x,y,kσ) - G(x,y,σ) * I(x,y)

= L(x,y,kσ) - L(x,y,σ)............................................................(2.3)

Dari persamaan (2.3) terlihat bahwa citra hasil Difference-of-Gaussian

sebenarnya merupakan selisih antara citra hasil pengkaburan Gaussian dengan

nilai skala k yang berbeda. Proses ini diilustrasikan sebagai berikut:

Gambar 2.1 Diagram Difference-of-Gaussian (Lowe, 2004)

Citra hasil konvolusi kemudian dikelompokan berdasarkan octave (satu

octave setara dengan penggandaan besarnya nilai σ), nilai k ditetapkan di awal

sehingga diperoleh jumlah citra kabur yang sama pada setiap octave serta

diperoleh citra hasil DoG yang sama untuk setiap octave.

Setelah diperoleh citra DoG pada setiap octave, maka langkah selanjutnya

ialah mencari kandidat keypoint. Kandidat keypoint dideteksi sebagai titik

maksimum dan minimum lokal dari citra hasil DoG. Untuk mencari nilai

Page 23: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

9

maksimum atau minimum lokal maka masing – masing piksel pada citra hasil

DoG akan dibandingkan dengan 8 piksel disekitarnya yang berada pada skala

yang sama dengan 9 piksel yang bersesuaian dengannya pada skala yang berbeda.

Jika pixel tersebut merupakan maksimum atau minimum lokal, maka pixel

tersebut akan dijadikan sebagai kandidat keypoint.

Gambar 2.2 Ilustrasi pencarian maksimum atau minimum lokal dari citra DoG (Lowe, 2004)

2.1.2. Penentuan Keypoint

Setelah kandidat keypoint ditemukan melalui tahapan pencarian nilai

ekstrim, maka langkah selanjutnya adalah untuk menyeleksi keypoint. Dimana

setiap kandidat keypoint yang dianggap sangat rentan terhadap gangguan(noise)

akan dihilangkan, yaitu kandidat keypoint yang memiliki nilai kontras yang

rendah dan kandidat keypoint yang kurang jelas dan terletak sepanjang tepi.

Untuk menghilangkan keypoint dengan nilai kontras yang rendah, maka

digunakan langkah – langkah sebaga berikut :

Page 24: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

10

1. Dengan menggunakan deret taylor pada fungsi skala ruang D(x, y, σ) yang

kemudian digeser sehingga titik asal berada pada titik sample, berikut ini

adalah fungsi deret Tylor (Lowe, 2004):

D(x) = D+���

��x+

�x� ���

��� x ........................................................................(2.4)

Dimana D dan penurunannya dilihat dari titik sample, dan x = (�, �, �)�

adalah offset dari titik ini.

2. Lokasi dari nilai ekstrim x� , diambil dengan menurunkan persamaan

sebelumnya terhadap x, sehingga didapatkan fungsi (Lowe, 2004):

x� = −�����

��� ��

�� .......................................................................................(2.5)

3. Fungsi nilai ekstrim D(x�), diperoleh dengan men-substitusikan persamaan

2.5 ke persamaan 2.4 sehingga menghasilkan persamaan berikut (Lowe,

2004) :

D(x�) = D+�

� ���

�� x� .....................................................................................(2.6)

Pada SIFT ini, semua nilai ekstrim | D(x�) | yang bernilai kurang dari 0,03 akan

dihilangkan.

Untuk menghilangkan keypoint yang kurang jelas pada tepi makan

digunakan persamaan berikut (Lowe, 2004) :

a��(�)�

���(�) <

(���)�

� ................................................................................... .(2.7)

dimana H merupakan matrix Hessian 2x2 dan r merupakan ambang batas dari

kecekungan inti yang diperbolehkan. Pada SIFT ini, semua keypoint yang

memiliki nilai r lebih besar dari 10 akan dihilangkan.

Page 25: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

11

2.1.3. Penentuan Orientasi

Pada tahap ini, masing – masing keypoint yang diperoleh akan diberikan

suatu orientasi yang tetap berdasarkan sifat – sifat lokal pada citra. Dengan adanya

proses ini maka keypoint yang diperoleh dapat direpresentasikan relatif terhadap

orientasi ini sehingga keypoint yang dihasilkan tidak terpengaruh terhadap adanya

rotasi pada citra. Untuk menentukan orientasi dari masing – masing keypoint

maka dilakukan perhitungan terhadap besarnya gradient dan sudut arah orientasi.

Adapun perhitungan terhadap besar nilai gradient, m(x,y), dan arah orientasi

θ(x,y), dilakukan menggunakan persamaan berikut (Lowe, 2004) :

m(x,y) = �(�(� + 1, �) − �(� − 1, �))� + (�(�, � + 1) − �(�, � − 1))� (2.8)

θ(x,y) = �����((�(�, � + 1) − �(�, � − 1)) (�(� + 1, �) − �(� − 1, �)))⁄ (2.9)

2.1.4. Deskriptor Keypoint

Pada proses ini, masing – masing keypoint yang telah diorientasikan akan

diberikan pencirian khusus(descriptor). Proses ini bertujuan untuk mendapatkan

keypoint yang invariant terhadap perubahan itensitas cahaya atau perubahan sudut

padang tiga dimensi.

Descriptor akan diukur sebagai suatu histogram orientasi pada wilayah

pixel dengan ukuran 4x4. Nilai orientasi diperoleh dari citra Gaussian yang

memiliki skala terdekat dengan skala keypoint yang akan dihitung. Keypoint yang

diperoleh invariant terhadap orientasi, maka koordinat dari descriptor dan

gradient orientasi akan di rotasi relatif terhadap orientasi dari keypoint.kemudian

fungsi pembebanan Gaussian, dengan besar nilai σ satu setengah kali dari besar

Page 26: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

12

jendela deskriptor, akan digunakan sebagai pembebanan pada setiap besaran nilai

dari titik sample.

Gambar 2.3 Deskriptor dari perhitungan besar gradien dan orientasi serta gambar lingkaran

Gaussian (kiri) dan gambar deskriptor keypoint (kanan) (Lowe, 2004)

Descriptor keypoint pada gambar diatas menunjukan adanya 8 arah pada

masing – masing histogram orientasi dengan panjang masing- masing anak panah

sesuai dengan besar nilai dari histogram asal. Selanjutnya descriptor keypoint

yang telah diperoleh akan dinormalisasi untuk mengatasi pengaruh perubahan

cahayan.

Setelah melalui tahapan – tahapan tersebut, maka pada hasil akhir akan

diperoleh suatu citra dengan keypoint yang invariant terhadap berbagai macam

perubahan, seperti yang ditunjukan pada gambar berikut ini :

Page 27: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

13

Gambar 2.4 Keypoint yang diperoleh dari suatu citra menggunakan SIFT (Lowe, 2004)

Keypoint ini yang kemudian menjadi fiture – fiture lokal pada suatu citra dan akan

di cocokan dengan keypoint – keypoint yang terdapat pada citra lain untuk

menyesuaikan dengan objek yang tersedia pada database image.

2.3. Affine Transformation

Transformasi affine adalah semua transformasi yang mempertahankan

collinearity (semua titik yang berada pada letak tertentu tetap pada letaknya meski

telah ditransformasi) dan rasio dari jarak (misalnya, titik tengah pada bagian garis

tetap menjadi titik tengan setelah transformasi). Affine Transformation sering

disebut juga Affinity (Weisstein)

Geometric contraction, expansion, dilation, reflection, rotation, shear,

similarity transformations, spiral similarities, dan translation merupakan Affine

Transformation. Sebuah contoh tertentu menggabungkan rotasi dan ekspansi

transformasi rotasi-pembesaran (Weisstein):

Page 28: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

14

���

��� = � ����� ����

−���� ����� �

� − �0� − �0

= � �����(� − �0) + ����(� − �0)

−����(� − �0) + ����(� − �0)�

Persamaan dipisahkan akan menjadi (Weisstein):

�� = (� ����)� + (� ����)� − �(�0 ���� + �0 ����)

�� = (−� ����)� + (� ����)� + �(�0 ���� − �0 ����)

Persamaan diatas dapat diubah menjadi (Weisstein) :

�� = �� − �� + �

�� = �� + �� + � dimana

� = � ����� = −� ����

Faktor skala s didefinisikan sebagai berikut (Weisstein):

� = ��� + ��

dan arah rotasi adalah (Weisstein):

� = ����� �−�

��

2.4. Affine Scale Invariant Feature Transform

Affine Scale Infariant Feature Transform atau yang biasa disebut ASIFT

ini adalah framework yang digunakan untuk mengektraksi fiture dari suatu citra.

ASIFT pertama kali dipublikasikan oleh Guoshen Yu dan Jean-Michel Morel

dalam jurnal yang berjudul ‘ASIFT: An Algorithm for Fully Affine Invariant

Comparison’ pada tahun 2011 (Guoshen & Morel, 2011).

ASIFT mensimulasikan tiga parameter: skala, sudut pandang dari

longitude kamera dan sudut pandang latitude (yang sejajar dengan tilt) dan

menormalkan sisanya (translasi dan rotasi). Skala dan perubahan orientasi sumbu

kamera adalah tiga parameter simulasi. Tiga lainnya, rotasi dan translasi, yang

Page 29: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

15

dinormalisasi. Lebih detailnya, ASIFT mensimulasikan dua parameter kamera

sumbu, dan kemudian mengimplementasikan SIFT yang mensimulasikan skala

dan menormalkan rotasi dan translasi. Implementasi dua resolusi ASIFT akan

digunakan, karena memiliki sekitar dua kali kompleksitas rutin SIFT tunggal.

ASIFT menggunakan translation tilt untuk mengevaluasi performa dari

pengenalan affine. Translition tilt mengukur tingkat perubahan sudut pandang dari

satu sudut pandangan ke sudut pandang yang lain.

Gambar. 2.5. Model kamera proyektif u = S1G1Au0. A adalah mengubah sebuah proyektif planar

(Homography). G1 adalah anti-aliasing Gaussian filtering. S1 adalah sampling CCD (Guoshen &

Morel, 2011).

Page 30: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

16

2.3.1. Algoritma ASIFT

Proses algoritma ASIFT dilakukan melalui langkah – langkah sebagai

berikut (Guoshen & Morel, 2011):

1. Setiap gambar diubah dengan mensimulasikan semua distorsi

affine mungkin disebabkan oleh perubahan orientasi sumbu optik

kamera dari posisi frontal. Distorsi ini tergantung pada dua

parameter: longitude φ dan laitude θ. Gambar mengalami rotasi

dengan sudut φ dan tilts dengan parameter t = 1 / | cos θ | (tilt dari

paramater t yang mengikuti arah x adalah operasi u (x, y) → u (tx,

y)). Untuk gambar digital, tilts dilakukan oleh directional t-

subsampling. Oleh karena itu dipererlukan sebuah aplikasi filter

antialiasing di arah sumbu x, yaitu konvolusi yang terdapat dalam

Gaussian dengan standar deviasi c√�� − �. Dengan nilai c = 0,8

adalah nilai yang ditunjukkan dalam untuk memastikan kesalahan

aliasing sangat kecil. Rotasi dan tilts ini dilakukan untuk jumlah

yang terbatas dan kecil dari sudut latitude dan longitude, langkah-

langkah sampling parameter ini memastikan bahwa gambar

simulasi tetap sama dengan tampilan lain yang mungkin dihasilkan

oleh nilai-nilai lain dari φ dan θ .

2. Semua gambar simulasi dibandingkan dengan algoritma Scale

Invariant Feature Transform(SIFT). SIFT dapat diganti dengan

metode matching invarian kesamaan lainnya. (Ada banyak varian

seperti SIFT).

Page 31: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

17

3. Metode SIFT memiliki kriteria eliminasi perbandingan yang salah.

Oleh karena itu, umumnya meninggalkan perbandingan yang salah,

bahkan dalam pasangan gambar yang tidak memiliki kesamaan

scene. ASIFT, dengan membandingkan banyak

kesamaan(matching), oleh karena itu dapat mengumpulkan banyak

kecocokan(match) yang salah. Hal ini penting untuk menyaring

perbandingan ini. Kriteria yang digunakan adalah bahwa

perbandingan harus sesuai dengan geometri epipolar. Digunakan

metode ORSA dengan tujuan penyesuaian perbandingan(matching)

sesuai dengan geometri epipolar, yang dianggap sebagai metode

yang paling dapat diandalkan, lebih baik dari prosedur RANSAC

klasik. ORSA hanya digunakan untuk menyaring perbandingan

yang diberikan oleh kedua SIFT dan ASIFT. Dengan demikian, hal

itu mungkin terjadi bahwa dua gambar tidak memiliki

perbandingan yang tersisa sama sekali. Ini tidak berarti bahwa

tidak ada perbandingan ASIFT, mungkin semua perbandingan

dihilangkan karena bertentangan dengan geometri epipolar.

2.5. Matlab

Cleve Moler, ketua departemen ilmu komputer di University of New

Mexico, mulai mengembangkan MATLAB pada akhir 1970-an (Cleve, 2004).

(Simarta, 2010) (Kristanto, 2014) (Silajaya, 2014) Ia dirancang untuk memberikan

murid-muridnya akses ke LINPACK dan EISPACK tanpa mereka harus belajar

Fortran. Segera menyebar ke universitas lain dan menemukan audiens yang kuat

Page 32: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

18

dalam komunitas matematika yang diterapkan. Jack kecil, seorang insinyur, yang

terkena itu selama kunjungan Moler dibuat untuk Stanford University pada tahun

1983. Menyadari potensi komersialnya, ia bergabung dengan Moler dan Steve

Bangert. Mereka menulis ulang MATLAB di C dan mendirikan MathWorks pada

tahun 1984 untuk melanjutkan perkembangannya. Ini perpustakaan ditulis ulang

dikenal sebagai JACKPAC. Pada tahun 2000, MATLAB ditulis ulang untuk

menggunakan satu set baru dari perpustakaan untuk matriks manipulasi,

LAPACK.

MATLAB pertama kali diadopsi oleh para peneliti dan praktisi di bidang

teknik kontrol, Little khusus, tapi dengan cepat menyebar ke banyak domain

lainnya. Sekarang juga digunakan dalam pendidikan, khususnya pengajaran

aljabar linear, analisis numerik, dan populer di kalangan ilmuwan yang terlibat

dalam pengolahan citra (Cleve, 2004).

MATLAB (matrix laboratory) adalah multi-paradigma lingkungan

komputasi numerik dan bahasa pemrograman generasi keempat. Dikembangkan

oleh MathWorks, MATLAB memungkinkan manipulasi matriks, merencanakan

fungsi dan data, implementasi algoritma, pembuatan antarmuka pengguna, dan

berinteraksi dengan program yang ditulis dalam bahasa lain, termasuk C, C ++,

Java, Fortran dan Python.

Meskipun MATLAB ditujukan terutama untuk komputasi numerik, sebuah

kotak peralatan opsional menggunakan mesin simbolik MuPAD, memungkinkan

akses ke kemampuan komputasi simbolik. Paket tambahan, Simulink,

Page 33: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

19

menambahkan simulasi multi-domain grafis dan Desain Model Berbasis untuk

sistem dinamis dan tertanam.

2.6. Metode Prototyping

Prototyping adalah proses pembuatan model sederhana software yang

mengijinkan pengguna memiliki gambaran dasar tentang program serta

melakukan pengujian awal. Prototyping memberikan fasilitas bagi pengembang

dan pemakai untuk saling berinteraksi selama proses pembuatan, sehingga

pengembang dapat dengan mudah memodelkan perangkat lunak yang akan dibuat.

Prototyping merupakan salah satu metode pengembangan perangat lunak yang

banyak digunakan.

Kunci agar model Prototype ini berhasil dengan baik adalah dengan

mendefinisikan aturan-aturan main pada saat awal, yaitu user dan pengembang

harus setuju bahwa Prototype dibangun untuk mendefinisikan kebutuhan.

Gambar 2.6. Model Prototyping

Page 34: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

20

Proses-proses tersebut dapat dijelaskan sebagai berikut:

1. Pengumpulan kebutuhan: developer dan klien bertemu dan

menentukan tujuan umum, kebutuhan yang diketahui dan

gambaran bagian-bagian yang akan dibutuhkan berikutnya;

2. Perancangan: perancangan dilakukan cepat dan rancangan

mewakili semua aspek software yang diketahui, dan rancangan ini

menjadi dasar pembuatan Prototype;

3. Evaluasi Prototype: klien mengevaluasi Prototype yang dibuat dan

digunakan untuk memperjelas kebutuhan software.

Terdapat tiga pendekatan utama Prototyping, yaitu (Simarta, 2010):

1. THROW-AWAY

Prototype dibuat dan dites. Pengalaman yang diperoleh dari pembuatan

Prototype digunakan untuk membuat produk akhir (final), kemudian

Prototype tersebut dibuang (tak dipakai).

2. EVOLUTIONARY

Pada metode ini, prototype tidak dibuang tetapi digunakan untuk iterasi desain

berikutnya. Dalam hal ini, sistem atau produk yang sebenarnya dipandang

sebagai evolusi dari versi awal yang sangat terbatas menuju produk final atau

produk akhir..

Untuk memodelkan sebuah perangkat lunak, metode Prototyping memiliki

tahapan-tahapan di dalam proses pengembangannya. Tahapan inilah yang

Page 35: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

21

menentukan keberhasilan dari sebuah software. Pengembang perangkat lunak

harus memperhatikan tahapan dalam metode Prototyping agar software finalnya

dapat diterima oleh pemakai. Dan tahapan-tahapan dalam Prototyping tersebut

adalah sebagai berikut :

1. Pengumpulan kebutuhan

Pemakai dan pengembang bersama-sama mendefinisikan format

seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan

garis besar sistem yang akan dibuat.

2. Membangun Prototyping

Membangun Prototyping dengan membuat perancangan sementara

yang berfokus pada penyajian kepada pemakai (misalnya dengan

membuat input dan format output).

3. Evaluasi Protoptyping

Evaluasi ini dilakukan oleh user apakah Prototyping yang sudah

dibangun sudah sesuai dengan keinginan user. Jika sudah sesuai maka

langkah keempat akan diambil. Jika tidak, maka Prototyping direvisi

dengan mengulang langkah 1, 2 , dan 3.

4. Mengkodekan Sistem

Dalam tahap ini Prototyping yang sudah disepakati diterjemahkan ke

dalam bahasa pemrograman yang sesuai.

5. Menguji system

Page 36: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

22

Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai,

harus dites dahulu sebelum digunakan. Pengujian ini dilakukan dengan

White Box, Black Box, Basis Path, pengujian arsitektur dan lain-lain.

6. Evaluasi Sistem

Pemakai mengevaluasi apakah sistem yang sudah jadi sudah sesuai

dengan yang diharapkan. Jika sudah, maka langkah ketujuh

dilakukan, jika belum maka mengulangi langkah 4 dan 5.

7. Menggunakan Sistem

Perangkat lunak yang telah diuji dan diterima pemakai siap untuk

digunakan.

Keunggulan dan Kelemahan Prototyping adalah sebagai berikut :

A. Keunggulan Prototyping :

1. Adanya komunikasi yang baik antara pengembang dan pemakai.

2. Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan

user.

3. User berperan aktif dalam pengembangan system.

4. Lebih menghemat waktu dalam pengembangan sistem.

5. Penerapan menjadi lebih mudah karena user mengetahui apa yang

diharapkannya

B. Kelemahan Prototyping :

1. User terkadang tidak melihat atau menyadari bahwa perangkat lunak

yang ada belum mencantumkan kualitas perangkat lunak secara

Page 37: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

23

keseluruhan dan juga belum memikirkan kemampuan pemeliharaan

untuk jangka waktu lama.

2. Pengembang biasanya ingin cepat menyelesaikan proyek. Sehingga

menggunakan algoritma dan bahasa pemrograman yang sederhana

untuk membuat Prototyping agar lebih cepat selesai tanpa memikirkan

lebih lanjut bahwa program tersebut hanya merupakan cetak biru

sistem .

Hubungan user dengan komputer yang disediakan mungkin tidak

mencerminkan teknik perancangan yang baik.

2.7. Falase Acceptance Rate(FAR), False Rejection Rate(FRR) dan Equal

Erorr Rate(EER)

Sistem biometrik yang baik seharusnya dapat menghasilkan output yang

diharapkan dari input. Namun tidak dapat dipungkiri bahwa sistem yang dibuat

menghasilkan output tidak sesuai dengan yang diharapkan. Ini terjadi karena ada

kesalahan penerimaan kandidat hasil, karena ada data yang bukan seharusnya

menjadi output memiliki nilai kecocokan melebihi threshold. Dalam biometrik

terdapat suatu sistem penilaian untuk mengukur kesalahan penerimaan output

yang dinamakan dengan False Acceptance Rate. Selain itu terkadang sistem justru

menolak data yang seharusnya menjadi output, karena data tersebut memiliki nilai

kecocokan kurang dari threshold. Kesalahan ini diukur dengan False Rejection

Rate . Threshold terbaik dapat didapatkan dari nilai yang dimiliki oleh titik

keseimbangan antara FAR dan FRR, titik ini disebut Equal Erorr Rate(EER)

(Putri, Agung, & Sa'adah, 2014).

Page 38: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

24

BAB III

METODOLOGI PENELITIAN

Pada bab ini peneliti akan menejelaskan mengenai metodologi penelitian

yang digunakan beserta tahap – tahap yang akan dilakukan didalam penelitian.

3.1. Metode Pengumpulan Data

Pengumpulan data merupakan langkah yang penting untuk metode ilmiah,

karena pada umumnya data yang dikumpulkan digunakan untuk menguji hipotesis

yang telah dirumuskan. Teknik pengumpulan data yang sering digunakan antara

lain:

3.1.1. Studi Pustaka

Studi pustaka yang dilakukan oleh penulis dengan mencari dan

mempelajari teori-teori yang dapat dijadikan landasan atau kerangka berpikir

bagi penelitian yang akan dilakukan sehingga penyusunan laporan skripsi ini

dapat lebih terarah. Teori-teori tesebut diperoleh dari literatu tertulis, dimana

literatur tersebut perlu dicari sebanyak mungkin agar dapat dibandingkan satu

dengan yang lainnya.

Adapun sumber studi kepustakaan ini adalah buku-buku mengenai

image processing, metode pengembangan sistem, matlab sebagai dasar

bahasa pemprograman, jurnal tentang algoritma Affine Scale Invariant Fiture

Transpose(ASIFT) atau algoritma yang lain tetapi untuk identifikasi sketsa

seperti Scale Invariant Fiture Transpose(SIFT), Multiscale Markov Random

Field (MMRF), Modified Local Binary Patterns(MLBP), dan sumber-sumber

Page 39: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

25

lainnya yang berhubungan erat dengan permasalahan yang diambil baik

berupa buku ataupun paper.

3.1.2. Penelitian Sejenis

Penulis mencari penelitian – penelitian yang berkaitan mengenai

identifikasi wajah sebelumnya telah dilakukan oleh peneliti lain. Berikut

ini beberapa penjelasan singkat mengenai literature-literatur yang relevan

dengan topik yang diteliti oleh penulis :

Tabel 3.1. Tabel Perbandingan Studi Literatur Sejenis

Nama Judul Penelitian Kelebihan Kekurangan Yuwono jurusan teknik elektro Universitas Kristen Maranatha

PERBANDINGAN TEKNIK SCALE INVARIANT FEATURE TRANSFORM (SIFT) DAN MULTISCALE LOCAL BINARY PATTERN (MLBP) DALAM PENGENALAN WAJAH DENGAN CITRA MASUKAN BERUPA SKETSA

1. Hasil perbandingan dapat menunjukkan bahwa dengan teknik SIFT sketsa dapat diidentifikasi lebih baik daripada menggunakan MLBP

2. Tingkat keakurasian dalam identifikasi sketsa mencapai 80,3%

1. Algoritma SIFT hanya menemukan sedikit keypoint pada sketsa maupun foto

Alvin Silajaya Jurusan teknik elektro, Universitas Kristen Maranatha

PENGENALAN WAJAH DENGAN CITRA MASUKAN BERUPA CITRA SKETSA WAJAH SEBAGAI HASIL SINTESIS DENGAN TEKNIK

1. Menggunakan algoritma reduksi data Local Discriminant Analysis dan Principal Component Analysis

1. Tingkat keakurasian tertinggi dalam identifikasi sketsa hanya 60% dengan menggunakan metode Principal

Page 40: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

26

MULTISCALE MARKOV RANDOM FIELD (MRF)

Component Analysis dalam reduksi datanya.

3.2. Metode Pengembangan Prototyping

Pada metode pengembangan simulasi ini penulis menggunakan metode

prototyping. Adapun alasan kenapa penulis menggunakan metode pengembangan

prototyping ini, sebagai berikut:

1. Sistem yang dibuat bukan berupa aplikasi namun masih berupa

prototype aplikasi untuk membuktikan penggunaan ASIFT dalam

identifikasi sketsa.

2. Ada tekanan untuk implementasi secepatnya, disini karena penulis

menginginkan program simulasi ini bisa jadi secepatnya sehingga tidak

terlalu menghabiskan banyak dana dan waktu.

Adapun langkah-langkah yang digunakan dalam pengembangan

prototyping yang akan dibuat, sebagai berikut:

3.2.1 Pengumpulan Kebutuhan

Tahap awal pengembangan prototyping diawali dengan pengumpulan

kebutuhan. Pada tahap ini penulis melakukan analisis kebutuhan dan

mengidentifikasi segala kebutuhan. Dari analisis tersebut dapat ditetapkan tujuan

Page 41: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

27

perancangan, pengajuan usulan solusi yang dapat diterima. Tahapannya adalah

sebagai berikut :

3.2.1.1 Analisa Sistem

Pada tahap ini penulis akan membahas mengenai analisa sistem pada

identifikasi sketsa wajah yang dilukis dengan foto wajah yang telah disimpan

selama ini, yang dilakukan pada lembaga – lembaga terkait.

3.2.1.2 Identifikasi Masalah

Pada tahap ini penulis menjelaskan masalah yang terjadi pada sistem.

3.2.1.3 Usulan Penyelesaian Masalah

Pada tahap ini penulis menjelaskan mengenai usulan penggunaan metode

Affine Scale Invaraiant Feature Transform untuk identifikasi sketsa wajah.

3.2.1.4 Kebutuhan Perangkat Lunak dan Perangkat Keras

Pada tahapan ini penulis membuat spesifikasi dari aplikasi simulasi yang

penulis buat dari kebutuhan hardware dan kebutuhan dari software yang penulis

gunakan untuk membuat prototype. Pembuatan spesifikasi ini bertujuan untuk

memudahkan dalam melakukan analisa kemampuan yang sesuai dengan

kebutuhan.

3.2.2 Membangun Prototype

Didalam prototyping melakukan perancangan sementara yg berupa format

input dan output berikut adalah tahapan yg akan dilakukan:

Page 42: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

28

3.2.2.1 Desain Image Processing

Pada tahap ini penulis akan menjelaskan mengenai proses image

processing yang penulis terapkan dalam pengenalan wajah pada sketsa

menggunakan algoritma Affine Scale Invariant Feature Transform. Adapun

tahapan yang penulis lakukan adalah :

1. Image Acquisition

Pada tahap ini penulis akan menjelaskan bagaimana penulis

memperoleh data citra yang di butuhkan dalam proses pengenalan

wajah pada citra sketsa.

2. Feature Extraction

Pada tahap ini penulis akan menjelaskan mengenai proses dalam

mendapatkan ciri ciri khusus pada citra sketsa maupun pada citra

foto menggunakan algoritma Affine Scale Infariant Feature

Transform.

3. Recognition

Pada tahap ini penulis akan menjelaskan mengenai proses dalam

mengenali citra sketsa untuk mendapatkan citra foto yang cocok,

dengan mencocokkan ciri ciri khusus pada citra sketsa dengan ciri

ciri khusus pada citra foto.

Page 43: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

29

3.2.2.2 Desain Interface

Pada tahap ini, penulis melakukan perancangan terhadap user interface

dari prototype. Untuk tampilan antar muka, penulis melakukan perancangan GUI

(Graphical User Interface).

3.2.3 Mengkodekan Sistem

Pada tahap ini, semua rancangan yang sudah dirancang diatas akan

dikodekan kedalam program dengan menggunakan tools untuk membangun

simulasi ini. Tools yang dipakai adalah Matlab 8.03 untuk membangun prototype

ini.

3.2.4 Pengujian Prototype

Prototype aplikasi ini diuji apakah protype ini dapat menganalisa

wajah dari citra masukan berupa sketsa. Pada tahap ini akan didapatkan nilai

nilai keypoint dan kecocokan antara citra masukan dengan citra hasil

identifikasi.

Page 44: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

30

3.3. Kerangka Berfikir

Gambar 3.1.1 Alur Kerangka Berpikir

Page 45: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

31

BAB IV

PEMBAHASAN DAN HASIL

Pada perancangan prototype aplikasi ini penulis melakukan perancangan

dengan menggunakan metode pengembangan Prototyping. Prototyping adalah

proses pembuatan model sederhana software yang mengijinkan pengembang

memiliki gambaran dasar tentang program serta melakukan pengujian awal.

Prototyping memberikan fasilitas bagi pengembang dan pemakai untuk saling

berinteraksi selama proses pembuatan, sehingga pengembang dapat dengan

mudah memodelkan perangkat lunak yang akan dibuat. Prototyping merupakan

salah satu metode pengembangan perangat lunak yang banyak digunakan. Berikut

ini adalah langkah-langkah yang penulis lakukan dalam melakukan prancangan

dengan menggunakan metode prototyping, sebagai berikut :

4.1. Pengumpulan Kebutuhan

Pada tahapan penggumpulan kebutuhan peneliti melakukan dengan

beberapa tahapan seperti berikut ini:

4.1.1. Analisa Sistem

Data yang digunakan dibagi menjadi dua bagian. Pertama adalah

kumpulan citra foto yang telah ada didalam komputer. Kedua adalah citra sketsa

yang dibuat berdasarkan informasi yang didapatkan. Data citra sketsa akan

dicocokkan dengan data citra foto sampai ditemukan wajah yang sama atau

setidaknya mirip pada citra foto dengan wajah pada citra sketsa.

Page 46: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

32

4.1.2. Identifikasi Masalah

Setelah melakukan analisa masalah yang ditemukan adalah sebagai

berikut :

1. Sulitnya mengidentifikasi wajah dari citra sketsa yang telah dibuat

untuk mendapatkan wajah yang sama yang ada didalam komputer.

Terutama apabila citra yang akan dibandingkan banyak jumlahnya.

2. Sketsa dan foto memiliki dua perbedaan yang mencolok yaitu,

tekstur dan bentuknya.

4.1.3. Usulan Penyelesaian Masalah

Dibuat sebuah sistem yang akan mengidentifikasi wajah pada citra sketsa

sehingga didapatkan foto yang sesuai dengan citra sketsa yang diidentifikasi.

Menggunakan metode Affine Scale Invariant Feature Transform untuk mengatasi

perbedaan tekstur dan bentuk pada sketsa dan foto.

4.1.4. Kebutuhan Perangkat Lunak dan Perangkat Keras

Perangkat Keras yang akan digunakan untuk membangun

prototype adalah sebagai berikut:

Tabel 4.1. Tabel Spesifikasi Kebutuhan Perangkat Keras

Jenis Laptop atau Komputer Spesifikasi Laptop Samsung 275E4E AMD E2-2000 APU(1,8 GHz),

4GB RAM, 500 GB HDD, Amd Radeon HD 7340 Grapics, Generic PnP Monitor, Synaptic PS/2 Port TouchPad.

Page 47: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

33

Kebutuhan untuk perangkat lunak yang akan penulis gunakan

adalah :

Tabel 4.2. Perangkat Lunak Yang Digunakan

Nama Perangkat Lunak

Fungsi

Sistem Operasi Windows 7 Ultimate 32bit

Sebagai interface antara pengguna dan komputer.

Matlab 8.03 Sebagai tools untuk membuat serta menjalankan program simulasi yang dibuat.

Borlan C++ 5.02 Sebagai tools untuk menganalisa algoritma Affine Scale Invariant Feature Transform(ASIFT).

4.2. Membangun Prototype

Pada tahapan ini akan dilakukan desain untuk prototype yang akan dibuat

dengan beberapa tahapan yaitu tahapan desain image processing dan desain

interface. Berikut ini adalah penjelasan tentang desain yang penulis lakukan,

sebagai berikut :

4.2.1. Desain Image Processing

Pada tahapan ini akan dilakukan desain untuk proses image processing

yang dibutuhkan untuk mengenali wajah pada sketsa. Berikut ini adalah tahapan

sampai recognition(pengenalan) beserta penjelasan untuk mempermudah dalam

membangun prototype yang akan dibuat :

1. Image Acquisition

Pada image acquisition ini digunakan sepuluh citra, lima citra foto dan

lima citra sketsa berekstensi .jpeg. Citra digunakan sebagai input dalam proses

Page 48: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

34

pengenalan. Citra foto telah ada di dalam komputer, citra sketsa dimasukkan ke

dalam komputer menggunakan scanner.

2. Feature Extraction

Pada feature extraction digunakan metode Affine Scale Invariant Feature

Transform(ASIFT). Tahap ini diawali dengan menentukan citra sketsa yang akan

diidentifikasi yang dipilih oleh user. Citra sketsa yang dipilih dan citra foto yang

pertama akan digandakan, citra yang digandakan akan dikaburkan(blur) dengan

beberapa tingkat pengkaburan(blurring). Pengkaburan ini dilakukan berulang

dengan citra yang ukurannya setengah dari citra sebelumnya.

Citra hasil pengkaburan(blurring) dengan ukuran yang sama tapi berbeda

tingkat pengkaburannya dihitung perbedaan kekaburannya(blur) yang biasa

disebut dengan Different of Gaussian(DoG). Langkah ini dilakukan untuk semua

citra yang dikaburan(blurred) dengan semua ukuran citra dan hasilnya berupa

citra DoG.

Setiap pixel Citra DoG dibandingkan dengan 3x3 pixel tetangga pada citra

tersebut dan 3x3 pixel pada posisi yang sama dengan pixel yang akan

dibandingkan plus 3x3 pixel tetangganya pada citra DoG sebelum dan Citra DoG

setelahnya. Jadi setiap pixel dibandingkan dengan 26 pixel, apabila pixel tersebut

paling besar atau paling kecil pixel tersebut menjadi keypoint.

Page 49: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

35

Gambar 4.1 Contoh citra hasil pengkaburan(blurring) 1S.jpg dengan ukuran 828x1164,

414x582, 207x291,103x145

Page 50: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

36

Gambar 4.2 Contoh citra hasil pengkaburan(blurring) 1F.jpg dengan ukuran 2048x1536,

1024x768, 512x384, 256x192

Page 51: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

37

Gambar 4.3 Contoh citra blurring menjadi citra DoG

Page 52: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Gambar 4.

Keypoint yang terletak pada

tingkat pencahayaan yan rendah akan disingkirkan.

dicari gradient magnitude

dibuat histogram dari

histogram ini, 360 derajat orientasi dipecah menjadi 36 grafik batang (masing

Gambar 4.4 Contoh Mencari Ekstrema dalam citra DoG

yang terletak pada tepi(edge) dan terletak pada wilayah dengan

tingkat pencahayaan yan rendah akan disingkirkan. Keypoint yang tersisa akan

gradient magnitude dan gradient orientasi dari pixel disekitarnya

dibuat histogram dari gradient magnitude dan gradient orientasi tersebut

histogram ini, 360 derajat orientasi dipecah menjadi 36 grafik batang (masing

38

DoG

dan terletak pada wilayah dengan

yang tersisa akan

disekitarnya. Lalu akan

orientasi tersebut. Didalam

histogram ini, 360 derajat orientasi dipecah menjadi 36 grafik batang (masing

Page 53: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

39

masing 10 derajat). Misalnya arah gradient pada titik tertentu adalah 15,5 derajat,

maka gradient garis akan masuk ke 10-19 derajat diagram batang. Banyaknya

“jumlah” yang dimasukan pada diagram batang tergantung dari magnitude dari

gradient pada point tersebut. Setelah dilakukan terhadap semua pixel disekitar

keypoint, histogram akan memiliki ketinggian pada angka tertentu.

Gambar 4.5 Contoh Histogram Orientasi

Dari contoh histogram diatas grafik pada nilai gradient 20-29 menjadi

maksimum orientasi yang dimiliki oleh pixel disekitar keypoint. Semu grafik

gradient dari orientasi yang memiliki nilai lebih dari 80% dari maksimum

orientasi dikonversi menjadi keypoint yang baru. Keypoint yang baru ini memiliki

lokasi dan scale yang sama dengan keypoint yang asli. Tapi orientasinya sesuai

dengan ketinggian yang lain.

Selanjutnya pemberian identitas khusus(finger print) pada keypoint, ini

dilakukan dengan membuat 16x16 kotak disekitar keypoint. 16x16 kotak ini

dikelompokkan menjadi kotak 4x4.

Page 54: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

40

Gambar 4.6 Contoh pemberian finger print pada keypoint

Setiap kotak 4x4, dihitung gradient magnitudes dan orientasinya. Orientasi ini

diletakkan pada grafik lingkaran yang dibagi menjadi 8.

Gambar 4.7 Memasukkan orientasi pada hitogram lingkaran

Gradient Orientasi yang berada pada range 0-44 derajat dimasukkan dalam

wilayah(bin) pertama, 45-89 dimasukkan ke dalam wilayah(bin) selanjutnya dan

selanjutnya. Banyaknya jumlah yang dimasukkan kedalam wilayah(bin)

tergantung dari magnitude dari gradient dan jaraknya dari keypoint. Jadi gradient

yang jaraknya jauh dari keypoint akan menambahkan bobot yang kecil kedalam

Page 55: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

41

histogram. Ini dilakukan dengan menggunakan fungsi pembobotan gaussian,

fungsi ini menghasilkan sebuah gradient yang akan dikalikan dengan magnitude

dari orientasi, sehingga didapatkan magnitude yang telah mendapatkan bobot.

Semakin jauh, smakin kecil nilai bobot dari magnitude.

Gambar 4.8 gradient orientasi yang mengalami pembobotan gaussian

3. Recognition

Pada recognition ini keypoint pada sketsa dan foto yang akan dihitung

perbedaannya, keypoint yang memiliki perbedaan terkecil dianggap cocok. Hasil

pencocokkan keypoint yang memiki pasangan lebih dari satu baik dari satu ke

banyak maupun dari banyak ke satu akan dihapus.Hasil pencocokkan keypoint

yang memiliki letak pixel yang berbeda (proses matching yang salah) akan

dihapus. Maka akan didapatkan keypoint yang cocok antara sketsa dan Foto. Citra

foto yang memiliki kecocokkan keypoint yang terbanyak dan memiliki jumlah

kecocokkan diatas treeshold dianggap sebagai citra foto yang memiliki kemiripan

wajah paling besar dengan citra sketsa. Citra foto tersebut akan ditampilkan

sebagai citra hasil identifikasi citra sketsa.

Page 56: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

42

Tabel 4.3 Hasil Matching Keypoint

Nama Sketsa

Sketsa Nama Foto

Foto Jumlah

Keypoint Match

1S.jpg

1F.jpg

56 keypoint

4.2.2. Desain Interface

Pada tahap ini, penulis melakukan perancangan terhadap user interface

dari aplikasi protype ini. Untuk tampilan antar muka penulis melakukan

perancangan GUI (Graphical User Interface). Berikut ini rancangan interface

yang akan dibangun :

1. Halaman Utama

Ini adalah halaman awal dari sumulasi dan juga merupakan halaman

navigasi utama. Berikut ini adalah desain dari halaman utama:

Page 57: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

43

Gambar 4.9 Desain Interface Halaman Utama

2. Halaman Inisialisasi

Halaman ini berisi kebutuhan informasi awal untuk menjalankan program

simulasi. Berikut ini adalah desain dari halaman inisialisasi :

Gambar 4.10 Desain Interface Inisialisasi

Page 58: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

44

3. Halaman Identifikasi Sketsa

Pada halaman ini akan dilakukan identifikasi sketsa sehingga didapatkan

citra foto yang seharusnya memiliki wajah yang sama dengan sketsa. Berikut ini

adalah desain untuk halaman Identifikasi :

Gambar 4.11 Desain Interface Identifikasi Sketsa

4.3. Mengkodekan Sistem

Pada tahap ini, semua rancangan simulasi yang telah disepakati dikodekan

kedalam program dengan menggunakan tools untuk mebuat simulasinya. Tools

yang dipakai adalah Matlab 8.03 untuk mebuat simulasi identikasi sketsa.

Sedangkan algoritma ASIFT yang peneliti pakai telah dibuat sebelumnya oleh

Jean-Michel Morel dan Guoshen Yu menggunakan bahasa C, jadi pada tahap ini

peneliti akan menganalisa kode bahasa C yang telah mereka buat. Berikut ini

adalah tahapan identifikasi sketsa yang telah dikodekan :

Page 59: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

45

1. Penerapan Pengkodean Matlab untuk Inisialisasi

Proses inisialisasi dilakukan untuk menentukan kebutuhan awal sistem

simulasi. Proses ini sangatlah penting apabila ada kesalahan pada proses ini maka

sistem simulasi tidak akan berjalan dengan semestinya.Berikut ini adalah kode

Matlab untuk inisialisasi :

Potongan program diatas digunakan untuk mengambil pathfolder yang

berisi lima citra sketsa, lalu diletakkan pada edit box di dalam interface inisialisasi.

function FotoPath_Callback(hObject, eventdata, handles) function FotoPath_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function FotoPathBtn_Callback(hObject, eventdata, handles) FotPath = uigetdir; if ischar(FotPath) set(handles.FotoPath,'String',FotPath); end handles.FotPath = FotPath; guidata(hObject, handles);

function SketsaPath_Callback(hObject, eventdata, handles) function SketsaPath_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function SketsaPathBtn_Callback(hObject, eventdata, handles) SketPath = uigetdir; if ischar(SketPath) set(handles.SketsaPath,'String',SketPath); end handles.SketPath = SketPath; guidata(hObject, handles);

Page 60: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

46

Potongan program diatas digunakan untuk mengambil path folder yang

berisi lima citra foto, lalu diletakkan pada edit box di dalam interface inisialisai.

Potongan program diatas digunakan untuk menyimpan hasil konfigurasi

pada tahap inisialisai kedalam file requirement.mat, lalu menutup intarface

inisialisasi.

Potongan program diatas digunakan untuk membatalkan konfigurasi pada

inisialisasi, lalu menutup interface inisialisasi.

2. Proses Pengkodean Identifikasi Sketsa

Prose identifikasi sketsa dilakukan melalui beberpa tahapan, yaitu:

1. Penerapan Pengkodean Matlab untuk Input Citra Sketsa

Pada proses ini user akan memasukkan nama citra sketsa dan sistem

akan mencari citra yang sesuai dengan input. Berikut ini adalah kode

Matlab Input Sketsa :

function pushbutton4_Callback(hObject, eventdata, handles)

close(gcf);

function pushbutton3_Callback(hObject, eventdata, handles) HasilMatcPath = handles.HasilMatcPath; SketPath = handles.SketPath; FotPath = handles.FotPath; ImageFiles = dir(FotPath); Train_Number = 0; for i = 1:size(ImageFiles,1) if not(strcmp(ImageFiles(i).name,'.')|strcmp(ImageFiles(i).name,'..')|strcmp(ImageFiles(i).name,'Thumbs.db')) Train_Number = Train_Number + 1; % Number of all images in the training database end end save requirement.mat SketPath FotPath Train_Number HasilMatcPath close(gcf);

Page 61: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

47

Potongan program diatas digunakan untuk mengambil masukkan

nama citra sketsa. Lalu citra sketsa dan citra foto akan diambil dari

folder database citra sketsa maupun database citra foto.

2. Penerapan Pengkodean C++ untuk Algoritma ASIFT

Algoritma ASIFT memiliki beberapa tahapan yang dilakukan, berikut

ini adalah kode dari tahapan – tahapan dari algoritma ASIFT beserta

analisa dari kode tersebut:

load requirement.mat axes(handles.axes2); clear gca; %sket = strcat(SketPath); [FileName,PathName,FilterIndex] = uigetfile({'*.jpg'},'Select Sketsa',SketPath); handles.NamaFile=FileName; handles.PathName=PathName; guidata(hObject,handles); if isequal(FileName,0) disp('User selected Cancel') else axes(handles.axes2); clear gca; set(gca,'ytick',[]); set(gca,'xtick',[]); axes(handles.axes2); handles.Citra.RGB = imread([PathName FileName]); image(handles.Citra.RGB), set(gca,'ytick',[]); set(gca,'xtick',[]); guidata(hObject,handles);

Page 62: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

48

Potongan coding diatas digunakan untuk membentuk citra pada skala

ruang dengan menggunakan Different of Gaussian.

void OctaveKeypoints(flimage & image,float octSize, keypointslist& keys,siftPar &par) { int size_blur = par.Scales+3; int size_dogs = par.Scales+2; flimage *blur =new flimage[size_blur]; flimage *dogs =new flimage[size_dogs]; float sigmaRatio =(float) pow(2.0,1.0/(double) par.Scales); blur[0]= flimage(image); float prevSigma = par.InitSigma; for(int i =1; i < par.Scales +3; i++){ if(DEBUG) printf("Convolving scale: %d \n", i); blur[i]= flimage(blur[i-1]); float increase = prevSigma*(float)sqrt((double)(sigmaRatio*sigmaRatio-1.0)); gaussian_convolution( blur[i].getPlane(), blur[i].getPlane(), blur[i].nwidth(), blur[i].nheight(), increase); prevSigma *= sigmaRatio; } for(int i =0; i < par.Scales +2; i++){ dogs[i]= flimage(blur[i]); combine(dogs[i].getPlane(),1.0f, blur[i+1].getPlane(),-1.0f, dogs[i].getPlane(), dogs[i].nwidth()* dogs[i].nheight()); } image = blur[par.Scales]; if(DEBUG) printf("Looking for local maxima \n"); FindMaxMin(dogs, blur, octSize, keys,par); delete[] blur; delete[] dogs; }

Page 63: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

49

voidFindMaxMin( flimage* dogs, flimage* blur, float octSize, keypointslist& keys,siftPar &par) { int width = dogs[0].nwidth(), height = dogs[0].nheight(); flimage map(width,height,0.0f); flimage grad(width,height,0.0f); flimage ori(width,height,0.0f); for(int s =1; s < par.Scales+1; s++){ if(DEBUG) printf("************************scale: %d\n", s); compute_gradient_orientation(blur[s].getPlane(), grad.getPlane(), ori.getPlane(), blur[s].nwidth(), blur[s].nheight()); assert(par.BorderDist >=2); float val; int partialcounter =0; for(int r = par.BorderDist; r < height - par.BorderDist; r++) for(int c = par.BorderDist; c < width - par.BorderDist; c++){ val = dogs[s](c,r); if(fabs(val)>0.8* par.PeakThresh) { if(LocalMaxMin(val, dogs[s-1], r, c)&& LocalMaxMin(val, dogs[s], r, c)&& LocalMaxMin(val, dogs[s+1], r, c)&& NotOnEdge(dogs[s], r, c, octSize,par)) { partialcounter++; if(DEBUG) printf("%d: (%d,%d,%d) val: %f\n",partialcounter, s,r,c,val); InterpKeyPoint( dogs, s, r, c, grad, ori, map, octSize, keys,5,par); } } } } }

Page 64: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

50

Potongan coding diatas digunakan untuk menentukan kandidat

keypoint yang merupakan hasil dari pencarian nilai maksimum lokal

pada citra hasil Different of Gaussian.

Potongan coding diatas digunakan untuk menghilangkan keypoint

yang memiliki nilai kontras yang rendah.

Potongan coding diatas digunakan untuk menghilangkan keypoint

yang kurang jelas pada tepi.

intNotOnEdge(flimage& dog,int r,int c,float octSize,siftPar &par) { float H00 = dog(c,r-1)-2.0* dog(c,r)+ dog(c,r+1), H11 = dog(c-1,r)-2.0* dog(c,r)+ dog(c+1,r), H01 =((dog(c+1,r+1)- dog(c-1,r+1))-(dog(c+1,r-1)- dog(c-1,r-1)))/4.0; float det = H00 * H11 - H01 * H01, trace = H00 + H11; if(octSize <=1) return(det > par.EdgeThresh1 * trace * trace); else return(det > par.EdgeThresh * trace * trace); }

if( fabs(offset[0])>1.5|| fabs(offset[1])>1.5|| fabs(offset[2])>1.5|| fabs(peakval)< par.PeakThresh) { if(DEBUG) printf("Point not well localized by FitQuadratic\n"); par.noncorrectlylocalized++; return; }

Page 65: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

51

voidAssignOriHist( const flimage& grad,const flimage& ori,float octSize, float octScale,float octRow,float octCol,keypointslist& keys,siftPar &par) { int bin, prev, next; float distsq, dif, gval, weight, angle, interp; int tmp_size = par.OriBins; float*hist =newfloat[tmp_size]; float radius2, sigma2; int row =(int)(octRow+0.5), col =(int)(octCol+0.5), rows = grad.nheight(), cols = grad.nwidth(); for(int i =0; i < par.OriBins; i++) hist[i]=0.0; float sigma = par.OriSigma * octScale; int radius =(int)(sigma *3.0); int rmin = MAX(0,row-radius); int cmin = MAX(0,col-radius); int rmax = MIN(row+radius,rows-2); int cmax = MIN(col+radius,cols-2); radius2 =(float)(radius * radius);

sigma2 =2.0*sigma*sigma;

Page 66: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

52

for(int r = rmin; r <= rmax; r++){ for(int c = cmin; c <= cmax; c++){ gval = grad(c,r); dif =(r - octRow); distsq = dif*dif; dif =(c - octCol); distsq += dif*dif; if(gval >0.0&& distsq < radius2 +0.5){ weight = exp(- distsq / sigma2); /* Ori is in range of -PI to PI. */ angle = ori(c,r); bin =(int)(par.OriBins *(angle + PI +0.001)/(2.0* PI)); assert(bin >=0&& bin <= par.OriBins); bin = MIN(bin, par.OriBins -1); hist[bin]+= weight * gval; } }

} for(int i =0; i <6; i++) SmoothHistogram(hist, par.OriBins); float maxval =0.0; for(int i =0; i < par.OriBins; i++) if(hist[i]> maxval) maxval = hist[i]; for(int i =0; i < par.OriBins; i++){ prev =(i ==0? par.OriBins -1: i -1); next =(i == par.OriBins -1?0: i +1); if( hist[i]> hist[prev]&& hist[i]> hist[next]&& hist[i]>= par.OriHistThresh * maxval ){ interp = InterpPeak(hist[prev], hist[i], hist[next]); angle =2.0* PI *(i +0.5+ interp)/ par.OriBins - PI; assert(angle >=-PI && angle <= PI); if(DEBUG) printf("angle selected: %f \t location: (%f,%f)\n", angle, octRow, octCol); ; } } delete[] hist; }

Page 67: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

53

Potongan program diatas digunakan untuk menentukan orientasi pada

masing – masing keypoint yang telah mengalami penyaringan

sebelumnya.

voidKeySample( float index[IndexSize][IndexSize][OriSize], keypoint& key, const flimage& grad,const flimage& ori,float scale,float row,float col,siftPar &par) { float rpos, cpos, rx, cx; int irow =(int)(row +0.5), icol =(int)(col +0.5); float sine =(float) sin(key.angle), cosine =(float) cos(key.angle); float spacing = scale * par.MagFactor; float radius =1.414* spacing *(IndexSize +1)/2.0; int iradius =(int)(radius +0.5); for(int i =-iradius; i <= iradius; i++){ for(int j =-iradius; j <= iradius; j++){ rpos =((cosine * i - sine * j)-(row - irow))/ spacing; cpos =((sine * i + cosine * j)-(col - icol))/ spacing; rx = rpos + IndexSize /2.0-0.5; cx = cpos + IndexSize /2.0-0.5; if( rx >-1.0&& rx <(float) IndexSize && cx >-1.0&& cx <(float) IndexSize ) AddSample( index, key, grad, ori, irow + i, icol + j, rpos, cpos, rx, cx,par); } } }

void AddSample( float index[IndexSize][IndexSize][OriSize], keypoint& key, const flimage& grad,const flimage& orim, float r,float c,float rpos,float cpos,float rx,float cx,siftPar &par) {

Page 68: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

54

if(r <0|| r >= grad.nheight()|| c <0|| c >= grad.nwidth()) return; float sigma = par.IndexSigma *0.5* IndexSize, weight = exp(-(rpos * rpos + cpos * cpos)/(2.0* sigma * sigma)), mag = weight * grad((int)c,(int)r float ori = orim((int)c,(int)r)- key.angle; if(par.IgnoreGradSign){ while(ori > PI ) ori -= PI; while(ori <0.0) ori += PI; }else{ while(ori >2.0*PI) ori -=2.0*PI; while(ori <0.0) ori +=2.0*PI; } PlaceInIndex(index, mag, ori, rx, cx,par); } void PlaceInIndex( float index[IndexSize][IndexSize][OriSize], float mag,float ori,float rx,float cx,siftPar &par) { int orr, rindex, cindex, oindex; float rweight, cweight, oweight; float*ivec; float oval = OriSize * ori /(par.IgnoreGradSign ? PI :2.0*PI);

int ri =(int)((rx >=0.0)? rx : rx -1.0), ci =(int)((cx >=0.0)? cx : cx -1.0), oi =(int)((oval >=0.0)? oval : oval -1.0);

float rfrac = rx - ri, cfrac = cx - ci, ofrac = oval - oi; assert( ri >=-1&& ri < IndexSize && oi >=0&& oi <= OriSize && rfrac >=0.0&& rfrac <=1.0);

Page 69: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

55

Pototngan program diatas digunakan untuk memberikan ciri khusus

untuk keypoint yang telah melalui proses orientasi.

3. Penerapan Pengkodean C++ untuk Algoritma Matching

Proses matching dilakukan untuk menyamakan nilai – nilai keypoint

yang terdapat pada citra foto dengan keypoint pada citra foto. Berikut

ini adalah pengkodean proses Matching :

Potongan coding dibawah ini digunakan untuk menentukan jumlah

keypoint yang memiliki kecocokan antara citra satu dengan citra

kedua

for(int r =0; r <2; r++){ rindex = ri + r; if(rindex >=0&& rindex < IndexSize){ rweight = mag *((r ==0)?1.0- rfrac : rfrac); for(int c =0; c <2; c++){ cindex = ci + c; if(cindex >=0&& cindex < IndexSize){ cweight = rweight *((c ==0)?1.0- cfrac : cfrac); ivec = index[rindex][cindex]; for(orr =0; orr <2; orr++){ oindex = oi + orr; if(oindex >= OriSize) oindex =0; oweight = cweight *((orr ==0)?1.0- ofrac : ofrac); ivec[oindex]+= oweight; } } } } }

Page 70: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

56

#pragma omp parallel for private(tt) for(int tt =1; tt <= num_tilt1; tt++) { float t = t_min * pow(t_k, tt-1); float t1 = t; float t2 =1; int num_rot1; if( tt ==1) { num_rot1 =1; } else { num_rot1 = round(num_rot_t2*t/2); if( num_rot1%2==1) { num_rot1 = num_rot1 +1; } num_rot1 = num_rot1 /2; } float delta_theta = PI/num_rot1; #pragma omp parallel for private(rr) for(int rr =1; rr <= num_rot1; rr++) { float theta = delta_theta *(rr-1); theta = theta *180/ PI; keypointslist keypoints1 = keys1[tt-1][rr-1]; #pragma omp parallel for private(tt2) for(int tt2 =1; tt2 <= num_tilt2; tt2++) { float t_im2 = t_min * pow(t_k, tt2-1); float t_im2_1 = t_im2; float t_im2_2 =1; int num_rot1_2; if( tt2 ==1) { num_rot1_2 =1; } num_rot1_2 = num_rot1_2 +1; } num_rot1_2 = num_rot1_2 /2; }

Page 71: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

57

else { num_rot1_2 = round(num_rot_t2*t_im2/2); if( num_rot1_2%2==1) { num_rot1_2 = num_rot1_2 +1; } num_rot1_2 = num_rot1_2 /2; } float delta_theta2 = PI/num_rot1_2; #pragma omp parallel for private(rr2) for(int rr2 =1; rr2 <= num_rot1_2; rr2++) { float theta2 = delta_theta2 *(rr2-1); theta2 = theta2 *180/ PI; keypointslist keypoints2 = keys2[tt2-1][rr2-1]; matchingslist matchings1; compute_sift_matches(keypoints1,keypoints2,matchings1,siftparameters); if( verb ) { printf("t1=%.2f, theta1=%.2f, num keys1 = %d, t2=%.2f, theta2=%.2f, num keys2 = %d, num matches=%d\n", t, theta,(int) keypoints1.size(), t_im2, theta2,(int) keypoints2.size(),(int) matchings1.size()); } if( matchings1.size()>0) { matchings_vec[tt-1][rr-1][tt2-1][rr2-1]= matchingslist(matchings1.size()); Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1].resize(matchings1.size()); for(int cc =0; cc <(int) matchings1.size(); cc++) { matchings_vec[tt-1][rr-1][tt2-1][rr2-1][cc]= matchings1[cc]; vector<float> Minfo_1match(6); Minfo_1match[0]= t1; Minfo_1match[1]= t2; Minfo_1match[2]= theta; Minfo_1match[3]= t_im2_1; Minfo_1match[4]= t_im2_2; Minfo_1match[5]= theta2; Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1][cc]= Minfo_1match; } }}}}

Page 72: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

58

Potongan coding diatas digunakan untuk memasukkan hasil keypoint

yang cocok kedalam vektor satu dimensi.

for(tt =1; tt <= num_tilt1; tt++) { t = t_min * pow(t_k, tt-1); if( t ==1) { num_rot1 =1; } else { num_rot1 = round(num_rot_t2*t/2); if( num_rot1%2==1) { num_rot1 = num_rot1 +1; } num_rot1 = num_rot1 /2; } for( rr =1; rr <= num_rot1; rr++) { for(tt2 =1; tt2 <= num_tilt2; tt2++) { t_im2 = t_min * pow(t_k, tt2-1); if( t_im2 ==1) { num_rot1_2 =1; } else { num_rot1_2 = round(num_rot_t2*t_im2/2); if( num_rot1_2%2==1) { num_rot1_2 = num_rot1_2 +1; } num_rot1_2 = num_rot1_2 /2; } for( rr2 =1; rr2 <= num_rot1_2; rr2++) { for( cc=0; cc <(int) matchings_vec[tt-1][rr-1][tt2-1][rr2-1].size(); cc++) { matchings.push_back(matchings_vec[tt-1][rr-1][tt2-1][rr2-1][cc]); Minfoall.push_back(Minfoall_vec[tt-1][rr-1][tt2-1][rr2-1][cc]); } }}}}

Page 73: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

59

Potongan coding diatas digunakan untuk menghapus hasil match yang

dilakukan berulang saat simulasi berlangsung, menghapus hasil match

dimana satu keypoint pada citra satu memiliki lebih dari satu keypoint

yang cocok pada citra kedua atau sebaliknya.

if( matchings.size()>0) { matchingslist matchings_unique; vector< vector<float>> Minfoall_unique; unique_match1(matchings, matchings_unique, Minfoall, Minfoall_unique); matchings = matchings_unique; Minfoall = Minfoall_unique; if( verb ) { printf("The number of unique matches is %d \n",(int) matchings.size()); } matchings_unique.clear(); Minfoall_unique.clear(); clean_match2(matchings, matchings_unique, Minfoall, Minfoall_unique); matchings = matchings_unique; Minfoall = Minfoall_unique; matchings_unique.clear(); Minfoall_unique.clear(); clean_match1(matchings, matchings_unique, Minfoall, Minfoall_unique); matchings = matchings_unique; Minfoall = Minfoall_unique;

Page 74: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

60

Potongan coding diatas digunakan untuk menghapus pencocokan

keypoint yang salah menggunakan epipolar geomertric filtering.

for( cc =0; cc <(int) matchings.size(); cc++) { Match match1_coor; match1_coor.x1 = matchings[cc].first.x; match1_coor.y1 = matchings[cc].first.y; match1_coor.x2 = matchings[cc].second.x; match1_coor.y2 = matchings[cc].second.y; match_coor.push_back(match1_coor); } std::vector<float> index; int t_value_orsa=10000; int verb_value_orsa=0; int n_flag_value_orsa=0; int mode_value_orsa=2; int stop_value_orsa=0; float nfa = orsa((w1+w2)/2,(h1+h2)/2, match_coor, index, t_value_orsa, verb_value_orsa, n_flag_value_orsa, mode_value_orsa, stop_value_orsa); if( nfa < nfa_max ) { matchings_unique.clear(); Minfoall_unique.clear(); for( cc =0; cc <(int) index.size(); cc++) { matchings_unique.push_back(matchings[(int)index[cc]]); Minfoall_unique.push_back(Minfoall[(int)index[cc]]); } matchings = matchings_unique; Minfoall = Minfoall_unique; cout <<"The two images match! "<< matchings.size()<<" matchings are identified. log(nfa)="<< nfa <<"."<< endl; } else { matchings.clear(); Minfoall.clear(); cout <<"The two images do not match. The matching is not significant: log(nfa)="<< nfa <<"."<< endl; }

Page 75: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

61

4. Penerapan Pengkodean Matlab untuk Seleksi dan Hasil

Proses ini dilakukan untuk menseleksi hasil dari keypoint matching

nilai matching terbesar dan memiliki nilai lebih dari treeshold akan

menjadi citra wajah hasil identifikasi. Berikut ini adalah kode proses

seleksi dan hasil :

Proses diawali dengan pembacaan matching.txt yang berisi nilai –

nilai match dari keypoint antara sketsa dan foto. Diambil nilai jumlah

keypoint match dari file tersebut lalu dilakukan perbandingan dengan

nilai jumlah matching sebelumnya. Setelah mendapat nilai jumlah

fid = fopen('matchings.txt','r'); i =1; tline = fgetl(fid); A{i}= tline; while ischar(tline) i = i+1; tline = fgetl(fid); A{i}= tline; end fclose(fid); matchK = str2num(A{1}); if (matchK>matchTst&&matchK>TreesHold) matchTst = matchK; ImgRsltNm = ImgName;

End

if(matchTst>0) image = strcat(TrainDatabasePath,'\',ImgRsltNm,'.jpg'); images = imread(image); figure,imshow(images); title('Equivalent Image'); disp(strcat('Matched image is : ',ImgRsltNm)) fprintf('Found %d matches.\n', matchTst); else fprintf('Image not found.\n');

Page 76: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

62

match terbesar dan memiliki treeshold lebih dari 50 maka foto akan

ditampilkan dan menjadi hasil identifikasi sketsa.

4.4. Pengujian Prototype

Selanjutnya penulis menguji prototype aplikasi identifikasi wajah

pada citra sketsa menggunakan metode ASIFT dapat menghasilkan hasil

identifikasi ciri dari sketsa dan foto. Hasil pengenalan wajah pada sketsa

dapat menunjukkan foto yang sama atau setidaknya mirip dengan sketsa.

1. Daftar Jumlah Keypoint yang Ditemukan Pada Sketsa Mengggunakan

Metode ASIFT

Tabel 4.4 Jumlah Keypoint Citra Sketsa

Nama Sketsa Sketsa Jumlah Keypoint

yang Terdeteksi

1S.jpg

8078

2S.jpg

8663

Page 77: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

63

3S.jpg

7539

4S.jpg

8614

5S.jpg

7836

Page 78: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

64

2. Daftar Jumlah Keypoint yang Ditemukan Pada Foto Mengggunakan

Metode ASIFT

Tabel 4.5 Jumlah Keypoint Citra Foto

Nama Foto Foto Jumlah Keypoint

yang Terdeteksi

1F.jpg

7991

2F.jpg

10445

3F.jpg

8845

4F.jpg

11599

Page 79: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

65

5F.jpg

8621

3. Hasil Pengujian False Acceptance Rate(FAR) dan False Rejection

Rate(FRR)

Tabel 4.6 Hasil Pengujian FER dan FRR

Threshold yang Digunakan FAR FRR

30 0,12 0

40 0,04 0

50 0 0

60 0 0,2

70 0 0,6

Berdasarkan hasil pengujian FER dan FRR yang telah penulis lakukan

maka akan didapatkan titik Equal Eror Rate(EER) berada pada threshold 50.

Maka threshold yang penulis gunakan untuk prototype ini adalah 50.

Page 80: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

66

4. Hasil Pengenalan Sketsa Menggunakan Metode ASIFT

Tabel 4.7 Jumlah Match Keypoint Citra Sketsa dan Foto

Nama

Sketsa

Foto yang

dikenali

Jumlah Keypoint

Match Benar/Salah

1S.jpg 1F.jpg 56 keypoint Benar

2S.jpg 2F.jpg 77 keypoint Benar

3S.jpg 3F.jpg 104 keypoint Benar

4S.jpg 4F.jpg 66 keypoint Benar

5S.jpg 5F.jpg 68 keypoint Benar

Page 81: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

67

BAB V

PENUTUP

5.1. Kesimpulan

Berdasarkan penelitian yang telah penulis lakukan metode Affine Scale

Invariant Feature Transform (SIFT) dapat mengidentifikasi ciri khusus (feature)

dari citra sketsa dan foto dengan baik, ini terlihat dari banyaknya feature yang

dihasilkan. Dari lima sample citra sketsa yang diidentifikasi hasil foto yang di

dapatkan merupakan wajah dari sketsa.

5.2. Saran

1. Untuk memaksimalkan kinerja proses perlu dicari algoritma yang dapat

memepercepat analisa wajah menggunakan ASIFT.

2. Gunakan fariasi algoritma SIFT lain yang dapat digunakan untuk

menganalisa wajah dari citra sketsa.

Page 82: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Daftar Pustaka

Cleve, M. (2004, December). "The Origins of MATLAB". Dipetik Juli 1, 2015,

dari Mathwoks:

http://www.mathworks.com/company/newsletters/articles/the-origins-of-

matlab.html

Guoshen, Y., & Morel, J. M. (2011). ASIFT: An Algorithm for Fully Affine

Invariant Comparison. Image Processing On Line .

Kristanto, Y. (2014). Perbandingan Teknik Scale Invariant Feature Transform

(SIFT) dan Multiscale Local Binary Pattern (MLBP) dalam Pengenalan

Wajah dengan Citra Masukan Berupa Citra Sketsa Wajah.

Lowe, D. G. (2004). Distinctive Image Features from Scale-Invariant Keypoints.

5-15.

Prasetyo, E. (2011). Pengolahan Citra Digital dan Aplikasinya mengggunakan

Matlab. Yogyakarta: Andi.

Putri, G., Agung, T., & Sa'adah, S. (2014). Analisis dan Implementasi Scale

Invariant Feature Transform (SIFT) pada Sistem Autentikasi

Menggunakan Pembuluh Vena.

Rachman, A., & Romi. (2010). Analisis Penggunaan Scale Invariant Feature

Transform Sebagai Metode Ekstraksi Fitur Pada Pengenalan Jenis

Kendaraan.

Page 83: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Silajaya, A. (2014). Pengenalan Wajah Dengan Citra Masukan Berupa Citra

Sketsa Wajah Sebagai Hasil Sintesis Dengan Teknik Multiscale Markov

Random Field (MRF).

Simarta, J. (2010). Rekayasa Perangkat Lunak. Yogyakarta: Andi.

Weisstein, E. W. (t.thn.). "Affine Transformation.". Dipetik July 05, 2015, dari

MathWorld--A Wolfram Web Resource:

http://mathworld.wolfram.com/AffineTransformation.html

Page 84: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Lampiran – Lampiran

Page 85: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Lampiran 1. SK Dosen Pembimbing

Page 86: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale
Page 87: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Lampiran 2. Tampilan Prototype Aplikasi Pengenalan

Wajah Pada Citra Sketsa

Page 88: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

1. Tampilan Halamna Utama 2. Tampilan Identifikasi Sketsa

Page 89: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

3. Tampilan Inisialisasi 4. Tampilan Help 5. Tampilan About

Page 90: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Lampiran 3. Source Code Prototype Aplikasi Pengenalan

Wajah Pada Citra Sketsa

Page 91: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Source Code Home.m function varargout = Home(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @Home_OpeningFcn, ... 'gui_OutputFcn', @Home_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before Home is made visible. function Home_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to Home (see VARARGIN) % Choose default command line output for Home handles.output = hObject; CitraLogo = imread('C:\Users\Mukhlis L\Documents\MATLAB\Hasil Match\logo.png'); imshow(CitraLogo); % Update handles structure guidata(hObject, handles); % UIWAIT makes Home wait for user response (see UIRESUME) % uiwait(handles.figure1);

Page 92: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

% --- Outputs from this function are returned to the command line. function varargout = Home_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) SelectReq; % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) IdenSketsa; % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) Help; % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) About; % --- Executes on button press in pushbutton5. function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) close(gcf);

Page 93: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

function varargout = SelectReq(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @SelectReq_OpeningFcn, ... 'gui_OutputFcn', @SelectReq_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before SelectReq is made visible. function SelectReq_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to SelectReq (see VARARGIN) % Choose default command line output for SelectReq handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes SelectReq wait for user response (see UIRESUME) % uiwait(handles.figure1); % --- Outputs from this function are returned to the command line. function varargout = SelectReq_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output;

Page 94: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Source Code SelectReq.m function SketsaPath_Callback(hObject, eventdata, handles) % --- Executes during object creation, after setting all properties. function SketsaPath_CreateFcn(hObject, eventdata, handles) % hObject handle to SketsaPath (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in SketsaPathBtn. function SketsaPathBtn_Callback(hObject, eventdata, handles) % hObject handle to SketsaPathBtn (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) SketPath = uigetdir; if ischar(SketPath) set(handles.SketsaPath,'String',SketPath); end handles.SketPath = SketPath; guidata(hObject, handles); function FotoPath_Callback(hObject, eventdata, handles) % hObject handle to FotoPath (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of FotoPath as text % str2double(get(hObject,'String')) returns contents of FotoPath as a double % --- Executes during object creation, after setting all properties. function FotoPath_CreateFcn(hObject, eventdata, handles) % hObject handle to FotoPath (see GCBO)

Page 95: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

% eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows. % See ISPC and COMPUTER. if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % --- Executes on button press in FotoPathBtn. function FotoPathBtn_Callback(hObject, eventdata, handles) % hObject handle to FotoPathBtn (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) FotPath = uigetdir; if ischar(FotPath) set(handles.FotoPath,'String',FotPath); end handles.FotPath = FotPath; guidata(hObject, handles); % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) SketPath = handles.SketPath; FotPath = handles.FotPath; ImageFiles = dir(FotPath); Train_Number = 0; for i = 1:size(ImageFiles,1) if not(strcmp(ImageFiles(i).name,'.')|strcmp(ImageFiles(i).name,'..')|strcmp(ImageFiles(i).name,'Thumbs.db')) Train_Number = Train_Number + 1; % Number of all images in the training database end end save requirement.mat SketPath FotPath Train_Number close(gcf); % --- Executes on button press in pushbutton4. function pushbutton4_Callback(hObject, eventdata, handles) close(gcf);

Page 96: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

Source Code IdenSketsa.m function varargout = IdenSketsa(varargin) % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @IdenSketsa_OpeningFcn, ... 'gui_OutputFcn', @IdenSketsa_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT % --- Executes just before IdenSketsa is made visible. function IdenSketsa_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to IdenSketsa (see VARARGIN) % Choose default command line output for IdenSketsa handles.output = hObject; % Update handles structure guidata(hObject, handles); axes(handles.axes2); clear gca; set(gca,'ytick',[]); set(gca,'xtick',[]); axes(handles.axes3); clear gca; set(gca,'ytick',[]); set(gca,'xtick',[]); % UIWAIT makes IdenSketsa wait for user response (see UIRESUME) % uiwait(handles.figure1);

Page 97: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

% --- Outputs from this function are returned to the command line. function varargout = IdenSketsa_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % --- Executes on button press in SketBtn. function SketBtn_Callback(hObject, eventdata, handles) load requirement.mat axes(handles.axes2); clear gca; %sket = strcat(SketPath); [FileName,PathName,FilterIndex] = uigetfile({'*.jpg'},'Select Sketsa',SketPath); handles.NamaFile=FileName; handles.PathName=PathName; guidata(hObject,handles); if isequal(FileName,0) disp('User selected Cancel') else axes(handles.axes2); clear gca; set(gca,'ytick',[]); set(gca,'xtick',[]); axes(handles.axes2); handles.Citra.RGB = imread([PathName FileName]); image(handles.Citra.RGB), set(gca,'ytick',[]); set(gca,'xtick',[]); guidata(hObject,handles); %disp(['User selected', fullfile(PathName, FileName)]) end % --- Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) matchTst = 0; load requirement.mat ImageName = handles.NamaFile; file_img1 = strcat(SketPath,'\',ImageName); for i=1:5 ImgName = int2str(i); %file_img1 = strcat(SketPath,'\',ImgName,'.jpg'); file_img2 = strcat(FotPath,'\',ImgName,'.jpg'); imgOutVert = 'imgOutVert.png';

Page 98: IMPLEMENTASI ALGORITMA AFFINE SCALE …repository.uinjkt.ac.id/dspace/bitstream/123456789/27609/...Hasil pencocokkan dari sample yang digunakan menunjukkan bahwa metode Affine Scale

imgOutHori = 'imgOutHori.png'; matchings = 'matchings.txt'; keys1 = 'keys1.txt'; keys2 = 'keys2.txt'; flag_resize = 0; demo_ASIFT(file_img1, file_img2, imgOutVert, imgOutHori, matchings, keys1, keys2, flag_resize); fid = fopen('matchings.txt','r'); i = 1; tline = fgetl(fid); A{i} = tline; while ischar(tline) i = i+1; tline = fgetl(fid); A{i} = tline; end fclose(fid); matchK = str2num(A{1}); if matchK>matchTst matchTst = matchTst+matchK; ImgRsltNm = ImgName; end end if (matchTst>0) images = strcat(FotPath,'\',ImgRsltNm,'.jpg'); axes(handles.axes3); image(imread(images)); grid off; axis off; %figure,imshow(images); %title('Equivalent Image'); disp(strcat('Matched image is : ',ImgRsltNm)) fprintf('Found %d matches.\n', matchTst); else fprintf('Image not found.\n'); end % --- Executes on button press in pushbutton3. function pushbutton3_Callback(hObject, eventdata, handles) close (gcf);