Segmentasi dengan menggunakan metode Levelset banyak memerlukan proses mulai dari preprocessing sampai segmentasi itu sendiri. Oleh karena itu diperlukan penggunaan hardware yang memadai.
3.1 Penggunaan Hardware yang Disarankan
Penggunaan hardware disarankan untuk menggunakan komputer yang memiliki kecepatan processor tinggi (lebih cepat dari pentium II) atau terkini dan memiliki memori cukup besar (lebih dari 256 MB). Hal ini dibuktikan dalam pengujian pada bab selanjutnya. Dalam Tugas Akhir ini processor yang cepat digunakan untuk menghitung data pada banyak titik. Proses yang dilakukan juga membutuhkan memori yang cukup besar, terutama apabila gambar yang digunakan memiliki ukuran yang besar. Dengan menggunakan komputer yang cukup tua (Pentium II atau lebih kuno), software ini masih dapat dijalankan, tentunya dengan penambahan waktu proses yang cukup besar.
Komputer yang dipergunakan untuk pembuatan Tugas Akhir ini memiliki spesifikasi :
• Pentium IV – 1,5 GHz • Memory 512 MB.
• VGA Card GeForce 4 MX 64 MB
3.2 Perencanaan Software
Software ini adalah software yang dibuat khusus untuk Level Set beserta
proses-proses lainnya yang dibutuhkan agar gambar dapat tersegmentasi dengan baik. Untuk itu diperlukan rancangan dari algoritma yang digunakan. Secara garis besar algoritma digambarkan seperti pada gambar 3.1.
START END Input Gambar PreProcessing Inisialisasi Kurva Inisialisasi berdasar kurva inisialisasi Ubah parameter ? Evolusi Kurva
Tidak Proses berdasar parameter baru Ya
Crop
Simpan hasil
crop ? Ya Save Gambar
Tidak
Input Parameter
Gambar 3.1 Diagram Alir Program Secara Garis Besar Keterangan:
• Input gambar yang akan disegmentasi, setelah nama gambar diinputkan maka gambar akan diload dan ditampilkan di layar. Input berupa file gambar yang mempunyai ekstensi BMP, JPG, atau JPEG.
• Preprocessing disini terdiri dari Grayscaling, Gaussian blur, Hitung KI (Sobel), dan inisialisasi semua variabel yang dibutuhkan. Semua proses tersebut dan akan dibahas lebih lanjut setelah ini.
• Inisialisasi kurva, membuat kurva inisialisasi yang berbentuk lingkaran. Dimana informasi akan didapat dari kurva inisialisasi yang nantinya akan digunakan untuk proses selanjutnya.
• Banyak proses yang membutuhkan data dari kurva inisialisasi, jika kurva inisialisasi telah dibuat maka dilakukan proses-proses seperti hitung
distance, membuat boundary, membuat evolving area. Semua proses
tersebut akan dibahas setelah ini.
• Parameter yang ada yaitu
ε
, Δt, treshold, mode evolusi yang diinginkan dan jumlah iterasi dapat diubah sesuai dengan kebutuhan. Jika tidak ada perubahan maka parameter yang digunakan adalah parameter yang telah ditentukan (default).• Jika ada perubahan pada parameter maka program akan menyetarakan variabel-variabel yang ada dengan input dari user. Terutama parameter
treshold, jika parameter ini berubah maka program akan secara otomatis
menghitung ulang nilai KI dengan treshold sesuai dengan input.
• Evolusi Kurva adalah proses dimana kurva akan berevolusi (mengembang atau mengempis) dengan menggunakan metode Level Set sampai kurva berhenti setelah memenuhi kondisi berhenti (stopping term).
• Setelah kurva berhenti berevolusi maka obyek yang berada didalam kurva akan dicrop atau dikopi ke gambar lain.
• Gambar hasil crop dapat disimpan ke dalam file berbentuk BMP. 3.2.1. Preprocessing
Preprocessing adalah kumpulan proses-proses yang dilakukan sebelum
proses segmentasi agar segmentasi gambar memberikan hasil yang terbaik. Proses
Grayscaling, Gaussian Blur, dan Hitung KI (Sobel) adalah proses-proses yang
termasuk dalam preprocessing. Sesuai dengan Gambar 3.2 maka setiap proses dalam preprocessing pasti dilakukan setelah sebuah file gambar diload. Proses yang pertama kali dilakukan adalah proses Grayscaling. Proses Grayscaling adalah proses untuk mengubah gambar yang memiliki 3 komponen warna (RGB) menjadi 1 komponen warna yaitu Gray-Level. Pada gambar 3.2 dijelaskan cara kerja dari proses ini dalam bentuk diagram alir.
For x = 0 to lebar gambar - 1
For y= 0 to tinggi gambar - 1
Ambil nilai pixel posisi x, y
Pisahkan nilai R, G dan B
Nilai pixel yang baru = 0,299 * R + 0,587 * G + 0,114 * B
Isi nilai pixel posisi , y (R,G,B) = Nilai pixel yang baru
End y
x Grayscaling
Gambar 3.2 Diagram Alir Proses GrayScaling
Gambar yang diubah menjadi Gray-Level akan disamakan nilai masing-masing komponen warnanya yaitu R, G, B. masing-masing-masing-masing komponen tersebut akan diisi dengan satu nilai yang didapat dengan mengalikan setiap komponen warna dengan persentasi tertentu. Kemudian semua hasil dari perhitungan dijumlahkan untuk mendapatkan nilai warna pixel yang baru.
Proses yang selanjutnya adalah proses Gaussian Blur dengan menggunakan Gaussian averaging operator yang telah dijelaskan sebelumnya.
Gaussian Blur merupakan salah satu metode smoothing filter yang baik karena
dapat mengurangi noise tanpa mengurangi detail pada gambar. Gaussian Blur pada proses ini digunakan untuk mempertebal border sehingga lebih mudah untuk mendeteksi obyek pada gambar. Rumus untuk menghirung gaussian blur yaitu
dengan mengalikan nilai hasil grayscaling dengan matriks pada tabel 2.1. Pada Gambar 3.3 dijelaskan cara kerja dari proses ini dalam bentuk diagram alir.
For x = 1 to lebar gambar - 2
For y = 1 to tinggi gambar - 2
Ambil nilai pixel posisi x, y
Pisahkan nilai R, G dan B
Nilai pixel R, G, B yang baru =
((pixel x - 1, y - 1 * 0,37) + (pixel x, y - 1 * 0,61) + (pixel x + 1, y - 1 * 0,37) + (pixel x - 1, y * 0,61) + (pixel x, y * 1) + (pixel x + 1, y * 0,61) + (pixel x - 1, y + 1 * 0,37) + (pixel x, y + 1 * 0,61) + (pixel x + 1, y + 1 * 0,37)) /
4.92
Isi nilai pixel posisi , y (R,G,B) = (R baru, G baru, B baru)
End y
x Gaussian Blur
Gambar 3.3 Diagram Alir Proses Gaussian Blur
Pada proses ini digunakan lebar atau σ dari Gaussian Filter adalah 1. Proses terakhir dalam preprocessing adalah proses Hitung KI dengan menggunakan Sobel seperti yang telah dijelaskan sebelumnya. Sobel digunakan untuk mendeteksi border sebuah obyek pada gambar, nilai hasil sobel akan besar apabila berada pada border, sebaliknya nilainya akan semakin mendekati nol apabila tidak berada pada border. Hasil dari Sobel ini akan digunakan untuk menghitung KI yang telah dijelaskan sebelumnya.
Pada Gambar 3.4 dijelaskan cara kerja proses ini dalam bentuk diagram alir.
Pada Gambar 3.4 hasil perhitungan dari Matrik_Horisontal dan Matrik_Vertikal digabungkan dengan menggunakan operator OR. Penggunaan operator OD untuk mendapatkan nilai border dari dua arah. Hal ini dilakukan untuk mendapatkan border dari obyek secara keseluruhan yaitu secara vertikal dan horisontal.
Dalam sebuah gambar yang memiliki perbedaan warna yang kompleks akan ditemui banyak sekali border di dalamnya, ini dikarenakan banyaknya tingkat gradasi warna. Misalkan pada gambar foto wajah, di daerah wajah orang pasti terdapat banyak sekali perbedaan tingkat gradasi warna, hal ini disebabkan tidak ratanya cahaya yang jatuh di permukaan kulit wajah. Jika segmentasi dilakukan pada seluruh kulit wajah akan sangat sulit karena perbedaan yang sedikit saja sudah membuat proses berhenti. Karena itu diperlukan sebuah parameter treshold sebagai toleransi perbedaan gradasi warna, misal kita memasukkan nilai treshold adalah 25. maka perbedaan gradasi warna yang bernilai sampai dengan 25 akan dijadikan nol atau dianggap tidak ada perbedaan. Hal ini berguna untuk memperluas batas dari obyek yang akan disegmentasi.
Hasil dari perhitungan di atas digunakan untuk menghitung KI. KI bernilai mendekati nol apabila berada pada border, sehingga membuat nilai evolusi kurva sangat kecil seakan-akan kurva berhenti.
3.1.2 Inisialisasi kurva dan inisialisasi berdasar kurva inisialisasi
Pada tahap inisialisasi kurva user diminta untuk membuat kurva yang berbentuk lingkaran sebagai inisialisasi, kurva atau lingkaran inilah yang dinamakan zero Level set Ψ(x,t = 0).
Pada proses inisialisasi berdasar kurva inisialisasi adalah proses awal untuk menghitung distance, inisialisasi boundary dan evolving area.
Distance adalah jarak dari suatu titik terhadap kurva inisialisasi. Distance
adalah komponen yang sangat penting dalam metode Level Set. Dengan distance maka kita dapat mendeteksi di mana kurva berada. Pada Gambar 3.5 dijelaskan proses untuk menghitung distance dalam bentuk diagram alir.
Gambar 3.5 Diagram Alir Hitung Distance
Pada proses untuk menghitung distance digunakan phytagoras untuk menentukan distance dengan menggunakan titik acuan pusat lingkaran (xpusat,ypusat). Jadi perhitungannya adalah jarak = √ ( (i−xpusat)2 + (j−ypusat)2 ), Setelah mendapatkan nilai dari jarak maka diperiksa apakah titik tersebut berada dalam kurva atau tidak, jika titik tersebut berada di dalam kurva maka distance =
(jari-jari lingkaran – jarak) kemudian dikalikan dengan -1 agar mendapatkan nilai negatif sebagai penanda titik tersebut berada di dalam kurva. Sebaliknya jika titik berada di luar kurva maka distance = jarak − jari-jari lingkaran.
Proses yang selanjutnya adalah proses inisialisasi boundary, yang dimaksud dengan boundary adalah kurva itu sendiri yaitu batas antara daerah negatif dan daerah positif. Jika ada satu titik bernilai positif bersebelahan dengan titik yang bernilai negatif maka titik itu dianggap sebagai kurva. Pada Gambar 3.6 dijelaskan cara kerja proses ini dalam bentuk diagram alir.
Gambar 3.6 Diagram Alir Inisialisasi Boundary
Pada proses ini seperti pada Gambar 3.6 terdapat kondisi “IF salah satu tetangga berlawanan tanda”. Yang dimaksud dengan tetangga adalah semua titik yang berjarak 1 terhadap suatu titik. Misalkan suatu titik berada pada posisi x, y maka yang termasuk tetangga dari titik tersebut adalah titik pada posisi (x-1, y-1),
(x, y-1), (x+1, y-1), (x-1, y), (x+1, y), (x-1, y+1), (x, y+1), (x+1, y+1). Pada tetangga inilah diperiksa apakah nilai distance pada titik-titik tersebut ada yang berlawanan tanda. Jika ya maka titik tersebut merupakan suatu boundary dan digambar di layar sebagai titik. Kumpulan dari titik-titik boundary nantinya akan membentuk sebuah kurva.
Proses yang terakhir adalah proses untuk menentukan daerah mana saja yang berevolusi, proses ini menggunakan metode Narrow Band yang telah dijelaskan sebelumnya. Pada proses ini akan diperiksa apakah suatu titik bertetangga dengan boundary, jika ya maka titik tersebut dijadikan evolving area. Pada Gambar 3.7 dijelaskan cara kerja dari proses ini dalam bentuk diagram alir.
3.2.3. Evolusi Kurva
Proses evolusi menggunakan metode Level Set untuk menggerakkan kurva sehingga kurva dapat berkembang sampai memenuhi kondisi untuk berhenti (stoping term). Kurva dapat berkembang dengan 2 mode yakni dengan mode mengembang atau mengempis. Jika mode mengembang dipilih maka kurva inisialisasi harus lebih kecil atau berada di dalam obyek yang ingin disegmentasi, sebaliknya jika dipilih mode mengempis maka kurva inisialisasi harus lebih besar atau mengelilingi obyek yang hendak disegmentasi.
Pada gambar 3.8 dijelaskan cara kerja dari proses ini dalam bentuk diagram alir.
END FOR i =1 to lebar gambar -2
FOR j =1 to tinggi gambar-2
evolving area ?
Tidak Hitung turunan terhadap x,xx,y,yy,xy Ya
K = turunan xx*turunan y2+ 2*turunan x*turunan y*turunan xy + turunan yy*turunan y2/ (turunan x2+turunan y2) 3/2
mode = mengembang
?
Jadikan Nilai K negatif
Jadikan Nilai K positif
Ya
Tidak
F = 1 - ( * KI)
New distance[i,j] = distance[i,j] - t*F
Re-Inisialisasi boundary
j
i Evolusi Kurva
Gambar 3.8 Diagram Alir Evolusi Kurva
Pada gambar 3.8 terdapat hitung turunan x, xx, y, yy, xy. Yang dimaksud dengan x adalah turunan pertama terhadap sumbu x, xx adalah turunan kedua terhadap sumbu x, y adalah turunan pertama terhadap sumbu y, yy adalah turunan kedua terhadap sumbu y, xy adalah turunan terhadap sumbu x dan sumbu y.
Jika dipilih metode mengembang maka nilai K akan diubah menjadi negatif dan sebaliknya jika dipilih mode mengempis maka nilai K diubah menjadi positif. Hal ini dilakukan agar pergerakan kurva menjadi satu arah.
3.2.4 Crop
Proses Crop adalah proses memindahkan atau mengkopi pixel-pixel warna yang telah disegmentasi. Hasil dari crop ini dapat disimpan ke sebuah file dengan ekstensi BMP, sehingga memudahkan pengguna dalam menyimpan gambar tersebut. Pixel yang dikopi adalah semua titik yang mempunyai nilai distance negatif dan semua titik yang termasuk dalam boundary. Pada gambar 3.9 akan dijelaskan cara kerja proses ini dalam bentuk diagram alir.
END FOR i = 0 to lebar gambar-1
FOR j = 0 to tinggi gambar-1
boundary or Negatif ?
Tidak Kopi pixel ke gambar lain Ya
j
i Crop
3.2.5 Perencanaan User Interface
Gambar 3.10 User Interface
User Interface didesain dengan pengaksesan semua fitur pada Menu Bar.
Tombol-tombol yang tersedia : 1. Pada menu file
a. Open Image : untuk membuka atau load file gambar. b. Save Image : untuk menyimpan gambar hasil segmentasi c. Exit : untuk keluar dari program
2. Pada menu view
a. Original Image : menampilkan gambar asli yang akan disegmentasi
b. Gray Image with Gaussian Blur : menampilkan gambar Grayscale yang sudah diproses dengan menggunakan Gaussian Blur.
c. Border Image : untuk menampilkan border dari gambar yang akan disegmentasi
d. Crop Image : untuk menampilkan gambar hasil segmentasi 3. Pada menu Segmentation
a. Parameter : untuk mengubah parameter yang ada. b. Excecute : untuk menjalankan evolusi kurva. 4. Pada menu About