劉宏飛,楊耀權(quán),楊雨航
(華北電力大學(xué)(保定)控制與計(jì)算機(jī)學(xué)院,河北 保定 071003)
隨著科技的不斷進(jìn)步,城市管理也向智能化快速過渡,老舊的監(jiān)控?cái)z像頭也逐漸被智能化攝像頭所替代。相較于傳統(tǒng)的攝像頭,智能視頻監(jiān)控可以大量節(jié)省人力,提高檢測(cè)效率。而目前智能視頻監(jiān)控主要有2大關(guān)鍵技術(shù),一是對(duì)運(yùn)動(dòng)目標(biāo)的識(shí)別跟蹤;二是對(duì)目標(biāo)行為的定義[1-2]。因此提高在戶外條件下運(yùn)動(dòng)目標(biāo)的檢測(cè)跟蹤效率成為目前智能化攝像頭研究的熱點(diǎn)[3]。
常見的目標(biāo)跟蹤算法有均值漂移算法、基于卡爾曼濾波的目標(biāo)跟蹤、基于粒子濾波的目標(biāo)跟蹤及基于對(duì)運(yùn)動(dòng)目標(biāo)建模等方法。運(yùn)動(dòng)目標(biāo)跟蹤算法目前的主要發(fā)展方向?yàn)樘岣吒櫵惴ǖ木_度、提高處理速度以及降低跟蹤誤差。文獻(xiàn)[4]通過卡爾曼濾波構(gòu)造初始模型,然后對(duì)運(yùn)動(dòng)目標(biāo)可能出現(xiàn)的位置進(jìn)行預(yù)測(cè)確定搜索區(qū)域,使用光流金字塔方法在該區(qū)域內(nèi)進(jìn)行目標(biāo)檢測(cè),找到與初始模型最匹配的目標(biāo)位置進(jìn)行跟蹤。文獻(xiàn)[5]通過LK光流法直接處理視頻,然后經(jīng)光流聚類和改進(jìn)的中值濾波處理,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)獲取。最后根據(jù)所獲取的目標(biāo)位置等信息,使用卡爾曼濾波對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行預(yù)測(cè),從而實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的跟蹤。文獻(xiàn)[6]針對(duì)當(dāng)前卡爾曼濾波算法在運(yùn)動(dòng)目標(biāo)跟蹤中的缺陷,設(shè)計(jì)了改進(jìn)卡爾曼濾波和均值漂移的運(yùn)動(dòng)目標(biāo)跟蹤算法,引入均值漂移算法對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行粗跟蹤,將運(yùn)動(dòng)目標(biāo)的位置和速度作為卡爾曼濾波算法的初始狀態(tài),減小了目標(biāo)跟蹤誤差。文獻(xiàn)[7]在DAT(Distractor-Aware Tracking)算法框架上引入遮擋檢測(cè)機(jī)制,提出了DDAT(Detection-DAT)算法。通過相似度的變化趨勢(shì)及幀間差值閾值,判斷是否出現(xiàn)目標(biāo)遮擋;然后利用樸素貝葉斯分類器和最鄰近分類器,得到后續(xù)幀中的目標(biāo)框,最后通過相似度檢測(cè)是否正確跟蹤。
傳統(tǒng)的運(yùn)動(dòng)目標(biāo)檢測(cè)算法存在的問題有[8-11]:
1)跟蹤目標(biāo)被遮擋,導(dǎo)致跟蹤目標(biāo)丟失。
2)跟蹤目標(biāo)重疊,導(dǎo)致跟蹤失敗。
3)目標(biāo)快速移動(dòng)或快速變換方向,導(dǎo)致跟蹤效果差。
針對(duì)上述問題,本文提出一種基于改進(jìn)光流特征的運(yùn)動(dòng)目標(biāo)跟蹤算法。該方法首先采取Vibe算法提取出場(chǎng)景中的運(yùn)動(dòng)目標(biāo),同時(shí)結(jié)合HSV顏色空間來對(duì)視頻中的陰影進(jìn)行消除。再將Shi-Tomasi角點(diǎn)檢測(cè)與LK光流法進(jìn)行結(jié)合,對(duì)檢測(cè)到的角點(diǎn)進(jìn)行運(yùn)動(dòng)光流特征提取,將角點(diǎn)檢測(cè)結(jié)果信息作為L(zhǎng)K光流法的約束條件,減少大量無效的信息量。然后采用金字塔LK光流算法來提高系統(tǒng)的檢測(cè)效率,得到運(yùn)動(dòng)目標(biāo)的光流信息。角點(diǎn)的加入提取有效的運(yùn)動(dòng)目標(biāo)信息,降低LK光流算法的計(jì)算量。最后對(duì)運(yùn)動(dòng)目標(biāo)采取卡爾曼濾波器(KF)對(duì)目標(biāo)運(yùn)動(dòng)位置進(jìn)行預(yù)測(cè),再通過匈牙利算法對(duì)預(yù)測(cè)位置進(jìn)行匹配,從而實(shí)現(xiàn)目標(biāo)跟蹤。本文提出的目標(biāo)跟蹤流程如圖1所示。
圖1 目標(biāo)跟蹤流程
運(yùn)動(dòng)背景模型是指在固定攝像頭下對(duì)當(dāng)前背景進(jìn)行建模,這樣就可以對(duì)視頻中出現(xiàn)的運(yùn)動(dòng)物體進(jìn)行提取[12-14]。本文選取Vibe背景建模法,并通過對(duì)目前的Vibe算法進(jìn)行改進(jìn),實(shí)現(xiàn)運(yùn)動(dòng)背景的快速建模。Vibe背景建模法由于是根據(jù)視頻的第一幀來進(jìn)行背景建模,因此當(dāng)視頻第一幀出現(xiàn)行人的時(shí)候容易出現(xiàn)鬼影現(xiàn)象[15-17]。而通過將Vibe背景建模法和平均背景法相融合,可以很好地消除運(yùn)動(dòng)開始時(shí)出現(xiàn)的鬼影現(xiàn)象。同時(shí)采用傳統(tǒng)Vibe算法也會(huì)檢測(cè)到行人運(yùn)動(dòng)的陰影,因此需要對(duì)陰影進(jìn)行消除,由于陰影的亮度和紋理空間和運(yùn)動(dòng)行人都不相同,因此采用結(jié)合HSV顏色空間來對(duì)視頻中的陰影進(jìn)行消除:
(1)
其中,Ik表示當(dāng)前區(qū)域,Bk表示背景區(qū)域,H(i,j)、S(i,j)、V(i,j)分別表示目標(biāo)點(diǎn)的HSV值,α、β為V通道比值的閾值,T1、T2分別為S、H通道差值的閾值。
將前20幀的平均背景作為初始幀,同時(shí)將當(dāng)前圖像的V通道圖像中屬于前景目標(biāo)區(qū)域像素點(diǎn)與背景區(qū)域目標(biāo)像素點(diǎn)相比并與閾值進(jìn)行比較,將當(dāng)前圖像的S和H通道圖像中屬于前景目標(biāo)區(qū)域像素點(diǎn)與背景區(qū)域目標(biāo)像素點(diǎn)進(jìn)行差值并與閾值進(jìn)行比較。若3個(gè)條件均比閾值小則改點(diǎn)為陰影。目標(biāo)提取如圖2所示。
(a)原始圖像
LK光流法是能夠表示圖像像素點(diǎn)瞬時(shí)速度的方法。通過光流可以很好地表示出運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)信息。提取運(yùn)動(dòng)物體附近光流變化的方向,可以對(duì)運(yùn)動(dòng)目標(biāo)的運(yùn)動(dòng)狀態(tài)進(jìn)行一個(gè)估計(jì),但是對(duì)整幅圖像計(jì)算光流特征,計(jì)算量偏大,當(dāng)有微小物體運(yùn)動(dòng)時(shí)會(huì)對(duì)圖像光流特征提取造成干擾,降低人體行為檢測(cè)的實(shí)時(shí)性。因此可以將空域信息作為光流特征的約束條件,采用角點(diǎn)檢測(cè)與光流法結(jié)合的方法,降低光流法計(jì)算量,可以極大地提高檢測(cè)效率。
針對(duì)傳統(tǒng)的Harris角點(diǎn)檢測(cè)速度慢,且由于人體為柔性目標(biāo),而Harris角點(diǎn)對(duì)于旋轉(zhuǎn)平移等檢測(cè)效果較差等問題[18-19],引入Shi-Tomasi角點(diǎn)檢測(cè),將Shi-Tomasi角點(diǎn)檢測(cè)融入到金字塔LK光流法中。
將提取出的目標(biāo)通過角點(diǎn)檢測(cè)得到圖像的空域信息,將角點(diǎn)檢測(cè)結(jié)果作為L(zhǎng)K光流法的輸入信息,降低無效信息對(duì)光流法計(jì)算的影響,可以提高系統(tǒng)的檢測(cè)速度。
1.2.1 Shi-Tomasi角點(diǎn)檢測(cè)
Shi-Tomasi角點(diǎn)是在Harris檢測(cè)的基礎(chǔ)上改進(jìn)而來的。通過計(jì)算窗口在各個(gè)方向的變化情況來判定該點(diǎn)是否為角點(diǎn)。設(shè)窗口中心點(diǎn)為I(x,y),平移量為(u,v),則窗口產(chǎn)生的變化為:
F(u,v)=∑x,yw(x,y)[I(x+u,y+v)-I(x,y)]2
(2)
其中,w(x,y)為窗口函數(shù),可根據(jù)不同需求賦予不同的權(quán)值,I(x,y)為圖像灰度,I(x+u,y+v)為平移后的圖像灰度。本文所有像素對(duì)應(yīng)權(quán)重系數(shù)均為1。將I(x+u,y+v)進(jìn)行泰勒展開可以得到:
I(x+u,y+v)=I(x,y)+Ixu+Iyv+O(u2,v2)
(3)
將I(x+u,y+v)代入式(2)可得到新的F(u,v)表達(dá)式,即:
(4)
通過引入響應(yīng)函數(shù)R=min(λ1,λ2)來判定該點(diǎn)是否為圖像的角點(diǎn)。其中(λ1,λ2)為矩陣中的2個(gè)特征值,通過根據(jù)場(chǎng)景選定合適的閾值,當(dāng)R大于設(shè)定的閾值時(shí),則判定該像素點(diǎn)為角點(diǎn)。
1.2.2 金字塔LK光流法
運(yùn)用光流法對(duì)光流特征進(jìn)行提取需要盡量保證相鄰幀之間亮度恒定,且相鄰視頻幀在時(shí)間上是連續(xù)的且運(yùn)動(dòng)幅度較小,同時(shí)必須保證在空間上具有一致性[20-23]。要在連續(xù)的幀中不斷地尋找特征點(diǎn)的新位置,也就是不斷地尋找特征點(diǎn)的位移(u,v):
It(x,y)=It+1(x+u,y+v)
(5)
其中,It和It+1分別為2個(gè)相鄰的2個(gè)幀。用泰勒公式將公式(5)展開得到近似公式:
(6)
根據(jù)公式(6)去掉2個(gè)表示強(qiáng)度值的項(xiàng),即得到公式(7):
(7)
(8)
通過公式(8)便可以得出求解公式:
(9)
但是傳統(tǒng)的LK算法3個(gè)限制條件在現(xiàn)實(shí)情況下很難滿足,因此運(yùn)用金字塔LK光流法來完成,將原圖像逐層分解,首先將最低分辨率圖像放在金字塔的頂層,原始圖像放在最底層。金字塔圖像如圖3所示。
圖3 LK光流金字塔
首先計(jì)算最頂層的光流量,將結(jié)果反饋到下一層,作為下一層光流量的估計(jì)量,這樣沿著金字塔自上而下的修正運(yùn)動(dòng)量,直到達(dá)到金字塔的最底層為止。引入圖像金字塔算法后可以極大地增加圖像計(jì)算光流的效率,同時(shí)可以跟蹤到快速運(yùn)動(dòng)的目標(biāo)[24-26]。
當(dāng)監(jiān)控中出現(xiàn)運(yùn)動(dòng)物體時(shí)需要對(duì)運(yùn)動(dòng)目標(biāo)進(jìn)行連續(xù)跟蹤,直至運(yùn)動(dòng)目標(biāo)脫離監(jiān)控范圍。由于在監(jiān)控中容易出現(xiàn)物體遮擋現(xiàn)象,因此需要跟蹤器能夠在發(fā)生遮擋時(shí)仍然能夠?qū)\(yùn)動(dòng)目標(biāo)位置進(jìn)行預(yù)測(cè)。
因此本文選取卡爾曼濾波器作為運(yùn)動(dòng)目標(biāo)的跟蹤器,將光流法的檢測(cè)結(jié)果信息作為卡爾曼濾波器的輸入信息[27]。預(yù)測(cè)跟蹤目標(biāo)即將到達(dá)的位置。然后采用匈牙利算法對(duì)下一幀預(yù)測(cè)區(qū)域進(jìn)行匹配,如果匹配成功則更新卡爾曼跟蹤器[28]。
1.3.1 預(yù)測(cè)階段
卡爾曼濾波器的獲取方法是計(jì)算狀態(tài)預(yù)估的線性最小均方誤差的分類方法。根據(jù)前一時(shí)刻的位置來對(duì)下一時(shí)刻目標(biāo)可能出現(xiàn)的位置進(jìn)行預(yù)測(cè),然后根據(jù)當(dāng)前幀的真實(shí)值來對(duì)預(yù)估結(jié)果進(jìn)行修正??柭鼮V波有效解決了目標(biāo)由于相互遮擋導(dǎo)致目標(biāo)跟蹤丟失的情況??柭鼮V波器有預(yù)測(cè)和匹配2個(gè)部分。其預(yù)測(cè)公式如下:
(10)
(11)
(12)
(13)
(14)
卡爾曼濾波運(yùn)用在目標(biāo)跟蹤中有2個(gè)重要假設(shè):
1)系統(tǒng)模型是線性的。
2)預(yù)測(cè)模型和包含的噪聲屬于高斯白噪聲。
第1個(gè)假設(shè)是,實(shí)際視頻數(shù)據(jù)中,前后幀的時(shí)間間隔非常短,因此可以假設(shè)前后幀中運(yùn)動(dòng)目標(biāo)做勻速運(yùn)動(dòng),所以可將這個(gè)模型近似于線性模型。第2個(gè)假設(shè)是,模型中的噪聲與時(shí)間信息無關(guān),只與噪聲的振幅大小及其協(xié)方差大小有關(guān)系。因此可以將光流法檢測(cè)結(jié)果作為卡爾曼濾波的初始值,選取目標(biāo)初始位置的外接矩形框,將初始目標(biāo)位置邊界框的中心作為目標(biāo)初始位置,計(jì)算出圖像中目標(biāo)的輪廓并顯示輪廓的矩形框,依據(jù)改進(jìn)光流法檢測(cè)得到矩形的邊界框的位置、移動(dòng)方向與移動(dòng)速度等空域信息。然后利用初始幀中的信息預(yù)測(cè)下一幀,再通過跟蹤框固定的寬度值和高度值就可以呈現(xiàn)出所跟蹤目標(biāo)的預(yù)測(cè)跟蹤位置。
1.3.2 匹配階段
通過卡爾曼濾波器可以對(duì)目標(biāo)位置進(jìn)行預(yù)測(cè),但是是否預(yù)測(cè)成功則需要用匈牙利算法進(jìn)行匹配,通過匈牙利算法在下一幀到來時(shí)在預(yù)測(cè)位置進(jìn)行匹配,如果匹配成功,則更新目標(biāo)的位置。將目標(biāo)跟蹤框的下邊界中點(diǎn)作為目標(biāo)軌跡點(diǎn),連起來即為目標(biāo)軌跡線。
采用歐氏距離來判定匹配程度,對(duì)于多個(gè)目標(biāo)點(diǎn)可以得到一個(gè)矩陣ci,j,用來表達(dá)跟蹤點(diǎn)匹配程度。匈牙利最大匹配算法就是將檢測(cè)出運(yùn)動(dòng)目標(biāo)和不同的軌跡進(jìn)行匹配。每幀進(jìn)行分配時(shí)所有關(guān)聯(lián)代價(jià)的和就是該幀進(jìn)行關(guān)聯(lián)的總代價(jià)值[29],在所有的方案中,使檢測(cè)到的運(yùn)動(dòng)目標(biāo)和運(yùn)行軌跡之間的總代價(jià)的和最小,效果如圖4所示。從圖4中可以看出當(dāng)運(yùn)動(dòng)目標(biāo)發(fā)生遮擋后,跟蹤器仍然有良好的跟蹤效果。
圖4 運(yùn)動(dòng)目標(biāo)跟蹤
仿真視頻選取CASIR數(shù)據(jù)庫中人體交互行為視頻集。仿真實(shí)驗(yàn)是在Windows7操作系統(tǒng)和VS2015開發(fā)環(huán)境下進(jìn)行的。其中計(jì)算機(jī)性能參數(shù)為2.60 GHz的4核CPU,8 GB內(nèi)存。仿真實(shí)驗(yàn)內(nèi)容是檢測(cè)出視頻中所出現(xiàn)的運(yùn)動(dòng)行人,并對(duì)行人進(jìn)行持續(xù)跟蹤,并且當(dāng)行人相遇時(shí)仍然能夠持續(xù)跟蹤。
視頻源共有視頻幀數(shù)為4089幀視頻,包含正常行走、行人相遇與行人交互等行為,將本文模型與文獻(xiàn)[4]模型、文獻(xiàn)[5]模型采用相同視頻分別進(jìn)行實(shí)驗(yàn),針對(duì)單人行走、單人奔跑、2人相遇和2人超越4種情形進(jìn)行對(duì)比,然后分別從處理速度、檢測(cè)率等方面進(jìn)行比較分析。實(shí)驗(yàn)結(jié)果對(duì)比圖如圖5~圖7所示。
(a)單人行走
(a)單人行走
(a)單人行走
從圖5(c)、圖5(d)中可以看出,當(dāng)跟蹤目標(biāo)重疊后,發(fā)生了跟蹤目標(biāo)丟失的情況,這是由于文獻(xiàn)[4]模型直接通過卡爾曼濾波構(gòu)造初始模型,然后預(yù)測(cè)確定搜索區(qū)域再進(jìn)行光流法檢測(cè)。當(dāng)目標(biāo)重疊時(shí),預(yù)測(cè)搜索區(qū)域發(fā)生重疊,且重疊過程中產(chǎn)生的光流,影響到了不同運(yùn)動(dòng)目標(biāo)的檢測(cè),導(dǎo)致跟蹤失敗。
從圖6(b)、圖6(d)中可以看出,當(dāng)跟蹤目標(biāo)奔跑時(shí),文獻(xiàn)[5]模型發(fā)生了跟蹤偏移,產(chǎn)生了跟蹤誤差。這是由于文獻(xiàn)[5]模型直接對(duì)原視頻進(jìn)行了光流法處理,檢測(cè)跟蹤受到較多的無效光流影響,目標(biāo)奔跑時(shí),運(yùn)動(dòng)目標(biāo)移動(dòng)加快,無效光流的影響也同時(shí)增加,降低了跟蹤效率。且由于算法計(jì)算量較大,導(dǎo)致算法的實(shí)時(shí)性變差,從而產(chǎn)生了跟蹤誤差,跟蹤效果變差。
本文模型是一種將背景建模與光流法相結(jié)合的方法。從圖7中可以看出,本文模型很好地跟蹤到目標(biāo),且跟蹤效果好,實(shí)時(shí)性強(qiáng)。這是因?yàn)?,本文模型先進(jìn)行背景建模,并結(jié)合HSV顏色空間很好地消除了運(yùn)動(dòng)開始時(shí)出現(xiàn)的鬼影現(xiàn)象,降低了角點(diǎn)檢測(cè)的范圍,也避免了錯(cuò)誤光流的產(chǎn)生。然后將Shi-Tomasi角點(diǎn)檢測(cè)融入到金字塔LK光流法,大大減少了光流特征提取的計(jì)算量,降低了視頻的幀率,提高了模型檢測(cè)時(shí)的實(shí)時(shí)性。最后通過卡爾曼濾波和匈牙利匹配算法的融合,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的連續(xù)跟蹤,提高了目標(biāo)重疊與被遮擋時(shí)的跟蹤檢測(cè)率,取得了較好的跟蹤效果。
本文針對(duì)目標(biāo)跟蹤結(jié)果人為對(duì)跟蹤結(jié)果進(jìn)行判斷,將行人檢測(cè)外接矩形框進(jìn)行適度擴(kuò)大,設(shè)定為跟蹤檢測(cè)框,當(dāng)發(fā)生行人肢體超出跟蹤檢測(cè)框時(shí),判定跟蹤失敗,如圖6(b)所示。當(dāng)能夠完成全程行人跟蹤時(shí),判定為跟蹤成功。
檢測(cè)率對(duì)比分析表如表1所示。
表1 檢測(cè)率對(duì)比分析表
通過實(shí)驗(yàn)對(duì)比可知:本文提出的模型,針對(duì)行人檢測(cè)的多種情況,跟蹤效果都優(yōu)于文獻(xiàn)[4]模型和文獻(xiàn)[5]模型,并且在處理速度上優(yōu)于文獻(xiàn)[4]模型和文獻(xiàn)[5]模型,達(dá)到了63 ms/幀,提高了跟蹤的實(shí)時(shí)性。
本文通過對(duì)視頻源背景進(jìn)行建模,實(shí)現(xiàn)對(duì)運(yùn)動(dòng)目標(biāo)的提取,同時(shí)結(jié)合HSV顏色空間來對(duì)視頻中的陰影進(jìn)行消除;通過角點(diǎn)檢測(cè)減少無用的空域信息,決定進(jìn)行光流特征計(jì)算的區(qū)域。提取運(yùn)動(dòng)區(qū)域附近的光流方向特征,通過卡爾曼濾波和匈牙利匹配算法的融合,實(shí)現(xiàn)運(yùn)動(dòng)目標(biāo)的連續(xù)跟蹤。在采集的視頻中進(jìn)行仿真驗(yàn)證,能夠?qū)π^(qū)環(huán)境中行人進(jìn)行持續(xù)監(jiān)測(cè)跟蹤,并提高了跟蹤的實(shí)時(shí)性與跟蹤效率。在未來的工作中,要提高模型在惡劣天氣以及低光照條件下的檢測(cè)效果,進(jìn)一步提高模型的實(shí)用性,同時(shí)還需要增加對(duì)其他運(yùn)動(dòng)目標(biāo)如車輛、動(dòng)物等的跟蹤實(shí)現(xiàn)。