專利名稱:一種視頻流體運動矢量計算方法
技術領域:
本發明涉及一種視頻流體運動矢量的計算方法,利用流體運動的連續性進行優化,使得流體運動矢量的計算結果更符合流體的運動規律。
背景技術:
流體運動矢量計算是增強現實技術研究的基礎,目前,在流體的物理仿真中還沒有完全將動態紋理區域的識別與基于物理屬性的仿真結合起來,并對流體進行實時重建;同時,目前缺乏與視頻媒體真實感一致的流體建模和仿真,并且較少考慮自然景物與其它景物及環境的交互作用,這些問題產生的根本原因是流體運動矢量的計算問題沒有得到解決。因此,如何從流體視頻中計算出較為準確的運動矢量是研究重建與交互的關鍵所在,它的研究具有重要的現實意義和實用價值。 流體運動是一種典型的非剛體運動,流體運動圖像的計算與分析屬于動態紋理分析的技術。在物體運動的圖像分析中,紋理分為弱紋理和強紋理。弱紋理具有自相似性,其圖像變化具有亮度不變性;而視頻中的流體部分屬于強紋理,其特點是亮度保持性,即其內部的運動產生了形狀的改變和遮擋,但是圖像中強度的成分是不變的。由于流體具有透明性,因此可以通過計算粒子的運動矢量來間接獲得流體本身的運動特征。目前,對于流體的運動矢量的計算通常采用粒子圖像測速方法實現,即通過跟蹤每一個可見粒子來實現運動矢量的獲取。雖然這種計算方法可以克服傳統方法中的不足。但研究中存在的主要問題是由于流體粒子的運動引起的遮擋及再現,會影響運動矢量計算的準確性。在傳統的變分的研究方法及粒子圖像測速方法中,假設運動矢量在局部空間上是光滑的,但是這樣帶來了運動邊界的處理及遮蔽的問題。后來人們在研究中提出了一種基于時空多分辨率的流體速度及加速度場的計算方法,該方法利用時空多分辨率直方圖對流體速度及加速度的方向進行統計分析,最后得到流體的速度及加速度場,但是如果將該方法應用于多相流體運動的場景中,特別是在視頻的兩幀間攝像機的旋轉及平移矢量非常小的情況下,勢必會影響計算的結果。對于多相流場景的直方圖統計分析中,很難將得到的速度及加速度與多相流區域的運動對應起來。人們在研究中分析了現有流體運動矢量計算的模型和方法,在目標函數中加入非局部項,并給出了啟發式的方法,推導出新的目標函數,并采用鄰域的中值濾波方法研究了運動矢量計算的方法,利用該方法對稀疏的粒子運動進行計算,可以得到較準確的結果,對于流體中大量粒子的情形,利用該方法進行研究,所得結果的精度受到影響。在最近的研究中,研究人員利用光度和幾何進行了塊匹配,從而對流體的運動進行估計,采用了改進的H-S方法,研究中使用優化技術及多分辨率技術對流體運動矢量進行計算。該方法對于較為稀疏的流體粒子,能夠取得很滿意的實驗結果,對于大量具有復雜物理規律的粒子運動,計算的精度會受到影響
發明內容
本發明的目的是針對現有技術的不足而提供的一種有效的視頻流體運動矢量計算方法,利用該方法能夠得到具有保持外觀一致性和運動連續性的視頻流體運動矢量。實現本發明目的的具體技術方案是一種視頻流體運動矢量的計算方法,該方法包括(I)流體運動矢量的初始化為了求得初始的運動矢量,首先對于運動前后兩幅圖像分別統計其直方圖,每幅圖像按照一定的鄰域進行統計。在視頻的前后兩幀中,攝像機的旋轉及平移的矢量較小,采用aXa的鄰域進行,將統計的結果記為中心像素鄰域的統計結果。把圖像的強度分為不同的級別,按照不同級別統計出區域中像素的個數。若當前的圖像中像素的灰度值為density,該像素所在的級別計算為
其中,_!表示取整。對于灰度圖像,density表示O 255之間的一個整數值。認定直方圖中像素較大數目的級別為統計直方圖的主要成分。為了求取鄰域強度的主要成分,對直方圖的統計結果進行排序,同時將對應直方圖統計的成分進行排序,利用區域的直方圖主要成分進行匹配操作。假定在一個小區域范圍內所有粒子具有相近的運動矢量,在此基礎上,尋找一個運動矢量使得區域范圍內所有粒子運動前后所對應的區域具有主要成分相似的特性。假設運動前后的兩幅圖像為Ik(k=l,2),中心像素Ik(i,j)在鄰域內排序的統計直方圖為HistogramIk(i, j),對應排序后的成分為HistogramxIk(i, j)。在aXa區域范圍內找到一個矢量imlvetif,s)(-i/ <f< a-a <s<a),使得在運動前后,對應鄰域內所有像素的直方圖主要成分的歐氏距離最小。運動矢量初始化算法如下I)分別計算兩幅圖像Ik(k=l, 2)的像素點pixelk(i, j)的aXa鄰域的統計直方圖,記為 Histogramk(i,j);2)對每個像素點piXelk(i,j)的鄰域直方圖的統計結果,按照從大到小排序,直方圖的成分序號也隨之排序,得到排序后的統計直方圖為HistogramIk(i,j)及排序的成分HistogramxIk(i, j);3)在aXa鄰域內搜索一個矢量< f < a-a <s < a),使得對應鄰域內所有像素的直方圖主成分的歐氏距離d(i,j)最小,其中d(i,j)為
:二 ··(9) "(/·./’)= X ΣX(HistogramjfI1 (i +HistogramxI2(i^p-¥ fj + g^-s^h))2
F '-7 :.: I其中HistogramxIk (i, j, h)表示第k幅圖像,像素點pixel (i, j)鄰域直方圖排序后的主要成分的第h個分量;得到當前像素Pixelk (i,j)的運動矢量/"//vt'c(/,j),初始化結束。(2)利用多分辨率法去除噪聲為了去除初始化過程中產生的噪聲,進行去噪的處理,采用多分辨率方法去除噪聲,即可以將初始化的結果經過幾次降低分辨率采樣,再在較低分辨率的采樣結果中,利用閾值法對統計結果進行處理,其具體步驟如下I)算法初始化。計數器m=l,設定采樣窗口為WinSizeXWinSize ;
對于初始化的運動矢量進行第m次采樣;2)統計WinSizeXWinSize區域中運動矢量的數目為numpixel,并采用閾值方法進行判斷,如果滿足(3)式,則認為該像素的運動矢量初始化結果計算是無效的,作為噪聲去除,并得到初步的去噪結果;nump i xe Kthreho I dsmooth(3)3)判斷是否得到了滿意的去噪結果?如果是,則轉步驟5),否則,進行下一步;4)m=m+l,重新設置采樣窗口大小,并轉步驟2);5)結束,得到去噪后運動矢量的結果。去除噪聲是可選的步驟,只有在場景中存在大片靜止的背景區,需要進行去噪時,才執行去除噪聲步驟。 (3)運動矢量的平滑運動矢量平滑算法的步驟如下I)初始化對于每個象限的累加器Accumulatork(k=l. . . 4)初始化為O值;2)對于像素的鄰域中各像素的運動矢量,按方向分別累計,記累計矢量為Vector4(I <k<4),并使 Accumulatork (I ^ k ^ 4)增值;3)選擇計數最大的累加器Accumulatorm (I彡m彡4),并判斷Accumulatorm的大小,如果滿足(4)式,那么,當前的像素粒子的運動矢量置為零矢量;否則,其運動矢量^用
(5)式計算。Accumulatorm<threho Idsmooth(4)vec = vector,— / A ccmmdalor(5)
Km4)判斷是否所有像素都處理完畢了。如果是,轉步驟5);如果否,轉步驟I)。5)結束,得到運動矢量平滑的結果。( 4 )基于流體運動連續性的優化計算采用流體運動的連續性方程進行優化計算,這樣可以體現出流體的運動特征。流體的連續性運動方程為 ClIdA + f If ·nd!. = O(6)
Jy ' Jan J其中,5,/是圖像I的強度對時間的導數,3Ω表示Ω的邊界,η是ao的外部矢量。根據散度理論及數學推導,(6)式可以寫成下面的方程形式It+uIx+vIy+Iux+Ivy=0(7)式中It表示圖像強度對時間的導數,Ix及Iy分別表示圖像強度在空間域上的導數,流體的運動矢量為(U,V),Ux和Vy分別表示運動矢量的偏導數,采用U和V的一階向前差分進行計算。采用連續性方程(7)對運動矢量進行優化計算。基于流體運動連續性優化計算的步驟為I)初始化。對于圖像的每個aXa區域,對滿足(7)式的像素進行標記flag(i,j)=1 (I ^ i ^ nffidth, I ^ j ^ nHeight);2 )對于沒進行標記的像素X,優化計算X像素粒子的運動矢量ζ^/Λ., Va,)中的Ux分量。對于任意一個像素X,如果其鄰域中像素A和B已經被標記,利用式(8),可以重新計算出X的運動矢量 Λ.("Λ—,1\.)中的ux分量;IAt+uA (Ix-Ia) +va (Ib-Ia) +Ia (ux_ua) +Ia (vb-va) =0(8)3)對于沒進行標記的像素X,優化X像素粒子的運動矢!中的Vx分量。對于任意一個像素X,如果其鄰域中像素A和B已經被標記,利用運動連續性,重新計算出X的運動矢量 · Α、νΛ.)中Vx的分量;4)更新標記。如果像素X的Ux以及νχ都已經進行了優化,則對X進行標記;5)判斷是否滿足了終止條件?如果是,則進行下一步;否則,轉步驟2);6)得到流體運動矢量的優化計算結果。 本發明具有簡單、準確的特點,計算所得到的運動矢量既具有保持運動前后外觀的一致性,也具有保持流體運動連續性的特點,即使在流體相鄰兩幀的運動很小的情況下,也能得到滿意的計算結果,與現有方法相比,它具有更準確的特點;此外利用該算法對于流體的高度進行重建,能夠取得滿意的結果,這進一步說明本算法可以有效地應用于流體的三維重建的應用中,因此具有實用的特點,能夠很好地解決流體的重建問題,可以進一步應用于虛擬場景建立的應用中,克服了基于視覺的流體重建的復雜性問題。
圖I為本發明實施例“6482910”的第198幀運動矢量的初始化結果圖;圖2為本發明實施例“6482910”的第198幀運動矢量的平滑結果圖;圖3為本發明實施例“6482910”的第198幀運動矢量的優化結果圖。
具體實施例方式實施例下面結合附圖對于發明進一步說明。本實例采用DynTex動態紋理庫中的“6482910”的第198幀和199幀進行流體運動矢量的計算。在PC機上Windows7操作系統下進行,其硬件配置是2. 66GHz Intel Core(TM) 2Duo CPU,4GB RAM。( I)運動矢量的初始化假定在一個小區域范圍內所有粒子具有相近的運動矢量,在此基礎上,尋找一個運動矢量使得區域范圍內所有粒子運動前后所對應的區域具有主要成分相似的特性。運動前后的兩幅圖像為Ik(k=l,2),中心像素Ik(i,j)在鄰域內排序的統計直方圖為HistogramIk(i,j),對應排序后的成分為HistogramxIk(i,j)。由于視頻中相繼兩中貞的攝像機位置參數變化較小,流體的運動矢量很小,因此在aXa區域范圍內找到一個矢量initvec(f,s)(-a </< a-a <s<a),使得在運動前后,對應鄰域內所有像素的直方圖主要成分的歐氏距離最小。這里a取5,如果流體的運動速度較快,可以根據需要適當擴大運動矢量的搜索范圍。首先利用下面的算法進行運動矢量的初始化。I)分別計算兩幅圖像Ik(k=l, 2)的像素點pixelk(i, j)的5X5鄰域的統計直方圖,記為 Histogramk(i,j);
2)對每個像素點piXelk(i,j)的鄰域直方圖的統計結果,按照從大到小排序,直方圖的成分序號也隨之排序,得到排序后的統計直方圖為HistogramIk(i,j)及排序的成分HistogramxIk(i, j);3)在5 X 5鄰域內搜索一個矢量
權利要求
1.一種視頻流體運動矢量計算方法,其特征在于該方法包括以下步驟 (I)、運動矢量的初始化 分別計算運動前后兩幀圖像中每個像素所在區域的灰度直方圖,利用直方圖的主要成分匹配方法得到初始的運動矢量; ⑵、去噪處理 采用多分辨率法對初始化的結果進行去除噪聲處理,該步驟為可選; ⑶、平滑處理 采用統計分析方法對局部區域的運動矢量進行平滑處理; ⑷、優化處理 用流體運動的連續性方程對運動矢量進一步計算,得到具有保持外觀一致性和運動連續性的流體運動矢量; 其中所述直方圖的主要成分匹配方法是對運動前后兩幀圖像分別進行區域直方圖的統計,然后對兩幀圖像的每個鄰域求取其統計后的主要成分,利用對應區域的主要成分匹配誤差最小來完成對運動矢量的初始化,按照式(I)計算像素所在的直方圖統計類別[density/1 Oj( I ) 其中,L I表不取整,對于灰度圖像,density表不O 255之間的一個灰度值; 相鄰兩幀中像素pixelk(i,j)運動矢量的初始化按照如下步驟進行 a)分別計算視頻相鄰兩巾貞Ik(k=l,2)中像素點pixelk(i, j)的aXa鄰域的統計直方圖,記為 Histogramk(i,j); b)對每個像素點piXelk(i,j)的鄰域直方圖的統計結果,按照從大到小進行排序,直方圖的成分序號也隨之排序,得到排序后的統計直方圖為HistogramIk(i,j)及排序的成分HistogramxIk(i, j); c)在pixelk(i,j)的aX a鄰域內搜索一個矢量SS “),使得對應鄰域內所有像素的直方圖主成分的歐氏距離d(i,j)最小,其中d(i,j)為 ,T .!T It- d(i'J) = Σ ΣΣ+ 爲/ + f,A) - Η ο§ιιιιιχΙ2 + 爨+ /,/ +續 + 亀 ,!;'I',' Il I1I I 其中HistogramxIk(i, j, h)表示第k幅圖像,像素點pixel (i, j)鄰域直方圖排序后的主要成分的第h個分量;在視頻中相鄰幀的運動較小,因此區域的范圍a取值較小; d)得到當前像素pixelk(i, j)的運動矢量; e)得到流體運動矢量初始化結果; 步驟(4)所述的優化計算的步驟包括 a)初始化 對于圖像的每個aX a區域,對滿足(3)式的像素進行標記flag (i, j) =1 (I彡i彡nffidth, I ^ j ^ nHeight); It+uIx+vIy+Iux+Ivy=0(3) 式中It表示圖像強度對時間的導數,Ix及Iy分別表示圖像強度在空間域上的導數,流體的運動矢量為(U,V) Vy分別表示運動矢量的偏導數,采用u和V的一階向前差分進行計算山)對于沒進行標記的像素X,如果其鄰像素已經被標記,利用式(4),重新計算出X的運動矢量4.(ux, Vx )中的Ux分量; IAt+uA(Ix-IA) +va(Ib_Ia)+Ia(ux_ua)+Ia(vb_va)=0⑷ C)對于沒進行標記的像素X,優化X像素粒子的運動矢量νγ)中的Vx分量,并重新計算出X的運動矢量e_v(ιιχ,VxY^ Vx的分量; d)更新標記 如果像素X的Ux以及vx都已經進行了計算,則對X進行標記; e)判斷是否滿足了終止條件?如果是,則進行下一步;否則,轉步驟(b); f )得到流體運動矢量的計算結果 計算終止條件是被標記的像素數目達到像素總數目,如果滿足,則終止計算過程。
全文摘要
本發明公開了一種有效的流體運動矢量計算方法,該方法旨在利用視頻流的兩幀圖像進行流體運動矢量的計算,目的是獲得流體連續性運動的二維矢量。該方法首先統計每個像素所在區域的直方圖,利用區域直方圖主要成分匹配方法完成對運動矢量的初始化;然后,對初步的計算結果,利用多分辨率采樣方法對其進行去噪處理;再采用統計分析方法對局部模塊的運動矢量進行平滑處理;最后,對運動矢量進一步優化,得到具有保持外觀一致性和運動連續性的流體運動矢量。本發明可有效地應用于流體的三維重建的應用中,具有實用的特點,能夠很好地解決流體的重建問題,可以進一步應用于虛擬場景建立的應用中,克服了基于視覺的流體重建的復雜性問題。
文檔編號G06T5/40GK102831616SQ201210237110
公開日2012年12月19日 申請日期2012年7月10日 優先權日2012年7月10日
發明者全紅艷, 吳茂茂 申請人:華東師范大學