薛培康, 杜紅棉, 王 瑋, 李若愚
(中北大學(xué)儀器科學(xué)與動態(tài)測試教育部重點實驗室, 太原 030051)
智能視頻監(jiān)控系統(tǒng)一般是指在沒有人為干預(yù)的情況下,利用計算機視覺技術(shù)對圖像序列進行自動分析和理解,對監(jiān)控場景中的變化進行檢測、定位和跟蹤,并在此基礎(chǔ)上分析和判斷目標(biāo)的行為,從而有效地協(xié)助相關(guān)人員處理問題[1]。傳統(tǒng)的視頻監(jiān)控以嵌入式系統(tǒng)為核心,通過網(wǎng)絡(luò)將攝像頭采集到的視頻序列傳輸給計算機,從而實現(xiàn)實時監(jiān)控[2-3]。但這些系統(tǒng)并不具備圖像處理和智能分析的能力?;贏RM的智能視頻監(jiān)控人臉檢測系統(tǒng),通過對人臉進行檢測來提高視頻監(jiān)控的性能。但是其并不具備定位和跟蹤的能力,相對來說智能化程度較低[4]。楊夏[5]設(shè)計的系統(tǒng)能較好地檢測和跟蹤到運動目標(biāo),但是該系統(tǒng)只能跟蹤單個目標(biāo),當(dāng)出現(xiàn)多個目標(biāo)時就會存在跟蹤丟失的問題。而實際的監(jiān)控場景通常比較復(fù)雜,視頻序列的質(zhì)量往往會受到噪聲、光照變化、多目標(biāo)運動以及遮擋等因素的影響[6]。
針對上述存在的問題,從算法和系統(tǒng)兩個角度對傳統(tǒng)視頻監(jiān)控做出改進,基于AM5708處理器設(shè)計并實現(xiàn)一種高性能的智能多目標(biāo)跟蹤監(jiān)控系統(tǒng)。前端攝像頭負(fù)責(zé)采集視頻序列,AM5708處理器做相應(yīng)算法處理,以太網(wǎng)負(fù)責(zé)信息傳輸,從而實現(xiàn)多目標(biāo)跟蹤。
智能多目標(biāo)跟蹤監(jiān)控系統(tǒng)的硬件主要包括嵌入式核心板、電源管理模塊、監(jiān)控攝像頭和高清媒體接口(high-definition multimedia interface,HDMI)顯示屏等。嵌入式核心板搭載TI公司生產(chǎn)的Sitara系列產(chǎn)品AM5708異構(gòu)多核處理器,該處理器集成了Cortex-A15 ARM內(nèi)核和C66x浮點DSP內(nèi)核。此外,核心板支持Linux、RTOS、Ubuntu、ROS操作系統(tǒng),并且具有很強的圖形計算能力和豐富的硬件可擴展結(jié)構(gòu)。外部電源輸入經(jīng)過電源管理芯片轉(zhuǎn)換成各個模塊需要的電壓,同時5 V鋰電池作為電源管理模塊的供電補充源,保證系統(tǒng)在斷電時也能正常工作。攝像頭采用標(biāo)準(zhǔn)USB寬動態(tài)相機模組,其輸入視頻刷新幀率最高可達30 FPS。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
系統(tǒng)在開機后進入工作狀態(tài),首先Cortex-A15接受來自攝像頭的圖像數(shù)據(jù),并對圖像進行預(yù)處理,消除環(huán)境噪聲的影響;然后Cortex-A15對經(jīng)過預(yù)處理的圖像進行運動前景提取和跟蹤,最后將跟蹤結(jié)果通過HDMI顯示屏進行實時顯示。此外,系統(tǒng)還可以將跟蹤到的目標(biāo)圖像幀和相應(yīng)的運動軌跡記錄到本地SD存儲卡中,用于后期的事件分析。
圖1 系統(tǒng)硬件結(jié)構(gòu)Fig.1 System hardware structure
為了在嵌入式硬件平臺上實現(xiàn)多目標(biāo)跟蹤的監(jiān)控系統(tǒng),就需要先搭建軟件開發(fā)環(huán)境[7],具體流程如下。
(1)建立交叉編譯環(huán)境。要編譯出能運行在ARM上的程序,必須要使用交叉編譯工具,現(xiàn)使用arm-linux-gcc-4.3.5版本。
(2)加載引導(dǎo)程序。U-Boot作為引導(dǎo)程序在系統(tǒng)上電后開始運行,完成初始化硬件及軟件資源的任務(wù),從而啟動操作系統(tǒng)。
(3)移植Linux系統(tǒng)內(nèi)核。內(nèi)核是系統(tǒng)的核心,它提供文件系統(tǒng)控制,實現(xiàn)多任務(wù)等功能。該部分主要包括內(nèi)核配置、內(nèi)核編譯和鏡像文件燒寫。采用的內(nèi)核版本是Linux2.6.35.7。
(4)構(gòu)建Linux文件系統(tǒng)。根文件里面包含了Linux系統(tǒng)正常運行所需要的各種庫文件和應(yīng)用程序。
跟蹤框架主要包括高斯混合背景模型檢測、卡爾曼濾波器預(yù)測跟蹤、匈牙利算法實現(xiàn)數(shù)據(jù)關(guān)聯(lián)以及遮擋處理。檢測部分首先通過對背景進行估計來建立背景模型,然后將當(dāng)前幀與所建背景模型進行作差,從而間接地分離出運動前景,最后對前景進行分割來得到跟蹤目標(biāo)。跟蹤部分則根據(jù)上一幀的跟蹤結(jié)果使用卡爾曼濾波器預(yù)測目標(biāo)在當(dāng)前幀的位置,然后將實際檢測結(jié)果和卡爾曼濾波器預(yù)測結(jié)果使用匈牙利匹配算法做數(shù)據(jù)關(guān)聯(lián),并根據(jù)最優(yōu)匹配來更新目標(biāo)的軌跡,最終實現(xiàn)運動目標(biāo)的檢測與跟蹤,其流程如圖2所示。
圖2 目標(biāo)檢測跟蹤流程Fig.2 Flow chart of target detection and tracking
3.1.1 算法原理
高斯混合模型[8]認(rèn)為視頻圖像中每一個像素點的像素值在時間軸上服從高斯分布。假設(shè)在一段時間里某個像素點的像素值分別為{X1,X2,…,Xt},那么根據(jù)這些像素值就可以用K個高斯分布的混合來表示該像素點的像素值分布情況。高斯混合模型定義t時刻像素值Xt屬于背景的概率為
(1)
式(1)中:K為高斯分布的數(shù)目;wi,t為與t時刻第i個高斯分布的平均值μi,t和協(xié)方差矩陣Σi,t相關(guān)聯(lián)的權(quán)重;η為高斯概率密度函數(shù),即
(2)
高斯模型在匹配過程中是將t時刻的每一個新像素值Xt與K個高斯分布依次進行匹配,匹配原則如式(3)所示。如果滿足條件,就需要按照式(4)~式(6)更新相應(yīng)高斯分布的權(quán)重、均值和方差。
|Xt-μi,t-1|<2.5σi,t-1
(3)
wi,t=(1-α)wi,t-1+αMi,t
(4)
μi,t=(1-ρ)μi,t-1+ρXt
(5)
(6)
式中:α為高斯混合模型學(xué)習(xí)率;對于匹配的像素,Mi,t=1,否則Mi,t=0;ρ為參數(shù)學(xué)習(xí)率,并且ρ=αη(Xt|μi,σi)。
3.1.2 算法改進
在高斯混合模型中均值和方差的更新速率決定了背景更新速率,而每個像素點對應(yīng)的高斯分布個數(shù)K表示了背景模型的細(xì)節(jié)程度。為了使高斯混合模型能根據(jù)實際環(huán)境做出自適應(yīng)調(diào)整,將從更新速率和高斯分布數(shù)兩個方面進行改進。改進后的算法流程如圖3所示。
圖3 改進的算法流程Fig.3 Flow chart of improved algorithm
(1)傳統(tǒng)高斯混合模型中設(shè)置了兩個不同的學(xué)習(xí)率來更新相應(yīng)參數(shù),而第二個學(xué)習(xí)率ρ中包含了大量乘法運算,每當(dāng)背景模型更新時處理器都會花費大量時間來進行系數(shù)運算,影響了硬件平臺的實時性。在模型更新過程中簡化了流程,將兩個學(xué)習(xí)率統(tǒng)一用α來表示。
(2)傳統(tǒng)高斯混合模型中高斯數(shù)K是固定的,當(dāng)觀測到的新像素值頻繁變化時,固定的高斯數(shù)并不足以估計背景;而當(dāng)觀測到的新像素值在一段時間內(nèi)保持恒定時,其所有高斯分布的參數(shù)都趨近于相同。因此,提出一種自適應(yīng)改變高斯數(shù)的背景建模方法,它可以增加或減少分布的數(shù)目來處理每個像素的變化。在模型匹配過程中,如果t時刻的像素值不能和任何高斯分布匹配,則增加一個高斯分布,其相應(yīng)的權(quán)重、均值和方差使用前K個高斯分布相應(yīng)參數(shù)的平均值來表示。對于匹配成功的高斯分布,則將它們兩兩進行比較,如果兩個高斯分布之間的差異小于一個閾值,則將這兩個高斯分布合并成一個。具體過程為
wc,t=(wa,t+wb,t)/2
(7)
(8)
(9)
卡爾曼濾波是一種最小化均方誤差的線性濾波方法,它在觀測方程和目標(biāo)狀態(tài)轉(zhuǎn)移方程的基礎(chǔ)上,使用迭代的方式對目標(biāo)的狀態(tài)進行預(yù)測和更新[9]??柭鼮V波的狀態(tài)方程和觀測方程為
Xt=AXt-1+Wt
(10)
Zt=HXt+Vt
(11)
式中:Xt和Xt-1表示t時刻和t-1時刻系統(tǒng)的狀態(tài);Zt表示t時刻系統(tǒng)的觀測狀態(tài)。A為狀態(tài)轉(zhuǎn)移矩陣;H為觀測矩陣;Wt為系統(tǒng)噪聲,滿足正態(tài)分布,其協(xié)方差矩陣為Q;Vt為觀測噪聲,同樣滿足正態(tài)分布,其協(xié)方差矩陣為R。而卡爾曼濾波的預(yù)測和更新方程[10]為
Xt|t-1=AXt-1|t-1+W
(12)
Pt|t-1=APt-1|t-1AT+Q
(13)
Xt|t=Xt|t-1+Kt(Zt-HXt|t-1)
(14)
Pt|t=Pt|t-1-KtHPt|t-1
(15)
Kt=Pt|t-1HT(HPt|t-1HT+R)-1
(16)
式(12)表示狀態(tài)預(yù)測方式,Xt-1|t-1表示上一時刻狀態(tài),Xt|t-1表示由上一時刻推出的當(dāng)前時刻狀態(tài);式(13)表示誤差協(xié)方差預(yù)測方式,Pt-1|t-1表示上一時刻估計誤差協(xié)方差,Pt|t-1表示由上一時刻推出的當(dāng)前時刻估計誤差協(xié)方差;式(14)表示目標(biāo)狀態(tài)優(yōu)化方式,Xt|t表示當(dāng)前時刻狀態(tài),Kt表示當(dāng)前時刻最優(yōu)卡爾曼增益;式(15)表示誤差協(xié)方差優(yōu)化方式,Pt|t表示當(dāng)前時刻估計誤差協(xié)方差;式(16)表示卡爾曼增益計算方式。
一般情況下,由于相鄰兩幀時間間隔較小,可以假設(shè)同一個目標(biāo)在相鄰兩幀之間做勻速直線運動。使用運動目標(biāo)的位置x、y坐標(biāo)、x、y方向速度,目標(biāo)矩形框面積S和面積變化率vs來表示其當(dāng)前狀態(tài)X(k)。使用運動目標(biāo)的位置x、y坐標(biāo)和尺寸信息表示觀測向量Z(k)。因此X(k)和Z(k)可用下式表示為
(17)
Z(k)=[xk,yk,s,vs]
(18)
由牛頓力學(xué)方程得
(19)
(20)
對于y方向上的遞推與x方向一樣。目標(biāo)矩形框面積S和面積變化率vs與時間t的關(guān)系為
sk=sk-1+vst
(21)
vs(t)=vs(t-1)
(22)
因此,系統(tǒng)的狀態(tài)轉(zhuǎn)移矩陣A為
(23)
觀測矩陣H為
(24)
系統(tǒng)噪聲協(xié)方差矩陣Q為
(25)
觀測噪聲協(xié)方差矩陣R為
(26)
確定卡爾曼濾波器的參數(shù)A、H、Q、R后就可以根據(jù)后續(xù)的檢測信息對運動目標(biāo)的狀態(tài)進行預(yù)測和估計。
多目標(biāo)跟蹤是基于檢測環(huán)節(jié)進行的,而圖像每一幀都有可能檢測到多個目標(biāo),為了確保檢測目標(biāo)和跟蹤目標(biāo)之間的對應(yīng)關(guān)系,就必須要進行數(shù)據(jù)關(guān)聯(lián),通過目標(biāo)之間的質(zhì)心距離和空間顏色直方圖構(gòu)建關(guān)聯(lián)矩陣。假設(shè)當(dāng)前跟蹤目標(biāo)數(shù)量為m,檢測目標(biāo)數(shù)量為n。檢測目標(biāo)和跟蹤目標(biāo)之間的質(zhì)心距離即為歐氏距離,計算公式[11]為
(27)
式(27)中:a1、a2分別為檢測目標(biāo)和跟蹤目標(biāo)的質(zhì)心位置。而質(zhì)心距離對應(yīng)的關(guān)聯(lián)矩陣D為
(28)
式(28)中:di,j表示第i(i=1,2,…,n)個檢測目標(biāo)和第j(j=1,2,…,m)個跟蹤目標(biāo)間的歐氏距離。顏色直方圖統(tǒng)計了一幅圖像中不同顏色的分布情況,但是卻忽略了某像素在圖像中的位置信息。為了使顏色直方圖能更準(zhǔn)確地表示目標(biāo)之間的相似度,將目標(biāo)的空間信息引入。采用區(qū)域劃分的方法,將目標(biāo)劃分成多個區(qū)域,分別統(tǒng)計各個區(qū)域的顏色直方圖特征,最后將所有的顏色直方圖特征連接成一個向量。巴氏距離的計算公式[12]為
(29)
式(29)中:A和B為兩個待比較的直方圖;N為劃分的區(qū)域。而空間顏色直方圖的關(guān)聯(lián)矩陣P為
(30)
式(30)中:pi,j表示第i(i=1,2,…,n)個檢測目標(biāo)和第j(j=1,2,…,m)個跟蹤目標(biāo)間的巴氏距離。為了使跟蹤算法魯棒性更好,基于兩種特征的關(guān)聯(lián)矩陣構(gòu)建融合矩陣M,計算方法為
M=βD+(1-β)P
(31)
式(31)中:實數(shù)β是融合系數(shù),它的取值范圍為0到1。
在跟蹤目標(biāo)的過程中往往會出現(xiàn)不同程度的遮擋而導(dǎo)致跟蹤失敗的情況,如何在發(fā)生遮擋時保證跟蹤的準(zhǔn)確性是必須要考慮的問題,通過監(jiān)測歐式距離的變化來判斷遮擋。剛開始發(fā)生遮擋時,算法具有魯棒性,歐式距離小于設(shè)定的閾值,則繼續(xù)使用算法進行跟蹤;當(dāng)遮擋面積不斷變大時,歐式距離會不斷增大,這時采用卡爾曼濾波器預(yù)測結(jié)果維持跟蹤;當(dāng)目標(biāo)被完全遮擋時,歐式距離已經(jīng)增加到無窮大,此時算法將啟動計數(shù)器進行計數(shù),若遮擋時間沒有超過算法設(shè)定的計數(shù)上限值,則繼續(xù)使用卡爾曼濾波器預(yù)測結(jié)果進行跟蹤,否則認(rèn)為該目標(biāo)已經(jīng)完全消失。
實驗分別在室內(nèi)和室外兩種環(huán)境下進行。算法在檢測到運動目標(biāo)后將會給每一個目標(biāo)設(shè)定一個標(biāo)簽,并為每個成功跟蹤的目標(biāo)隨機生成一種顏色的軌跡,由此可以直觀地分辨出跟蹤成功的多個目標(biāo)。算法在嵌入式平臺上跟蹤多目標(biāo)的結(jié)果如圖4所示。在系統(tǒng)開始運行的非穩(wěn)態(tài)時間段內(nèi),由于目標(biāo)的運動信息不夠充分,算法會把監(jiān)控場景中的擾動誤檢成目標(biāo),但是隨著檢測模型的不斷修正,算法的檢測性能不斷提升,最終實現(xiàn)了只對運動目標(biāo)的檢測和跟蹤。此外,算法還將運動目標(biāo)的所有運動軌跡記錄下來,這將為后續(xù)的數(shù)據(jù)處理等操作提供有力的支撐。由于實驗場地和攝像頭視角的限制,本次實驗?zāi)軌蛴行Ц櫟降倪\動目標(biāo)數(shù)量為6個,實驗結(jié)果如圖5所示。
由于實驗當(dāng)天室外光照比較強烈,攝像頭出現(xiàn)曝光過度的情況,鑒于此類情況的時常性,算法提出利用自適應(yīng)高斯混合模型,根據(jù)實際環(huán)境來修正相應(yīng)參數(shù),通過實驗驗證能夠較好地消除光照變化對算法性能的影響。圖6中運動目標(biāo)被停在路邊的汽車遮擋,但該目標(biāo)的運動軌跡在遮擋前后保持紫色標(biāo)簽,此時說明該運動目標(biāo)的標(biāo)簽沒有因為遮擋而被算法判定為新的目標(biāo)而重新分配。故有結(jié)論:場景中目標(biāo)的運動不會受到障礙物遮擋的影響。圖7中的1號目標(biāo)在運動過程中與2號目標(biāo)相遇并且兩個目標(biāo)出現(xiàn)相互遮擋的情況,但1號目標(biāo)的運動軌跡保持紫色標(biāo)簽,同時這也說明在跟蹤過程中算法給1號目標(biāo)設(shè)定的標(biāo)簽沒有發(fā)生改變。故有結(jié)論:目標(biāo)的運動不會受到障礙物遮擋以及物體相遇、相互遮擋的影響。
圖4 室內(nèi)多目標(biāo)跟蹤及軌跡記錄Fig.4 Indoor multi-target tracking and trajectory recording
圖6 室外目標(biāo)被障礙物遮擋Fig.6 Outdoor targets are blocked by obstacles
圖7 室外目標(biāo)相互遮擋Fig.7 Mutual occlusion of outdoor targets
由于嵌入式平臺的硬件資源有限,為了有效評估本文算法在嵌入式平臺上的性能,算法時間復(fù)雜度是必須要重點考慮的指標(biāo),采用幀率來進行衡量[13]。測試數(shù)據(jù)為攝像頭采集的連續(xù)視頻幀,每幀分辨率為640×480。由于監(jiān)控場景和目標(biāo)的運動速度相對穩(wěn)定,每1 s內(nèi)嵌入式平臺將維持穩(wěn)定的運行幀率,因此可以近似地認(rèn)為1 s內(nèi)每一幀的處理速率相同。通過截取50 s視頻序列,分別統(tǒng)計每1 s內(nèi)嵌入式平臺處理完成的圖片幀數(shù),選定50幀圖像進行幀率對比,結(jié)果如圖8所示。由圖8可知,算法在嵌入式平臺的平均運行幀率保持在18幀/s,由于幀率高于16 FPS時,視頻將被生理性人眼判定為連貫穩(wěn)定運行,因此滿足系統(tǒng)實時性的要求。
圖8 嵌入式平臺實時幀率Fig.8 Real-time frame rate of the embedded platform
利用AM5708處理器設(shè)計了一種智能多目標(biāo)跟蹤監(jiān)控系統(tǒng)?;诟倪M的自適應(yīng)高斯混合模型提高了算法檢測準(zhǔn)確率,利用卡爾曼濾波和匈牙利算法解決了多目標(biāo)跟蹤問題和遮擋問題,改善了視頻監(jiān)控在復(fù)雜場景下的跟蹤能力。經(jīng)過實驗測試,在光照變化、多目標(biāo)運動和目標(biāo)遮擋的情況下,算法都能準(zhǔn)確檢測和跟蹤到運動目標(biāo),同時系統(tǒng)的實時性和抗干擾性良好。