Bergimiz 2. yaşına girerken özene bezene hazırladığımız bu sayıdan herkese merhabalar! Her ay sizlere daha çok yararlanabileceğiniz, daha severek okuyacağınız bir dergi sunmaya çalışırken; bir de baktık iki yıl geçivermiş. Tüm okuyucularımıza bizi iki yıldır desteklediğiniz için teşekkür ederek yazıma başlamak istedim. Bu ay uzun zaman sonra tekrar bilgisayar bilimi köşemizde sizlerle buluşacağım. Çoğumuzun ilgisini çeken; ancak ne olduğundan da fazla emin olamadığımız bir konuyu ele alacağım bu ay: Bilgisayarlı görme. Ancak ondan önce hemen sizlere kapaktaki bilgisayar bilimi kızımızı tanıtmak istiyorum. Adı Lena ve görüntü işleme alanında en ünlü bayan kendisi; çünkü ilk görüntü işleme makaleleri yazılır, araştırmalar yapılırken, bir araştırmacı bu fotoğrafı incelemeye almış. O günden beri sembol halinde her yerde Lena kızımızı görebilirsiniz :)
Bilgisayarlı Görme Nedir?
Adından da anlaşılabileceği gibi, bilgisayarlı görme bilgisayar aracılığıyla görme eylemini gerçekleştirmektir. Ama burada üzerinde durmamız gereken asıl kavram "görmek"tir. Masanızın üzerine baktığınızda neler görürsünüz? Bir elma, bir portakal, bir de çiçek diyelim. Baktığınız anda bunların varlığını söyleyebildiniz, çünkü o nesneleri gördünüz; ancak bilgisayara da bir çiçek görüntüsü geldiğinde anında "bu çiçektir" diyebilmesini bekler misiniz? Veya elma ile portakalı ayırt etmesini? Hatta size bir görüntü versem ve buradaki kelebekleri göstermenizi istesem, hepsini bulmanız veya hiç yok demeniz en fazla kaç saniyenizi alır? Evet bizim için bunları yapmak belki çok kolay, ama o çok akıllı sandığımız bilgisayarlar için bir elma ile portakalı ayırt etmek bile bazen çok zor olabiliyor. Tüm bu saydıklarım, bilgisayarın gördüklerini anlamalarını sağlayan bilgisayar bilimi alt dalı olan bilgisayarlı görmeye aittir. Bilgisayarlı görmenin tam tanımını yapmadan önce bu alandaki uzman kişilerin tanımlarına göz atmanızı istiyorum (çevirebildiğim kadarıyla). Onlara göre bilgisayarlı görme:
- Bir veya daha fazla dijital görüntüden üç boyutlu dünyanın özelliklerini hesaplamaktır. (Trucco and Verri)
- Görüntülerden, fiziksel nesnelerin kapalı ve anlamlı tanımlarını oluşturmaktır. (Ballard and Brown)
- Resimlerden veya resim dizilerinden dünyanın betimlemelerini çıkartmaktır. (Forsyth and Ponce)
Bu tanımlara şimdi son bir tane daha ekleyeceğiz, o da Stockman ve Shapiro'nunki. Tekrar "görme" teriminin anlamının altını çizecek olursam, herhangi bir duyuyla elde edilen datadan görsel bilgi çıkarma işlemidir. Bilgisayar duyduklarımızın görüntüsünü çizebilir veya bir kokunun şiddetine göre bir görsel şekil oluşturabilir. Bu bağlamda bilgisayarlı görmenin amacı: herhangi bir duyumsanan veriye göre, nesneler ve manzaralar hakkında kullanışlı kararlar verebilmektir.
Burada nesne olarak belirttiğimiz şeyin özellikle görsel olarak algılanabilir ve maddesel olması vurgulanmalıdır. Bu noktada objelerin sınıflandırılması karşımıza çıkar. Bilgisayarlar, nesne sınıfları hakkında sahip oldukları bilgilere göre karar vereceklerinden, sınıflandırılma ne kadar düzgün yapılırsa o kadar başarılı sonuç alınır. Ancak dünyada bizim ayırt ederek kullandığımız yaklaşık 30.000 nesne kategorisi olduğu düşünülürse, bunun hiç de kolay olmadığı anlaşılabillir. Manzara ise birden çok nesnenin bir araya gelerek oluşturduğu bir bütünlüktür. Tanımlamamızda belirttiğimiz duyumsanan veri ise; görsel, ısıl, kızılötesi, basınç, MR gibi sensörlerden alınan ve görsel bilgi taşıyan tüm veriler olabilir. Bu bilgilere göre verilen kararlar ise: nesneleri tanıma, ayırt etme, sınıflandırma, sınırlandırma, belirleme, bulup getirme, değiştirme, doğrulama gibi durumlardır. Şimdi dilerseniz bilgisayarların görsel bilgileri yorumlaması nasıl başlamış, bir tarihini inceleyelim.
Tarihi
Bilgisayarlı görmenin ilk meyvelerini vermesi ta 1970'lere dayanmakta. Başlarda sadece yazılar gibi çok basit şekiller algılanabiliyordu. Çizgileri etiketlendirerek veya şekli devre ile göstererek işlemek bunlardan birkaçıydı. Bunu izleyen 1980'lerde şekline ve sınırlarına bakarak nesneler tanımlanmaya ve tanımlanan bu nesneler üzerinden kararlar verilmeye başlandı. Bu algoritmalar ise köşe saptama, gölgelendirerek şekil elde etme, fiziksel tabanlı modelleme gibi yöntemlere dayanıyordu. 1990'larda ise bir görüntünün değil, farklı açılardan birçok görüntünün işlenmesi başarılmıştı. Yüz tanıma, hareketten faktorizasyon tabanlı yapı çıkarma, görüntü bölümlendirme gibi aşina olduğumuz yöntemler kullanılmaya başlanmıştı. 2000'li yıllarda ise üç boyutlu modelleme günümüzün en ilgi çeken konularından bir tanesi.
Her Şey Çok Mu Yöntemsel? Hayır!
Bilgisayarlı görmeyi diğer bilgisayar bilimi alanlarından ayıran en önemli özellik ise, bir görüntüye uygulanan bir işlemin başka bir görüntüye uygulandığında aynı sonucu elde edememesi. Algoritmalar ne kadar deterministik olursa olsun, görüntülerin özelliklerine göre verdikleri sonuçlar da değişiyor. Mesela aynı nesnenin farklı açılardan alınmış görüntüleri ele alındığında, algoritmanız o nesnenin profilden görünümünü her resimde bulsa bile, ön yüzünü tanımayabiliyor. Objenin görüntüsü alınırken ışıklandımanın da önemi çok büyük, nesneye katılan gölgeler ve değişik ışıklandırmalar çizgilerin yakalanmasını önlerken, bilgisayar tarafından nesnenin algılanmasını da güçleştiriyor. Perspektif yanılgıları, nesnelerin göreceli büyüklükleri ve farklı ölçeklendirilmeleri de bilgisayarlı görme yöntemlerine kurulan en büyük tuzaklar. Nesnenin deforme olmuş olması ve arkaplanın çok karışık olması gibi görüntü kaynaklı hatalar ise farklı ön-işleme yöntemleri ve farklı filtrelemelerle giderilmeye çalışılan sorunlar. Son problem ise, nesne ne kadar pürüzsüz ve iyi tanınabilir olsa da, şekildeki gibi nesne kategorileri içindeki farklılıklar yüzünden nesnelerin fark edilmesi zorlaşıyor. Tüm bu zorluklara rağmen görüntüler ne gibi işlemlerden geçiyor, inceleyelim.
Bilgisayarlı Görmenin Basamakları
- Düşük seviye: Basitçe bakmak gerekirse, genel olarak üç ayrı basamakta görüntülerden görsel bilgi edinilmekte. İlk basamakta çeşitli görüntü işleme teknikleriyle, resimden bilgileri daha kolay çıkarmamızı sağlayacak başka bir resim elde ediliyor. Keskinleştirme, dağıtma, köşelerini elde etme, eşik değer uygulama, histogramını dağıtma, vb. işlemler uygulanarak ikinci evreye hazırlanıyor.
- Orta seviye: Bu evrede resimden resmin karakteristik özellikleri çıkarılıyor. Farklı bölgelerin renkleri, çembersel yaylar ve çizgiler, birleşik elemanlar gibi resmin öğeleri çıktı olarak verilirken, bir yandan da bu karakteristikler veri yapılarında tutulur.
- Yüksek seviye: Son seviyede de elde edilen özelliklerden görüntünün içindeki nesneler bulunabiliyor, başta belirttiğimiz bilgisayarın verdiği "kullanışlı kararlar" çıktılanabiliyor.
Genel olarak bu hatlara sahip olan bilgisayarlı görme, baştan sona izlenerek takip edildiğinde çıkan tablo adım adım şöyledir:
- Görüntü Edinimi (Image Acquisition): Nesneden çıkan fotonların yakalanıp görüntü haline gelmesi aşaması (IAD, Örnekleme, ..)
- Görüntü İşleme (Image Processing): Nesnenin görüntüsünü işleyerek istenilen özelliklerin çıkarılmasına zemin hazırlanması aşaması (Eşik değer uygulama, bükme, morfolojij işlemler) 2*. Bölümlendirme (Segmentation): Her zaman uygulanmasa da resmin bölümlendirilmesi ***** Buraya kadar olan bölüm düşük seviye bilgisayarlı görme olarak düşünülebilir *****
- Özellik Çıkarma (Feature Extraction): Genelde bir vektörde (veya başka veri yapılarında) tutulan resmin karakteristik özelliklerinin çıkartılması
- Hazırlanma (Training): Algoritmanın geliştirilmesi ve sınıf özelliklerine uygun olarak herhangi bir bilinmeyen verildiğinde hangi sınıfta olduğunu gösterecek yolların bulunması, yani sınıfların matematiksel modellerinin çıkartılması 4*. Sonradan İşleme (Post-processing): Bu da her zaman uuygulanmayan bir evre olmasına rağmen bazen resmin hazırlanma evresiyle eş zamanlı olarak değiştirilmesi, verilerin elde edilmesi gerekebilmektedir. ***** Buraya kadar olan bölüm orta seviye bilgisayarlı görme olarak düşünülebilir *****
- Tanıma (Recognition): Hazırlanma kısmında geliştirilen algoritmaya göre herhangi bir bilinmeyen verildiğinde onun sınıfının bulunması, yani hazırlanma bölümündeki modellere göre billinmeyenin sınıfının bulunması
- Yorumlama ve Anlama (Interpretation and Understanding): Artık analizin bitmesi ve bilgisayarlı görmenin amacı olan kullanışlı kararlar verme sonucuna ulaşılması ***** Buraya kadar olan bölüm de yüksek seviye bilgisayarlı görme olarak düşünülebilir *****
Neden Çok Popüler?
Resim arşivinizi yazıya döktüğünüzü düşünün.. Bütün ayrıntılarıyla anlattığınızda bile sadece bir resim bin kelimeden fazlasını anlatmaz mı? O zaman bilgisayarların her an her yerde olan ve çok daha bilgi kapasitesine sahip bu araçlardan yararlanması çok daha akılcı gelmiyor mu size de. Ayrıca başka türlü elde edemeyeceğiniz üç boyutlu modellemelerin de kaynağı bilgisayarlı görmeden geçiyor. İnsanların görmesiyle de bazen benzerlikler yakalayan, bazen de ilham alarak yeni yöntemler geliştiren bu alan biyolojiden, yapay zekaya hatta robotiğe kadar uzanır. Desen yakalama, optik, nörebiyoloji, sinyal işleme, istatistik, görüntü işleme gibi birçok farklı alanla da yakın ilişkisi vardır.
Uygulama Alanları
Bilgisayarlı görme günlük hayatımızla, tahmin edemeyeceğimiz kadar iç içe olan bir alandır. Kullanım alanları medikal teknolojiden, hukuki suçların tespitine; robotikten, arkeolojiye; mimari yapıların üç boyutlu maketlerinin oluşturulmasından, evrimin incelenmesine, ve daha bir çok alana yayılmıştır. Bunların başlıcaları:
- Sokaklarda ve trafikte, yaya ve araç tanınması; destekli sürüş (assisted driving); rota beirleme; park almaçları.
- İnternet aramalarında görüntü aramalarını iyileştirme, sanal albümlerde tanınmayı arttırma
- Beyin yapısının incelenmesinde benzerliklerin bulunup getirilmesi
- Görüntü veritabanlarında, içerik tabanlı bulup getirmelerin uygulanması
- Ekoloji çalışmaları için böceklerde kimlik saptama
- Döküman analizi
- Endüstride kalite kontrol denetimi
- Gözaltılarda havadan çekilen videolar ile olay ve nesne tanınması
- Videolarda nesne ve olay tanınması
- Kan hücresi ağacının üç boyutlu canlandırılması
- Üç boyutlu bir maddenin farklı açılardan görüntüleri ile 3D modelinin oluşturulması
Sonuç olarak hayatımızın birçok alanında farkında olarak veya olmayarak bilgisayarlı görmenin uygulama alanlarından geçiyoruz. Bu yöntemler aslında sadece bilgisayar bilimcileri tarafından değil de, her alanda neler yapılabildiği herkes tarafından bilinse, hem suç oranı azalır, hem fiziksel hastalıkların daha kolay tedavi edilmesi sağlanır, hem mimari eserlerin restorasyonu daha kolay yapılır, hem evrimsel gerçekler daha rahat kanıtlanabilir, hem ... Yani teknolojinin en hızlı çıkış yaptığı alanlardan biri olan bilgisayarlı görme daha çok emek isteyen, daha çok ilgi bekleyen bir alan. Bu konuda yapılan araştırmalara göz gezdirmek isterseniz kaynaklar bölümüne baş vurabilirsiniz.
Bir yazımızın daha sonuna gelmişken, hepimizin 2. yaşını kutluyorum. İkinci yaşımız nedeniyle ayrı bir bergi macerası yazımız olduğu için konudan fazla sapmadan bitirmek istiyorum ve geçen sene de dediğim gibi, daha nice yeni yaşlarda buluşmak dileğiyle...
Kaynaklar:
- http://en.wikipedia.org/wiki/Computer_vision
- http://www.cs.cmu.edu/Groups/cil/vision.html
- https://cow.ceng.metu.edu.tr/Courses/download_courseFile.php?id=1506
- http://www.cs.hmc.edu/~fleck/computer-vision-handbook/
- http://www.cs.bilkent.edu.tr/~duygulu/Courses/CS554/index.html
- http://www.cfar.umd.edu/~fer/optical/index.html
- http://www.cnn.com/2003/TECH/ptech/10/30/science.robots.reut/index.html