Bilgisayar Görüşü ve İmage İşleme Görüntü İşleme Computer Vision

Bilgisayar Görüşü ve İmage İşleme


1. Giriş

Önceleri yapay zekanın bir alt dalı olan bilgisayar görüsü (Computer Vision) bu gün akademik anlamda kendi çizgisinde ilerlemektedir. 1960’larda bir lisans öğrencisinin ödevi olabilecek, "bilgisayarlar nasıl görür ve tanımlar " sorusu bu gün başlı başına bir bilim dalı oluşturmuştur.

2. Bilgisayar Görüşü Nedir?

Bilgisayar görüşü , çevreyle herhangi bir fiziksel etkileşim olmaksızın, optik araçlar kullanarak cisimleri algılama ve buna göre bilgi toplama ya da çeşitli süreçleri yönetmektir. Bu tanım çerçevesinde bilgisayar görüsü doğal olarak çok değişik bilim dallarıyla iş birliği içerisinde olmalıdır. Bir örnek vermek gerekirse en klasik bilgisayar görüsü problemlerinden olan kameradan görülen bir cismin3 boyutlu resmini çıkarma sorunu ele alalım. Bu tarz bir sistemde şu disiplinlere ihtiyaç olacaktır,

• Makine mühendisiliği : Cismi kameraya düzgün gösterebilmek kamerayı ya da cismi hareket ettiren düzenek tasarımı.
Optik mühendisliği : Kameradan alınan imge kalitesini iyileştirmek için çeşitli optik yöntemler kullanılabilir.
Kamera teknolojisi : Kameralar çok çeşitlilik göstermektedir. Bunlar arasında duyarlılık, çözünürlük, ağırlık, elektriksel gürültüye dayanıklılık, titreşime, manyetik dalgalara, radyasyona, dayanıklılık , projeksiyon şekli ( perspektif, çizgisel gibi).
Sinyal işleme donanımı : Video kameralar genelde bilgisayarların işleme kapasitesini çok zorlayacak miktarda bilgi üretmektedir bu yüzden özelleşmiş donanıma ihtiyaç olacaktır.
Yapay zeka : Verilerin tanımını yapacak örüntü algılama(Pattern Recog-nition) yapacak yazılımın ve karar alacak uzman sistemlerin(Expert Systems) algoritmaları gerçeklenmelidir.
Yazılım Mühendisliği : Algılanan veriyi işleyip karar alma gibi karmaşık işlemleri yapacak bir yazılım gerekecektir.
Matematik : 2 boyutlu resimlerden 3 boyutlu cisimler çıkarmak ve bunları imge işlemelerini yapmak yüksek miktarda üst düzy matematik kullanmayı gerektirecektir. Bu da özellikle elektronik Mühendisliğinin ilgi alanına girmektedir.

3. imge isleme (Image Processing)

Bir çok disiplinle ortak çalışan Bilgisayar görü sistemlerinin en ayrılmaz parçası imge işleme algoritmalarıdır. Bu algoritmlar girdi ve çıktı olarak 3 ayrı kategoride incelenebilinir. 

imge işleme girdi : imge -> çıktı : imge 

imge analizi girdi : imge -> çıktı : ölçümler 

imge Anlama girdi : imge -> çıktı : tanımlama

Bu dokümanda temelde imge işleme ile ilgili konulara yer vereceğiz. Önce bazı tanımlamaları yapalım. İmge dediğimiz şey 2 boyutlu ve n*m büyüklüğünde bir matris ile modellenebilir. Bu matrisin her bir elemanı o pikselin siyah ve beyaz arasındaki şiddetini belirler. Piksellerin bit cinsinden değerleri ve imgenin yatay ve dikey piksel cinsinden boyutları, resmin kalitesini ve büyüklüğünü etkiler. 8 bitlik bir siyah beyaz bir imgede, eğer bir piksel O ise "siyah", 255 "beyazdır". Aradaki değerlerde orantılı olarak siyah-beyaz değerler alırlar.

İmgeleri daha iyi anlayabilmek için bir örnek verelim. 200*200 boyutunda ve her piksel için 8 bit kullanılmışsa. 200*200*8/8(bit sayısı/ bir byte taki bit sayısı) = 40000 byte= 40 kilobyte lık bir alan kapsar. Bu bilgiler eğer resim ikil eşlemli (bitmap) seklinde kayıtlıysa saklanırsa doğrudur. Bu dosyaların büyüklüğünü küçültecek değişik sıkıştırılmış imge biçimleri vardır.

Renkli imgelerin gösterim biçimi biraz daha farklıdır. Değişik gösterim biçimleri olmakla birlikte en yaygın olanı RGB [Red(Kırmızı), Blue(Mavi), Green(Yeşil)] gösterimidir. Bu gösterim her rengin bu üç rengin karışımıyla oluşturulabileceğini varsayar. Matematiksel olarak bu üç renk için ayrı ayrı matrisler düşünülebilir.

Bir imge işleme algoritmasında ki girdisi bir imge çıktısı başka bir imgedir, üç çeşit değişik durum gözlenebilir.

1. Çıktıdının bir noktasındaki konaç ( Coordinate) girdinin aynı konaçına bağlıdır.
2. Çıktının bir noktasındaki konaç girdinin aynı konacının komşu konaçlarına bağlıdır.
3. Çıktının bir noktasındaki konaç, girdideki her piksel değerine bağlıdır.

3.1. 3 Boyutlu görüntüleme

En kolay üç boyutlu imge gösterim şekli muhtemelen "derinlik haritası" ( depth map) şeklinde tutlan imgelerdir. Bu imgelerin 2 boyutlu gri düzeyi imgelerden farkı gri düzeyi bilgisi yerine derinlik düzeyi bilgisi bulundurmasıdır.

3.2. Fourier Metodları

Fourier dönüşümler sinyal işlemede önemli ölçüde kullanılan bir yöntemdir. Her sinyal temelde belirli bir frekanstaki sinyalin ve onun frekansının katları kadar farklı sinyalin, değişik oranlarda doğrusal (lineer) biçimde birleşmesinde oluşur. Örneğin tek boyutlu bir sinyali düşünelim ( ses mesela). Bu sinyal f, 2f, 3f … nf gibi frekansları olan değişik peryodik sinyallerden oluşacaktır. Bu sinyallerin katsayıları bize sinyalin karakteri hakkında önemli ölçüde ip ucu verecektir. Sayısal ses tek boyutlu analog bir sinyalin örneklenmesiyle elde edilir ( Örneğin saniyede 8000). Daha sonra bu sinyal yaklaşı 20 ms’lik pencerelere bölünür ve herbirinin Fourier dönüşümü alınır ve sonuç olarak ortaya spectogram denen ve sesin genel karakteristiğini veren bir grafik elde edilir.

İmgelerde ses gibi analog bir sinyalin örneklenmesi sonucu oluşmuştur bu yüzden ses analizinde kullanılan tekniklerin kullanılmasına şaşırmamalıdır, imgenin tek farkı 2 boyutlu bir sinyal olmasıdır.

Peki resimdeki frekansları azlığı ya da fazlalığı ne anlama gelmektedir. Eğer bir resimdeki frekanslar yüksek ise resimde hızlı değişimler olmaktadır. Eğer frekans genel olarak azsa, o zaman entropisi az bir resimdir.

Image

Figüre 1: Bir spectogram

Fourier methodları sürekli fonksiyonlar için tanımlanmıştır fakat resimlerdeki bilgi sayısal ve kesiklidir. Bunlar için DFT(Discrete Fourier Transfrom) kullanılır. DFT direk olarak kullanılırsa zaman alıcı bir algoritmadır fakat eğer problem düzgün parçalanırsa çok hızlı bir şekilde hesaplanabilir ve bu da FFT ( Fast Fourier Transform) algoritmasının temelidir.

3.3. Fourier Uzayında imge yumuşatmak

Bir imgede gürültü demek imgelerde genelde ani inişler ve çıkışlar demektir, bunlarda yüksek frekans bileşenlerine denk gelir. Eğer biz imgemizi bir frekans filtresinden geçirip yüksek frekanslara izin vermessek doğal olarak bir gürültünün etkisini azaltmış oluruz.

3.4 Gerçek uzayda imge yumuşatmak

Gerçek uzayda en kolay imge yumuşatma yöntemi, bir pikselin çevre piksellere göre ortalamasını almaktdır.

3.5 Kenar Tanımlama (Edge Detection)

İmge işlemede kenar tanımlamak önemli bir yer tutmaktadır. Bunun nedenleri arasında kenarların bulunmasının az zaman alması ve cisimlerin tanımlanmasıyla ilgili önemli ipuçları vermesidir.Teme 1de bir kenar farkı yüzeylerin yan yana gelmesiyle oluşmuştur.

3.6 Gradient tabanlı kenar ucu tanımlama

Kenarların uçlarını tanımlamak için kulanılan yöntemlerden biri de kenar üzerindeki eğimin sürekliyken süreksiz bir atlama yapmasıdır.Bu bir köşenin göstergesidir. Değişik kenar çeşitler vardır. Bunlardan bazıları :

Image

3.7 Kenar Birleştirme

Kenar tanımlayıcılar aynı doğru üzerindeki noktaları bize ger dönerler. Bizim bir sonra yapmamız gereken bütün bu noktaları birleştirip tek bir doğruya çevirmemizdir. Ayrıca karsımıza çıkacak sorunlardan bazıları da şunlardır. Kenarın küçük parçaları kaybolmuş olabilir, imgedeki gürültü resimde olmayan kenarları varmış gibi gösterebilir. Genelde kenar birleştirme yöntemleri ikiye ayrılır.

Yerel Kenar birleştiriciler Bu tarz algoritmalarda her nokta kendi komuşusuyla olan ilişkisine bakıp kenarı oluşturular.

Genel Kenar Birleştiriciler Bu tarz algoritmalarda ise, resmin genelindeki bütün noktalar aynı anda belirli bir benzerlik kriterine uyuyor mu yoksa uymuyor mu diye denetlenir, doğru denklemi gibi.

3.8 Yerel Kenar birleştirici metodlar

Bir çok kenar detektörü kenarın üzerindeki hehangi bir noktadaki eğimin yönü hakkında bilgi verir. Bu bilgi, kenarı oluştururuken oldukça faydalıdır çünkü bir birine komşu noktalar aynı türeve sahip olacaktır.

Yerel kenar birleştirici metodlar genelde belilrli bir noktada başlayıp komuşularını bir benzerlik testine sokarak devam ederler. Eğer noktalar benzerlik testine uyarlarsa noktalar şu andaki kenar kümesine eklenirler.

Daha sonra yeni eklenmiş noktalarla aynı işlem sürdürülür. Eğer noktanın çevresindeki herhangi bir nokta kenar özelliklerini taşımıyorsa kenarın sonuna gelmişiz demektir.

3.9 Kesimleme(Segmentation)

İmgelerden bilgi almanın bir diğer yoluda kesimelemedir. Kesimleme birbirine benzeyen belirli bir alanın diğerlerinde ayırmaya yarar.

2 Boyutlu : Resimdeki pikseller yoğunluklarındaki değişime göre gru-planırlar.
3 Boyutlu: Resimdeki pikseller derinliklerinin değişim hızına göre gru-planırlar.

Temel kesimle me şekilleri şunlardır.

Image

Şekli daha yakında görmek için üzerine tıklayınız.

3.8.1 Bölge Ayırma (Region Splitting)

Bölge ayırmanın temel prensibi şudur. İlk önce imge bir bütün olarak ele alınır. Sonra imgeye bakılır. Eğer bütün parçaları uyumluysa algoritma sonra erer. Eğer uyumsuzsa bölge 4 ana parçaya ayrılır ve her biri için algoritma devam eder. Bu işlem daha fazla bölünme olmayana kadar devam eder. Bir böl ve fethet taktiğidir. Olabilecek en kötü sonuç en küçük piksele kadar herşeyin bölünmesidir. Bu tür sonuçları engellemek için her bölünmeden sonra komşulara bakılır, uygun birleşme yapılabilir mi diye.

3.8.2 Bölge büyümesi (Region Growing)

Bölge büyümesi , bölge ayırmanın tam tersi yoldan giden bir algoritmadır. Başlangıç değerleri olarak küçük bölgeler birleştirilir. Herhangi bir başlangıç tohum(seed) nokta bulunarak bu yapılır. Bölgenin büyümesi durunca şu an herhangi bir bölgeye dahil olmamış noktalar seçilerek işleme devam edilir.

3.9 Optik Akış

Eğer zaman içinde bir dizi imge alırsak ve eğer ortamda hareket eden cisimler varsa, imge ve hareket eden cisim hakkında faydalı bilgiler toplanabilir. Örneğin hareket eden bir gök cismi düşünün. Değişik zamanlarda çekilmiş fotoğraflar incelenerek hangi pikselin cisme hangisinin hareket etmeyen uzaya ait olduğu anlaşılabilir. Eğer hareketleri düzgün inceleyebilirsek şu sorulara cevap verebiliriz.

1. Kaç tane hareket eden cisim var ?
2. Hangi yönlere hareket ediyolar ?
3. Düzgün yoksa belirli bir fonksiyona göremi ahreket ediyorlar
4. Ne kadar hızlılar.

Bir imge dizisinden, optik akış diye bir fonksiyon hesaplarız. Her piksel için V= (u,v) bulunur ki bu fonksiyon sahesinde şu değerler hesaplanır. Piksel resimde ne kadar hızlı hareket etmektedir. Piksel hangi hızda hareket etmektedir.

4. Cisim Tanımlama

Tanımlama adımı bir görü sisteminin son amaçlarından biridir. Cisim tanımlama

1. Cisimlere çarpmadan hareket etmek
2. Değişik cisimleri tutmak ve hareket ettirmek
3. Cisimleri incelemek

Ve diğer bir çok görev için kullanılır.

4.1 Değişmezler (Invariants)

Değişmezler basit cisimleri tanımlamakta kullanılabilir.

1. Cisimleri karşılaştırmak için çok basit bir yoldur.
2. Cisimlerin yerini ve yönünü tanımlamakta kullanılabilirler.
3. Bazı uygulamalar için yetersiz kalırlar.

4.2 Bilgisayar görüsü için geometrik modelleme

Bir geomterik modelleme için 3 boyutlu cisimleri gösterebilme yeteneğine ihtiyacımız vardır. Bu gösterimde :

1. Geometri
2. Topoloji
3. Diğer özellikler( Tolerans değerler, Renk, Kaplama ete.)

İmgelerden elde ettiğimiz 3 boyutlu görüntüleri gerçek modellerle karşılaştırmak en önemli uygulamalardan biridir.

4.2.1 Tel çerçeve ( Wire frame) modeller

1. Kenarlar ve köşe konaçları bir listede tutulur.
2. Polyhedral gösterim uygulanır.
3. Kenar tabanlı eşleştirme yapılır.
4. Karmaşık ve Olanaksız cisimler gösterilebilir.

4.2.2 Hesaplanabilir Katı Cisim Geometrisi ( Computational Solid Geometry)

Bu modelde cisim belirli bir şekli olan daha küçük cisimlerden oluşur. Örneğin küpler küreler vs. Modelde küme işlemleri kullanılır. Örneğin birleşme, kesişme, fark vs.

4.2.3 Sınır Gösterimi

Sınır gösterimi Hesaplanabilir katı cisim geometrisinin daha karmaşık ve gelişmiş bir halidir. Büyük bir bir topolojik ağ da birbirine bağlanmış küçük cisimlerden oluşmaktadır. Bu gösterim biçimi bilgisayar görüsü için en doğal gösterim yollarından biridir. Bu tarz gösterimde temelde iki çeşit özellik vardır

1. Topoloji: Cisimlerin ( yüzler, kenarlar, noktalar) birbirlerine nasıl bağlandığını gösterir ir
2. Geometri : Bağlı olan her cismin yapısını gösterir.

Bir köse sadece x,y,z noktasından oluşur. Kenarlar çizgi, yada eğimli yaylardan oluşabilir.

4.2.4 3 boyutlu modellerde istenebilecek özellikler

Bilgisayar görüsü için 3 boyutlu gösterim şunlara uygun olmalıdır.

1. Modeldeki cisim özellikleriye , gözlenen cisim arasında direk eşleyebilme
2. Direk konum ve yönelim hesaplanabilirliği
3. Görünümün her hangi bir bakış açısından hesaplanabilmesi.

4.3 Model tabanlı tanımlama

1. Tanımlama görüntü ile model arasında bir eşleme problemidir.
2. Eşleme klasik bir yapay zeka problemidir.
3. Bir çok değişik metod bu problemi aşmak için uygulanmıştır.
4. Heseplama olarak karmaşık ve yoğun bir işlemdir.

Simdi bunlardan önemli 2 tanımlama şeklini görelim.

4.3.1 Ağaç(Tree) tabanlı arama metodları

Ağacın her düğümü tanımlanacak cisimler için belirli bir model primitiv eşlemesini gösterir.Ağacın m tane dalı vardır ki bunlar bunların herbiri bir model prim-itivine(kenar, yüzey vb.) denk gelir. Ağacın her düzeyi bir model primitivini betimler. Düzey ve düğüm bir eşleşmiş çift oluşturur. Sonra ağaçta bir tarama yapılır ve sonuçta bir eşleşme çifti ortaya çıkar. Sonuca yorumlama ağacı denir.

4.3.2 Çizge araması ( Graph searching)

Cisim modeli ve manzara özellikleri (scene features) ilişkisel çizge yapısında (relational graph structure) gösterilir ki bu gösterim biçimi bilgisayar görü sistemlerinde oldukça yaygındır.

Bir çizge şunlardan oluşur

1. Birbirine bağlarla ilişkilendirilmiş düğüm kümesi
2. Her düğüm bir cisim özelliğini betimler
3. Düğümler gösterdikleri özelliklere göre değişik biçimde isimlendirilebilir (büyüklük, biçim, alan vb.)
4. Bağlar özellikler arasındaki ilişkileri belirler. Örneğin: Özelliklerin merkezi arasındaki uzaklık

Tanımlama :

1. Manzaradaki cisimle elimizdeki modeli eşleme sorunu.
2. Eşleme görünüm engelleyen diğer cisimleride göze almak zorundadır.
3. Elimizdeki cisim görüntüden elde edilen cisimden fazla özellikler sergileye-celtir. Örneğin görünmeyen kısımlar.
4. Bu yüzden amacımız bütün model yerine bir alt kümeyi eşeleme olmalıdır.
5. Bu oldukça büyük bir arama işlemidir.
6. Çizge teorisi başlı başına büyük bir konudur.

5 Çoklu görü geometrisi ( Multiple View Geom-etry)

Daha önceden belirtildiği üzere bilgisayar görüsünde en önemli sorunlardan birisi, bir kaç açıdan fotoğrafı çekilen bir cismin 3 d imgesini oluşturmaktır. Bu işlemin nasıl yapıldığını anlamadan önce bazı temel kavramlardan bahsetmek gerekir.

5.1 Türdeş konaç sistemi ( Homogeneous Coordinate System)

N boyutlu br uzaydaki noktalar arasındaki ilişkiler dönüşüm olarak tanımlanır. Doğrusal dönüşümler en önemli dönüşümlerdir ve bir matrbc ile gösterilebilirler. N boyutlu bir uzaydan M boyutlu bir uzaya olan doğrusal dönüşüm T [M] [N] boyutlu bir matris ile belirlenebilir. Çok değişik dönüşüm biçimleri vardır. Bunlardan ilk akla gelenler :

1. Yer değişimi (Displacement) : konum ve yönelim değişimi. 6 tane özgürlük boyutu (D.O.F) vardır. Bunları 3 ü konum 3 de yönelim içindir. En önemli doğrusal dönüşmlerden biridir. Temelde yerel koordinat sistemindeki bir cismin hareketini belirlemek için kullanılır.

2. Perspektif izdüşüm : 3 boyutlu uzaydaki perspektif bir kameranın 11 özgürlük boyutu vardır ve 6 sı kameranın yer değişimi içindir. Perspektif bir kamera temelde 3d -l 2d dönüşüm yapar ve z bileşeninin büyüklüğüne göre oranlama yapar.

3. Orthogonal izdüşüm : Perspektif gibi z ye göre oranlama yapılmaz.

Yukarıda sayılan dönüşümler 3 boyutlu uzayda ya da 3 —> 2 boyutlu uzaylarda geçmektedir. Bunların benzerleri N boyutlu bir uzayda da vardır.

Daha önce belirtildiği gibi bu dönüşümler matris olarak tanımlanır ve bir x vektörü dönüştürülmek istendiğinde bu matrisle çarpılır. Türdeş konaç sistemi bu tarz sistemlerde bildiğimiz normal konaç sistemine göre oldukça fazla yarar sağlar.

Türdeş konaç sisteminde, N boyutlu bir nokta N +1 bir elemanla gösterilir yani bir fazlalık vardır. Örneğin 2d uzay (x, y) noktası türdeş konaç sisteminde (kx, ky, k) gösterilir, k burada değişen değerler alabilir ama sonuç hep aynıdır. (1,2) =
(1,2,1) = (2,4,2) = (3,4,3)… vb. yani (x,y,w) türdeş noktası türdeş olmayan sistemde (x/w, y/w) ye dönüşür, w nin sıfır olduğu zaman nokta sonsuzdadır. Yani (1,2,0) (5,3,0) noktaları sonsuzdadır. Homojen konaç sistemi sayesinde sonsudaki noktaları gösterebiliyoruz. Bu önemli bir sonuçtur, çünkü perspektif izdüşümde paralel doğrular sonsudaki bir noktada birleşir . Başka bir değişle sonzudaki noktalar imge düzleminde gerçek bir noktaya denk gelmelidir, M x x dönüşümünde x in sonsuzda mı ya da normal bir boyutta mı olduğu bizi ilgilendirmemelidir ve türdeş konaç sisteminin kullanılması bunu sağlar.

5.2 Kamera kalibrasyonu

Bir cismin tanımlanmasından önceki ilk süreç kamera parametrelerinin bulunmasıdır. Bu bir kalibrasyon cismi sahesinde olabilir. Bu cisimden ve belirli bir kameradan çekilen imgeden elde edilen eşleştirmeler kamera kalibrasyon matrisini veririr. Örnek verelim. Bir tane perspektif kameramız olsun. Bu kameramızın bir dış bir de iç parameterleri vardır. Dış parametreleri konum ve yönelim ( 3+ 3 = 6 özgürlük derecesi) iç parametreleri ise ( optik uzunluk, x yönündeki birim uzunnluk, y yönündek birim uzunluk vb. toplam 5 tane). Bir perspektif kameranın 3*4 boyutunda bir matrisi vardır ve toplam 11 parametrenin bulunması gerekmektedir. Bir kalibrasyon algoritması temelde 3d-2d eşlenikleri girdi olarak alır. Bu eşleşmeler ya imge işleme algortimaları sayesinde ya da bizim tarafımızdan elimizle işaretlenerek bulunur. Bu algoritmanın 11 parameter için 11 denkleme ihtiyacı vardır ve her 3d-2d eşleşmesinde 2 denklem gelir. Sonuçta bu problemi çözmek için 6 eşleşme yeterlidir.

Fakat 2d (imge üzerindeki) ölçümler büyük bir doğrulukla yapılabilmesine rağmen 3d noktaların ölçümü oldukça hatalı olabilmektedir. Bunu telafi edebilmek için çok daha fazla sayıda eşleşmeye ihtiyaç vardır (Genelde 5* minimum). Bu denklemleri direk çözmek yerine bir iterasyonla hatayı en aza indirgemek gerekir. Bunun için Newton Iterasyonu ya da onun bir varyasyonu olan Levenberg-Marquard algoritması kullanılabilir.

5.3 Üçgenleme

imge üzerindeki bir pikseli yaratan 3 boyutlu noktayı bulmak için en az iki kamera ya da farklı açılardan çekilmiş 2 ayrı görüntü gerekir. Bunu şöyle kısaca anlatabiliriz. Bir pikselin 3 boyutlu uzaya dönüşümü bir ışındır. Bu ışın üzerindeki herhangi bir nokta bu pikseli yaratabilir. Aynı noktanın izdüşümüne ait 2 ayrı ışını kesiştirebilirsek bu noktayı bulmuş oluruz. Buna Üçgenleme denir ve en az iki ayrı kameraya gerek vardır. Fakat daha az hatalı sonuçlar elde etmek için daha çok kamera kullanılır.

Posted in Genel.

Bir cevap yazın