段鎖林,高仁洲,劉 福,劉毛毛,王一凡,潘禮正
1(常州大學(xué) 機(jī)器人研究所,江蘇 常州 213164)2(常州紡織服裝職業(yè)技術(shù)學(xué)院 機(jī)電工程學(xué)院,江蘇 常州 213164) E-mail:1099770202@qq.com
運(yùn)動(dòng)目標(biāo)檢測(cè)和視頻跟蹤問(wèn)題成為近幾年的一個(gè)研究熱點(diǎn),并且吸引了眾多研究者的目光,此后其在軍事和民用領(lǐng)域產(chǎn)生了廣泛的應(yīng)用前景.目標(biāo)檢測(cè)[1]是該技術(shù)的核心,也是下一步研究工作的基礎(chǔ)[2].目前主流的運(yùn)動(dòng)目標(biāo)檢測(cè)算法有:幀間差法、背景減除法和光流法三類.
近年來(lái),光流法[3]已成為了有吸引力和有價(jià)值的研究對(duì)象,該方法通過(guò)為圖像中的每個(gè)像素點(diǎn)初始化一個(gè)速度矢量,利用運(yùn)動(dòng)目標(biāo)與鄰域背景的速度矢量的差異性來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo)的位置.而在實(shí)際運(yùn)用過(guò)程中,光流法計(jì)算量大,且對(duì)噪聲敏感,因而不適用于實(shí)時(shí)處理.幀間差分法[4]通過(guò)確定相鄰兩幀或若干幀圖像之間像素灰度值之間的差值是否大于某一閾值來(lái)識(shí)別物體的運(yùn)動(dòng):如果差值的絕對(duì)值大于某一閾值,說(shuō)明存在運(yùn)動(dòng)目標(biāo),反之,不存在運(yùn)動(dòng)目標(biāo).幀間差分算法簡(jiǎn)單且對(duì)背景或光線的慢速變化不敏感,同時(shí)可根據(jù)幀序的移動(dòng)快速調(diào)整以適應(yīng)背景變化,對(duì)目標(biāo)運(yùn)動(dòng)的檢測(cè)靈敏度較高,但是當(dāng)目標(biāo)運(yùn)動(dòng)速度較快時(shí),會(huì)影響目標(biāo)區(qū)域的定位及其特征參數(shù)的準(zhǔn)確提取,且預(yù)定義閾值設(shè)置不準(zhǔn)確,容易造成誤判.背景減除法[5]通過(guò)將下一幀圖像與當(dāng)前背景模型進(jìn)行差分操作從而獲得運(yùn)動(dòng)目標(biāo)區(qū)域,該方法的關(guān)鍵在于背景模型的更新,自適應(yīng)的背景圖像更新方法會(huì)提高目標(biāo)檢測(cè)的準(zhǔn)確性及背景差分的效率.
由于背景減除法算法簡(jiǎn)單,易于實(shí)現(xiàn),因此在實(shí)際應(yīng)用中得到了廣泛的應(yīng)用.該方法首先要構(gòu)造場(chǎng)景的靜態(tài)背景模型[6].目前常用的背景建模方法有:高斯混合建模(GMM)[7]、碼本建模[8]以及ViBe算法[9].ViBe算法基于像素來(lái)建立背景模型,與其他背景建模算法相比,它具有更優(yōu)化的檢測(cè)結(jié)果,而且對(duì)硬件要求不高,所以其運(yùn)算速度有了很大提高.但是無(wú)論是原始的ViBe算法還是2012年M.Van發(fā)表的ViBe+算法[10]都沒(méi)有對(duì)運(yùn)動(dòng)目標(biāo)的陰影進(jìn)行去除.陰影也會(huì)隨著運(yùn)動(dòng)物體運(yùn)動(dòng)而移動(dòng),并且在前景檢測(cè)時(shí)被當(dāng)做前景誤檢測(cè)出來(lái),導(dǎo)致粘連、誤判等其他問(wèn)題.此外ViBe算法在目標(biāo)檢測(cè)中還會(huì)產(chǎn)生鬼影區(qū)域.鬼影區(qū)域指原本靜止的物體開始運(yùn)動(dòng),該物體所覆蓋的區(qū)域就會(huì)被錯(cuò)誤的檢測(cè)為運(yùn)動(dòng)的,這塊區(qū)域就會(huì)成為鬼影.為解決上述問(wèn)題,本文結(jié)合改進(jìn)的幀差法和改進(jìn)的ViBe,來(lái)去除運(yùn)動(dòng)目標(biāo)陰影和鬼影區(qū)域.
ViBe算法是背景減除法之一,它和傳統(tǒng)的背景建模方法不同,需要前幾幀圖像來(lái)構(gòu)建背景模型.它利用第一幀圖像就可以建立背景模型.同時(shí)該算法采用隨機(jī)選擇更新對(duì)應(yīng)的背景模型像素,因此既加快了計(jì)算速度,而且保持了較高的檢測(cè)精度,提高了抗干擾能力.算法總共分為三步:初始化背景,前景目標(biāo)檢測(cè),更新背景模型.算法的具體步驟如2.1節(jié)所示.
a)背景模型初始化
初始化第一幀圖像中每個(gè)像素點(diǎn)的背景模型.假設(shè)每個(gè)圖像中每個(gè)點(diǎn)的像素值及其相鄰點(diǎn)的像素值具有相同的空間分布.在這種假設(shè)情況下,對(duì)于任一像素點(diǎn)x,隨機(jī)選取其八鄰域中的像素值作為背景模型的樣本.為了確保背景模型遵守統(tǒng)計(jì)學(xué)規(guī)律,選取的鄰域要具有足夠大的范圍.當(dāng)獲取第一幀圖像時(shí),即t=0時(shí),該像素點(diǎn)模型的樣本為:
(1)
圖1 像素點(diǎn)分類Fig.1 Pixel point classification
式中,NG(x,y)為空域上相鄰的像素點(diǎn),f0(x,y)為點(diǎn)的(x,y)的像素值.在樣本的隨機(jī)選取過(guò)程中,NG(x,y)中的像素點(diǎn)(xi,yi)被選中的概率相同.
b)運(yùn)動(dòng)目標(biāo)區(qū)域檢測(cè)
后面的圖像序列與背景模型進(jìn)行差分.從第二幀開始,將新一幀圖像中每一個(gè)像素與采樣數(shù)組進(jìn)行比較,判斷該像素為前景還是背景,如圖1所示.
假設(shè)一個(gè)集合SR,它是鄰域像素點(diǎn)到當(dāng)前點(diǎn)的顏色距離小于R的集合:
SR={f(xi,yi)|dist(f(xi,yi),f(x,y))}
(2)
(3)
c)背景模型更新
ViBe算法的背景模型更新在時(shí)間和空間上都是隨機(jī)的.該算法采用無(wú)記憶策略來(lái)更新背景.當(dāng)一個(gè)像素點(diǎn)被檢測(cè)為背景時(shí),對(duì)該像素點(diǎn)及其鄰域點(diǎn)進(jìn)行更新.隨機(jī)選取N個(gè)背景模型之一將其設(shè)為PG.當(dāng)獲得下一幀圖像Pt時(shí),假如檢測(cè)到圖像Pt中的x點(diǎn)對(duì)應(yīng)的像素Pt(x)為背景時(shí),則需要更新PG,定義一個(gè)時(shí)間重采樣因子φ,Pt(x)以1/φ的概率同時(shí)更新進(jìn)入該像素的背景模型和其鄰域像素的背景模型中,此抽取過(guò)程的隨機(jī)性體現(xiàn)在時(shí)間上.用像素點(diǎn)Pt(x)替換像素點(diǎn)PG(x)八鄰域中隨機(jī)的一個(gè)像素點(diǎn)PG(r),這顯示了模型更新時(shí),在空間上具有隨機(jī)性.
由上述可知,更新過(guò)程即是用Pt(x)來(lái)隨機(jī)替換PG(x)和其八個(gè)鄰域.利用這個(gè)更新方法,可以消除因?yàn)椴杉囊曨l中有細(xì)微抖動(dòng)例如:攝像機(jī)抖動(dòng)、目標(biāo)微動(dòng)等而引起的重影和錯(cuò)誤,從而使檢測(cè)到的運(yùn)動(dòng)目標(biāo)更精確.
ViBe算法背景建模優(yōu)勢(shì)明顯但也具有缺點(diǎn).算法的優(yōu)點(diǎn)在于原理簡(jiǎn)單、計(jì)算量小、實(shí)時(shí)性高等.算法存在的缺點(diǎn)主要有陰影前景[11]、鬼影[12]和運(yùn)動(dòng)目標(biāo)不完整等問(wèn)題.產(chǎn)生陰影前景問(wèn)題的本質(zhì)原因[13]是:運(yùn)動(dòng)目標(biāo)遮擋住了光源,投影區(qū)域因?yàn)楣饩€被遮擋使得區(qū)域顏色比周圍區(qū)域更暗顏,即陰影區(qū)域與背景區(qū)域顏色值的歐式距離差異較大,因此在進(jìn)行背景差分時(shí)被錯(cuò)誤的檢測(cè)為運(yùn)動(dòng)前景.而鬼影產(chǎn)生的原因是視頻第一幀中存在運(yùn)動(dòng)目標(biāo).因此,為了不影響后續(xù)目標(biāo)跟蹤、目標(biāo)分類與行為識(shí)別等的準(zhǔn)確性與魯棒性,需要對(duì)上述不足進(jìn)行改進(jìn).
相鄰兩幀差分法可以方便快捷地獲取運(yùn)動(dòng)目標(biāo),但提取出的目標(biāo)內(nèi)部像素較少,同時(shí)還存在明顯的雙影和空洞現(xiàn)象.三幀差分法改進(jìn)了兩幀差分法,有效地抑制了雙影現(xiàn)象,但很難檢測(cè)到目標(biāo)之間的重疊部分,仍有空洞存在,且檢測(cè)的目標(biāo)輪廓不準(zhǔn)確.為了解決上述方法的不足,本文將連續(xù)六幀圖像進(jìn)行差分,并通過(guò)最大類間方差法[14]確定的動(dòng)態(tài)閾值校正,進(jìn)而消除空洞現(xiàn)象.為了進(jìn)一步提取完整的目標(biāo)輪廓,同時(shí)采用Sobel邊緣檢測(cè)算子提取目標(biāo)邊緣特征,然后結(jié)合六幀圖像差分得到完整的目標(biāo)邊緣.原理如下:
在視頻序列中,連續(xù)讀取六幀視頻圖像Ik(x,y),Ik+1(x,y),Ik+2(x,y),Ik+3(x,y),Ik+4(x,y),Ik+5(x,y),按順序進(jìn)行配對(duì)差分和二值化處理,差分公式為:
d1k=|Ik(x,y)-Ik+1(x,y)|
(4)
d2k=|Ik+2(x,y)-Ik+3(x,y)|
(5)
d3k=|Ik+4(x,y)-Ik+5(x,y)|
(6)
上式中,dik,i=1,2,3分別表示兩兩差分后的圖像.然后使用閾值處理三個(gè)幀差圖像,并進(jìn)行二值化處理.處理公式為:
(7)
(8)
(9)
(10)
(11)
(12)
該公式中,λ表示抑制系數(shù),在實(shí)際應(yīng)用中取2;M×N表示檢測(cè)視頻幀的分辨率,分辨率等于該幀圖像的像素總數(shù);T為分割前景與背景的最佳閾值,值由最大類間方差法來(lái)確定,使前景和背景的區(qū)分度更明顯.ΔT1,ΔT2,ΔT3是動(dòng)態(tài)閾值,其值隨光線的變化而變化,光線變化越劇烈,值越大.因此,在最佳閾值后加上動(dòng)態(tài)閾值有效解決了光線變化帶來(lái)的干擾.
對(duì)二值化后的差分圖像bik,i=1,2,3可以通過(guò)公式(13)的邏輯與操作來(lái)獲得運(yùn)動(dòng)目標(biāo)的輪廓,從而獲得運(yùn)動(dòng)目標(biāo)的前景區(qū)域.
bk=b1k∩b2k∩b3k
(13)
(14)
式(14)中,Dk=0表示背景區(qū)域,Dk=1表示前景區(qū)域.
(15)
(16)
(17)
(18)
再將圖像Dk與目標(biāo)邊緣輪廓S進(jìn)行“或”運(yùn)算,從而得到完整目標(biāo)結(jié)果M:
M=Dk∪S
(19)
本文提出的改進(jìn)ViBe運(yùn)動(dòng)目標(biāo)檢測(cè)算法融合改進(jìn)三幀差法來(lái)進(jìn)行鬼影抑制以及基于YUV分量比率來(lái)去除目標(biāo)陰影.算法流程如圖2所示,將改進(jìn)的三幀差分圖像和ViBe差分圖像結(jié)合到邏輯運(yùn)算中,既可以消除幀差法出現(xiàn)的空洞現(xiàn)象,也能快速消除第一幀ViBe背景建模出現(xiàn)的鬼影現(xiàn)象.對(duì)于檢測(cè)出的前景圖像存在陰影的問(wèn)題,在YUV空間利用亮度信息設(shè)計(jì)陰影檢測(cè)模型,利用候選前景與背景的YUV分量變化比率來(lái)檢測(cè)陰影并去除陰影.
圖2 改進(jìn)算法流程Fig.2 Improved algorithm flow
ViBe背景建模使用第一幀作為初始幀來(lái)初始化背景模型,當(dāng)?shù)谝粠写嬖谶\(yùn)動(dòng)目標(biāo)時(shí),檢測(cè)結(jié)果會(huì)出現(xiàn)鬼影.產(chǎn)生鬼影主要有兩個(gè)原因:第一是初始化背景模型時(shí),視頻第一幀中含有運(yùn)動(dòng)目標(biāo)或者運(yùn)動(dòng)目標(biāo)從靜止?fàn)顟B(tài)開始運(yùn)動(dòng).因此只靠第一幀建立背景模型,雖然能使模型快速適應(yīng)背景的轉(zhuǎn)變,但不能完全區(qū)分背景像素點(diǎn)和前景像素點(diǎn),導(dǎo)致背景模型中可能含有前景像素點(diǎn),從而產(chǎn)生鬼影.
針對(duì)ViBe算法易出現(xiàn)鬼影問(wèn)題,在運(yùn)動(dòng)目標(biāo)檢測(cè)過(guò)程中,首先分別利用ViBe算法和改進(jìn)自適應(yīng)動(dòng)態(tài)閾值分割的幀差法獲得運(yùn)動(dòng)目標(biāo),記ViBe算法獲得的當(dāng)前幀前景圖為Pk,幀差法獲得的前景圖為Dk,并對(duì)兩幅圖像進(jìn)行比較,標(biāo)記出可能的“鬼影”區(qū)域.最后,根據(jù)標(biāo)記的像素?cái)?shù)量與設(shè)定的閾值進(jìn)行比較判定該區(qū)域是否為鬼影區(qū)域.具體過(guò)程如下:
利用改進(jìn)的三幀差法獲得運(yùn)動(dòng)目標(biāo)的前景區(qū)域.由于存在各類噪聲的干擾,因此在進(jìn)行上述操作后的二值前景圖中仍會(huì)存在一些白點(diǎn),本文通過(guò)形態(tài)學(xué)濾波去除這些噪聲,并通過(guò)連通性檢測(cè)來(lái)填充孔,以獲得最終的完整的檢測(cè)結(jié)果,詳細(xì)的形態(tài)學(xué)后處理算法如算法1所述,其中面積閾值是通過(guò)實(shí)驗(yàn)得到的.
算法1.
vector
findContours;
容器storage1盛放檢測(cè)到的連通區(qū)域;
for(inti=0;i if 第i個(gè)連通域的面積>15 將該區(qū)域放入到容器 storage2 else 丟棄該區(qū)域;} for(intj=0;j if 第j個(gè)連通域的面積15-85之間 drawContours;} 其次,利用ViBe算法創(chuàng)建背景模型,并使用自適應(yīng)閾值R(x)代替原始算法的固定的距離判定閾值,閾值大小與樣本集的方差σf成正比例關(guān)系.σf由公式(20)計(jì)算. (20) σf越大,表示背景噪聲越大,判定閾值應(yīng)該越大.這是因?yàn)樵谀承┣闆r下,如背景中樹葉的晃動(dòng),光線變化和水面波紋變化會(huì)干擾背景模型的建立,所以應(yīng)增大閾值來(lái)避免這些變化的干擾.自適應(yīng)閾值用公式(21)計(jì)算. R(x)=0.5×σf∈[20,40] (21) 同時(shí)在背景建模時(shí)為每個(gè)像素設(shè)置一個(gè)從零開始的計(jì)數(shù)器.使用自適應(yīng)距離閾值分割下一幀圖像得到前景區(qū)域Pk.這時(shí)前景區(qū)域可能會(huì)出現(xiàn)鬼影,因此利用公式(22)來(lái)判定鬼影區(qū)域. (22) 當(dāng)像素的計(jì)數(shù)值大于閾值N時(shí),將其判定為鬼影區(qū)域的像素,并將計(jì)數(shù)器重置為零,如公式(23)所示: (23) 由于運(yùn)動(dòng)目標(biāo)和鬼影具有相似的特點(diǎn),目標(biāo)區(qū)域的像素也會(huì)被標(biāo)記為鬼影,因此它不能被添加到計(jì)數(shù)器中,也就是說(shuō)閾值N應(yīng)該大于等于運(yùn)動(dòng)目標(biāo)和鬼影重合的幀數(shù).隨后將該像素值置為零如公式(24)所示: (24) 最后對(duì)所得到的候選前景圖像進(jìn)行中值濾波,從而在鬼影消除的同時(shí)去除噪點(diǎn). ViBe算法與其他的運(yùn)動(dòng)目標(biāo)檢測(cè)算法一樣也存在陰影問(wèn)題.由于運(yùn)動(dòng)陰影在檢測(cè)時(shí)會(huì)隨目標(biāo)一起運(yùn)動(dòng),所以往往會(huì)將陰影作為運(yùn)動(dòng)目標(biāo)的一部分而使得目標(biāo)發(fā)生形變,造成跟蹤、分類與識(shí)別精度下降,特別是當(dāng)多個(gè)目標(biāo)相距較近時(shí),陰影可能將這些目標(biāo)連接在一起,使得目標(biāo)分割不徹底,最終導(dǎo)致跟蹤失敗、誤分類和誤識(shí)別.因此,運(yùn)動(dòng)陰影消除在目標(biāo)檢測(cè)中有著非常重要的作用. 本文在上述提取出的候選前景圖像中先檢測(cè)出陰影,再去除陰影.本文陰影檢測(cè)模型是基于YUV色彩空間,因?yàn)樵赮UV空間下灰度圖像和彩色圖像轉(zhuǎn)換非常方便,即對(duì)顏色的亮度信息和色彩信息分離較為方便.因此處理圖像要比在RGB空間中下簡(jiǎn)單.公式(25)描述了YUV色彩空間與RGB色彩空間的轉(zhuǎn)換關(guān)系,即 (25) 在YUV空間中,Y分量可用于描述像素亮度信息,陰影區(qū)域變化很明顯,理想狀態(tài)下的UV兩種色差分量不隨光照變化而變化,但是,因?yàn)楣饩€傳感器存在偏差和圖像在采集傳輸、存儲(chǔ)過(guò)程中產(chǎn)生的隨機(jī)噪聲,U分量和V分量存在差異,即使相同亮度同樣存在一定的誤差.基于以上考慮,設(shè)計(jì)如公式(26)的陰影檢測(cè)模型,利用候選前景與背景的YUV分量變化比率來(lái)檢測(cè)陰影. (26) 式中,yF(i)、uF(i)、vF(i)和yB(i)、uB(i)、vB(i)分別表示前景像素和背景像素的YUV三分量;ay、au、av和by、bu、bv分別對(duì)應(yīng)前景的YUV分量和背景的YUV分量的判別閾值.假設(shè)前景像素符合公式(26),則判斷該像素為目標(biāo)的陰影,應(yīng)該與檢測(cè)前景分離. 在上述研究的基礎(chǔ)上,從CDW-2014數(shù)據(jù)庫(kù)中選取視頻序列進(jìn)行實(shí)驗(yàn).該數(shù)據(jù)庫(kù)包含31個(gè)視頻序列.實(shí)驗(yàn)設(shè)備基本配置:CPU為Intel(R)Core(TM)i5-4210H 2.89Ghz,內(nèi)存為8GB,Windows 64位操作系統(tǒng)的PC機(jī),軟件實(shí)現(xiàn)平臺(tái)為VS2013和OpenCV2.4.10.為了和原始ViBe算法做對(duì)比,本文改進(jìn)ViBe算法的參數(shù)選擇與原ViBe算法一致即:#min=2,也就是說(shuō)如果有兩個(gè)采樣點(diǎn)小于自適應(yīng)距離閾值R(x)就將該像素點(diǎn)判定為背景,否則為前景,采樣點(diǎn)個(gè)數(shù)N=20,重采樣因子φ=16.為驗(yàn)證改進(jìn)算法的目標(biāo)提取效果,本文采取了不同場(chǎng)景分別用不同算法做了去鬼影、去陰影和綜合性能分析. 從數(shù)據(jù)庫(kù)中選取了視頻highway.avi,進(jìn)行去除鬼影實(shí)驗(yàn),從視頻出現(xiàn)運(yùn)動(dòng)目標(biāo)時(shí)第進(jìn)行處理.對(duì)比實(shí)驗(yàn)效果如圖3所示.從圖中看出,三幀差法雖然鬼影消失的也較快,但檢測(cè)目標(biāo)不完整出現(xiàn)了明顯的空洞.混合高斯算法和原始ViBe算法明顯出現(xiàn)了鬼影,混合高斯算法經(jīng)過(guò)70幀處理之后鬼影消失,ViBe算法經(jīng)過(guò)大約200幀處理之后,鬼影才逐漸消失,這極大地影響了目標(biāo)檢測(cè)的效果.而本文通過(guò)ViBe算法結(jié)合幀差法經(jīng)過(guò)20幀左右就快速地去除了鬼影.實(shí)驗(yàn)結(jié)果表明,改進(jìn)的算法的檢測(cè)結(jié)果和實(shí)際場(chǎng)景相符合,同時(shí)鬼影去除較快,檢測(cè)效果較好. 圖3 各算法鬼影去除效果Fig.3 Ghost removal effect of each algorithm 為了驗(yàn)證本文的陰影檢測(cè)模型的有效性,本文選取LISA實(shí)驗(yàn)室的不同環(huán)境下的三組視頻數(shù)據(jù)作為實(shí)驗(yàn)數(shù)據(jù)集.對(duì)三組視頻序列進(jìn)行陰影檢測(cè),并通過(guò)手動(dòng)調(diào)整閾值達(dá)到最佳的陰影區(qū)分效果.檢測(cè)結(jié)果如圖4所示. 為了檢驗(yàn)本文的陰影檢測(cè)模型的效果,引入了陰影檢測(cè)率η、陰影識(shí)別率ξ和綜合指標(biāo)θ三個(gè)評(píng)測(cè)參數(shù),如公式(27)-公式(29)所示. (27) (28) (29) 式中,TP表示目標(biāo)(F)和陰影(S)檢測(cè)正確的像素?cái)?shù),FN表示目標(biāo)(F)和陰影(S)檢測(cè)錯(cuò)誤的像素?cái)?shù).η越高表明正確檢測(cè)為陰影的像素?cái)?shù)越多,檢測(cè)到的陰影中包含的真實(shí)前景部分少.ξ越高表示正確檢測(cè)為前景的像素?cái)?shù)多,包含的陰影部分少.θ表示算法的綜合性能.各組視頻的評(píng)價(jià)指標(biāo)結(jié)果如表1所示. 圖4 陰影檢測(cè)結(jié)果Fig.4 Shadow detection result 從表1中可以看出,通過(guò)候選前景和背景的YUV分量變化比率閾值的檢測(cè)方法能夠有效區(qū)分陰影和運(yùn)動(dòng)目標(biāo),陰影的檢測(cè)率可達(dá)到95%以上,且綜合性能指標(biāo)可達(dá)到92%以上. 表1 陰影檢測(cè)評(píng)價(jià)指標(biāo) 性能指標(biāo)Campuslabroomη97.0698.5298.56ξ89.2391.5194.12θ92.9894.8996.29 為了進(jìn)一步評(píng)估上述幾種算法的性能,采用fall.avi視頻圖像共1700幀和driveway.avi視頻圖像共1410幀作為樣本,fall.avi存在搖晃樹葉的噪聲干擾,driveway.avi存在光線變化的干擾.利用不同算法對(duì)視頻圖像fall.avi和driveway.avi進(jìn)行檢測(cè),檢測(cè)結(jié)果如圖5和圖6所示. 為了定量分析各算法的性能,定義如下性能評(píng)價(jià)指標(biāo): (30) (31) (32) 式中,DTP、DFP分別為正確檢測(cè)到的前景的像素?cái)?shù)和錯(cuò)誤檢測(cè)到的虛假前景的像素?cái)?shù);DFN為前景中被漏判為背景的像素的數(shù)量;DTN為正確檢測(cè)到的背景像素?cái)?shù).DPCC為分類正確率,表示的是正確檢測(cè)到的前景像素和背景像素占所有像素的比例,作為算法的整體性能指標(biāo).DFPR為誤報(bào)率,表示的是檢測(cè)到的錯(cuò)誤前景的比例.DFNR為假陰性率,表示漏判為背景的前景像素占背景像素?cái)?shù)的比列.DPCC越大,表明算法總體性能越好,DFPR和DFNR越小,表明算法檢測(cè)性能越佳. 圖5 Fall.avi檢測(cè)效果對(duì)比Fig.5 Fall.avi comparison of detection results CDW-2014數(shù)據(jù)庫(kù)的fall.avi視頻中,第263幀中存在運(yùn)動(dòng)目標(biāo),并將其作為視頻處理的第一幀,因?yàn)椤肮碛啊爆F(xiàn)象是由于第一幀中包含運(yùn)動(dòng)目標(biāo)而產(chǎn)生的.在此后的100幀分別統(tǒng)計(jì)個(gè)算法DPCC,DFPR和DFNR.圖7所示的是各算法的DPCC曲線.因?yàn)橐曨l中車輛的行進(jìn)速度較快,因此DPCC并沒(méi)有呈現(xiàn)出單調(diào)遞增的趨勢(shì),而是存在著一定的波動(dòng). 圖6 Driveway.avi前景檢測(cè)效果對(duì)比Fig.6 Driveway.avi detection effect comparison 從圖7中可以看出,在各算法的DPCC曲線中,本文算法的整體性能最好,平均單幀DPCC值相較于其它算法提高了9%-25%.此外,還根據(jù)檢測(cè)結(jié)果統(tǒng)計(jì)了各算法的DPCC,DFPR和DFNR的平均值如表2所示. 圖7 各算法的DPCC曲線Fig.7 DPCC curve of each algorithm 幀差法是通過(guò)對(duì)視頻中相鄰圖像做差分運(yùn)算來(lái)檢測(cè)運(yùn)動(dòng)目標(biāo),用前一幀圖像作為當(dāng)前幀的背景模型,其背景不積累,且更新速度塊,因此鬼影消失較快.混合高斯模型在一建立高斯分布模型時(shí)對(duì)權(quán)重進(jìn)行了歸一化,因此最先建立的模型其權(quán)重相對(duì)較大,因此當(dāng)目標(biāo)運(yùn)動(dòng)離開了原始位置后依然被判別為前景. 當(dāng)獲取到了更多的后續(xù)視頻幀時(shí), 此時(shí)更多的場(chǎng)景信息被高斯背景模型獲取到,之前檢測(cè)錯(cuò)誤的前景區(qū)域會(huì)過(guò)渡為背景.ViBe算法利用第一幀初始化背景模型,因此模型初始化非常快,但當(dāng)?shù)谝粠写嬖谶\(yùn)動(dòng)目標(biāo)時(shí),鬼影將伴隨模型的初始化而產(chǎn)生,原始ViBe算法未對(duì)鬼影做任何處理,為此原ViBe需要花費(fèi)很長(zhǎng)時(shí)間更新背景模型才能完成對(duì)鬼影的抑制.而本文改進(jìn)算法利用幀差法消除鬼影快的特點(diǎn),對(duì)產(chǎn)生的鬼影進(jìn)行了處理,從而使改進(jìn)算法能夠快速消除鬼影.從表2中可以看出,三幀差分法和本文算法鬼影消失的最快,原始ViBe算法鬼影消失的最慢,本文算法的鬼影消失速度是原始ViBe算法的將近十分之一.ViBe算法的DFPR和DFNR都相對(duì)較高,說(shuō)明了鬼影對(duì)ViBe算法的檢測(cè)效果影響較大,當(dāng)鬼影未消失,而之后的運(yùn)動(dòng)目標(biāo)與鬼影區(qū)域重疊時(shí),容易被判定為背景像素.本文算法的DFPR和DFNR的值最低,是因?yàn)楸疚牟粌H對(duì)鬼影區(qū)域進(jìn)行了抑制,還對(duì)目標(biāo)陰影區(qū)域進(jìn)行了去除,提高了檢測(cè)目標(biāo)的正確性. 表2 四種算法的性能比較 算法DPCCDFPRDFNR鬼影消失幀數(shù)三幀差分0.65060.08260.204720混合高斯算法0.80700.07150.213667ViBe0.81230.08970.1620190本文算法0.90230.05020.032521 表3 四種算法的平均每幀耗時(shí)比較 Table 3 Average time-consuming comparison of four algorithms 算法fall.avidriveway.avi三幀差分算法5442混合高斯算法610547ViBe3127本文算法6045 在上述檢測(cè)過(guò)程中,分別統(tǒng)計(jì)了四種算法的平均運(yùn)行時(shí)間,如表3所示. 從表3可以看出,由于混合高斯算法需要建立復(fù)雜的背景模型,因此比其他算法需要更長(zhǎng)的處理時(shí)間,實(shí)時(shí)性差.而三幀差法和ViBe算法的運(yùn)行時(shí)間相比混合高斯算法有較大的縮短.而本文算法因?yàn)槔昧烁倪M(jìn)的三幀差法,因此運(yùn)行時(shí)間雖略高ViBe,但相差無(wú)幾,可以滿足實(shí)時(shí)檢測(cè)的要求. 本文將改進(jìn)的三幀差分法和ViBe算法相結(jié)合,提出了一種改進(jìn)的運(yùn)動(dòng)目標(biāo)檢測(cè)算法.一方面,通過(guò)改進(jìn)幀差法獲得的前景和ViBe檢測(cè)的前景進(jìn)行邏輯運(yùn)算來(lái)判斷鬼影區(qū)域是否存在,若存在將其去除.另一方面,使用自適應(yīng)閾值解決背景中噪聲對(duì)ViBe算法背景建模的干擾.最后設(shè)計(jì)了陰影檢測(cè)模型,快速地去除了候選前景中的陰影,從而進(jìn)一步提高了算法的檢測(cè)效果.盡管如此,本文的算法仍存在缺陷,陰影檢測(cè)閾值會(huì)隨場(chǎng)景光線變化而改變,自適應(yīng)陰影檢測(cè)不能通過(guò)手動(dòng)設(shè)置閾值來(lái)實(shí)現(xiàn),下一步將對(duì)該問(wèn)題進(jìn)行改進(jìn).4.2 基于YUV分量變化比率的陰影去除
5 仿真結(jié)果與分析
5.1 去除鬼影仿真實(shí)驗(yàn)
5.2 陰影檢測(cè)實(shí)驗(yàn)及可行性分析
Table 1 Shadow detection evaluation index5.3 算法綜合性能分析
Table 2 Performance comparison of four algorithms6 結(jié)束語(yǔ)