SUBBAB 3: Operator Turunan Pertama

Tujuan Pembelajaran

Setelah selesai mempelajari materi, mahasiswa diharapkan:

  • Mampu mengenal konsep dan bentuk kernel operator Roberts.
  • Mampu melakukan konvolusi citra dengan kernel Roberts menggunakan teknik padding.
  • Mampu melakukan tahapan lanjutan operator Roberts, yaitu perhitungan magnitudo gradien dan thresholding.
Konsep Operator Roberts

Operator Roberts adalah salah satu metode paling sederhana untuk mendeteksi tepi. Metode ini digunakan untuk mendeteksi perubahan kecerahan secara tiba-tiba di arah diagonal.

Hasil Operator Prewitt

Gambar 3.12 Hasil pendeteksian tepi operator Roberts

🔍 Tujuan Roberts:

Tujuan operator Roberts adalah menemukan tepi dengan memperkirakan turunan pertama (perubahan nilai) antara piksel yang bersebelahan secara diagonal.

  • Perubahan arah x (diagonal kanan bawah)
  • Perubahan arah y (diagonal kiri bawah)


Rumus Turunan Diskret untuk Roberts:

Operator Roberts digunakan untuk menghitung perubahan intensitas secara diagonal pada citra. Operator ini memperkirakan gradien dalam dua arah:

Gradien dalam arah x (diagonal kanan bawah):
$$ G_x = f(x, y) - f(x+1, y+1) $$

Gradien dalam arah y (diagonal kiri bawah):
$$ G_y = f(x+1, y) - f(x, y+1) $$

Artinya:

  • f(x, y) adalah nilai piksel saat ini.
  • f(x+1, y+1) adalah piksel diagonal kanan bawah dari posisi sekarang.
  • f(x+1, y) dan f(x, y+1) berada di sekitar piksel untuk mendeteksi perubahan arah y.
Kernel Operator Roberts

Dari rumus turunan diskrit sebelumnya, bisa diterjemahkan langsung menjadi matriks kernel Roberts, yang akan digeser (konvolusi) ke seluruh gambar untuk mendeteksi tepi. Berikut adalah matriks kernel untuk operator Roberts.

  1. Kernel Gx (deteksi perubahan diagonal kanan bawah):
    • Kernel Gx digunakan untuk mendeteksi tepi secara diagonal dari kiri atas ke kanan bawah.
    • Mendeteksi perbedaan antara piksel saat ini dan piksel diagonal di kanan bawahnya.
    • Kernel ini sangat sederhana dan hanya terdiri dari dua nilai non-nol.
    $$ G_x = \begin{bmatrix} +1 & 0 \\ 0 & -1 \end{bmatrix} $$
  2. Kernel Gy (deteksi perubahan diagonal kiri bawah):
    • Kernel Gy digunakan untuk mendeteksi tepi secara diagonal dari kanan atas ke kiri bawah.
    • Mendeteksi perbedaan antara piksel kanan atas dan piksel kiri bawah dari piksel saat ini.
    • Sama seperti Gx, kernel ini juga sangat sederhana dan bekerja dalam skala 2×2 piksel.
    $$ G_y = \begin{bmatrix} 0 & +1 \\ -1 & 0 \end{bmatrix} $$

Setiap kernel ini akan menghitung seberapa besar perubahan kecerahan antara dua piksel diagonal yang berdekatan.


Berikut adalah hasil deteksi tepi Operator Roberts yang meliputi hasil konvolusi kernel horizontal (Gx), hasil konvolusi kernel vertikal (Gy), magnitude gradient, dan hasil thresholding-nya.

Hasil Operator Prewitt
Hasil Operator Prewitt

Gambar 3.13 Hasil konvolusi, magnitudo, dan threshold dengan operator Roberts.

Contoh Perhitungan dengan Operator Roberts

Gambar 3.14 menunjukkan citra ukuran 4x4 beserta nilai pikselnya yang akan kita gunakan untuk mendeteksi tepi dengan operator Roberts.

Komponen Warna RGB Komponen Warna RGB

Gambar 3.14 Matriks citra 4x4 untuk perhtiungan operator Roberts dengan I = Input Matriks


Berikut adalah kernel Roberts yang akan digunakan.

$$ G_x = \begin{bmatrix} +1 & 0 \\ 0 & -1 \end{bmatrix} $$
$$ G_y = \begin{bmatrix} 0 & +1 \\ -1 & 0 \end{bmatrix} $$

Kita akan melakukan pendeteksian tepi pada matriks di atas menggunakan operator Roberts.



Langkah 1: Teknik Edge Padding

Langkah pertama yang dilakukan sebelum proses konvolusi adalah melakukan teknik padding. Teknik ini menambahkan baris atau kolom di tepi matriks dengan menyalin nilai dari elemen tepi yang ada. Tujuannya adalah agar semua piksel pada citra dapat diproses dengan filter tanpa kehilangan informasi di tepi.

Menentukan Jumlah Padding:
  • Ukuran filter: \( f = 2 \)
  • Maka padding: \( p = \left\lfloor \frac{k - 1}{2} \right\rfloor = \left\lfloor \frac{2 - 1}{2} \right\rfloor = \frac{1}{2}\)

Hasilnya adalah \( \frac{1}{2} \). Permasalahannya, padding tidak bisa setengah piksel, jadi tidak ada padding simetris yang membuat output berukuran sama dengan input. Jadi, Untuk kernel 2×2, tidak ada padding yang diperlukan untuk menjaga ukuran output tetap sama. Artinya, jika kita tidak menambahkan padding, ukuran citra setelah konvolusi akan berkurang satu baris dan satu kolom.

Sumber:

Goodfellow, Ian, et al. dalam Deep Learning (2016), bab mengenai konvolusi menjelaskan bagaimana operasi konvolusi bekerja pada citra dan pengaruh ukuran kernel terhadap padding dan ukuran output. Dalam buku ini dijelaskan bahwa untuk kernel berukuran 2×2 yang merupakan kernel berukuran genap, padding yang dibutuhkan untuk menjaga ukuran output citra tetap sama adalah 0, karena tidak ada cara untuk membagi ukuran kernel secara merata di kedua sisi citra tanpa menyebabkan pemotongan pada bagian citra.



Langkah 2: Konvolusi dengan Kernel Roberts

Kalikan tiap elemen citra dengan kernel Gx, lalu jumlahkan hasilnya. Begitu pula dengan kernel Gy.

Petunjuk:

Gunakan dropdown untuk memilih kernel yang akan digunakan, lalu klik tombol Mulai Konvolusi.

Input Matriks

Kernel Konvolusi

Hasil Konvolusi

Perhitungan:

Perhitungan akan muncul di sini


Penjelasan:
  • Hasil konvolusi Roberts X menunjukkan nilai tinggi yaitu 61, 61, dan 63 pada titik-titik [0, 1], [1, 1] dan [2, 1], menandakan adanya perubahan intensitas besar di titik tersebut.
  • Begitu pula dengan kernel Roberts Y, nilai konvolusi tertinggi muncul secara konsisten di titik-titik [0, 1], [1, 1] dan [2, 1], dengan nilai sekitar -65, -66 dan -64, menandakan adanya perubahan intensitas tajam pada titik tersebut.


Langkah 3: Hitung Magnitudo

Setelah kita mendapatkan hasil turunan pertama di arah horizontal (Gx) dan vertikal (Gy), kita bisa menghitung magnitudo gradient. Berikut caranya.

Rumus:
\[ \text{Magnitude} = \sqrt{G_x^2 + G_y^2} \]
Petunjuk:

Klik tombol Mulai Hitung, lalu klik Lanjut untuk melanjutkan proses.

Gx
Gy
Magnitudo

Perhitungan:
Penjelasan:

Nilai-nilai pada matriks "Magnitudo" merepresentasikan kekuatan tepi pada tiap piksel, di mana nilai yang tinggi menunjukkan perubahan intensitas yang tajam (area tepi). Sebagai contoh, nilai 89.14 dihasilkan dari kombinasi Gx = 61 dan Gy = -65 yang menunjukkan keberadaan tepi yang kuat pada posisi tersebut.



Langkah 4: Thresholding (Ambang Batas)

Setelah menghitung magnitudo, langkah selanjutnya adalah menyaring hasilnya agar hanya tepi yang kuat yang ditampilkan. Untuk menentukan threshold kita menggunakan rumus berikut.

\[ \text{Threshold} = \frac{\text{Jumlah Seluruh Piksel}}{\text{Banyak Piksel}} = \frac{374,6}{9} = 41,622 \]
(Catatan: Selesaikan proses magnitude terlebih dahulu sebelum menghitung threshold).

Petunjuk:
  • Klik tombol Mulai Hitung, lalu klik Lanjut atau Autoplay untuk melanjutkan proses.
Magnitudo
Threshold (T = 41,622)

Perhitungan:
Penjelasan:

Berdasarkan hasil threshold, bagian tepi terdeteksi pada piksel [0,1], [1,1] dan [2,1] karena nilai magnitudonya melebihi 41,622. Piksel-piksel ini membentuk pola vertikal di tengah, menunjukkan adanya garis tepi vertikal. Sementara piksel lainnya bernilai 0, menandakan area non-tepi.


Aktivitas 9

Kerjakan aktivitas berikut untuk menguji pemahaman dan menambah nilai progresmu!
Soal 1 dari 2

Gambar 3.15 menunjukkan matriks berukuran 4x4.

Komponen Warna RGB

Gambar 3.15 Matriks citra 4x4


Berikut adalah kernel operator Roberts.

$$ G_x = \begin{bmatrix} +1 & 0 \\ 0 & -1 \end{bmatrix} $$
$$ G_y = \begin{bmatrix} 0 & +1 \\ -1 & 0 \end{bmatrix} $$


Konvolusi Roberts-X
Konvolusi Roberts-Y
Hasil Magnitude
Thresholding

Penjelasan: