趙雪章,席運(yùn)江,黃雄波
(1.佛山職業(yè)技術(shù)學(xué)院 電子信息系,廣東 佛山 528137; 2.華南理工大學(xué) 工商管理學(xué)院,廣東 廣州 510000)
在過去的幾年中,學(xué)者們嘗試克服靜態(tài)圖像的限制性,以獲得可靠的動(dòng)作識(shí)別結(jié)果[1,2]。目前用以識(shí)別圖像中人體動(dòng)作的方法主要有以下幾種[3]:基于特征模型的方法、基于實(shí)例學(xué)習(xí)的方法以及基于圖像-結(jié)構(gòu)的方法。為了提高動(dòng)作識(shí)別的性能,一些方法融入了額外的信息,例如目標(biāo)交互和上下文信息。還有一些組合算法,如文獻(xiàn)[4]提出的結(jié)合特征袋(bag-of-features,BoF)和支持向量機(jī)(support vector machine,SVM)分類器的方法;文獻(xiàn)[5]提出的結(jié)合姿態(tài)激活向量(posture activation vector,PAV)和SVM分類器的方法。然而,這些方法對(duì)于靜態(tài)圖像的識(shí)別率仍然較低。這是因?yàn)闇y(cè)試圖像中許多圖像的人體范圍為上半身,而上半身經(jīng)常呈現(xiàn)非特定動(dòng)作且容易與其它動(dòng)作相似。文獻(xiàn)[6]提出的Fusion+BoF方法使用了顏色和形狀描述符,所以在動(dòng)作分類中獲得了較優(yōu)性能,但其需要大量的處理時(shí)間。
為此,提出一種基于姿態(tài)庫和AdaBoost雙層分類模型的人體動(dòng)作識(shí)別方法,該方法的主要?jiǎng)?chuàng)新點(diǎn)如下:
(1)構(gòu)建一種兩層AdaBoost分類模型,利用第一層分類器找到目標(biāo)邊框的合適位置,以此訓(xùn)練由特征向量和空間信息組成的姿態(tài)庫,并通過第二層分類器模型來識(shí)別動(dòng)作。
(2)構(gòu)造了空間姿態(tài)激活向量(spatial PAV,SPAV),該向量利用姿態(tài)庫的空間位置為分類模型提供了與人體動(dòng)作相關(guān)的可判別信息。
本文方法主要分為4個(gè)部分,即創(chuàng)建姿態(tài)庫、訓(xùn)練姿態(tài)庫、構(gòu)建空間姿態(tài)激活向量(SPAV)和動(dòng)作識(shí)別。其基本流程如圖1所示,各步驟分別描述如下。
圖1 提出方法的流程
首先,基于Hausdorff距離來估計(jì)圖像塊之間的空間關(guān)系,以此構(gòu)建特定動(dòng)作的初始姿態(tài)庫。
然后,構(gòu)建一種雙層AdaBoost分類模型,基于動(dòng)作姿態(tài)庫來訓(xùn)練第一層分類器,并獲得最終姿態(tài)庫。這里采用與文獻(xiàn)[5]相似的方法創(chuàng)建姿態(tài)庫。利用第一層分類器找到圖像中人像邊框的合適位置,以此訓(xùn)練由特征向量和空間信息組成的姿態(tài)庫。
接著,根據(jù)第一層分類器生成姿態(tài)激活向量(PAV),為了考慮姿態(tài)庫的空間位置,構(gòu)造了空間PAV(SPAV)。
最后,將SPAV作為第二層分類器的輸入,對(duì)動(dòng)作進(jìn)行最終判別。其中對(duì)于每張圖像,將動(dòng)作類的SPAV進(jìn)行聚合,構(gòu)成一個(gè)級(jí)聯(lián)SPAV(CSPAV),并利用這些CSPAV來訓(xùn)練第二層分類模型。
在測(cè)試階段,應(yīng)用已訓(xùn)練的第一層分類器從輸入圖像中估計(jì)CSPAV,然后將CSPAV應(yīng)用到第二層分類器上。當(dāng)計(jì)算完所有c-動(dòng)作類的分?jǐn)?shù)之后,將具有最大分?jǐn)?shù)的類作為最終判決。
本文通過將圖像分解為一組部位來構(gòu)造姿態(tài)庫,每個(gè)姿態(tài)庫為從給定視角處捕獲人體動(dòng)作突出的部分。姿態(tài)庫中的每個(gè)實(shí)例來自人圖像的給定位置、方向和范圍處的一個(gè)對(duì)應(yīng)矩形區(qū)域。
為了替代傳統(tǒng)的歐氏距離,本文采用了一種Hausdorff距離[7]來估計(jì)圖像塊之間的空間關(guān)系。Hausdorff距離實(shí)現(xiàn)簡(jiǎn)單且對(duì)目標(biāo)空間位置的變化不敏感[8]。構(gòu)造姿態(tài)庫的算法步驟如下所示:
(1)利用包括2D關(guān)鍵點(diǎn)和動(dòng)作標(biāo)簽的訓(xùn)練圖像生成三維的n個(gè)隨機(jī)種子窗口。
(2)對(duì)于i=1到n執(zhí)行。
1)選取隨機(jī)種子窗口,并利用Hausdorff距離估計(jì)配置空間中從種子區(qū)域S到目標(biāo)隨機(jī)區(qū)域R的直接距離dS(R)
(1)
2)利用直接距離找到k=50個(gè)最近的實(shí)例,并標(biāo)記集群標(biāo)簽為i。
(3)結(jié)束。
(4)對(duì)于第i個(gè)集群,估計(jì)其為每類的熵
Ei(ω)=-P(ωi)×logP(ωi)
(2)
式中:P(ωi)為集群i為ω類的條件概率。
(5)選擇含有最低熵值Ei的m集群。接著,移除每個(gè)集群中不包括在該類的所有實(shí)例,最后將剩下的集群稱為姿態(tài)庫。
(6)每個(gè)姿態(tài)庫儲(chǔ)存了所有用于測(cè)試的實(shí)例的中心位置。
在該算法中,設(shè)置隨機(jī)種子窗口的數(shù)量為600。對(duì)于實(shí)時(shí)應(yīng)用,為了減少處理時(shí)間,可將所需選擇的m個(gè)集群(姿態(tài)庫)的數(shù)量從300減至30。
(3)
(4)
(5)
(6)
設(shè)定k(x)為Epanechnikov核函數(shù),該函數(shù)為各向同性內(nèi)核,其分配更大的權(quán)值到實(shí)例中心點(diǎn)處的關(guān)鍵點(diǎn),表示如下
(7)
圖2 所提取的姿態(tài)庫的實(shí)例
在選擇了一個(gè)動(dòng)作姿態(tài)庫后,從每個(gè)姿態(tài)庫中提取視覺特征,同時(shí)利用特征向量和模式分類器研究外觀模型。
盡管梯度方向直方圖(histogram of oriented gradients,HOG)特征是人體檢測(cè)和動(dòng)作識(shí)別中最常用的特征[9],但缺點(diǎn)是需要高的計(jì)算量。目前,局部二值模式(local binary pattern,LBP)特征[10]和一些改進(jìn)版本已在人體和目標(biāo)檢測(cè)中采用。其中,中心-對(duì)稱LBP(CS-LBP)特征的計(jì)算量較低,但其丟失了方向信息[11]。所以,本文采用了新的、更低維度的CS-LBP特征,即方向CS-LBP(OCS-LBP)。
OCS-LBP中,通過求和屬于k的所有梯度幅值,獲取每個(gè)方向k的OCS-LBP特征。利用最小-最大歸一化方法對(duì)k的最終集合,即OCS-LBP特征進(jìn)行歸一化。為了設(shè)計(jì)對(duì)部分遮擋和扭曲魯棒的特征描述符,將姿態(tài)庫細(xì)分為16×16像素。也就是說,64×64的姿態(tài)庫可以分為4×4個(gè)子塊,64×96的姿態(tài)庫可以分為4×6個(gè)子塊,64×128的姿態(tài)庫可以分為4×8個(gè)子塊,128×64的姿態(tài)庫可以分為8×4個(gè)子塊。然后對(duì)于每個(gè)子塊,分別計(jì)算每個(gè)OCS-LBP特征,并利用積分直方圖保存局部變化,以降低計(jì)算時(shí)間。最后,級(jí)聯(lián)局部OCS-LBP描述符,從而產(chǎn)生含有128個(gè)維度(16×8)、192個(gè)維度(24×8)和兩個(gè)256個(gè)維度(32×8,32×8)的OCS-LBP描述符。
對(duì)于利用外觀模型的動(dòng)作檢測(cè),這里應(yīng)用了一種雙層分類模型,該模型比單個(gè)分類器具有更好的分類性能和對(duì)噪音的抑制能力。第一層分類器為基于姿態(tài)庫訓(xùn)練的二進(jìn)制分類器。第二層分類器為一個(gè)多級(jí)分類器,將第一層分類器的輸出作為輸入。這里的兩級(jí)分類器都采用AdaBoost分類器。
隨機(jī)森林分類器能夠很好地解決高維度問題,例如人體檢測(cè)、目標(biāo)跟蹤、煙霧探測(cè)和目標(biāo)檢測(cè)等。與隨機(jī)森林方法基本類似,當(dāng)采用基于單個(gè)分類器對(duì)樣本進(jìn)行分類的效果不理想時(shí),通常希望能夠通過整合多個(gè)分類器來提高最終的分類性能,并稱這種不太理想的單個(gè)分類器為“弱分類器”[12]。與隨機(jī)森林方法不同,AdaBoost方法并不是簡(jiǎn)單地對(duì)多個(gè)分類器的輸出進(jìn)行決策投票,而是通過一個(gè)迭代過程對(duì)分類器的輸人和輸出進(jìn)行加權(quán)處理[13]。在不同應(yīng)用中可以采用不同類型的弱分類器,并在每一次迭代過程中,根據(jù)分類器的情況對(duì)各個(gè)樣本進(jìn)行加權(quán),而不僅僅是簡(jiǎn)單的重采樣。
對(duì)于姿態(tài)庫的第一層分類,其AdaBoost分類器訓(xùn)練過程描述如下:
(1)首先,假設(shè)已經(jīng)給定N個(gè)訓(xùn)練樣本x1,…,xN,用fmx∈-1,1m=1,…,M表示M個(gè)弱分類器對(duì)于樣本x的輸出,通過AdaBoost算法構(gòu)造這M個(gè)分類器并進(jìn)行決策。
(2)然后,再進(jìn)行初始化訓(xùn)練樣本x1,…,xN的權(quán)重ωi=1/N,i=1,…,N。
(3)對(duì)m=1→M,重復(fù)以下過程:
1)首先是利用ωi加權(quán)后的訓(xùn)練樣本來進(jìn)行構(gòu)造分類器fmx∈-1,1 ,(注意構(gòu)造分類器的具體算法可以不同,例如采用線性分類器和決策樹等)。
2)計(jì)算樣本采用ωi加權(quán)后的分類錯(cuò)誤率em,并令cm=log1-em/em。
所謂利用加權(quán)后的訓(xùn)練樣本構(gòu)造分類器,是指對(duì)分類器算法目標(biāo)函數(shù)中各個(gè)樣本對(duì)應(yīng)的項(xiàng)進(jìn)行加權(quán),因此需要根據(jù)具體采用的分類器類型具體分析。例如,對(duì)于最小平方誤差判別,加權(quán)后的均方誤差(mean squared error,MSE)準(zhǔn)則函數(shù)為
(8)
而對(duì)于決策樹或一些其它方法,則可以根據(jù)每個(gè)樣本的權(quán)值調(diào)整重采樣概率,按照這個(gè)概率對(duì)樣本進(jìn)行重采樣,用重采樣得到的樣本集構(gòu)造新的弱分類器。
根據(jù)以上算法流程,利用第一層分類器學(xué)習(xí)完姿態(tài)庫后,再利用第一層分類器生成姿態(tài)激活向量(PAV)。
利用第一層分類器學(xué)習(xí)完姿態(tài)檢測(cè)器之后,在測(cè)試圖像的人體范圍上檢測(cè)動(dòng)作,從而生成PAV。如果人體范圍內(nèi)利用SVM分類器,以掃描窗口方式檢測(cè)一個(gè)動(dòng)作,則PAV的第i項(xiàng)會(huì)通過投票方式?jīng)Q定。然而,所構(gòu)建的典型PAV的主要缺點(diǎn)是其沒有考慮動(dòng)作的空間位置,且需要大量的計(jì)算時(shí)間進(jìn)行動(dòng)作檢測(cè)[14,15]。例如,打電話動(dòng)作中的大部分實(shí)例是從人體的右上方提取的,如果動(dòng)作檢測(cè)器僅僅比較沒有位置信息的視覺外觀,則會(huì)在沒有空間信息的一些區(qū)域中檢測(cè)到多個(gè)動(dòng)作。
為了考慮動(dòng)作的空間位置和減少總計(jì)算時(shí)間,不從所有人體區(qū)域提取重疊的測(cè)試實(shí)例,取而代之的是,僅僅從動(dòng)作實(shí)例的中心位置提取測(cè)試實(shí)例。提取踢足球?qū)嵗囊粋€(gè)例子如圖3所示,由于踢足球主要是腿部動(dòng)作,為此提取的實(shí)例為人體的中下區(qū)域。
圖3 從動(dòng)作中心位置提取實(shí)例
掃描窗口是從給定的候選位置處提取的,檢測(cè)每個(gè)窗口,并將其作為初始位置附近的第i個(gè)動(dòng)作類。然后對(duì)每個(gè)檢測(cè)的動(dòng)作進(jìn)行投票,決定作為空間PAV(SPAV)的第i個(gè)項(xiàng)。SPAV的最后第i個(gè)項(xiàng)為所有動(dòng)作類型i的檢測(cè)分?jǐn)?shù)總和。對(duì)于一種動(dòng)作類型,本文使用動(dòng)作的5種不同尺寸。對(duì)于一種尺寸動(dòng)作,本文訓(xùn)練30個(gè)動(dòng)作。然后將動(dòng)作的5種尺寸連接到一個(gè)維數(shù)為150(5×30)的SPAV描述符。
第二層分類器將第一層分類器產(chǎn)生的SPAV作為輸入,并產(chǎn)生最終的多級(jí)動(dòng)作分類器。
從所有數(shù)據(jù)動(dòng)作圖像中提取完CSPAV(CSC)集合之后,和第一層分類器的方法一樣,利用CSPAV訓(xùn)練所有9個(gè)類別的第二層分類器。
在學(xué)習(xí)了第一和第二層分類器之后,將含有人體區(qū)域的輸入窗口應(yīng)用到第一層分類器和CSPAV。同時(shí),將第一層分類器的聚合輸出應(yīng)用到第二層分類器。在計(jì)算完所有c-動(dòng)作類別的分類分?jǐn)?shù)之后,利用最大分?jǐn)?shù)操作來給出最終類別,即
μ(c)=Max[score(1), …,score(C)]
(9)
如果動(dòng)作類別c的最高分?jǐn)?shù)μ(c)超過了閾值T,則將該輸入窗口動(dòng)作類別判定為c,表示為
(10)
在PASCAL2010和KTH動(dòng)作數(shù)據(jù)姿態(tài)庫上進(jìn)行實(shí)驗(yàn)。PASCAL2010數(shù)據(jù)姿態(tài)庫包含9種不同人體動(dòng)作,例如打電話、演奏樂器、讀書、騎自行車、騎馬、跑步、拍照、用電腦和走路。KTH數(shù)據(jù)集由6種自然動(dòng)作組成,包括走路、慢跑、快跑、拳擊、揮手和拍手,每個(gè)動(dòng)作由25個(gè)人完成。圖4給出了PASCAL2010數(shù)據(jù)姿態(tài)庫中每個(gè)動(dòng)作的樣本圖像。
圖4 PASCAL2010數(shù)據(jù)集中的9種動(dòng)作實(shí)例
為了進(jìn)行測(cè)試,從PASCAL2010數(shù)據(jù)姿態(tài)庫中選用454張9類動(dòng)作圖像,每類大約包含50張圖像。對(duì)于KTH動(dòng)作數(shù)據(jù)姿態(tài)庫,本文采用968張6類動(dòng)作圖像,且每個(gè)動(dòng)作類別至少有108張圖像。
利用C++語言編譯實(shí)現(xiàn)提出的人體動(dòng)作識(shí)別系統(tǒng)。在測(cè)試中,首先對(duì)檢測(cè)圖像進(jìn)行裁剪,使人體周圍留有足夠背景區(qū)域。然后縮放人體范圍,以致臀部和肩膀之間的距離為200個(gè)像素。接著,在人體范圍內(nèi)利用掃描方法和雙層分類器進(jìn)行動(dòng)作檢測(cè),從而獲得不同位置和尺寸的動(dòng)作。
對(duì)于訓(xùn)練分類器,每種動(dòng)作的訓(xùn)練實(shí)例圖像數(shù)量直接影響訓(xùn)練精度和時(shí)間消耗。實(shí)例圖像數(shù)量的增加可以改善識(shí)別性能,但同時(shí)也增加了運(yùn)行時(shí)間。
為了確定最佳訓(xùn)練圖像數(shù)量,進(jìn)行了相關(guān)實(shí)驗(yàn)。在PASCAL2010數(shù)據(jù)集上,通過改變動(dòng)作實(shí)例數(shù)量進(jìn)行實(shí)驗(yàn),用來選擇最優(yōu)數(shù)量,結(jié)果見表1。其中,采用平均精度(average accuracy,AP)作為度量來定量評(píng)估動(dòng)作識(shí)別性能,采用每幅圖像的平均識(shí)別時(shí)間來評(píng)估方法的計(jì)算復(fù)雜度??梢钥闯?,當(dāng)用于動(dòng)作識(shí)別的每類動(dòng)作實(shí)例數(shù)量為30時(shí),提出方法具有良好的識(shí)別性能,且其處理時(shí)間相對(duì)較短。在KTH數(shù)據(jù)集上執(zhí)行相同實(shí)驗(yàn),結(jié)果與PASCAL2010數(shù)據(jù)集相近。為此,來后續(xù)實(shí)驗(yàn)中,每類動(dòng)作選取30張圖像作為訓(xùn)練圖像,其它作為測(cè)試圖像。
表1 不同訓(xùn)練實(shí)例圖像數(shù)量下的識(shí)別性能
首先,在KTH和PASCAL2010數(shù)據(jù)集上執(zhí)行本文方法,統(tǒng)計(jì)各類動(dòng)作的識(shí)別結(jié)果。兩個(gè)數(shù)據(jù)集上,各類動(dòng)作的識(shí)別混淆矩陣如圖5和圖6所示。
圖5 在KTH數(shù)據(jù)集上分類的混淆矩陣
圖6 在PASCAL2010數(shù)據(jù)集上分類的混淆矩陣
可以看出,對(duì)于KTH數(shù)據(jù)集,本文方法的整體識(shí)別率較高。只在快跑和慢跑、拍手和拳擊之間有較高的錯(cuò)誤分類。這是因?yàn)镵TH數(shù)據(jù)集的動(dòng)作較為簡(jiǎn)單,且背景不復(fù)雜,所以獲得了較高的識(shí)別率。
對(duì)于PASCAL2010數(shù)據(jù)集,由于其動(dòng)作和背景復(fù)雜,其整體識(shí)別率不如KTH數(shù)據(jù)集。其中,本文方法對(duì)演奏樂器、騎自行車、跑步和走路的識(shí)別率較高,而對(duì)打電話、拍照和用電腦的識(shí)別率較低。這是因?yàn)檫@些動(dòng)作的相似度較高,例如很多打電話圖像被分類到演奏樂器類別上。
為了進(jìn)一步評(píng)估提出算法的性能,將其與幾種相關(guān)方法進(jìn)行比較,分別為文獻(xiàn)[4]提出的結(jié)合BoF和SVM的方法(BoF+SVM);文獻(xiàn)[5]提出的PAV+SVM方法;文獻(xiàn)[6]提出的基于BoF和SVM,且融合了顏色和形狀描述符的方法(Fusion+BoF)。在KTH和PASCAL2010數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果分別見表2和表3。
表2 KTH數(shù)據(jù)集上識(shí)別準(zhǔn)確率/%
這些結(jié)果證實(shí),PAV+SVM比BoF+SVM方法的識(shí)別率高,這表明PAV的有效性。但由于基礎(chǔ)PAV沒有考慮動(dòng)作的空間位置,所以比本文方法差。這就表明了PAV的空間位置和雙層分類器對(duì)辨別人體動(dòng)作非常有效。另外,F(xiàn)usion+BoF方法與本文方法的性能相近,這是因?yàn)槠涫褂妙伾托螤蠲枋龇黾恿溯斎胩卣?,所以獲得了較好的性能。但其計(jì)算量較大,需要消耗大量的時(shí)間。
我們還可以觀察到,所有測(cè)試方法對(duì)于一些人體的特定動(dòng)作類,例如演奏樂器和讀書等,具有較高的識(shí)別性能。而對(duì)于另一些類,例如打電話和拍照,具有較低的分類性能。這是因?yàn)闇y(cè)試圖像中的許多人體范圍包含上半身,而上半身經(jīng)常會(huì)擁有非特定動(dòng)作和與其它動(dòng)作相似的動(dòng)作。
表3 PASCAL數(shù)據(jù)集上識(shí)別準(zhǔn)確率/%
對(duì)各種方法在PASCAL2010數(shù)據(jù)集上識(shí)別每個(gè)圖像所需的時(shí)間進(jìn)行統(tǒng)計(jì),結(jié)果見表4??梢钥闯?,本文方法的平均速度為1.34 s,比PAV+SVM的平均速度快了約0.8 s。這就說明了結(jié)合空間位置的PAV比基礎(chǔ)PAV在時(shí)間效率方法有明顯提高。這是因?yàn)槠洳粡乃腥梭w區(qū)域提取測(cè)試實(shí)例,僅僅從動(dòng)作實(shí)例的中心位置提取測(cè)試實(shí)例。另外,F(xiàn)usion+BoF的處理時(shí)間最長(zhǎng),這是因?yàn)槠涫褂昧祟伾托螤蠲枋龇?,在提取特征和分類過程中需要更多的計(jì)算量。
表4 各種方法的平均識(shí)別時(shí)間/s
基于姿態(tài)庫和AdaBoost雙層分類模型提出了一種人體動(dòng)作識(shí)別算法。為了考慮姿態(tài)庫的空間位置,基于第一層分類器來訓(xùn)練姿態(tài)庫,獲得圖像的SPAV。級(jí)聯(lián)每張圖像的SPAV,將其作為第二層分類器的輸入。將提出的方法應(yīng)用到兩個(gè)動(dòng)作圖像數(shù)據(jù)集上,都獲得了良好的識(shí)別性能。
在今后研究中,將考慮融入上下文、背景等一些附加特征描述符到識(shí)別系統(tǒng)中,以此提高本文算法對(duì)一些相似動(dòng)作的識(shí)別性能。