馬皇特,賀永杰,王春梅,禹密柱,王江安
(長安大學 信息工程學院,陜西 西安 710064)
視頻的智能監(jiān)控在現(xiàn)實生活中應用廣泛,但是這些固定的攝像頭只能拍攝進入當前場所監(jiān)控的目標,不能跟蹤目標以監(jiān)視移動。針對上述局限性,已有文獻提出了不少改進方法。
在人體檢測方面,Papageorgiou等[1]將Haar小波用于人臉、人體的檢測,并通過Haar特征的不同來訓練不同的SVM(支持向量機)分類器;Dalal等[2]提出了基于HOG特征的人體檢測方法,這種方法通過統(tǒng)計直方圖來描述人體的輪廓信息;在人體檢測領域中模板匹配算法最著名的是基于輪廓目標的分層匹配算法,該算法是由Gavrila等[3]提出的。李建福等[4]采用SVM分類器對人體HOG特征與其他特征相結合的特征進行檢測,減少了單獨由HOG特征檢測帶來的局限性;陳銳等[5]為了克服HOG特征存在冗余信息多、容易造成誤檢和漏檢的缺點,提出利用PCA算法對人體的HOG特征進行降維處理后再與局部二值模式特征進行融合,最后使用SVM進行分類。周科嘉[6]針對人體姿勢的不確定性,提出了傳統(tǒng)的HOG特征結合模板匹配的方法進行人體檢測。
在人體跟蹤方面:G Jemilda等[7]提出了多種跟蹤算法融合的方式來減少計算的復雜性,提高了跟蹤的可靠性和準確性;Wang等[8]針對復雜的環(huán)境,提出了一種從Blob塊中提取的幾何參數(shù)結合CamShift算法來檢測車輛。李娟等[9]提出基于Kalman濾波的人體跟蹤方法,先通過改進的高斯模型提取背景,再進行人體特征的提取,最后使用Kalman濾波對人體的運動進行估計,將檢測到的目標與估計結果相匹配。鄒依峰等[10]針對運動人體尺寸的變化問題,提出了HOG特征和粒子濾波相結合的人體跟蹤算法。郭烈等[11]為了提高城市交通的安全性,提出了使用AdaBoost算法訓練分割人體的級聯(lián)分類器,結合Kalman濾波原理實現(xiàn)人體的跟蹤。張紹明等[12]針對紅外視頻中顏色信息缺失的問題,提出了一種基于改進的粒子濾波的紅外視頻的跟蹤算法,使用HOG特征和粒子濾波相結合的方式對人體進行跟蹤。
在上述研究的基礎上,文中以四旋翼無人機作為平臺,對目標人體的檢測與跟蹤進行研究。
Haar特征是依據(jù)目標的灰度值變化的情況提取的,對于人臉這種結構相對固定的場景檢測效果一般是很好的,對于結構不固定的人體檢測場景的檢測效果不是很好。
HOG特征在提取的過程中是針對目標人體的局部區(qū)域進行的,所以HOG特征對目標人體的具體大小和形狀以及光照變化、尺度變化等問題具有很高的魯棒性。另外,HOG特征還允許人體有細微的肢體動作變化而不會影響人體最終的檢測效果。故HOG特征多用于人體檢測。但HOG特征也存在特征維數(shù)過多、計算量太大等問題,無法達到實時性檢測的效果。
主成分分析(principal component analysis,PCA)或者主元分析,其主要思想是使用較少的關鍵特征來描述樣本,從而達到降低樣本維數(shù)的目的[13]。經過主成分分析算法后的數(shù)據(jù)主成分能代表原來數(shù)據(jù)的大部分信息。
模板匹配算法就是要忽略掉無關緊要的干擾,在一幅圖像中尋找是否包含與模板圖像相同的圖像,并確定相同的圖像在待搜索的圖像中的具體位置。
常用的模板匹配算法可以分為四類:基于區(qū)域的匹配算法、基于特征的匹配算法、基于變換域的匹配算法以及基于模型的匹配算法[14]。
SVM的優(yōu)點主要是少數(shù)的支持向量能夠決定最終的分類結果,可以抓住關鍵的樣本,這種算法不僅簡單而且有很好的魯棒性,適合行人檢測這種二值問題。但是支持向量機對大規(guī)模的訓練樣本會耗費大量的內存和計算時間。
文中經過對大量的視頻序列圖像進行實驗之后,得到傳統(tǒng)的HOG特征結合SVM分類器的算法,經過PCA降維處理后的HOG特征結合SVM分類器的算法,經過PCA降維后的HOG特征結合頭肩部模板匹配加上SVM分類器的算法。平均每幀圖像上的耗時如圖1所示,算法的檢測正確率如表1所示。
圖1 改進前后人體檢測算法耗時折線圖
樣本數(shù)1003005008001 000HOG+SVM0.620.590.610.620.60HOG+PCA+模板匹配+SVM0.730.700.720.710.72
實驗數(shù)據(jù)表明,使用傳統(tǒng)的HOG特征加支持向量機無法滿足所需要的實時性要求。對于提出的經過PCA處理的HOG特征結合頭肩部模板匹配后加SVM的算法雖然在耗時上比不加頭肩部模板匹配算法增加了約11 ms左右,但是在算法的檢測速度上也可以達到文中對于實時性的要求。并且明顯提高了算法的檢測率,降低了誤檢率,達到了對人體檢測準確率的要求。
CamShift算法是在Mean-Shift算法的基礎上對目標視頻序列的每一幀圖像都進行Mean-Shift算法的調用。
CamShift算法的優(yōu)點是能夠高效地解決跟蹤目標的形變和跟蹤目標被遮擋的問題[15],在背景相對簡單的情況下,CamShift算法能夠獲得較好的跟蹤效果。如果背景相對復雜,或者目標的顏色和背景的顏色相差不大,CamShift算法的跟蹤效果就會降低,甚至會導致跟蹤失敗,所以就需要結合預測算法來提高對目標的跟蹤效果。
針對目標人體全部被遮擋的情況,提出了CamShift算法結合粒子濾波算法。
粒子濾波簡單來講就是通過從后驗概率中提取出來的隨機粒子來近似地表達目標出現(xiàn)在某個位置的概率[16],其中描述目標位置的隨機粒子越多,越能夠準確地描述目標的位置信息。但這也正是粒子濾波算法的缺點,想要很好地逼近后驗概率密度函數(shù)就需要大量的樣本粒子,而樣本粒子數(shù)目越多,算法的復雜度就越高。
文中在前面分別介紹了人體檢測和人體跟蹤兩部分內容。本節(jié)將人體檢測和人體跟蹤兩部分結合起來組成一個人體檢測跟蹤系統(tǒng)。
人體檢測跟蹤的流程如圖2所示。
圖2 人體檢測跟蹤流程
首先輸入圖片或者視頻序列,使用HOG結合PCA算法對圖片或者視頻序列中的人體進行檢測,識別出人體目標。然后對識別出來的人體目標進行人體的頭肩部模板匹配,以此提高人體檢測的檢測率。然后對選定的目標人體進行粒子集的初始化操作,通過對人體運動狀態(tài)的預測獲取描述人體運動的采樣粒子集,對該采樣粒子集再使用CamShift算法進行漂移運算,從而得到收斂的粒子集。最后通過對粒子集進行重新采樣,動態(tài)保留最能描述人體運動的粒子以估計人體運動的狀態(tài)。
對HOG特征訓練采用的是MIT數(shù)據(jù)集,這個數(shù)據(jù)集相對簡單,數(shù)據(jù)集中只包含了一個正樣本集,這個正樣本集中包含924幅圖片(為64×128的彩色圖片),負樣本集也包含了924幅圖片(為64×128的彩色圖片)。這些圖片來自于網絡資源,這些負樣本中的圖片主要是動物、風景以及其他非人的圖片。為了驗證人體檢測跟蹤系統(tǒng)的效果,在不同的場景下進行了測試。
場景一:行人在步行時的場景。人體檢測跟蹤效果如圖3所示。
圖3 人體檢測跟蹤效果(1)
場景二:行人在跑步時的場景。人體檢測跟蹤效果如圖4所示。
圖4 人體檢測跟蹤效果(2)
兩種場景每幀算法耗時如表2所示。
表2 算法每幀耗時統(tǒng)計
由圖3和圖4的人體檢測跟蹤效果可知,改進算法具有良好的抗干擾性,對背景中的干擾物能夠準確地排除,并且能夠準確地檢測出背景中的人體,對人體在運動中的尺度變化有良好的自適應性。由表2所示,人體檢測跟蹤算法每幀圖像平均耗時在37 ms左右,滿足了文中對實時性的要求。
在人體檢測部分,提出對HOG特征進行PCA降維處理,得到降維后的HOG特征,并對降維后的HOG特征結合人體頭肩部的模板匹配算法,減少了算法的計算量,提高了算法的實時性,并且提高了人體的檢測率。在人體跟蹤部分,采用一種基于CamShift算法和粒子濾波算法相結合的跟蹤算法。CamShift算法具有計算量小、實時性好的優(yōu)點,但是CamShift算法是一種基于顏色特征的算法,對人體的背景很敏感,并且當人體完全被遮擋時很容易跟丟目標。因此,將CamShift算法和粒子濾波算法相結合就可以通過少量的相關粒子提高對人體跟蹤的效果和實時性。然后將人體檢測和人體跟蹤相結合組成一個人體檢測跟蹤系統(tǒng)。該系統(tǒng)可以對靜態(tài)圖片和視頻序列中的人體進行自動檢測和跟蹤,能夠有效解決傳統(tǒng)的手動畫框跟蹤帶來的跟蹤畫不準等人為問題。