韓欣欣,葉奇玲
(南京郵電大學 通信工程學院,江蘇 南京 210003)
在處理視頻數(shù)據(jù)時,行為識別已經(jīng)成為分析視頻的一個關(guān)鍵技術(shù),在機器學習領(lǐng)域和公共安全領(lǐng)域具有一定的研究意義。其中,在公安偵查方面,人體行為識別也應(yīng)用廣泛,如危險行為監(jiān)控、人機交互、手勢識別、智能監(jiān)控和視頻內(nèi)容檢索等[1-3]。近年來,一些科研工作者在行為識別方面提出了運算速度較快的特征提取方法并加以改進[4-6],如LBP局部二值模式[7]、HOG方向梯度直方圖[8]以及3D-SIFT三維的尺度不變特征變換[9-10]等方法。鑒于通過單一特征描述一種動作行為存在的局限性,提出利用多種特征融合來進行行為識別。
在圖像特征提取時,處理效率可能會受到一些外界影響,像攝像機移動、物體遮擋、視角和光照明暗等,可能會導致行為識別出現(xiàn)誤差,因此提出了一種融合基于SIFT特征與HOG特征,然后通過SVM完成分類識別的算法[11]。
該算法的步驟為:目標檢測、單特征提取、多特征融合、SVM分類識別。采取的人體行為數(shù)據(jù)庫為小段視頻,首先是預(yù)處理視頻中的視頻幀,從而獲取圖像中的有效信息,之后將所得到的結(jié)果作為輸入來分別提取SIFT和HOG的特征,然后再進一步進行多特征融合,最終通過SVM進行行為分類識別。算法流程如圖1所示。
圖1 算法流程
在真實場景下拍攝的行為視頻,一些外界因素可能會對視頻中的行為識別產(chǎn)生影響,如不可避免的拍攝人手抖、建筑物體遮擋、背景物體變化、鏡頭伸縮以及光照等外在因素。SIFT算法是可以描述圖像中局部特征的算法,可以幫助識別辨認物體,此外該算法還能在空間尺度中尋找極值點數(shù)據(jù)并提取位置、關(guān)鍵點方向等信息。該特征描述子不會受到拍攝視角、尺度變化、亮度明暗、目標遮擋或噪聲等因素的影響,因此使用SIFT特征可以在一定程度上解決上述問題[12-14]。SIFT算法在提取動作特征中主要采用以下步驟:
(1)檢測尺度空間極值點。
先建立圖像金字塔,金字塔分為O組,每組有S層,其中第O(O≥2)組的圖像是由第O-1組的圖像經(jīng)過1/2降采樣得到的,每組內(nèi)的圖像是由下到上進行高斯濾波得到的,在獲取得到圖像金字塔后,通過建立高斯差分尺度來檢測穩(wěn)定的特征點:
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)=
L(x,y,kσ)-L(x,y,σ)
(1)
其中,G(x,y,kσ)為高斯濾波器;I(x,y)為圖像中點(x,y)的灰度值。
通過每一個采樣點與其所有的鄰近點(8鄰域點和上下相鄰尺度對應(yīng)的18個點)進行對比來尋找尺度空間圖像的極值點,當采樣點的數(shù)據(jù)大于或者小于所有相鄰點數(shù)據(jù)時,則該點為極值點數(shù)據(jù)。
(2)精確定位極值點位置。
對于上述步驟中得到的極值點,它可能會受到一些噪音的影響,以及可能會有較強的邊緣響應(yīng),關(guān)鍵點的尺度和位置可以使用擬合三維二次函數(shù)方法,并通過Hessian矩陣方法來消除邊緣響應(yīng),是否為所需要的特征點由式2表示:
(2)
其中,H表示點(x,y)處的Hessian矩陣。
(3)
實驗中提取了樣本圖像的SIFT特征。首先對圖像進行歸一化處理得到64*128的圖像,在高斯函數(shù)算法中,可利用其構(gòu)造尺度空間,然后檢測尺度空間中的關(guān)鍵點。文中選用的檢測窗口為16*16,在每個窗口能檢測到16(4*4)個關(guān)鍵點,然后在確定關(guān)鍵點的位置、尺度和方向后,通過高斯窗口進行加權(quán)計算得到具有方向的8個關(guān)鍵點。一個窗口有128維特征描述子,一幅64*128大小的圖像就會有4 096維SIFT特征。
HOG特征是可以用來檢測物體的特征描述子,常用于計算機視覺及圖像處理方面,在行人檢測中也應(yīng)用廣泛。測試樣本圖像中的HOG特征,首先將圖像分成小的單元格(cell),然后將每個像素梯度和方向的直方圖邊緣的單元格組合在一起,形成測試樣本圖像的HOG特征。
圖像中像素點(x,y)的水平方向梯度、垂直方向梯度分別為:
Dx(x,y)=H(x+1,y)-H(x-1,y)
(4)
Dy(x,y)=H(x,y+1)-H(x,y-1)
(5)
其中,H(x,y)為輸入圖像中像素點(x,y)處的像素值。
像素點(x,y)處的梯度幅值和梯度方向分別為:
(6)
α(x,y)=tan-1(Gy(x,y)/Gx(x,y))
(7)
實驗中對樣本圖像進行HOG特征提取,與SIFT特征提取相同,第一步先對圖像進行歸一化處理,然后將圖像分割為16*16像素的單元格。在梯度方向上被平均劃分成9個區(qū)間,然后統(tǒng)計分析單元格中每個區(qū)間像素的梯度方向直方圖,從而得到一個9維特征向量。通過每2*2個單元格組成一個塊掃描樣本圖像,掃描步長為一個單元,最后,將所有塊特性連接起來,形成完整的HOG特性。
SVM[15]是一種有監(jiān)督的學習模型,在模式識別、分類和回歸的研究中有重要作用。SVM的關(guān)鍵在于核函數(shù),如線性核函數(shù)、多項式核函數(shù)和高斯核函數(shù)等都比較常用。SVM方法是使用非線性映射算法,使非線性可分問題變成線性可分問題,其本質(zhì)就是將輸入變量全部映射到一個高維空間,構(gòu)造出最優(yōu)分類超平面來進行分類識別[16]。其中分類函數(shù)表示為:
f(x)=ωTx+b
(8)
其中,ω與空間維數(shù)有關(guān),其樣本點(xi,yi)到分類超平面的間距為yi(ωTxi+b),對ω和b進行歸一化,用ω/‖ω‖和b/‖b‖分別替換ω和b,即幾何間隔為f(x)/‖ω‖,則最大幾何間隔為:
(9)
式9為線性分類情況,如果是非線性分類,則按照式9進行分類則可能會降低準確率,因而加入松弛變量和懲罰因子,如下所示:
(10)
其中,ξi稱為松弛變量(slack variable),c為一個參數(shù),用于控制目標函數(shù)中兩項之間的權(quán)重。
文中算法的步驟主要分為:
(1)選取一段視頻并對其提取視頻幀圖像,將圖像轉(zhuǎn)化為灰度圖像,然后作歸一化處理;
(2)基于第一步分別對圖像進行SIFT和HOG特征提取,從而得到兩個特征集合,然后通過串行組合的方式來構(gòu)造SIFT和HOG融合特征集;
(3)通過SVM分類器對融合特征向量進行分類識別。
實驗是通過Matlab仿真完成的。選用KTH和Weizmann人體行為庫來驗證該算法的有效性。在KTH數(shù)據(jù)庫中,選出6個動作類:慢跑、鼓掌、畫圈、拳擊、散步和跑步;在Weizmann數(shù)據(jù)庫中,也選出6個動作類:跳起鼓掌、跳躍、跑步、單腿跳、散步和快速雙腿跳。隨機在數(shù)據(jù)庫的每類動作中選出60張圖像數(shù)據(jù),選出其中50張作為訓練集,剩下的10張圖像作為測試集。
將文中算法與單個特征的算法進行比較,結(jié)果如表1所示。
表1 各特征在KTH、Weizmann數(shù)據(jù)集的識別率 %
從表1中可以看出,在動作的正確識別率方面,文中的融合特征算法要明顯高于單特征算法,有效提高了分類器的識別率。這在基于KTH和Weizmann數(shù)據(jù)庫的實驗中也得到了證明,其識別率可達到91.7%。
對行為識別中常用到的兩種特征提取算法進行分析,利用SIFT和HOG以不同的側(cè)重描述樣本,其中SIFT主要用于檢測尺度空間的極值點,幫助辨識物體,獲取極值點位置方向等信息;HOG主要是通過計算圖像的梯度方向直方圖來獲取特征信息。從特征描述上來分析,SIFT相較HOG復(fù)雜,因此SIFT的特征分類效果較好。
實驗結(jié)果表明,融合特征比起兩種單特征的識別效果都要好。