榮俊勇,王中華
(南昌航空大學 信息工程學院,南昌330063)
嵌入式視頻監控系統的軟件設計包括嵌入式Linux 平臺底層軟件、視頻監控系統的視頻處理算法和人機交互軟件的設計,以下對嵌入式視頻監控系統軟件進行介紹。
本文使用的開發工具有Linux 虛擬機運行軟件VMware Workstations10、虛擬機Ubuntu16.04 LTS、交叉編譯器armlinux-gcc4.4.3。構建嵌入式Linux 平臺,首先要在虛擬機上使用交叉編譯器對Boot Loader、Linux 內核、yaffs2 文件系統以及使用到的軟件(Qt creater 5.6、OpenCV 3.0)進行交叉編譯,再將交叉編譯后的文件移植到嵌入式硬件平臺上。
程序開始執行后,首先使用V4L2 對攝像頭進行一系列初始化,接著用捕獲的視頻對PBAS 算法的背景模型進行初始化,完成初始化后再對捕獲的視頻的每一幀進行移動目標的檢測,如果有移動目標出現,則用矩形標記出移動目標以及在圖像上標記出移動目標出現的時間,再將該幀圖像保存到視頻文件中;如果沒有出現移動目標則進行下一幀的檢測。視頻監控界面設計如圖1所示。

主界面包含三個按鈕:實時監控按鈕、歷史視頻按鈕、退出按鈕。點擊實時監控按鈕進入實時監控操作界面,實時監控界面有開始/暫停按鈕、返回按鈕,開始/暫停按鈕控制實時視頻監控的進行;點擊返回按鈕則回到主界面,但只要沒有暫停實時視頻監控就會在后臺持續監控。點擊歷史視頻按鈕則會進入歷史視頻操控界面,歷史視頻控制界面有播放/暫停按鈕和退出按鈕,播放/暫停用于查看視頻監控保存下來的含有移動目標的歷史視頻;點擊返回按鈕則停止播放歷史視頻,返回到視頻監控主界面。
在PBAS 中,和SACON 算法相似,背景模型是由視頻序列中的N 個歷史樣本組成的[1]。而前景檢測和背景模型更新與VIBE 算法類似,但背景模型更新是動態的。任何一個像素xi都有一個決策閥值R(xi),通過背景模型B(xi)和當前幀I(xi)比較把當前幀的像素分為背景和前景。背景模型的隨機更新取決于學習速率T(xi)。
在PBAS 中,類似于其他前景分割算法,前景和背景分類是基于背景模型與當前像素進行比較的。PBAS 的背景模型是由鄰近當前視頻幀觀察到的N 個歷史像素值組成的:

如果在背景模型B(xi)的N 個值中有至少#min 個與像素點xi的像素值I(xi)距離小于R(xi),則該像素點為背景點,否則為前景點。因此前景分割掩模計算式為:

表達式(2)中,F=1 表示前景,F=0 表示背景,dist 為距離計算:

決策所涉及的兩個參數:①每個像素單獨定義且可動態改變的距離閾值R(xi);②固定的全局參數,最小數目#min。
為了適應背景的變化,需要對背景模型B(xi)進行更新。由于前景區域不能用于更新背景模型,背景模型只對當前的背景像素進行更新。PBAS 算法的更新策略為:等概率選擇k∈1…N,用當前像素值I(xi)取代相應背景模型值Bk(xi),但更新概率為p=1/T(xi)。因此,學習速率T(xi)決定更新速率。T(xi)越大,像素被更新的概率越小。
PBAS 算法也以概率p=1/T(xi)隨機選擇更新一個相鄰像素yi∈N(xi)。因此,在這個相鄰像素的背景模型中Bk(yi)被其當前像素值V(yi)所取代。該屬性的優點是判斷錯誤的前景對象會很快消失。
在PBAS 算法中決策閾值R(xi)的更新機制如下:首先,在構建背景模型B(xi)的同時也創建一個決定最小距離的數組:

不管背景模型B(xi)是否進行了更新,當前的最小距離都將被保存到Dk(xi)中,當前的最小距離為:

D(x)i的平均值(x)i可以用來橫量當前背景的復雜度。決策閾值R(x)i的更新模型如下:

其中,Rinc/dec為更新率,Rscale為比例因子,兩者均為固定參數。
原始PBAS 算法經測試得出的最佳參數值如下:背景模型歷史像素值數N=35,最小數目:#min=2,更新率:Rinc/dec=0.05,比例因子:Rscale=5,決策閥值R(xi)下限:Rlower=18,T(xi)下降速率:Tdec=0.05,T(xi)上升速率Tinc=0.05,T(xi)下限:Tlower=2,T(xi)上限:Tupper=200。
每個像素背景模型中的歷史像素數N 為35 時性能達到最佳,但對于一些簡單的場景只需要取10 既能達到檢測要求。由于本系統使用的處理芯片為S3C2440,其計算速度相對較慢,為了減小計算復雜度,提高視頻監控系統的實時性,在本系統中將N 設置為20。其他參數則保持不變。
本文針對傳統視頻監控系統的不足,設計了一種基于PBAS 算法的嵌入式視頻監控系統。該視頻監控系統以嵌入式Linux 為硬件平臺,大大節省了視頻監控的投入;以Qt 5.6 和OpenCV 3.0 為軟件編程工具,實現了良好的人機交互界面,并使用PBAS 算法對移動目標進行檢測,較好地實現了對視頻監控中移動目標的檢測以及對含有移動目標的視頻序列的存儲[2]。與傳統視頻監控相比,使用戶盡量減少在視頻監控上所花費的人力和物力。