Correlation and Convolution Filtering

  Computer Visi n Correlation and Convolution Filtering

Noise • Merupakan gangguan yang terjadi ketika pengukuran dilakukan

  • Umumnya berasal dari keterbatasan sensor dalam melakukan pengukuran.
  • Noise tidak dapat dihindari, setiap sensor pasti punya noise • Mari kita simak, contoh berikut ini.

  Menyimulasikan Noise

Ide untuk Menghilangkan Noise?

  Petunjuk: Nilai yang “asli” pasti serupa dengan nilai-nilai disekelilingnya.

  1.

  Bagaimana jika kita rata-ratakan suatu pixel terhadap beberapa pixel tetangganya?

  Solusi Menghilangkan Noise (1D)

  • – Ganti nilai pixel dengan rata-rata dari nilai tetangga-tetangganya moving average

Dikusi

  Jika noise sebenarnya hanyalah berupa fungsi yang ditambahkan ke dalam gambar ,

kita bisa saja menghilangkan noise dengan melakukan pengurangan gambar terhadap

terhadap fungsi tersebut.

  Sehingga, penghilangan noise sebenarnya adalah reversible

  a) Benar, menghilangkan noise sebenarnya mudah, tapi terdapat konspirasi dunia yang menutupinya dan membuatnya terlihat sulit.

  b) Benar, tapi kita tidak tahu fungsi noisenya apa, jadi kita tetap saja tidak bisa melakukan pengurangan.

  c) Salah total.

Jawaban

  Jika noise sebenarnya hanyalah berupa fungsi yang ditambahkan ke dalam gambar ,

kita bisa saja menghilangkan noise dengan melakukan pengurangan gambar terhadap

terhadap fungsi tersebut.

  Sehingga, penghilangan noise sebenarnya adalah reversible

  a) Benar, menghilangkan noise sebenarnya mudah, tapi terdapat konspirasi dunia yang menutupinya dan membuatnya terlihat sulit.

  b) Benar, tapi kita tidak tahu fungsi noisenya apa, jadi kita tetap saja tidak bisa melakukan pengurangan.

  c) Salah total.

Solusi Lebih Baik Menghilangkan Noise

  • • Yang dilakukan sebelumnya, nilai pixel yang terlibat dalam operasi rata-rata memiliki

    bobot yang sama.

  

Apakah nilai pixel yang jaraknya 100 pixel juga mempengaruhi interest pixel kita?

• Pixel yang sangat jauh sepertinya tidak ada pengaruhnya terhadap interest pixel kita.

interest pixel kita, memiliki peran yang lebih besar dibanding pixel-

  • Pixel tetangga dari pixel yang letaknya jauh.

  interest pixel kita.

  • Lakukan pembobotan berdasarkan jarak terhadap

  Solusi Lebih Baik Menghilangkan Noise Pembobotan [ 1 1 1 1 1 ] / 5 Pembobotan [ 1 4 6 4 1 ] / 16

Solusi Baik Menghilangkan Noise

  weighted moving average , terhadap seluruh pixel yang ada

  • Gunakan

  

Gambar itu 2D, bagaimana cara menghilangkan noise pada gambar 2D?

Moving-Average di 2D

  ( , ) ( , )

Moving-Average di 2D

  ( , ) ( , )

Correlation Filtering

  • Generalisasi dari operasi kita dalam slide sebelumnya adalah:

  

, = ( , ) × ( + , + )

=− =−

  Gambar hasil Koordinat disekitar Bobot

  Gambar asal interest pixel non-uniform

  Kernel / Mask / Matrix Bobot

cross-correlation , dinotasikan dengan

  • Operasi ini dinamakan

  = ⨂

  Correlation Filtering | Average Kernel ( , ) ⨂ ( , )

  = ( , )

  1

  9

  1

  1

  1

  1

  1

  1

  1

  1

  1

Correlation Filtering | Average Kernel

  Bentuk Kernel

  Artefak tajam (kotak-kotak)

  Correlation Filtering | Average Kernel kotak tidaklah halus.

  • Kernel berbentuk
  • Bentuk apa yang kira-kira merepresentasikan “halus&rdq
  • Lingkaran!

  Correlation Filtering | Average vs Gaussian

  Correlation Filtering | Gaussian Kernel Nilai kernel merupakan aproksimasi fungsi gaussian

  ( , ) ⨂ ( , )

  2

  2 − + −

  1

  −

  2 2Σ

  H , =

  2

  2 Σ

  1

  2

  1

  1

  2

  4

  2

  16

  1

  2

  1

  Correlation Filtering | Gaussian Kernel

Catatan Mengenai Gaussian Kernel

  2 kernel variance

  • Lebar tidak menentukan besar Σ

  2

  2

  = 30 , Σ = 2 = 30 , Σ = 5

Diskusi

  • Mana diantara kernel gaussian berikut yang memiliki efek blur yang lebih halus?

  (a) (b)

  (c)

  

2

  2

  2

  = 30 , Σ = 5 = 30 , Σ = 7 = 30 , Σ = 2

Jawaban

  2 semakin tajam pembobotan, sehingga kernel gaussian

  • Semakin kecil variance Σ dengan variance besar lah yang membuat efek blur yang lebih halus.

  (a) (b)

  (c)

  2

  

2

  2

  = 30 , Σ = 2 = 30 , Σ = 5 = 30 , Σ = 7

Correlation Kurang Intuitif

  a b c d e f g h i

  ( , ) ( , ) ( , )

  ⨂ =

  Correlation Kurang Intuitif • Correlation Filtering kurang intuitif untuk dipahami / diingat. impulse di korelasikan dengan sebuah kernel, gambar yang

  • Jika sebuah gambar dihasilkan merupakan cerminan-terbalik dari kernel yang kita miliki.
  • Umumnya dalam signal-processing, jika sebuah impulse dioperasikan oleh sebuah fungsi (kernel), nilai yang diharapkan adalah fungsi itu sendiri.

Correlation vs Convolution

  • Cross-correlation filtering , =

  =− =− ( , ) × ( + , + ) = ⨂

  • Convolution filtering , =

  =− =− ( , ) × ( − , − ) = ∗

  Flip di kedua dimensi (bawah jadi atas) (kanan jadi kiri)

  Boleh gambarnya yang di-flip, atau kernelnya yang di-flip

Convolution Filtering

  • = ∗
    • * H F

Diskusi

  Ketika gambar impulse dikonvolusikan dengan sebuah filter (kernel), akan menghasilkan kembali filter (kernel) kita.

  Jika sebuah filter (kernel) dikonvolusikan dengan gambar impulse , apa yang akan dihasilkan? a) Versi blur dari gambar kita.

  b) Gambar original kita.

  c) Gambar original kita yang bergeser.

  d) Bingung.

Jawaban

  Ketika gambar impulse dikonvolusikan dengan sebuah filter (kernel), akan menghasilkan kembali filter (kernel) kita.

  Jika sebuah filter (kernel) dikonvolusikan dengan gambar impulse , apa yang akan dihasilkan? a) Versi blur dari gambar kita.

  b) Gambar original kita.

  c) Gambar original kita yang bergeser.

  d) Bingung.

Diskusi

  Jika terdapat sebuah gambar berukuran × dan filter (kernel) berukuran × Berapa banyak jumlah perkalian yang dibutuhkan untuk menghitung konvolusi?

  a b c d e f g h i

  × × ∗

  a) × × 2

  b) × × × 2

  c) W × ×

  d) W × × ×

Jawaban

  Setiap 1 pixel pada gambar, terdapat × perkalian. Dalam satu gambar terdapat × pixel, maka seluruh perkalian yang terjadi dalam konvolusi adalah

  a b c d e f g h i

  × × ∗ a) × × 2 b) × × × 2 c) M × ×

  d) W × × ×

Kernel dapat Dipecah

  • Dalam beberapa kasus, filter (kernel) dapat dipecah
  • Kita bisa mendapatkan

  1

  1

  ∗ =

  1

  2

  1

  1

  2

  1

  2

  kernel persegi dengan melakukan konvolusi kernel kolom dengan kernel baris .

  1

  2

  4

  2

  1

  2

Kompleksitas Komputasi Convolution

  = = =

  ( ∗ ) ∗ ∗ ( ∗ )

  ∗

  • Operasi Konvolusi bersifat li
  • Komutatif dan Distributif

  2

  2

  2

  • Total operasi perkalian yang terjadi adalah

  2 × ≪

Permasalahan di Ujung Gambar

  a b c d e f g h i

  ( , ) ( , ) ( , )

  ∗ =

  Permasalahan di Ujung Gambar

  • Menurut kalian mana yang menjadi preferensi?

  Beragam Penyelesaian

  • Clip Filter (Hitam)

Beragam Penyelesaian

  • Clip Filter (Hitam)
  • Wrap Around (Fourrier)

Beragam Penyelesaian

  • Clip Filter (Hitam)
  • Wrap Around (Fourrier)
  • Copy Edge

Beragam Penyelesaian

  • Clip Filter (Hitam)
  • Wrap Around (Fourrier)
  • Copy Edge
  • Reflect

Beberapa Tipe Noise

  Gaussian Noise Salt and Pepper Noise

Salt and Pepper Noise

  • • Merupakan noise yang terdiri dari impulse (nilai max atau nilai min). Biasanya terjadi

    dikarenakan malfungsi dari sensor.
  • Tidak bisa diselesaikan dengan gaussian / average filter.

Median Filter

  1

  2

  3

  4

  9

  8

  4

  6

  3

  6

  2

  3

  9

  9

  4

  2

  8

  7

  3

  5

  1 3 3 4 4 5 7 8 9

  1 9 3 4 8 4

  7

  3

  5

  4

  9

  3

  6

  6

  8

   Urutkan 

  Urutkan! Median

   Median = 3  Median = 4

  4

  9

  7

  6

  4

  9

  8

  2

  3

  2

  3

  9

  8

  6

  3

  5

  3

  5

  7

  9

  8

  6

  9

  8

  7

  1 2 2 3 3 3 4 4 4

  4

  4

  2

  3

  9

  1

  9

  2

  8

  7

  3

  5

  4

  8

  3

  3

  9

  1

  7

  3

  5

  7

  7

  3 3 3 4 4 4 5 6

  4

  7

  7 6 5 4

  3

  6

  6

  9

  7

  8

  2

  3

  8

  2

  9

  8

  6

  3

  5

  3

  5

  9

  4

  8

  6

  9

  8

  3

  6

  4

  3

  2

  3

  4

  4

  8

  4

Median Filter

  Salt and Pepper Noise Median Filter

Median Filter

  Salt and Pepper Noise Gaussian Filter

Properti dari Konvolusi

  1. Linier 1.

  1 + 2 = 1 + ℎ( 2) 2. ⋅ 1 = ⋅ ( 1)

  2. Komutatif

  ∗ = ∗

  3. Asosiatif

  ∗ ∗ ℎ = ∗ ( ∗ ℎ)

  4. Identitas

  ∗ = , dimana merupakan unit impulse [⋯ , 0, 0, 1, 0, 0, ⋯ ]

Properti dari Konvolusi

  bukanlah proses konvolusi!

  • Median filter
  • Median filter juga bukanlah operasi linear • Bergantung pada seberapa acaknya nilai yang berada dalam kernel.
  • Sehingga median filter tidak dapat dioperasikan dengan filter yang lain, dan harus dilakukan secara terpisah.

  Demonstrasi dengan MATLAB