9
Perbandingan Deteksi Tepi Canny Menggunakan Global Thresholding dengan Mean, Global Thresholding dengan Median, dan Hysteresis Thresholding Intan Nurjanah 13516131 1 1 Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung E-mail: [email protected] Abstract. Mengidentifikasi fitur dalam citra yang relevan untuk memperkirakan struktur dan properti objek dalam suatu pemandangan merupakan tahap awal dalam pengolahan citra. Deteksi tepi seringkali merupakan langkah pertama dalam memulihkan informasi dari citra untuk menangkap penampakan garis batas atau objek dalam citra. Metode deteksi tepi Canny menjadi salah satu metode deteksi yang terkenal karena kemampuannya yang dapat menghasilkan tepi dengan ketebalan 1 pixel. Akan tetapi, dalam praktiknya, algoritma deteksi tepi memiliki beberapa metode pengambangan (thresholding) untuk menghasilkan tepi dengan ketebalan 1 pixel tersebut. Makalah ini akan membandingkan hasil metode global thresholding dengan mean dan median dan hysteresis thresholding. 1. Pendahuluan Tahap awal dalam pengolahan citra adalah mengidentifikasi fitur dalam citra yang relevan untuk memperkirakan struktur dan properti objek dalam suatu pemandangan (scene). Tepi adalah salah satu fitur tersebut. Tepi adalah perubahan lokal yang signifikan pada citra dan merupakan fitur penting untuk menganalisis citra. Tepi biasanya terjadi pada batas antara dua wilayah berbeda dalam suatu citra. Deteksi tepi seringkali merupakan langkah pertama dalam memulihkan informasi dari citra. Pendeteksian tepi bertujuan untuk menangkap penampakan garis batas atau objek di dalam citra. Salah satu metode deteksi tepi yang terkenal adalah metode deteksi tepi Canny. Deteksi tepi Canny dapat menghasilkan tepi dengan ketebalan 1 pixel [1]. Salah satu masalah dalam algoritma deteksi tepi Canny adalah bahwa kita perlu menentukan ambang (threshold) batas atas dan batas bawah. Cara memilih nilai ambang tersebut akan mempengaruhi kualitas tepi yang terdeteksi. Dalam makalah ini, penulis akan membandingkan beberapa metode sederhana yang dapat digunakan untuk secara otomatis menentukan nilai ambang pada deteksi tepi Canny. 2. Dasar Teori 2.1. Konversi Citra Berwarna ke Citra Grayscale Untuk mengubah warna RGB (Red, Green, Blue) menjadi grayscale dengan mempertahankan Luminance (Y), dan menghapus Hue (I) dan Saturation (S), harus diawali dengan mengetahui nilai warna merah (R), hijau (G), dan biru (B). Cara yang paling sederhana adalah menggunakan formula: Y = (R + G + B) / 3 Tetapi, hasil yang lebih baik dapat diperoleh menggunakan formula: Y = 0.299R + 0.587G + 0.114

Perbandingan Deteksi Tepi Canny Menggunakan …informatika.stei.itb.ac.id/.../Makalah2019/13516131.pdfmedian, dan hysteresis thresholding. Sebagian citra uji yang digunakan berasal

  • Upload
    others

  • View
    13

  • Download
    1

Embed Size (px)

Citation preview

Perbandingan Deteksi Tepi Canny Menggunakan Global Thresholding dengan Mean, Global Thresholding dengan Median, dan Hysteresis Thresholding

Intan Nurjanah 135161311

1 Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung E-mail: [email protected] Abstract. Mengidentifikasi fitur dalam citra yang relevan untuk memperkirakan struktur dan properti objek dalam suatu pemandangan merupakan tahap awal dalam pengolahan citra. Deteksi tepi seringkali merupakan langkah pertama dalam memulihkan informasi dari citra untuk menangkap penampakan garis batas atau objek dalam citra. Metode deteksi tepi Canny menjadi salah satu metode deteksi yang terkenal karena kemampuannya yang dapat menghasilkan tepi dengan ketebalan 1 pixel. Akan tetapi, dalam praktiknya, algoritma deteksi tepi memiliki beberapa metode pengambangan (thresholding) untuk menghasilkan tepi dengan ketebalan 1 pixel tersebut. Makalah ini akan membandingkan hasil metode global thresholding dengan mean dan median dan hysteresis thresholding.

1. Pendahuluan Tahap awal dalam pengolahan citra adalah mengidentifikasi fitur dalam citra yang relevan untuk memperkirakan struktur dan properti objek dalam suatu pemandangan (scene). Tepi adalah salah satu fitur tersebut. Tepi adalah perubahan lokal yang signifikan pada citra dan merupakan fitur penting untuk menganalisis citra. Tepi biasanya terjadi pada batas antara dua wilayah berbeda dalam suatu citra. Deteksi tepi seringkali merupakan langkah pertama dalam memulihkan informasi dari citra. Pendeteksian tepi bertujuan untuk menangkap penampakan garis batas atau objek di dalam citra. Salah satu metode deteksi tepi yang terkenal adalah metode deteksi tepi Canny. Deteksi tepi Canny dapat menghasilkan tepi dengan ketebalan 1 pixel [1]. Salah satu masalah dalam algoritma deteksi tepi Canny adalah bahwa kita perlu menentukan ambang (threshold) batas atas dan batas bawah. Cara memilih nilai ambang tersebut akan mempengaruhi kualitas tepi yang terdeteksi. Dalam makalah ini, penulis akan membandingkan beberapa metode sederhana yang dapat digunakan untuk secara otomatis menentukan nilai ambang pada deteksi tepi Canny. 2. Dasar Teori

2.1. Konversi Citra Berwarna ke Citra Grayscale Untuk mengubah warna RGB (Red, Green, Blue) menjadi grayscale dengan mempertahankan Luminance (Y), dan menghapus Hue (I) dan Saturation (S), harus diawali dengan mengetahui nilai warna merah (R), hijau (G), dan biru (B). Cara yang paling sederhana adalah menggunakan formula:

Y = (R + G + B) / 3

Tetapi, hasil yang lebih baik dapat diperoleh menggunakan formula:

Y = 0.299R + 0.587G + 0.114

Gambar 1. Contoh konversi citra berwarna ke citra grayscale menggunakan kakas scikit-image

Sumber: https://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_rgb_to_gray.html

2.2. Deteksi Tepi Canny Deteksi tepi Canny merupakan turunan pertama dari Gaussian dan mengaproksimasi operator yang mengoptimalkan produk dari rasio signal-to-noise dan lokalisasi [3]. Algoritma deteksi tepi Canny dapat dirangkum oleh notasi berikut. Misalkan I[i, j] merepresentasikan citra. Hasil dari penggabungan citra dengan penapis Gaussian menggunakan separable filtering merupakan larik (array) data yang dihaluskan,

S[i, j] = G[i, j; s"]* I[i, j], di mana s adalah persebaran Gaussian dan kendali tingkat perataan. Gradien dari larik yang dihaluskan S[i,j] dapat dihitung menggunakan 2x2 first-different approximation untuk menghasilkan dua larik P[i,j] dan Q[i,j] untuk turunan parsial x dan y:

P[i,j] » (S[i,j + 1] – S[i,j] + S[i + 1, j + 1] – S[i + 1, j]) / 2,

Q[i,j] » (S[i,j] – S[i + 1, j] + S[i, j + 1] – S[i + 1,j + 1]) / 2

Perbedaan dirata-ratakan pada kotak 2x2 sehingga turunan parsial x dan y dihitung pada titik yang sama dalam citra. Besarnya dan orientasi gradien dapat dihitung dari rumus standar untuk konversi rectangular-to-polar.

M[i,j] = !𝑃[𝑖, 𝑗]( + 𝑄[𝑖, 𝑗](

q [i,j] = arctan(Q[i,j], P[i,j]),

di mana fungsi arctan mengambil dua parameter dan menghasilkan sudut atas seluruh lingkaran dari arah yang mungkin. Fungsi-fungsi tersebut harus dihitung secara efisien, lebih disarankan tanpa menggunakan floating-point. Dimungkinkan untuk menghitung besarnya gradien dan orientasi dari turunan parsial dengan table lookup. Arctangent dapat dihitung menggunakan sebagian besar fixed-point arithmetic dengan beberapa perhitungan essential floating-point dilakukan dalam perangkat lunak menggunakan integer. Sedgewick menyediakan algoritma untuk pendekatan integer ke gradient angle yang mungkin cukup baik untuk beberapa aplikasi. Nilai magnitudo dari larik citra M[i,j] akan besar jika gradien gambar besar, tetapi ini tidak cukup untuk mengidentifikasi tepi karena masalah menemukan lokasi dalam larik citra di mana terdapat perubahan

cepat hanya ditransformasikan ke dalam masalah menemukan lokasi dalam larik magnitudo M[i,j] yang merupakan maksimum lokal. Untuk mengidentifikasi tepi, daerah lebar dalam larik magnitudo harus ditipiskan sehinggga hanya magnitudo pada titik perubahan lokal terbesar yang tersisa. Proses ini disebut dengan nonmaxima suppression yang dapat menghasilkan tepi yang tipis. Nonmaxima suppression menipiskan daerah magnitudo gradien dalam M[i,j] dengan menekan semua nilai di sepanjang garis gradien yang bukan nilai puncak dari daerah magnitudo. Algoritma dimulai dengan mengurangi sudut gradien q[i,j] ke salah satu dari empat sektor yang ditunjukkan pada Gambar 2.

V[i,j] = Sector(q [i,j]). Algoritma akan melewati 3x3 ketetanggaan melintasi larik magnitudo M[i,j]. Pada setiap titik, elemen pusat M[i,j] dari ketetanggaan akan dibandingkan dengan dua tetangganya di sepanjang garis gradien yang diberikan oleh nilai sektor V[i,j] pada pusat ketetanggaan. Jika besarnya nilai larik M[i,j] pada pusat tidak lebih besar dari kedua besaran tetangga di sepanjang garis gradien, maka M[i,j] akan diubah menjadi nol. Proses ini menipiskan area dari gradien magnitudo M[i,j] ke area yang lebarnya hanya satu pixel. Nilai-nilai tinggi dipertahankan dalam proses nonmaxima suppressed.

Gambar 2. Partisi kemungkinan orientasi gradien ke dalam sektor-sektor untuk nonmaxima

suppression [3].

Formula di bawah ini menunjukkan proses dari nonmaxima suppression.

N[i,j] = nms(M[i,j], V [i,j])

Nilai-nilai bukan nol dalam N[i,j] sesuai dengan jumlah kontras pada perubahan dalam intensitas citra. Terlepas dari penghalusan yang dilakukan sebagai langkah pertama dalam deteksi tepi, magnitudo citra yang telah diproses dengan nonmaxima suppression N[i,j] akan mengandung banyak fragmen tepi palsu yang disebabkan oleh derau dan tekstur yang halus. Kontras dari fragmen tepi palsu tersebut relatif kecil. Untuk menangani masalah tepi palsu tersebut, maka dilakukan pengambangan (thresholding).

Gambar 3. Hasil dari nonmaxima suppression.

Secara sederhana, algoritma deteksi tepi Canny dapat dituliskan sebagai berikut. 1) Haluskan citra dengan penapis Gaussian. 2) Hitung magnitudo dan orientasi gradien menggunakan pendekatan finite-difference untuk

turunan parsial. 3) Terapkan nonmaxima suppression pada magnitudo gradien. 4) Gunakan pengambangan untuk mendeteksi dan menautkan tepi.

Hasil dari nonmaxima suppression seperti pada Gambar 3. mirip dengan hasil dari deteksi tepi dengan operator Sobel, Prewitt, atau Robert. Oleh karena itu, algoritma deteksi tepi Canny juga dapat dituliskan sebagai berikut.

1) Haluskan citra dengan penapis Gaussian 2) Hitung gradien setiap pixel pada citra dengan salah satu operator deteksi tepi, misalnya Sobel. 3) Gunakan pengambangan untuk mendeteksi dan menautkan tepi.

3. Pengambangan (Thresholding) Prosedur khas yang digunakan untuk mengurangi jumlah fragmen tepi palsu dalam magnitudo gradien pada metode deteksi tepi Canny adalah dengan menerapkan nilai ambang (threshold) ke N[i,j]. Semua nilai di bawah ambang batas kemudian akan diubah menjadi nol. Hasil penerapan ambang batas adalah larik tepi yang terdeteksi pada citra I[i,j]. Masih aka nada beberapa tepi palsu karena ambang 7 terlalu rendah (false positive), dan bagian dari kontur yang sebenarnya mungkin hilang (false negative) karena penghalusan kontras tepi oleh bayangan atau karena ambang 7 terlalu tinggi. Memilih ambang yang tepat sulit dan melibatan beberapa percobaan. Skema pengambangan yang lebih efektif menggunakan dua nilai ambang. Operasi pengambangan biasanya digunakan untuk memperbaiki kontras citra. Berikut adalah formula untuk operasi pengambangan:

Dengan T adalah nilai ambang, serta a1 dan a2 adalah nilai pengganti dari nilai pixel sebelumnya. Pengambangan dengan nilai a1=0 dan a2=1pada citra grayscale akan menghasilkan citra biner.

3.1. Global Threshloding

Metode pengambangan ini diaplikasikan ketika intensitas dari tepi dan non tepi pada citra dapat dipisahkan. Nilai ambang pada metode ini bergantung pada keseluruhan dari nilai-nilai pixel. Salah satu

metode thresholding yang dapat diimplementasikan dalam deteksi tepi Canny adalah dengan menggunakan mean. Cara paling sederhana adalah dengan menggunakan nilai rata-rata dari nilai pixel citra grayscale. Cara lain adalah dengan mnggunakan nilai median dari nilai pixel citra grayscale.

3.2. Hysteresis Thresholding

Operator double threshold terdiri dari threshold citra input untuk dua rentang nilai grayscale. Threshold untuk rentang sempit ini kemudian digunakan sebagai seed untuk rekonstruksi threshold untuk area yang luas. Jika tidak ada puncak yang jelas dalam histogram citra, berarti terdapat beberapa pixel tepi palsu yang memiliki nilai keabuan yang mirip dengan pixel tepi, atau sebaliknya [4]. Pixel di atas high threshold akan diklasifikasikan sebagai tepi dan pixel di bawah low threshold akan diklasifikasikan sebagai latar belakang citra (pixel tepi palsu atau pixel non tepi). Sedangkan pixel di antara high threshold dan low threshold akan diklasifikasikan sebagai tepi hanya jika bertetangga dengan pixel tepi lain.

Gambar 4. Hysteresis Thresholding [4].

4. Implementasi Dalam mengimplementasikan metode deteksi tepi Canny, penulis menggunakan bahasa pemrograman C++ untuk membuat algoritmanya. Program yang dibuat akan membaca masukan citra dengan format PPM untuk kemudian dibaca pixel-pixelnya dan diubah dengan deteksi tepi Canny. Metode pengambangan yang digunakan dalam perbandingan ini adalah global thresholding dengan mean dan median, dan hysteresis thresholding. Sebagian citra uji yang digunakan berasal dari data uji Indoor [3]. Sebagai patokan, penulis menetapkan low threshold sebagai 0,66 x [nilai rata-rata] untuk penggunaan global threshold menggunakan mean; dan 0,66 x [nilai median] untuk penggunaan global threshold menggunakan median. Sedangkan untuk high threshold pada 1,33 x [nilai rata-rata] untuk penggunaan global threshold dengan mean; dan 1,33 x [nilai median] untuk penggunaan global threshold dengan median. Selain itu, penulis juga menetapkan ambang pada hysteresis threshold dengan high threshold sebesar 10% dan low threshold sebesar 5%.

5. Hasil Implementasi

(1) Lena

Citra input

Hysteresis Thresholding

Global Thresholding (mean)

Global Thresholding (median)

(2) Barbara

Citra input

Hysteresis Thresholding

Global Thresholding (mean)

Global Thresholding (median)

(3) Pepper

Citra input

Hysteresis Thresholding

Global Thresholding (mean)

Global Thresholding (median)

(4) Cloud

Citra input

Hysteresis Thresholding

Global Thresholding (mean)

Global Thresholding (mean)

6. Analisis Berdasarkan hasil implementasi di atas, didapatkan bahwa citra hasil deteksi tepi Canny dengan global thresholding mean dan median memberikan hasil yang tidak terlalu berbeda. Sedangkan, hasil deteksi tepi Canny menggunakan hysteresis thresholding, tepi yang dihasilkan cenderung lebih tipis dibandingkan menggunakan global thresholding. Hal tersebut dapat dipengaruhi oleh parameter high dan low threshold yang diatur secara manual. Akan tetapi, yang perlu menjadi perhatian adalah pada global thresholding dengan mean dan median yang dikalkulasi secara otomatis dari gambar. Perbedaan dari kedua metode tersebut dapat terlihat pada pengujian (4). Hasil tersebut diperoleh karena persebaran histogram dari citra tidak merata seperti pada pengujian lainnya. Histogram dari citra Cloud dapat dilihat pada Gambar 5.

Gambar 5. Histogram citra Cloud original (kiri) dan setelah dilakukan perataan histogram (kanan).

Setelah dilakukan perataan histogram, hasil global thresholding dengan mean dan median dapat mencapai hasil yang relatif sama, seperti pada Gambar 6.

Gambar 6. Hasil deteksi tepi Canny global thresholding dengan mean (kiri) dan median (kanan).

7. Simpulan Deteksi tepi Canny dapat menggunakan global thresholding dan hysteresis thresholding. Keuntungan dari penggunaan global thresholding adalah kita tidak perlu mengatur nilai threshold secara manual. Akan tetapi, hal tersebut hanya dapat dilakukan apabila persebaran histogramnya rata. Oleh karena itu, untuk melakukan deteksi tepi Canny dengan global thresholding, hasilnya akan lebih terjamin bila menggunakan median dibandingkan dengan mean. Akan tetapi, untuk mendapat hasil yang lebih baik lagi, perataan histogram dapat dilakukan.

8. Referensi [1] Munir Rinaldi, Slide Kuliah Interpretasi dan Pengolahan Citra: Operasi-operasi Dasar Pengolahan

Citra. http://informatika.stei.itb.ac.id/~rinaldi.munir/Citra/2019-2020/06-Operasi-operasi-dasar-pengolahan-citra.pdf

[2] Edge Detection. Machine Vision Book, Chapter 5. Diakses melalui http://www.cse.usf.edu/~r1k/MachineVisionBook/MachineVision.files/MachineVision_Chapter5.pdf

[3] Citra Uji. http://informatika.stei.itb.ac.id/~rinaldi.munir/Koleksi/Citra%20Uji/CitraUji.htm [4] Thresholding. Diakses melalui https://www.cse.unr.edu/~bebis/CS791E/Notes/Thresholding.pdf Ucapan Terima Kasih Penulis mengucapkan syukur kepada Allah S.W.T karena atas rahmat-Nya, penulis dapat menyelesaikan makalah ini. Selain itu, penulis juga mengucapkan terima kasih kepada Bapak Dr. Ir. Rinaldi Munir, M.T selaku dosen pengampu kuliah IF4073 Interpretasi dan Pengolahan Citra yang telah memberikan ilmu yang bermanfaat kepada penulis.