陶冶 楊喜娟



摘 要:視頻追蹤技術可有效保障人民與社會的財產安全,并大大降低犯罪率,因此以C語言為基礎,利用Mean Shift算法設計了視頻中特定目標追蹤系統。通過特征點的選取匹配到匹配度最高的模板并更新,可在一段運動視頻序列中跟蹤指定車輛、行人或其他移動物品,并在目標移動過程中鎖定這一目標,避免丟失跟蹤狀態,直至跟蹤目標在此段運動視頻序列中消失。經驗證,系統具有較高的準確度,推廣前景廣闊。
關鍵詞:視頻目標追蹤;Mean Shift算法;特征點選取;模板匹配;C語言;概率密度
中圖分類號:TP39文獻標識碼:A文章編號:2095-1302(2019)09-00-03
0 引 言
自21世紀以來,全球進入信息時代,而信息安全以及人身財產一直是大多數人關注的對象,行車記錄儀、航拍無人機、手機等可以記錄視頻的科技產品已經融入我們的生活。這些視頻信息主要用于安防和保障公民的人身財產安全。若單純依靠視頻信息無法快速、直接處理問題,但在一段監控視頻中,追蹤信息能夠更加直觀地將視頻信息傳遞給人們。
視頻運動目標的追蹤程序通過Mean Shift算法實現視頻中運動目標的追蹤[1],Mean Shift算法是迭代算法,每次迭代特征點的選取模板都會移動到概率密度大的方向,因此在概率密度圖上使用Mean Shift算法。
1 Mean Shift算法原理
Mean Shift算法利用概率密度的梯度尋找局部最優的模板圖像。Mean Shift算法輸入圖像范圍,然后迭代,直到達到追蹤目標的要求為止。
運動目標的追蹤就是觀察者想從視頻信息中追蹤的目標,程序會鎖定運動目標區域,實現目標追蹤[2]。給定追蹤運動目標的過程:在圖像區域中設置一個ROI,將得到的ROI傳送至程序,由程序在下一幀圖像中尋找移動狀態下的ROI。在計算機視覺中采用如下解決方法。
(1)描述追蹤目標區域轉換為顏色HSV空間(HSV為格式圖片的各通道取值范圍,H:0~360;S:0~1;V:0~1。H通道時保存的色調中每一個取值代表一個色調,但分布不均勻;S通道時,當S小于0.1可以算為灰度圖像,大于0.65時亮度較高;V通道時,當V小于0.15,則在視覺上算黑色,大于0.9時,在視覺上算白色)。
(2)得到H通道的分布直方圖,通過該相似函數的運算發現,相似函數值越大,算法找到的運動目標區域和追蹤目標區域越相似,所以對應最大相似值的區域就是我們要追蹤的運動目標[3]。此時需要用Mean Shift算法通過迭代得到有最大相似值區域,向兩個模型相比顏色變化最大的方向不斷移動搜索窗口,直到最后兩次的移動距離小于閾值(在自動控制系統中,能夠產生一個可以校正動作的最小輸入值),即找到需要追蹤的運動目標的當前幀位置,并將這一幀的位置作為下一幀的起始搜索窗口中心,然后重復該過程就可以實現目標追蹤。在這個重復的過程中,每兩幀的間隔都會產生一個Mean Shift向量,但在整個過程中,所有的Mean Shift向量連起來就是需要追蹤的目標運動路徑[4]。
Mean Shift算法流程如圖1所示。
1.1 基于Mean Shift算法視頻中的運動目標追蹤程序
1.1.1 系統簡介
在一段正在運動的視頻中,提取到處于運動狀態中的目標輪廓,達到追蹤被選中運動目標(車輛、行人、物品等)的要求,直到目標消失在視頻中或者有較大的干擾導致追蹤失敗。
1.1.2 系統的基本技術要求
輸入視頻,對運動物體進行跟蹤,步驟如下:
(1)使用運動檢測算法將處在運動狀態下的物體與物體所處背景拆分;
(2)提取出運動狀態下目標物體的輪廓,并從視頻幀數中獲取運動圖像的數據信息;
(3)對運動目標所處的圖像范圍進行反向投影,獲取此目標所處圖像的反向投影圖;
(4)根據目標所處圖像的反向投影圖和運動目標的輪廓進行Mean Shift算法迭代,由于信息圖像向重心移動,即向反向投影圖中概率密度大的地方移動,所以會移動至運動目標的真實位置[5];
(5)在得到下一幀信息圖像時,用上一幀圖像信息輸出的窗口迭代即可。
1.2 Mean Shift算法跟蹤原理
Mean Shift算法從本質上來說是一種核密度估計法,直方圖法可以從一組采樣數據中把信息數據的值域拆分成若干相等的區間,信息數據又可以按區間拆分成若干組,每組信息數據的個數與總信息數據的個數之比就是每個信息單元的概率值。核密度估計法的原理與直方圖法的原理相似,唯一的區別在于核密度估計法多了一個可以用來平滑數據信息的核函數。在應用核函數估計法時,只要在采樣信息數據足夠充分的前提下,此方法就可以收斂于任一密度函數,即可對任意分布的信息數據進行分析運算,得到密度估計值[6]。
運用Mean Shift算法對運動目標進行追蹤。首先要對被追蹤的運動目標進行初始化,這一過程可以通過鼠標進行手工選取,然后計算得出搜索窗口的直方圖,該搜索窗口為核函數加權下的搜索窗口,再用同樣的方法計算出每一幀對應搜索窗口的直方圖分布[7],需要注意的是:我們選擇相似值最大的兩個相鄰幀數的模板來提高追蹤目標的精確度。搜索窗口沿著概率密度函數密度增加最大的方向移動,最終得到下一幀運動目標所處的真實位置。
Mean Shift算法的追蹤步驟如下:
(1)計算運動目標所處模板的概率密度函數;
(2)運動目標通過估計方法得到核函數寬度窗口[8];
(3)初始化當前幀運動目標所處的真實位置,計算候選目標所在模板;
(4)根據公式計算當前窗口內各點的權重值[9];
(5)計算目標的新位置。
2 程序的實現
2.1 軟件的安裝與配置
下載安裝包VS 2015后,選擇安裝路徑并安裝,啟動進入其他配置界面,勾選C++開發設置,然后點擊“確定”啟動。
下載好Open CV壓縮包解壓到自定義的安裝路徑下,安裝完成后為Open CV配置環境變量:PATH:D:\File Program\Open CV\build\x64\vc11\bin。系統在VS 2015中配置Open CV的環境。
(1)在文件選項中選擇并打開項目。
(2)在VS 2015的主界面點擊視圖與屬性管理器。
(3)選擇位于主界面左側的Debug|Win32文件,并右擊鼠標右鍵選擇屬性進行環境變量配置,如圖2所示。
(4)為程序添加包含目錄,在點擊進入的屬性頁中,點擊“VC++目錄”,輸入Open CV build文件夾中的include文件路徑與include中兩個子文件夾的路徑,如圖3
所示。
(5)在頁面中的庫目錄中添加Open CV中build文件下x86中包含的vc11內的lib文件路徑,如圖4所示。
(6)進入鏈接庫,點擊“輸入”,在輸入中給附加依賴項添加環境變量。
2.2 程序的實現
從圖5中可以看出程序的運行流程,通過手動方式截取需要追蹤的目標區域,利用圖像處理技術方便Mean Shift方法的計算,快速得到模板,之后重復計算方法,更新下一幀的模板位置。模板的更新隨著視頻幀數的走動而變化,最終達到目標追蹤的效果[10]。
3 系統使用說明及測試結果
3.1 系統使用說明
(1)將視頻暫停。
(2)采用手動選取的方式使用鼠標選定追蹤目標區域。
(3)運行視頻。
(4)觀察目標區域的追蹤結果。
3.2 系統測試結果
系統針對跟蹤人和跟蹤車輛進行測試,測試結果如圖6所示。
4 結 語
系統使用Mean Shift算法滿足追蹤需求。算法的本質是迭代,因為追蹤的模板在視頻中一幀一幀走,所以需要重復計算,而為了更好地追蹤,則對圖片進行反向投影圖和直方圖處理,更利于算法計算,利用VS.NET和OPEN CV搭建平臺運行程序,在對特定人和車的跟蹤測試中實現目標具有較高的準確度,可研究推廣。
參 考 文 獻
[1]林杰.基于視頻監控的實驗室實時預警系統設計[J].自動化與儀器儀表,2019(3):70-74.
[2]王公儒.視頻監控系統工程實用技術[M].北京:中國鐵道出版社,2018.
[3]蘇康友,陳家棟,王佳穎,等.基于S5P6818無線視頻監控系統設計[J].物聯網技術,2019,9(3):25-26.
[4]張若楊,賈克斌,劉鵬宇.視頻監控中私自攬客違法行為檢測[J].計算機應用與軟件,2019(3):168-173.
[5]孫嫻.基于視頻監控的異常行為檢測研究[D].南京:南京郵電大學,2018.
[6]王愛麗,董寶田,孫遠運,等.基于聯合多特征直方圖的Mean Shift行人跟蹤方法研究[J].鐵道學報,2016(12):76-85.
[7]朱浩楠,許明敏,沈瑛.基于Mean Shift的多視頻車輛跟蹤研究
[J].計算機科學,2018,45(6A):220-226.
[8] CL?MENT B,YANN B,BRUNO C,et al. Modelling camera viewing angle deviation to improve nearshore video monitoring? Coastal Engineering [Z]. 2019:99-106.
[9]余毅.一種基于物聯網的改進型智能視頻監控設備的設計[J].物聯網技術,2019,9(2):60-61.
[10]李穎,鄭明杰.視頻監控圖像高速運動物體穩定特征識別仿真
[J].計算機仿真,2018(12):342-345.