任朝宇,趙冬娥,張 斌,楊學峰,褚文博
(中北大學信息與通信工程學院,山西 太原 030051)
多目標檢測[1]與人們的工作和生活息息相關,在醫(yī)療、工業(yè)質量檢測、機器人跟蹤導航、體育賽事、力學測試分析、智能交通、生物觀察、影視特技及軍事視覺制導等領域都有著極其廣泛的應用[2]。
目前,靜態(tài)場景下的動態(tài)目標檢測方法主要有背景減除法、幀間差分法和光流法[3-5]。背景減除法[6-7]是將當前視頻幀與建立的背景模型進行比較,通過判定灰度等一系列特征發(fā)生的變化或直方圖等統(tǒng)計信息的變化來分割運動目標[8],同時判斷是否發(fā)生異常情況。它主要適用于靜態(tài)、簡單背景中的目標檢測[9]。幀間差分法[7,10]是將多幀差分的圖像信息進行融合,從而獲得更好的結果[11]。其缺點是檢測運動目標區(qū)域不完整,會丟失部分信息[12]。光流法[13-14]是利用圖像序列中像素在時域上的變化和相鄰幀之間的相關性來找到前一幀跟當前幀之間對應關系,從而計算相鄰幀之間物體的運動信息的一種方法。其生成的光流場記錄的是圖像像素點灰度變化的瞬時速度場,它包含了物體的運動和結構信息[15-16]。而本文要檢測的目標是處于運動中,攜帶運動信息的,在綜合比較以上3種算法后,本文選取光流法對圖像進行處理。
多目標檢測場中背景比較復雜,影響檢測的因素較多,傳統(tǒng)的算法已經難以滿足檢測要求,而本文算法綜合了Lucas-Kanade光流法[17-18]和Horn-Schunck光流法[19]的優(yōu)點,使用2種光流方法結合的CLG(Combining Local and Global)光流方法并結合多尺度的方法對圖像進行處理,既可保持光流場的分段平滑,又可提高算法對噪聲的魯棒性。
光流[20]是空間運動物體在觀察成像平面上的像素運動的瞬時速度。光流反映了圖像的變化,包含目標運動的信息,可用來確定目標的運動。
所有光流技術都是基于亮度恒定不變這個假設之上的,它們都可以利用圖像亮度的時空導數。在圖像中物體部分亮度守恒的條件下,基于圖像平移的一階導數有:
I(z,t)=I(z-vt,0)
(1)
其中,v=(u,v)T,z=(x,y)T,I(z,t)為t時刻像素點(x,y)的像素值(亮度)。
假設物體的運動較小,則利用式(1)的泰勒級數展開式,形成了一個亮度恒定約束方程:
Ixu+Iyv+It=0
(2)
其中,u=dx/dt,v=dy/dt,Ix=?I/?x,Iy=?I/?y,It=?I/?t。
Ix和Iy為亮度的空間變化率,即亮度在整個圖像中的變化速度,表示在給定的像素點上,像素值隨時間變化的速度。亮度恒定約束方程是光流技術的基本約束方程。
Lucas-Kanade(LK)方法[21-22]假定光流在ρ大小的鄰近區(qū)域內是恒定的,通過最小二乘準則計算該鄰域內所有像素的光流場:
ELK(u,v)=Gρ*(Ixu+Iyv+It)2
(3)
其中,Gρ表示大小為ρ的高斯核,*表示卷積。當(u,v)取得最小值且滿足?uELK=0、?vELK=0時,可以得到以下矩陣方程:
(4)
如果圖像梯度不為0,則系統(tǒng)的矩陣是可逆的,因此可以計算出唯一解。
LK光流法是局部平滑約束,只能得到特征點的光流結果。雖然LK光流法計算量小,能產生穩(wěn)健的光流,但是很難精確地提取到運動目標的形狀。
假設I=I(x,y,t)為輸入的圖像序列,V為光流向量場,V=[u(x,y,t),v(x,y,t),1]T。Horn-Schunck(HS)算法模型假設圖像總亮度水平隨時間變化恒定,并且估計的光流向量在圖像空間中平滑變化,亮度恒定假設由時間導數It=dI/dt表示,HS光流場[23]由一階泰勒公式展開定義如下:
I(x+u,y+v,t+Δt)-I(x,y,t)=0
?Ixu+Iyv+It=0
(5)
將式(5)在圖像域Ω上進行積分,能量函數定義為:
(6)
其中,Ix、Iy為空間導數,α(|?u|2+|?v|2)為光流場的平滑約束,V變化越大就越會導致|?u|和|?v|的增加。權重系數α>0為全局正則化系數,是光流場的平滑因子。α越大,場越均勻,而α越小,光流場的位移矢量越不均勻。
HS光流法可以產生密集的光流,但是HS方法對噪聲更敏感,而本文的背景圖像中噪聲干擾比較嚴重,這大大降低了光流估計的精度。
CLG[24]組合方法是在綜合了LK和HS方法優(yōu)點的基礎上提出的,LK光流法可以產生穩(wěn)健的光流,而HS光流法可以產生密集流場。使用CLG組合方法的目的是通過采用基于全局和局部方法的平滑項,產生對噪聲具有魯棒性的密集流場。
假設亮度梯度矩陣?3I=[Ix,Iy,It]T,則HS光流場的能量函數如式(7):
(7)
CLG光流場的能量函數在?3I引入了一個平滑項,表達如式(8):
(8)
且有Jρ=Gρ*(?3I?3IT),Jρ為局部時空導數平滑項,表示為二維高斯核Gρ與矩陣?3I?3IT的卷積。如果ρ=0,則未發(fā)生局部平滑,CLG光流場相當于HS光流場;如果α=0,則該函數相當于LK光流場。
HS方法和CLG方法使用L2范數的平方,L2范數的缺點是對噪聲很敏感。在復雜的檢測場背景下,由于影響光流估算的干擾因素比較多,為了大大減少這些干擾因素帶來的影響,將L2范數的平方改為L1范數,L1范數相對于L2范數對噪聲沒有那么敏感,對噪聲具有更好的魯棒性。因此CLG方法表達如下:
(9)
除了將L2范數的平方修改為L1范數外,在CLG算法的基礎上,結合多尺度的思想,本文提出多尺度CLG方法對連續(xù)2幀圖像做處理,實現(xiàn)光流場的估算,以提高算法對噪聲的魯棒性。
為了滿足光流場的假設,HS方法和CLG方法對亮度恒定約束做了線性化,因此要求矢量場V較小。對于具有較大目標位移的圖像序列來說,會存在問題:可能會出現(xiàn)目標不連續(xù)并導致檢測錯誤的情況。由于圖像中目標較多,可能會存在目標位移較大的問題。為了解決這個問題,本文提出多尺度的方案,采用由粗到細的方法依次計算更精確的光流向量場。
多尺度[25]的主要思想是計算一個圖像金字塔[26],對將要估計的光流場的集合中的每一幅圖像進行降采樣(一般為2幀,分別為I1和I2,時刻為t1和t2),從最小的金字塔圖像開始,計算向量場,然后為下一個較細的尺度,粗估計用于t2處使第2幀圖像發(fā)生變化,表示為I(x+δV),并計算出相應的光流向量場[27]。在金字塔的每一層都計算向量場增量(δV),最終的光流向量場估計是所有金字塔層估計的插值和。多尺度CLG光流法可表示為:
α(|?δu|+|?δv|))dxdy
(10)
其中,δV=(δu,δv)。其算法原理如圖1所示。
圖1 多尺度光流算法原理圖
多尺度算法工作流程如圖2所示。
圖2 多尺度光流算法流程圖
為了驗證算法的有效性,本文比較了CLG算法和多尺度CLG算法誤差。光流誤差評價采用平均角度誤差AAE(Average Angular Error)和平均端點誤差AEE(Average Endpoint Error)的誤差估計方法來評估光流計算的精度。
平均角度誤差AAE與平均端點誤差AEE的計算公式如下:
(11)
(12)
其中,(uE,vE)表示光流場的速度估計值,(uT,vT)表示標準光流的真實值,n表示圖像中像素點的個數。
實驗1選取Middlebury標準光流庫中的圖像序列Urban2和Grove2作為測試圖像序列,使用CLG算法和本文所提出的多尺度CLG算法對測試圖像進行平均角誤差AAE和平均端點誤差AEE的誤差計算,結果如圖3所示。
(a) 原圖 (b) True Flow
平均角度誤差AAE和平均端點誤差AEE的對比如表1所示。經過實驗結果的對比與分析,可知本文所使用的多尺度CLG光流算法所得的光流的誤差明顯減小,提高了光流計算的精度。實驗表明多尺度CLG算法結合了CLG算法和多尺度方法的優(yōu)點,有效地解決了經典CLG算法存在的光照問題和噪聲問題,具有較高的精度。
表1 平均角誤差AAE和平均端點誤差AEE對比
實驗2選取一組多目標運動圖像做CLG算法以及多尺度CLG算法處理,處理結果如圖4所示。
(a) 原圖連續(xù)幀1
可以看出,圖4(c)與圖4(d)都能很明顯地顯現(xiàn)出運動物體的形狀,但與圖4(d)相比,圖4(c)中噪聲明顯,與圖4(f)相比,圖4(e)中噪點明顯。由此可以得出多尺度CLG算法相對CLG算法對噪聲的魯棒性明顯增強,光流估計整體效果較CLG算法有了很大的提升。
為了提高算法對噪聲的魯棒性,本文使用了CLG光流法并結合多尺度的方法,運用由粗到精的金字塔思想對圖像進行處理,可提高光流的估計精度,并將L2范數的平方改為L1范數,以減小周圍因素帶來的干擾。通過Middlebury光流數據庫圖像光流計算結果和標準光流圖像對比對所提出的方法進行驗證,實驗結果表明了所提方法的有效性。用所提方法對多目標圖像進行處理,結果表明,多尺度CLG光流方法可以使光流場分段保持平滑,對噪聲具有良好的魯棒性。