王春丹,謝紅薇,李亞旋,張 昊
1.太原理工大學(xué) 軟件學(xué)院,太原 030024
2.太原理工大學(xué) 信息與計算機學(xué)院,太原 030024
運動物體檢測[1](前景檢測),即在視頻中識別運動目標(biāo)(前景)和相對靜態(tài)部分(背景)的過程。它是運動分析、視頻監(jiān)控的關(guān)鍵步驟,也是最基礎(chǔ)和重要的步驟。常見的檢測算法有背景減法、幀差法和光流法等。背景減法[2-4]是先建立背景模型,當(dāng)前幀減去背景模型即可得到前景。背景減法計算過程簡單、計算量小,可滿足實時性的要求和解決幀差提取目標(biāo)存在內(nèi)部空洞問題,但不適合光照變化、相機抖動等背景噪聲大的環(huán)境[5]。背景減法包括:背景建模、前景提取和前景檢測三個步驟,其中背景減法最重要部分是背景建模[6]。常用的背景建模有單高斯模型[7]、混合高斯模型[8-9]以及ViBe(Visual Background extractor)算法等。
針對其減少計算量、提高實時性檢測和減少內(nèi)存消耗的問題,Barnich 等人在 2011 年提出了 ViBe 算法[10]。ViBe 算法是一種魯棒性強的非參數(shù)背景模型算法,具備占用內(nèi)存低和高效的優(yōu)點。但是ViBe算法使用第一幀圖像獲得初始化背景模型,會產(chǎn)生拖影,影響背景檢測的準(zhǔn)確性;背景更新過程采用固定閾值區(qū)分前景和背景,在刮風(fēng)天氣引起的樹葉搖擺、湖面水紋波動等動態(tài)背景下,都有可能被檢測為前景。ViBe 算法背景模型更新速度過快,將緩慢運動的目標(biāo)誤檢為背景或噪聲,造成檢測目標(biāo)的準(zhǔn)確性和完整性下降。
針對上述問題,文獻[11]采用結(jié)合三幀差分和邊緣檢測技術(shù)進行ViBe 算法的改進,對緩慢移動的目標(biāo)其檢測完整性和準(zhǔn)確性還是有影響;文獻[12]針對每個像素設(shè)定閾值,提高前景檢測的精確度,但是還存在較多噪聲點在大范圍的動態(tài)背景下;文獻[13]提出將ViBe算法與Canny邊緣檢測[14]結(jié)合進行運動目標(biāo)提取,改善拖影的現(xiàn)象,在光照突變和樹葉晃動的復(fù)雜背景下,抗干擾能力較差。本文算法在初始化背景模型階段,選用在多幀圖像使用基于Canny的三幀差分改進算法,改善初始背景模型造成的拖影現(xiàn)象;使用自適應(yīng)閾值調(diào)整固定閾值和背景更新率,提高其在相對動態(tài)背景下的準(zhǔn)確率;使用改進的ViBe算法和三幀差分融合,提高目標(biāo)的完整性。
2011年,Barnich提出了ViBe[10]算法,是一種高效快速提取前景的算法,ViBe算法計算過程簡單,魯棒性和實時性較高。主要是從以下三方面來體現(xiàn)。
首幀圖像所有像素點構(gòu)成的樣本集合就是初始化背景模型。第一幀的某個像素點x的背景像素值從領(lǐng)域中隨機選取N個樣本,作為像素點x的樣本集第一幀圖像中每個像素點都存儲了樣本集,這些樣本集構(gòu)成了初始化的背景模型。
在前景檢測過程中,像素點x處新的像素值和樣本集合中的元素比較判斷,確認(rèn)是否屬于前景。樣本集合的大小為N,以x為中心,R為半徑建立一個二維歐幾里得色度空間的球體SR(v(x)),如圖1所示。
圖1 色度空間的球體SR(v(x))
當(dāng)前幀某像素點x處的像素值與該點歷史樣本集合值作差并且與R進行比較,比R小的值存儲在中,即計算集合M(x)與區(qū)域相交的樣本個數(shù),如公式(1)所示:
ViBe 算法首幀建立初始化模型,會出現(xiàn)漏檢和檢測錯誤的現(xiàn)象;固定閾值和背景更新率分別用于前景檢測和更新背景模型,不適合多擾動的背景環(huán)境。三幀差分算法利用相鄰的三幀相減提取出相鄰幀間運動的前景目標(biāo),計算簡單,速度快,但是捕捉到的目標(biāo)輪廓不完整。本文算法使用基于Canny 的三幀差分改進算法構(gòu)建ViBe 算法中的背景模型,提高其檢測的準(zhǔn)確性減少漏檢現(xiàn)象。根據(jù)公式設(shè)置調(diào)整因子,動態(tài)調(diào)整判斷閾值和背景模型更新率以適應(yīng)多擾動的背景環(huán)境。改進后算法與三幀差分算法結(jié)合,提高檢測目標(biāo)的完整性。如圖2所示。
為了消除初始幀造成的拖影,選取視頻多幀使用基于Canny 的三幀差分改進算法構(gòu)建背景樣本模型。在視頻多幀圖像中,隨機選取k幀圖像的每個像素在領(lǐng)域中存儲N個值為。在相鄰幀間使用基于Canny的三幀差分改進算法取幀差,存儲相鄰幀差。選用k幀圖像每個像素在領(lǐng)域中存儲N個值和三幀幀差值作為背景模型。三幀幀差是由基于Canny 的三幀差分改進算法獲取。如公式(3)所示,是多幀圖像建立的背景模型,即是由該幀x像素點的樣本集合和相鄰之間的幀差構(gòu)成的,例如和表示的是相鄰三幀x位置處的像素值,幀差值存儲得到Nk,最終得到Dk作為背景模型樣本值。
圖2 改進ViBe算法的框架圖
ViBe 算法在模型更新中,固定的半徑R和更新率T不適合在真實背景環(huán)境。為適應(yīng)多模態(tài)的場景,本文根據(jù)背景的復(fù)雜程度來調(diào)整更新率T(P)和半徑閾值。第k幀中x位置的新像素點與其樣本集合之間的距離差異反映當(dāng)前位置像素點的差值,即反映像素級的背景復(fù)雜程度,忽略了背景變化中存在的空間相關(guān)性。將幀差值作為背景模型中的一部分,填補像素級存在的信息不充分的問題,第k幀中x位置的新像素點與其樣本集合之間的最小距離值與背景模型中存儲的三幀差分值比較,獲取最小值表示當(dāng)前位置像素點的復(fù)雜情況,如公式(4)所示:
在背景模型更新階段,應(yīng)用自適應(yīng)調(diào)節(jié)因子提高檢測運動目標(biāo)的準(zhǔn)確性。在光照突變、相機抖動和樹葉晃動的背景環(huán)境下,為提高其檢測準(zhǔn)確性和完整性。將三幀差分和改進ViBe 算法的結(jié)合獲取到前景目標(biāo),通過邏輯或、邏輯與、中值濾波操作和形態(tài)學(xué)濾波操作得到最終的前景目標(biāo),這樣就形成優(yōu)劣互補,提高目標(biāo)檢測的準(zhǔn)確性和完整性。改進ViBe算法得到的前景目標(biāo)經(jīng)過中值濾波(用于保護邊緣信息)和形態(tài)學(xué)濾波處理(消除噪聲和填補空洞),最終得到前景圖像。三幀差分提取到的前景目標(biāo),對三幀差分和改進ViBe 算法得到的前景目標(biāo)進行邏輯“或”運算,如公式(8)所示:
上述獲得的結(jié)果再和改進ViBe算法進行邏輯“與”運算,如公式(9)所示:
公式(9)的處理前景目標(biāo)經(jīng)過形態(tài)學(xué)濾波操作,形態(tài)學(xué)操作包括開運算(消除小物體或小斑塊)和閉運算(填充孔洞),其中B表示大小為(3,3)的內(nèi)核矩陣,最終得到三幀差分和改進ViBe 算法結(jié)合獲得的前景目標(biāo)。公式(10)和(11)如下所示:
選用Highway 測試視頻中第273 幀圖像截取三幀差分和改進ViBe 算法進行邏輯或、邏輯與和形態(tài)濾波處理,每一步處理過程結(jié)果展示如圖3所示。
圖3顯示的結(jié)果表明,三幀差分算法提取到的運動目標(biāo),還存在著噪聲和完整性的問題;改進后的ViBe算法提取到的運動目標(biāo)較為完整;將改進后的ViBe 算法和三幀差分算法提取到的運動目標(biāo)進行邏輯或操作,提高目標(biāo)檢測的完整性,但還存在樹影噪聲的影響;將邏輯或得到的目標(biāo)和改進ViBe 算法進行邏輯與操作,消除噪聲的影響。最終將得到的前景目標(biāo)再經(jīng)過形態(tài)濾波處理,得到最終的前景目標(biāo)。
圖3 Highway測試視頻檢測結(jié)果展示
本文算法的實驗代碼硬件環(huán)境:Intel i5,3.4 GHz CPU,RAM 8 GB。軟件環(huán)境:64位Windows10操作系統(tǒng),Visual Studio 2013,OpenCV 2.3。背景模型建立參數(shù)m=100,N=20,R=20。
采用ChangeDetection(CDnet2014)數(shù)據(jù)集,提供室內(nèi)室外逼真和實用性的視頻(包括共11 類有挑戰(zhàn)性的場景),大約有16萬幀視頻[16]。實驗選用有樹枝晃動、行人運動、抖動相機和運動緩慢的目標(biāo)4 種情況的視頻,即4 組測試數(shù)據(jù)集5 569 張(Highway:1 700、PETS2006:1 200、traffic:1 570 和 Pedestrians:1 099)圖像序列完成實驗的比對。本文算法與ViBe原始算法和融合邊緣檢測的三幀差分算法進行實驗比對,從定性和定量兩個角度對其算法其結(jié)果的進行評價。
定性評價是由人眼觀察檢測結(jié)果得出的主觀量度[17],圖4給出了前景目標(biāo)結(jié)果樣例。圖3第一列是Highway測試視頻在第1 638幀的效果對比,由于大風(fēng)天氣造成樹枝晃動和樹影變換,文獻[18]算法在車輛擋風(fēng)玻璃上漏檢了前景像素點,在樹枝晃動區(qū)域出現(xiàn)了噪聲;文獻[10]算法和本文算法有效地填補前景空洞和抑制去除搖曳樹枝造成的干擾。第二列是Pedestrians 測試視頻在第666 幀的效果對比,文獻[18]算法檢測到行人輪廓,漏檢了行人的上半身和左腿前景像素點;文獻[10]算法檢測的行人頭部前景像素不完整;改進的ViBe 算法檢測到行人整體像素點,沒有出現(xiàn)漏檢的現(xiàn)象。第三列是traffic 測試視頻在第1 548 幀的效果對比,相機的抖動對背景干擾很大,文獻[18]和文獻[10]算法出現(xiàn)誤檢,抖動相機造成晃動的樹影和震動背景像素點誤檢為前景。改進的ViBe 算法消除了背景噪聲的干擾,提高了檢測效果。
圖4 實驗檢測結(jié)果對比
如圖5 所示,第一行3 幅圖像是PETS2006 測試視頻的第542 幀、576 幀和699 幀的原圖像,圖像中紅框標(biāo)明的是緩慢移動的運動目標(biāo)。第二行和第三行是文獻[18]和文獻[10]算法對應(yīng)時刻的檢測效果圖,可以看出紅框內(nèi)前景像素已被吸收為背景像素,未能把目標(biāo)完整提取出來。第四行是本文算法,可以看出本文算法檢測紅框內(nèi)像素點較文獻[18]和文獻[10]算法效果更理想。
圖5 PETS2006視頻檢測結(jié)果
表1 算法定量評價
定量評價,選用精確度Precision、召回率Recall、評價F-measure 這3 個指標(biāo)用于評估模型的性能[19]。前兩者之間的取值范圍在0到1之間,數(shù)值越接近1,代表的查準(zhǔn)率或查全率越高,F(xiàn)-measure 是指前兩者的調(diào)和平均值。如公式(12)~(14)所示,其中TP是正確檢測為前景點個數(shù),TN是正確檢測為背景點個數(shù),F(xiàn)P是誤檢背景的前景點個數(shù),F(xiàn)N是誤檢前景的背景點個數(shù)。
表1列出了本文算法與文獻[18]、文獻[10]算法在3個樣本測試視頻的精確度Precision、召回率Recall、評價F-measure 指標(biāo)值對比。由表1 數(shù)據(jù)所示,本文算法的Precision、Recall 和F-measure 指標(biāo)值明顯高于文獻[18]和文獻[10]算法。
本文首先對運動目標(biāo)檢測的算法以及目前ViBe的改進方法進行介紹,在此基礎(chǔ)上提出融合改進三幀差分和ViBe 改進的運動目標(biāo)檢測算法,選擇在CDnet-2014數(shù)據(jù)集選用多擾動背景環(huán)境下進行有效測試。改進算法使用基于Canny 的三幀差分改進算法建立接近真實背景的背景模型,引入自適應(yīng)調(diào)節(jié)因子根據(jù)背景的復(fù)雜程度調(diào)整閾值,將其提取到的目標(biāo)與三幀差分算法結(jié)合提高目標(biāo)的完整性和準(zhǔn)確性。實驗結(jié)果表明,本文算法能夠在樹枝晃動、相機抖動和目標(biāo)體緩慢運動的背景環(huán)境下,得到完整和檢測準(zhǔn)確的運動目標(biāo),具有一定的實施性和有效性。