薛培康, 杜紅棉, 王 瑋, 李若愚
(中北大學儀器科學與動態測試教育部重點實驗室, 太原 030051)
智能視頻監控系統一般是指在沒有人為干預的情況下,利用計算機視覺技術對圖像序列進行自動分析和理解,對監控場景中的變化進行檢測、定位和跟蹤,并在此基礎上分析和判斷目標的行為,從而有效地協助相關人員處理問題[1]。傳統的視頻監控以嵌入式系統為核心,通過網絡將攝像頭采集到的視頻序列傳輸給計算機,從而實現實時監控[2-3]。但這些系統并不具備圖像處理和智能分析的能力?;贏RM的智能視頻監控人臉檢測系統,通過對人臉進行檢測來提高視頻監控的性能。但是其并不具備定位和跟蹤的能力,相對來說智能化程度較低[4]。楊夏[5]設計的系統能較好地檢測和跟蹤到運動目標,但是該系統只能跟蹤單個目標,當出現多個目標時就會存在跟蹤丟失的問題。而實際的監控場景通常比較復雜,視頻序列的質量往往會受到噪聲、光照變化、多目標運動以及遮擋等因素的影響[6]。
針對上述存在的問題,從算法和系統兩個角度對傳統視頻監控做出改進,基于AM5708處理器設計并實現一種高性能的智能多目標跟蹤監控系統。前端攝像頭負責采集視頻序列,AM5708處理器做相應算法處理,以太網負責信息傳輸,從而實現多目標跟蹤。
智能多目標跟蹤監控系統的硬件主要包括嵌入式核心板、電源管理模塊、監控攝像頭和高清媒體接口(high-definition multimedia interface,HDMI)顯示屏等。嵌入式核心板搭載TI公司生產的Sitara系列產品AM5708異構多核處理器,該處理器集成了Cortex-A15 ARM內核和C66x浮點DSP內核。此外,核心板支持Linux、RTOS、Ubuntu、ROS操作系統,并且具有很強的圖形計算能力和豐富的硬件可擴展結構。外部電源輸入經過電源管理芯片轉換成各個模塊需要的電壓,同時5 V鋰電池作為電源管理模塊的供電補充源,保證系統在斷電時也能正常工作。攝像頭采用標準USB寬動態相機模組,其輸入視頻刷新幀率最高可達30 FPS。系統硬件結構如圖1所示。
系統在開機后進入工作狀態,首先Cortex-A15接受來自攝像頭的圖像數據,并對圖像進行預處理,消除環境噪聲的影響;然后Cortex-A15對經過預處理的圖像進行運動前景提取和跟蹤,最后將跟蹤結果通過HDMI顯示屏進行實時顯示。此外,系統還可以將跟蹤到的目標圖像幀和相應的運動軌跡記錄到本地SD存儲卡中,用于后期的事件分析。

圖1 系統硬件結構Fig.1 System hardware structure
為了在嵌入式硬件平臺上實現多目標跟蹤的監控系統,就需要先搭建軟件開發環境[7],具體流程如下。
(1)建立交叉編譯環境。要編譯出能運行在ARM上的程序,必須要使用交叉編譯工具,現使用arm-linux-gcc-4.3.5版本。
(2)加載引導程序。U-Boot作為引導程序在系統上電后開始運行,完成初始化硬件及軟件資源的任務,從而啟動操作系統。
(3)移植Linux系統內核。內核是系統的核心,它提供文件系統控制,實現多任務等功能。該部分主要包括內核配置、內核編譯和鏡像文件燒寫。采用的內核版本是Linux2.6.35.7。
(4)構建Linux文件系統。根文件里面包含了Linux系統正常運行所需要的各種庫文件和應用程序。
跟蹤框架主要包括高斯混合背景模型檢測、卡爾曼濾波器預測跟蹤、匈牙利算法實現數據關聯以及遮擋處理。檢測部分首先通過對背景進行估計來建立背景模型,然后將當前幀與所建背景模型進行作差,從而間接地分離出運動前景,最后對前景進行分割來得到跟蹤目標。跟蹤部分則根據上一幀的跟蹤結果使用卡爾曼濾波器預測目標在當前幀的位置,然后將實際檢測結果和卡爾曼濾波器預測結果使用匈牙利匹配算法做數據關聯,并根據最優匹配來更新目標的軌跡,最終實現運動目標的檢測與跟蹤,其流程如圖2所示。

圖2 目標檢測跟蹤流程Fig.2 Flow chart of target detection and tracking
3.1.1 算法原理
高斯混合模型[8]認為視頻圖像中每一個像素點的像素值在時間軸上服從高斯分布。假設在一段時間里某個像素點的像素值分別為{X1,X2,…,Xt},那么根據這些像素值就可以用K個高斯分布的混合來表示該像素點的像素值分布情況。高斯混合模型定義t時刻像素值Xt屬于背景的概率為
(1)
式(1)中:K為高斯分布的數目;wi,t為與t時刻第i個高斯分布的平均值μi,t和協方差矩陣Σi,t相關聯的權重;η為高斯概率密度函數,即
(2)
高斯模型在匹配過程中是將t時刻的每一個新像素值Xt與K個高斯分布依次進行匹配,匹配原則如式(3)所示。如果滿足條件,就需要按照式(4)~式(6)更新相應高斯分布的權重、均值和方差。
|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)
式中:α為高斯混合模型學習率;對于匹配的像素,Mi,t=1,否則Mi,t=0;ρ為參數學習率,并且ρ=αη(Xt|μi,σi)。
3.1.2 算法改進
在高斯混合模型中均值和方差的更新速率決定了背景更新速率,而每個像素點對應的高斯分布個數K表示了背景模型的細節程度。為了使高斯混合模型能根據實際環境做出自適應調整,將從更新速率和高斯分布數兩個方面進行改進。改進后的算法流程如圖3所示。

圖3 改進的算法流程Fig.3 Flow chart of improved algorithm
(1)傳統高斯混合模型中設置了兩個不同的學習率來更新相應參數,而第二個學習率ρ中包含了大量乘法運算,每當背景模型更新時處理器都會花費大量時間來進行系數運算,影響了硬件平臺的實時性。在模型更新過程中簡化了流程,將兩個學習率統一用α來表示。
(2)傳統高斯混合模型中高斯數K是固定的,當觀測到的新像素值頻繁變化時,固定的高斯數并不足以估計背景;而當觀測到的新像素值在一段時間內保持恒定時,其所有高斯分布的參數都趨近于相同。因此,提出一種自適應改變高斯數的背景建模方法,它可以增加或減少分布的數目來處理每個像素的變化。在模型匹配過程中,如果t時刻的像素值不能和任何高斯分布匹配,則增加一個高斯分布,其相應的權重、均值和方差使用前K個高斯分布相應參數的平均值來表示。對于匹配成功的高斯分布,則將它們兩兩進行比較,如果兩個高斯分布之間的差異小于一個閾值,則將這兩個高斯分布合并成一個。具體過程為
wc,t=(wa,t+wb,t)/2
(7)
(8)
(9)
卡爾曼濾波是一種最小化均方誤差的線性濾波方法,它在觀測方程和目標狀態轉移方程的基礎上,使用迭代的方式對目標的狀態進行預測和更新[9]??柭鼮V波的狀態方程和觀測方程為
Xt=AXt-1+Wt
(10)
Zt=HXt+Vt
(11)
式中:Xt和Xt-1表示t時刻和t-1時刻系統的狀態;Zt表示t時刻系統的觀測狀態。A為狀態轉移矩陣;H為觀測矩陣;Wt為系統噪聲,滿足正態分布,其協方差矩陣為Q;Vt為觀測噪聲,同樣滿足正態分布,其協方差矩陣為R。而卡爾曼濾波的預測和更新方程[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)表示狀態預測方式,Xt-1|t-1表示上一時刻狀態,Xt|t-1表示由上一時刻推出的當前時刻狀態;式(13)表示誤差協方差預測方式,Pt-1|t-1表示上一時刻估計誤差協方差,Pt|t-1表示由上一時刻推出的當前時刻估計誤差協方差;式(14)表示目標狀態優化方式,Xt|t表示當前時刻狀態,Kt表示當前時刻最優卡爾曼增益;式(15)表示誤差協方差優化方式,Pt|t表示當前時刻估計誤差協方差;式(16)表示卡爾曼增益計算方式。
一般情況下,由于相鄰兩幀時間間隔較小,可以假設同一個目標在相鄰兩幀之間做勻速直線運動。使用運動目標的位置x、y坐標、x、y方向速度,目標矩形框面積S和面積變化率vs來表示其當前狀態X(k)。使用運動目標的位置x、y坐標和尺寸信息表示觀測向量Z(k)。因此X(k)和Z(k)可用下式表示為
(17)
Z(k)=[xk,yk,s,vs]
(18)
由牛頓力學方程得
(19)
(20)
對于y方向上的遞推與x方向一樣。目標矩形框面積S和面積變化率vs與時間t的關系為
sk=sk-1+vst
(21)
vs(t)=vs(t-1)
(22)
因此,系統的狀態轉移矩陣A為

(23)
觀測矩陣H為

(24)
系統噪聲協方差矩陣Q為

(25)
觀測噪聲協方差矩陣R為

(26)
確定卡爾曼濾波器的參數A、H、Q、R后就可以根據后續的檢測信息對運動目標的狀態進行預測和估計。
多目標跟蹤是基于檢測環節進行的,而圖像每一幀都有可能檢測到多個目標,為了確保檢測目標和跟蹤目標之間的對應關系,就必須要進行數據關聯,通過目標之間的質心距離和空間顏色直方圖構建關聯矩陣。假設當前跟蹤目標數量為m,檢測目標數量為n。檢測目標和跟蹤目標之間的質心距離即為歐氏距離,計算公式[11]為
(27)
式(27)中:a1、a2分別為檢測目標和跟蹤目標的質心位置。而質心距離對應的關聯矩陣D為
(28)
式(28)中:di,j表示第i(i=1,2,…,n)個檢測目標和第j(j=1,2,…,m)個跟蹤目標間的歐氏距離。顏色直方圖統計了一幅圖像中不同顏色的分布情況,但是卻忽略了某像素在圖像中的位置信息。為了使顏色直方圖能更準確地表示目標之間的相似度,將目標的空間信息引入。采用區域劃分的方法,將目標劃分成多個區域,分別統計各個區域的顏色直方圖特征,最后將所有的顏色直方圖特征連接成一個向量。巴氏距離的計算公式[12]為
(29)
式(29)中:A和B為兩個待比較的直方圖;N為劃分的區域。而空間顏色直方圖的關聯矩陣P為
(30)
式(30)中:pi,j表示第i(i=1,2,…,n)個檢測目標和第j(j=1,2,…,m)個跟蹤目標間的巴氏距離。為了使跟蹤算法魯棒性更好,基于兩種特征的關聯矩陣構建融合矩陣M,計算方法為
M=βD+(1-β)P
(31)
式(31)中:實數β是融合系數,它的取值范圍為0到1。
在跟蹤目標的過程中往往會出現不同程度的遮擋而導致跟蹤失敗的情況,如何在發生遮擋時保證跟蹤的準確性是必須要考慮的問題,通過監測歐式距離的變化來判斷遮擋。剛開始發生遮擋時,算法具有魯棒性,歐式距離小于設定的閾值,則繼續使用算法進行跟蹤;當遮擋面積不斷變大時,歐式距離會不斷增大,這時采用卡爾曼濾波器預測結果維持跟蹤;當目標被完全遮擋時,歐式距離已經增加到無窮大,此時算法將啟動計數器進行計數,若遮擋時間沒有超過算法設定的計數上限值,則繼續使用卡爾曼濾波器預測結果進行跟蹤,否則認為該目標已經完全消失。
實驗分別在室內和室外兩種環境下進行。算法在檢測到運動目標后將會給每一個目標設定一個標簽,并為每個成功跟蹤的目標隨機生成一種顏色的軌跡,由此可以直觀地分辨出跟蹤成功的多個目標。算法在嵌入式平臺上跟蹤多目標的結果如圖4所示。在系統開始運行的非穩態時間段內,由于目標的運動信息不夠充分,算法會把監控場景中的擾動誤檢成目標,但是隨著檢測模型的不斷修正,算法的檢測性能不斷提升,最終實現了只對運動目標的檢測和跟蹤。此外,算法還將運動目標的所有運動軌跡記錄下來,這將為后續的數據處理等操作提供有力的支撐。由于實驗場地和攝像頭視角的限制,本次實驗能夠有效跟蹤到的運動目標數量為6個,實驗結果如圖5所示。
由于實驗當天室外光照比較強烈,攝像頭出現曝光過度的情況,鑒于此類情況的時常性,算法提出利用自適應高斯混合模型,根據實際環境來修正相應參數,通過實驗驗證能夠較好地消除光照變化對算法性能的影響。圖6中運動目標被停在路邊的汽車遮擋,但該目標的運動軌跡在遮擋前后保持紫色標簽,此時說明該運動目標的標簽沒有因為遮擋而被算法判定為新的目標而重新分配。故有結論:場景中目標的運動不會受到障礙物遮擋的影響。圖7中的1號目標在運動過程中與2號目標相遇并且兩個目標出現相互遮擋的情況,但1號目標的運動軌跡保持紫色標簽,同時這也說明在跟蹤過程中算法給1號目標設定的標簽沒有發生改變。故有結論:目標的運動不會受到障礙物遮擋以及物體相遇、相互遮擋的影響。

圖4 室內多目標跟蹤及軌跡記錄Fig.4 Indoor multi-target tracking and trajectory recording

圖6 室外目標被障礙物遮擋Fig.6 Outdoor targets are blocked by obstacles

圖7 室外目標相互遮擋Fig.7 Mutual occlusion of outdoor targets
由于嵌入式平臺的硬件資源有限,為了有效評估本文算法在嵌入式平臺上的性能,算法時間復雜度是必須要重點考慮的指標,采用幀率來進行衡量[13]。測試數據為攝像頭采集的連續視頻幀,每幀分辨率為640×480。由于監控場景和目標的運動速度相對穩定,每1 s內嵌入式平臺將維持穩定的運行幀率,因此可以近似地認為1 s內每一幀的處理速率相同。通過截取50 s視頻序列,分別統計每1 s內嵌入式平臺處理完成的圖片幀數,選定50幀圖像進行幀率對比,結果如圖8所示。由圖8可知,算法在嵌入式平臺的平均運行幀率保持在18幀/s,由于幀率高于16 FPS時,視頻將被生理性人眼判定為連貫穩定運行,因此滿足系統實時性的要求。

圖8 嵌入式平臺實時幀率Fig.8 Real-time frame rate of the embedded platform
利用AM5708處理器設計了一種智能多目標跟蹤監控系統?;诟倪M的自適應高斯混合模型提高了算法檢測準確率,利用卡爾曼濾波和匈牙利算法解決了多目標跟蹤問題和遮擋問題,改善了視頻監控在復雜場景下的跟蹤能力。經過實驗測試,在光照變化、多目標運動和目標遮擋的情況下,算法都能準確檢測和跟蹤到運動目標,同時系統的實時性和抗干擾性良好。