24.07.2013 Views

Polinom Filtresi ile Görüntü Stabilizasyonu - KULIS - Kocaeli ...

Polinom Filtresi ile Görüntü Stabilizasyonu - KULIS - Kocaeli ...

Polinom Filtresi ile Görüntü Stabilizasyonu - KULIS - Kocaeli ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. Giriş<br />

<strong>Polinom</strong> <strong>Filtresi</strong> <strong>ile</strong> <strong>Görüntü</strong> <strong>Stabilizasyonu</strong><br />

Fatma Özbek, Sarp Ertürk<br />

<strong>Kocaeli</strong> Üniversitesi<br />

Elektronik ve Hab. Mühendisliği Bölümü<br />

İzmit, <strong>Kocaeli</strong><br />

fozbek@kou.edu.tr , serturk@kou.edu.tr<br />

Özetçe<br />

Bu bildiride video görüntü dizininde istenmeyen titreşimleri yok etmek amacıyla,<br />

hareket tahmin işlemi önceden yapılmış, iki boyutlu çerçeve konumu düzeltme<br />

işlemi için geliştir<strong>ile</strong>n <strong>Polinom</strong> <strong>Filtresi</strong>yle görüntü dizini stabilizasyonu yöntemi<br />

sunulmuştur. <strong>Polinom</strong> filtresi <strong>ile</strong> çerçeve konumu düzeltme yöntemi, görüntü<br />

dizininin polinom filtre <strong>ile</strong> düzgünleştirilmesi sonucu titreşimi tamamen giderirken<br />

aynı anda istenen kamera hareketlerini de korumasıyla iyi sonuç vermektedir.<br />

<strong>Görüntü</strong> stabilizasyonu, hareket halindeki araçlardan yapılan çekimler, görüntülü cep telefonları ve<br />

robot-kamera uygulama alanlarında olduğu gibi video görüntülerinde de istenmeyen kamera<br />

hareketlerinden dolayı oluşan düzensiz titreşimlerin giderilmesini amaçlamaktadır. <strong>Görüntü</strong><br />

stabilizasyonunda, kamera hareketinden dolayı oluşan ve çerçevenin yer değişimi şeklinde gözlenen<br />

global hareketin istenmeyen b<strong>ile</strong>şeni ayrıştırılırken sadece gerekli global hareketlerin muhafaza<br />

edilmesi amaçlanmaktadır.<br />

<strong>Görüntü</strong> dizini stabilizasyon (GDS) sistemi hareket tahmin sistemi ve hareket düzeltme sisteminden<br />

oluşur. Hareket tahmin sistemi, görüntü dizini içerisinde çerçevelerin ardışık olarak global<br />

hareketlerini bularak, kameranın gösterdiği yer değişimini tespit etmektedir. Hareket düzeltme<br />

sistemi, global hareketleri ele alarak istenmeyen hareketlerin ayrıştırılması sonucu stabilize edilmiş<br />

bir görüntü dizininin oluşturulmasını sağlamaktadır.<br />

<strong>Görüntü</strong> stabilizasyonu için vektör entegrasyonu, frekans uzayında çerçeve konum filtrelemesi,<br />

zaman uzayında FIR ve IIR filtreler <strong>ile</strong> çerçeve konum filtrelemesi ve Kalman filtresi [2] <strong>ile</strong> çerçeve<br />

konum düzeltmesi yöntemleri önerilmiştir. Bu bildiride polinom filtresi kullanarak çerçeve konum<br />

düzeltmesi <strong>ile</strong> görüntü stabilizasyonu önerilmektedir. Global çerçeve konumlarının polinom filtresi<br />

<strong>ile</strong> düzgünleştirilmesi sonucu görüntüler titreşimden arındırılırken aynı anda istenen kamera<br />

hareketleri de korunmaktadır. <strong>Polinom</strong> filtresi <strong>ile</strong> global hareketin yüksek frekanslarda görülen<br />

titreşim öğeleri atılırken, düşük frekans elemanlarına karşılık gelen kamera hareketleri<br />

korunmaktadır. <strong>Görüntü</strong>lerin gerekli pozisyona getirilmesi sonucu titreşim öğelerinden arındırılmış<br />

video oluşturulmaktadır. <strong>Polinom</strong> filtresinin yapısından dolayı bu teknik, gerçek-zamanlı çalışma<br />

gerektirmeyen, kaydedilmiş video dizinlerinin stabilizasyon işleminde uygun bir yöntem<br />

sağlamaktadır.


2. <strong>Polinom</strong> <strong>Filtresi</strong><br />

<strong>Polinom</strong>lar, bir adet x değişkenine bağımlı ve bu değişkenin pozitif tam sayı güçlerinin ağırlıklı<br />

toplamıyla bir çıkış değeri oluşturan basit matematiksel fonksiyonlardır [1]. <strong>Polinom</strong> filtrelerin<br />

temelini oluşturan polinom ifadesi aşağıdaki gibidir [3].<br />

a , j [ 0,<br />

m]<br />

j<br />

m<br />

f a x = a + a x + a x + ..... + a<br />

i = ∑<br />

j = 0<br />

j<br />

j<br />

i<br />

2<br />

m<br />

0 1 i 2 i<br />

m i<br />

(1)<br />

∈ için m ’nci dereceden polinomun katsayıları ve bilinmeyen gerçel sabit sayılardır.<br />

<strong>Polinom</strong> filtresinin görüntü stabilizasyonuna uygulanmasında önceden yapılmış global hareket<br />

tahmin işlemiyle elde ed<strong>ile</strong>n çerçeve konum vektör sinyaline, düşük dereceli bir polinomun<br />

uydurulması sonucu düzgünleştirilmiş bir çerçeve konum vektörü elde edilmektedir.Yatay ve düşey<br />

düzlemde çerçeve konum değerleri sırasıyla ( xi , yi<br />

) olan polinom filtresi aşağıdaki gibi ifade<br />

edilmektedir.<br />

m<br />

f =<br />

i ∑<br />

x j=<br />

0<br />

a<br />

j<br />

j<br />

i<br />

x<br />

h<br />

,<br />

f<br />

y<br />

j<br />

m<br />

=<br />

i ∑<br />

=<br />

Video dizininin çerçeve sayısı n alındığında i ∈[ 0, n −1]<br />

, j ∈ [ 0,<br />

m]<br />

; yatay hareket dinamiğinde<br />

görüntü dizinin çerçeve numarası,<br />

filtrelenmiş çıkış değerleri; düşey hareket dinamiğinde<br />

fi x<br />

0<br />

b<br />

j<br />

j<br />

i<br />

y<br />

h<br />

ise i'nci çerçeve için a katsayılı m'nci dereceden polinomun<br />

j<br />

hi y<br />

x<br />

(2)<br />

hi x<br />

görüntü dizinin çerçeve numarası, i f y<br />

ise i'nci çerçeve için j b katsayılı m'nci dereceden polinomun filtrelenmiş çıkış değerlerdir. Bu fi<br />

değerleri bize stabilizasyon için çerçevelerin yatay ve düşey düzlemde bulunması gereken<br />

konumlarını vermektedir.<br />

hi x<br />

ve<br />

hi y<br />

gözlemleme bilg<strong>ile</strong>ri yatay ve düşey düzlemde i’nci çerçevenin<br />

numarasını belirttiği için bu iki giriş değerleri eşit alınmaktadır. Böylece tek bir H gözlemleme<br />

matrisin h ij<br />

eleman değerleri aşağıdaki gibi hesaplanabilir.<br />

h = f ( h ) = h i=0,1,..,n-1 j=0,1,..,m (3)<br />

ij<br />

j<br />

i<br />

j<br />

i<br />

Burada f j ( hi<br />

) , gözlemleme bilgisini uyarlamak için seçilmiş bir fonksiyon modeli olup polinom<br />

j<br />

filtresinde f j ( hi<br />

) = hi<br />

olarak hesaplanır. <strong>Polinom</strong> filtresinde H gözlemleme matrisi aşagıdaki gibi<br />

ifade edilmektedir[3].<br />

⎡1<br />

h<br />

⎢<br />

⎢1<br />

h<br />

H =<br />

⎢M<br />

⎢<br />

⎢⎣<br />

1 h<br />

0<br />

1<br />

n−1<br />

h<br />

2<br />

n−1<br />

m<br />

0<br />

m<br />

1<br />

2<br />

h LLh<br />

2<br />

h LLh<br />

1<br />

0<br />

LLh<br />

m<br />

n−1<br />

⎤ ⎡1<br />

⎥ ⎢<br />

⎥<br />

= ⎢<br />

1<br />

⎥ ⎢M<br />

⎥ ⎢<br />

⎥⎦<br />

⎢⎣<br />

1<br />

0<br />

1<br />

0<br />

1<br />

LLLL<br />

LLLL<br />

( ) ( ) ( ) ⎥ ⎥⎥⎥⎥<br />

2<br />

m<br />

n -1<br />

n -1<br />

LL<br />

n -1<br />

0<br />

1<br />

⎤<br />

⎦<br />

(4)


Denklem (2) kısaca Fx = HA , Fy = HB yazılabilir.<br />

F x , F y stabilize edilmiş çerçeve konum değerlerini elde etmek için öncelikle, en küçük chi-kare<br />

2<br />

düzlem metodu kullanılarak aşağıdaki denklemlerde tanımlanan h ifadesini en küçük yapan<br />

A , B katsayıları hesaplanır[3].<br />

2 hx 2 hy 2<br />

⎛ x<br />

n 1 i f ⎞<br />

⎛<br />

⎜<br />

− x<br />

i<br />

⎜<br />

n 1 i −<br />

− ⎟ −<br />

x ⎜<br />

= ∑⎜<br />

⎟ = ∑⎜<br />

i= 0⎜<br />

σ i ⎟<br />

⎜ ⎟<br />

⎜<br />

⎝ ⎠<br />

⎝<br />

2<br />

yi f ⎞<br />

i ⎟ n−1<br />

y<br />

m<br />

∑<br />

j=<br />

0<br />

σ<br />

i= 0 i<br />

⎛ ⎛<br />

n 1⎜<br />

− ⎜ yi<br />

−<br />

−<br />

⎜<br />

= ⎜ ⎟ ∑<br />

= ⎜<br />

i 0⎜<br />

i ⎟ ∑<br />

= σ<br />

⎜ ⎟ ⎜<br />

⎝ ⎠ ⎜<br />

⎝<br />

m<br />

∑<br />

a<br />

j=<br />

0<br />

σ<br />

i= 0 i<br />

b<br />

j<br />

j<br />

2<br />

j ⎞<br />

i ⎟<br />

x ⎟<br />

⎟<br />

=<br />

⎟<br />

⎠<br />

h<br />

H<br />

0<br />

A − X<br />

2<br />

0<br />

2<br />

j ⎞<br />

i ⎟<br />

y ⎟<br />

2<br />

⎟ = H 0B<br />

− Y0<br />

⎟<br />

⎠<br />

Sisteme en iyi çözümü veren 0 H , 0 X ve Y 0 matrislerin elemanları aşağıdaki gibi hesaplanır.<br />

j<br />

hi<br />

xi<br />

yi<br />

h0ij = , x0i<br />

= , y0i<br />

= , i = 0, 1,....,<br />

n −1<br />

; j = 0,<br />

1,...,<br />

m<br />

(7)<br />

σ σ σ<br />

i<br />

i<br />

i<br />

(5) ve (6) ifadelerin en küçük kare tahmini olması için σ standart sapmanın sabit bir sayıya<br />

i<br />

atanması yani ölçüm hataların bağımsız ve bu sapmaya göre dağılmış olması gerekir. Standart<br />

sapma σ =1 alınmıştır.<br />

i<br />

2 h ifadelerini en küçük yapmak için tercih ed<strong>ile</strong>n bir yöntem, aşağıdaki denklemlerin en küçük<br />

kare çözümünü bulmaktır.<br />

H 0 A = X 0 , 0B<br />

Y0<br />

h<br />

(5)<br />

(6)<br />

H = (8)<br />

Böylece görüntü dizinini en iyi satabilize eden yatay ve düşey düzlemdeki konum değerlerini<br />

oluşturan A ve B polinom katsayıları aşağıdaki gibi hesaplanır.<br />

A<br />

T −1<br />

T<br />

T −1<br />

T<br />

= ( H 0 H 0 ) H 0 X 0 , B ( H 0 H 0 ) H 0 Y0<br />

= (9)<br />

Fx = HA , Fy = HB olmak üzere stabilize edilmiş çerçeve konum vektörleri elde edilir.<br />

Stabilizasyon edilirken yatay ve düşey pozisyon hareketinde oluşan karesel hatalar<br />

mse<br />

1<br />

=<br />

n<br />

x<br />

n<br />

∑ −1<br />

i=<br />

0<br />

⎛<br />

⎜<br />

f −<br />

i<br />

⎝ x<br />

xi<br />

⎞<br />

⎟<br />

⎠<br />

2<br />

, ∑ −1<br />

1 ⎛<br />

= ⎜ −<br />

= 0⎜<br />

⎝<br />

n<br />

msey<br />

f<br />

n i i y<br />

yi<br />

⎞<br />

⎟ ⎟<br />

⎠<br />

2<br />

(10)


kriterine göre çerçevelerin orjinal (stabilize edilmemiş) konumları ( )<br />

(çerçevelerin stabilize edilmiş konumları)<br />

polinom katsayıları hesaplanmaktadır.<br />

3. <strong>Polinom</strong> <strong>Filtresi</strong> İle Stabilizasyon<br />

x i , yi<br />

, <strong>ile</strong> polinom çıkışı<br />

⎛ ⎞<br />

⎜ f ⎟<br />

⎜ i<br />

, f arasında minimum karesel hata olacak şekilde<br />

i ⎟<br />

⎝ x y ⎠<br />

İki-boyutlu görüntü dizini stabilizasyon sisteminde sadece kayma titreşimlerinin stabilizasyonu için<br />

daha verimli çalışan çerçeve konum düzeltmesi uygulanmıştır. <strong>Görüntü</strong> dizini içerisindeki<br />

çerçevelerin düzeltme vektörü, çerçevelerin orijinal konum değerleri <strong>ile</strong> düzgünleştirilmiş konum<br />

değerleri arasındaki fark, ( , ) ( x , y ) F F Y X V = − olarak bulunur.<br />

<strong>Polinom</strong> filtresi, gerçek zamanlı çalışmayan yapısı nedeniyle stabilizeyi etk<strong>ile</strong>yen gürültü<br />

parametreleri olmadığından sadece filtresinin derecesi önemlidir. <strong>Polinom</strong> filtresinin derecesi,<br />

stabilize edilmiş dizinde izin ver<strong>ile</strong>n konum değişimi miktarını belirlemektedir. Düşük dereceli bir<br />

polinom sadece yavaş değişimler göstereceği için stabilize edilmiş çerçeve konumları ani<br />

değişimler göstermeyecektir, bununla beraber bilinçli kamera hareketlerinin takip ed<strong>ile</strong>bilmesi için<br />

polinom derecesinin aşırı küçük olmaması gerekir. Yüksek dereceli polinomda global hareketin<br />

yüksek frekanslarda görülen titreşimle birlikte isten<strong>ile</strong>n kamera hareketleri de atıldığından<br />

stabilizasyon performansı azalabilmektedir.<br />

4. Deneysel Sonuçlar<br />

Hareket halindeki bir motorsiklete bağlanmış kamera <strong>ile</strong> yapılan çekimle elde edilmiş örnek görüntü<br />

dizini stabilize edilmiştir. Şekil 1’ de bu görüntü dizini için işlenmemiş çerçeve konum b<strong>ile</strong>şenleri<br />

ve 3’ncü dereceden polinom filtresiyle düzgünleştirilmiş konum b<strong>ile</strong>şenleri , Şekil 2’de ise 8‘nci<br />

dereceden polinom filtresiyle düzgünleştirilmiş konum b<strong>ile</strong>şenleri gösterilmiştir.<br />

25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

-5<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

Ç erçeve N um arasi<br />

100<br />

Şekil 1. Motor dizini için orijinal ve 3üncü dereceden polinom filtre <strong>ile</strong> düzgünleştirilmiş çerçeve<br />

konum b<strong>ile</strong>şenleri<br />

15<br />

10<br />

5<br />

0<br />

-5<br />

-1 0<br />

-1 5<br />

-2 0<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

Ç erçeve N um arasi<br />

100


25<br />

20<br />

15<br />

10<br />

5<br />

0<br />

-5<br />

0 20 40 60 80<br />

100<br />

Şekil 2. Motor dizini için orijinal ve 8inci dereceden polinom filtre <strong>ile</strong> düzgünleştirilmiş çerçeve<br />

konum b<strong>ile</strong>şenleri<br />

Videoda geniş bir virajı dönen motorsikletin hareketinden dolayı oluşan yataysal ve düşeysel<br />

kamera yer değişimine ek olarak, istenmeyen dikey sallantılar da gözlenmektedir.Şekillerden<br />

görüldüğü gibi 3. dereceden polinom hareketteki değişiklikleri yakından takip edememektedir.<br />

Derece arttıkça kısmen hesap yükü fazla olan işlemler gerekse de kamera hareketleri tam olarak<br />

takip edilmektedir. 8. dereceden polinomda yatay ve düşey harekette en düşük karesel hatayı elde<br />

etmekle birlikte global hareketteki ani değişimler yeterli yakınlıkta izlenip titreme hareketleri<br />

alınmamıştır.<br />

Farklı görüntü dizinlerinde yapılan incelemelerde, sekizinci dereceli polinomlar kullanıldığında iyi<br />

bir stabilizasyonun sağlandığı ve bununla birlikte hareket dinamiğindeki değişimlerin tam olarak<br />

takip edildiği gözlenmiştir. Şekil 3 ve Şekil 4’de, eğimli bir arazide <strong>ile</strong>rleyen araçtan paralel yolda<br />

<strong>ile</strong>rleyen aracının görüntülendiği bir örnek dizin için çekimin yapıldığı aracın hareketinden dolayı<br />

oluşan kamera yer değişimleri ve filtreyle düzgünleştirilmiş yer değişimler gösterilmiştir. Bu<br />

görüntü dizininin stabilizasyonu neticesinde görüldüğü gibi polinomun derecesi belli bir dereceye<br />

kadar arttıkça genel kamera hareketleri yakından takip edilirken titreşimler de bastırılmaktadır.<br />

Özellikle 8’nci derceden polinom filtresinde, dikeyde arazinin engebeli olmasından kaynaklanan<br />

sallantıların uygun bir şekilde düzgünleştirildiği görülmektedir. 8’nci derceden polinom filtresinde<br />

çok fazla hesap yükü olmayan, yoğunluğu yüksek bir stabilizasyon elde edilmiştir.<br />

250<br />

200<br />

150<br />

100<br />

50<br />

0<br />

-5 0<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

Ç erçeve N um arasi<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

Ç erçeve N um arasi<br />

100<br />

Şekil 3. 3üncü dereceden polinom filtre <strong>ile</strong> stabilize ed<strong>ile</strong>n araba dizini için konum b<strong>ile</strong>şenleri<br />

15<br />

10<br />

5<br />

0<br />

-5<br />

-1 0<br />

-1 5<br />

-2 0<br />

15<br />

10<br />

-5<br />

-1 0<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

5<br />

0<br />

Ç erçeve N um arasi<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

Ç erçeve N um arasi<br />

100<br />

100


250<br />

200<br />

150<br />

100<br />

Şekil 4. 8inci dereceden polinom filtre <strong>ile</strong> stabilize ed<strong>ile</strong>n araba dizini için konum b<strong>ile</strong>şenleri<br />

Deneysel sonuçlara genel olarak bakıldığında kasıtlı kamera hareketlerinin yatay ve düşey konumda<br />

tam olarak takibi 8’nci dereceden polinom filtre stabilizasyonu <strong>ile</strong> sağlanmıştır. Bu derecede<br />

istenmeyen titreşimler en iyi bastırılmakla birlikte en küçük karesel hata elde edilmektedir. Fakat<br />

derece çok küçük alındığında polinom sadece yavaş değişimler göstereceği için satabilize edilmiş<br />

harekette ani değişimler takip ed<strong>ile</strong>memektedir. Ayrıca polinom filtresinde düzgünleştirilmiş<br />

çerçeve konum değerlerini hesaplarken matris tersi ve vektör işlemleri nedeniyle hesaplama<br />

açısından karmaşıklık polinom derecesi büyüdükçe artmaktadır. Fakat kullanılan polinom filtresi<br />

gerçek zamanlı olmadığı için bu hesapsal yük filtrenin performansını etk<strong>ile</strong>memektedir.<br />

5. Sonuç<br />

50<br />

0<br />

-5 0<br />

Bu bildiride, polinom filtresi kullanarak çerçeve konum pozisyonlarının düzgünleştirilmesi sonucu<br />

oluşturulmuş yeni bir stabilizasyon sistemi gösterilmiştir. Gerçek-zamanlı çalışmamakla beraber,<br />

önceden kaydedilmiş video dizinleri için etkin bir stabilizasyon elde edilmektedir. Gelecekte<br />

polinom filtresine adaptiflik getirerek gerçek-zamanlı bir stabilizasyon sisteminin geliştirilmesi<br />

amaçlanmaktadır.<br />

Kaynakça<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

Ç erçeve N um arasi<br />

[1]. S. Valiviita, S. J. Ovaska, ve O. Vainio, “Polynomial predictive filtering in control<br />

instrumentation: a review”, IEEE Trans. on Ind. Electronics, Vol. 46, No: 5, pp. 876-888, 1999.<br />

[2]. E. Yaman, F. Tekin, S. Ertürk, “Kalman filtresi <strong>ile</strong> görüntü stabilizasyonu”, Elektrik<br />

Elektronik-Bilgisayar Mühendisliği 9. Ulusal Kongresi, <strong>Kocaeli</strong>, 2001, pp. 557-560.<br />

[3]. National Instruments TM , LabVIEW TM , User Manuel<br />

100<br />

15<br />

10<br />

5<br />

0<br />

-5<br />

-1 0<br />

orjinal çerçeve konum lari<br />

stabilize çerçeve konum lari<br />

0 20 40 60 80<br />

Ç erçeve N um arasi<br />

100

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!