GebzeYüksek Teknoloji Enstitüsü Bilgisayar Mühendisliği Bölümü PK Gebze/Kocaeli

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "GebzeYüksek Teknoloji Enstitüsü Bilgisayar Mühendisliği Bölümü PK.141 41400 Gebze/Kocaeli"

Transkript

1 GebzeYüksek Teknoloji Enstitüsü Bilgisayar Mühendisliği Bölümü PK Gebze/Kocaeli Teknik Rapor Seminer Raporu X TM # : Başlık : Görüntü Dizilerinde Hareket Tahmini Anahtar Kelimeler : Yazarlar : Hareket tahmini, blok karşılaştırma algoritmaları, optik akı, hareket araştırma algoritmaları,diferansiyel tabanlı optik akı algoritmaları. Münibe Şimşek Tarih : Yayın Dili : Türkçe

2 Özet Hareket Telafi (HaT) yönteminin en temel işlemlerinden biri hareketin nasıl olacağının belirlenmesini sağlayan Hareket Tahmini (HT) yapısı, diğeri ise hareketin nasıl olduğunu belirlemek amacıyla Vektör Alanı (VA) oluşturulmasıdır. HT işlemi için Blok Karşılaştırma algoritmaları basitliği nedeniyle en sık kullanılan algoritmalardır. Bu algoritmaların temel mantığı bir önceki görüntüden üzerinde işlem yapılan görüntü için en uygun bloğu bulmaktır. Günümüzde kullanılan birçok Blok karşılaştırmaya dayanan HT tekniği bulunmaktadır. HT yapılabilmesi için efektif bir hareket araştırma algoritması kullanılması gerekmektedir. HT oluşturmak icin kullanılan temel yöntemlerden bir diğeri Optik Akı (OA) algoritmalarıdır. Bu algoritmalar doğru hareket vektör alanları oluşturdukları için hesaplama zamanları yüksek olmasına rağmen düzgün hareket vektörleri gerektiren uygulamalarda kullanılmaktadırlar. Bu çalışmada genel olarak HT`nin neden gerekli olduğundan bahsedilecek ve HT için kullanılan yöntemler Blok Karşılaştırmaya Dayanan Algoritmalar ve Optik Akı Algoritmaları ana başlıkları altında ayrıntılı olarak incelenecektir. Anahtar Kelimeler Hareket tahmini, blok karşılaştırma algoritmaları, optik akı, hareket araştırma algoritmaları,diferansiyel tabanlı optik akı algoritmaları. Abstract Motion compensation consists of two basic components: Motion Estimation, which allows to model the motion of interest, and Vector Field generation. For Motion Estimation Block matching and Optical Flow algortihms are among the most widely used methods. The basic logic behind Block matching is that it compares the frame in hand with the previous one and finds the best matching blocks in both frames. In Optical Flow based motion estimation the motion vectors of objects are calculated individually based on models describing the motion. This report, briefly, explaines motion compensation and addresses the applications where motion compensation is required. As two seperate sections, the two major methods used for motion estimation, Block matching and Optical Flow algorithms are reviewed in a comparative manner. Keywords Motion estimation, Block Matching Based Algorithms, Optical Flow, Motion Search Algorithms, Differantial Based Optical Flow Algorithms.

3 Görüntü Dizilerinde Hareket Tahmini Münibe Şimşek Gebze Yüksek Teknoloji Enstitüsü, Bilgisayar Mühendisliği Bölümü, Sunuş Hareket bir çok görüntü dizisi için önemli problemlerdendir. Hareketin modellenmesi ve hareketten kaynaklanan olumsuzlukların giderilmesi için öncelikle görüntünün nasıl oluştuğunun ve hareketin nelerden kaynaklandığının bilinmesi önemlidir. Görüntü dizilerindeki hareketlerin iki temel kaynağı vardır. Bunlardan ilki objenin hareketi diğeri ise kamera hareketidir. Dolayısıyla obje hareketinin modellenebilmesi için öncelikle kamera hareketinden kaynaklanan hareketin incelenmesi ve elimine edilmesi gerekir. Objenin 3B hareketi çeşitli projeksiyon sistemleri ile B hareketlere dönüştürülür. Bu B hareket genellikle Açık Hareket yada optik akı olarak adlandırılır. B hareketin modellenmesi görüntü işleme ve sıkıştırma, bilgisayarlı görme ve görüntü kodlamada kullanılan en önemli ve zaman alıcı işlemlerden biridir. Görüntü sıkıştırmada hareket modelinin bilinmesi geçici ve gereksiz verilerin elimine edilmesini kolaylaştırarak hem daha iyi sıkıştırma hemde hız kazandırır. Görüntü işleme için hareket modelleri genellikle dönüştürme, gürültü bastırma ve bulanıklık giderme için kullanılır. Bilgisayarlı görme de ise kamera hareketinden kaynaklanan gürültülerin düzeltilmesi için kullanılır. Görüntü dizilerinde hareketin modellenmesi için kullanılan yöntemler Hareket Tahmin (HT) yöntemleri olarak adlandırılır. Hareket tahmin algoritmaları kullanılarak sürekli uzay koordinatları için vektör değerleri içeren bir fonksiyon elde edilir. Bu fonksiyon pratik uygulamalarda genellikle sonlu, küçük sayı parametreleriyle ifade edilir ve bu yapı Hareket Alanı olarak adlandırılır. T x = ( uv, ) Hareket vektörü x( x) ( u, v) T = Hareket Alanı Görüntü dizisine ait olan hareket vektörlerinin 3 temel özelliği içermesi beklenir. Bu özellikler şunlardır. 1. Doğru yerdeğiştirmeyi vermesi.. Düşük tahmin (prediction) hatasına sahip olması. 3. Düşük entropi. Bir vektör alanı oluşturulurken hangi özelliğinin daha önemli olacağı hangi uygulamada kullanılacağına bağlıdır. Örneğin model tabanlı kodlama yada HaT

4 için ilk özellik daha önemli iken hibrit kodlama için ikinci ve üçüncü özellik daha önemli olmaktadır. HT algoritmalarının sonucu hareket vektörleridir ve bir algoritmanın performansı vektörlerin gerçek harekete uygunluğuna ve hesaplama kompleksliğine göre belirlenir. Pratikteki uygulamalar için tespit edilebilen hareketin büyüklüğü önemlidir ve bu tespit edilebilirlik sahne büyüklüğüyle alakalıdır. Örneğin HDTV için tespit edilebilen hareketin büyüklüğü 100 piksel iken düşük çözünürlüğe sahip video konferans/ telefon için bu büyüklük yaklaşık 10 piksel olabilir. Bu aynı zamanda bir görüntü dizisinde hangi hareket büyüklüğüne sahip olumsuzlukların uygun biçimde giderilebileceğini de belirler. Genellikle bir görüntü dizisindeki hareket vektörleri görüntü yoğunlukları ile hesaplanır. Yoğunluk değerinin yanı sıra renk bilgisini de kullanan hareket tahmin yöntemleri mevcuttur. Yeterince aydınlık olmayan ortamlardan elde edilen görüntü dizileri için bu algoritma uygun sonuçlar vermemektedir [1]. Görüntüdeki hareketelerin tespit edilmesi aşamasında yoğunluk değerlerinin kullanılması bazı problemeleri de beraberinde getirecektir. Bu görüntüler problemli görüntü dizileri olarak adlandırılırlar. Problemli görüntü içeriklere birkaç örnek şu şekilde verilebilir; Açıklık problemi: Görüntü içeriğinin belirli bir bölge için 1B (bir doğru biçiminde) özellik içerdiği durumlar olarak ifade edilebilir. Bu durumlarda mevcut görüntüdeki o bölgenin referans görüntüde nereye takabül ettiğinin bulunması zor olmaktadır. Insanlar açısından bu durum problem teşkil etmese bile hareketi tespit eden algoritmalar için, kullandıkları metriklerin özelliklerinden dolayı, bu durumu aşılması gereken önemli sorunlardan biridir. Bu problemin çözümü için, kullanılan karşılaştırma metriklerinde değişimler yapılabilir, yalnızca yüzeye dik olan vektörler kullanılabilir yada çevre bloklar için belirlenen hareket vektörü bu bölge için de kabul edilebilir. Görüntü içeriğinde kendini tekrar eden yapılar bulunması: İç içe geçmiş halkalar, bir daire etrafında birden fazla aynı biçimli yaprak içeren çiçek figürleri (bunlar açıklık problemlerinin bir çeşidi olarak tanımlanabilir) gibi yapılar ihtiva eden görüntülerin içeriği periyodik olarak değişim gösterdiği için geniş alan içinde inceleme yapan algoritmalarla birden fazla lokal minimum değeri elde edilmesine ve gerçek hareketle uyumsuz, genelde gerçek hareketten büyük, hareket vektörleri elde edilmesine sebep olur. Gürültülü görüntüler: Görüntü içeriğindeki gürültü nedeniyle global minimum değerlerin gerçek hareketle uyuşmaması söz konusu olabilir. Doğru hareketin tespit edilmesi birçok uygulama için önemli olduğundan geliştirilen algoritmaların gürültü etkisinden mümkün olduğunca az etkilenmesine dikkat edilmelidir. Gürültünün tüm görüntü yüzeyinde sabit

5 olarak dağıldığı düşünülürse incelenen görüntünün yoğunluk değeri Nxyt (,, ) x, y noktası için t anında eklenen sabit gürültü olmak üzere, Jxyt (,, ) = Ixyt (,, ) + Nxyt (,, ) olacaktır. Bu değer tüm hesaplamalara dahil olacağı için elde edilen karşılaştırma sonuçlarında değişime sebebiyet vererek yanlış sonuçlar elde edilmesine neden olabilir. Bu olumsuz etkiyi en aza indirmek için SNRmatch (Signal to Noise Ratio Match) filtreleri kullanılmaktadır [1]. Bu filtrenin büyüklüğü kullanılan görüntü korelasyon yöntemine bağlı olarak belirlenmesine rağmen bazı problemler, periyodik şekiller içeren görüntüler, sadece bu kriterin büyük tutulması ile giderilemez. Bu durumlar için kabataslak bir çözümden iyi çözüme doğru ilerlemeye dayanarak hareket tespit eden algoritmalar kullanılması uygun olabilir. Çok gürültülü görüntü kaynakları olduğu durumlarda ise araştırma uzayını geniş tutmak iyi sonuçlar elde edilmesini sağlayabilir fakat bu durum hem hesaplama zamanını arttıracak hemde hareket alanında bulanıklaşmaya sebep olacaktır. Bu bulanıklaşma Karşılaştırma Kriteri (KK) olarak ortalama hesaplayan yöntemler kullanılarak azaltılabilir. Gürültünün yoğun olduğu görüntü dizilerinde düzgün hareket vektörleri elde etmek için kullanılabilecek diğer yöntemler ise iki frame yerine 3 frame (3DRS algoritması gibi) kullanmak yada hareket yörüngesinde Kalman filtresi uygulamak olabilir [1]. Yetersiz Doku: Görüntü içeriğinin yeterli doku yapısına sahip olmadığı durumlarda birçok bölge için belirsizlik ortaya çikmaktadir. Kendi etrafında dönen saydam bir top bunun en güzel örneklerindendir. Data Uyumsuzluğu: Hareket modeli ile datanın uyumsuz olduğu görüntü dizileri. Görüntü yoğunluk değerlerinin değerlendirilmesinden kaynaklanan bu problemleri gidermek ve hareket vektör alanlarnı geliştirmek için kullanılan yöntemlerden biri de kullanılan algoritmalara uygun kesinlik (certainty) ölçümleri 1 kullanmak olabilir [1]. Hareket vektörlerinin dikkate alınması gereken özelliklerinden biri de ne kadar doğru sonuç (accuracy) verdiğidir. Vektörlerin doğruluğu tahmin işlemi frekans uzayında yapıldığı için görüntü içeriğine bağlı olarak değişecektir. Mükemmel bir tahmin için görüntüdeki sinyalin frekansı ile hareketi telafi edilmiş tahmin sinyali arasındaki fark sıfır olur. Görüntü frekansı ile tahmin edilen vektörler kullanılarak hareketin düzeltilme işlemi gerçekleştirildikten sonra elde edilen yeni frekans değeri arasındaki fark 1 Kullanılan bazı kesinlik ölçümleri (CM) şunlardır: Blok karşılaştırma tabanlı algoritmalarda en sık, En iyi Değer ve En İyi İkinci Çözüme olan Uzaklık ölçümleri kullanılır. Bunun dışında Anandan tarafindan gelistirilmis iki yöntem (Anandan1 ve Anandan), 1B Karşılaştırma Değeri üzerindeki Eğrilik, B Karşılaştırma Değeri üzerindeki Eğrilik, Birikmiş Fark ve Hareket Vektör Koveryansı gibi ölçümlerde kullanılmaktadır. OA algoritmalarinda kullanılan CM`ler; Normalize edilmiş Pik Yüksekliği ve Burt,Ohta ve Hessian tarafindan geliştirilen ölçümlerdir.

6 Tahmin Hatası olarak ifade edilir ve ne kadar küçükse okadar iyi bir HT gerçekleştirilmiş olur. Sonuç olarak tahminin doğruluk miktarı iyi bir vektör alanı oluşturulmasıyla doğru orantılıdır. HT Algoritmalari uygulama biçimlerine göre temel başlık altında incelenebilir. Bunlardan ilki Blok Karşılaştırmaya Dayanan Algoritmalar (Block Matching / Spatial Matching Based Algorithms) diğeri ise Optik Akı (OA) algoritmalarıdır. Bu bölümde detaylı olarak bu iki başlık altındaki algoritmalar incelenecektir.. Blok Karşılaştırmaya Dayanan Algoritmalar Blok karşılaştırma algoritmalari mevcut çerçevedeki her bir blok için referans çerçevede o bloğun karşılığı olan bloğu gösteren bir vektör hesaplar. Işlem adımları şu şekilde özetlenebilir; 1. Mevcut çerçeve ( I t ) genelde kare biçiminde alt bloklara ayrılır. Bu bloklar genellikle 16x16 boyutlarındadır.. Mevcut çerçevedeki bu blok ile referans çerçevedeki ( I t + 1) aynı pozisyondaki blok ve onun komşu blokları karşılaştırılır. Bu karşılaştırmalar KK kullanılarak bütün alt bloklar için gerçekleştirilir. 3. Bu karşılaştırma sonucunda her (x, y) pozisyonundaki B bloğu için referans görüntü de aynı boyutta ve en iyi KK değerine sahip ( x + uy, + v) pozisyonunda bir blok belirlenir. Karşılaştırma işlemi için seçilen Araştırma Alanı (AA) mevcut çerçevedeki blok pozisyonunun referans çerçevedeki karşılığı ve o bloğun etrafından p (araştırma parametresi) piksel uzaklığındaki alandır. P piksel büyüklüğü bulunabilecek maksimum hareketin de büyüklüğünü belirler. Büyük hareketler için p değerini arttırmak hesaplama kompleksliğini de arttıracaktır. Genellikle p 7 piksel olarak alınır. Şekil 6` de AA yapısı ve blok karşılaştırma yöntemi görülmektedir. Şekil-6. AA yapısı ve Blok Karşılaştırma yöntemi.

7 HT algoritmaları karşılaştırma işlemlerini KK (yada maliyet fonksiyonları) vasıtasıyla gerçekleştirirler. Hesaplama maliyeti bakımından düşük olması nedeniyle en sık tercih edilen KK fonksiyonu Mutlak Fark Ortalamasıdır (Mean Absolute Difference) (MAD). Formüldeki N blok boyutunu C mevcut bloğu R ise referans bloğu ifade eder. N 1 N 1 1 MAD = C ij R N i= 0 j= 0 ij (1) Bunun dışında kullanılan diğer KK ler şunlardır; 1. Mutlak Fark Toplamı (SAD) (Sum of Absolute Differences): En çok kullanılan değer fonksiyonlarından biri de SAD metriğidir. Şu şekilde formülize edilir. N 1 N 1 SAD = C R i= 0 j= 0 ij ij (). Ortalama Karesel Hata (MSE) (Mean Squared Error): N 1 MSE = C ij R N 1 N 1( ) i= 0 j= 0 ij (3) 4. Düzenli Hata kriteri: Araştırma bloğundaki mutlak hata değeri belirli bir eşik değerinden fazla olan görüntülerin sayısı. 5. Korelasyon: Piksel değerlerinin ağırlıklı çarpımları hesaplanarak her pozisyon için korelasyon değeri belirlenir. Maksimum korelasyon değerine sahip pozisyon hareket vektörünü belirler. Referans çerçevedeki altbloklar ve hareket vektörleri ile oluşturulan hareket telafi işlemi yapılmış görüntü Pik-Sinyali / Gürültü Oranı (Peak-Signal-to-Noise-Ratio) (PSNR) ile karakterize edilir [1]. PSNR şu şekilde hesaplanır; PSNR (orjinal verinin pikden pike değeri) 10 log (4) MSE = 10 Aşağıda ayrıntılı olarak anlatılan algoritmaların tamamı (hiyerarşik araştırma algoritmasi hariç) görüntü çözünürlüğünde işlem yaparlar ve Ayrıntılı (Tam) Araştırma dışındaki algoritmaların tamamının yaklaşımı kaba bir hareket vektörü ile başlanıp ayrıntılı vektörlere doğru ilerlenmesidir. Bu işlemler yapılırken araştırma penceresi üzerinde bloğun kaydırılması (hiyerarşik yöntem hariç) söz konusu olmaktadır. Bu durumda birçok tekrarlı inceleme söz konusu olmaktadır. Bu yapının ilk bakışta hata oranını azaltabilen bir özellik kazandırdığı

8 zannedilebilir. Fakat iç içe geçmiş araştırma pencereleri hareket vektörleri için alt_optimal kenarları yöneten ilginç bir ilk dağılım olasılık varsayımı oluştur [1]. Yani hiyerarşik araştırma yapısında olduğu gibi diğer algoritmalarda da iç içe geçmeyen araştırma alanları kullanılarak efektiflik arttırılabilir. İç içe geçmeyen pencere kullanmanın bir diğer avantajı da az iterasyonla daha büyük hareket vektörlerinin hesaplanabilmesidir. Aşağıda açıklanan algoritmalarin tamamında ç içe geçmeyen inceleme alanları kullanılmaktadır..1. Ayrıntılı Araştırma En basit ve hesaplama zamanı en yüksek olan blok karşılaştırma algoritmasıdır. Bu algoritmada her mevcut blok için araştırma penceresindeki tüm pozisyonlar değerlendirilir ve değer fonksiyonları hesaplanır. Yani N-1 lik bir yer değiştirme için (N -1) pozisyonun incelenmesi gerekir. Sonuç olarak en iyi eşleştirme sağlayan pozisyonlar ve tüm algoritmalar arasında en yüksek PSNR değerleri bu yöntemle elde edilir. Tüm olası pozisyonlar değerlendirildiği için Doğru Hareket Alanı tespitinde kullanılır. Diğer blok karşılaştıma algoritmalarının birçoğunun amacı daha az hesaplama zamanıyla ayrıntılı araştırma algoritmasıyla elde edilen PSNR değerlerine ulaşabilmektir [1]. Hesaplama zamanı çeşitli yöntemlerle azaltılarak algoritmanın performansı arttırılabilir. Andr e Zaccarin tarafından [] de ifade edilen teknikle çok az performans kaybıyla araştırma sayısı sabit faktörler oranında azaltılmıştır. Bu azalmayı sağlamak için piksel altörnekleme (seyrek araştırma penceresi kullanmak gibi) veya blok altörnekleme (bloğun yarısı yada dörtte biri için hareket alanı oluşturup daha sonra kalan kısımlar için bu vektör alanı kullanılabilir) kullanılmıştır. Bunun dışında KK değerleri sıfır hareket için en baştan hesaplanarak parça parça incelenen blokların bu bölegeye kadar olan KK değerleri, ilk hesaplanan değerlerden (KK nın yapısına göre küçük yada) büyük ise o bloğun tamamı incelenmeden blok elimine edilebilir. Bu yöntem vasıtasıyla toplam incelenmesi gereken blokların %86 sı hesaplanmadan geçilebilmektedir. Ayrıca Ayrıntılı Araştırma algoritmasında kullanılan SAD kriterinin daha hızlı hesaplanması sağlanarak ve inceleme sıraları optimize edilerek de algoritmanin çalışma zamanı azaltılabilir. Gao tarafından geliştirilen MSEA (Multilevel Succesive Elimination Algorithm) algoritması ile SAD hesaplaması daha hızlı yapılabilmektedir. Bu algoritma da bir blok için bulunan kısmi SAD değeri o zamana kadar bulunan en küçük SAD değerinden daha fazla ise o bloğun incelemeden çıkarılmasına dayanır. Bu sayede SAD hesaplaması 1/16 oranında azaltılabilmektedir. MSEA uygulanırken eğer iyi araştırma pozisyonlari erken belirlenirse performans çok daha iyi olacaktır. Inceleme sıralaması komşu blokların yakın hareket vektörlerine sahip olduğu düşünülerek belirlenebilir. H. Heijden tarafından [3] de komşu vektörlerin daha önceden değerlendirilmesine

9 dayanan bir yöntem açıklanmaktadır. Bu yöntemde OA algoritmalarında kullanılan düzgünlük terimi ayrıntılı araştırma algoritmasına eklenerek hesaplama kompleksliği azaltılmıştır. Bu yöntemlere rağmen Ayrıntılı Araştırma algoritması büyük hareketlerin tespitinde oldukça yüksek hesaplama zamanına sahiptir... Hiyerarşik Araştırma Bu algoritmanın uygulanabilmesi için öncelikle görüntü alt-geçirgen yada yüksekgeçirgen piramit yapısına dönüştürülür. Bu işlem bir altörnekleme faktörü kullanılarak gerçekleştirilir [1]. Bu faktörün yatay ve dikey de olduğu altgeçirgen altörnekleme adımları Şekil-7 de görülmektedir. Bu durumda piramitteki toplam piksel sayısı şu şekilde olacaktır; N N N N = N (5) Şekil-7. Alt-geçirgen piramit yapısı. N piksel sayısı ve I 0 orjinal görüntü. Piramit oluşturulurken her katmanda bir kez alt-geçirgen filtre uygulanır ve bir 0 önceki katman altörneklenmiş olur. Şekil-3 de görüldüğü gibi öncelikle I orjinal 1 görüntüsünden I görüntüsü c kullanılan filtrenin yapısına bağlı sabit bir sayı N c olmak üzere 4 1 operasyon ile elde edilir. Sonraki adımda ise I den I N c görüntüsü aynı yöntemle 16 işlemle elde edilecektir. Bu durumda piramidin oluşturulması ON ( ) işlem zamanında gerçekleştirilecektir. Blok karşılaştırma işlemi en üst katmada başlar ve bu katman için kaba bir vektör elde edilir. Bu adım sonrasında elde edilen en iyi vektör diğer inceleme işlemlerinin başlangıç noktasını oluşturur. Işlemler bu şekilde en alt katmana kadar devam ettirilir. Böylece her adımda daha spesifik ve küçük bölgeler incelenmiş olur.

10 Genellikle altörnekleme faktörü dikey ve yatay olarak kullanılır. Bu durumda en -log( N ) büyük hareket (N-1). pikselde iken 1(1-4 ) karşılaştırma işlemi yapılır. Burada dikkat çeken özellik karşılaştırma sayısının görüntü çözünürlüğünden bağımsız ve 1 den küçük olmasıdır. Algoritmanın hesaplama zamanı altörnekleme faktörü değiştirilerek azaltılabilir [1]. Altörnekleme faktörü iki yön için 3 ve araştırma penceresi 3x3 olarak belirlenirse hem tüm vektörler bulunabilir hem de algoritmanın karşılaştırma 81 log( ) sayısı (1-9 N ) e düşürülebilir. 8 Altörnekleme faktörünü değiştirmek dışında hesaplama zamanını azaltmak için kullanılan yöntemlerden bir diğeri araştırma işlemlerini tek yönlü yapmak ve altörnekleme işlemini iki araştırma işlemi arasında gerçekleştirmektir. Bu yöntemle her seviyede iki tane karşılaştırma yaparak tüm hareket vektörleri bulunabilir [1]. Hiyerarşik karşılaştırma algoritmasının klasik blok karşılaştırma algoritmalarından en büyük farkı altörnekleme işleminden kaynaklanan görüntüdeki piksellerin her adımda 0.5 birim kayması nedeniyle elde edilen vektörlerin diğer yöntemlerdeki gibi tamsayı değerler almaması ve (0,0) T vektörünün sıradan bir vektör olmasıdır. Bu problemlerin giderilmesi için tahmin işleminden sonra bir interpolasyon işlemi gerçekleştirilir [1]. Bunların dışında hesaplama zamanını azaltmak için kare yerine dikdörtgen altörnekleme alanları kullanan bir yöntemde bulunmaktadır..3. Üç Adımlı Araştırma (3AA) (Three Step Search) T. Koga tarafından geliştirilen yöntem hızlı blok karşılaştırma algoritmalarının ilki olarak ifade edilebilir [4]. Tüm karşılaştırma adımları orjinal görüntü çözünürlüğünde yapılır (hiyerarsik karşılaştırma algoritmasında incelenen görüntü çözünürlüğü her seviye için altörnekleme işleminden dolayı farklı olmaktadır). Bu algoritmanın amacı ayrıntılı araştırma algoritmasının PSNR değerine mümkün olduğunca yakın vektör alanlarını hızlı bir şekilde elde edebilmektir. Bu algoritma her alt blokta hareketten kaynaklanan hata yüzeyinin gerçekte tekmodelli (değer fonksiyonu tarafından oluşturulan ağırlıkların global minimumdan monoton olarak arttığı top şeklinde yüzey) olmasına dayanır. Genel algoritma adımları Şekil-8`de gösterilmektedir. Algoritma karşılaştırma işlemine araştırma penceresinin merkezinden başlar, her adımda en iyi eşleştirme değerinin çevresindeki bloklarla işleme devam eder. Tüm iterasyon tamamlanıncaya kadar bu en iyi vektör etrafında ayrıntılı inceleme yaparak algoritma tamamlanır. Araştırma parametresi 7 olduğu zaman merkez etrafındakı 8 pozisyon için inceleme yapılır. Merkez ile birlikte toplam 9 KK hesaplaması yapılır. En iyi KK değerindeki vektör diğer incelemenin merkezi olacak şekilde

11 belirlenip tekrar hesaplama gerçekleştirilir. Son adımla elde edilen vektör mevcut blok için hareket vektörü olarak tanımlanır. Şekil-8. 3AA Algoritması adımları. Kırmızı renklerle belirtilen konumlar her adım için tercih edilen vektörleri göstermektedir. `0` en son iterasyon adımıdır. Eğer ilk adımda karşılaştırma yapılacak blokların uzaklığı (adım büyüklüğü) büyük seçilirse hiyerarşik yapıyla benzer bir yapı elde edilecektir. Fakat büyük araştırma pencereleri hesaplama zamanını arttıracağı için genellikle sabit büyüklükte araştırma pencereleri tercih edilmektedir. 3AA büyük araştırma perncereleri için de kullanılabilecek şekilde genelleştirilebilir. Eğer adım N N büyüklükleri,,...,,1 biçiminde seçilecek olursa (N-1). piksele kadar yer 4 değiştirme 1+ 8 log( N) karşılaştırma ile elde edilir..4. Yeni Üç Adımlı Araştırma (Y3AA) Bu algoritma MPEG 1 ve H.61 gibi standartlarda geniş anlamda kullanım alanı bulmuş ilk hızlı algoritmlardan biridir. Algoritma 3AA algoritmasını merkez pozisyonlarda araştırma işlemleri gerçekleştirmeye çalışan bir yapıya dönüştürmüştür [4]. 3AA algoritması önceden düzenli bir biçimde belirlenmiş karşılaştırma pozisyonlarını incelediği için küçük hareketleri tespit etmek konusunda çok başarılı değildir. Bu algoritmada incelemeye merkez pozisyonundan başlar. Şekil-5 Y3AA algoritmasının adımlarını göstermektedir. Y3AA algoritması 3AA algoritmasının ilk adımına 8 inceleme pozisyonu daha ekleyerek toplam 16 pozisyon için KK analizi yapar ve en düşük KK değerine sahip bloğu seçer. Eklenen 8 karşılaştıma bloğu merkeze 1 birim uzaklıkta alınmıştır. Eğer en düşük KK değeri merkez blokta ise sıfır hareket durumu söz konusunda olacaktır. Vektör (0,0) T olarak atanır. Eğer en düşük değer sonradan eklenen 8 pozisyondan birinde ise bu durumda merkez nokta bu pozisyon olarak atanır ve bitişik pozisyonlar incelenir. Bitişik pozisyonların sayısı merkezin ilk belirlenen

12 pozisyonun konumuna bağlı olarak 5 yada 3 olmaktadır. Bu karşılaştırma işlemleri sonucunda elde edilen en düşük KK değerine sahip pozisyon vektör yönü olarak belirlenir. Bu durumada inceleme sayısı azaltılmış olur. Eğer en düşük değer 3AA algoritmasının karşılaştırma pozisyonlarından birinde ise bu durumda 3AA algortmasının adımları takip edilir. Şekil-9 için en iyi durumda 17 pozisyon en kötü durumda ise 33 pozisyon incelenir. Ortalama olarak bakıldığında bu yeni algoritma 3AA aloritmasına göre daha hızlıdır ve küçük hareketleri de tespit edebilme kabiliyetine sahiptir. Şekil-9. Y3AA Algoritması adımları. Mavi blok baslangıç pozisyondur. Gri bloklar 3AA algoritmasının ilk adımına eklenen karşılaştırma pozisyonlarıdır. Ilk adımda en düşük KK değerlerine sahip olabilecek pozisyonlar kırmızı bloklarla ifade edilmiştir. Yeni inceleme bloklarında seçilen pozisyonlar için daha sonraki adımda incelenen bitişik pozisyonlar 3 yada 5 tane olabilir. Ve bu adımda hareket vektörü belirlenir. 1 bu durumda son adım olacaktır. Eğer en düşük KK değeri 3AA algoritmasının ilk adımındaki pozisyonlarda ise bu algoritmadaki yöntem ile vektör belirlenir. 0 son adımdır..5. Basit ve Etkili Araştırma (BEA) BEA de 3AA algoritmasının hareket vektörlerinin unimodal olması ozelliğinden yararlanır. Bu özellik dolayısıyla karşı yönlerde iki tane minimum KK değeri olamayacağını göz önünde bulundurularak 3AA algoritması hızlandırılmaya çalışılmıştır [5]. Algoritma 3AA de olduğu gibi 3 adımda incelemeleri tamamlar. BEA yaklaşımında öncelikle araştırma alanı 4 parçaya ayrılır ve bu parçalardan 3 tanesinde araştırma işlemi gerçekleştirilir. Araştırma alanının parçalanmış hali ve inceleme sirasi Şekil-10 da görülmektedir.

13 Şekil-10. Araştırma alanının parçalanması ve incelme alanlarının belirlenmesi.(a) Araştırma alanının 4 parçaya ayrılması. (b)(c)(d)(e) Seçilen çeyrekler. Kırmızı bloklar eklenen pozisyonları göstermektedir. Bu şekilde A pozisyonu merkezde yer almaktadır. B ve C pozisyonları ortoganol yönde A pozisyonuna 4 birim uzaklıktadır. BEA algoritmasında her adımdan sonra ikinci bir aşamaya geçilir ve bu aşamada bir kaç tane ek inceleme pozisyonu eklenir. Bu işlem yapılırken MAD hesaplamalarının sonucu dikkate alınarak şu şekilde hangi çeyrekte karşılaştırma yapılacağı belirlenir.

14 MAD( A) MAD( B) ve MAD( A) MAD( C) 1. Ceyrek Eğer A bloğunun MAD değeri B ve C noktasından büyük ise 1. çeyrek seçilir. Bu durumda küçük MAD değerlerinin bulunduğu bölgede incelemenin arttırılması gerektigi için B ve C noktalarının kesişimi olan 4. çeyreğe bir inceleme pozisyonu eklenir. MAD( A) MAD( B) ve MAD( A) MAD( C). Ceyrek Eğer A pozisyonun MAD değeri B ve C pozisyonları arasında ise A noktası ile B noktası etrafında iki inceleme pozisyonu daha belirlenir. Bu pozisyonlar C doğrultusunun tersi yönde alınır (C yönünde MAD değerindeki artmadan dolayı). MAD( A) < MAD( B) ve MAD( A) < MAD( C) 3. Ceyrek Eğer A pozisyonunun MAD değeri en küçük değerse ve diğer pozisyonlarla eşitlik durumu söz konusu değilse sadece A pozisyonu etrafındaki 3 pozisyon incelemeye dahil edilir. MAD( A) < MAD( B) ve MAD( A) MAD( C) 4. Ceyrek Bu kriter ikinci seçim kriteri ile benzer özellik göstermektedir. Bu durumda eklenecek iki pozisyon C ve A pozisyonlarının komşu pozisyonları olacaktır. İkinci aşama için ek pozisyonlar belirlendikten sonra bu pozisyonların MAD hesaplamaları gerçekleştirilir. Tüm pozisyonlar içinde elde edilen en küçük MAD değerine sahip pozisyon diğer adımın merkezi olacak şekilde belirlenir. Bundan sonraki adımlar 3AA algoritmasındaki gibi belirlenir farklı olarak her adımda ikinci aşama tekrarlanır. En son adımda elde edilen en küçük MAD değerine sahip bloğun yönü hareket vektörünü belirler. Şekil-11 de BEA algoritmasının adımları gösterilmektedir. Şekil-11.BEA algoritmasının adımları. Gri renkle gösterilen bloklar her adımdaki ilk araştırma pozisyonlarını, mor bloklar ikinci aşamalarda seçilen çeyrekler uyarınca eklenen pozisyonları, kırmızılar ise merkez olarak belirlenen pozisyonları ifade etmektedir. Bu algoritma 3AA algoritmasını oldukca hızlandırmasına rağmen gerçek uygulamalarda hata yüzeyi tam olarak tekmodelli (unimodal) olmadığı için BEA ile elde edilen PSNR değerleri 3AA`le kıyaslandığında kötü değerlerdir. Bu nedenle bu algoritma geniş anlamda kullanım alanı elde edememiştir. Çünkü bu

15 yöntemden daha önce geliştirilen ve daha iyi PSNR değerine sahip Dört Adımlı Araştırma (4AA) (Four Step Search) algoritmasının kullanımı daha efektif olmaktadır Adımlı Araştırma (4AA) Y3AA algoritmasına oldukça benzer bir yapıya sahiptir [6]. Ilk adımda araştırma pencere büyüklüğü ne olursa olsun adım aralığını olarak belirler, yani ilk adım için araştırma alanı 5x5 gibi kabul edilir ve 9 pozisyon incelenir. Bu pozisyonlar için KK değerleri hesaplanarak en iyi değer tespit edilir. Bu aşamadan sonra şu adımdan biri gerçekleşitirilir. 1. Eğer en iyi KK değerine sahip pozisyon merkezde ise 4. adıma geçilir.. Eğer en iyi KK değerine sahip pozisyon merkez dışındaki 8 noktadan birinde ise o pozisyon diğer adımın merkezi olarak belirlenir ve yeni pozisyonlar için hesaplamalara devam edilir. Merkez pozisyonun durumuna göre 3 yada 5 komşu blok incelenir. Belirlenen pozisyon eğer köşelerde ise 5, aralarda ise 3 konum incelenecektir. Bu adım içinde inceleme aralığı ikidir. Yani belirlenen inceleme blokları merkez bloğa iki birim uzaktaki bloklardır. 3. Ikinci adım pozisyonların KK değerlerinin karşılaştırılması ve en iyi değerin belirlenmesi ile biter. Eğer en iyi değere sahip pozisyon merkezde ise 4. adıma geçilir aksi halde 3. adım başlatılır. Bu adım. adımla aynıdır adımda tamamlandıktan sonra son adım (4.adım) gerçekleştirilir. Bu adımın diğer adımlardan farkı araştırma aralığının 1 olarak belirlenmesi ve ilk adımda olduğu gibi 8 çevre pozisyonda incelemenin gerçekleştirilmesidir. Bu adım sonunda elde edilen en iyi KK değerine sahip pozisyon hareket vektörünü belirler. Şekil-1 de bu algoritmanın adımları gösterilmektedir. Burdan da anlaşılacağı gibi en iyi durum için 17 karşılaştırma işlemi en kötü durumda ise 7 karşılaştırma işlemi gerçekleştirilmektedir. Bu durumda en kötü durum için karşılaştırma yapıldığında 4AA algoritmasının Y3AA`e göre (en kötü durumda 33 ınceleme yapıldığı için) oldukça iyi bir hesaplama hızına sahip olduğu görülmektedir.

16 Şekil-1. 4AA algoritma adımları. Kırmızı bloklar her adımda seçilen pozisyonları belirtmektedir. 0 son adımdır..7. -Boyutlu Logaritmik Araştırma (BLA) Jain&Jain tarafından geliştirilen yaklaşım 3AA algoritmasına oldukça benzer bir yapıdadır [1]. 3AA dan farkı köşedeki pozisyonları ara adımlarda incelemeye almamasıdır. Köşedeki bloklar sadece en son adım için değerlendirilir. Bu algoritma temelde yatay ve dikey hareketin insan gözü tarafından daha kolay algılanacağından yola çıkarak sadece bu iki yöndeki hareketin belirlenmesinin yeterli olacağını kabul eder. Şekil-13 BLA nın adımlarını göstermektedir. Şekil-13. BLA araştırma adımları. Kırmızı bloklar her adım için belirlenen en iyi eşleştirme pozisyonlarıdır. BLA nın araştırma alanı diğer algoritmalara göre oldukça küçüktür. Buna rağmen tüm metodlarla aynı yatay ve dikey hareket vektörleri elde edilir. Yatay

17 ve dikeyde (N-1). Pikseldeki hareket için yapılacak karşılaştırma sayısı 5+ 4log( N) olmaktadır. Büyük hareket vektörleri tespit edilirken bu algoritmanın yapısı baklava-biçimli bir hal alacaktır..8. Bileşik Yön Araştırma (BYA) (Conjugate Direction Search) Srinivasan ve Rao tarafından yayınlanan algoritma Bir Zamanda Tek Yön Araştırma tekniğinin basit bir halini kullanır [1]. Bu algoritmada yatay ve dikeyde araştırma işlemi bir zamanda bir yön olarak yapılır. Eğer inceleme işlemi önce yatay doğrultuda yapılıyorsa en iyi KK değerine sahip pozisyon üç hareket vektörünün sıfır olduğu doğrultuda bulunacaktır (1 piksel sağ, bir piksel sol). Bulunan en iyi değer köşelerde ise inceleme işlemi bu yönde lokal optimum değerini elde edinceye kadar devam ettirilir. Lokal optimuma ulaşıldıktan sonra aynı teknikle dikey yönde inceleme gerçekleştirilir. Iki yöndeki inceleme işlemi tamamlanıp en iyi eşleştirme hesaplandığı zaman bir itrerasyon tamamlanmış olur. Bir iterasyon sonucunde incelenen blok için vektörün elde edildiği ve algoritmanın tamamlandığı [14] de ifade edilmektedir (Ayrıntılılar için bu makale incelenebilir). Fakat iterasyon sayısı bir sistem parametresi olarak tanımlandığı için görüntü dizisindeki hareket miktarına ve donanımın hesaplama gücündeki değişime göre değiştirilebilir. Algoritmanın performansı bir zamanda bir yön araştırma ile elde edilen vektör yönünde yeni araştırma bölgeleri ekleyerek arttırılabilir. Örneğin bir zamanda bir yön araştırma ile elde edilen vektör (3,3) pozisyonunda iken (,) ve (4,4) pozisyonları da incelemeye katılabilir ve diyagonal yönlerde de inceleme aynı anda devam ettirilir. Bu yöntem BYA algoritması olarak tanımlanır. Bir zamanda bir yön Araştırma ve BYA algoritmalarının ikisinde de gerekli olan karşılaştırma sayısı görüntü özelliklerine bağlı olduğu için küçük hareket vektörleri büyük hareketlere göre daha az işlemle elde edilir. En kötü ihtimalle BYA algoritmasının çalışma zamanı O(N) dir..9. Ortagonal Logaritmik Araştırma (OLA) OLA algoritması ortagonal araştırma algoritması ile BLA algoritmasına dayanan bir yaklaşımdır [1]. Algoritma yatay ve dikey olmak üzere iki aşamada gercekleşir. İlk aşamada algoritma öncelikle merkez blok etrafındaki belirli bir uzaklıktaki (+s/-s) bloklarla yatay eksende karşılaştırma yapar. Bu bloklardan en düşük MSE değerine sahip olanı dikey yönde yapılacak olan araştırma işleminin merkezi olarak belirlenir. Bu prosedür s=1 oluncaya kadar devam eder. Bu algoritmanın en temel avantajı 3AA deki gibi sabit adım sayısına sahip olmaması ve araştırma alanının büyüklüğüne bağlı olarak adımlarının değişiyor olmasıdır. Araştırma alanına bağlı olarak adım sayısı sw x sw lik araştırma alanı için şu formülle belirlenir:

18 log 10( sw + 1) S = log () 10 (6) Ayrıntılı Araştırma algoritması ile kıyaslandığında çok daha az sayıda karşılaştırma işlemi ile vektör alanlarını oluşturmaktadır. 3AA algoritması ile aynı PSNR değerlerini çok daha kısa sürede elde edebildiği için avantajli olabilir fakat doğru Hareket belirleme konusunda yetersiz kalmaktadır..10. Baklava Biçimli Araştırma (BBA) BBA [1] algoritması 4AA algoritmasına çok benzer bir yapıya sahiptir. Araştırma uzayı bakımıdan kare inceleme alanı olmadığı için BLA yapısına da benzetilebilir. Bu algoritmanin iki algoritmadan en önemli farklarından biri adım sayısında bir sınırlandırma olmamasıdır. BBA algoritması iki farklı örüntü yapısı kullanır. Bu örüntüler şunlardır ; Büyük Baklava Biçimli Araştırma Örüntüsü (BBBAÖ). Küçük Baklava Biçimli Araştırma Örüntüsü (KBBAÖ). (Bu örüntü BLA da kullanılan inceleme pozisyonlarıdır.) Algoritmanın ilk adımında BBBA örüntüsü kullanılır. Eğer en düşük KK değeri merkez noktada ise 4AA da olduğu gibi 4. adıma geçilir, aksi durumda bu nokta diğer araştırmaların merkezi olarak belirlenir ve en son adıma kadar aynı şekilde işlemlere devam edilir. İlk adımdan bu adımların farkı karşılaştırma yapılan pozisyonların sayısının 4AA da olduğu gibi 3 veya 5 tane olmasıdır. Son adımın diğer adımlardan farkı ise o adımda KBBA araştırma örüntüsünün kullanılmasıdır. Son karşılaştırma işleminden sonra belirlenen en düşük KK değerine sahip pozisyon vektör yönünü belirler. Algoritmanin işlem adımları Şekil-14 de görülmektedir. Şekil-14. BBA algoritmasının adımları.kırmızı bloklar en iyi eşleştirme değerleridir. 0 adımı son adımdır ve KBBA araştırma örüntüsü kullanılmaktadır.

19 Bu algoritmada kullanılan araştırma örüntüleri ne çok küçük nede çok büyük olduğu ve adım sayısı için limit olmadığı için global minimum değeri doğru olarak bulunabilmektedir. Algoritma hesaplama kompleksliği bakımından oldukça iyidir vede PSNR değeri ayrıntılı araştırma ile elde edilen değere çok yakındır. Son yıllarda BBA algoritmasını geliştiren birçok algoritma yayınlanmıştır. Bunlardan bazıları Çapraz Baklava Biçimli Araştırma (ÇBBA) [15], Küçük Çapraz Baklava Biçimli Araştırma (KÇBBA) [16] ve Yeni Çapraz Baklava Biçimli Araştırma (YÇBBA) [17] dır. Bu algoritmalar BBA algoritmasının performansını ilk adımda BBBA örüntüsü ile belirlenen pozisyonlari incelemek yerine Çapraz Araştırma Örüntüsü (ÇAÖ) kullanarak geliştirmeye çalışmıştır. ÇAÖ pozisyonları Şekil-15 de görülmektedir. Şekil-15. Çapraz Araştırma Örüntüsü (ÇAÖ) BBA algoritmasını geliştiren üç algoritma arasındaki temel fark araştırma alanında incelenen pozisyonların sayısıdır. ÇBBA algoritması şekil-15 deki pozisyonların tamamını incelemeye tabi tutarken diğer algoritmalar başlangıç olarak iç kısımdaki 5 pozisyon için karşılaştırma yapar ve diğer adımlarda bu pozisyonları genişletir. Bu algoritmalar başlangıç olarak BBA dan farklı olmasına karşın diğer adımlar için BBA yapısına bürünür. Tüm algoritmalar BBA performansında artış sağlıyor olsa bile en iyi PSNR sonuçları veren algoritma YÇBBA algoritmasıdır..11. Adaptif Kök Örüntü Araştırma (AKÖA) AKÖA algoritması bir bloğun çevre bloklardaki hareket yönünde harekete sahip olma ihtimalinin yüksek olmasını dikkate alan bir algoritmadır [8]. Bu algoritma en yakın sol bloğun hareket vektörünü kendi vektörü olarak kabul edererek inceleme çerçevesini buna göre belirler. X ve Y tahmin edilen vektörün koordinatları olmak üzere algoritma bu vektörün işaret ettiği pozisyona ek olarak adım büyüklüğü S = Max( IXI, IYI) ile belirlenen pozisyonları da inceler. Bu yaklaşım algoritmanin ilk adımında gerçekleştirilir. Bu sayede ilk adımda iyi KK değerine sahip olan pozisyonlar incelenmiş olur. Bu adımdan sonra en düşük KK değerine sahip pozisyon diğer adımların merkezi olarak belirlenir ve işlemler KBBAÖ

20 çerçevesinde devam ettirilir. İşlem adımları en iyi KK değerine sahip pozisyon KBBAÖ çerçevesinin merkezine geldiği zaman sona erer. Algoritmanın ilk inceleme pozisyonları Şekil-16 da görülmektedir. Şekil-16. AKÖA algoritmasının ilk inceleme pozisyonları. Bu algoritmanın en dikkat çeken avantajı sıfır-hareket durumunda BBBA pozisyonlarını inceleyerek zaman kaybetmemesidir (Bunun yerine direk olarak KBBA pozisyonları incelenir). Aynı şekilde AKÖA ile tahmin edilen hareket vektörü çok uzakta ise direk olarak bu noktaya atlanarak KBBA ları incelendiği için BBA de gerçekleştirilen BBBA incelemeleri elimine edilmiş olur. Bu atlama işlemlerinden dolayı bazı dikkat edilmesi gereken durumlar ortaya çıkabilmektedir. Dikkat edilmesi gereken durumlar şunlardır; Bu algoritmada daha önce incelenen pozisyonların tekrar incelenmesi söz konusu olabilmektedir. Tahmin edilen hareket vektörü diğer incelenen pozisyonlardan biri ile çakışıyorsa bu noktada iki kez hesaplama yapılması söz konusu olacaktır. Bu kısma kadar anlatılan algoritmalarla karşılaştırıldığında bu algoritma gerek PSNR değerleri gerekse hesaplama kompleksliği açısından en iyi algoritma olarak ifade edilebilir. Bu algoritma ile Ayrıntılı Araştırma algoritmasına çok yakın PSNR değerlerine sahip vektör alanları elde edilir. 4AA, BBA (geliştirilmiş BBA algoritmaları ile beraber) ve AKÖA yaklaşık PSNR değerlerine sahip olmakla beraber AKÖA hesaplama zamanı açısından daha iyi performans sergiler Boyutlu Özyineli Araştırma (3BÖA) Hareket vektörlerindeki belirsizliği gidermek (açıklık problemi) ve yanlış bir lokal minimum değerine ulaşmamak için, araştırma alanındaki tüm vektörleri

21 incelemek yerine daha önce elde edilen vektörlerle inceleme sayısını sınırlandırmak amacıyla önceki hesaplamalardan elde edilen uzaysalgeçici(spatio*temporal) olasılığa dayanan küçük bir aday vektör seti oluşturulmasına dayanan bir algoritmadır [9][10]. 3BÖA iki önemli kabulden yola çıkarak geliştirilmiştir. Bunlardan ilki objelerin bloklardan daha büyük olmasıdır. Bu sayede komşu bloklar için yapılan vektör tahminleri mevcut blok için iyi birer olasılık olabilmektedir. Ikinci kabul ise hareketin küçük küçük olmasıdır. Yani incelenen iki resim arasında ufak farklılıklar vardır ve küçük hareket vektörleri elde edilir. Blok karşılaştırma algoritmalarında inceleme işlemleri sırayla gerçekleştirildiği için (soldan sağa ve yukarıdan aşağı) nedensellik problemi ortaya çıkar. Yani bir mevcut çerçeve etrafındaki tüm komşu bloklar için vektörler henüz hesaplanmamıştır. Bu nedenle uzaysal tahmin adayları bir önceki görüntüde oluşturulan hareket vektörlerinden elde edilir. Yani bu algoritmada bir görüntü için vektör alanı oluşturulurlen bir önceki ve bir sonraki görüntü kullanılır. Algoritma bu sebepten dolayı 3B olarak adlandırılır. Algoritmada tane uzaysal aday (S1, S), 1 tane geçici aday (T) ve tane güncellenen aday (C1, C) olmak üzere toplam 5 tane aday kullanılır. Algoritmada kullanılan Aday Seti (AS) şu şekilde elde edilir; dx ( + pn i, ) c i Uzaysal Aday Ci = d( x+ pi, n 1) c i Geçici Aday (7) c j + uj, iu, US c i Güncellenen Aday Bu yapıda kullanılan p i herhangi bir blok için değişken pozisyonların koordinatlarını ifade eder. Güncellenen adaylar uzaysal adaylara ufak bir u değeri eklenerek elde edilir. u değerinin küçük olması algoritmanın ikinci kabulunden kaynaklanır. Teoride bu değer herhangi bir değişken olabilir fakat [9] ve [10] de bu değerlerin dairesel bir yapıda belirlenmesiyle daha uygun sonuçlar elde edildiği ifade edilmektedir. 3BÖA nın iyi sonuçlar verdiği Güncellenen Set (GS) şu şekildedir: ,,,,- 1,- 1,-, GS = ,-,-,-, 1, 1,, (8) Kullanılan adaylar Şekil-17 de gösterilmektedir. 3BÖA algoritması da KK olarak SAD metriği kullanır. Hata minimize edilmeye çalışılır. [9]` de farklı olarak uzaysal

22 adaylar arasında seçme hakkı sağlayarak düzgünlüğü arttıran bir p i (penalty) risk değeri algoritmaya eklenmiştir. Bu değer sayesinde doğru Hareket vektörü sağlama ihtimali en düşük olan, yani benzer SAD sonuçları veren adayların seçilmesi engellenmiş olur. Bu yayında p i değerleri uzaysal adaylar için 0, geçici 1 adaylar için BB, 0 1 güncellenen adaylar için B0B1olarak kullanılmıştır. Burada B0, B1BxB`lik blok için yatay (0) ve dikey (1) yönlerindeki büyüklükleri ifade etmektedir. Şekil-17. 3BÖA algoritmasinda kullanılan aday vektörler. C mevcut blok, S1 ve S uzaysal aday ve T Geçici aday. Güncellenen adaylar henüz bulunmamış yeni vektör alanlarını ifade ettiği için geçici ve uzaysal adaylare göre daha az benzerlikte olacaktır. Bu nedenle bir güncellenen vektör sonuç vektör olarak belirlendikten sonra diğer blokların uzaysal aday vektörü olur. Sonuç olarak bir x bloğu için hareket vektörü; dxn (, ) = argmin( ε( c, xn, ) + p), c CS (9) i i i Olacaktır. Burada ε( ci, x, n) eşleştirme hata parametresidir. Bu ifadeden de açıkça görüldüğü gibi her blok için karşılaştırma işlemleri aday setine bağlı olarak yapıldığı için (burda 5 aday olduğu için 5 hesaplama işlemi) 3BÖA algoritması real time uygulamalar için etkilidir. 3BÖA algoritması vektör alanı hesaplaması için güncellenen adaylara güvendiği için sonuç vektörü başlangıç vektör alanından doğru vektöre doğru yakınsama yapmalıdır. Yani algoritmanın doğru hareketi elde edebilme ihtimali bu yakınsama ile belirlenir. Bu yakınsama işlemi güncellenen adaylar vasıtasıyla yapılır. Güncellenen setler küçük değişimlerle geniş alanlar taranabilecek şekilde belirlenmelidir.

23 Büyüklüğü maksimum güncellenen vektörden daha fazla olan hareketi tespit etmek ya birçok blok, ya birçok iterasyon yada birçok çerçeve de inceleme yapılmasını gerektirecektir. Ve bu durum artifactlerin oluşmasına neden olur. Bu artifactleri gidermek için kullanılan bir algoritma [18] de anlatılmaktadır. Yakınsamanın hızı algoritmanın performansı ile doğru orantılıdır ve nekadar hızlı yakınsama elde edilirse okadar hızlı obje hareketlerini tespit etmek mümkün olur. Bu nedenle yakınsama hızını arttırmak amacıyla çeşitli yöntemler geliştirilmiştir. Bunlardan biri ek aday vektörler kullanmak diğeri ise her bloğun aday setine sıfır hareket vektörünü eklemektir. Bunun dışında güncellenen sete çok miktarda güncellenen vektörü eklemek de bir çözüm sunabilir fakat bu durum karşılaştırma işlemine eklenen gürültünün artmasına neden olur ve alt optimal bir çözüm sunar. Yinede fazla güncellenen vektör kullanmak hızlı hareket eden objelerin bulunduğu görüntülerde daha iyi sonuçlar elde edilmesini sağlayacaktır. R.A. Braspenning and G. de Haan tarafından [19] de 3BÖA algoritmasında, özellik nokta uygunluğu ile elde edilen vektörleri başlangıç tahmin olarak kullanan bir algoritma geliştirilmiştir. 3BÖA algoritması özyineli bir yapıda olduğu için doğru sonuca yakınsaması zaman alır ve özyineli olması kompleksliğini arttırır. Yapılan eklemelerle bu yakınsama problemi büyük oranda giderilmiş ve vektör alanlarının doğruluk ozelliği arttırılmıştır. Her nekadar çalışma zamanı diğer algoritmalara göre fazla gibi görünüyor olsa bile gerçek zamanlı uygulamalarda kullanılabilecek kadar hızlı bir algoritmadır ve doğru-hareket vektör alanı oluşturduğu için sıklıkla kullanılmaktadır. 3. OPTİK AKI (OA) ALGORİTMALARI Optik akı algoritmaları boyutlu obje hareketlerinin belirlenmesinde sıklıkla kullanılan yöntemlerden biridir. OA algoritmalarını hareket vektörlerinin doğruluğuna vede yoğunluğuna bağlı olarak karşılaştıran iki temel yayın bulunmaktadır. Bunlardan biri Barron et al. [11] tarafindan yayınlanan makaledir. Bu makalede 9 farklı OA algoritmasından bahsedilmiş, bu algoritmalar sınıflandırılmış ve karşılaştırılması yapılmıştır. Ikinci yayın ise Liu et al. [1] tarafından [11] deki algoritmaların incelenmesi aşamasına birde etkinlik kriteri eklenerek sunulmuştur. Bu makalede algoritmaların doğrulukları ile etkinlikleri bir koordinat sisteminde eğrilerle ifade edilerek karşılaştırılmaktadır. Bu eğri farklı algoritmaların farklı araştırma alanlarındaki başarılarını da ifade etmektedir. B görüntü dizilerinde yoğunluk değerlerinden fayadalanarak hareketin belirlenmesi, tüm obje hareketleri için lokal yoğunluk değerleri hareketi belirlemeye yetecek bilgiyi ihtiva edemediği için problemdir. Problemli görüntü dizileri olarak tanımlanan açıklık problemi içeren görüntü yada kendi ekseni etrafında donen doku içermeyen bir top hareketinin bulunduğu görüntüler,

24 yoğunluk değerlerinden hareketin belirlenmesi mümkün olmayan görüntülere örnektirler. Sadece yoğunluk değeri hareketin belirlenmesinde yeterli olmadığı için bazı ek bilgiler kullanılması gerekmektedir. Bunun için çeşitli düzenleme teknikleri kullanılarak görüntülerde düzeltme yapılabileceği gibi kullanılan yöntemlere bu problemli sahneleri için hareket vektörleri belirleyebilecek şekilde bazı sabitler eklenerek de gerçekleştirilebilir [1]. Horn tarafından akı sabiti, yoğunluk ve hareketten yararlanarak formulize edilmiştir [1]. Bu yaklaşımda görüntü yoğunluğunun zamanla değişmediğini vede düzgün olduğunu kabul edersek küçük u,v, t değişimleri için; Ixyt (,, ) = Ix ( + uy, + vt, + t) olacaktır. Bu denklemde kısmi türevler alındığı taktirde OA denklemi şu şekilde elde edilir. I I I u+ v + t = 0 (10) x y t T Bu denklemde I I, görüntü gradyeni olarak adlandırılır. Kısmi türevler x y görüntü filtreleme yöntemleri kullanılarak elde edilebilir fakat bu bilgiler yalnızca yerdeğiştirme ( x) değerinin gradyen yönündeki bileşeninin elde edilmesi için yeterlidir. Yani bu bilgiler benzersiz (uniq) bir çözüm elde etmek için yeterli olmamaktadır. Şekil-18`de OA denkleminden elde edilen constraint doğrusu görülmektedir. Şekil-18. OA denkleminden elde edilen constraint doğrusu. Kırmızı doğru OA Constraint doğrusudur. Bu denklemle elde edilen vektörler benzersiz değildir.

25 Benzersiz çözüm elde edebilmek için gerekli olan ek bilgiler, yüksek dereceli türevler alınarak yada hareket alanlarına uzaysal tutarlılık kısıtı eklenerek elde edilebilmektedir [1]. OA algoritmaları benzersiz çözüm elde edebilmek için kullandıkları yöntemlere göre sınıflandırılmaktadır. Literaturde OA algoritmalari 3 temel özelliklerine göre sınıflandırılır. Bu özellikler şunlardır; Yüzeyleri belli etmek ve SNR değerini arttırmak amacıyla kullandıkları uzaysal-geçici operatörlere göre. Yüzey uzayında gradyen hesaplamaları sonuçlarıyla yerdeğişimini nasıl hesapladıklarına göre (doğrudan (yüksek derecede türevlendirme) yada iteratif algoritmalar gibi). Kullandıkları düzgünleştirme yöntemlerine göre. OA algoritmaları [11] de dört grupta incelenmektedir. Bunlar; türev teknikleri kullananlar, enerji tabanlı algoritmalar, faz bilgisinden yararlanılarak geliştirilen teknikler vede alan tabanlı karşılaştırma algoritmalarıdır. [1] de ise bu algoritmalar iki grupta toplanır. Bu gruplama gradyen tabanlı yapı kullanan algoritmalar ve kullanmayanlar şeklindedir. Barron et al. tarafından kullanılan ilk 3 grup tek bir ana başlık altında toplanarak gradyen tabanlı algoritmalar olarak adlandırılır. Ikinci grup ise [11] deki alan karşılaştırmaya dayanan algoritmalardan oluşur. Burada anlaşılırlığı arttırmak amacıyla Barron et al. tarafından yapılan sınıflandırma esas alınarak OA algoritmaları incelenecektir Diferansiyel Teknikler Kullanan OA Algoritmaları Bu yöntemler gradyen hesaplamalarından sonra ikinci dereceden türevlendirme yada geçici türevlendirme yaparak veya gradyen hesaplandıktan sonra bir düzgünlük terimi kullanarak benzersiz hareketleri tespit ederler. Bu teknikler dikkate alınarak algoritmalar şu alt başlıklar altında incelenebilir Gradyen ve Düzgünlük Sabiti Kullanan Yöntemler Horn ve Schunk [0] OA hesaplaması için gradyen değerlerinin yanı sıra aşağıdaki formulle ifade edilen bir düzgünlük terimi kullanır. Bu düzgünlük terimi hızın gradyen değerini minimize edecek şekilde seçilmiştir. Iv. I u v dx ( 11) ( + t ) + λ ( + ) Bu fonksiyon iteratif olarak çözümlenmesi gereken özyineli denklemler kullanılarak değiştirilebilir.

26 Lucas ve Kanade [1] düzgünlük terimini gradyen hesabından sonra kullanmak yerine görüntüye gradyen filtresi uygalanmadan önce düzgünleştirme sağlamak amacıyla ön-düzgünleştirme tekniği kullanmıştır. Bu amaçla kullanılan düzgünlük şu şekilde ifade edilmektedir; [ + ] min W (x) I(x,t) v I t(x,t) (1) x Ω Bu denklemde W(x), Ω merkez pozisyonun komşularını içeren alanı ifade etmektedir. Denklem vektör tahmini için şu şekle dönüştürülmektedir; v = A W A A Wb T 1 T [ ] (13) Bu formüldeki A,b ve W vektörleri şu şekildedir; T A = [ I( x1),..., I( xn )] W = diag[ W( x1),..., W( xn )] (14) T b = [ I ( x ),..., I ( x )] t 1 t n Bu yaklaşımın en büyük avantajı hareket vektörü tahmin edilirken A T W A hesapalmasının güvenli bir tahmin sağlıyor olmasıdır. Barron et al. Lucas ve Kanade yaklaşımının doğruluk açısından en iyi ikinci algoritma olduğunu ifade ederken Liu etkinlik-doğruluk eğrisini kıyaslayarak üçüncü en iyi algoritma olduğunu belirtmektedir. Bunun dışında Fleet ve Langley [] düzgünleştirme için geçici önfiltrelem ve geçici özyineli tahmin kullanan efektif bir yaklaşım önermiştir. Fakat bu yöntem performansta küçük bir artış sağlayabilmek için hesaplama zamanını oldukça arttırmaktadır. Negel ve Enkelmann [3] yöneltişmiş bir düzgünlük sabiti kullanarak görüntü`deki kesikliklerden (discontinuities) kaynaklanan problemlerin ortadan kaldırılmasını sağlamıştır. Ghosal ve Vanek [4] de bu amaçla ağırlıklandırılmış özel bir filtre kullanımını önermiştir. Aynı biçimde Spetsakis [5] adaptif Gaussian filtre kullanarak occlusion problemininin üstesinden gelmeye çalışmıştır Ikinci Derece Turevlendirme Bu yöntem benzersiz hareket vektörlerini belirlemek için ikinci dereceden türevlendirme sonucunda elde edilen denklemleri kullanır [1]. Bu amaçla görüntü gradyeni hesaplandıktan sonra x`e ve y`e göre kısmi türevler alınır. Bu şekilde iki ayrı denklem elde edilecektir.