Görüntü İşleme Teknikleri ile Ön İşleme

Hedeflediğimiz birçok projenin gerçekleşmesi için mutlaka görüntü işleme adımlarından geçirilmesi gerekmektedir. Bu yazıda Gauss, Ortalama Filtre, Eşikleme Filtreleri ve Canny Kenar Algılayıcısı ile ön işleme aşamalarını birlikte ortaya koyacağız. Platform olarak benim gibi Colab’ da çalışabilirsiniz! Böylelikle hem çok hızlı hem de yer kaplamadan projelerinizi gerçekleştirebilirsiniz. 

Görüntü işleme teknikleri mevcut resimlerin analizi ile çeşitli bilgiler edinmeye yarayan sistemlerdir. Görüntü işleme teknikleri kullanım yerlerine göre, en basit algoritmalardan en karmaşık algoritmalara kadar farklı matematiksel ifadeler üzerinden çalışır.

Görüntü işleme metotlarının kullanılması için önceden elde edilmiş kamera vasıtasıyla çekilen gerçek dünya verileri üzerinde işlem yapılacaktır. İşlemler sırası ile OpenCV aracılığıyla verinin okunması, piksel değerlerinin renk kanalları açısından kontrolü, görüntüde yer alan gürültünün giderilmesi ve mevcut filtrelerin kullanılması olarak belirlenmiştir.

Projelerimiz için kullanacağımız veri setini daha önceden hazır etmemiz çalışma prensibimiz açısından daha iyi olacaktır. Görüntüler veri setiniz içerisinden imread( ) metodu ile dosyadan çekilecektir. Bu işlemimiz için gerekli kütüphaneleri yüklemekle işe koyulalım.

📍NOT: Ön işleme adımını yaptıktan sonra görüntüyü kontrol etmek için genellikle imshow() fonksiyonunu kullanmaktayım. Ancak Colab’da imshow fonksiyonumuz çalışmadığı için cv2_imshow modülünü yüklememiz gerektiğini unutmayalım!

Aşağıda gördüğünüz görselde görüntünün elde edilmesi ve piksel değerlerinin incelenmesine olanak veren kod yer almaktadır.

Kütüphanelerin Yüklenmesi
Kütüphanelerimizi yükledikten sonra kullanacağımız veri seti için bir klasöe oluşturup path değişkenine yolu kopyalamalıyız. Çünkü görüntü işleme tekniklerimiz bu klasörde yer alan görüntüler üzerinde çalışacaktır.

Kullandığım görüntüler gri seviye görüntüler olduğu için imread fonksiyonunda gördüğünüz gibi dosyanın yanına 0 ibaresini koydum. Bu şekilde görüntülerde renk tonu mümkünse bile bu görüntü gri seviyeye dönüşecektir. İlk görüntümüzü RGB imshow metoduile ekrana bastırabiliriz.

Görüntümüzün yanına 0 koyduğumuzda ise aşağıda gördüğünüz görsele ulaşmış olacağız. cv2_imshow(image) komutu ile ekranda gördüğünüz görseli yazdırmamız mümkündür. Bu adımdan sonra görüntü işleme adımlarına geçebiliriz.

Görüntü İşleme Adımları

RGB veya gri skala görüntünüzün piksel değerlerini görmek istiyorsanız print komutu ile bu şekilde ekrana bastırmanız mümkündür. Böylelikle hangi kanalda çalıştığınızı da kontrol etmiş olacaksınız. Bu görüntüde RGB bir gül görüntüsü kullandığım için piksel değerleri aşağıdaki sayıları göstermektedir.

📌 RGB Renk Kanalı: RGB en yaygın kullanılan renk alanıdır. Bu renk modelinde her renk kırmızı, yeşil ve mavi ana spektral bileşenleri olarak görür. Bu modelin altyapısında Kartezyen Koordinat Sistemi barınmaktadır.

Görüntümüzün RGB’ ye dönüştürülmesi ve piksel değerlerinin incelenmesi için gerekli koda aşağıdaki şekilde yer verilmiştir.

📌 HSV Renk Kanalı: HSV uzayının ismi, renk tonu, doygunluk ve parlaklık kelimelerinin İngilizce karşılığı olan hue, saturation ve intensity kelimelerinin baş harflerinden gelmektedir. HSV renk uzayı Hue, Saturation ve Value terimleri ile rengi tanımlar. RGB de renklerin karışımı kullanılmasına karşın HSV de renk, doygunluk ve parlaklık değerleri kullanılır. Doygunluk rengin canlılığını belirlerken parlaklık rengin aydınlığını ifade eder.

Şekilde yer alan görüntülerde RGB görüntüden HSV’ ye dönüşüm sağlanmıştır. Bir diğer renk kanalı olan LAB kanalı da son olarak incelenerek görüntünün gri seviye formatına dönüşümü sağlanmıştır.

📌 CIE-LAB Renk Kanalı: CIE 1931 renk uzayları, elektromanyetik görünür spektrumdaki dalga boylarının dağılımı ile insan renk görüşünde fizyolojik olarak algılanan renkler arasındaki ilk tanımlanmış kantitatif bağlantılardır. Bu renk uzaylarını tanımlayan matematiksel ilişkiler, renk mürekkepleri, ışıklı ekranlar ve dijital kameralar gibi kayıt aygıtlarıyla uğraşırken önemli olan renk yönetimi için gerekli araçlardır.

 

Görüntüdeki Gürültünün Giderilmesi

Görüntüler kameradan elde edilen gerçek dünya verisi oldukları için bir kameranın sensörü üzerindeki akım değişimlerinden dolayı genellikle Gauss gürültüsü içerir. Gürültülü görüntüler, eleman tespiti için kullandığımız kenar tespitinde daha kötü performansa yol açabilir. Bu nedenle, bu gürültüyü azaltmak önemlidir.

🖇 Gürültü azaltmak için literatürde birçok yöntem mevcuttur. Bugün sizlerle 2 adet yöntemi tartışacağız.

  1. Adaptive Threshold Gaussian
  2. Adaptive Threshold Mean
➡️ Adaptive Threshold Gaussian

Görüntülerimizin gauss gürültüsü giderilmiş görüntüler haline gelmesi için Gaussian yöntemi uygulandığı Python koduna aşağıdaki şekilde yer vermekteyim. Burada yer alan adaptiveThreshold metodu içerisindeki parametreler ile oynanarak istenilen sonuca ulaşmak mümkündür.

Literatürde sıkça yer verilen Gauss ve ortalama eşik filtreleri bu görüntüler üzerinde uygulandığında hemen hemen aynı blurluk (yumuşama) seviyesine yaklaşıldığı görülmüştür. Bu yöntemler sırasıyla adaptif gauss filtresi ve ortalama filtre uygulamasıdır.

➡️ Adaptive Threshold Mean (Ortalama)

Uyarlanabilir (adaptive) eşikleme, eşik değerin daha küçük bölgeler için hesaplandığı yöntemdir ve bu nedenle, farklı bölgeler için farklı eşik değerleri olacaktır.

 

Gaussian ve Mean filtreleri arasında takdir edersiniz ki çok ufak nüanslar vardır. Parametre değerlerini kendiniz değiştirerek istediğiniz filtre ile devam edebilirsiniz.

➡️ Kenar Tespiti

Kenar tespiti, unsurları tespit etmede kullanılan önemli bir tekniktir. Şekilde yer verilen kenar algılama tekniklerinden olan Canny kenar algılama algoritması görüntüler üzerinde çalıştırılmıştır.

Canny Code

Canny Image

REFERANSLAR

  1. Medium, Cerebro, Görüntü İşleme Tekniklerinde Yapay Zekâ Kullanımı, Nisan 2018.
  2. Vikipedi, Özgür Ansiklopedi, ‘Görüntü işleme’, Eylül 2020.
  3. C. Gonzalez, Rafael, E. Woods, Richard, Sayısal Görüntü İşleme, Palme Yayıncılık, (Ankara, 2014).
  4. S. Singh and B. Singh. “Effects of noise on various edge detection techniques”. In: 2015 2nd International Conference on Computing for Sustainable Global Development (INDIACom). Mar. 2015, pp. 827–830.
  5. https://www.tutorialspoint.com/opencv/opencv_adaptive_threshold.htm.
  6. Ajay Kumar Boyat and Brijendra Kumar Joshi. “A Review Paper: Noise Models in Digital Image Processing”. In: CoRR abs/1505.03489 (2015). arXiv: 1505.03489. url: http:// arxiv.org/abs/1505.03489.
  7. T. Silva da Silva et al. “User-Centered Design and Agile Methods: A Systematic Review”. In: 2011 Agile Conference. Aug. 2011, pp. 77–86. doi: 10.1109/AGILE.2011.24.

 

Leave a Reply

Your email address will not be published. Required fields are marked *