王雪靜, 王小鵬, 閆建偉, 魏沖沖
(蘭州交通大學(xué) 電子與信息工程學(xué)院, 蘭州 730070)
電子穩(wěn)像旨在消除視頻序列中的各種抖動(dòng),為此諸多學(xué)者提出了各種解決方法。常見的穩(wěn)像方法有灰度投影法[1]、塊匹配法[2]、位平面匹配法[3]和特征點(diǎn)匹配法[4]?;叶确ㄋ惴ê?jiǎn)單速度快,但是要求圖像灰度變化豐富,不能處理具有旋轉(zhuǎn)的圖像。相位相關(guān)法可以匹配旋轉(zhuǎn)角度很大的圖像但是計(jì)算量大。位平面法計(jì)算量小但不穩(wěn)定。相對(duì)而言特征點(diǎn)匹配法即可以保證精度,同時(shí)計(jì)算量也較小,因此本文采用SIFT[5]特征匹配算法。
電子穩(wěn)像算法有兩大基本步驟:運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。運(yùn)動(dòng)估計(jì)就是找出當(dāng)前幀相對(duì)于參考幀的偏移量。運(yùn)動(dòng)補(bǔ)償就是估計(jì)出偏移量后對(duì)圖像進(jìn)行補(bǔ)償。運(yùn)動(dòng)估計(jì)是穩(wěn)像算法中的最為關(guān)鍵的步驟。本文采用特征點(diǎn)匹配算法計(jì)算圖像的偏移量。
基于特征點(diǎn)的運(yùn)動(dòng)估計(jì)要盡可能準(zhǔn)確的提取出圖像的特征點(diǎn)并進(jìn)行匹配,所以選擇高精度的方法十分重要。本文采用的SIFT算法是一種在的尺度空間下提取圖像特征點(diǎn)的方法,即尺度不變特征變換(Scale Invariant Feature Transform),解決了不同尺度下圖像特征點(diǎn)提取問題。SIFT算法獨(dú)特性好,信息量豐富,精確率較高。
SIFT算法是一種提取局部特征的算法,在尺度空間尋找極值,提取極值點(diǎn)位置,尺度,旋轉(zhuǎn)不變量。SIFT匹配算法分為以下幾個(gè)步驟。
1.1.1 特征點(diǎn)的檢測(cè)
1) 尺度空間建立
首先建立尺度空間,一幅二維圖像I(x,y)尺度空間定義為:
其中,G(x,y,)σ是尺度可變高斯核函數(shù)。(x,y)是空間坐標(biāo),σ是尺度因子。
2)建立高斯金字塔和DOG金字塔。
為了得到在不同尺度空間下的穩(wěn)定特征點(diǎn),將圖像I(x,y)與不同尺度因子下的高斯核進(jìn)行卷積,得到不同的尺度空間,再用不同的尺度空間構(gòu)成高斯塔。通常在同一組中,如果一幅圖的尺度因子為σ,下一幅圖中的尺度因子為k×σ。
高斯金字塔可分為兩步:(1)對(duì)圖像做高斯平滑;(2)對(duì)圖像進(jìn)行降采樣。
通常高斯金字塔為4組,每組有5層。第二組金字塔第一層圖像由第一組金字塔中間層尺度圖像進(jìn)行降采樣得到,采樣因子為2,以后每組金字塔類似的由上一組金字塔得到。如圖1所示。
圖1 高斯金字塔構(gòu)造
現(xiàn)在使用這些圖像來生成另一類圖像組Differece of Gaussain(DOG),即求高斯算子的差值。DOG(Difference of Gaussian)是相鄰的兩尺度空間函數(shù)之差,用公式表示為:
DOG金字塔通過高斯金字塔中相鄰尺度空間函數(shù)相減即可,如圖2所示。
圖2 DOG金字塔構(gòu)造
3) DOG空間極值點(diǎn)檢測(cè)
在尺度空間下尋找局部極值點(diǎn)。在DOG空間的金字塔中間層的每個(gè)像素需要和它周圍的8個(gè)點(diǎn)及上下層中相鄰的9個(gè)點(diǎn)共26個(gè)像素點(diǎn)進(jìn)行比較,如果這個(gè)像素點(diǎn)是極值點(diǎn)則保存該點(diǎn)。如圖3所示,標(biāo)記為白色的點(diǎn)與周圍26個(gè)點(diǎn)進(jìn)行比較。
圖3 尺度空間極值檢測(cè)
1.1.2 特征點(diǎn)定位
檢測(cè)出的這些極值點(diǎn)并非都是特征點(diǎn),由于DOG函數(shù)對(duì)邊緣和噪聲比較敏感,這些極值點(diǎn)還需要進(jìn)一步檢驗(yàn)。
首先去除低對(duì)比度的極值點(diǎn)。用泰勒公式將D ( x,y,σ)在局部極值點(diǎn) ( x0,y0,σ)處展開。
其中x= (x,y,σ)。
上式對(duì)x求偏導(dǎo)并令結(jié)果為0,得到精確的極大值點(diǎn)Xmax。
將(4)帶入(3)中,取前兩項(xiàng)得到下式。
計(jì)算出 D ( Xmax),這里設(shè)定了一個(gè)閾值0.03。如果D ( Xmax)≥0.03,則保留該點(diǎn),否則丟棄。
下一步是消除不穩(wěn)定的邊緣響應(yīng)點(diǎn)。DOG函數(shù)中定義不好的極值點(diǎn)在橫跨邊緣的方向有較大的主曲率,在垂直邊緣的方向有較小的主曲率。而主曲率通過計(jì)算在該點(diǎn)的2×2的Hessian矩陣H求出:
其中,
D的主曲率和H的特征值成正比,計(jì)算它們的比率。
令α為最大特征值,β為最小特征值,則:
令α=rβ,則:
1.1.3 特征向量生成
1)特征點(diǎn)方向確定
經(jīng)過上述步驟得到的點(diǎn)為特征點(diǎn),然后為這些點(diǎn)指定方向和模值。利用特征點(diǎn)臨域像素的梯度方向分布特性為每個(gè)特征點(diǎn)指定方向參數(shù),使算子具備旋轉(zhuǎn)不變性。
式(8)分別為點(diǎn)(x,y)處的梯度模值和梯度方向公式。
L所用尺度為每個(gè)像素點(diǎn)各自所在的尺度。
在以特征點(diǎn)為中心的鄰域窗口內(nèi)采樣,并用直方圖統(tǒng)計(jì)鄰域像素的梯度方向。梯度直方圖的范圍是0°~360°,其中每10°一個(gè)方向,總共36個(gè)方向。
特征點(diǎn)的方位用梯度直方圖來決定。對(duì)直方圖進(jìn)行兩次高斯平滑。直方圖峰值代表了該特征點(diǎn)處臨域梯度的主方向,即作為該特征點(diǎn)的方向。如果存在其他相當(dāng)于主峰值80%的峰值時(shí),這個(gè)方向就認(rèn)為是該特征點(diǎn)的輔方向。所以一個(gè)特征點(diǎn)可能會(huì)有一個(gè)主方向,多個(gè)輔方向,可以增強(qiáng)匹配的魯棒性。
2)生成特征點(diǎn)描述子
通過以上步驟,每一個(gè)特征點(diǎn)都擁有3個(gè)信息:位置、尺度、方向。下面為每一個(gè)特征點(diǎn)建立一個(gè)描述子。
首先將坐標(biāo)軸旋轉(zhuǎn)為特征點(diǎn)的方向,以確保旋轉(zhuǎn)不變性。
以特征點(diǎn)為中心取8×8的窗口。圖 4(a)中的中央黑點(diǎn)為當(dāng)前特征點(diǎn)的位置,每個(gè)小格代表特征點(diǎn)鄰域所在尺度空間的一個(gè)像素,箭頭方向代表該像素的梯度方向,箭頭長(zhǎng)度代表梯度模值,圖中黑色的圈代表高斯加權(quán)的范圍。然后在每4×4的小塊上計(jì)算8個(gè)方向的梯度方向直方圖,繪制每個(gè)梯度方向的累加值,即可形成一個(gè)種子點(diǎn),如圖 4(b)所示。此圖中一個(gè)特征點(diǎn)4個(gè)種子點(diǎn)組成,每個(gè)種子點(diǎn)有8個(gè)方向向量信息。
圖4 圖像梯度信息及特征向量
實(shí)際計(jì)算過程中,為了增強(qiáng)匹配的穩(wěn)健性,對(duì)每個(gè)特征點(diǎn)使用 4×4共16個(gè)種子點(diǎn)來描述,這樣對(duì)于一個(gè)特征點(diǎn)就可以產(chǎn)生128個(gè)數(shù)據(jù),即最終形成128維的SIFT特征向量。此時(shí)SIFT特征向量己經(jīng)去除了尺度變化、旋轉(zhuǎn)等幾何變形因素的影響,再繼續(xù)將特征向量的長(zhǎng)度歸一化。
1.1.4 特征向量匹配
當(dāng)兩幅圖像的SIFT特征向量生成后,對(duì)其進(jìn)行相似度判定,此處采用特征點(diǎn)特征向量的歐式距離作為兩幅圖像中特征點(diǎn)的相似性判定度量,即在圖像2中找到與圖像1中的特征點(diǎn)歐式距離最近的前兩個(gè)特征點(diǎn),當(dāng)最近距離和次近距離的比值小于某個(gè)比例閾值r時(shí),則接受這個(gè)匹配點(diǎn)對(duì),r越小,匹配的精度越高。
運(yùn)動(dòng)補(bǔ)償?shù)哪康氖切U?dāng)前幀,在只考慮攝像機(jī)平移運(yùn)動(dòng)的情況下,采用平移模型:
其中,(xk+1,yk+1)與( x k, yk )是參考幀和當(dāng)前幀的一對(duì)特征匹配點(diǎn),(? x,? y)是當(dāng)前幀相對(duì)與參考幀的偏移量。根據(jù)式(8)計(jì)算出的偏移量,對(duì)每一幀進(jìn)行補(bǔ)償。
實(shí)驗(yàn)選取在鐵道路口拍攝的一組視頻,視頻因火車經(jīng)過時(shí)引起攝像機(jī)的震動(dòng)導(dǎo)致視頻的抖動(dòng)。在MATLAB環(huán)境下用本文方法進(jìn)行穩(wěn)像實(shí)驗(yàn)。實(shí)驗(yàn)中,k取值為,閾值r≤0.4。最后采用RANSAC算法對(duì)匹配點(diǎn)進(jìn)行檢驗(yàn),剔除錯(cuò)誤匹配點(diǎn)。圖5(a)和圖5(b)為當(dāng)前幀與參考幀的特征點(diǎn)提取結(jié)果圖像,其中每個(gè)特征點(diǎn)使用 4×4共16個(gè)種子點(diǎn)來描述。圖5 (c)~(e)分別為參考幀、當(dāng)前幀及穩(wěn)像后的幀圖像。
圖5 實(shí)驗(yàn)圖像
表1給出了在參考幀與當(dāng)前幀中提取的特征點(diǎn)數(shù)以及匹配點(diǎn)數(shù)及匹配準(zhǔn)確率,可以看出,SIFT算法可以提取大量的特征點(diǎn),經(jīng)驗(yàn)證后的匹配點(diǎn)準(zhǔn)確率也較高。
表1 特征點(diǎn)匹配結(jié)果
在分析SIFT算法基本原理的基礎(chǔ)上,將其應(yīng)用電子穩(wěn)像過程中的運(yùn)動(dòng)矢量估計(jì)。由于SIFT算法能夠在不同的尺度空間下提取圖像特征點(diǎn),并采用多維向量描述SIFT特征信息,因此,獲得的特征點(diǎn)數(shù)量多且獨(dú)特性好,可以較準(zhǔn)確地對(duì)參考幀和當(dāng)前幀圖像進(jìn)行特征匹配,從而得到較好的穩(wěn)像效果。
[1]汪小勇,李奇,徐之海,等.用于實(shí)時(shí)數(shù)字穩(wěn)像的灰度投影算法研究[J].光子學(xué)報(bào),2006,9(8):1268-1271.
[2]余穎,胡繼承.基于預(yù)測(cè)搜索距的快速塊匹配運(yùn)動(dòng)估計(jì)算法[J].計(jì)算機(jī)工程與設(shè)計(jì),2005,26(8):155-2157.
[3]張博,任廣輝.采用下采樣和位平面匹配的局部運(yùn)動(dòng)估計(jì)[J].光電工程,2005,32(2):75-79.
[4]朱娟娟,郭寶龍.一種魯棒的電子穩(wěn)像系統(tǒng)[J].西安電子科技大學(xué)學(xué)報(bào):自然科學(xué)版,2007,34(3):418-422.
[5]Lowe, D.G. Distinctive Image Features from Scale-Invariant Keypoints[J].International Journal of Computer Vision,2004,60(2):91-110.
[6]Battiato, S.G.Gallo, G.Puglisi.SIFT Features Tracking for Video Stabilization[C].14th International Conference on Image Analysis and Processing (ICIAP 2007).
[7]徐曉鵬.基于改進(jìn)sift算法的目標(biāo)識(shí)別研究[D].南京:南京理工大學(xué),2011.
[8]任苗苗.用于視頻監(jiān)控的電子穩(wěn)像算法研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2010.
[9]于麗莉,戴青.一種改進(jìn)的SIFT匹配算法[J].計(jì)算機(jī)工程,2011,37(2):210-212.