Kenar algılama: görüntüde nesne sınırları nasıl bulunur
Kenar algılama, görüntüde parlaklığın ani değiştiği noktaları bularak nesne sınırlarını çıkarır. Sobel gradyan büyüklüğünü verir; Canny ise gürültüyü bastırıp ince, kesintisiz kenarlar üretir.
Bir bakışta
- Kenar, parlaklıktaki ani değişimdir. Bu değişimin hızı, yani gradyan, kenar algılamanın temel girdisidir.
- Sobel hızlı ve basittir. Yatay ve dikey gradyanları ayrı filtrelerle hesaplar, kalın kenarlar verir.
- Canny çok adımlı ve temizdir. Yumuşatma, gradyan, inceltme ve eşikleme ile ince, bağlantılı kenarlar üretir.
- Gürültü kenar algılamanın baş düşmanıdır. Görüntü önce yumuşatılmazsa gürültü sahte kenarlar olarak çıkar.
Kenar algılama nedir?
Kenar algılama (edge detection), bir görüntüde nesneleri birbirinden ya da arka plandan ayıran sınırları bulan klasik görüntü işleme tekniğidir. Kenar, parlaklığın ya da rengin komşu pikseller arasında ani değiştiği yerdir; örneğin koyu bir kutunun açık bir masayla buluştuğu çizgi.
Bu sınırlar, nesnelerin ana hatlarını taşıdığı için birçok sonraki işlemin girdisidir: şekil bulma, çizgi ve çember tespiti, belge köşelerini yakalama, ölçüm ve kenar tabanlı bölütleme. Derin öğrenme modelleri bu özellikleri kendileri öğrense de, kenar algılama hâlâ hızlı, açıklanabilir ve veri gerektirmeyen bir yöntemdir.
Sobel hızlıdır, Canny temiz kenar verir
| Sobel | Canny | |
|---|---|---|
| Yaklaşım | Tek gradyan filtresi | Çok adımlı boru hattı |
| Kenar kalınlığı | Kalın, bulanık | İnce, tek piksel genişliğinde |
| Gürültüye duyarlılık | Yüksek | Yumuşatma sayesinde düşük |
| Hız | Çok hızlı | Daha yavaş |
| Çıktı | Gradyan büyüklüğü haritası | İkili kenar haritası |
Sobel yöntemi nasıl çalışır?
Sobel operatörü, görüntü üzerinde iki küçük çekirdek gezdirir: biri yatay, diğeri dikey yönde parlaklık değişimini ölçer. Her piksel için bu iki sonuç birleştirilerek gradyan büyüklüğü bulunur; değer büyükse o noktada güçlü bir kenar vardır. Gradyan yönü de hesaplanabilir, bu da kenarın hangi doğrultuda uzandığını verir.
Sobel basit olduğu için gerçek zamanlı uygulamalarda ve ön işleme adımlarında çok kullanılır. Zayıf yanı, çıktının kalın olması ve gürültüye açıklığıdır: bir eşik belirlemeniz gerekir; düşük eşik gürültüyü, yüksek eşik gerçek kenarları kaçırır.
Canny yöntemi adım adım
Canny algoritması, kenar bulmayı ardışık adımlara böler. Önce görüntü gri tonlamaya çevrilip Gauss ile bulanıklaştırılır; bu, gürültünün sahte kenar üretmesini engeller. Ardından Sobel benzeri filtrelerle gradyan büyüklüğü ve yönü hesaplanır. Gradyan haritasında kalın çıkan kenarlar, yalnızca gradyan yönünde en güçlü piksel bırakılarak inceltilir (non-maximum suppression).
Son adım çift eşikleme ve histerezistir: yüksek eşiğin üstündeki pikseller kesin kenardır, düşük eşiğin altındakiler elenir, arada kalanlar ise yalnızca kesin bir kenara bağlıysa tutulur. Böylece kenarlar kopuk parçalar yerine bağlantılı çizgiler olarak çıkar. OpenCV gibi kitaplıklarda tüm bu işlem tek bir fonksiyon çağrısıyla yapılır; geliştirici ağırlıklı olarak iki eşik değerini ayarlar.
Canny, gürültüden bağlantılı kenara adım adım ilerler
- Gri tonlamaRenkli görüntü tek kanala indirilir.
- Gauss bulanıklaştırmaGürültü bastırılır.
- Gradyan hesabıKenar gücü ve yönü bulunur.
- İnceltmeHer kenar boyunca yalnızca en güçlü piksel kalır.
- Çift eşik ve histerezisGüçlü ve bağlantılı zayıf kenarlar tutulur.
Küçük bir örnek: belge köşelerini bulmak
Bir mobil uygulama, telefonla çekilen fatura fotoğrafında belge sınırlarını bulmak istiyor. Önce görüntü gri tonlanır ve hafifçe bulanıklaştırılır, ardından Canny ile kenar haritası çıkarılır. Harita, kâğıdın kenarlarını ve metin satırlarını gösterir. Bu haritadan en büyük kapalı çerçeve seçilir ve köşeleri belirlenerek görüntü düzleştirilir.
Aynı iş akışında ışık dengesiz ya da arka plan desenliyse eşik değerleri hassas hale gelir; bu durumda uyarlanır eşikleme, bölgesel kontrast artırma ya da derin öğrenme tabanlı belge tespiti daha dayanıklıdır.
Sık yapılan hatalar
En yaygın hata, bulanıklaştırmayı atlayıp doğrudan kenar filtresi uygulamaktır; sonuçta her doku bir kenar gibi görünür. Bir diğeri, eşik değerlerini tek bir görüntüye bakarak seçip tüm görüntülere uygulamaktır: parlaklık ve kontrast değişince aynı eşik başarısız olur.
Kenar haritasını nesne tespiti sanmak da yanıltıcıdır. Kenarlar nesnenin ne olduğunu söylemez; yalnızca sınırlarını verir. Anlam için ek adımlar, ya da nesne sınıflandırması ve tespiti için derin öğrenme modelleri gerekir.
Mindset programlarında kenar algılama
Bilgisayarlı Görü (Computer Vision) Programı'nın klasik görüntü işleme modülü, Sobel ve Canny'yi görüntüler üzerinde denemek için uygun bir yerdir. Kalite kontrolü, belge işleme ve ölçüm gibi alanlarda çalışan ekipler, derin öğrenmeye geçmeden önce bu klasik yöntemlerle hızlı çözümler kurabilir.
İlgili Mindset programı
Bilgisayarlı Görü (Computer Vision) Programı
Sık sorulan sorular
Sobel ile Canny arasında hangisini seçmeliyim?
Hız ve basitlik önemliyse ya da kenar yönü gibi gradyan bilgisi gerekiyorsa Sobel yeterlidir. İnce, kopuksuz ve gürültüye dayanıklı bir kenar haritası gerekiyorsa Canny tercih edilir. Çoğu pratik uygulama Canny ile başlar, çünkü çıktısı sonraki adımlarda daha rahat kullanılır.
Canny'nin eşik değerleri nasıl seçilir?
Genel bir kural yok. Yüksek eşik kesin kenarları, düşük eşik zayıf ama bağlantılı kenarların tutulup tutulmayacağını belirler. Çoğu zaman birkaç örnek görüntüde deneyerek ayarlanır; parlaklığı çok değişen görüntülerde eşikleri görüntünün istatistiklerinden otomatik türetmek daha sağlam çalışır.
Derin öğrenme çağında kenar algılama hâlâ gerekli mi?
Evet, özellikle veri az, hız önemli ya da yorumlanabilirlik gerekliyse. Endüstriyel kontrol, belge hizalama ve ölçüm gibi işlerde klasik kenar algılama hızlı ve kararlıdır. Karmaşık sahnelerde ise öğrenilmiş modeller üstün gelir; ikisi çoğu zaman birlikte kullanılır.
Renkli görüntüde kenar algılama nasıl yapılır?
En yaygın yol önce görüntüyü gri tonlamaya çevirmektir. Renk geçişlerinin önemli olduğu durumlarda kanallar ayrı ayrı işlenip sonuçlar birleştirilebilir. Gri tonlama çoğu iş için yeterlidir ve hesabı basitleştirir.