BAB 3 PERUMUSAN PENELITIAN. Signal. Sparse Coding. Reconstruction. Reconstructed. Assessment

dokumen-dokumen yang mirip
REPRESENTASI SINYAL DENGAN KAMUS BASIS LEWAT-LENGKAP SKRIPSI. Oleh. Albert G S Harlie Kevin Octavio Ricardo Susetia

BAB 1 PENDAHULUAN. kemampuan hardware untuk pengambilan / pencuplikan citra serta

BAB 2 LANDASAN TEORI

BAB 1 PENDAHULUAN. salah satunya adalah untuk proses image denoising. Representasi adalah

ENHANCED K-SVD ALGORITHM for IMAGE DENOISING

BAB 3 PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB 4 HASIL DAN PEMBAHASAN

BAB 3 PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

BAB I PENDAHULUAN. 1 Universitas Kristen Maranatha

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM APLIKASI

BAB II LANDASAN TEORI

BAB 3 ANALISIS DAN PERANCANGAN PROGRAM

Watermarking dengan Metode Dekomposisi Nilai Singular pada Citra Digital

BAB I PENDAHULUAN 1.1 Latar Belakang

Pemampatan Citra Warna Menggunakan 31 Fungsi Gelombang-Singkat

PERBAIKAN KUALITAS CITRA BERWARNA DENGAN METODE DISCRETE WAVELET TRANSFORM (DWT)

DAFTAR ISI. Halaman LEMBAR PENGESAHAN SURAT PERNYATAAN ABSTRAK... i ABSTRACT... ii KATA PENGANTAR...iii DAFTAR ISI... v DAFTAR GAMBAR...

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

ANALISA PERBANDINGAN METODE VEKTOR MEDIAN FILTERING DAN ADAPTIVE MEDIAN FILTER UNTUK PERBAIKAN CITRA DIGITAL

BAB III METODE PENELITIAN. ada beberapa cara yang telah dilakukan, antara lain : akan digunakan untuk melakukan pengolahan citra.

Pengurangan Noise pada Citra Menggunakan Optimal Wavelet Selection dengan Kriteria Linear Minimum Mean Square Error (LMMSE)

DESAIN DAN IMPLEMENTASI SISTEM PENINGKATAN KUALITAS PEREKAMAN AUDIO DENGAN WAVELET NOISE REDUCTION DAN AUTOMATIC GAIN ADJUSTMENT

BAB IV HASIL DAN UJI COBA

BAB 2 TINJAUAN PUSTAKA

ANALISA ENERGY COMPACTION PADA DEKOMPOSISI WAVELET

BAB III PENGOLAHAN DATA

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM. Metode penelitian yang digunakan pada penelitian ini adalah denoising

BAB 3 METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

BAB IV HASIL PENELITIAN DAN PEMBAHASAN. 4.1 Pengembangan Sistem Pengenalan Wajah 2D

BAB 3 ANALISIS DAN PERANCANGAN SISTEM PROGRAM APLIKASI HANDS RECOGNIZER

BAB 3 PERANCANGAN DAN PEMBUATAN SISTEM

BAB III METODOLOGI PENELITIAN. Alat yang digunakan dalam penelitian ini adalah: b. Memori : 8192 MB. c. Sistem Model : Lenovo G40-45

IMPLEMENTASI STEGANOGRAPHY MENGGUNAKAN ALGORITMA DISCRETE COSINE TRANSFORM

Analisis Wavelet 2D untuk Citra Photo

Analisa Hasil Perbandingan Metode Low-Pass Filter Dengan Median Filter Untuk Optimalisasi Kualitas Citra Digital

Bab 1 Pendahuluan 1.1 Latar Belakang

Bab III ANALISIS&PERANCANGAN

BAB IV HASIL DAN PEMBAHASAN. dicolokan ke komputer, hal ini untuk menghindari noise yang biasanya muncul

PRESENTASI TUGAS AKHIR KI091391

BAB 3 PERANCANGAN PROGRAM. objek, analisis blob, SMS service, dan video saving. Deteksi objek adalah proses untuk

BAB 1 PENDAHULUAN 1.1. Latar Belakang Masalah

BAB I PENDAHULUAN. teknologi pengolahan citra (image processing) telah banyak dipakai di berbagai

BAB 2 LANDASAN TEORI

BAB IV HASIL PENELITIAN DAN PEMBAHASAN

BAB 2 LANDASAN TEORI. mencakup teori speaker recognition dan program Matlab. dari masalah pattern recognition, yang pada umumnya berguna untuk

BAB I PENDAHULUAN. Timor Leste terletak di antara garis lintang 8 dan 10 S, dan bujur 124

PENYISIPAN WATERMARK MENGGUNAKAN METODE DISCRETE COSINE TRANSFORM PADA CITRA DIGITAL

KOMPRESI IMAGE DALAM SOURCE CODING MENGGUNAKAN METODE TRANSFORMASI WAVELET

Melalui persamaan di atas maka akan terbentuk pola radargram yang. melukiskan garis-garis / pola pendekatan dari keadaan yang sebenarnya.

BAB I PENDAHULUAN. 1 Universitas Kristen Maranatha

BAB 3 PERANCANGAN SISTEM. ruangan yang menggunakan led matrix dan sensor PING))). Led matrix berfungsi

BAB IV HASIL DAN PEMBAHASAN

BAB 3 PROSEDUR DAN METODOLOGI. perhitungan LSI dan juga interface yang akan dibuat oleh penulis.

BAB III PEMODELAN MIMO OFDM DENGAN AMC

BAB 3 PERANCANGAN PROGRAM. dilanjutkan dengan rancangan cetak biru untuk program yang akan dibangun.

WATERMARKI G PADA DOMAI FREKUE SI U TUK MEMBERIKA IDE TITAS (WATERMARK) PADA CITRA DIGITAL

Gambar IV-1. Perbandingan Nilai Korelasi Antar Induk Wavelet Pada Daerah Homogen Untuk Level Dekomposisi Pertama

BAB II LANDASAN TEORI. Citra digital sebenarnya bukanlah sebuah data digital yang normal,

Pendahuluan. Praktikum Pengantar Pengolahan Citra Digital Departemen Ilmu Komputer Copyright 2008 All Rights Reserved

Bab 3. Perancangan Sistem

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB I PENDAHULUAN 1.1. Latar Belakang Masalah

Analisis Perbandingan Kompresi Haar Wavelet Transform dengan Embedded Zerotree Wavelet pada Citra

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

ANALISIS REDUKSI DATA CITRA MENGGUNAKAN METODE DEKOMPOSISI NILAI SINGULAR

1. Pendahuluan. 1.1 Latar Belakang Masalah

BAB 2 LANDASAN TEORI

LOGO PEMBERIAN TANDA AIR MENGGUNAKAN TEKNIK KUANTISASI RATA-RATA DENGAN DOMAIN TRANSFORMASI WAVELET DISKRIT. Tulus Sepdianto

BAB 4 HASIL DAN PEMBAHASAN

COMPARISON OF ONE DIMENSIONAL DCT AND LWT SPARSE REPRESENTATION

Rancang Bangun Perangkat Lunak Transformasi Wavelet Haar Level 3 Pada Least Significant Bit (Lsb) Steganography

Pengembangan Aplikasi Presensi Sidik Jari dengan menggunakan Alihragam Wavelet dan Jarak Euclidean di Dinas Pendidikan Kabupaten Wonogiri

ABSTRAK. Kata kunci : Watermarking, SVD, DCT, LPSNR. Universitas Kristen Maranatha

PERANCANGAN APLIKASI PENGACAKAN CITRA MENGGUNAKAN M-SEQUENCE BERDASARKAN PARAMETER

ANALISIS UNJUK KERJA MEDIAN FILTER PADA CITRA DIGITAL UNTUK PENINGKATAN KUALITAS CITRA

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB 3 PERANCANGAN SISTEM. yang akan menjalankan perintah-perintah yang dikenali. Sistem ini dibuat untuk

V. IMPLEMENTASI SISTEM. yang dibutuhkan oleh sistem dari media penyimpan program ke dalam media

ESTIMASI LOCAL MOTION MENGGUNAKAN ALGORITMA PENCARIAN FOUR STEP. Rosida Vivin Nahari 1*, Riza Alfita 2 2 1,2

BAB IV HASIL DAN PEMBAHASAN. dua proses, yaitu proses akusisi data dan algoritma exemplar-based

BAB 3 PEMBAHASAN. 3.1 Sistem Absensi Berbasis Webcam

PERBANDINGAN TEKNIK WATERMARKING CITRA DIGITAL MENGGUNAKAN DWT-SVD DAN RDWT-SVD. Abstract

BAB 1 PENDAHULUAN 1.1 Latar Belakang Universitas Sumatera Utara

BAB II LANDASAN TEORI

PENERAPAN DISCRETE DAUBECHIS WAVELET TRANSFORM D A L A M W A T E R M A R K I N G C I T R A D I G I T A L

BAB I PENDAHULUAN. 1.1 Latar Belakang

TEKNIK PENGOLAHAN CITRA. Kuliah 7 Transformasi Fourier. Indah Susilawati, S.T., M.Eng.

TEKNIK PENGOLAHAN CITRA. Kuliah 8 Transformasi Fourier. Indah Susilawati, S.T., M.Eng.

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

JURNAL IT STMIK HANDAYANI

Analisa Multiwavelet untuk Kompresi Suara

PERBANDINGAN KUALITAS WATERMARKING DALAM CHANNEL GREEN DENGAN CHANNEL BLUE UNTUK CITRA RGB PADA DOMAIN FREKUENSI ABSTRAK

BAB II LANDASAN TEORI

Kompresi Citra Berwarna Menggunakan Transformasi Wavelet

Transkripsi:

BAB PERUMUSAN PENELITIAN.1 Blok Diagram Signal Sparse Coding Dictionary Reconstruction Reconstructed Signal Assessment Gambar.1 Blok Diagram secara Umum Secara umum tujuan penelitian ini akan mencari dictionary yang akan menghasilkan sinyal rekonstruksi lebih baik daripada hasil rekonstruksi menggunakan basis seperti Discrete Fourier Transform () dan Haar yang umum digunakan. Penelitian ini juga memberi sedikit fokus pada pencarian metode penggunaan yang efektif, karena terdapat banyak metode dalam sparse coding menggunakan dictionary dan masing-masing menghasilkan rekonstruksi yang berbeda-beda. Penelitian akan dilakukan dengan cara memasukan sinyal yang berupa citra abu-abu untuk kemudian dilakukan sparse coding menggunakan dictionary yang 1

dibangun dari basis-basis umum yang orthonormal. Hasil outputnya adalah sebuah sinyal atau citra rekonstruksi yang diharapkan memiliki kualitas mendekati citra asli. Untuk mengetahui kualitas citra rekonstruksi, pada penelitian akan dilihat nilai Peak Signal to Noise Ratio atau PSNRnya. Dictionary Haar Dictionary Daubechies Dictionary Symlet Dictionary Coiflet Dictionary Test Image Blocking Vectoring OMP Union Base Dictionary Re-shape Reconstruction De-blocking Assessment Gambar. Blok Diagram

1 Untuk lebih rincinya, pertama-tama test image diinput. Test image yang digunakan ada buah yaitu lena_g.jpg, baboon_g.jpg, barbara.jpg, peppers_g.jpg dan cameraman.jpg. (a) (b) (c) (d) (e) Gambar. Test image yang digunakan yaitu (a)lena_g.jpg, (b)baboon_g.jpg, (c)barbara.jpg, (d)peppers_g.jpg dan (e)cameraman.jpg Kemudian selanjutnya dilakukan proses blocking. Pada penelitian ini, pengolahan citra tidak langsung secara utuh melainkan dipecah-pecah dahulu,

inilah yang disebut proses blocking. Misal diinput sebuah citra lena_g.jpg dengan ukuran 1 x 1 pixel dan dilakukan blocking x pixel : Gambar. Ilustrasi Blocking Maka akan gambar 1 x 1 pixel tersebut akan terbagi menjadi buah blok image x pixel. Blok tersebut yang nanti akan diolah dalam sparse coding. Data citra dibuat menjadi blok yang lebih kecil untuk mempercepat proses komputasi sparse coding. Dalam penelitian ini, ukuran blocking yang digunakan adalah 8 x 8 pixel karena setelah percobaan dengan beberapa macam ukuran blocking yakni x pixel, x pixel, 8 x 8 pixel, 1 x 1 pixel, x pixel, diperoleh data ukuran 8 x 8 pixel memiliki waktu yang paling cepat ketika dilakukan sparse coding. Untuk blocking dengan ukuran x pixel (untuk sebagian test image) dan ukuran lebih dari x pixel, tidak dapat dilakukan percobaan menghitung waktu karena keterbatasan hardware. Setelah itu dilakukan proses vectoring untuk tiap bloknya, yaitu proses untuk mengubah data dari dimensi menjadi 1 dimensi. Perubahan dimensi data ini

untuk memudahkan pengolahannya dalam sparse coding. Proses pengubahannya dilakukan dengan menginput data daripada blok citra kedalam koefisien yang akan mengambil nilai tiap kolomnya dan menderetkannya menjadi 1 kolom panjang. Contoh : Misal ada sebuah matriks 1 8 sebagai input. Maka setelah proses vectoring, akan menjadi 1 8 Lalu berikutnya, proses dalam memperoleh overcomplete dictionary yang diinginkan, pertama akan dibuat basis-basis yang diperlukan. Basis yang digunakan dalam penelitian ini adalah dan Wavelet. Pemilihan macam basis tersebut karena sudah umum digunakan serta memiliki sifat orthonormal. Memiliki sifat orthonormal berarti basis tersebut mempunyai inverse yang sama dengan transposenya, serta tiap-tiap atom dalam basis tersebut unik. Sifat ini diperlukan pada basis yang akan digunakan dalam penelitian karena akan memudahkan proses perhitungan dalam sparse coding. Wavelet memiliki macam-macam tipe, dan tidak semua tipe Wavelet memiliki sifat orthonormal Beberapa tipe Wavelet yang memiliki sifat orthonormal dan dipakai dalam penelitian adalah Haar, Daubechies, Coiflet dan Symlet. Untuk

masing-masing tipe Wavelet yang ada (Haar, Daubechies, Coiflet dan Symlet), terbagi lagi menjadi orde-orde. Dalam penelitian ditentukan orde yang digunakan adalah orde untuk Daubechies, orde untuk Coiflet dan orde untuk Symlet. Pemilihan orde dan tipe Wavelet ini tidak berdasarkan alasan khusus, penulis memilih tipe Wavelet yang orthonormal dan umum dipakai secara arbitrary. Untuk membuat basis, dapat diperoleh dari persamaan (.) akan tetapi dalam program digunakan fungsi transformasi di MATLAB. Fungsi transformasi secara umum adalah : Dictionary Koefisien = Sinyal ( Untuk memudahkan selanjutnya Basis disebut sebagai D, koefisien disebut sebagai X dan Sinyal disebut sebagai Y. ) D X = Y (.1) Tetapi fungsi transformasi yang ada dalam MATLAB akan memperoleh koefisiennya sebagai hasil dan sinyal sebagai input, maka persamaannya adalah sebagai berikut: D I D X = D I Y X = D I Y (.)

Jadi untuk memperoleh basis, dapat diinput sebuah matriks identitas sebagai sinyal ke dalam persamaan (.). X = D I I X = D I (.) Suatu matriks yang dikali dengan matriks identitas sama dengan matriks itu sendiri, maka setelah diinput matriks identitas sebagai sinyal di persamaan (.), akan diperoleh hasil koefisien adalah inverse basis (.). Dan terakhir untuk diperoleh basis akan dilakukan inverse pada inverse basis. Akan tetapi karena basis adalah dictionary yang orthonormal, maka hasil inversenya akan sama dengan hasil transposenya. Jadi setelah diperoleh inverse basis dari persamaan (.), untuk mendapatkan basis cukup dilakukan transpose. Berikut adalah contoh matriks basis ukuran 8x8 yang diperoleh:...1.1..8....1.....1.8..8.....1.1...1.8..1.....1.8..1....8.....1.1..1.....1.8...1.1..8.. Lalu untuk memperoleh basis macam-macam Wavelet, Wavelet menggunakan persamaan fungsi (lihat persamaan (.)) dalam transformasinya, tetapi dalam prakteknya digunakan high pass dan low pass filter (lihat gambar.). Ini karena proses komputasi menghitung persamaan Wavelet sangat

membutuhkan waktu, sehingga untuk mengurangi waktu komputasi digunakan gabungan high pass dan low pass filter yang hasilnya ekuivalen dengan persamaan fungsinya. Fungsi standar MATLAB hanya tersedia fungsi untuk menghasilkan nilai low pass dan high pass filter suatu tipe Wavelet. Sehingga untuk mencari koefisiennya digunakan fungsi tambahan inverse Wavelet transform yang diperoleh dari toolbox UVi_wave version.. Ke dalam fungsi tersebut dimasukkan input sinyal dan high pass serta low pass filternya. Karena hasil yang diperoleh sama seperti fungsi di MATLAB yakni koefisiennya (lihat persamaan (.)) maka untuk memperoleh Basisnya, dimasukkan matriks identitas sebagai sinyal input (persamaan (.)). Terakhir, sama seperti pada memperoleh basis, basis yang diperoleh adalah inversenya, karena itu perlu dilakukan inverse terhadap inverse basis tersebut. Karena tipe Wavelet yang dipilih juga bersifat orthonormal seperti maka untuk memperoleh inversenya cukup dilakukan transpose. Langkah-langkah tersebut dilakukan serupa untuk tiap tipe dan orde Wavelet yang diinginkan, cukup mengubah parameter tipe Wavelet pada saat menghasilkan nilai low pass dan high pass filter, jika ingin dihasilkan Haar Wavelet maka input parameternya adalah Haar, untuk menghasilkan Daubechies- digunakan db, untuk menghasilkan Coiflet- digunakan coif dan untuk menghasilkan Symlet- digunakan sym. Setelah tersedia basis yang diperlukan, selanjutnya basis tersebut akan digabungkan secara berderet dalam sebuah matriks. Urutan penderetan tidak mempengaruhi hasil akhir dalam sparse coding.

Contoh, diperoleh basis adalah matriks sebagai berikut : atau disederhanakan menjadi [ ] Dan basis Wavelet Haar yang diperoleh sebagai berikut : DB1 DB1 DB1 DB1 DB1 DB1 DB1 DB1 DB1 atau disederhanakan menjadi [ Haar ] Maka ketika dilakukan penderetan akan menjadi sebagai berikut : DB1 DB1 DB1 DB1 DB1 DB1 DB1 DB1 DB1 atau disederhanakan menjadi [ Haar] Dan seterusnya bila ditambah basis lain atau bahkan basis yang sama : DB1 DB1 DB1 DB1 DB1 DB DB1 DB1 DB1 SYM SYM SYM SYM SYM SYM SYM SYM SYM [ D 1 D D Dn]

Penderetan ini akan menghasilkan bentuk matriks yang berubah dari bujur sangkar menjadi sebuah persegi panjang, perbedaan jumlah kolom dan baris dan matriks menyebabkan dictionary ini disebut sebagai overcomplete dictionary, karena mempunyai penyelesaian yang lebih dari 1. Hal ini dapat dimisalkan, sebuah kasus dimiliki buah persamaan dengan buah koefisien : (i) X + Y = 1 (ii) X + Z = (iii) Y + Z = M aka penyelesaian pasti hanya 1 buah yaitu X =, Y = 1, dan Z =, tidak mungkin dengan nilai lain. Akan tetapi ketika kasus lain dimiliki buah koefisien tetapi dengan buah persamaan : (i) X + Y = 1 (ii) X + Z = (iii) Y + Z = (iv) X Y = 1 (v) X + Z = Penyelesaiannya tidak dapat ditemukan, karena penyelesaiannya bisa lebih dari 1, seperti X =, Y = 1dan Z = untuk persamaan (i), (ii) dan (iii); X = 1, Y =, Z = 1 untuk persamaan (ii), (iii), (iv) dan (v); dan seterusnya tanpa ada penyelesaian yang pasti. Dapat diandaikan jumlah persamaan adalah dictionary dan jumlah koefisien adalah sinyal input serta penyelesaian adalah koefisien. Maka kasus pertama yang memiliki 1 penyelesaian dapat dianalogikan sebagai complete 8

dictionary, contohnya seperti basis yang akan selalu menghasilkan nilai koefisien yang sama setiap kali dilakukan transformasi. Untuk kasus yang memiliki banyak penyelesaian dapat dianalogikan dengan overcomplete dictionary. Dengan panjang dictionary yang lebih banyak daripada sinyal input maka akan diperoleh pilihan koefisien yang lebih banyak. Dalam sparse coding nanti akan dibuat algoritma dalam memilih koefisien yang hasil rekonstruksinya paling mendekati test image, atau dalam kasus di atas, memiliki penyelesaian paling mendekati semua persamaan. Dalam sparse coding nilai koefisien yang dihasilkan bergantung pada jumlah pengulangan dalam proses OMP. Kemudian dengan tersedianya dictionary yang diinginkan, dilakukan pencarian koefisien dari dictionary gabungan tersebut dengan metode Orthogonal Matching Pursuit (OMP). Pertama-tama akan dicari nilai dot product antara tiap atom dictionary dengan residu. Residu adalah perbedaan nilai antara data asli dengan data rekonstruksi. Image secara digital pada dasarnya adalah data berbentuk matriks berukuran sesuai dengan jumlah pikselnya, maka proses pengurangan data dilakukan layaknya pengurangan antar matriks. Nilai awal residu yang digunakan adalah data blok yang sedang dilakukan proses sparse coding. Setelah dihitung semua nilai dot productnya, pilih yang memiliki nilai terbesar, lalu menyimpan nilai index dari atom yang menghasilkan nilai dot product tesebut. Nilai index tersebut yang akan dipakai untuk memilih index dari koefisien sementara yang diperoleh dari perkalian inverse overcomplete dictionary dengan data blok yang sedang diproses.

Koefisien memang mudah dicari menggunakan cara seperti itu, tetapi aproksimasi koefisien ini tidak dilakukan seperti pada koefisien complete dictionary. Karena pada overcomplete dictionary walaupun tiap basisnya memiliki sifat orthonormal, atom-atom antar basis yang berbeda tidak orthonormal, ada kemungkinan terjadinya pengulangan. Sehingga aproksimasi non linear biasa tidak bisa menjadi solusi. Untuk itu digunakan dot product untuk memperoleh kombinasi atom-atom antar basis yang unik Koefisien yang diperoleh kemudian akan ditransform kembali menggunakan overcomplete dictionary yang ada menjadi blok image rekonstruksi. Residu lalu diupdate dengan mengurangkan nilai blok asli dengan nilai blok rekonstruksi. Residu akan berpengaruh pada pemilihan index, karena index yang sudah terpilih secara tidak langsung tereliminasi. Selanjutnya proses dilakukan berulang sesuai dengan jumlah aproksimasi koefisien yang ditentukan yaitu %, 1%, 1%, %, %, %, %, %, %, %,%, %, %, %, %, 8%, 8%, % atau % daripada jumlah koefisien yang seharusnya ada.

1 Gambar. Ilustrasi Rekonstruksi; D adalah Dictionary, x adalah Aproksimasi Koefisien dan y adalah Sinyal Rekonstruksi Dilihat pada gambar., contoh ilustrasi cara kerja proses yang terjadi dalam OMP secara sederhana adalah, misal dictionary overcomplete yang diperoleh: 1 1 1 1 8 8 8 8 1 1 1 1 1 1 1 1 Sinyal yang diinput adalah : Selanjutnya akan dicari atom dictionary yang paling tinggi keterkaitannya dengan sinyal. Ini dilakukan dengan mencari nilai dot product terbesar antara residu dan atom-atom dictionary. Karena residu adalah beda antara sinyal asli

dengan sinyal rekonstruksi, dan sinyal rekonstruksi belum diperoleh pada langkah paling awal maka residu pertama adalah sinyal asli. Contoh perhitungan atom pertama dictionary dengan residu awal : [ 1 1 1] 1 = 1 Perhitungan berikutnya : [ ] = 8 Dan dihitung seterusnya hingga atom terakhir. Dilihat dari contoh matriks yang ada, misalkan setelah selesai dicari nilainilai dot product tiap atom ternyata pada atom ke- merupakan nilai tertinggi, maka atom tersebut adalah atom terpilih yang akan digunakan untuk mencari koefisien. Caranya adalah, atom tersebut akan dipisahkan dari dictionary yang ada kemudian diinverse, dan hasilnya dikalikan dengan sinyal asli. Contoh : Misal hasil inverse atom ke adalah [ ] =

Nilai tersebut kemudian akan dimasukkan ke dalam matriks koefisien disesuaikan dengan index atom dictionary yang digunakan, dalam contoh sebelumnya, indexnya adalah. Dapat dilihat pada gambar., matriks koefisien ukurannya sesuai dengan jumlah atom dictionary maka : Koefisien yang diperoleh lalu direkonstruksi menggunakan overcomplete dictionary yang ada, hasil rekonstruksi digunakan untuk mencari residu baru. 1 1 8 1 1 1 8 1 1 1 8 1 1 1 8 1 =

Residu baru : = Lalu kemudian proses diulang ke mencari dot product terbesar selanjutnya. Yakni antara residu baru dengan tiap atom dictionary. Misalkan pada proses berikutnya ditemukan bahwa atom ke- dictionary memiliki nilai dot product terbesar. Maka atom ini akan digabungkan dengan atom terpilih sebelumnya, dalam contoh sebelumnya adalah atom ke-. Maka matriks yang terbentuk adalah : Langkah selanjutnya diinverse kemudian dikalikan dengan sinyal asli untuk diperoleh koefisien. Misal inverse matriks atom pilihan adalah Maka koefisien yang diperoleh adalah : =

Sama seperti sebelumnya, nilai tersebut kemudian akan dimasukkan ke dalam matriks koefisien pada index yang sesuai dengan index dimana atom dictionary tersebut ditemukan, dalam contoh kali ini indexnya adalah dan. Proses selanjutnya adalah mencari residu baru dengan cara merekonstruksi koefisien yang ditemukan dengan dictionary dan dicari selisih nilai akhirnya dengan sinyal asli. 1 1 8 1 1 1 8 1 1 1 8 1 1 1 8 1 =

Residu baru : = 8 1 Dan seterusnya proses berulang hingga jumlah koefisien yang ditemukan sesuai dengan aproksimasi yang diinginkan. Contoh jika aproksimasi yang ditentukan adalah % maka perulangan akan dilakukan hingga jumlah koefisien yang memiliki nilai berjumlah, % 1 =, tiga buah. Dalam contoh di atas, perulangan cukup dilakukan 1 kali lagi. Bila aproksimasi yang ditentukan adalah % maka jumlah koefisien yang diperlukan adalah % 1 =., ketika angka yang diperoleh tidak bulat maka perlu dilakukan pembulatan ke atas, sehingga jumlah koefisien yang diperlukan menjadi. Setelah blok image rekonstruksi yang terakhir diperoleh, dilakukan reshaping yaitu kebalikan daripada vectoring, mengubah data dari 1 dimensi menjadi dimensi. Dan terakhir dilakukan deblocking yang merupakan kebalikan proses blocking, menggabungkan potongan-potongan kecil tersebut ke kembali ke dimensi awal. Image rekonstruksi hasil dictionary baru tersebut nanti akan dibandingkan dengan test image awal secara objektif, yakni dilihat nilai PSNRnya.

. Diagram Alir..1 Umum Overcomplete Start A Inisialisasi Dictionary Unification Input Image Melakukan proses Blocking pada image input Display Image Generate Matrix Generate Haar Matrix Melakukan proses OMP pada block-block image Proses De-blocking Display Image Generate Daubechies- Matrix Menghitung PSNR Generate Coiflet- Matrix End Generate Symlet- Matrix A Gambar. Diagram Alir Umum

8 Proses yang dilakukan oleh program penelitian ini pertama-tama adalah dilakukan inisialisasi jumlah dimensi blocking yang digunakan dan jumlah aproksimasi non-zero, lalu menginput citra yang akan dilakukan sparse coding menggunakan syntax imread ke dalam variabel I. Citra-citra yang akan diinput dapat dilihat pada gambar.. Contoh, misal akan diinput citra cameraman.jpg maka dibuatkan syntax I = imread(cameraman.jpg); Selain menginput citra yang akan dipakai, diinput juga ukuran citra yang digunakan ke dalam variabel v_size dan h_size. Variabel v_size untuk ukuran citra secara vertikal dan h_size untuk ukuran citra secara horizontal. Ukuran ini nanti akan dipakai dalam proses blocking dan deblocking. Citra lalu dimunculkan menggunakan imshow untuk perbandingan visual dengan citra rekonstruksi pada akhir proses. Selanjutnya dibuat basis-basis yang akan digabungkan sebagai overcomplete dictionary. Basis tersebut antara lain adalah, Haar, Daubechies, Coiflet dan Symlet. Basis tersebut diperoleh dari hasil transformasi dengan matriks indentitas seperti pada persamaan (.) yang kemudian dilakukan inverse. Masing-masing basis tersebut akan ditampung dalam variabel D1, D, D, D dan D. Dapat dilihat pada source code, syntax yang digunakan untuk adalah sebagai berikut : D1=dct(eye(b*b))'; Syntax dct merupakan fungsi bawaan daripada MATLAB, yang akan menghasilkan koefisien dari sinyal yang diinput, dct(sinyal_input). Sinyal yang diinput ke dalam fungsi tersebut adalah eye(b*b). Eye merupakan

fungsi MATLAB yang akan menghasilkan matriks identitas berukuran input input ( eye(input) ), dalam baris program kali ini akan dibuat matriks identitas sebesar dimensi bloking kuadrat. Terakhir hasil tersebut akan ditranspose untuk diperoleh inversenya. Lalu untuk syntax wavelet adalah sebagai berikut : c=log(b*b); Haar [L,H]=wfilters('Haar','R'); D=iwt(eye(b*b),L,H,c)'; Daubechies- [L,H]=wfilters('db','R'); D=iwt(eye(b*b),L,H,c)'; Coiflet- [L,H]=wfilters('coif','R'); D=iwt(eye(b*b),L,H,c)'; Symlet- [L,H]=wfilters('sym','R'); D=iwt(eye(b*b),L,H,c)';

Dapat dilihat syntax yang digunakan untuk membangun basis tipe-tipe wavelet mempunyai kemiripan, yang membedakan adalah parameter yang digunakan pada waktu mencari koefisien high pass dan low pass filternya. Langkah pertama dalam mencari basis wavelet adalah mencari dahulu koefisien high pass dan low pass filternya yang ekuivalen dengan persamaannya. Ini dilakukan dengan syntax wfilter yang akan ditampung nilainya ke dalam variabel L dan H. Syntax wfilter akan menghasilkan koefisien sesuai dengan tipe wavelet yang diinginkan, untuk Haar digunakan haar, untuk Daubechies- digunakan db, untuk Coiflet- digunakan coif dan untuk Symlet- digunakan sym. Parameter lain yang diperlukan adalah R karena yang diperlukan adalah koefisien rekonstruksi. Langkah berikutnya adalah menggunakan fungsi tambahan iwt dari Toolbox UVi_wave version.. Syntax iwt ini berfungsi sama seperti syntax dct yakni memperoleh koefisien dari sinyal asli. Akan tetapi parameter yang perlu dimasukkan adalah sinyal input, koefisien low pass dan high pass serta level DWT. Pada penelitian digunakan level DWT maksimum. Sinyal input yang dimasukkan adalah matriks identitas, sama seperti pada dct. Dan terakhir dilakukan transpose untuk diperoleh inversenya. Basis yang sudah diperoleh kemudian digabungkan untuk menjadi sebuah dictionary dengan cara dideretkan. Hasil penderetan basis tersebut akan ditampung dalam variabel D, syntaxnya adalah D = [ D1 D D D D ]. Setelah sudah diperoleh dictionary yang diinginkan, dilakukan juga penghitungan ukuran dimensi dictionary yang dimasukkan ke dalam variabel vd dan hd. Variabel vd

1 untuk ukuran jumlah baris dictionary dan hd untuk ukuran jumlah kolom dictionary. Variabel tersebut akan digunakan dalam proses OMP. Selanjutnya dilakukan proses blocking. Proses blocking menggunakan fungsi yang terpisah dari program utama, lebih lengkapnya dapat dilihat pada subbab.. Blocking. Proses lalu masuk ke dalam pengulangan sesuai dengan jumlah blok dalam baris dan kolom. Masing-masing blok tersebut pertama akan dilakukan proses vectoring untuk mengubah data blok tersebut dari dimensi menjadi 1 dimensi. Kemudian dilakukan proses sparse coding dengan algoritma Orthogonal Matching Pursuit (OMP), lihat subbab.. Orthogonal Matching Pursuit (OMP) untuk lebih lengkap. Blok-blok yang sudah diproses kemudian akan dilakukan proses deblocking, lihat subbab.. De-blocking, menjadi sebuah citra rekonstruksi. Citra rekonstruksi ini lalu dimunculkan dengan imshow seperti pada citra input di barisbaris awal program. Terakhir dilakukan penghitungan Peak Signal to Noise Ratio atau PSNR antara citra awal dengan citra rekonstruksi. Hasil PSNR lalu ditunjukkan dalam layar. Jadi program pada akhirnya akan menghasilkan buah output, yakni citra awal, citra rekonstruksi dan nilai PSNR antara keduanya.

... Blocking Start Input Image (I), dimensi per-blocking (b), dimensi image (v_size, h_size) w = ceil( h_size / b ) h = ceil( v_size / b ) J = 1 K = 1 S(J, K, 1:b, 1:b) = I [(J-1)*b+(1:b), (K-1)*b+(1:b)] K++ K = w T J++ Y J = h T End Y J, K : indeks blok Gambar. Diagram Alir Blocking

Proses blocking dalam program dibuat dalam fungsi secara compact. Pemanggilan fungsi terdapat beberapa parameter yang harus dimasukkan yakni input image, dimensi blocking yang diinginkan, dimensi image asli. Lalu fungsi akan mencari jumlah blok yang akan dibuat berdasarkan dimensi blok yang diinginkan dan dimensi image asli. Bila image asli berukuran 1 x 1 pixel dan ingin dibuat blocking x pixel maka akan didapat nilai w = 1 = dan nilai h = 1 =. w adalah jumlah baris dan h adalah jumlah kolom. karena itu nanti akan dibuatkan pembagian sebesar baris dan kolom yang berarti ada blok. h w J = 1 K = 1 J = K = 1 J = 1 K = J = K = Gambar.8 Ilustrasi w dan h serta J dan K Setelah itu proses masuk ke dalam perulangan sesuai dengan jumlah kolom dan baris. Dalam tiap perulangan terdapat proses yang sama yakni menghasilkan output S(J, K, 1:b, 1:b). Parameter J, K bertindak sebagai inde x blok, misal blok pada baris dan kolom pertama maka akan memiliki index 1, 1 (J = 1 dan K = 1), lalu parameter terakhir adalah index matriks data yang akan

dimasukkan. Data yang dimasukkan adalah I [(J-1)*b+(1:b), (K-1)*b+(1:b)]. I adalah data dari image asli, diberi beberapa koefisien tambahan pada inde x matriksnya sehingga bisa dilakukan perulangan, sehingga nanti pada saat pengisian data akan terjadi peristiwa sebagai berikut : Misal I asli berukuran 8 x 8 : 1 1 1 1 18 8 1 1 1 8 1 1 1 1 8 1 1 8 1 8 Dilakukan proses blocking x, karena itu nilai w = 8 = dan h = 8 = sehingga nanti I akan terbagi menjadi buah blok kecil. Pada tiap bloknya, pada saat penginputan data, pertama-tama J = 1 dan K = 1, S(1, 1, 1:, 1:) = I((1-1) + (1:), (1-1) + (1:)). Jadi untuk S(1, 1, 1:, 1:) akan diinput data I (1:, 1:). I(1:, 1:) berarti diambil data I(1, 1) sampai I(, ), angka parameter tersebut adalah index dalam matriks, I(1, 1) berarti nilai pada matriks I di baris 1 dan kolom 1. Begitu pula untuk S. 1 1 1 18 1 1 8

Selanjutnya J = 1 dan K = maka S (1,, 1:, 1:) = I((1-1) + (1:), (- 1) + (1:)) S (1,, 1:, 1:) = I (1:, :8). 1 1 1 1 1 8 1 Untuk J = dan K = 1 maka S (1,, 1:, 1:) = I((-1) + (1:), (1-1) + (1:)) S (, 1, 1:, 1:) = I (:8, 1:). 1 8 1 Untuk J = dan K = maka S (,, 1:, 1:) = I((-1) + (1:), (-1) + (1:)) S (,, 1:, 1:) = I (:8, :8). 1 8 8

Jadi : 1 8 1 8 1 8 1 8 1 1 18 1 1 1 1 1 1 1 8 1 = 1 8 8 8 1 1 1 1 1 1 1 1 8 8 1 18 1 1 1 1 [] I (,) (,1) (1,) (1,1) S S S S

.. De-Blocking Start Input Sinyal yang akan dideblock (S), dimensi perblok (b), jumlah blok dalam kolom dan baris (h, w) J = 1 K = 1 I [(J-1)*b+(1:b), (K-1)*b+(1:b)] = S (J, K, 1:b, 1:b) K++ K = w T J++ Y J = h T End Y J, K : indeks blok Gambar. Diagram Alir De-blocking

8 Proses deblocking pada program ini pada dasarnya adalah pembalikan dari proses blocking, yakni blok-blok kecil yang ada digabungkan kembali berdasarkan indexnya (J dan K) menjadi ukuran awal image. Proses de-blocking ini, sama seperti blocking, dibuat menjadi sebuah fungsi. Dalam menggunakan fungsi ini perlu dimasukkan beberapa parameter sebagai berikut yaitu, blok-blok yang akan di deblocking (S), ukuran blockingnya (b), dan jumlah blocking per kolom dan baris (w dan h). Jumlah blocking ini akan digunakan sebagai jumlah perulangan sesuai index blok-blok. Jadi bila nilai w = dan h = maka akan dilakukan perulangan sebanyak kali untuk kolom sesuai nilai w dan perulangan sebanyak kali untuk baris sesuai nilai h (lihat gambar.). Setelah diinput parameter yang diperlukan, program lalu akan masuk ke dalam proses perulangan baris dan setiap perulangan baris terdapat perulangan kolom. Dalam perulangan kolom terjadi proses sebagai berikut, I [(J-1)*b+(1:b), (K-1)*b+(1:b)] = S (J, K, 1:b, 1:b). Proses yang terjadi kurang lebih sama dengan proses blocking, hanya saja terjadi kebalikannya. Misal menyesuaikan dengan contoh kasus pada proses blocking, blok-blok hasil blocking sebagai berikut : 1 1 1 18 1 1 8 1 1 1 1 1 8 1 1 8 1 1 8 8

Dengan indeks, sesuai urutan, sebagai berikut J = 1 dan K = 1, J = 1 dan K =, J = dan K = 1, J = dan K =. Akan dilakukan proses deblocking menjadi image asli I. Maka sewaktu perulangan memiliki nilai J = 1 dan K = 1, dimasukkan nilai S (1, 1, 1:, 1:) ke dalam I (1:, 1:). 1 1 1 18 1 1 8 (menyesuaikan dengan index pada gambar.) Selanjutnya pada waktu nilai J = 1 dan K = maka dimasukkan nilai S (1,, 1:, 1:) ke dalam I (1:, :8). 1 1 1 18 1 1 8 1 1 1 1 1 8 1

Ketika nilai J = dan K = 1 maka dimasukkan nilai S (, 1, 1:, 1:) ke dalam I (:8, 1:). 1 1 1 1 18 8 1 1 1 8 1 1 1 1 1 8 1 Terakhir ketika J = dan K = maka dimasukkan nilai S (,, 1:, 1:) ke dalam I (:8, :8). 1 1 1 1 18 8 1 1 1 8 1 1 1 1 8 1 1 8 1 8

1 Jadi : 1 8 8 8 1 1 1 1 1 1 1 1 8 8 1 18 1 1 1 1 = 1 8 1 8 1 8 1 8 1 1 18 1 1 1 1 1 1 1 8 1 (,) (,1) (1,) (1,1) S S S S [] I

.. Orthogonal Matching Pursuit (OMP) Start A Mengambil nilai dan index dari absolute hasil innerproduct terbesar, index merepresentasikan index atom dictionary [value, index] = max{ abs(temp) } Membuat matriks X berdimensi [hd x 1] dengan nilai tiap elemen (nol) X = zeros(hd, 1) Merubah matriks image menjadi 1 dimensi r = x( : ) Mencari koefisien sementara dengan D I Sinyal Memasukan nilai dari koefisien sementara, sesuai dengan index yang terpilih, ke dalam koefisien akhir Mengupdate residu r = x( : ) - xk i = 1 T i = M M encari innerproduct antara atomatom dictionary dan residu temp = D T * r Y Melakukan proses rekonstruksi A Reshape End i : variable looping r : residu xk : image rekonstruksi Gambar.1 Diagram Alir Orthogonal Matching Pursuit (OMP)

Proses algoritma Orthogonal Matching Pursuit (OMP) dalam program tidak dipisah seperti pada blocking dan de-blocking. Proses ini dimasukkan dalam proses perulangan yang jumlahnya disesuaikan dengan jumlah blok yang dihasilkan dari blocking. Langkah awal yang dilakukan adalah melakukan vectoring pada data blok yang bersangkutan kemudian memasukkannya ke dalam residu, variabel r, lalu menginisialisasi nilai koefisien awal dengan pada variabel X yang berupa matriks 1 kolom dengan jumlah baris sebanyak hd. Selanjutnya proses masuk ke dalam pengulangan sebanyak M kali. M adalah jumlah maksimal elemen non-zero disesuaikan dengan aproksimasi yang diinput pada awal program. Kemudian dalam tiap perulangan, pertama-tama diinisialisasi dengan menghapus variabel temp. Lalu dicari hasil innerproduct antara masingmasing atom dictionary dengan residu, nilainya akan dimasukkan ke dalam variabel temp. Untuk memperolehnya dilakukan dengan cara melakukan perkalian antara transpose dictionary dengan residu. Nilai dari variabel temp kemudian diambil nilai absolut yang terbesar beserta dengan index baris dimana nilai tersebut ditemukan. Contoh jika nilai temp adalah, maka yang akan terpilih adalah dengan nilai index baris. Nilai tersebut 8 akan dimasukkan ke dalam variabel value dan index. Lalu proses membuat sebuah koefisien sementara dari dictionary. Ini dilakukan sesuai dengan persamaan.. Untuk memperoleh inverse dictionary, tidak dilakukan dengan cara transpose seperti pada basis-basis. Karena walaupun

tiap basis yang digunakan dalam dictionary bersifat orthonormal, hubungan antar basis-basis yang digabungkan tidak memiliki sifat tersebut. Karena itu dalam program digunakan pseudo inverse untuk mencari inversenya dengan syntax pinv. Nilainya akan dimasukkan ke dalam variabel temp. Setelah sudah diperoleh koefisien sementara (temp), maka proses selanjutnya akan memilih satu koefisien di index yang sesuai dengan nilai variabel index dan memasukkannya ke dalam variabel untuk koefisien akhir yaitu X pada baris sesuai variabel index. Koefisien akhir (X) kemudian akan direkonstruksi kembali dan dimasukkan ke dalam variabel xk. Hasil rekonstruksi akan digunakan untuk mengupdate residu dengan cara mengurangkan nilai data blok yang sedang dilakukan proses OMP (x) dengan data rekonstruksi (xk). Terakhir proses akan mengulang ke proses pengulangan awal hingga jumlah elemen dalam koefisien akhir (X) sesuai dengan jumlah maksimal elemen non-zero yang diinginkan. Setelah perulangan selesai maka akan diperoleh koefisien akhir yang jumlah non-zeronya sesuai dengan jumlah aproksimasi yang diinginkan. Koefisien akhir ini akan dilakukan rekonstruksi terakhir untuk memperoleh nilai blok rekonstruksi. Akan tetapi data blok tersebut masih berupa 1 dimensi, perlu dilakukan reshaping untuk mengubahnya kembali menjadi data dimensi.

. Tampilan User Interface User interface dibuat untuk memudahkan dalam memproses data-data tanpa perlu mengedit nilai variabel dalam baris program secara manual. Berikut adalah gambar user interface yang dibuat untuk penelitian ini : Gambar. User Interface

Komponen-komponen yang terdapat pada user interface di atas adalah sebagai berikut : 1. File Input Gambar.1 File Input Box Komponen ini ketika dilakukan klik pada tombol... akan membuka window baru untuk seleksi image secara langsung dari file-file yang ada di dalam komputer. Gambar.1 Window Seleksi Image

Agar hasil optimum, image yang diinput diharapkan grayscale dengan dimensi yang square yang berukuran 1 x 1. Apabila tidak ada image yang diinput atau path image yang dipilih tidak sesuai sehingga file tidak ditemukan, maka ketika proses dijalankan akan terdapat pesan error sebagai berikut :. Blocking Size Input Gambar.1 Pesan Error Gambar.1 Blocking Size Selection Komponen ini akan menentukan jumlah dimensi blocking yang akan dilakukan dalam proses, secara default terpilih 8. Pilihan yang tersedia adalah,, 8, 1,,, 18, dan 1.

8. Input Aproksimasi Gambar.1 Slider Aproksimasi Komponen ini akan menentukan jumlah aproksimasi yang digunakan dalam proses. Untuk mengubahnya cukup digeser dari kiri ke kanan. Kiri untuk menurunkan jumlah aproksimasi yang diinginkan dengan minimum aproksimasi % dan arah kanan untuk menaikkan jumlah aproksimasi yang diinginkan dengan jumlah maksimum aproksimasi %.. Pilihan Dictionary/Basis Gambar.1 Daftar Basis/Dictionary Komponen ini berisikan pilihan basis atau dictionary yang akan digunakan dalam proses, basis yang disediakan hanya yaitu dan Haar Wavelet (dengan label Wavelet). Dan untuk dictionary hanya tersedia Overcomplete.

. Pilihan Jumlah Basis Gambar.18 Slider Basis Komponen ini menentukan jumlah basis yang digunakan dalam proses. Komponen ini hanya aktif ketika dictionary yang digunakan adalah Overcomplete. Bila dipilih basis atau Wavelet maka komponen ini akan didisabled.. Save Image Checkbox Gambar.1 Slider Basis Disabled Gambar. Save Image Checkbox Checkbox ini apabila aktif maka setelah tombol Process diklik, image yang direkonstruksi akan disimpan ke dalam folder /product/. Apabila belum ada folder /product/ maka akan dibuatkan secara otomatis. Bila checkbox non-aktif maka image hasil rekonstruksi tidak disimpan.. Process Button (a) (b) Gambar.1 (a) Process Button Enabled (b) Process Button Disabled

Process Button bila ditekan akan menjalankan proses yang sudah ditentukan berdasarkan input dari komponen-komponen lain. Ketika process button ditekan maka akan dibuat sebuah loading window yang menyatakan proses sedang berjalan. Tombol process didisabled ketika ada loading bar. Gambar. Loading Bar Setelah proses selesai maka akan dimunculkan window baru yang menunjukkan image asli bersebelahan dengan image rekonstruksi. Image asli berada di kiri dan image rekonstruksi di kanan. Gambar. Image Result Window

Pada judul window image result akan terdapat informasi dictionary yang digunakan. 1 Gambar. Title Setelah proses selesai juga dikeluarkan output perhitungan ke komponen output. 8. Output Gambar. Tampilan SNR, PSNR, Time Komponen ini yang menampilkan output SNR, PSNR dan waktu proses.