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