-
Tugas Akhir – KI091391 1
Implementasi Minimisasi l1-l0 untuk Restorasi Citra yang Mengalami Degradasi oleh Derau Gaussian Campuran
(Kata kunci: restorasi, denoising, derau Gaussian Campuran, Derau salt and pepper)
PRESENTASI TUGAS AKHIR – KI091391
Penyusun Tugas Akhir : Suci Istachotil Jannah
(NRP : 5108.100.131)
Dosen Pembimbing : Yudhi Purwananto, S.Kom, M.Kom.
Rully Soelaiman, S.Kom, M.Kom.
02/02/2012
-
• Restorasi atau pengembalian kualitas pada citra adalah permasalahan yang sangat penting dalam pengolahan citra digital, salah satunya adalah masalah denoising
• Setiap jenis derau/noise membutuhkan penangan yang berbeda-beda
• Dibutuhkan metode denoising untuk citra yang terkena degradasi oleh derau Gaussian campuran, yaitu derau Gaussian dan salt and pepper
Tugas Akhir – KI091391 2
LATAR BELAKANG
02/02/2012
-
Tugas Akhir – KI091391 3
RUMUSAN MASALAH
1. Bagaimana memahami konsep dasar dari derau Gaussian campuran
2. Bagaimana merancang algoritma untuk proses restorasi citra yang mengalami degradasi oleh derau Gaussian campuran
3. Bagaimana mengimplementasi algoritma yang telah dirancang
4. Bagaimana menguji coba hasil implementasi yang dilakukan
02/02/2012
-
Tugas Akhir – KI091391 4
BATASAN MASALAH
1. Perbaikan citra dilakukan terhadap citra yang terkena degradasi oleh derau Gaussian dan derau impuls
2. Derau impuls dalam hal ini adalah salt and pepper
3. Citra yang dilakukan untuk pengujian adalah citra abu-abu
4. Sistem perangkat lunak yang digunakan untuk membangun sistem adalah MATLAB 7.6.0 02/02/2012
-
Tujuan dari pembuatan tugas akhir ini adalah membuktikan bahwa proses restorasi citra yang terkena derau Gaussian campuran, dalam hal ini derau Gaussian dan derau salt and pepper, dapat dilakukan dengan menggunakan metode minimisasi l1-l0 .
Tugas Akhir – KI091391 5
TUJUAN
02/02/2012
-
Tugas Akhir – KI091391 6
GAMBARAN UMUM APLIKASI
Learning Dictionary Menggunakan MK-SVD
Rekonstruksi citra derau via minimisasi l1-l0
Citra derau Gaussian + salt and pepper Citra hasil
denoising
Denoising + Pembentukan matriks karakteristik dengan AMF
02/02/2012
Hitung PSNR
-
Tugas Akhir – KI091391 7
GAMBARAN UMUM APLIKASI
Learning Dictionary Menggunakan MK-SVD
Rekonstruksi citra derau via minimisasi l1-l0
Citra derau Gaussian + salt and pepper Citra hasil
denoising
02/02/2012
Hitung PSNR
Denoising + Pembentukan matriks karakteristik dengan AMF
-
Reduksi Derau + Pembentukkan Matriks karakteristik Menggunakan Adaptive Median Filter (AMF)
Tugas Akhir – KI091391 8
Membaca citra abu-abu Inisialisasi wmax dan
matriks padding
Copy citra inputan ke matriks padding
Citra derau Gaussian + salt and pepper
02/02/2012
Deteksi meggunakan AMF
-
Tugas Akhir – KI091391 9 02/02/2012
Proses 1
1 • f(i,j) = 103, w = 3,
Karakteristik matriks X
2
• Piksel dalam window= 87,89,93,94,98,101,103,105,106 (setelah diurutkan)
3 • Hitung nilai Smin = 87
4 • Hitung nilai Smax = 106
5 • Hitung nilai Smed = 98
Proses Adaptive Median Filter (AMF)
Citra f
-
Tugas Akhir – KI091391 10 02/02/2012
Proses 1 Proses 2 Proses 3
• If Smin
-
Tugas Akhir – KI091391 11 02/02/2012
Proses 1 Proses 3
• If w≤wmax Go to proses 2 • Else %f(i,j) derau f(i,j) = Smed X(i,j)=0
Proses Adaptive Median Filter (AMF)
Citra f
-
Tugas Akhir – KI091391 12 02/02/2012
Proses 1 Proses 3 Proses 4
• If Smin
-
Tugas Akhir – KI091391 13
GAMBARAN UMUM APLIKASI
Rekonstruksi citra derau via minimisasi l1-l0
Citra derau Gaussian + salt and pepper Citra hasil
denoising
Denoising + Pembentukan matriks karakteristik dengan AMF
02/02/2012
Hitung PSNR
Learning Dictionary Menggunakan MK-SVD
-
MK-SVD
Tugas Akhir – KI091391 14 02/02/2012
Inisialisasi Dictionary + representasi sinyal
Sparse Coding (OMP)
Update Dictionary Per atom tiap iterasi
-
Update Dictionary Per atom tiap iterasi
Sparse Coding (OMP)
MK-SVD
Tugas Akhir – KI091391 15 02/02/2012
MK-SVD
Inisialisasi Dictionary + representasi sinyal
-
MK-SVD Sparse coding Update
Dictionary
Inisialisasi Dictionary
• Menggunakan DCT (Discreate Cosine Transform) Overcomplete Dictionary
• Dictionary terdiri dari kolom-kolom atom
02/02/2012 Tugas Akhir – KI091391 16
Learning Dictionary Menggunakan MK-SVD
Inisialisasi Riju dan RijX
• Riju, representasi sinyal dari citra u
• RijX, representasi sinyal dari matriks karakteristik
-
Inisialisasi Dictionary + representasi sinyal
MK-SVD
Tugas Akhir – KI091391 17 02/02/2012
Update Dictionary Per atom tiap iterasi
Sparse Coding (OMP)
-
Diberikan D, RijU, dan RijX, Bagaimana menemukan Koefisien Matriks Sparsity ?
Tugas Akhir – KI091391 18
Sparse Coding
02/02/2012
Tugas Akhir – KI091391 18
MK-SVD Sparse coding Update
Dictionary
D, RijU, dan RijX
Pilih dk (kolom ke-k)dengan rejeksi Maksimal pada residual
Hitung :
Update Residual residual≤error
keluar
yes
No
Penyeleseiannya dengan menggunakan metode OMP (Orthogonal Matching Pursuit) yang mempunyai karakteristik greedy
α
α
-
Inisialisasi Dictionary + representasi sinyal
MK-SVD
Tugas Akhir – KI091391 19 02/02/2012
Sparse Coding (OMP)
Update Dictionary Per atom tiap iterasi
-
Diberikan D, Riju, RijX, untuk tiap atom wl
MK-SVD Sparse coding Update
Dictionary
02/02/2012 Tugas Akhir – KI091391 20
Update Dictionary
Hitung nilai residual (error)
Update menggunakan
α
-
Tugas Akhir – KI091391 21
GAMBARAN UMUM APLIKASI
Learning Dictionary Menggunakan MK-SVD
Citra derau Gaussian + salt and pepper Citra hasil
denoising
Denoising + Pembentukan matriks karakteristik dengan AMF
02/02/2012
Hitung PSNR
Rekonstruksi citra derau via minimisasi l1-l0
-
• Untuk tiap-tiap piksel, lakukan komputasi fungsi berikut:
Rekonstruksi Citra
Tugas Akhir – KI091391 22 02/02/2012
-
Rekonstruksi citra derau via minimisasi l1-l0
Tugas Akhir – KI091391 23
GAMBARAN UMUM APLIKASI
Learning Dictionary Menggunakan MK-SVD
Citra derau Gaussian + salt and pepper Citra hasil
denoising
Denoising + Pembentukan matriks karakteristik dengan AMF
02/02/2012
Hitung PSNR
-
• Cari nilai MSE
• Hitung PSNR dengan fungsi
Perhitungan PSNR
02/02/2012 Tugas Akhir – KI091391 24
-
02/02/2012 Tugas Akhir – KI091391 25
Tampilan Antar Muka
Figure 1 Citra Inputan
Figure 2 Hasil Proses AMF
Figure 3 Citra keluaran
-
• Membandingkan hasil denoising (dari PSNR) antara citra uji dengan pamater input derau yang berbeda-beda
• Citra yang digunakan adalah Barbara.png, Boat.png, dan Lena.png
• Ketentuan : 1. Mengubah nilai standar devisiasi dari derau Gaussian
yang dilakukan terhadap citra yang memiliki level salt and pepper sama dengan 0.03
2. Mengubah nilai standar deviasi dari derau Gaussian yang dilakukan terhadap citra yang memiliki level salt and pepper sama dengan 0.07
SKENARIO UJI COBA
Tugas Akhir – KI091391 26 02/02/2012
-
UJI COBA 1
Tugas Akhir – KI091391 27
Perbandingan hasil denoising dengan standar deviasi sama dengan 5 dan level salt and pepper sama dengan 0.03
02/02/2012
Citra Derau AMF Proses Perbaikan PSNR = 20.1633
PSNR = 24,963
PSNR = 22,9275
PSNR = 20,4693
PSNR = 25,3433
PSNR = 24,4875
PSNR = 20,4792
PSNR = 25,7692
PSNR = 25,529
-
Citra derau AMF Proses Perbaikan PSNR = 17,30
PSNR = 20,235
PSNR = 24,0415
PSNR = 17,3931
PSNR = 20,3314
PSNR = 26,785
PSNR = 17,424
PSNR = 20,5001
PSNR = 29,2025
UJI COBA 2
Tugas Akhir – KI091391 28
Perbandingan hasil denoising dengan standar deviasi sama dengan 25 dan level salt and pepper sama dengan 0.03
02/02/2012
-
Citra derau AMF Proses Perbaikan PSNR = 13,2246
PSNR = 15,6263
PSNR = 21,966
PSNR = 13,2704
PSNR = 15,5029
PSNR = 23,3478
PSNR = 13,2952
PSNR = 15,68
PSNR = 25,1228
UJI COBA 3
Tugas Akhir – KI091391 29
Perbandingan hasil denoising dengan standar deviasi sama dengan 50 dan level salt and pepper sama dengan 0.03
02/02/2012
-
Citra Derau AMF Proses perbaikan PSNR = 16,75
PSNR = 21,51
PSNR = 22,8879
PSNR = 16, 9571
PSNR = 21,5381
PSNR = 24,5359
PSNR = 16,936
PSNR = 21,80
PSNR = 25,6357
UJI COBA 4
Tugas Akhir – KI091391 30
Perbandingan hasil denoising dengan standar deviasi sama dengan 5 dan level salt and pepper sama dengan 0.07
02/02/2012
-
Citra Derau AMF Proses perbaikan PSNR = 15,1513
PSNR = 18,90
PSNR = 23,9245
PSNR = 15,3013
PSNR = 18,9671
PSNR = 26,5813
PSNR = 15,304
PSNR = 19,0172
PSNR = 29,0613
UJI COBA 5
Tugas Akhir – KI091391 31
Perbandingan hasil denoising dengan standar deviasi sama dengan 25 dan level salt and pepper sama dengan 0.07
02/02/2012
-
Citra Derau AMF Proses Perbaikan PSNR = 12,2723
PSNR = 15,1607
PSNR = 22,044
PSNR = 12,3371
PSNR = 15,0489
PSNR = 23,3274
PSNR = 12,3367
PSNR = 15,1969
PSNR = 25,080
UJI COBA 6
Tugas Akhir – KI091391 32
Perbandingan hasil denoising dengan standar deviasi sama dengan 50 dan level salt and pepper sama dengan 0.07
02/02/2012
-
• Dari tabel gambar dapat dilihat bahwa semakin tinggi nilai standar deviasi, maka citra hasil keluaran minimisasi l1-l0 menjadi blur
02/02/2012 Tugas Akhir – KI091391 33
Analisis Output
-
Analisis Output
02/02/2012 Tugas Akhir – KI091391 34
σ Proses Citra
Barbara S = 0,03
Barbara S = 0,07
Boat S = 0,03
Boat S = 0,07
Lena S = 0,03
Lena S = 0,07
σ = 5
Citra Derau 20,163 16,75 20,469 16,957 20,479 16,936
AMF 24,963 21,51 25,343 21,538 25,769 21,8 l1-l0 22,927 22,887 24,487 24,535 25,529 25,635
σ = 25
Citra Derau 17,3 15,1513 17,393 15,303 17,424 15,304
AMF 20,235 18,9 20,331 18,967 20,500 19,017 l1-l0 24,415 23,924 26,785 26,581 29,202 29,061
σ = 50
Citra Derau 13,224 12,272 13,270 12,337 13,295 12,336
AMF 15,626 15,161 15,503 15,049 15,68 15,197 l1-l0 21,966 22,044 23,347 23,327 25,122 25,080
Tabel Perbandingan PSNR pada Masing-masing Uji Coba
-
Analisis Output
02/02/2012 Tugas Akhir – KI091391 35
5 25 500
5
10
15
20
25
Sigma
PS
NR
barbara;s=0.03barbara;s=0.07boat;s=0.03boat;s=0.07lena;s=0.03lena;s=0.07
5 25 500
5
10
15
20
25
30
Sigma
PS
NR
Barbara;s=0.03Barbara;s=0.07Boat;s=0.03Boat;s=0.07Lena;s=0.03Lena;s=0.07
Grafik PSNR Tiap Citra Input
Grafik PSNR Citra Hasil AMF
-
• Pada citra input, semakin tinggi nilai standar deviasi dan level salt and pepper yang diberikan, maka semakin rendah nilai PSNR
• Setelah proses (AMF), PSNR untuk masing-masing citra mengalami peningkatan. Ini artinya, sebagian derau dari citra masukan terebut berhasil direduksi.
Analisis Output
02/02/2012 Tugas Akhir – KI091391 36
-
02/02/2012 Tugas Akhir – KI091391 37
Analisis Output
5 25 500
5
10
15
20
25
30
Sigma
PS
NR
Barbara;s=0.03Barbara;s=0.07Boat;s=0.03Boat;s=0.07Lena;s=0.03Lena;s=0.07
Grafik PSNR Citra Proses AMF
Grafik PSNR Citra Hasil l0-l1
5 25 500
5
10
15
20
25
30
Sigma
PS
NR
Barbara;s=0.03Barbara;s=0.07Boat;s=0.03Boat;s=0.07Lena;s=0.03Lena;s=0.07
-
02/02/2012 Tugas Akhir – KI091391 38
Analisis Output
5 25 500
5
10
15
20
25
30
Sigma
PS
NR
Barbara;s=0.03Barbara;s=0.07Boat;s=0.03Boat;s=0.07Lena;s=0.03Lena;s=0.07
Grafik PSNR Citra Proses AMF
Grafik PSNR Citra Hasil l0-l1
5 25 500
5
10
15
20
25
30
Sigma
PS
NR
Barbara;s=0.03Barbara;s=0.07Boat;s=0.03Boat;s=0.07Lena;s=0.03Lena;s=0.07
5 25 500
5
10
15
20
25
Sigma
PS
NR
barbara;s=0.03barbara;s=0.07boat;s=0.03boat;s=0.07lena;s=0.03lena;s=0.07
-
• Pada setiap citra dari proses AMF ke minimisasi l0-l1 mengalami peningkatan PSNR, kecuali pada standar deviasi sama dengan 5 dan level salt and pepper sama dengan 0.03
• Ketika standar deviasi sama dengan 5 dan level salt and pepper sama dengan 0,03 hasil uji coba menunjukkan ada penurunan PSNR dari proses AMF ke proses minimisasi. Namun secara fisik, derau pada citra output hilang. Hanya saja tingkat kecerahan citra menjadi lebih rendah. Sedangkan pada uji coba lainnya mengalami peningkatan nilai PSNR.
Analisis Output
02/02/2012 Tugas Akhir – KI091391 39
-
• Dari grafik untuk metode minimisasi l1-l0, nilai PSNR tertinggi adalah pada saat standar deviasi sama dengan 25 dan level salt and pepper sama dengan 0,03. Sedangkan nilai PSNR terendah untuk adalah ketika standar deviasi sama dengan 50 dan level salt and pepper sama dengan 0,07
02/02/2012 Tugas Akhir – KI091391 40
Analisis Output
-
• Derau Gaussian campuran, dalam hal ini derau Gaussian dan salt and pepper, dapat membuat degradasi pada citra sehingga menyebabkan penurunan kualitas citra.
• Proses restorasi terhadap citra yang terkena derau Gaussian campuran dapat dilakukan dengan menggunakan metode denoising tiga fase via minimisasi l1-l0.
• Dari hasil uji coba dapat diketahui bahwa metode yang diajukan dapat melakukan proses restorasi dengan baik kecuali pada saat standar deviasi sama dengan 5 dan level salt and pepper sama dengan 0,03.
KESIMPULAN (1)
Tugas Akhir – KI091391 41 02/02/2012
-
• Tingkat keberhasilan (diukur dengan menggunakan PSNR) pada metode ini bergantung standar deviasi dan level salt and pepper yang dimiliki oleh citra masukkan.
• Inisialisasi standar deviasi mempengaruhi hasil yang didapat pada sistem, dimana standar deviasi yang terlalu tinggi menyebabkan fitur asli citra rusak sehingga membuat citra keluaran menjadi blur.
• Inisialisasi level salt and pepper mempengaruhi hasil PSNR yang didapat pada sistem, dimana jika level salt and pepper tinggi maka PSNR citra akan rendah dan tentunya hasil PSNR setelah proses denoising akan rendah pula.
KESIMPULAN (2)
Tugas Akhir – KI091391 42 02/02/2012
-
• Perlu dilakukan uji coba yang mendalam untuk mengetahui efektivitas hasil perbaikan dengan metode denoising tiga fase via minimisasi l1-l0, terutama untuk mengetahui inisialisasi parameter-parameter yang dibutuhkan untuk memperbaiki citra dengan derau campuran Gaussian-salt and pepper.
• Perlu dikembangkan sebuah metode baru yang dapat secara otomatis memberikan inisialisasi parameter-parameter derau awal dengan baik sehingga dapat menghasilkan kualitas citra yang baik pada setiap kondisi citra derau yang diberikan.
• Perlu dikembangkan sebuah metode baru yang dapat menghilangkan derau tanpa melihat parameter derau.
SARAN
Tugas Akhir – KI091391 43 02/02/2012
-
SELESAI
Tugas Akhir – KI091391 44
TERIMA KASIH
02/02/2012
-
• kondisi l1 digunakan untuk penghilangan derau impuls dan kondisi l0 digunakan untuk representasi sparse Dictionary dari patch citra
02/02/2012 Tugas Akhir – KI091391 45
Minimisasi l1-l0
-
• Sparse Coding
• Update Dictionary set E = kemudian, d = kolom pertama u dan koefisien α = V x ∆ (1,1) • Rekonstruksi citra menggunakan Final Averaging
02/02/2012 Tugas Akhir – KI091391 46
K-SVD
-
• Efektif untuk training dictionary overcomplete untuk representasi sinyal sparse
• Efektif digunakan saat jumlah training sinyal sangat besar
• Dengan K-SVD citra dapat didekomposisi menjadi ribuan patc citra
02/02/2012 Tugas Akhir – KI091391 47
K-SVD
-
• AMF adalah salah satu pengembangan dari Median Filter dimana pada AMF, ukuran window dapat berubah sampai ukuran maksimal.
• AMF digunakan untuk menangani citra yang terkena derau salt and pepper.
• Pada sistem ini juga digunakan untuk membentuk matriks karakteristik, yang memiliki informasi lokasi piksel yang terkena derau salt and pepper.
Adaptive Median Filter (AMF)
02/02/2012 Tugas Akhir – KI091391 48
-
Gambaran Algoritma AMF
Untuk setiap piksel pada lokasi i,j , lakukan 1. Inisialisasi ukuran pertama dari window, w=3,
karakteristik matriks X 2. Hitung nilai Smin, Smed, dan Smax yang merupakan
nilai minimum, median, dan maksimum dari piksel-piksel yang ada dalam window.
3. if Smin
-
• Pengkodean sejumlah sinyal yang besar dengan Dictionary yang sama
• Greedy OMP memilih atom pada tiap iterasinya dengan korelasi tertinggi terhadap current residual
• Ketika sebuah atom dipilih, sinyal orthogonal direpresentasikan pada rentang atom yang dipilih kemudian residual diperbaruhi kembali untuk iterasi selanjutnya.
• Untuk mengidentifikasi sinyal yang ideal perlu untuk memilih kolom dictionary dan ini membutuhkan greedy.
• OMP dapat memulihkan sinyal sparse yang diberikan di dalam sebuah set random linear.
• OMP, tidak ada komponen zero yang dipilih (diperlukan aturan stop)
Sparse Coding
02/02/2012 Tugas Akhir – KI091391 51
-
Pertama tetapkan nilai koefisien , dan untuk setiap setiap atom dl , l = 1,2,3,,,K
a. Pilih patch wl yang menggunakan atom ini, wl = b. Untuk setiap wl hitung nilai residual (error) dengan
menggunakan fungsi di bawah ini
c. Set
d. Update dl dengan menggunakan
Update Dictionary
02/02/2012 Tugas Akhir – KI091391 52
-
• Rekontruksi citra berdasarkan hasil matriks karakteristik, seperti pada fungsi dibawah ini
• β adalah koeficient weight dari l1 yang terkena salt and pepper. Nilai bergantung langsung pada akurasi deteksi dengan menggunakan median filter.
Rekonstruksi Citra via l1-l0 minimisasi
02/02/2012 Tugas Akhir – KI091391 53
-
02/02/2012 Tugas Akhir – KI091391 54
implementasi
1 Inp=imread('house.png'); 2 if(length(size(Inp))>2) 3 Inp = rgb2gray(Inp); 4 End 5 Inp=im2double(Inp); 6 if (max(Inp(:))
-
1 W=3; 2 for w=W:2:WMax 3 w_pad = floor(w/2); 4 window=zeros(w*w); 5 a=1;
6 for i = x - w_pad:x + w_pad
7 for j = y - w_pad : y + w_pad
8 if i>0 && j>0
9 window(a)=M_pad(i,j);
10 a=a+1; 11 end 12 end 13 end 14 urut=sort(window); 15 SMed = urut(ceil((w*w)/2));
implementasi
02/02/2012 Tugas Akhir – KI091391 55
16 Amed=SMed; 17 SMax=max(max(window)); 18 SMin=min(min(window)); 19 CM=0; 20 if SMin
-
02 Februari 2012 56
IMPLEMENTASI
Pembentukan Riju, RijX
1 if(prod([NN1,NN2]-bb+1)> maxNumBlocksToTrainOn)
3 randPermutation = randperm(prod([NN1,NN2]-bb+1));
4
selectedBlocks = randPermutation(1:maxNumBlocksToTrainOn);
5 blkMatrix = zeros(bb^2,maxNumBlocksToTrainOn);
6 blkCharMatrix = zeros(bb^2,maxNumBlocksToTrainOn);
7 for i = 1:maxNumBlocksToTrainOn
8
[row,col] = ind2sub(size(Image)-bb+1,selectedBlocks(i));
9 currBlock = Image(row:row+bb-1,col:col+bb-1);
10 currBlock_CharM = Char_M(row:row+bb-1,col:col+bb-1);
11 blkMatrix(:,i) = currBlock(:);
12 blkCharMatrix(:,i) = currBlock_CharM(:);
13 end 14 Else
15 blkMatrix = im2col(Image,[bb,bb],'sliding');
16 blkCharMatrix = im2col(Char_M,[bb,bb],'sliding');
17 End 02/02/2012 56 Tugas Akhir – KI091391
-
02 Februari 2012 57
IMPLEMENTASI
Pembentukan Dictionary 1 Pn=ceil(sqrt(K));
2 DCT=zeros(bb,Pn);
3 for k=0:1:Pn-1,
4 V=cos([0:1:bb-1]'*k*pi/Pn);
5 if k>0, V=V-mean(V); end;
6 DCT(:,k+1)=V/norm(V);
7 end;
8 DCT=kron(DCT,DCT);%[8x8,16x16]=[64 256]
9
10 param.initialDictionary = DCT(:,1:param.K );
02/02/2012 57 Tugas Akhir – KI091391
-
02 Februari 2012 58
IMPLEMENTASI
Sparse Coding
1 function [A]=OMPerr(D,X, CM,errorGoal)
2 3 [n,P]=size(X); 4 [n,K]=size(D); 5 E2 = errorGoal^2*n; 6 maxNumCoef = n/2;
7 A = sparse(size(D,2),size(X,2));
8 X=X.*CM; 9 for k=1:1:P, 10 a=[]; 11 x=X(:,k); 12 cnoise=CM(:,k); 13 residual=x; 14 indx = []; 15 a = [];
16 currResNorm2 = sum(residual.^2);
17 j = 0;
18 while currResNorm2>E2 & j < maxNumCoef,
19 j = j+1; 20 proj=D'*residual;
21
pos=find(abs(proj)==max(abs(proj)));
22 pos=pos(1); 23 indx(j)=pos;
24 a=pinv(D(:,indx(1:j)))*x;
25
residual=x-(D(:,indx(1:j)).*(cnoise*ones(1,j)))*a;
26 currResNorm2 = sum(residual.^2);
27 end; 28 if (length(indx)>0) 29 A(indx,k)=a; 30 End 31 end; 32 return;
58 Tugas Akhir – KI091391
-
02/02/2012 Tugas Akhir – KI091391 59
IMPLEMENTASI
Sparse Coding
1 function [A]=OMPerr(D,X, CM,errorGoal)
2 3 [n,P]=size(X); 4 [n,K]=size(D); 5 E2 = errorGoal^2*n; 6 maxNumCoef = n/2;
7 A = sparse(size(D,2),size(X,2));
8 X=X.*CM; 9 for k=1:1:P, 10 a=[]; 11 x=X(:,k); 12 cnoise=CM(:,k); 13 residual=x; 14 indx = []; 15 a = [];
16 currResNorm2 = sum(residual.^2);
17 j = 0;
18 while currResNorm2>E2 & j < maxNumCoef,
19 j = j+1; 20 proj=D'*residual;
21
pos=find(abs(proj)==max(abs(proj)));
22 pos=pos(1); 23 indx(j)=pos;
24 a=pinv(D(:,indx(1:j)))*x;
25
residual=x-(D(:,indx(1:j)).*(cnoise*ones(1,j)))*a;
26 currResNorm2 = sum(residual.^2);
27 end; 28 if (length(indx)>0) 29 A(indx,k)=a; 30 End 31 end; 32 return;
Penggunaaan Algoritma Greedy
-
02/02/2012 Tugas Akhir – KI091391 60
IMPLEMENTASI
Sparse Coding
1 function [A]=OMPerr(D,X, CM,errorGoal)
2 3 [n,P]=size(X); 4 [n,K]=size(D); 5 E2 = errorGoal^2*n; 6 maxNumCoef = n/2;
7 A = sparse(size(D,2),size(X,2));
8 X=X.*CM; 9 for k=1:1:P, 10 a=[]; 11 x=X(:,k); 12 cnoise=CM(:,k); 13 residual=x; 14 indx = []; 15 a = [];
16 currResNorm2 = sum(residual.^2);
17 j = 0;
18 while currResNorm2>E2 & j < maxNumCoef,
19 j = j+1; 20 proj=D'*residual;
21
pos=find(abs(proj)==max(abs(proj)));
22 pos=pos(1); 23 indx(j)=pos;
24 a=pinv(D(:,indx(1:j)))*x;
25
residual=x-(D(:,indx(1:j)).*(cnoise*ones(1,j)))*a;
26 currResNorm2 = sum(residual.^2);
27 end; 28 if (length(indx)>0) 29 A(indx,k)=a; 30 End 31 end; 32 return;
Hasil Orthogonalisasi selected atom
-
02 Februari 2012 61
IMPLEMENTASI
Update Dictionary
1
function [betterDictionaryElement,CoefMatrix, NewVectorAdded] = I_findBetterDictionaryElement(Data,Dictionary,j,CoefMatrix, CharMatrix,numCoefUsed)
2 if (length(who('numCoefUsed'))==0) 3 numCoefUsed = 1; 4 end
5 relevantDataIndices = find(CoefMatrix(j,:)); 6 if (length(relevantDataIndices)
-
• Sparse Coding Diberikan D, Riju dan RijX, maka tentukan koefisien
matriks sparsity α dengan Menggunakan OMP (Orthogonal Matching Pursuit).
• Update Dictionary Diberikan D dan α, maka update kolom Dictionary per
atomnya.
Learning Dictionary Menggunakan MK-SVD
02/02/2012 Tugas Akhir – KI091391 50
K-SVD
-
02 Februari 2012 62
IMPLEMENTASI
Update Dictionary (2) 1
function [atom,coef_j]=Imin(E,CM,atom,coef_j)
2 3 [m,n]=size(E); 4 oldatom=zeros(size(atom)); 5 finalcoef_j=coef_j; 6 finalatom=atom; 7 iter=0; 8 error=1; 9 while error>0.0001&iter
-
02 Februari 2012 63
IMPLEMENTASI
Rekonstruksi Citra
1 w_b=0; 2 for b_i =1:NN1 3 for b_j=1:NN2 4 if Char_M(b_i,b_j) == 0
5 w_b = w_b+Weight(b_i,b_j);
6 end 7 end 8 end
Implementasi beta 1 for itr_i=1:NN1 2 for itr_j=1:NN2 3 if Char_M(itr_i,itr_j)==1
4
M(itr_i,itr_j)=(Image(itr_i,itr_j)+0.034*sigma*IMout(itr_i,itr_j))/(0.034*sigma*Weight(itr_i,itr_j));%23,3943/0,02 24,2 tinggi
5 else
6
a=(IMout(itr_i,itr_j)/Weight(itr_i,itr_j))-Image(itr_i,itr_j);
7 b=w_b/(2*(Weight(itr_i,itr_j)));
8 M(itr_i,itr_j)= Image(itr_i,itr_j)+shrink(a,b);
9 end 10 end 11 end 12 IOut = M;
Algoritma minimisasi
63
Implementasi Untuk Xij =1
Tugas Akhir – KI091391
-
02/02/2012 Tugas Akhir – KI091391 64
IMPLEMENTASI
Rekonstruksi Citra
1 w_b=0; 2 for b_i =1:NN1 3 for b_j=1:NN2 4 if Char_M(b_i,b_j) == 0
5 w_b = w_b+Weight(b_i,b_j);
6 end 7 end 8 end
Implementasi beta 1 for itr_i=1:NN1 2 for itr_j=1:NN2 3 if Char_M(itr_i,itr_j)==1
4
M(itr_i,itr_j)=(Image(itr_i,itr_j)+0.034*sigma*IMout(itr_i,itr_j))/(0.034*sigma*Weight(itr_i,itr_j));%23,3943/0,02 24,2 tinggi
5 else
6
a=(IMout(itr_i,itr_j)/Weight(itr_i,itr_j))-Image(itr_i,itr_j);
7 b=w_b/(2*(Weight(itr_i,itr_j)));
8 M(itr_i,itr_j)= Image(itr_i,itr_j)+shrink(a,b);
9 end 10 end 11 end 12 IOut = M;
Algoritma minimisasi
Implementasi Untuk Xij = 0
-
02/02/2012 Tugas Akhir – KI091391 65
IMPLEMENTASI
Hitung Nilai PSNR
PSNRIn = 20*log10(255/sqrt(mean((IG(:)-Input(:)).^2)));
PSNROut_SP = 20*log10(255/sqrt(mean((u(:)-Input(:)).^2)));
PSNROut = 20*log10(255/sqrt(mean((IoutAdaptive(:)-Input(:)).^2)));
Citra Derau
Citra hasil AMF
Hasil Akhir