喻丁玲, 楊國(guó)亮, 龔家仁
(江西理工大學(xué) 電氣工程與自動(dòng)化學(xué)院,江西 贛州 341000)
近年來,移動(dòng)攝像機(jī)在生活中應(yīng)用的非常普遍,在現(xiàn)代智能家居或安全防范中起著很重要的作用,所以高精度檢測(cè)目標(biāo)是非常必要的。移動(dòng)攝像機(jī)由于鏡頭的移動(dòng),視頻背景每一幀背景之間的相關(guān)性不是那么強(qiáng),所以運(yùn)動(dòng)目標(biāo)檢測(cè)的準(zhǔn)確性產(chǎn)生影響。
魯棒主成分分析(robust principal component anahysis,RPCA)[1]由于其本身的優(yōu)勢(shì)在計(jì)算機(jī)視覺的很多工作中得到了應(yīng)用。然而,它只在靜態(tài)背景下能充分發(fā)揮其優(yōu)勢(shì),考慮到現(xiàn)實(shí)環(huán)境的背景在本質(zhì)上并不總是靜態(tài)的,物體的運(yùn)動(dòng)也不勻速。為了克服傳統(tǒng)RPCA模型中的不足,許多研究[2~4]都在RPCA模型的基礎(chǔ)上進(jìn)行修改,并取得了較好的效果。在此基礎(chǔ)上,文獻(xiàn)[5~8]將全變分(total variation,TV)正則化引入到稀疏性約束中,可以對(duì)視頻的前景空間進(jìn)行更有效的建模。隨著視頻檢測(cè)的數(shù)據(jù)量越來越大,大量的研究[9~13]從二維轉(zhuǎn)向三維,在張量模型上進(jìn)行優(yōu)化求解并取得了較好的效果。但上述采用張量的分解方法都是基于矩陣分解問題的泛化,此外,大多數(shù)增量張量子空間學(xué)習(xí)方法都將矩陣奇異值分解應(yīng)用于展開矩陣,這無疑增大了計(jì)算復(fù)雜度。低秩矩陣恢復(fù)模型在處理視頻序列時(shí)通常將三維數(shù)據(jù)排列為二維觀測(cè)矩陣再進(jìn)行分解,這種壓縮[14]形式可能會(huì)破壞數(shù)據(jù)的原始結(jié)構(gòu)。
張量可以更全面地表示數(shù)據(jù)各維度之間存在的結(jié)構(gòu)聯(lián)系信息,所以本文用向量和矩陣的高階推廣來表示數(shù)據(jù),從而達(dá)到比RPCA模型更好的恢復(fù)效果??紤]到運(yùn)動(dòng)目標(biāo)檢測(cè)對(duì)檢測(cè)實(shí)時(shí)性的要求很高,所以,采用在線隨機(jī)張量分解(online stochastic tensor decomposition,OSTD)的優(yōu)化方法實(shí)時(shí)更新,結(jié)合小樣本批處理初始化縮小基矩陣大小,從而提高初始化效率,達(dá)到提升檢測(cè)效率的目的。
假設(shè)Y=RI1×I2×I3是一個(gè)輸入的三階張量,Y中含有外部干擾,將張量數(shù)據(jù)分為低秩張量部分(背景)X和稀疏前景E之和,Y=X+E,所以,張量數(shù)據(jù)通過凸優(yōu)化可寫成如式(1)的形式
(1)
(2)
(3)
視頻前景中的移動(dòng)物體在連續(xù)幀之間是連續(xù)的,并且每幀的移動(dòng)物體在空間域的局部區(qū)域也是平滑的,這種先驗(yàn)稱為視頻前景的時(shí)空連續(xù)性,將各向異性全變分正則化施加于U,可以實(shí)現(xiàn)對(duì)前景平滑度的正則化,各向異性TV[14]正則化的定義為
(4)
式中 (Dhu,Dvu,Dtu)T為l1或l2,1范數(shù),本文用‖Du‖2,1為U的各向異性TV范數(shù)。由于本文研究環(huán)境復(fù)雜,要充分考慮到稀疏前景矩陣不僅包含運(yùn)動(dòng)目標(biāo),而且還包含動(dòng)態(tài)背景,故在稀疏前景部分令E=U。結(jié)合前文所述,使用TV正則化約束稀疏前景部分,所以,本文的運(yùn)動(dòng)目標(biāo)檢測(cè)模型如下
(5)
式中λ1,λ2為平衡參數(shù)因子,通過引入輔助變量M,式(5)可以等價(jià)地重新表示為
(6)
文獻(xiàn)[9] 選用的初始化策略是手動(dòng)定義初始化矩陣L0的大小,然后通過隨機(jī)生成的方法來初始化,但這樣的初始化會(huì)根據(jù)不同的場(chǎng)景進(jìn)行改變,導(dǎo)致算法精度降低和運(yùn)行時(shí)間長(zhǎng)。通過研究L的性質(zhì)發(fā)現(xiàn),可以利用同樣大小的張量數(shù)據(jù)子矩陣的低秩張量部分代替低維子空間的基來解決上述問題,所以,本文選用的初始化策略是將張量數(shù)據(jù)的前q幀作為一個(gè)子矩陣,然后通過小樣本批處理方法求解L0來達(dá)到精確初始化的目的。具體的求解可以通過2.2節(jié)中的算法實(shí)現(xiàn)。
首先對(duì)基矩陣進(jìn)行初始化,選取部分幀作為初始化樣本,再對(duì)基矩陣進(jìn)行批處理初始化,本文選用的初始化方法是非精確增廣拉格朗日乘子法
(7)
式中M∈Rp×q為由視頻序列Y的前q張圖片組成的,q為樣本維數(shù),M可分為低秩張量T和稀疏張量H之和,采用增廣拉格朗日函數(shù)法求解如下
Lμ(T,H,Y,μ)=‖T‖*+λ‖H‖1+
(8)
利用交替方向法(ADMM),固定其它變量值為常數(shù),每次只求出一個(gè)變量的最小值,從而得到近似解
(9)
通過求解式(8)和式(9)就可以得到低秩張量T,這里T被近似看成L0。接下來求解式(10)就可以得到本文的最優(yōu)化解
(10)
(11)
最后,給出了在t時(shí)刻更新的多維子空間張量X的i階基Li矩陣的目標(biāo)函數(shù)lt(L)
(12)
在這個(gè)過程中,對(duì)基矩陣部分系數(shù)r和稀疏前景部分的系數(shù)m進(jìn)行優(yōu)化,使損失最小化。求解式(6)、式(10)~式(12)便能獲得張量數(shù)據(jù)序列的低秩張量部分和前景部分。
本文算法流程如下:
算法1OSTD和TV正則化算入:N階張量數(shù)據(jù)Y=RI1×I2…IN
fort=1︰ndo(訪問每個(gè)樣本)
fori=1︰ndo
λ2‖m‖1
(13)
R(︰,t)←rt.計(jì)算每第i階下At和Bt的累加矩陣
(14)
調(diào)用算法3更新Lt
(15)
End
算法2基矩陣初始入:初始化基矩陣M∈Rp×r,
H0=0,μ0>0,ρ>1,k=0,λ
While not convergence do
(16)
Dk+1=USμ-k(∑)VT
(17)
(18)
Yk+1=Y+μk(M-Dk+1-Hk+1]
(19)
將μk更新到μk+1,k←k+1
End while
L0=Dk
輸出:L0
算法3基矩陣更入L=[L1,…,Lr]∈Rp×r,A=[a1,…,ar]∈Rr×r
B=[m1,…,mr]∈Rp×r,←A+λ1I
forj=1︰rdo(訪問L的每一列)
更新基矩陣L
(20)
End for
輸出:L
通過算法1所示的方法使目標(biāo)函數(shù)最小化;通過算法2進(jìn)行基矩陣初始化操作,得到初始化基矩陣L0;按算法3對(duì)基矩陣L進(jìn)行更新;最后重復(fù)算法迭代直到達(dá)到迭代次數(shù)或者所有樣本完成計(jì)算。
實(shí)驗(yàn)在MATLAB 2018環(huán)境下實(shí)現(xiàn),所選用的計(jì)算機(jī)為64位操作系統(tǒng)的筆記本電腦,8GB RAM,電腦處理器為Intel?CoreTMi5—8250U CPU@1.60 GHz 四核。選用了DAVIS數(shù)據(jù)集,DAVIS 數(shù)據(jù)集是典型的移動(dòng)相機(jī)拍攝畫面,包含50個(gè)不同的視頻序列,每幀分辨率為854×480,每個(gè)序列都有給出了前景真實(shí)值。為了避免數(shù)據(jù)覆蓋或丟失所有測(cè)試視頻選用連續(xù)的20~40幀圖像進(jìn)行檢測(cè)。
圖1對(duì)比了三種其他算法和本文算法的檢測(cè)效果圖,選用的是DAVIS 數(shù)據(jù)集上4種不同序列,在相同條件下,將本文算法與近期其他三種同類方法(DNLRL1TV[8],OSTD[12],TUCKER[11])進(jìn)行對(duì)比。第一行(a)是kite序列上的2th,第二行(b)是carround序列上的10th,第三行(c)是paragliding序列上的16th,第四行(d)為tennis序列上的26th,最后一行(e)是BMX-bumps序列上的29th;第一列到最后一列分別為:當(dāng)前幀、Ground Truth、本文算法、DNLRL1TV算法、OSTD算法、TUCKER算法檢測(cè)結(jié)果。從檢測(cè)圖1中可以看出,本文提出的方法檢測(cè)出的運(yùn)動(dòng)目標(biāo)更加完整,與真實(shí)前景值較為接近,在采用在線優(yōu)化方法后能有效對(duì)背景變化實(shí)時(shí)更新,結(jié)合全變分正則化,始終能從移動(dòng)的視頻中對(duì)動(dòng)態(tài)場(chǎng)景進(jìn)行準(zhǔn)確的目標(biāo)檢測(cè)。DNLRL1TV算法也能檢測(cè)出較為完整的運(yùn)動(dòng)目標(biāo),但去噪性能較差,其他兩種算法均錯(cuò)誤地將一定的背景部分檢測(cè)為前景目標(biāo),準(zhǔn)確性和去噪性能差。
圖1 不同算法檢測(cè)效果
為了證明本文采用的初始化策略能有效提高檢測(cè)速度,分別比較了上述4種算法在不同的5個(gè)序列上每幀的運(yùn)行時(shí)間,如表1所示。本文方法、OSTD、DNLRL1TV、TUCKER算法的平均每幀處理時(shí)間分別為1.97,2.16,4.20,4.43 s。從每幀處理時(shí)間上分析本算法基本能滿足檢測(cè)類算法對(duì)運(yùn)行速度的要求,而且檢測(cè)的效果更佳。
表1 每幀處理時(shí)間 s
用召回率、準(zhǔn)確率和F-measure值來定量分析,令TP為準(zhǔn)確檢測(cè)出的前景部分的像素?cái)?shù)目,TN為檢測(cè)結(jié)果中正確檢測(cè)出的背景部分像素,F(xiàn)N為被誤檢為前景的背景像素?cái)?shù)目,F(xiàn)P為被誤檢的前景點(diǎn)像素?cái)?shù)目,TP+FP為檢測(cè)目標(biāo)中的所有前景像素?cái)?shù)目,TP+FN為真實(shí)前景像素?cái)?shù)目。則本文采用的值指標(biāo)表示為:召回率R=TP/(TP+FN);F-measure值F=2×P×R/(P+R);準(zhǔn)確率P=TP/(TP+FP)。
表2為幾種算法基于F-measure、召回率、準(zhǔn)確率這三項(xiàng)指標(biāo)來定量分析本文算法的性能,表中分別用F,R,P表示。F值越大,表明檢測(cè)到的前景區(qū)域與地面真實(shí)前景區(qū)域越接近。
表2 各種算法的P,R,F值
本文通過采用初始化策略提高了初始化效率的同時(shí)還縮小了基矩陣大小,達(dá)到提高檢測(cè)精度的目的。采用在線優(yōu)化方法實(shí)現(xiàn)實(shí)時(shí)優(yōu)化,能有效解決移動(dòng)攝像機(jī)拍攝的視頻背景幀變化的問題。在稀疏前景部分利用TV正則化約束目標(biāo)的空間性和保持邊緣的完整,再不斷更新,直到達(dá)到設(shè)定的迭代次數(shù)或所有樣本計(jì)算已經(jīng)完成。并在移動(dòng)攝像機(jī)視頻序列DAVIS上進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明:本文方法不僅能有效檢測(cè)出運(yùn)動(dòng)目標(biāo),而且保持了較快的運(yùn)行速度,為移動(dòng)視頻的實(shí)時(shí)處理提供了參考。