本發(fā)明屬于視頻圖像領(lǐng)域,更具體的是一種基于背景特征點(diǎn)匹配的視頻穩(wěn)像方法。
背景技術(shù):
:視頻穩(wěn)像是近年來國內(nèi)外學(xué)者研究的熱點(diǎn),尤其對攝像機(jī)自身有運(yùn)動,且場景也發(fā)生變化的視頻。對于在運(yùn)動背景下進(jìn)行視頻穩(wěn)像,難點(diǎn)在于探索如何有效的消除前景運(yùn)動物體帶來的影響。在提取特征點(diǎn)算法中,特征點(diǎn)會落到運(yùn)動前景物體上,這種情況會給全局估計(jì)帶來誤差,很多文獻(xiàn)采用RANSAC算法進(jìn)行特征點(diǎn)提純,但是對于解決效果不佳,國內(nèi)外學(xué)者也做了各種嘗試。Y.G.Ryu,M.J.Chung等人提出的采用直接對原始的和平滑后的特征點(diǎn)軌跡進(jìn)行估計(jì)和校正運(yùn)動失量的算法(Robustonlinedigitalimagestabilizationbasedonpoint-featuretrajectorywithoutaccumulativeglobalmotionestimation[J].IEEESignalProcessingLetters,2012,19(4):223-226),實(shí)現(xiàn)在線的視頻穩(wěn)定,特征點(diǎn)的軌跡由特征跟蹤算法獲得,此算法魯棒性好,且不產(chǎn)生累計(jì)運(yùn)動估計(jì)誤差。JiShu-jiao,ZhuMing,LeiYan-min.等提出的利用改進(jìn)運(yùn)動矢量估計(jì)法進(jìn)行穩(wěn)像(Videostabilizationwithimprovedmotionvectorestimation[J],OptPrecisionEng,2015,23(5):254-261)該算法實(shí)時性強(qiáng),但是沒區(qū)分前景和背景特征點(diǎn)。技術(shù)實(shí)現(xiàn)要素:1、本發(fā)明的目的。本發(fā)明針對特征點(diǎn)在前景運(yùn)動物體上,會嚴(yán)重影響運(yùn)行矢量的準(zhǔn)確性的這種情況解決,即如何有效地消除前景運(yùn)動物體帶來的影響,而提出了一種基于背景特征點(diǎn)匹配的視頻穩(wěn)像方法。2、本發(fā)明所采用的技術(shù)方案?;诒尘疤卣鼽c(diǎn)匹配的視頻穩(wěn)像方法,按照如下步驟進(jìn)行:步驟1、基于KLT進(jìn)行特征點(diǎn)跟蹤,通過MSAC算法分別指定背景特征點(diǎn)集和前景特征點(diǎn)集,任取背景特征點(diǎn)集合中的匹配點(diǎn)對,利用SVD計(jì)算運(yùn)動矢量;步驟2、更新特征點(diǎn),利用歐式距離,根據(jù)設(shè)定的背景特征點(diǎn)集和前景特征點(diǎn)集閾值,更新下一幀的特征點(diǎn)背景特征點(diǎn)集和前景特征點(diǎn)集;步驟3、利用背景特征點(diǎn)計(jì)算新的變換矩陣;步驟4:對所述的步驟3中變換矩陣組成的矩陣組進(jìn)行濾波;更進(jìn)一步具體實(shí)施例中,所述的步驟1中KLT特征點(diǎn)跟蹤:特征點(diǎn)提取通過檢驗(yàn)n×n對稱梯度矩陣δ的特征值,并設(shè)定閥值從參考幀中篩選特征點(diǎn)從而實(shí)現(xiàn)特征窗口的定位。更進(jìn)一步的具體實(shí)施例中,所述的基于背景特征點(diǎn)匹配的視頻穩(wěn)像方法步驟1中MSAC算法具體步驟如下:(1)利用KLT跟蹤算法獲得的匹配點(diǎn)對集合,任選n對特征點(diǎn)對,運(yùn)用n*2參數(shù)模型計(jì)算運(yùn)動估計(jì)參數(shù);(2)計(jì)算其余特征點(diǎn):由運(yùn)動估計(jì)參數(shù)矩陣做仿射變換得到的對應(yīng)匹配點(diǎn)和KLT匹配所得到的特征點(diǎn)之間的距離;(3)若距離小于某個閾值范圍,則候選特征點(diǎn)為內(nèi)點(diǎn),形成新的匹配點(diǎn)集合;(4)重復(fù)(1)-(3)步被重復(fù)執(zhí)行固定的次數(shù);(5)利用新的匹配點(diǎn)集合中的匹配點(diǎn)對,確定最終的仿射矩陣得到運(yùn)動矢量。更進(jìn)一步的具體實(shí)施例中,所述的基于背景特征點(diǎn)匹配的視頻穩(wěn)像方法步驟2中更新特征點(diǎn)具體步驟如下:(1)圖像分為互不重疊的前景區(qū)域和背景區(qū)域;(2)利用背景特征點(diǎn)所獲得的運(yùn)動矢量進(jìn)行更新;(3)依據(jù)跟蹤特征點(diǎn)及仿射矩陣獲得的匹配點(diǎn)對之間的距離,對所有特征點(diǎn)進(jìn)行更新獲得新的背景特征點(diǎn)和前景特征點(diǎn)。更進(jìn)一步的具體實(shí)施例中,所述的基于背景特征點(diǎn)匹配的視頻穩(wěn)像方法的步驟4中對變換矩陣組成的矩陣組,進(jìn)行Kalman濾波。更進(jìn)一步的具體實(shí)施例中,所述的基于背景特征點(diǎn)匹配的視頻穩(wěn)像方法還包括步驟5運(yùn)動補(bǔ)償步驟。3、本發(fā)明的有益效果。本發(fā)明提出利用特征點(diǎn)分類的方法,通過計(jì)算KLT跟蹤特征點(diǎn),計(jì)算運(yùn)動估計(jì)所得匹配點(diǎn)跟蹤所得特征點(diǎn)之間的距離,由MSAC算法不斷更新前景特征點(diǎn)和背景特征點(diǎn)集,最后只采用背景上的特征點(diǎn)進(jìn)行全局運(yùn)動估計(jì),從而進(jìn)行穩(wěn)像。本發(fā)明算法的結(jié)果與穩(wěn)像算法平均DITF進(jìn)行對比,結(jié)果表明本發(fā)明方法的穩(wěn)像后視頻平滑度更高,而且本發(fā)明算法的無定義區(qū)域明顯減少,更利于人眼視覺感受。附圖說明圖1為MATLAB庫里自帶測試視頻。圖2為美國空軍視頻數(shù)據(jù)庫VIRAT中的視頻。圖3為采用KLT提取特征點(diǎn)示意圖,右圖為運(yùn)動補(bǔ)償后的穩(wěn)定幀。圖4為本發(fā)明利用背景特征點(diǎn)匹配示意圖,右圖為運(yùn)動補(bǔ)償后的穩(wěn)定幀。圖5為MATLAB庫里自帶測試視頻穩(wěn)像結(jié)果對比示意圖。其中第一行圖示為原視頻序列圖示;第二行圖示為MATLAB自帶的基于特征點(diǎn)進(jìn)行穩(wěn)像的算法穩(wěn)像結(jié)果圖示;第三行為本發(fā)明算法穩(wěn)像結(jié)果圖示。圖6美國空軍視頻數(shù)據(jù)庫VIRAT中的視頻穩(wěn)像結(jié)果對比示意圖。其中第一行圖示為原視頻序列圖示;第二行圖示為MATLAB自帶的基于特征點(diǎn)進(jìn)行穩(wěn)像的算法穩(wěn)像結(jié)果圖示;第三行為本發(fā)明算法穩(wěn)像結(jié)果圖示。圖7為本發(fā)明具體實(shí)施方式流程圖。具體實(shí)施方式實(shí)施例1.1KLT特征提取KLT算法是一種典型的特征點(diǎn)跟蹤方法,這種跟蹤主要是利用幀間的連續(xù)性信息進(jìn)行的。KLT特征點(diǎn)提取算法的主要思路是通過檢驗(yàn)2×2對稱梯度矩陣δ的特征值來實(shí)現(xiàn)特征窗口的定位,δ矩陣如式(1):δ=IxxIxyIxyIyy---(1)]]>式中,Dx,Dy分別表示的是圖像在x,y方向上的一階偏導(dǎo),w為選取的一個較小的希望獲得特征點(diǎn)的區(qū)域。特征點(diǎn)的確定可以通過計(jì)算δ的兩個特征值λ1和λ2來確定,λ1和λ2的計(jì)算公式如式(2):λ1,2=Ixx+Iyy±(Ixx+Iyy)2-4(IxxIyy-Ixy2)2---(2)]]>如果λ1和λ2都很小,說明圖像具有相對恒定的灰度分布;如果其中一個很小而另一個很大,說明圖像窗口具有不定向的紋理模式;如果λ1和λ2都很大,則代表了角點(diǎn)、椒鹽紋理或其它能被可靠跟蹤的紋理模式[7]。因此,設(shè)定閾值T,λ1和λ2需滿足:min(λ1,λ2)>T(3)通常情況下,閾值T設(shè)置為:T=rλmax(0<r<1)(4)這里,λmax為δ的最大的特征值,通過這種方法,可以從參考幀中選取好的特征點(diǎn)。1.2KLT特征匹配KLT匹配算法采用圖像灰度差的平方和作為特征點(diǎn)的匹配準(zhǔn)則,利用基于最優(yōu)估計(jì)的策略進(jìn)行特征點(diǎn)之間的匹配,算法相對較簡單,無需搜索,耗時少,可以有效地提高電子穩(wěn)像的實(shí)時性。對于一副灰度圖像,假設(shè)一個具有紋理信息的特征窗口w,采用平移模型來表示特征窗內(nèi)的像素點(diǎn)之間的變化,設(shè)t時刻對應(yīng)的一幀圖像表示為I(x,y,t),t+τ時刻對應(yīng)的圖像幀可以表示為I(x,y,t+τ),它們的位置滿足:I(x,y,t+τ)=I(x-Δx,y-Δy,t+τ)(5)在I(x,y,t+τ)的每個像素點(diǎn),都可以由I(x,y,t)中的特征窗口w的像素點(diǎn)平移d=(Δx,Δy)獲得。KLT算法的最終目的是找到使SSD最小的d值。令SSD值用ε表示,利用公式(6)求解:ϵ=Σ(x,y∈W)[I(x+dx,y+dy,t+τ)-I(x,y,t)]2---(6)]]>當(dāng)位移矢量很小的時候,I(x+dx,y+dy,t+τ)可由一階泰勒公式展開,I(x+dx,y+dy,t+τ)≈I(x,y,t)+∂I∂xdx+∂I∂ydy+∂I∂tdt---(7)]]>或者表示成矩陣形式:I(x+dx,y+dy,t+τ)≈I(x,y,t)+gTd+Itτ(8)這里:gT=IxIy=∂I∂x∂I∂y]]>It=∂I∂t]]>所以式(6)等效為:ϵ≈Σ(x,y∈W)(gTd+Itτ)2---(9)]]>式(8)去掉高次項(xiàng),然后對d進(jìn)行求導(dǎo),最終化簡得:Zd=e(10)其中,Z=Ix2IxIyIxIyIY2]]>e=-τΣ(x,y)∈WItIxIy]]>解方程(10),即可求得偏移量d。利用上述KLT匹配算法,不但可以降低匹配過程中的搜索范圍減小匹配時間,而且具有較高的匹配精度。本發(fā)明采用KLT提取特征點(diǎn),并結(jié)合MSAC提取背景特征點(diǎn)。首先定義一些要提取背景特征點(diǎn)所需要的函數(shù)。定義由KLT算法在第i幀提取的特征點(diǎn)集合為:Pi={Pi(j)=(xj,yj),j=1,L,N};定義PiB,PiB分別代表特征點(diǎn)集中的背景特征點(diǎn)子集和前景特征點(diǎn)子集,他們的關(guān)系為:Pi=PiB∪PiF。KLT算法除了可以獲得特征點(diǎn)之外,還能同時得到匹配的特征點(diǎn)對,定義為匹配點(diǎn)對集合:Ci={ci(j)=Pi(j),Pi+1(j),j=1,L,N}(11)其中Pi+1(j)=Φ(Pi(j)),為第i幀圖像中的特征點(diǎn),采用跟蹤算法在第i+1幀中獲得的匹配點(diǎn)對。利用匹配點(diǎn)對,就可以獲得運(yùn)動估計(jì)參數(shù)矩陣M。在跟蹤過程中,由于前景目標(biāo)或者相機(jī)的運(yùn)動可能導(dǎo)致有些特征點(diǎn)在幾幀之后越來越少,甚至消失。這時,這些特征點(diǎn)就會從Pi,Pi+1中排除掉。這樣,如果在Ci有充足的特征匹配點(diǎn)對,就可以獲得更準(zhǔn)確的全局運(yùn)動估計(jì)。如果場景變換劇烈,引起在參考幀中的特征點(diǎn)找不到相應(yīng)的匹配點(diǎn)對,也就是第i幀中的特征點(diǎn)數(shù)目小于預(yù)先設(shè)定的閾值時,匹配點(diǎn)對也相應(yīng)減少。這時候,就會重新選取新的參考幀,提取好的特征點(diǎn),重新定義前景特征點(diǎn)和背景特征點(diǎn)。2背景特征點(diǎn)獲取2.1MSAC很多文獻(xiàn)多采用隨機(jī)抽樣一致性RANSAC來進(jìn)行特征點(diǎn)提純,但是當(dāng)前景物體占有整個圖像一大部分時,這種方法效果不好。本發(fā)明利用MSAC(M-estimationSampleConsensus)結(jié)合歐式距離進(jìn)行背景特征點(diǎn)的獲取,并計(jì)算準(zhǔn)確的運(yùn)動矢量。MSAC是算法的一種優(yōu)化變形方法。RANSAC是基于特征匹配的一種典型匹配對提純算法,能夠較好地進(jìn)行誤匹配點(diǎn)對的剔除,其消耗函數(shù)的計(jì)算過程為:C=Σinρ(ei2)---(12)]]>ρ(e2)={0e2<T2,inlierske2≥T2,outliees,T=1.96σ---(13)]]>n表示初始匹配集合中所有的匹配點(diǎn)的數(shù)目,σ代表當(dāng)前的匹配點(diǎn)是“內(nèi)點(diǎn)”的概率,在實(shí)際的應(yīng)用中依據(jù)匹配方法的正確率,將σ設(shè)置為一個保守值。MSAC通過修改RANSAC的消耗函數(shù),從而優(yōu)化其性能[11]。MSAC運(yùn)用回降最優(yōu)估計(jì)方法。對于外點(diǎn)仍然賦予同樣的值,內(nèi)點(diǎn)要根據(jù)適應(yīng)數(shù)據(jù)的程度得分,而不是像RANSAC賦予0值,成本函數(shù)為:C=Σinρ(ei2)---(14)]]>ρ(e2)={e2e2<T2,inliersT2e2≥T2,outliees,T=1.96σ---(15)]]>比較MSAC和RANSAC算法,MSAC不需要額外的計(jì)算消耗。所采用消耗函數(shù)本身就可以直接運(yùn)用最大殘余的飽和點(diǎn)和最小二乘法相比,從而抑制極端異常值的影響。以6參數(shù)仿射變換為例,MSAC算法的步驟是:(1)從KLT跟蹤算法獲得的匹配點(diǎn)對Ci={ci(j)=Pi(j),Pi+1(j),j=1,L,N}中,任選3對特征點(diǎn)對,運(yùn)用6參數(shù)模型計(jì)算運(yùn)動估計(jì)參數(shù)M的參數(shù);(2)計(jì)算其余K-3個特征點(diǎn)由M矩陣做仿射變換得到的對應(yīng)匹配點(diǎn),和KLT匹配所得到的特征點(diǎn)之間的距離d(Pi(j)):計(jì)算公式為:d(Pi(j))=||TM(Pi(j))-ΦPi(j)||(16)這里,TM(·)是由第一步計(jì)算所獲得的幾何變換矩陣M所得到的特征點(diǎn),ΦPi(j)為KLT跟蹤所獲得的匹配點(diǎn)對,||·||為L2范數(shù)。(3)若距離小于某個閾值范圍,則候選特征點(diǎn)為內(nèi)點(diǎn),形成新的集合(4)重復(fù)1-3步被重復(fù)執(zhí)行固定的次數(shù);(5)利用新的匹配點(diǎn)集合中的匹配點(diǎn)對,確定最終的仿射矩陣2.2特征點(diǎn)更新將一副W*H圖像I(x,y)分為2個互不重疊的區(qū)域,定義前景區(qū)域?yàn)镽F,背景區(qū)域?yàn)镽B,他們的關(guān)系為:I=RF∪RB.RF為滿足條件下邊條件的像素集合:RF={I(x,y)=α·W≤x≤(1-α)·H∩α·H≤x≤(1-α)·H}---(17)]]>這里,0<α<0.5,用來決定前景和背景區(qū)域的大小。表1特征點(diǎn)分類示意Table1Schematicoffeaturepointsclassification假設(shè)背景區(qū)域RB內(nèi)的特征點(diǎn),即為第一幀背景的特征點(diǎn),因?yàn)榍熬拔矬w通常在圖像的中心位置。在余下的各幀中,由于前景物體的不斷運(yùn)動,背景區(qū)域會不斷變化,因此背景特征點(diǎn)要不斷更新。因此為了獲得接下來各幀的背景特征點(diǎn),需要采用僅有背景特征點(diǎn)所獲得的運(yùn)動矢量作為更新策略,在獲得跟蹤特征點(diǎn)和由變換參數(shù)獲得的匹配點(diǎn)對之間的距離d(Pi(j))之后,所有特征點(diǎn)進(jìn)入更新階段。特征點(diǎn)又被重新歸為前景特征點(diǎn)和背景特征點(diǎn)。更準(zhǔn)確一點(diǎn),在第i+1幀中,距離值偏小的被歸為背景特征點(diǎn)相反,距離值大的歸為前景特征點(diǎn)特征點(diǎn)在下一幀中,為前景還是背景的分類方法見表1所示。具體更新過程中,采用兩個不同的閾值τ1,τ2來更新特征點(diǎn)在下一幀中的狀態(tài),從而確定特征點(diǎn)的分類結(jié)果。當(dāng)前幀中的特征點(diǎn)不管下一幀的狀態(tài)怎樣,不會發(fā)生很大程度的變化,在當(dāng)前狀態(tài)上和距離有關(guān)的閾值要有選擇的選取。也就是說,對于背景特征點(diǎn)要選擇小一些τ1的值,對于前景特征點(diǎn)要選擇大一點(diǎn)的τ2值。這樣,如果特征點(diǎn)在當(dāng)前幀很準(zhǔn)確的分類,大多數(shù)特征點(diǎn)可以在下一幀保持它的狀態(tài)??偨Y(jié)來說:式(18)能更好的說明狀態(tài)分類的情況。Pi+1B(j)={Φ(PiB(j))|d(PiB(j))<τ1}∪{Φ(PiB(j))|d(PiB(j))<τ2}Pi+1F(j)={Φ(PiB(j))|d(PiB(j))<τ1}∪{Φ(PiF(j))|d(PiF(j))<τ2}---(18)]]>3算法總結(jié)根據(jù)上述各節(jié)敘述過程,總結(jié)本發(fā)明算法:步驟1:利用KLT算子提取參考幀特征點(diǎn)Pi,并根據(jù)式(14),設(shè)α=0.2,分別指定背景特征點(diǎn)集PiB和前景特征點(diǎn)集PiF;步驟2:KLT進(jìn)行匹配,獲得匹配點(diǎn)對集合Ci,任取PiB集合中的4對匹配點(diǎn)對,利用SVD計(jì)算運(yùn)動矢量M;步驟3:更新特征點(diǎn):利用式(16)計(jì)算歐式距離d,根據(jù)設(shè)定的閾值τ1,τ2的值,根據(jù)式(18)更新下一幀的特征點(diǎn)步驟5:利用背景特征點(diǎn)計(jì)算新的、準(zhǔn)確變換矩陣M'步驟6:對變換矩陣組成的矩陣組,進(jìn)行Kalman濾波;步驟7:運(yùn)動補(bǔ)償4實(shí)驗(yàn)結(jié)果本實(shí)驗(yàn)的計(jì)算機(jī)采用Intel奔騰處理器,CPU主頻2.90G,內(nèi)存4G。一個MATLAB庫里自帶測試視頻,共162幀大小為320*240像素,另一個來自美國空軍視頻數(shù)據(jù)庫VIRAT的視頻中的一個,720*480像素,兩個視頻都具有前景運(yùn)動物體車輛,背景也較為復(fù)雜,如圖1和2所示。實(shí)驗(yàn)一:背景特征點(diǎn)提取圖示圖3為采用KLT提取特征點(diǎn)圖示,那沒有利用MSAC濾除背景特征點(diǎn),即分布在車身上的特征點(diǎn)還很多,這樣必然影響到運(yùn)動矢量計(jì)算的準(zhǔn)確度。圖3的右圖為運(yùn)動補(bǔ)償后的穩(wěn)定幀,雖然穩(wěn)像前和穩(wěn)定后的補(bǔ)償幀能完全匹配,但是匹配點(diǎn)對的連線稍有傾斜,說明兩幀之間含有運(yùn)動分量。圖4為采用本發(fā)明算法后,車身上特征點(diǎn)基本都濾除掉。圖4的右圖為運(yùn)動補(bǔ)償后的穩(wěn)定幀,這時穩(wěn)定幀和原視頻幀完全匹配,且匹配點(diǎn)對的連線為直線,說明穩(wěn)像效果很好。實(shí)驗(yàn)二:穩(wěn)像結(jié)果本發(fā)明利用穩(wěn)像前和穩(wěn)像后的視頻對應(yīng)幀進(jìn)行對比,并將本發(fā)明算法和MATLAB自帶的基于特征點(diǎn)進(jìn)行穩(wěn)像的算法(簡稱方法1)進(jìn)行了對比,效果如圖4和5所示。MATLAB自帶的基于特征點(diǎn)進(jìn)行穩(wěn)像的算法(方法1)中穩(wěn)像后序列的“無定義區(qū)”范圍較大,且只處理灰度圖像,本發(fā)明算法“無定義區(qū)”明顯小很多,且根據(jù)紅色直線標(biāo)記,利用本發(fā)明所提出算法取得了較好的穩(wěn)像效果。實(shí)驗(yàn)三:效果評價(jià)常見評價(jià)方法為PSNR法,在其基礎(chǔ)上,定義DITF為穩(wěn)像后相鄰幀PSNR的絕對差。此方法適合于動態(tài)背景下視頻穩(wěn)像結(jié)果的評估,DITF計(jì)算式如(19)所示:DITF越小,穩(wěn)像效果越明顯。DITF(i)=|PSNR(i+1)-PSNR(i)|(19)穩(wěn)定效果評價(jià)的方法之一DITF,比較MATLAB自帶的基于特征點(diǎn)進(jìn)行穩(wěn)像的算法(方法1)和本發(fā)明方法的平均DITF對比結(jié)果,如表2所示,本發(fā)明方法的DITF值最小,說明穩(wěn)像后視頻更平滑。表2平均DITF對比Table2CompareofmeanDITF當(dāng)前第1頁1 2 3