implementasi thresholding citra menggunakan algoritma hybrid ...
implementasi thresholding citra menggunakan algoritma hybrid ...
implementasi thresholding citra menggunakan algoritma hybrid ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
IMPLEMENTASI THRESHOLDING CITRA MENGGUNAKAN<br />
ALGORITMA HYBRID OPTIMAL ESTIMATION<br />
M Hafidh Fauzi 1 , Prof.Ir.Handayani Tjandrasa, M.Sc., Ph.D 2<br />
Jurusan Teknik Informatika, Fakultas Teknologi Informasi<br />
Institut Teknologi Sepuluh Nopember, Surabaya<br />
Email: fauzic16@yahoo.com 1<br />
ABSTRAK<br />
Salah satu metode yang sering digunakan dalam pengolahan <strong>citra</strong> digital atau image processing<br />
adalah <strong>thresholding</strong> <strong>citra</strong>. Thresholding <strong>citra</strong> adalah suatu metode yang digunakan untuk memisahkan antara<br />
obyek dan backgroundnya. Thresholding adalah teknik yang sederhana tapi efektif untuk segmentasi <strong>citra</strong>.<br />
Proses Thresholding sering disebut dengan proses binerisasi. Dalam proses <strong>thresholding</strong> terhadap sebuah <strong>citra</strong>,<br />
hasil yang diperoleh tidak selalu memuaskan dan sesuai dengan keinginan. Hal ini dikarenakan faktor<br />
penghambat seperti pencahayaan yang tidak merata atau <strong>citra</strong> yang kabur yang menyebabkan histogram tidak<br />
bisa dipartisi dengan baik. Banyak metode <strong>thresholding</strong> <strong>citra</strong> yang sudah di kembangkan. Salah satu metode<br />
yang akan akan di <strong>implementasi</strong>kan dalam tugas akhir ini adalah metode <strong>thresholding</strong> <strong>citra</strong> dengan<br />
<strong>menggunakan</strong> <strong>algoritma</strong> <strong>hybrid</strong> optimal estimation. Algoritma ini adalah gabungan dari PSO(particle swam<br />
optimization) yang digunakan untuk globak search, dengan EM(expectation maximization) yang digunakan<br />
untuk mengupdate particle terbaik. Dalam <strong>algoritma</strong> ini estimasi parameter dimasukan ke proses EM yang<br />
diperoleh dari pencarian global melalui PSO untuk mendapatkan titik awal yang cocok untuk EM dan sesuai<br />
dengan GMM. Dalam tugas akhir ini juga akan dilakukan pembandingan antara metode yang dipakai dalam<br />
tugas akhir ini dengan metode <strong>thresholding</strong> <strong>citra</strong> yang lain.<br />
Kata kunci : Thresholding <strong>citra</strong>, <strong>hybrid</strong> optimal estimation, PSO, EM<br />
1. Pendahuluan<br />
Salah satu metode yang sering digunakan<br />
dalam pengolahan <strong>citra</strong> digital atau image<br />
processing adalah <strong>thresholding</strong> <strong>citra</strong>. Thresholding<br />
<strong>citra</strong> adalah suatu metode yang digunakan untuk<br />
memisahkan antara obyek dan backgroundnya.<br />
Thresholding merupakan teknik yang sederhana<br />
dan efektif untuk segmentasi <strong>citra</strong>. Proses<br />
<strong>thresholding</strong> sering disebut dengan proses<br />
binerisasi. Pada beberapa aplikasi pengolahan <strong>citra</strong>,<br />
terlebih dahulu dilakukan threshold terhadap <strong>citra</strong><br />
gray level untuk dapat menjadi <strong>citra</strong> biner (<strong>citra</strong><br />
yang memiliki nilai level keabuan 0 atau 255).<br />
Sebuah <strong>citra</strong> hasil proses <strong>thresholding</strong> dapat<br />
disajikan dalam histogram <strong>citra</strong> untuk mengetahui<br />
penyebaran nilai-nilai intensitas piksel pada suatu<br />
<strong>citra</strong>/bagian tertentu dalam <strong>citra</strong> sehingga untuk<br />
<strong>citra</strong> bimodal, histogram dapat dipartisi dengan baik<br />
(segmentasi objek dengan background) dan dapat<br />
ditentukan nilai threshold-nya.<br />
Distribusi gray level tiap kelas mempunyai<br />
PDF(probabilistic density function) yang<br />
diasumsikan sebagai GMM. Dengan <strong>menggunakan</strong><br />
<strong>algoritma</strong> Hybrid optimal estimation ini yang<br />
merupakan gabungan dari PSO dan EM <strong>algoritma</strong>.<br />
Algoritma ini digunakan untuk menyelesaikan funsi<br />
dari estimasi parameter dari distribusi gaussian.<br />
Algoritma ini digunakan untuk mendapatkan kurva<br />
GMM yang sesuai sehingga membuat proses<br />
<strong>thresholding</strong> <strong>citra</strong> menjadi lebih efektif.<br />
Shu-Kai S dan Yen Lin mengembangkan<br />
suatu <strong>algoritma</strong> baru dalam <strong>thresholding</strong> <strong>citra</strong>.<br />
Algoritma ini dapat melakukan <strong>thresholding</strong><br />
terhdapa <strong>citra</strong> dengan beberapa level. Hal ini<br />
sangant menguntungkan apabila <strong>citra</strong> yang akan<br />
dilakukan <strong>thresholding</strong> itu merupakan <strong>citra</strong> yang<br />
komplek.<br />
Paper ini akan dibagi dalam beberapa<br />
bagian. Bagian 2-6 adalah bagian dari <strong>algoritma</strong><br />
yang akan digunakan dalam melakukan<br />
<strong>thresholding</strong> <strong>citra</strong>, bagian 7 adalah ujicoba terhadap<br />
<strong>algoritma</strong> yang sudah di <strong>implementasi</strong>kan, sedang<br />
kan bagian terakhir adalah kesimpulan.<br />
2. Minimum Error Thresholding<br />
Minimum error <strong>thresholding</strong> adalah salah<br />
satu teknik yang dapat digunakan untuk<br />
mendapatkan nilai threshold suatu image. Nilai<br />
pixel image yang mempunyai rentang interval<br />
antara [0,n], dicari distribusi tiap gray level. Dari<br />
distribusi nilai tersebut akan membentuk suatu<br />
histrogram yang nantinya akan digunakan untuk<br />
mencari nilai dari threshold suatu image.<br />
Minimum error <strong>thresholding</strong> ini<br />
membutuhkan nilai dari estimasi parameter yang<br />
berupa P (k+1) ,µ (k+1) ,dan σ (k+1) dari masing-masing<br />
level/kelas yang sudah diestimasi. Nilai-nilai<br />
terebut akan diproses untuk mendapatkan suatu<br />
threshold dari suatu image. Dimana threshold itu<br />
membari suatu batas antara background dengan<br />
objeknya. Persamaan minimum error threshold<br />
sebagai berikut:
3. Expectation Maximation<br />
Algoritma EM merupakan sebuah metode<br />
optimisasi iteratif untuk estimasi Maksimum<br />
Likelihood (ML) yang berguna dalam<br />
permasalahan data yang tidak lengkap (incomplete<br />
data). Dalam setiap iterasi pada Algoritma EM ini<br />
terdapat 2 tahap, yaitu tahap Ekspektasi atau tahap<br />
E (E step) dan tahap Maksimisasi atau tahap M (M<br />
step). Algoritma EM ini hampir mirip dengan<br />
pendekatan ad hoc untuk proses estimasi dengan<br />
missing data yaitu (1) mengganti missing value<br />
dengan estimated value, (2) mengestimasi<br />
parameter, (3) mengestimasi ulang missing value<br />
tadi dengan <strong>menggunakan</strong> parameter baru yang<br />
diestimasi, (4) mengestimasi ulang parameter, dan<br />
seterusnya berulang-ulang sampai dengan<br />
konvergen terhadap suatu nilai.<br />
Pada tahap E-step dimulai dengan<br />
inisialisasi nilai-nilai dari P (k) ,µ (k) ,σ (k) yang nantinya<br />
akan di lakukan update terus menerus hingga<br />
nilainya konvergen. Ketiga parameter tersebut di<br />
perlukan untuk mencari nilai dari probabilitas dari<br />
gaussian mixture model. Probabilitas tersebut dicari<br />
dengan <strong>menggunakan</strong> persamaan sebagai berikut:<br />
Sedangkan untuk M-step sendiri adalah<br />
proses untuk mengoptimalisasi nilai-nilai dari<br />
P (k+1) ,µ (k+1) ,dan σ (k+1) . Nilai-nilai tersebut terus di<br />
update sampai menghasilkan nilai yang<br />
konvergen.persamaan untuk mengupdate nilai<br />
P (k+1) ,µ (k+1) ,dan σ (k+1) di setiap iterasi adalah sebagai<br />
berkut:<br />
Tahap E-step dan M-step ini terus<br />
dilakuakn sampai mendapatkan nilai likelihood<br />
yang maksimal. Persamaan likelihood bisa dilihat<br />
pada persamaan 2.7<br />
4. Hybrid Particle Swarm Optimization<br />
Algoritma Particle Swarm Optimization<br />
(PSO) diperkenalkan oleh Kennedy dan Eberhart<br />
pada tahun 1995, proses <strong>algoritma</strong>nya diinspirasi<br />
oleh perilaku sosial dari binatang, seperti<br />
sekumpulan burung dalam suatu swarm.<br />
Particle Swarm Optimization (PSO)<br />
mempunyai kesamaan dengan genetic algorithm<br />
yang mana dimulai dengan suatu populasi yang<br />
random dalam bentuk matriks. Namun PSO tidak<br />
memiliki operator evolusi yaitu crossover dan<br />
mutasi seperti yang ada pada genetic algorithm.<br />
Baris pada matriks disebut particle atau dalam<br />
genetic algorithm sebagai kromosom yang terdiri<br />
dari nilai suatu variable. Setiap particle berpindah<br />
dari posisinya semula ke posisi yang lebih baik<br />
dengan suatu velocity<br />
Seperti halnya dengan <strong>algoritma</strong><br />
evolusioner yang lain, <strong>algoritma</strong> PSO adalah<br />
sebuah populasi yang didasarkan penelusuran<br />
inisialisasi particle secara random dan adanya<br />
interaksi diantara particle dalam populasi. Di dalam<br />
PSO setiap particle bergerak melalui ruang solusi<br />
dan mempunyai kemampuan untuk mengingat<br />
posisi terbaik sebelumnya dan dapat bertahan dari<br />
generasi ke generasi. Secara umum persamaan PSO<br />
sebagai berikut:<br />
Dimana r adalah nilai random antara(0-1), w adalah<br />
inertia weight dan C adalah nilai konstan untuk<br />
koefisien akselerasi<br />
5. Hamming Distance<br />
Hamming distance adalah suatu metode untuk<br />
mengukur tingkat error antara histogram <strong>citra</strong><br />
dengan probabilistic distribusi function diaman<br />
parameter dari PDF tersebut diperoleh dengan<br />
estimasi parameter.<br />
6. Algoritma PSO+EM<br />
Algoritma PSO+EM adalah dua metode<br />
pencarian yang digabungkan. Dimana tujuan dari<br />
penggabungan dari kedua metode ini adalah saling<br />
menutupi kelemahan dari masing-masing <strong>algoritma</strong>.<br />
EM lemah dalam penentuan nilai awal (inisialisasi<br />
estimasi parameter). Nilai awal yang buruk
menyebabkan terjadinya local maksimal sehingga<br />
nilai estimasi parameter menjadi tidak maksimal<br />
Sedangkan untuk PSO sendiri adalah<br />
pencarian global, pencarian yang berbasis pada<br />
populasi, sama seperti GA tapi membutuhkan<br />
komputasi yang lebih dibandingkan <strong>algoritma</strong><br />
pencarian yang lain.<br />
Algoritma PSO+EM dimulai dengan<br />
menetukan inisialisasi untuk ukuran populasi<br />
dimana ditentukan dengan persamaan 3N+1.<br />
Dimana N adalah dimensi dari problem yang akan<br />
dicari. Sedangkan untuk nilai N dapat dicari dengan<br />
persamaan N=3d-1. Dimana d adalah jumlah kelas.<br />
Particle sebanyak 3N+1 diurutkan berdasarkan<br />
fungsi fitnes untuk mendapatkan nilai yang paling<br />
baik. Fungsi fitnes disini adalah hamming distance.<br />
Nilai terbaik dari parameter akan dimasukan ke<br />
dalam fungsi EM untuk diupdate. Sedangkan untuk<br />
untuk sisa dari particle yang lain digunakan untuk<br />
mengupdate velocity. Nilai velocity ini untuk<br />
selanjutnya digunakan untuk mengupdate lokasi<br />
dari particle untuk masuk ke iterasi selanjutnya.<br />
Itarasi berhenti sampai memenuhi kondisi dimana<br />
nilai EM konvergen. Dalam hal ini perubahan nilai<br />
likelihhod kurang dari 10 -6 .<br />
Initialisasi populasi berukuran 3N+1<br />
ulangi<br />
1) Evaluasi & meranking seluruh particle. Dari<br />
populasi pilih global best dan catat<br />
lokasinya(parameternya).<br />
2) Lakukan EM update untuk global best dan replace<br />
nilainya dengan nilai yang sudah di update<br />
3) PSO update. Lakukan velocity update untuk 3N<br />
particle<br />
Berakhir sampai kondisi terpenuhi (<strong>algoritma</strong> EM<br />
konvergen)<br />
Gambar 1 procedur <strong>algoritma</strong> PSO+EM<br />
Update velocity<br />
untuk particle<br />
yang lain (3N)<br />
7. Uji Coba<br />
mulai<br />
membuat<br />
populasi sebanyak<br />
3N+1particle<br />
Evaluasi nilai<br />
fitnes tiap particle<br />
Meranking<br />
partikel<br />
berdasarkan nilai<br />
fitnes<br />
Menerapkan EM<br />
untuk<br />
mengupdate nilai<br />
particle terbaik<br />
Apakah update<br />
sukses<br />
ya<br />
Menghitung nilai<br />
likelihood untuk<br />
nilai yang diupdate<br />
tidak<br />
tidak<br />
Apakah likelihood<br />
konvergen?<br />
ya<br />
Memperoleh hasil<br />
yang maksimal<br />
selesai<br />
Fungsi<br />
fitnes<br />
Gambar 2 <strong>algoritma</strong> PSO+EM<br />
membuat solusi<br />
baru secara<br />
random<br />
Dalam uji kali ini, akan dilakukan proses<br />
<strong>thresholding</strong> terhadap suatu <strong>citra</strong> dengan<br />
<strong>menggunakan</strong> <strong>algoritma</strong> yang sudah dijelaskan<br />
diatas. Algoritma untuk <strong>thresholding</strong> ini di<br />
<strong>implementasi</strong>kan <strong>menggunakan</strong> matlab dengan<br />
spesifikasi computer yang digunakan adalah<br />
Intel(R) Pentium(R) 4 CPU 2.00GHz, dengan<br />
alokasi memory sebesar 3012 MB. Citra yang<br />
digunakan disini adalah <strong>citra</strong> gray dengan ukuran<br />
256x256 pixel. Algoritma PSO+EM akan berhenti<br />
kalau perubahan nilai dari likelihood kurang dari<br />
10 -6 .
Pada uji coba yang pertama ini dilakukan<br />
<strong>thresholding</strong> terhadap data <strong>citra</strong> rice.png. dimana<br />
jumlah levelnya adalah 4 dan 7.<br />
1. rice.png<br />
Hamming<br />
distance<br />
3,06 10 -4<br />
threshold 72,83,146<br />
Cpu Time 0.75<br />
Hasil<br />
<strong>thresholding</strong><br />
Grafik<br />
histogram<br />
Hamming<br />
9.0572e-005<br />
distance<br />
threshold 39 49 91 106 123 140<br />
Cpu Time 13.0938<br />
Hasil<br />
<strong>thresholding</strong><br />
Grafik<br />
histogram<br />
Tabel 1 uji coba pada rice.png<br />
Pada hasil ujicoba diatas dapat dilihat<br />
bahwa hasil <strong>thresholding</strong> <strong>citra</strong> <strong>menggunakan</strong><br />
beberapa level yang berbeda. Nilai dari cpu time<br />
berbanding lurus dengan nilai penambahan kelas.<br />
Tetapi hal tersebut berbeda dengan nilai hamming<br />
distance yang semakin kecil bila jumlah kelas<br />
semakin besar.<br />
Pada uji coba kedua ini kita akan<br />
melakukan <strong>thresholding</strong> <strong>citra</strong> pada <strong>citra</strong> babon.png,<br />
dimana jumlah kelas sama yaitu 4 dan 7<br />
2. babon.png<br />
Hamming<br />
distance<br />
6.5319e-005<br />
threshold 85 119 152<br />
Cpu Time 1.6563<br />
Hasil<br />
<strong>thresholding</strong>
Grafik histogram<br />
Hamming<br />
1.9162e-005<br />
distance<br />
threshold 64 77 92 107 129<br />
154<br />
Cpu Time 24.0625<br />
Hasil<br />
<strong>thresholding</strong><br />
Grafik histogram<br />
Tabel 2 uji coba pada babon.png<br />
Pada hasil ujicoba kedua ini sama dengan<br />
uji coba pertama. Dapat dilihat bahwa hasil<br />
<strong>thresholding</strong> <strong>citra</strong> <strong>menggunakan</strong> beberapa level<br />
yang berbeda. Nilai dari cpu time berbanding lurus<br />
dengan nilai penambahan kelas. Tetapi hal tersebut<br />
berbeda dengan nilai hamming distance yang<br />
semakin kecil bila jumlah kelas semakin besar.<br />
Pada uji coba ketiga ini kita akan<br />
melakukan <strong>thresholding</strong> <strong>citra</strong> pada <strong>citra</strong><br />
cameraman.tif , dimana jumlah kelas sama yaitu 4<br />
dan 7<br />
3. camera<br />
man.tif<br />
Hamming<br />
distance<br />
4.1490e-004<br />
threshold 49 91 140<br />
Cpu Time 1.5156<br />
Hasil<br />
<strong>thresholding</strong><br />
Grafik<br />
histogram<br />
gambar hasil threshold<br />
Hamming<br />
2.5233e-004<br />
distance<br />
threshold 43 55 106 110 122 136<br />
Cpu Time 8.0625<br />
Hasil<br />
<strong>thresholding</strong>
Grafik<br />
histogram<br />
Tabel 3 uji coba pada cameraman.tif<br />
Pada hasil ujicoba ketiga ini sama dengan<br />
uji coba pertama dan kedua. Dapat dilihat bahwa<br />
hasil <strong>thresholding</strong> <strong>citra</strong> <strong>menggunakan</strong> beberapa<br />
level yang berbeda. Nilai dari cpu time berbanding<br />
lurus dengan nilai penambahan kelas. Tetapi hal<br />
tersebut berbeda dengan nilai hamming distance<br />
yang semakin kecil bila jumlah kelas semakin<br />
besar.<br />
Pada ujicoba yang terakhir ini adalah<br />
ujicoba tentang hubungan antara nilai inertia weight<br />
terhadap hamming distance.<br />
Citra inputan Inertia Hamming<br />
weight distance<br />
Rice.png 0.1 3.4377e-004<br />
0.2 3.0662e-004<br />
0.3 3.7435e-004<br />
0.4 3.0657e-004<br />
0.5 3.7411e-004<br />
0.6 3.0636e-004<br />
0.7 3.0544e-004<br />
0.8 3.3462e-004<br />
0.9 3.0424e-004<br />
Fruit.png 0.1 3.4376e-004<br />
0.2 3.3823e-004<br />
0.3 3.4046e-004<br />
0.4 3.4035e-004<br />
0.5 2.4110e-004<br />
0.6 2.0792e-004<br />
0.7 2.4556e-004<br />
0.8 2.4221e-004<br />
0.9 2.1496e-004<br />
Lena.jpg 0.1 1.7577e-004<br />
0.2 1.7542e-004<br />
0.3 1.7599e-004<br />
0.4 1.7571e-004<br />
0.5 1.7543e-004<br />
0.6 1.7575e-004<br />
0.7 1.7551e-004<br />
0.8 1.7544e-004<br />
0.9 1.7557e-004<br />
Kubus.bmp 0.1 6.2871e-004<br />
0.2 6.2869e-004<br />
0.3 6.2866e-004<br />
0.4 6.2872e-004<br />
0.5 6.2867e-004<br />
0.6 6.2864e-004<br />
0.7 6.2869e-004<br />
0.8 6.2865e-004<br />
0.9 6.2865e-004<br />
Babon.png 0.1 7.0716e-005<br />
0.2 2.4934e-005<br />
0.3 2.9483e-005<br />
0.4 2.4802e-005<br />
0.5 4.5060e-005<br />
0.6 2.9570e-005<br />
0.7 2.9899e-005<br />
0.8 2.4950e-005<br />
0.9 2.2360e-005<br />
Cameraman.tif 0.1 4.1559e-004<br />
0.2 5.6097e-004<br />
0.3 4.1852e-004<br />
0.4 4.2343e-004<br />
0.5 5.5668e-004<br />
0.6 4.1858e-004<br />
0.7 4.1500e-004<br />
0.8 4.2404e-004<br />
0.9 4.2370e-004<br />
Tabel 4 uji coba terhadap inertia weight<br />
Dalam ujicoba tersebut dapat dilihat<br />
bahwa nilai hamming distance akan berada pada<br />
nilai yang stabil bila nilai dari inertia weight yang<br />
besar.<br />
8. Kesimpulan<br />
Berdasarkan aplikasi yang telah dibuat beserta<br />
ujicoba yang telah dilakukan, maka dapat ditarik<br />
kesimpulan sebagai berikut. Nilai dari running time<br />
<strong>algoritma</strong> <strong>thresholding</strong> <strong>citra</strong> <strong>menggunakan</strong><br />
PSO+EM berbanding lurus dengan jumlah kelas<br />
atau level dari tingkat <strong>thresholding</strong>. Hal itu<br />
berbanding terbalik dengan nilai dari hamming<br />
distance. Semakin besar level maka nilai hamming<br />
distance semakin kecil.<br />
Sedangkan untuk nilai inertia weight disini juga<br />
mempengaruhi dari hamming distance. Dimana<br />
inertia weight yang besar lebih bagus dibandingkan<br />
nilai inertia weight yang kecil.
Daftar Pustaka<br />
[1] Zahara,E.,Fan,S.-K.S.,Tsai,D.-M.,2005.<br />
Optimal multi-<strong>thresholding</strong> using a <strong>hybrid</strong><br />
optimization approach .Pattern Recognition<br />
Lett.26,1082–1095<br />
[2] Kittler, J.,Illingworth,J.,1986.Minimum error<br />
<strong>thresholding</strong>. Patten Recognition Lett.19,41–<br />
47.<br />
[3] Shu-Kai S and Yen Lin, 2007. “A multilevel<br />
<strong>thresholding</strong> approach using a <strong>hybrid</strong><br />
optimal estimation algorithm”. Pattern<br />
Recognition Latters., vol. 28, pp. 662-669<br />
[4] Gonzales, R. C., & Woods, R. E. 2002.<br />
Digital Image Processing. New Jersey:<br />
Prentice-Hall.<br />
[5] Jiulun, fan., Winxin Xie, 1997. Minimum<br />
error <strong>thresholding</strong>: A note. Pattern<br />
Recognition Letters 18 (1997) 705-709<br />
[6] Tuegeh, Maickel., Soeprijanto., H, Purnomo,<br />
Mauridhi.2009. Modified Improved Particle<br />
Swarm Optimization For Optimal Generator<br />
Scheduling. Seminar Nasional Aplikasi<br />
Teknologi Informasi 2009 (SNATI 2009)<br />
[7] Shu-Kai S and Yen Lin, 2007. A fast<br />
estimation method for the generalized<br />
Gaussian mixture distribution On complex<br />
images.ComputerVision and Image<br />
Understanding 113 (2009) 839–853<br />
[8] Shu-Kai S and Yen Lin. 2008. Image<br />
<strong>thresholding</strong> using a novel estimation<br />
method in generalized Gaussian distribution<br />
mixture modeling. Neurocomputing 72<br />
(2008) 500–512<br />
[9] hu, Xiaohui. 2006. Particle Swarm<br />
Optimization, .<br />
[10]Grayscale,.<br />
[11] Statistika komputasi, 2010. <strong>algoritma</strong> EM. ,<<br />
http://statistikakomputasi.wordpress.com/20<br />
10/04/08/analisis-missing-data<strong>menggunakan</strong>-<strong>algoritma</strong>-em-2/,<br />
diakses 18<br />
Juni 2010>