朱玨鈺,劉 建,李 峰,周書仁
ZHU Jueyu1,LIU Jian2,LI Feng2,ZHOU Shuren2
1.湖南第一師范學院 信息科學與工程系,長沙410205
2.長沙理工大學 計算機與通信工程學院,長沙410004
1.Department of Information Science and Engineering,Hunan First Normal University,Changsha 410205,China
2.School of Computer&Communication Engineering,Changsha University of Science&Technology,Changsha 410004,China
光流算法在近年來運動目標檢測領(lǐng)域的一個十分重要的方法。研究光流算法是利用圖像序列中灰度的時域、空域變化和相關(guān)性來確定圖像像素的運動矢量,也就是研究圖像灰度在時間上變化的大小和方向。因為光流的計算不需要預(yù)先知道場景的信息,不需要在圖像中建立起特征之間的對應(yīng)關(guān)系,所以光流計算屬于高層次的視覺表述。
基于梯度的光流估計算法目前應(yīng)用最廣泛的算法,并且在一定程度上取得了較好的效果,但該方法在光流計算時往往需要人工選取可調(diào)參數(shù),難于選擇可靠性的評價因子,以及對光流計算結(jié)果收到預(yù)處理的影響,在應(yīng)用基于梯度的光流對場景目標進行檢測與實時跟蹤時還仍存在許多問題,特別是針對遮擋較多的運動場景。
遮擋判斷與處理是提高光流場運動邊界估計精度必須要解決的問題。Brox 等人提出的粗-精分層HS 估計策略[1-2]較好地用連續(xù)能量泛函優(yōu)化解決了大位移光流的估計問題,但大位移光流帶來的遮擋問題未被重視。文獻[3]將遮擋檢測過程獨立出來,構(gòu)造遮擋像素與非遮擋像素分開考慮的能量泛函,通過數(shù)值變分技術(shù)實現(xiàn)遮擋的處理。文獻[4]提出了新的遮擋處理思路,通過圖像驅(qū)動的各向異性擴散將背景區(qū)域向遮擋區(qū)域進行擴散,但運動邊界模糊依然存在。在本文中,首先通過使用ROF 結(jié)構(gòu)對圖像進行預(yù)處理,然后采用由粗到細的多尺度迭代的TV-L1 光流法計算圖像序列的光流場,再根據(jù)前向光流和后向光流的運動一致性理論來判斷遮擋區(qū)域的光流分量,最后使用同幀鄰域光流的橫向修補和相鄰幀光流的縱向修補對遮擋區(qū)域的錯誤光流分量進行雙重修補。實驗證明,本文方法能夠很好地對遮擋區(qū)域的光流進行修補,從而提高算法的魯棒性。
光流算法流程圖1 所示。概括起來,基于TV-L1 的光流算法可以分成四個功能模塊,分別是圖像預(yù)處理、光流計算、遮擋區(qū)域判斷、錯誤光流修補,下面進行詳細的描述。
圖1 光流算法流程圖
圖像分解是一種從圖像中提取有用的、感興趣的方法。根據(jù)圖像的分解理論,可以將輸入圖像分解成結(jié)構(gòu)Is與紋理It兩分通過預(yù)處理來應(yīng)對光照變化。圖像的紋理部分幾乎沒有受到諸如陰影、遮擋、光強改變等光照變化的影響,影響主要集中在結(jié)構(gòu)部分[5]。按照一定的比例,以線性組合的方式,用組合圖像 作為新的輸入圖像:
假定連續(xù)兩幀圖像I0和I1,X=(x,y)是I0上一個像素點,則TV-L1 光流模型[6]的能量函數(shù)如下:
其中,U=(u,v)是二維光流場,?u和?v是二維梯度,參數(shù)λ是數(shù)據(jù)項的權(quán)值常數(shù),第一項為數(shù)據(jù)約束項,表示同一像素點在前后兩幀圖像間的灰度值差;第二項是運動正則化約束,即假設(shè)運動是連續(xù)的。
對于TV-L1 光流的計算,采用基于圖像去噪的雙向求解的數(shù)值分析機制來進行總變分光流能量函數(shù)的最小化方法。首先,將圖像I1在X+U0附近的像素點進行線性化處理,即:
可以采用I1(X+U)的一階泰勒展開近似值來代替本身,這樣可以大大減少計算量,但無法得到準確的解(將非線性函數(shù)進行線性化),所以采用雙向求解的方法,通過交替更新變量值來補償線性近似帶來的誤差。
將(3)式代入(2)得到:
令ρ(U)=I1(X+U0)+(U-U0)?I1-I0,并且引進一個額外的變量U′,式(4)可變?yōu)槿缦伦钚』购瘮?shù)的方程:
其中,θ是一個小的常量,U′無限逼近U。式(5)可以在迭代中,通過交替的更新U′和U進行優(yōu)化,最后方程(5)的解是通過以下閾值方程獲得:
2.3.1 遮擋區(qū)域分析
常見的遮擋,一般有兩種:第一種如圖2(a)兩幅圖,當?shù)谝粠械腁1運動到第二幀中的A2位置時,則圖中紅色區(qū)域為遮擋部分;第二種如圖2(b),當處在第一幀位置時,A1沒有出現(xiàn),在第二幀時突然出現(xiàn),則整個A2是遮擋部分。要實現(xiàn)對錯誤光流區(qū)域的正確修補,首先是檢測出遮擋區(qū)域,做到有的放矢。
圖2 遮擋區(qū)域示意圖
通過處理非交錯圖像序列,可以檢測由遮擋等引起的錯誤光流分量,這主要是存在圖像中的運動目標在時域上呈現(xiàn)線性,并且連續(xù)圖像的對應(yīng)像素點的運動狀態(tài)是唯一的這一理論[7],具體實現(xiàn)過程如下:
其中,Vf(X)=[uf,vf]t為正向幀序光流,Vb(X)=[ub,vb]t+1為反向幀序光流,ε1為判斷運動的線性的閾值,ε2為判斷運動唯一性的閾值。
光流的計算是通過相鄰兩幀圖像的像素灰度值的變化率得到的。Vf正向幀序,即源幀到目標幀的像素灰度值的變化率,Vb反向幀序,即目標幀到源幀的像素灰度值的變化率。理論上,Vf和Vb大小相等,方向相反,在現(xiàn)實場景中,由于光照、陰影等因素,會對光流結(jié)果產(chǎn)生一定的影響,Vf和Vb的大小并不一定完全相等,方向上也存在少量的偏差,但影響不大。而遮擋的干擾,使得同一圖像的對應(yīng)像素點的灰度值在不同的幀序上存在偏差,從而對Vf和Vb的大小和方向產(chǎn)生較大的影響。在本文的光流計算中,光流的計算值在[0,1]的范圍內(nèi)進行歸一化計算的,故由于遮擋的干擾,使得|Vf(X)+Vb(X)|的值大部分屬于[0,1]范圍內(nèi)(大于1 的情況,說明兩者方向相同,一定屬于遮擋點)。本文選取T1∈[0.1,0.5],T2∈[0.1,0.5],T1、T2取值過大,會遺漏大量錯誤光流分量;取值過小,會因為光流模型特性以及旋轉(zhuǎn)等因素造成對正確分量的誤判。
2.3.2 遮擋區(qū)域處理
為了防止遮擋區(qū)域的錯誤光流擴散到其鄰域范圍內(nèi),提出一個單調(diào)遞減函數(shù)來控制這些錯誤光流的擴散,降低對其鄰域光流的影響。
其中,Z=|F1(Xp)+F2(Xp)|,一般情況下,K>0,它是用來控制單調(diào)遞減函數(shù)的下降速率。
一般情況下,遮擋區(qū)域的正確光流不能直接計算[8],為了提高光流算法在遮擋區(qū)域的魯棒性,要對其進行正確的修補。本文首先使用鄰域光流修補法[9],通過對錯誤光流鄰域的正確光流對其進行橫向修補,然后使用前后相鄰幀的光流對其進行縱向修補[10]。通過使用雙重光流修補法,能達到比較理想的修補效果,很大程度上提高了光流的精確度[11]。
2.4.1 使用鄰域光流進行橫向修補
鄰域光流修補法,即利用中心點的鄰域光流來替代中心點光流,從而達到修補的效果[12]。在遮擋區(qū)域光流點的3×3 鄰域,進行加權(quán)組合,近似取代錯誤光流點,如圖3 所示。
圖3 鄰域分布圖
圖3 中黑點為錯誤光流點,其鄰域包括紅點和綠點,紅點為水平與垂直方向上的鄰域點,權(quán)值W紅=1/6,綠點為對角線方向上的鄰域點,權(quán)值W綠=1/12,鄰域修補公式計算如下:
2.4.2 相鄰幀光流的縱向修補
選取連續(xù)6 幀圖像,分別為I-00、I-0、I0、I1、I1+和I11+,令I(lǐng)0和I1連續(xù)圖像產(chǎn)生的光流為當前幀光流,即U=(u,v),I-00和I-0以及I-0和I0產(chǎn)生的光流為前幀光流,分別記為U--、U-、I1和I1+以及I1+和I11+產(chǎn)生的光流為后幀光流,分別記為U+、U++[13]。一般情況下,在I0和I1兩幀圖像產(chǎn)生遮擋時,那么前幀光流或者后幀光流不會被遮擋影響,這就保證了使用前幀光流和者后幀光流進行修補,能夠很好地表現(xiàn)遮擋區(qū)域的運動情況,從而達到理想的效果。
縱向修補的過程如下所述:假設(shè)待修補的遮擋點的坐標為(n,k),如圖4 中當前幀光流的黑點,通過前幀光流和后幀光流中的坐標對應(yīng)點進行修補,如圖中的紅色點:
圖4 縱向修補圖
實驗數(shù)據(jù)庫為Middlebury 光流數(shù)據(jù)庫中的8 個圖片樣本,光流精確度的評判標準是光流平均角度誤差A(yù)AE(Average Angle Error)和光流末點誤差EPE(End Point Error)。
為了更直觀地表示光流效果圖,本文采取顏色映射的方式,即在光流結(jié)果圖中,色調(diào)代表方向,亮度代表大小。
為了驗證本文算法的有效性,進行了三組實驗。第一組,選取光照變化的連續(xù)兩幀圖片,使用傳統(tǒng)的TV-L1算法,通過將ROF 去噪模型與高斯濾波、Sobel濾波以及拉普拉斯濾波三種圖像預(yù)處理方法進行比較;第二組,選取連續(xù)五幀的圖片序列,使用本文提出的兩種遮擋修補的方法與傳統(tǒng)的TV-L1 光流算法比較;第三組,現(xiàn)實場景中交通路口的圖片序列,使用ROF 去噪模型和雙重遮擋修補的光流算法與傳統(tǒng)的TV-L1 算法進行比較。
圖5 不用圖像預(yù)處理下的TV-L1
3.2.1 預(yù)處理對抗光照影響實驗
LightSwitch 視頻是在一個路口的場景,其中路口的右側(cè)有一輛正在行駛的小轎車,下方路口有一輛正在行駛的小型貨車,路口的前方有一間亮燈的房間,在第100幀的時候,燈光關(guān)閉,房間燈光的變化用來模擬光照變化。本實驗選取視頻中的第99 幀和第100 幀,即光照發(fā)生強烈變化的前后兩幀,在不同的圖片預(yù)處理方法情況下,對光照變化的魯棒性情況。
從圖5 可以看出,在這種光照變化條件下,圖5(c)所示的未經(jīng)任何圖片預(yù)處理的TV-L1 光流模型幾乎不能估計出光流場,只是在光照變化的源頭存在一些光流場,對運動的車輛無法估計其光流場;圖5(d)所示的經(jīng)過Sobel 處理的TV-L1 光流模型只是在正對光照變化的區(qū)域產(chǎn)生了一些光流變化,同樣無法估計正確的光流場;同樣,圖5(e)經(jīng)過拉普拉斯濾波處理的TV-L1 光流模型雖然產(chǎn)生了大量的光流,但誤差太大;只有圖5(f)經(jīng)過ROF 處理的TV-L1 光流模型抗噪聲性能較好,對抗光照變化的魯棒性十分突出,究其原因:ROF去噪模型將圖片分解成紋理和結(jié)構(gòu)兩部分,并按一定的線性比例進行結(jié)合,其中,紋理部分能夠幾乎沒有受到諸如陰影、遮擋、光強改變等光照變化的影響,而結(jié)構(gòu)部分允許圖像存在邊緣等不連續(xù)性,能夠很好地刻畫運動物體的邊緣。
3.2.2 遮擋修補的實驗
本實驗所采用的遮擋區(qū)域修補方法包括橫向修補和縱向修補[14]。下面選取Middlebury 光流數(shù)據(jù)庫中的Urban 圖片序列來進行實驗,圖6 中有4 輛正在行駛的車輛,遠處的卡車向左行駛,在尾部與中間向右行駛的小轎車形成遮擋,近處的小轎車與中間的小轎車的尾部同樣形成了遮擋,此外,在圖片的最右端有一輛向右行駛的面包車,在它的尾部區(qū)域被路邊的路標桿進行了明顯的遮擋。
圖6 遮擋修補實驗
從圖6(c)中可以看出,由于中間小轎車被過多的遮擋,不能形象的產(chǎn)生小轎車的光流場,而且面包車的尾部,被路標桿進行遮擋的區(qū)域存在明顯的缺陷,而圖6(d)通過橫向和縱向修補,能夠很好地對這一遮擋區(qū)域進行修補,較好還原了遮擋前的光流場,提高了光流的魯棒性。
3.2.3 現(xiàn)實場景實驗
為了驗證所提出的光流算法在現(xiàn)實場景中具有很好的魯棒性,能夠很好地反映現(xiàn)實的運動情況,選取視頻Taxi 中的連續(xù)圖片序列,該圖片序列描述了交通路口的真實車輛行駛情況,包括了常見的多目標運動、遮擋、噪聲、光照變化等復(fù)雜運動情況。圖7中主要存在3輛正在行駛的車輛,路口中間的白色小轎車正在路口向右拐,圖片左側(cè)向右行駛的黑色車輛,以及圖片右側(cè)向左行駛的車輛,其中,向左行駛的車輛被路邊的數(shù)進行了遮擋。
圖7 各種光流算法比較
從圖7(c)和圖7(d)可以看出,經(jīng)典的HS 算法和LK 算法能夠比較好地估計3 輛運行車輛中的兩輛的光流場,而被路邊樹枝遮擋的車輛則幾乎無法估計光流場,并且噪聲對其影響非常大。圖7(e)是TV-L1 光流算法估計的光流場,顯然,這比前兩種光流算法的效果提升比較顯著,但中間路口的運行車輛的光流場的輪廓不是十分的清晰,并且圖片右側(cè)被遮擋的車輛的光流場輪廓存在缺陷,沒有正確的估計出光流場。圖7(f)是提出的算法在遮擋區(qū)域經(jīng)過單調(diào)遞減函數(shù)進行處理,很好地抑制了錯誤光流的擴散,并在遮擋區(qū)域進行了基于鄰域光流的橫向修補和基于縱向光流的縱向修補,不僅能夠比較正確的估計出運動車輛的光流場,而且光流場的輪廓較TV-L1 光流算法有了比較好的改進;此外在被樹枝遮擋的右側(cè)車輛的光流場,在上述4 種光流場的效果是最好的,兩種修補方法的效果得到了體現(xiàn)[15]。
本文在提高光流算法精確度的條件需求下,對光流相關(guān)算法進行了理論分析和實驗研究,針對遮擋對光流估計造成的影響,提出了基于橫向的鄰域光流修補和基于縱向的相鄰幀光流修補,在一定程度上克服了遮擋對光流估計的影響,提高了光流的計算精度。但本文算法在計算效率上有待進一步提高,這是下一步亟須解決的問題。
[1] Brox T,Bruhn A,Papenberg N,et al.High accuracy optical flow estimation based on a theory for warping[C]//Proceedings of the 8th European Conference on Computer Vision,2004:25-36.
[2] Papenberg N,Bruhn A,Brox T,et al.Highly accurate optical flow computation with theoretically justified warping[J].International Journal of Computer Vision,2006,67(2):141-158.
[3] Xiao J,Cheng H,Sawhney H,et al.Bilateral filtering-based optical flow estimation with occlusion detection[C]//Proceedings of the European Conference on Computer Vision,2006,3951:211-224.
[4] Ince S,Konrad J.Occlusion-aware optical flow estimation[J].IEEE Transactions on Image Processing,2008,17(8):1443-1451.
[5] Liu C.Beyond pixels:Exploring new representations and applications for motion analysis[D].Cambridge:Massachusettc Institute of Technology,2009.
[6] Wedel A,Pock T,Zach C,et al.An improved algorithm for TV-L1 optical flow[J].Statistical and Geometrical Approaches to Visual Motion Analysis,2009,12(1):23-45.
[7] hoi Y J,Lim K W,Ra J B.Improvement on optical flow based video deinterlacing by adopting flow vector and intensity reliabilities[C]//Proceedings of Interrnational Conference on Image Processing,2009:741-744.
[8] 路子赟,唐土生.帶有局部控制因子的圖割光流估計[J].中國圖象圖形學報,2012,17(7):36-40.
[9] 涂志剛,謝偉,熊淑芬,等.一種高精度的TV-L^1光流算法[J].武漢大學學報:信息科學版,2012,37(4):496-499.
[10] Shen X H,Wu Y.Exploiting sparsity in dense optical flow[C]//Proceedings of 17th IEEE International Conference on Image Processing,2010:741-744.
[11] Jodoin P M,Mignotte M.Optical-flow based on an edgeavoidance procedure[J].Computer Vision and Image Understanding,2009,113(4):511-531.
[12] Gilboa G,Osher S.Nonlocal operators with applications to image processing[J].Multiscale Model Simul,2008,7(3):1005-1028.
[13] Antonin C,Thomas P.A first-order primal-dual algorithm for convex problems with applications to imaging[J].Journal of Mathematical Imaging and Vision,2011,40(1):120-145.
[14] Zach C,Pock T,Bischof H.A duality based approach for realtime TV-L1 optical flow[C]//Proceedings of DAGM,2007.
[15] Zimmer H,Bruhn A,Weickert J.Optic flow in harmony[J].International Journal of Computer Vision,2011,93(3):368-388.