+1 Daha
Görüntü işleme ve bilgisayarlı görü alanında, gürültü azaltma ve detay koruma arasında denge kurmak her zaman zor bir mesele olmuştur. Bu bağlamda, bilateral filtre (ikili filtre), hem gürültüyü etkili bir şekilde azaltan hem de görüntüdeki kenarları ve önemli detayları koruyan bir yöntem olarak öne çıkar. İlk kez 1998 yılında Tomasi ve Manduchi tarafından tanıtılan bu filtre, geleneksel filtreleme tekniklerinden farklı olarak yalnızca uzamsal yakınlığı değil, aynı zamanda piksel yoğunluklarının benzerliğini de dikkate alır.
Bilateral filtre, görüntü işlemede kullanılan doğrusal olmayan bir filtreleme yöntemidir. Temel amacı, bir görüntünün gürültüsünü azaltırken kenarlarını ve ince detaylarını korumaktır. Geleneksel filtreler (örneğin, Gaussian bulanıklaştırma), bir pikselin çevresindeki tüm pikselleri eşit şekilde ağırlıklandırarak bulanıklaştırma yapar ve bu süreçte kenarlar da yumuşar. Ancak bilateral filtre, bu sorunu çözmek için iki farklı ağırlık fonksiyonunu birleştirir:
Bu çift yönlü yaklaşım, filtrenin yalnızca uzamsal olarak yakın olan pikselleri değil, aynı zamanda yoğunluk açısından benzer olan pikselleri de dikkate almasını sağlar. Örneğin, bir kenarın iki tarafındaki pikseller farklı yoğunluklara sahipse, filtre bu pikselleri birbirinden ayırarak kenarı korur.
Bilateral filtre, Carlo Tomasi ve Roberto Manduchi tarafından 1998’de "Bilateral Filtering for Gray and Color Images" başlıklı makalede tanıtılmıştır. Bu yöntem, o dönemde popüler olan Gaussian filtreleme gibi doğrusal tekniklerin eksikliklerini gidermek için geliştirilmiştir. Daha sonra, Sylvain Paris ve diğer araştırmacılar tarafından 2000’li yıllarda teorik ve pratik yönleriyle daha da geliştirilmiştir.
Bilateral filtrenin çalışma mantığı bir örnek üzerinden açıklanmak istendiğinde, gürültülü bir gri tonlamalı görüntünün belirli bir pikselin değerini filtrelenmiş haliyle hesaplanmasının istenmesi ele alınabilir.
Adım 1: Çevre Tanımlama: Pikselin etrafındaki bir pencere (örneğin, 5x5) seçilir.
Adım 2: Uzamsal Ağırlık Hesaplama: Her çevre pikselin merkez piksele olan mesafesine göre Gσs hesaplanır.
Adım 3: Yoğunluk Ağırlık Hesaplama: Her çevre pikselin yoğunluk farkına göre Gσr hesaplanır.
Adım 4: Ağırlıkların Çarpımı: Uzamsal ve yoğunluk ağırlıkları çarpılarak her piksel için bir toplam ağırlık elde edilir.
Adım 5: Ağırlıklı Ortalama: Çevre piksellerin değerleri, hesaplanan ağırlıklarla çarpılıp toplanır ve normalizasyon yapılır.
Bu süreç, filtrenin kenarları korumasını sağlar. Örneğin, bir kenarın yakınındaki piksellerin yoğunlukları çok farklıysa, Gσr ağırlığı küçük olacak ve bu piksellerin etkisi azalacaktır.
Bilateral filtrenin çalışma prensibini anlamak için matematiksel formülasyonuna bakmak gerekir. Bir görüntüdeki her piksel için yeni bir değer hesaplanırken, filtre aşağıdaki formülle ifade edilir:
<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mord mathnormal" style="margin-right:0.10764em;">f</span><span class="mord"></span><span class="mopen">(</span><span class="mord mathnormal">p</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.13889em;">W</span><span class="mord mathnormal">p</span><span class="mord">1</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop op-symbol small-op" style="position:relative;top:0em;">∑</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.03588em;">q</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">∈</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.05764em;">S</span><span class="mord"></span><span class="mord mathnormal">G</span><span class="mord mathnormal" style="margin-right:0.03588em;">σ</span><span class="mord mathnormal">s</span><span class="mord"></span><span class="mopen">(</span><span class="mord">∥</span><span class="mord mathnormal">p</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.03588em;">q</span><span class="mord">∥</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal">G</span><span class="mord mathnormal" style="margin-right:0.03588em;">σ</span><span class="mord mathnormal" style="margin-right:0.02778em;">r</span><span class="mord"></span><span class="mopen">(</span><span class="mrel">∣</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mopen">(</span><span class="mord mathnormal">p</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03588em;">q</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">∣</span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">⋅</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.07847em;">I</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.03588em;">q</span><span class="mclose">)</span></span></span></span>
Burada:
Uzamsal ağırlık, pikseller arasındaki Euclidean mesafesine bağlıdır ve şu şekilde tanımlanır:

Burada σs , uzamsal Gaussian’ın standart sapmasıdır ve filtrenin uzamsal etki alanını belirler. Büyük σs değerleri, daha geniş bir çevrenin dikkate alınmasına neden olur.
Yoğunluk ağırlığı, piksel değerleri arasındaki farka bağlıdır:

σr, yoğunluk farklarının ne kadar tolere edileceğini belirler. Küçük σr değerleri, yalnızca çok benzer yoğunluklara sahip piksellerin dikkate alınmasını sağlar.
Normalizasyon faktörü Wp , ağırlıkların toplamının 1’e normalize edilmesini sağlar. Bu, filtrenin enerji korumasını ve çıktı değerlerinin orijinal görüntüyle uyumlu olmasını garantiler.

Farklı σ değerlerine göre Gaus doğrusal filtreleme örneği (Kredi: Paris, Sl vd.)

Gaussian Filtresi ile Bilateral Filtre karşılaştırması (Kredi: AI Learning Centre)
Bilateral filtre, birçok alanda kullanılır:
Bilateral filtesinin teorik temellerinin kodlamaya hazır hale gelebilmesi için sırasıyla görüntünün piksel piksel taranması, her piksel için bir pencere tanımlanması, uzamsal ve yoğunluk ağırlıklarının hesaplanması, ağırlıklı ortalamanın bulunup normalizasyon yapılması gerekmektedir.
Henüz Tartışma Girilmemiştir
"Bilateral Filtresi" maddesi için tartışma başlatın
Bilateral Filtre
Tarihsel Bağlam
Bilateral Filtrenin Çalışma Mekanizması
Bilateral Filtrenin Matematiksel Temelleri
Uzamsal Ağırlık: Gσs
Yoğunluk Ağırlık: Gσr
Normalizasyon
Bilateral Filtrenin Avantajları ve Dezavantajları
Avantajları
Dezavantajları
Uygulama Alanları
Bilateral Filtresi Uygulama Kodu