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 ...
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