丁 哲,陸文總
(西安工業(yè)大學 電子信息工程學院,西安 710021)
運動目標檢測本質是采用計算機技術與圖像處理手段[1],從復雜多變的背景環(huán)境中精確地識別出感興趣的目標.融合幀間差分法和背景差分法的混合算法對運動目標檢測[2],結合了兩種算法的優(yōu)點,不易受環(huán)境光線的影響,但是當運動目標移動的速度過快或過慢時,檢測出的目標輪廓連通性不好且對背景圖像不能實時更新.2018年羅鴻斌等人提出一種基Vibe 的改進算法[3],該算法根據(jù)對每個前景點建立一個計數(shù)器的算法來加快對鬼影的去除,加快了對背景建模中第一幀“鬼影”消除速度,但是檢測效率不高,檢測的實時性不夠.針對目標運動時,可能出現(xiàn)其他物體的干擾及目標運動的方向不確定的情況,目標自適應檢測中存在的實時性、準確性以及抗干擾能力等問題,提出一種基于Vibe 背景建模的三幀差分算法,也就是在傳統(tǒng)Vibe 算法基礎上融入顏色和邊緣特征,然后與改進的三幀差分法結合,該算法不僅加快 “鬼影”消除的速度,而且提高了對運動目標檢測準確性并滿足實時性要求.
當前大多數(shù)背景建模都是基于單像素的,通過對Vibe 背景建模算法的研究,本文在傳統(tǒng)的Vibe 算法基礎上融入顏色和邊緣特征[4],根據(jù)檢測過程中顏色和邊緣的特征的變化情況以及局部像素復雜程度,改變了對前景的判定與背景的更新方式,解決檢測過程中前景和背景相似造成的誤檢.
Vibe 背景建模算法是一種基于像素特征非參數(shù)化聚類的算法,在模板的初始化階段,用視頻的第一幀圖像為每個像素點建立一個模型,根據(jù)目標的運動和背景的變化,對應像素的背景模型可以自適應選擇,同時為了避免由于檢測的背景與前景相似造成的誤檢[5],將目標的顏色和邊緣特征加入算法,改善了基于單一特征背景建模算法對背景描述的不準確現(xiàn)象.
Vibe 模型的初始化只需要一幀圖像就能實現(xiàn)[6],但像素點的時空分布信息不能在單幀圖像中顯現(xiàn)出來,為了得到初始化模型像素點的時空分布信息,需要隨機選擇一個像素點,然后把它的領域像素點作為模型樣本集的初始值,可用式(1)表示.
其中 表示x點的空間領域,y是在空間領域中隨機選取的位置.如圖1所示為Vibe 背景模型.
圖1 Vibe 背景模型
通過比較將當前像素值與背景模型中對應的歷史像素值作為前景檢測,再判斷當前像素是否為前景像素.當讀取到視頻第二幀,將圖像中(x,y)處的像素v(x,y)作為中心,以R為半徑建立一個背景匹配的模型圓,計算V(x)與B(x)中N個樣本的歐氏距離,根據(jù)像素在該模型圓范圍內匹配的數(shù)量Q對該像素進行前背景的判斷.當Q<Qmin時,該像素點是前景;否則,就是背景,對結果r(x,y)的判斷式用式(2)表示:
其中,
該方法利用當前像素點與背景樣本集中所有的像素點作對比,如果它們的歐氏距離絕對差值處于模型圓內,則匹配數(shù)Q+1.
背景模型初始化完成后,將讀入的待測視頻圖像按照背景模型的特征提取當前幀圖像中特征的集合.在訓練背景模型的時,當讀取了視頻中新的一幀圖像,首先應該提取圖像的顏色特征RGB(x,y)和灰度值Gray(x,y),然后在空間中進行邊緣特征計算,為每個像素點設置自己的更新率U(vx)和 半徑閾值R(vx),可用式(3)表示.使用新的像素與樣本集合中樣本點的最小距離Lk(Vx)表示環(huán)境的復雜程度,然后更新閾值:
式中,dist(D(VX),VX)是樣本點與像素點之間的最小距離,D(VX)為新像素Vx的一個樣本點,背景的復雜程度為所有新像素點最小距離平均公式,可用式(4)表示.
背景模型的更新率可以通過設置的更新率U(Vx)和自適應調整,利用式(5)表示 :
其中,Vx1為背景點,Vx2為前景點.
半徑閾值可以通過式(6)調節(jié):
其中,a,b為固定的參數(shù),R(Vx)為半徑閾值.
盡管Vibe 背景建模的檢測效率較高,算法簡單容易實現(xiàn),但存在“鬼影”,如果運動目標由運動變?yōu)殪o止或運動速度很慢,目標就會被背景吸收[7],檢測不出運動目標.本文方法雖不能在檢測的前幾幀完全消除“鬼影”,但由仿真圖可以看出,改進后的Vibe 算法第43 幀時有明顯消減,77 幀時就可以完全消除.圖2為改進前后Vibe 算法去除“鬼影”仿真效果圖.
圖2 改進前后Vibe 算法去除鬼影仿真效果圖
在對運動目標的檢測過程中,幀間差分法通過計算相鄰兩幀圖像的差值來獲得圖像運動的區(qū)域,在相鄰圖像中,利用差值圖像能夠快速檢測出目標運動引起的動態(tài)范圍,因為它檢測出來的目標往往都會比實際目標大,導致出現(xiàn)“虛影”現(xiàn)象,而且提取出來的是前后兩幀圖像發(fā)生變化的部分,發(fā)生重疊的部分并不能檢測出來,從而產生“空洞”現(xiàn)象.三幀差分法是對幀間差分法的完善[8],它對視頻序列中的三幀圖像兩兩進行差分,再相“與”,雖然這樣檢測的準確率會有所提升[9-11],對幀差法產生的雙影問題有所改善,但是仍然存在內部有“空洞”、目標物邊界輪廓不完整等現(xiàn)象.現(xiàn)在采用一種改進的三幀差分法,它是在三幀差分處理結果的基礎上進行形態(tài)學處理對圖像進行補償,提高了對動態(tài)目標檢測精確度,得到準確的動態(tài)目標形態(tài)特征.改進的三幀差分法利用形態(tài)學處理可能存在的噪聲和斷點,利用膨脹來解決內部空洞問題.為了有效減少目標的缺損,本文利用把異或后的結果進行膨脹處理,然后再將傳統(tǒng)的三幀差分結果和處理后的結果相“與”,得到運動目標輪廓圖,圖3為改進的三幀差分流程圖.
在連續(xù)視頻序列f1,f2,f3,···,fn中,fk-1(x,y)為第k-1 幀圖像,fk(x,y)為 第K 幀圖像,fk+1(x,y)為第k+1 幀圖像.將第k-1 幀與第k幀圖像灰度化后進行差分,得到差分圖像q1(x,y),用式(7)表示.
圖3 改進的三幀差分流程
同理,將第k幀圖像與第k+1 幀圖像灰度化再進行差分,得到q2(x,y),用式(8)表示.
獲取差分后的圖像,運用二維 OTSU 閾值分割算法自動獲取閾值以替代人為設定閾值,從而更加精確的對差分圖像進行二值化,然后將得到的兩幅圖像灰度圖相“與”得到圖像q3(x,y),用式(9)表示.
然后再將圖像q1(x,y),q3(x,y)“異或”運算,得到圖像q4(x,y),用式(10)表示.
接著對圖像q4(x,y)形態(tài)學(膨脹)處理,膨脹的數(shù)學表達用式(11)表示.
最后再對圖像q3(x,y)和q4(x,y)相“與”,從而獲得最終的檢測結果,用式(12)表示.
其中,T為二維OTSU 閾值分割算法自動獲取的閾值.改進的三幀差分算法是通過q1(x,y)和q3(x,y)進行“異或”運算得到q4(x,y),然后再對 形態(tài)學處理,最終和q3(x,y)相“與”得到前景運動目標,改進后的三幀差分法減少了傳統(tǒng)三幀差分法出現(xiàn)的“空洞”現(xiàn)象,雖然處理速度稍有下降,但是仍能滿足實時性的要求.
盡管改進后的三幀差分法的算法仍然比較簡單、執(zhí)行速度也較快,而且還具有普遍適用性,但是在檢測過程中仍然存在內部“空洞”、目標物邊界輪廓不完整和對光照突變敏感等不足,為了解決改進后的三幀差分法存在不足之處,本文提出一種基于Vibe 背景建模的三幀差分算法[12],該算法是用Vibe 對背景進行建模,Vibe 背景模型算法是根據(jù)第一幀視頻幀來建立模型[13],但容易出現(xiàn)“鬼影”現(xiàn)象,目前許多文獻也針對這個不足進行了相關的研究,現(xiàn)在比較常用的方法是將原算法的第一幀圖像初始化改為多幀圖像初始化,或者將原算法與其他相關算法進行結合.
根據(jù)實驗后的效果對比得出,傳統(tǒng)的Vibe 算法需要經過數(shù)百幀以后才能完全消除第一幀出現(xiàn)的“鬼影”,利用基于Vibe 背景建模的改進三幀差分算法,加快了消除“鬼影”的速度,在數(shù)十幀內就可以將“鬼影”消除;同時,融合顏色和邊緣特征的Vibe 算法很大程度上改善了傳統(tǒng)的基于單一特征背景建模算法對背景描述不準確的現(xiàn)象.將這兩種算法融合后,不僅僅提升了消除“鬼影”的速度和三幀法出現(xiàn)的“空洞”等不足,而且通過對檢測結果進行形態(tài)學處理對圖像進行補償,很大程度上提了對運動目標檢測的準確率.基于Vibe 建模的三幀差分法流程圖如圖4所示.
圖4 基于Vibe 建模的三幀差分法流程圖
為了驗證基于Vibe 背景建模的改進三幀差分法對運動目標檢測結果的改善,本文以運動的行人為研究對象,將視頻劃分為1 組800 幀的視頻序列進行實驗,本文的實驗平臺基于微軟開發(fā)的一款工具箱Visual Studio 2015(簡稱VS2015),并調用第三方開源庫OpenCV3.2.0,采用C++編程語言進行算法功能實現(xiàn),操作系統(tǒng)為Microsoft Windows,主機CPU 為Intel(R)core(TM)i5-6300HQ,主頻為2.30 GHz.
為了驗證本文提出的方法在復雜的環(huán)境下仍能夠準確檢測出運動目標,本實驗選取的地點為干擾較多十字路口,采用基于Vibe 背景建模的改進三幀差分法算法對運動行人進行檢測.試驗過程中,分別選取視頻圖像序列的第177 幀、392 幀和550 幀進行檢測效果分析.實驗結果表明本文改進的三幀差分算法優(yōu)于傳統(tǒng)的Vibe 算法和傳統(tǒng)的三幀差分法.Vibe 算法檢測過程中存在消除“鬼影”速度較慢和對背景描述不準確等問題.三幀差分法檢測的結果存在“空洞”和連通性不好等現(xiàn)象.本文提出的算法在很大程度上彌補了以上算法的不足,提高了運動目標檢測算法的魯棒性.實驗結果分析:通過改進Vibe 和三幀差分法的改進,得到本文算法,圖4為文中算法-傳統(tǒng)算法仿真對比效果圖,分別選取第177 幀、第392 幀和第550 幀,通過Vibe算法、三幀算法與本文算法對檢測效果進行對比.
圖5 文中算法-傳統(tǒng)算法仿真對比效果圖
通過對比傳統(tǒng)算法與本文仿真效果圖,并利用MER-132-30UC 型號USB 工業(yè)彩色相機進行多次試驗,可以得出本文算法對運動目標檢測的效果明顯優(yōu)于傳統(tǒng)算法.
首先對傳統(tǒng)的Vibe 算法和三幀差分法的不足進行初步的改善,通過對比改進后的Vibe 算法與傳統(tǒng)Vibe 算法對圖像處理的結果,可以看出改進后的Vibe 算法可以加快“鬼影”消除的速度.然后針對兩種算法存在的問題,采用一種基于Vibe 背景建模的改進三幀差分算法對運動目標檢測,提高了動態(tài)目標檢測的準確性和實時性.通過實驗可以得出本文算法解決了Vibe 算法消除“鬼影”速度慢和對背景描述不準確等問題,同時解決了三幀差分法檢測結果存在的“空洞”現(xiàn)象,對運動目標檢測準確率更高,在智能視頻監(jiān)控系統(tǒng)領域有良好的市場應用前景.未來進一步工作可以從動態(tài)背景環(huán)境著手采用深度學習的算法對運動目標實時檢測追蹤,可以考慮復雜環(huán)境下對多運動目標檢測進行研究.