Sayfalar

13 Aralık 2012 Perşembe

Görüntü İşleme Çalışmaları

Merhaba Arkadaşlar!

Bu kez biraz farklı bir konu üzerine eğileceğiz. Çok farklı teknikler içeren bir alana göz atacağız. Veritabanı, iş zekası, veri madenciliği dışında da teknoloji dünyasının kalbinin attığı bir alan: Görüntü İşleme...

Aslında görüntü işlemeyi merak etmemin ve öğrenmek isteyişimin nedeni bir proje üzerinde çalışıyor olmamdır. Günümüzde görüntü işleme teknikleri o kadar fazla kullanılmakta ki, artık mobil teknoloji ile de ceplerimize girmiş durumda. Şunu da baştan söylemek gerekirse görüntü işleme dünyasının önümüzdeki yıllarda yok olacağını söylemek imkansız gibi. Bunu neden söylüyorum? Çünkü pek çok teknoloji; teknolojinin gelişmesiyle birlikte kendi kendinin sonunu getirmekte. Kod yazan kodların geliştirilmesi ile gündeme gelen bu konu giderek kendini hissettirmeye başlamış durumda. Acaba "biz bilgisayar mühendislerinin geleceği riskli mi?" sorusu beynimizde yankılanır oldu şu günlerde. Fakat bu tartışmanın anlamsız olduğu fikrini savunanlardanım. Zira o kadar fazla sektörde o kadar fazla yenilik var ki! Örneğin ele alacağımız görüntü işleme mevzu savaş teknolojilerinden güvenliğe, tıptan fiziğe, sanayiden kişisel bilgisayarlara kadar sayısız uygulama alanına sahip. Halen bu teknoloji üzerine geliştirilmeyi bekleyen ve hayal gücünüze bağlı pek çok problem mevcut. Fazla uzatmadan konuya giriş yapalım :)

Bildiğimiz üzere bilgisayar; üzerindeki hiçbir bilgiyi yorumlayamaz ve bu bilgilerin ne olduğu hakkında da en ufak bir fikri yoktur. Yani bilgisayar ekranındaki görüntüler, aslında diğer tüm uygulamalar gibi 1 ve 0'ların farklı kombinasyonlarıyla oluşturuluyor. Ya da cep telefonunuzun  kamerasıyla, dijital fotoğraf makinenizle çektiğiniz fotoğraflar ve videolar da yine sayısal ifadelerden başka bir şey değildir. Peki bu sayısal ifadelerin formatları nedir?

Bildiğimiz üzere onlarca resim, video sıkıştırma formatları mevcut. JPEG, GIF, MPEG, BMP, PNG, 3GP ve diğerleri... Bunların her birisi kendi içerisinde farklı algoritmalarla görüntünün sıkıştırılması ve sayısal olarak ifade edilmesini amaçlar. Fakat her biri temelde tek bir mantığa dayanmaktadır. Tüm görüntüler matrissel formda ifade edilirler. Fakat görüntünün renkli-renksiz, RGB-CMYK gibi özel durumlarına göre de farklı boyutlar kazanırlar.

Piksel Yapısı
Her objenin bir temel taşı olduğu gibi görüntülerin de temel taşları yani en ufak parçacıkları vardır ve piksel olarak isimlendirilirler. Bir görüntü piksel yoğunluğu kadar kaliteli olabilir. Örneğin satır olarak M, sütun olarak N piksel içeren bir görüntü MxN çözünürlüktedir. Bu değer arttıkça görüntünün kalitesi de artacaktır. Yani matristeki satır ve sütun sayısı artacaktır. Bu da grafik kartı (GPU)'nun daha çok işlem yapacağı anlamına gelir ki; HD filmler gibi çözünürlüğü yüksek olan filmler esnasında bilgisayarlarımızın zorlanmasının sebebi de budur.

Renk Modelleri
Yukarıda kısaca bahsettiğimiz RGB, CMYK birer renk modelidir. RGB renk modeline sahip renkli bir resim 3 adet matrisle temsil edilir. Bu matrislerin her biri renk kanallarını (R: Kırmızı, G: Yeşil, B: Mavi) temsil eden sayısal değerler taşır. Her bir kanala ait bir piksel 8 bit ile temsil edilir. Yani 256 değer alabilmektedir. 3 kanalın göz önüne alınmasıyla RGB modeli ile temsil edilen bir resim 256x256x256 = 16 milyon küsur renk ifade edebilmektedir. Örneğin sol üst köşedeki pikselin renginin kırmızı olması için R kanalını temsil eden matrisin R değeri 255'e yakın seçilirken G ve B değerleri 0'a yakın seçilir. Ya da tam bir yeşil rengin ifadesi (0, 255, 0) olabilir. Tüm kanallar 0 olarak seçilirse beyaz renk elde edilir. Hepsi 255 seçilirse siyah elde edilir.  Aşağıdaki örnek resimde RGB değerlerinin matriste yerleşim mantığı gösterilmektedir.

Bilgisayar üzerinde RGB renk modeli kullanılıyor olduğu için bu modelin bilinmesi yeterli olacaktır. CMYK modeli ise yazıcılar ve baskı cihazlarında kullanılır.

Şunu da belirtelim ki görüntü işlemede görüntüler genelde gri tonlarında işlenirler. Yani renkli bir resim işlenmek için öncelikle grileştirilir. Bunu yaptıktan sonra 3 kanal olan resim artık tek kanal ile ifade edilir. Bu kanal da renkli resimdeki üç kanalın aritmetik ortalaması alınarak bulunur : Gri Ton = (R+G+B)/3. Artık tüm pikseller sadece 8 bit ile temsil edilecektir. Bu da 0 ile 255 arası bir değer aldığı anlamına gelir. Böylelikle resim üzerinde çalışmak daha kolay ve hızlı olacaktır.

Bu işlem resim üzerindeki tüm piksellere tek tek uygulanır ve aşağıdaki gibi bir sonuç elde edilir:

Aslında burada yapılan işlem ile temel bir görüntü işleme çalışması yapılmış oldu. Zira bu temel işlem Photoshop gibi ağır görüntü işleme uygulamalarının temel fonksiyonu olarak da gelmektedir. Buradan anlayacağımız üzere aslında görüntü işlemede tüm yapılanlar pikseller üzerinde oynamaktan ibarettir. Aslında tüm o kompleks yüz tanıma, hareket algılama, cisim takip etme gibi görüntü işleme çalışmaları da birer piksel işleme olayıdır.

Yeri gelmişken bazı görüntü işleme çalışmalarından bahsedelim:

  • Yüz Tanıma: Yüz tanıma sistemleri bilindiği gibi güvenlik sistemlerinde kullanılagelen bir teknolojidir ve çok fazla uygulama alanı bulmaktadır. Gerçek zamanlı olarak video üzerinden yapılabileceği gibi resim işleme ile de yapılabilir. Yüzü tanımak için o yüzün veri tabanında tutulması ve gelen görüntünün veritabanındaki görüntülerle karşılaştırılarak tanınması amaçlanır.
  • Hareket Algılama: Hareket algılama elbette gerçek zamanlı video işleme çalışmalarına örnektir. Örneğin bir güvenlik kamerasının sürekli kayıtta olması yerine sadece bir hareket algıladığında kayıta geçmesi sağlanabilir. Bunu yapmak için de çerçevelerin birbirleriyle karşılaştırılarak oluşan olası değişimler göz önüne alınmalıdır. Bilindiği gibi videolar aslında saniyede pek çok kez (örneğin sinema da 25 kare) yenilenen çerçevelerden oluşur. Bu yüzden video işleme de aslında temelde resim işlemedir. 
  • Cisim Takibi: Cisim takibi pek çok uygulamada kullanılabilir. Örneğin kameranın görüş alanına giren bir kişinin, cismin, arabanın takip edilmesi amaçlanabilir. Bunun için öncelikle cismin yakalanması sağlanır. Bu işlem için de elbette cisme ait RGB değerleri kullanılır. Bu değerlerin keşfedilmesiyle bu değerler dışında kalan tüm objelerin renkleri siyah yapılır. Ardından cismin renk değerleri de beyaz yapılarak resim üzerinde istenen bölgenin beyaz olması sağlanır. Böylelikle beyaz bölgenin takip edilmesi ile amaca ulaşılmış olunur. 
  • Resimler Üzerinde İşlemler: Bu başlık altına resmin netleştirilmesi, grileştirilmesi, kontrast ayarları, gürültülerin giderilmesi (resim üzerindeki bozulmalar, tuz biber gürültüleri v.b.) gibi konular toplanabilir. Bu işlemler resim işleme programlarında sıklıkla kullanılır. Örneğin renksiz gri seviyedeki bir resmi renklendirme, gürültülü ve bozuk bir resmi onarma, resim üzerine yeni resim ekleme çalışmaları gibi...
  • Plaka Tanıma ve Optik Yazı Tanıma: Bir görüntü üzerindeki yazı ve sayı karakterlerinin algılanması da görüntü işlemeye girer. Bu OCR yani optik karakter tanıma olarak bilinir. Günümüzde en çok plaka tanıma sistemlerinde uygulandığı gibi tarayıcı vazifesi görmesi amacıyla kameranın kullanılması da sağlanmaktadır. Bunun dışında körler için tasarlanan programlarda çevredeki nesnelerin algılanmasında büyük rol oynamaktadır. Bu işlem yapılırken karakterlere ait temel görüntüler saklanır ve yeni resimdeki karakter eldekilerle karşılaştırılır. Böylelikle en yakın sonucu veren karakter olarak ifade edilir. 


Görüntü işleme çalışmaları bir süreci gerektirmektedir. Bu süreç öncelikle resmin elde edilmesi sayısallaştırılması ve temizlenmesi (gürültülerden arındırma), grileştirilerek işlenmeye hazır hale getirilmesini içerir. Daha sonra resme ilgilenilen resim işleme algoritmasının uygulanması ve bir çıktı elde edilmesi sağlanır. Nihayet oluşan çıktı ile ilgilenilerek bu resim üzerinde istenen analizin yapılmasıdır. Bu analizden kasıt elbette araç takibi, plaka tanıma, yüz tanıma tarzı bir işlemdir.

Yukarıda bahsedilenler sadece görüntü işleme çalışmalarının küçük bir kısmını kapsayabilir. Bununla daha ayrıntılı bir ilgili listeyi aşağıdaki gibi oluşturabiliriz:

  •  Güvenlik: Yüz tanıma, parmak izi tanıma, plaka tanıma, hedef izleme, görüntü iyileştirme, gerçek zamanlı güvenlik kamerası çalışmaları…
  • Endüstri: Üretim bandı üzerindeki ürünün tanınması ve bu görüntünün işlenmesi
  • Arkeoloji: Eski kalıntılara ait fotoğrafların netleştirilerek tahmin yapılması, tarihsel kalıntılara doku giydirme
  • Fotoğrafçılık: Fotoğraflar üzerinde yapılan netleştirme, düzeltme çalışmaları
  • Gazetecilik: TV ve gazete ortamlarındaki görüntüler üzerinde çalışma, TV görüntülerini oluşturma
  • Tasarım çalışmaları: Mimari yapıların modellenmesi
  • Banknot tanıma
  • İmalat: Üretim süreci ürün tespiti, nesne tanıma, ürün ayrıştırma, ürün hasar tesbiti, robotik…
  • Tıp: Medikal görüntüleme, MR, röntgen, görüntü iyileştirme, tomografi, ultrason…
  • Astronomi ve radar uygulamaları
  • Uydu görüntüleri üzerinden hava gözleme ve tahminlerinin gerçeklenmesi
  • Jeoloji: Yer altı kaynaklarının aranması ve yeraltının görüntülenmesi
  • Uzaktan algılama uygulamaları: Uydu görüntüleri ile nüfus yoğunluğu ve çevre kirliliği gibi öğelerin tespiti
  • Elektronik
  • Trafik: Araç takip sistemleri, plaka tanıma, trafik yoğunluğu algılanması…
  • Mimari
  • Haritacılık ve Jeodezi: Uzaktan algılama
  • Gıda: Gıda sınıflandırılması ve besin alanı tespiti.
  • Eğlence: Sanal gerçeklik uygulamaları ile gerçek zamanlı olarak oynanan oyunlar. Filmler üzerinde karaktere yeni bir biçim giydirerek karakterin hareketlerine göre hareket ettirilmesi.


Buradan anlayacağımız üzere görüntü işleme çalışmalarına ihtiyacın tükenmesi biraz zor olacaktır. Bu teknoloji ortaya çıkışından bu yana popülerliğini korumaktadır ve gerçek zamanlı, hayati önem taşıyan uygulamalarda hayatımızda yer edinmektedir.

Bu yazıda temel olarak görüntü işlemenin ne olduğuna değindik ve çalışmaları hakkında bilgi verdik. İlerleyen yazılarda görüntü işleme tekniklerini ayrıntılandırabiliriz.

İyi çalışmalar...

Hiç yorum yok:

Yorum Gönder