Blog Post

Gözlerden Piksellere: Dijital Görüntü İşleme

  • von Erenus Yıldız
  • 24 Feb., 2024

Bu makalede görüntü işleme üzerine konuşacağız. İlk duyulduğunda terim kulağa yabancı gelse bile, aslında görüntü işleme günlük yaşamımızda hemen hemen her alanda karşımıza çıkan bir işlemdir. Birkaç örnek vermek gerekirse, otoyolda hız tespiti yapan ve aynı zamanda plaka tanıma sistemine de sahip olan EDS’ler, herkesin dikkatini çekmiştir diye düşünüyorum. Buna denk gelmemişseniz bile mutlaka yüz veya parmak izi tarama ve tanıma sistemine denk gelmişsinizdir, zira yeni model akıllı telefonların çoğunda bu özellik var. Bazı havalimanlarındaki otomatik pasaport tarama sistemleri de arka planda yüz tanıma uygulamasına sahiptir. Algılanan yüzü, pasaport fotoğrafınızdaki ile karşılaştırıp teyit etmeye çalışır ve eğer bunu başarabilirse, size ülkeye girişi mümkün kılacak kapıyı açar. Peki, bu sistemlerin ortak özelliği nedir? Arka planda çalışan algoritmalar nelerdir ve nasıl çalışırlar? İşte bu makalede genel olarak bu sorulara bir yanıt vermeyi amaçladık.

İlk olarak görüntünün ne olduğunun tanımı ile başlayalım. İlk olarak buradaki görüntü sözcüğünü dijital bağlamda kullandığımızı belirterek, daha da temele inelim: dijital görüntü nedir? Dijital sözcüğü, İngilizcede basamak anlamına gelen ‘digit’ (basamak) sözcüğünden türeyen ‘digital’ sözcüğünün Türkçedeki halidir. Sayıların basamakları anlamına gelen matematiksel bir terimdir. Bu bağlamda, biri size saati sorduğunda ‘12:05’ diye cevap verdiğinizde, aslında dijital bir format kullanmış oluyorsunuz. Neden mi? Çünkü cevabınızı sayılardan oluşan bir birim olarak söylüyorsunuz. Oysaki eskiden olsa güneş tam tepedeyken diye cevap verebilirdiniz, ya da güneş saatleri bunu sayı kullanmadan yapabilirlerdi; yani dijital değillerdi. Nitekim dijital dünya, sayıların dünyasıdır. Dijital sözcüğünü gördüğünüz her alanda, emin olabilirsiniz ki, arka planda sayıların hükmü geçer.

O halde dijital görüntü nedir, dijital olmayan görüntü var mıdır? Bu sorulara yanıt verelim.

Dijital görüntü, analog bir verinin (örneğin fotoğraf makinesi ile çekilen bir fotoğrafın) dijital hale getirilmesi ile elde edilen görüntüdür. Veri, 1 veya 0 ile dijital olarak tanımlanıp, analog karşılığına denk gelir. Dijital bir görüntü, iki boyutlu bir matris ile renk uzayına göre farklı şekillerde saklanabilir. Bu, çok teknik bir tanım olmuş olabilir. O yüzden sadeleştirelim. Bunu yaparken de 1957 yılında elde edilen dünyanın ilk dijital görüntüsünü baz alalım. Yukarıda gördüğünüz dijital görüntü, Russel A. Kirsch tarafından, üç aylık oğlunun bir fotoğrafını eski bir bilgisayar kullanarak küçük bir dijital dosyaya dönüştürmesiyle ortaya çıkmıştı. Bu dijital görüntü, bir fotoğrafın taranması ile oluşturuldu. Yani, fotoğrafın taranması ve bilgisayar ortamına aktarılması, onu ‘dijitalleştirdi’. Zira artık fotoğraf, pikseller tarafından temsil edilen bir dijital veri haline gelmişti. Artık bu fotoğraf bir film değil, pikseller bütünüydü. Her bir piksel, içinde sayısal bir değer taşıyordu. Bu sayısal değerler belirli aralıklarda olmak itibariyle, büyüklüklerine göre görüntünün üzerindeki gri tonunu ifade ediyordu. Örnek vermek gerekirse, tamamı siyah olan, renksiz yani gri tonda olan bir dijital görüntünün piksel değerlerine bakarsanız, hepsinde sıfır görürsünüz. Yine bembeyaz bir dijital görüntüde bu değerler 256’dır. Bunun neden 256 olduğu ise bir pikselin bir byte (8 bit) olmasından kaynaklanır. Çünkü 1 byte ile 28 tane değer saklanabilir, bu da 256’ya denk gelir. Her dijital görüntü 8 bit tabanlı bir görüntü olmak zorunda değildir, ancak bu makalede en yaygın kullanılan şeklini baz alacağız.

Aşağıdaki görselde, üç farklı şekilde temsil edilen gri tonlu bir dijital görüntüyü ele alalım. Soldaki ilk resmin piksellerini rahatça seçebilir ve aralarındaki yoğunluk farkını görebilirsiniz. Peki bu yoğunlukların sayısal değeri nedir? İşte o da ortadaki görselde verilmiş olan renk kodlarıdır. Aşağıdaki görselde ise bu değerlerin matematiksel bağlamda algoritmalarla yazılmış halini görüyorsunuz: iki boyutlu bir matris. Evet, aslında her dijital görüntü iki boyutlu bir matris olarak gösterilebilir. Peki, bu örneklerdeki dijital görüntüyü renksiz/gri tonlu olduğu için bu şekilde gösterdik. Eğer renkli olsaydı nasıl gösterilebilirdik? Bu kez de üç farklı matris kullanmak zorunda kalacaktık, zira kırmızı yeşil ve mavi ana renklerinin her biri için bir matrise ihtiyacımız olacaktır. Bu ana renklerin arasında kalan renkler ise, ana renklerin yoğunluklarının kombinasyonları ile gösterilebilecekti. Aşağıda bir örneğini inceleyelim. 

Bu örnekte, kırmızı, yeşil ve mavi ana renkleri arasında olacak şekilde pek çok ton görüyorsunuz. Yuvarlak içine alınan kısmın sayısal değerlerine bakıldığında, bu durum daha da belirgin hale geliyor. Yuvarlak içinde kırmızı biberin bitip, yeşil renkte biberin başladığını görüyoruz. Nitekim kırmızı rengin matris değerlerine bakıldığında, bu durum bariz bir şekilde ortaya çıkıyor. 1.000 değerleri (yani tamamen kırmızı zira 0 siyah 1 o rengin tam yoğunluk kazanmış halidir) yukarı çıkıldıkça (yeşil sebzeye yaklaşıldıkça) azalıyor; önce 0.9 ve daha sonra 0.4’e kadar düşüyor. Bu da bize, kırmızı rengin artık baskın olmadığını, farklı bir rengin başladığını işaret ediyor. Peki, neden yeşil sebzeye gelindiğinde kırmızı matristeki değerler hemen 0’a inmiyor? Çünkü yeşilin de farklı tonları var ve bu tonları gösterebilmek için mavi ve kırmızı ana renge ait değerler kullanılıyor. Sulu boya yaparken elde etmek istediğiniz rengin içine koyduğunuz başka renkler gibi düşünebilirsiniz. Kısacası, her şey matris değerlerinde bitiyor. Yani görüntüyü dijitalleştirdiğimizde, aslında fotoğrafımızı, cebir dünyasında kullanışlı bir veri yapısına endekslemiş oluyoruz. Bu da bize, artık bu cebirsel veri yapısıyla işlem yapma yetkisi sağlıyor.

Dijital görüntüyü kullanışlı yapan ve mühendislik alanına açık hale getiren de aslında bu. Çünkü bir görüntü dijital ise, yani matris formatında elde edilebiliyorsa, bu matris, çeşitli algoritmalarla bilgisayar ortamında işlenebilir. Eğer görüntü analog ise, yani kimyasal yollarla elde edilmiş bir fotoğraf ise, o haliyle bilgisayarlarda işlenmesi ve algoritma kullanımı ile üzerinden çıkarım yapılması imkansızdır. Görüntünün dijital ortama aktarılması ve matris formatına geçmesi gerekiyor. İşte bu, dijital görüntü işlemenin de tanımı oluyor. Çeşitli amaçlar için bu matrisleri, yani dijital görüntüleri işleyebilir ve kullanışlı çıkarımlar elde etmek için kullanabilirsiniz. En başta örneğini verdiğim tanıma sistemleri, dijital görüntüleri bu şekilde işleyerek çıkarım yapabiliyor. Plakanızın üzerindeki rakam ve harflerin tanınması, aslında plakanızın dijital bir görüntü haline getirilmesi, daha sonra üzerindeki piksel yoğunluk değerlerinin işlenmesi ile mümkün olmaktadır. Bu bağlamda, fotoğrafların dijital olarak gösterilmesi, aslında bu alanda bir kilometre taşıdır desek yerinde olur. Yıllar içinde bilinen matematiksel fonksiyonların bu sayısal değerlere uygulanması sonucu çeşitli görüntü filtreleri ortaya çıkmış ve görüntüler üzerinde iyileştirmeler yapılması mümkün olmuştur. Aşağıda görmüş olduğumuz dijital görüntüde bir sorun olduğunu söyleyebiliriz. Görüntüde beyaz noktalar görünüyor. Bu tip görüntü parazitleriyle daha önce karşılaşmışsınızdır. Çip üzerindeki parçaların daha iyi görüntülenebilmesi için veya daha sonra analize alınabilmesi için, bu sorunun giderilmesi gerekiyor.

Bu parazitler, görüntünün elde edilmesi sırasında sensörün yetersizliğinden veya dijital görüntünün aktarılması sürecinde çıkan sorunlardan kaynaklanıyor olabilir. Görüntü işleme dünyasında bu tür parazitlere ‘salt and pepper noise’ adı veriliyor. Türkçesi ‘tuz ve biber’ paraziti anlamına gelir. Adı her ne kadar günlük yaşamdan alıntı olsa da gerçekten de kullanılan teknik terim tam olarak bu. Bu gibi sorunların kaynağını çözmek her zaman mümkün olmayabilir. Görüntü sensörünü (yani görüntüyü elde eden kamera veya fotoğraf makinesi) değiştiremeyebilirsiniz veya aktarım altyapısı (örneğin kablolar) sabit kalmak zorunda olabilir. Bu parazitleri ortadan kaldırmak için, elinizdeki dijital görüntüyü matris formatında tekrar işlemeniz gerekmektedir. Görüntü matrisine uygulayacağınız çeşitli modellemeler ve fonksiyonlar sayesinde bu parazitleri fark edilmeyecek duruma getirebilir, hatta yok edebilirsiniz. Makalede fazla teknik detaya girmeden, basit bir fonksiyonu ele alalım. Medyan (ortanca) filtreleme olarak bilinen bir fonksiyon, yukarıda gösterdiğimiz tuz ve biber parazitini azaltmada yaygın olarak kullanılır. Filtreleme algoritması, küçük bir matris kullanarak tüm görüntüyü tarar, piksel kümesini sıralar, matris içindeki ortanca piksel değerlerini alır. Bu ortanca değeri daha sonra parazitli görüntüde işlenen kısma yazar. Aşağıda bunun bir çizimi bulunmaktadır. Soldaki 12x12’lik matris, bizim parazitli görüntümüz olsun. Bu görüntünün üzerinden 3x3’lik matrisle geçerek, değerleri sıralayıp, ortanca değeri merkeze yerleştirdiğimizde, ortanca filtresini uygulamış oluruz.

Bunu tüm bir dijital görüntüde döngüsel olarak yaparsak tüm görüntüyü taramış olur ve paraziti azaltmayı başarabiliriz. Aşağıdaki görselde, bu filtre uygulanarak paraziti azaltılmış görüntüyü görebilirsiniz. Bu görüntüde artık çip üzerindeki yapılar daha rahat seçilebiliyor. Tabii ki, bu görüntü henüz kusursuz değil. Ancak medyan/ortanca filtresinin nasıl çalıştığını anlatması açısından yeterli bir örnek. Bu filtre, görüntü işleme dersi alan veya konuyla ilgilenen kişilerin karşılaştığı ilk filtrelerden biridir. Mühendislik ve bilimsel alanlarda daha birçok filtreleme modelleri mevcuttur. Hatta, alanı sadece parazit temizleme olan görüntü işleme uzmanları bulunmaktadır. Kullandıkları metotlar her ne kadar yukarıda bahsettiğimiz kadar basit ve sade olmasa da temelinde matris üzerindeki değerlerin işlenmesi fikri yatar.

Elbette mühendislik alanında karşılaşılan görüntü parazitleri tuz ve biber paraziti ile sınırlı değil. Bulanık, titreşimden dolayı sarsıntılı görüntü ve videoların düzeltilmesi de bu alanın ilgi konusudur. Örneğin, akıllı telefonunuzu kullanarak yürürken çektiğiniz bir videoyu YouTube üzerinden yayınlamak istediğinizde, videonun sarsıntı ve titreşim filtresinden geçmesi gerekir. Bunu YouTube arka planda görüntü işleme algoritmaları ile yapar. Video dediğimiz yapı da en nihayetinde bir görüntü dizisidir. Yani bir görüntü için uygulanabilen algoritma, elbet tabii video için de uygulanabilir.

Dijital görüntü işleme, açıkçası tek bir makaleye sığmayacak kadar derin ve bir o kadar eğlenceli bir çalışma alanıdır. Konu hakkında ‘rehber’ olabilecek pek çok kitap var. İlgili mühendislik derslerinin en vazgeçilmezi R.C. Gonzales’in 2009’da yayınladığı ‘Dijital Görüntü İşleme’ adlı kitap [1] bunlardan sadece biri. Gonzales’in kitabı konuyu daha ayrıntılı ve derinlemesine öğrenmek isteyenlere bu bağlamda tavsiye edebileceğim önemli bir eserdir. Kitap görüntünün ne olduğu ile başlar ve görüntü işleme dünyasının temel algoritmalarından bahseder, matematiksel arka planını açıklar.

Günlük yaşamımızda, içinde sayısal değerler bulunan matrislerin büyük rolü var. Bunu hiç düşünmesek bile, arka planda cebirsel işlemler yürümekte. Lisede sorduğumuz ‘Hocam, bu öğrendiklerimiz bizim ne işimize yarayacak ki?’ sorusunun cevabı aslında çok kolay. Doğrusal cebir, akıllı telefonlarımızda, otopark veya site giriş-çıkışlarındaki plaka tanıma sistemlerinde, YouTube’da ve dahası simdi yapay zeka da ve daha sayabileceğimiz bir çok yerde karşımızda. Dijital platformlar olduğu sürece de doğrusal cebir hayatımızda kalmaya devam edecek. Hepimizin ara ara duyduğu ve büyük olasılıkla bir süre daha aşina olacağı ‘Bir resim bin söze bedeldir.’ gerçeği uzun bir süre daha geçerliliğini koruyacağa benziyor. Uzay istasyonlarından gelen dijital görüntüler sayesinde artık öte gezegenleri bile anlamaya başlıyoruz. Manyetik rezonans (MRI) ile elde edilen görüntüler ile vücudumuzda olan bitenden haberdar oluyoruz, gerekirse tedbir alıyoruz. Görüntünün dijitalleşmesinin de yanı sıra artık elde edilen dijital görüntünün aktarımı ve belleğe alınmasının da araştırmaları ilerliyor. Uzaydan veya vücudumuzun mikrogranüler yapılarından elde ettiğimiz görüntülerin bozulmadan, verimli ve hızlı aktarılması, daha sonra saklanması, çeşitli algoritmalar aracılığıyla yine matris değerlerinin manipüle edilmesiyle mümkün oluyor. Görsel duyu organımız söz konusu olduğu sürece, dijital görüntü işleme mekanizmaları da daima bir araştırma konusu olarak kalacaktır.


Dr. Erenus Yıldız
D-TAB  Bilimsel Değişim Sorumlusu
erenus.yildiz@dtab-goettingen.de


Kaynakça
[1] Gonzalez, Rafael C. Digital image processing. Pearson education india, 2009.


Share by: