錢銀中 沈一帆
動作識別是計算機視覺中的研究熱點.一個特定動作通常由一連串人體的肢體運動組成,因此長期以來研究者從視頻研究動作識別[1?5].生活經(jīng)驗告訴我們,人類具有從圖像中識別動作的能力.例如,圖6中的每幅圖像都有一個人在執(zhí)行一個動作,我們一眼就能看出這個人在干什么.隨著圖像分類和物體檢測技術(shù)的進步,近十年來出現(xiàn)了很多從靜止圖像識別動作的研究工作[6].
從靜止圖像中識別動作具有廣闊的應(yīng)用前景.首先,可以促進視頻識別動作的研究.視頻由一組按照時間順序排列的幀圖像組成,如果能夠設(shè)計新的算法,從少量圖像中識別動作,就可以減少冗余幀,提高計算效率.這種算法還可以與視頻中的時間維度結(jié)合,提出新的算法,進一步提高動作識別性能.其次,有助于圖像自動標注.由于Internet的興起,人們能夠從網(wǎng)絡(luò)上獲得海量圖像數(shù)據(jù).如果計算機能夠識別圖像中的動作,就可以把像素信息作為輸入,自動標注這些圖像的動作類別.另外,還有助于動作圖像的檢索和管理.目前搜索引擎檢索圖像主要還是依賴圖像周圍的文字,如果能夠從圖像中提取動作信息,無疑將更準確、更方便地檢索和收集動作圖像.
仔細分析一下可以發(fā)現(xiàn),人類通過圖像中的線索識別動作,這些線索包括:人體的姿態(tài)、與人交互的物體、以及背景等.研究靜止圖像中的動作識別有兩種思路.一種思路與人類識別動作類似,先從圖像中檢測人體姿態(tài)或與人交互的物體等高層語義信息,然后根據(jù)機器學(xué)習(xí)算法判定動作類別[7?9].另一種思路是提取圖像的整體特征,把動作識別當(dāng)作圖像分類問題[10]處理.
人體姿態(tài)是動作識別中最重要的語義線索.人體很容易被檢測到,檢測結(jié)果通常用一個矩形窗口表示人體的位置.Ikizler-Cinbis等[11]使用NMF(Non-negative matrix factorization)方法對訓(xùn)練集中的人體窗口進行姿態(tài)聚類,有相似姿態(tài)的圖像被劃分到同一個聚類中,然后對每個動作類別訓(xùn)練分類器.除了矩形窗口外,還有的方法使用人體輪廓表示人體.Wang等[12]用Canny邊緣檢測模板得到的一組邊界點作為人體的輪廓,然后對輪廓特征聚類,把圖像標注到不同的動作類別.
肢體整體難以反映姿態(tài)特征的細節(jié),而人體的各部件,例如胳膊、腿、軀干等無法變形的原子部件的組合結(jié)構(gòu)有豐富的動作線索.如果能夠識別這些部件以及它們的相對位置,就能夠更準確地識別動作類別.通過原子部件的組合配置描述人體姿態(tài)的經(jīng)典算法是基于部件的Pictorial模型[13?14].遺憾的是,這方面的研究還很不成熟,通過這些原子部件檢測人體姿態(tài)只能在一些特定的數(shù)據(jù)集上做實驗,檢測結(jié)果無法用于識別動作.為了避免原子部件在檢測中顯著性不足的缺點,研究者提出了Poselet[15?16].Poselet是由訓(xùn)練集中同一肢體部件具有相同關(guān)鍵點配置的圖像窗口實例訓(xùn)練而來的檢測模板.一個動作通常由一連串變化的姿態(tài)組成,而一幅圖像只能抓住其中一個快照.即使是同一個姿態(tài),從不同角度拍攝,得到的圖像也會千差萬別.除此以外,還要處理人的高矮胖瘦以及不同服飾引起的的外貌特征差異.因此,研究者需要定義一組Poselet描述同一部件的不同姿態(tài).由于Poselet的粒度可以從最小的原子部件到整個人體,研究者可以根據(jù)檢測中的顯著性大小、是否包含姿態(tài)和動作語義信息等要求定義不同粒度和種類的Poselet.Yang等[17]對左胳膊、右胳膊、肢體上部和腿四個部件分別訓(xùn)練一組反映其姿態(tài)變化的Poselet,通過一個星形的基于部件的模型把這些部件連接起來.在此基礎(chǔ)上,Wang等[18]提出了分層的基于部件的模型,該模型是由20個部件節(jié)點組成的有環(huán)網(wǎng)狀結(jié)構(gòu).
本文用Poselet向量空間中的坐標表示肢體部件的姿態(tài),然后根據(jù)這一中間層特征識別動作.與這一特征類似的有視頻動作識別研究中的局部運動部件[19],這一中間層特征是由稠密軌跡[20]在局部時空域上聚集而成,描述諸如胳膊或腿等語義區(qū)域內(nèi)的運動特征.該方法先從訓(xùn)練集中提取稠密軌跡,然后在每一視頻中根據(jù)時間重疊、空間距離以及速度定義的距離對稠密軌跡聚集分組.如果把單個稠密軌跡看作一個可視化單詞,局部運動部件就是由一組稠密軌跡組成的可視化語句.與這一方法不同的是,本文可視化單詞是Poselet,Poselet是由二維圖像窗口訓(xùn)練來的檢測模板,由同一部件的Poselet描述該肢體部件的姿態(tài)變化,而稠密軌跡是從三維時空域中提取的運動特征,局部運動部件由一組相似的稠密軌跡組成,描述部件的運動特征.
隨著大規(guī)模訓(xùn)練數(shù)據(jù)集的出現(xiàn),CNN模型逐漸引起研究者的關(guān)注.在ILSVRC2012圖像分類挑戰(zhàn)賽中,Krizhevsky等[21]提出的深度網(wǎng)絡(luò)的性能超過了所有的已有分類算法.深度特征是從整體圖像中依次經(jīng)過多層架構(gòu)抽象而來.盡管深度特征有很強的判別能力,卻無法區(qū)分哪些特征各自反映了姿態(tài)、交互的物體、屬性以及背景等與動作有關(guān)的語義線索.
在動作識別領(lǐng)域,利用兩個通道的互補線索提高識別能力有很多研究.文獻[17?18]從圖像局部區(qū)域中提取姿態(tài)特征,從圖像全局中提取整體特征,目標函數(shù)由局部特征構(gòu)成的基于部件的模型加上整體特征組成,通過模型與圖像的匹配判別動作類別.在視頻處理領(lǐng)域,Simonyan和Zisserman[22]根據(jù)人類視覺識別的兩通道假說[23]訓(xùn)練兩個通道的CNN網(wǎng)絡(luò),一個CNN從幀圖像中提取靜態(tài)特征,另一個CNN從光流中提取運動特征,然后合并這兩者的深度特征實現(xiàn)動作識別.這種從兩個通道提取互補深度特征的方法在后續(xù)研究中有很多變體[24?28].例如,Glkioxari和Malik[24]利用這兩個通道的深度特征在幀圖像中檢測動作,并把每個幀中的檢測結(jié)果連接為三位時空域中的動作管道.Cheron等[25]對幀圖像中不同肢體部件提取靜態(tài)和運動深度特征,經(jīng)過合并形成視頻的姿態(tài)特征,然后識別動作類別.受這些研究的啟發(fā),本文通過探索深度特征與手工設(shè)計的姿態(tài)特征的互補關(guān)系.本文從圖像局部區(qū)域中提取姿態(tài)特征,從整體圖像提取深度特征,利用這兩個通道的互補線索識別靜止圖像中的動作.
本文的姿態(tài)特征是一組Poselet檢測結(jié)果組成的向量.本節(jié)介紹如何用Poselet表示肢體部件的姿態(tài),以及如何利用上下文檢測Poselet.
控制理論用狀態(tài)空間表示系統(tǒng)可能出現(xiàn)的狀態(tài)集合.狀態(tài)空間是以狀態(tài)變量為坐標軸形成的向量空間,系統(tǒng)的任何一個狀態(tài)可以用狀態(tài)空間中的一個坐標表示.向量空間這種表示可變狀態(tài)的方法也在計算機視覺中得到了應(yīng)用.例如,在底層信息處理中,彩色圖像中的每個像素由RGB三維向量空間中的坐標表示.這種表示法還被用來估計人臉和軀體的姿態(tài).Mikolajczyk等[29]訓(xùn)練了兩個人臉檢測模板,一個是側(cè)面的,一個是正面的,測試圖像中的人臉朝向由這兩個模板的檢測結(jié)果表示.Maji等[7]對訓(xùn)練集中的人臉和肢體朝向做了標注,對每個朝向訓(xùn)練Poselet,在測試圖像中檢測每個Poselet的觸發(fā)得分組成向量,臉部或肢體的朝向特征由這個向量表示.
本文把文獻[7]表示人臉和肢體朝向的方法推廣到每個選定的肢體部件.為了利用訓(xùn)練實例窗口中的交互物體和背景線索提高動作識別能力,同一Poselet的訓(xùn)練實例來自同一動作的訓(xùn)練集.數(shù)據(jù)集中人體都標注了關(guān)鍵點,對于每個肢體部件,先對同一動作訓(xùn)練集中該部件的圖像窗口按照關(guān)鍵點的坐標聚類.同一聚類組成一個Poselet的正實例,負實例從其他動作的訓(xùn)練集中隨機截取.圖1顯示了部分打高爾夫球動作中胳膊(包括左胳膊和右胳膊)Poselet的訓(xùn)練實例.
訓(xùn)練好Poselet以后,就可以從測試圖像中檢測每個Poselet的觸發(fā)得分.部件的姿態(tài)特征由這組Poselet檢測得分組成的向量表示.
人體整體具有所有的姿態(tài)信息,但是由于粒度太粗,難以從中提取姿態(tài)線索,尤其是胳膊和腿包含的與動作有關(guān)的姿態(tài)語義信息.另一方面,胳膊或腿等部件具有含部分姿態(tài).因此,本文使用圖2所示層次部件樹中10個肢體部件的姿態(tài)特征表示人體姿態(tài).圖2中,從根節(jié)點開始,依次根據(jù)包含關(guān)系產(chǎn)生子節(jié)點,第二層節(jié)點包括胳膊、軀干+頭、腿,第三層節(jié)點有左胳膊、右胳膊、頭、軀干、左腿、右腿.從根到葉,肢體粒度由粗變細,可以充分利用這些部件各自在檢測中的顯著性大小、是否包含姿態(tài)和動作語義線索等方面的優(yōu)點.更重要的是,后面將分析,圖2的層次部件樹結(jié)構(gòu)為檢測每個Poselet提供了一個精巧的上下文,可以用來抑制檢測錯誤,提高動作識別性能.
給定Poselet模板,可以在圖像中檢測這個Poselet,但這樣的檢測結(jié)果模棱兩可,難以辨別真假.首先,盡管物體檢測水平不斷提高,但仍然是一個未解決的開放問題.即使有足夠的訓(xùn)練實例,經(jīng)過充分訓(xùn)練的Poselet模板,也可能在沒有人的圖像中檢測到Poselet,而在有這個Poselet的圖像中卻無法檢測到.其次,Poselet是在訓(xùn)練實例數(shù)量少,質(zhì)量差的情況訓(xùn)練出來的.訓(xùn)練Poselet需要標注人體的關(guān)鍵點,這需要耗費大量時間,因此,無法為訓(xùn)練Poselet提供海量的實例.同一Poselet的訓(xùn)練實例是通過對關(guān)鍵點坐標聚類確定的,同一聚類中的實例在姿態(tài)和外貌上有很大差別,這種實例集合難以訓(xùn)練出完美的檢測模板.
圖1 打高爾夫球動作中部分胳膊Poselet訓(xùn)練實例Fig.1 Instances for some arm poselets in playing golf
在物體識別領(lǐng)域,物體所在的上下文被用來提高檢測能力.檢測Poselet與檢測物體本質(zhì)上是一致的,Poselet的檢測也可以利用上下文提高檢測能力.例如,一個圓形的輪廓可能是人臉,如果在它的下部檢測到軀體,則人臉的可能性就更大.Bourdev等[16]把Poselet作為相互檢測的上下文,為每個Poselet訓(xùn)練一個星型的上下文模型.這種上下文模型類似一個兩層的前向網(wǎng)絡(luò),輸入層是每個Poselet的檢測結(jié)果,在輸出層,每個Poselet利用上下文改善檢測結(jié)果,獲得上下文環(huán)境中的檢測得分.這個過程中,Poselet數(shù)量不變,但每個Poselet都利用了與其他Poselet的同時出現(xiàn)關(guān)系組成的上下文優(yōu)化了檢測結(jié)果.
本文的上下文模型也利用每個Poselet的檢測結(jié)果,不同的是,本文利用了肢體部件之間相對位置和同時出現(xiàn)的制約關(guān)系構(gòu)成的Pictorial結(jié)構(gòu),為檢測其中每個Poselet構(gòu)建了一個共有的上下文,見圖2.
圖2 層次部件樹Fig.2 Hierarchical part tree
圖2中的每個部件由一組Poselet表示.對于圖像I,a∈{a1,a2,···,am}= Λ 為動作類別,m是類別數(shù)量.L=(l1,l2,···,l10)是層次部件樹上10個肢體部件的位置,li=(pi,ti),其中pi=(xi,yi)是部件i在圖像中的坐標,ti∈Ti是該圖像中部件i的Poselet類別代號.用G=(V,E)表示層次部件樹,i∈V表示部件i,(i,j)∈E表示連接i和j的邊,層次部件樹構(gòu)成了一個Pictorial可變形模型[13]:
其中,Φa(I,li)是部件i的外貌潛在函數(shù),描述動作a中部件i的Poselet模板αti,a在圖像坐標pi處的匹配得分,按下式計算:
αti,a是Poseletti的模板,?(I,pi)是圖像pi處的HOG特征.Ψa(li,lj)是部件i和j的對偶潛在函數(shù),表示給定動作a時,兩者的變形代價和同時出現(xiàn)代價,按下式計算:
ψ(dpij)=[dxij,(dxij)2,dyij,(dyij)2]T,dxij=xi?xj?x0,dyij=yi?yj?y0,(x0,y0)是部件i相對于它的父節(jié)點j的錨接位置,即訓(xùn)練數(shù)據(jù)集中i相對于j的平均坐標差.與文獻[17?18]的可變形模型相比,式(1)中的對偶潛在函數(shù)(3)中除了類似彈簧的變形代價,還增加了同時出現(xiàn)代價,描述Poseletti與tj彼此相容還是互斥及其程度.不同的動作圖像中,有不同的同時出現(xiàn)關(guān)系.例如,在行走圖像中,胳膊Poselet以及腿Poselet或者都是背面的,或者都是側(cè)面的,不會出現(xiàn)背面的胳膊Poselet與側(cè)面的腿Poselet在同一圖像中.而在舞蹈圖像中,這種同時出現(xiàn)關(guān)系就經(jīng)常發(fā)生.Ψa(li,lj)中引入同時出現(xiàn)代價能夠進一步利用Poselet外貌之間的關(guān)系,更準確地描述Poselet之間的約束關(guān)系.在本文兩個數(shù)據(jù)集上的對比實驗結(jié)果表明,引入同時出現(xiàn)代價后,動作識別性能分別提高了2.7%和2.1%.
圖3是上下文模型的示意圖,每個部件節(jié)點由一組Poselet表示,這些部件節(jié)點的Poselet之間形成了緊密的制約關(guān)系.圖中第二層的第一個節(jié)點列舉了三個姿態(tài)各異的Poselet,每個Poselet由四個訓(xùn)練實例表示,從身體朝向可以看出,第一個向前,第二個向后,第三個偏向右.如果在檢測第一個Poselet時,它的上層節(jié)點以及下層節(jié)點的錨節(jié)點附近出現(xiàn)了很強的相容Poselet信號,上下文環(huán)境就支持這個Poselet,因此要提高它的檢測得分.沿著樹的邊直到根節(jié)點以及其他節(jié)點,可以從樹中每個節(jié)點獲得檢測這個Poselet的支持或扣分.可見,這一模型為檢測Poselet提供了一個結(jié)構(gòu)嚴密的上下文.
圖3 Poselet上下文模型Fig.3 Poselet context
一種簡單而幼稚的做法是為每個Poselet訓(xùn)練一個上下文模型.這樣,把待檢測Poselet所在的節(jié)點作為根節(jié)點,利用Pictorial結(jié)構(gòu)[13]的推理,置信度傳播到根節(jié)點時,就可以得到這個Poselet在上下文空間L中的最優(yōu)得分.但這樣做,需要訓(xùn)練大量的模型.本文使用同一個模型,為層次部件樹上每個Poselet提供一個共有的上下文環(huán)境.
圖4是該上下文模型的示意圖.模型參數(shù)訓(xùn)練好以后,利用這個模型作為上下文環(huán)境,在圖像中逐一檢測其中的每個Poselet.圖中顯示了檢測到第二層節(jié)點的第三個Poselet時的情況.此時,該節(jié)點Poselet限制為一個,但檢測模板可以在圖像空間中移動,其他節(jié)點各自調(diào)整Poselet類別以及位置,使得目標函數(shù)取得最大值.式(1)匹配的目標函數(shù)為:
圖4 在上下文環(huán)境中檢測PoseletFig.4 Detecting Poselet in context
利用上下文模型檢測節(jié)點v的Poseletτ時,該節(jié)點的Poselet類別限制為τ,目標函數(shù)為:
等式右邊的第一項是τ在坐標pv=(xv,yv)的檢測得分,第二項是除v節(jié)點外的其他節(jié)點在各自li處的檢測得分,第三項是τ與節(jié)點v的父節(jié)點parent(v)之間的對偶潛在函數(shù),如果τ是根節(jié)點,這一項為0.第四項是v及其所有孩子節(jié)點之間的對偶潛在函數(shù)之和,如果v是葉子節(jié)點,這一項為0.最后一項是層次部件樹中與v節(jié)點無關(guān)的對偶潛在函數(shù)之和.
在動作圖像中檢測節(jié)點v的Poseletτ時,目標函數(shù)(5)衡量τ及其他部件節(jié)點的Poselet與上下文模型的匹配程度.匹配是一個置信度傳播的過程,這一過程可以通過Pictorial結(jié)構(gòu)[13]的距離轉(zhuǎn)換算法高效地實現(xiàn).置信度傳播從HPT的葉節(jié)點開始,到根節(jié)點結(jié)束.用Sa(I,li)表示節(jié)點i收到每個孩子傳來的置信度后的得分,則有:
其中,Ci={c1,c2,···}是i的孩子節(jié)點集合,當(dāng)i為葉節(jié)點時,mk(li)為0.Φa(I,li)是三維矩陣,保存部件i的一組Poselet在圖像二維空間中的檢測結(jié)果.當(dāng)Poseletτ位于i節(jié)點時,只保留τ的二維矩陣,其他Poselet的檢測結(jié)果均設(shè)置為0.節(jié)點i向它的父節(jié)點j傳播的置信度為:
式(6)匹配以后可以返回每個節(jié)點的坐標和Poselet類別,因此模型訓(xùn)練是一個結(jié)構(gòu)支持向量機的訓(xùn)練問題.首先使用初始模型根據(jù)式(6)在訓(xùn)練圖像上匹配,獲得返回結(jié)果形成的特征向量,據(jù)此訓(xùn)練模型參數(shù).本文訓(xùn)練過程使用隨機坐標下降法[30],下面介紹模型參數(shù)的訓(xùn)練過程.
本文使用上下文模型的目的不是這個返回結(jié)果,而是抑制檢測錯誤.在沒有Poseletτ的圖像中式(6)得分應(yīng)該低,而在有τ的圖像中,如果返回的Poselet類別和坐標與實際值吻合,得分應(yīng)該高.
給定N個訓(xùn)練圖像,Ii表示第i個圖像,Li是圖像中第i個部件的坐標和Poselet類別的標注,Poselet類別是訓(xùn)練實例聚類以后分配的聚類編號,坐標是該部件內(nèi)所有關(guān)鍵點的中心坐標,Ai∈{a1,a2,···,am}= Λ 是圖像的動作類別,對動作a訓(xùn)練上下文模型θa=(αa,βa,ba)的目標函數(shù)是:
約束(12)中,對于負實例,?i=1.訓(xùn)練過程中,為了確保目標函數(shù)是開口向下的凸函數(shù),當(dāng)變形代價參數(shù)βa中的二次變形權(quán)重為負時,將其調(diào)整為0.01.
Alex的CNN網(wǎng)絡(luò)[21]由五層卷積網(wǎng)絡(luò)和三層全連通網(wǎng)絡(luò)組成.第一層卷積網(wǎng)絡(luò)的輸入是經(jīng)過預(yù)處理的三維圖像,最后一層全連通網(wǎng)絡(luò)的輸出是對應(yīng)1000種物體類別的向量,據(jù)此判定輸入圖像的類別,中間每層網(wǎng)絡(luò)的輸出是下一層網(wǎng)絡(luò)的輸入.這一架構(gòu)的底層從圖像提取諸如方向、梯度、顏色、頻率等底層特征,經(jīng)過連續(xù)多次的卷積計算,形成豐富的中間層特征,以及更加抽象且有判別能力的高層特征[31].
CNN是一個龐大的多層結(jié)構(gòu),Alex的8層CNN網(wǎng)絡(luò)有6千萬個參數(shù)和65萬個神經(jīng)元.從CNN提取深度特征,首先需要百萬數(shù)量級的圖像數(shù)據(jù)集訓(xùn)練CNN網(wǎng)絡(luò).否則,訓(xùn)練過程中產(chǎn)生過度擬合,而在測試數(shù)據(jù)上則無法得到理想的結(jié)果.本文的難題是訓(xùn)練數(shù)據(jù)集只有數(shù)千個訓(xùn)練圖像,無法提供足夠的訓(xùn)練數(shù)據(jù),對此有兩種解決方法.
第一種方法是預(yù)訓(xùn)練和精細調(diào)節(jié).先在有足夠訓(xùn)練實例的數(shù)據(jù)集上訓(xùn)練預(yù)備模型,然后以預(yù)備模型的參數(shù)初始化CNN網(wǎng)絡(luò),在新的數(shù)據(jù)集上以更小的速度訓(xùn)練最終模型.Alex網(wǎng)絡(luò)出現(xiàn)以來,很多訓(xùn)練實例數(shù)量受限的研究選擇此方法先在ILSVRC 2012數(shù)據(jù)集訓(xùn)練預(yù)備模型,然后在各自的數(shù)據(jù)集上精細調(diào)節(jié)模型參數(shù)[32].第二種方法是利用CNN網(wǎng)絡(luò)良好的領(lǐng)域適應(yīng)性,不做精細調(diào)節(jié),直接把第一種方法中的預(yù)備模型作為一個黑盒的特征提取器,對新數(shù)據(jù)集中的圖像提取深度特征.使用這種方法,Donahue等[31]在ILSVRC 2012數(shù)據(jù)集訓(xùn)練CNN模型,用來對鳥類數(shù)據(jù)集以及場景數(shù)據(jù)集提取深度特征.
圖5 提取深度特征Fig.5 Extract deep features
本文以第一種方法提取深度特征.預(yù)訓(xùn)練使用Alex的8層網(wǎng)絡(luò)結(jié)構(gòu),在ILSVRC 2012訓(xùn)練集上訓(xùn)練預(yù)備模型,參見圖5上部,其中C表示卷積層,F表示全連通層.用預(yù)備模型C1~F7層的參數(shù)初始化新模型的C1~F7層以后重新開始精細訓(xùn)練,新模型F8層的初始參數(shù)隨機生成,輸出類別數(shù)量設(shè)置為數(shù)據(jù)集動作類別的數(shù)量5.精細調(diào)節(jié)訓(xùn)練的初始速度設(shè)置為0.0001,即訓(xùn)練預(yù)備模型初始速度的十分之一.
下面分別介紹本文使用的數(shù)據(jù)集,姿態(tài)特征單獨使用時的動作識別性能,CNN網(wǎng)絡(luò)的動作識別性能,以及姿態(tài)特征與深度特征混合使用后的性能.
在動作識別中,PASCAL VOC 2012動作數(shù)據(jù)集被廣泛用來檢驗識別算法,并且與其他算法做性能比較.但這個數(shù)據(jù)集很多圖像中的人體只有部分可見.例如很多閱讀或者玩電腦的圖像只有上半身,打電話和攝影的很多圖像只有頭部和胳膊的一部分.本文的姿態(tài)特征從肢體各部件中依次提取,要求肢體的所有部分出現(xiàn)在圖像中,因此不使用這個數(shù)據(jù)集.
實驗使用一個靜止圖像數(shù)據(jù)集和一個視頻截圖數(shù)據(jù)集,本文在靜止圖像數(shù)據(jù)集的訓(xùn)練集上訓(xùn)練模型,然后用同一模型分別評價在靜止圖像數(shù)據(jù)集以及視頻截圖數(shù)據(jù)集上的性能.
靜止圖像數(shù)據(jù)集是Ikizler-Cinbis等[11]從互聯(lián)網(wǎng)收集的靜止圖像.Cinbis等以動作名稱為關(guān)鍵字用Google以及Yahoo搜索引擎檢索圖像,然后通過迭代執(zhí)行檢測人體和去除無關(guān)圖像的無監(jiān)督方式對搜索得到的數(shù)據(jù)集進行清洗.數(shù)據(jù)集共有2458個圖像,分別屬于5個動作,舞蹈、打高爾夫球、跑步、坐和行走,部分圖像參見圖6.這些圖像在拍攝角度,人體外形以及人體姿態(tài)上有非常大的差別.同行算法[17?18]對該數(shù)據(jù)集中的關(guān)鍵點做過標注,但是沒有公開標注結(jié)果.本文首先對其中每個人體標注17個關(guān)鍵點,包括左右眼睛、左右耳朵、鼻子、左右手關(guān)節(jié)、左右肘關(guān)節(jié)、左右肩關(guān)節(jié)、左右臀關(guān)節(jié)、左右膝關(guān)節(jié)、左右腳關(guān)節(jié),參見圖7.根據(jù)標注結(jié)果從原始圖像中截取128×64大小的人體圖像,把其中1/3的圖像作為訓(xùn)練集,1/3作為檢驗集,剩下1/3作為測試集.
另一個數(shù)據(jù)集是Niebles等收集的低分辨率視頻數(shù)據(jù)集YouTube[33].Ikizler-Cinbis等[11]用人體檢測模板先對這個數(shù)據(jù)集的幀圖像做人體檢測,然后對檢測到的正確結(jié)果用矩形框做了標注,并標注了動作類別.與文獻[11,17]一樣,本文從標注的矩形框中截取人體窗口,作為視頻截圖數(shù)據(jù)集.該數(shù)據(jù)集的動作名稱和數(shù)量與前一個數(shù)據(jù)集一致.由于人體窗口是按照檢測結(jié)果截取的,存在人體不在圖像中心位置,人體尺度大小不一的問題,圖8顯示了其中的部分圖像.
圖6 靜止圖像數(shù)據(jù)集中的部分圖像Fig.6 Some images in static image data set
圖7 標注了關(guān)鍵點的圖像Fig.7 Some images with annotated key points
上下文模型訓(xùn)練好以后,對于給定的圖像,就可以根據(jù)(5)計算每個Poselet在層次部件樹環(huán)境中的檢測得分,然后組合成人體的姿態(tài)特征.層次部件樹有10個節(jié)點,每個節(jié)點由12個Poselet表示,共5個動作,姿態(tài)特征的維度為10×12×5=600.本文在靜止圖像數(shù)據(jù)集的訓(xùn)練集上訓(xùn)練線性SVM,然后分別在靜止圖像數(shù)據(jù)集和視頻截圖數(shù)據(jù)集上評價動作識別性能.
由于沒有公開靜止圖像數(shù)據(jù)集的標注,本文實驗以及同行算法[17?18]各自標注關(guān)鍵點,訓(xùn)練集和測試集的劃分也不一致.這種情況下,僅僅比較動作識別精度是不夠的.由于同行算法[11,17?18]都把對整體圖像HOG特征的多類別SVM作為基準算法,本實驗沿用這一基準,下列性能比較中把相對于基準算法的性能提升作為一個重要的性能評價指標.
表1顯示了靜止圖像數(shù)據(jù)集上本文的姿態(tài)特征與同行算法的動作識別精度比較,其中平均性能是5個動作識別精度的平均值.表1中CNN黑盒是利用文獻[31]訓(xùn)練的CNN網(wǎng)絡(luò)作為特征提取器,從動作圖像中提取深度特征,然后使用線性SVM 分類的結(jié)果.Poselets[7]是本文的姿態(tài)特征在沒有應(yīng)用上下文模型的分類性能.從中可以看到,利用上下文模型后,本文的姿態(tài)特征性能提高了5.07%.與其他平面特征相比,本文的姿態(tài)特征具有最好的平均精度,且識別精度比基準算法提高了9.99%,這兩個指標非常接近CNN黑盒[31]提取的深度特征.
表2是視頻截圖數(shù)據(jù)集上的動作識別性能.這個數(shù)據(jù)集是根據(jù)人體檢測結(jié)果標注的,圖像中人體尺度大小差別很大,而且很多圖像中人體沒有居中.同行算法multiLR_NMF[11]采用抖動技術(shù)使得人體大小適中且居中布置,降低了識別難度,動作識別性能及基準算法的識別性能有很大提高.從表2可以看到,本文的姿態(tài)特征在沒有對截圖圖像做預(yù)處理的情況下,取得了與同行算法[11]非常接近的平均識別精度,與基準算法比較提高了14.16%,而算法[11]只比基準算法提高了4.26%.在該數(shù)據(jù)集上,本文姿態(tài)特征的性能與CNN黑盒[31]特征幾乎持平.
表2 視頻截圖數(shù)據(jù)集上的動作識別精度(%)Table 2 Precision on image form video data set(%)
本文通過預(yù)訓(xùn)練和精細調(diào)節(jié)方法訓(xùn)練CNN網(wǎng)絡(luò),先在ILSVRC 2012訓(xùn)練集上訓(xùn)練預(yù)備模型,然后在靜止圖像數(shù)據(jù)集上精細調(diào)節(jié)模型參數(shù).為了展示使用預(yù)備模型的效果,本文對使用預(yù)訓(xùn)練模型前后在靜止圖像數(shù)據(jù)集上做了對比實驗.前者對C1~F8層均使用隨機的初始數(shù)據(jù),在靜止圖像數(shù)據(jù)集的訓(xùn)練集上訓(xùn)練CNN網(wǎng)絡(luò).圖9比較了使用預(yù)備模型前后CNN訓(xùn)練中出錯率的變化過程.從圖中可以看到,沒有使用預(yù)備模型的情況下,訓(xùn)練結(jié)束時的出錯率為37%,經(jīng)過預(yù)訓(xùn)練和精細調(diào)節(jié)出錯率降低到28%,下降了9%.可見,通過精細調(diào)節(jié),很大程度上緩解了過度擬合問題.
CNN的第一層卷積網(wǎng)絡(luò)檢測圖像中的頻率、方向、顏色等底層特征,有判別能力的特征在高層[21].本文從卷積網(wǎng)絡(luò)的最后一層C5開始,依次提取圖像的C5、F6、F7層輸出分別組成深度特征向量,參見圖5下部,通過實驗驗證深度特征與本文提出的姿態(tài)特征在動作識別中的互補作用.
圖5中,C5是Alex網(wǎng)絡(luò)的最后一個卷積層,對C4層輸出的卷積運算結(jié)果執(zhí)行Relu非線性運算后,再經(jīng)過max合并,C5層的輸出是一個6×6×256=9216矩陣.F6層通過6×6×256×4096卷積模板對C5輸出執(zhí)行全連通卷積運算,然后執(zhí)行Relu變換,輸出是一個4096維向量.F7層經(jīng)過4096×4096全連通卷積,輸出特征仍然是4096維向量.
圖9 使用預(yù)備模型前后CNN訓(xùn)練過程top1錯誤率比較Fig.9 Comparison of top1 error between whether using pre trained model
表3是靜止圖像數(shù)據(jù)集上本文提出的姿態(tài)特征,CNN,以及姿態(tài)特征與不同深度特征混合后的性能比較.其中CNN是通過預(yù)訓(xùn)練和精細調(diào)節(jié)的CNN深度網(wǎng)絡(luò)分類的結(jié)果,姿態(tài)特征和深度特征的混合是把兩者連接后使用線性SVM 的分類結(jié)果.從表中可以看出,CNN以71.7%精度高于姿態(tài)特征的識別精度.每種姿態(tài)特征與不同深度特征混合以后,性能均超過CNN以及姿態(tài)特征單獨使用時的性能,且三種深度特征有不同的表現(xiàn).姿態(tài)特征與F6和C5混合后的性能比較接近,高出與F7混合后的性能1.4個百分點.
表3 靜止圖像數(shù)據(jù)集姿態(tài)特征、CNN及混合后性能比較(%)Table 3 Precision comparison on static image data set(%)
表4是視頻截圖數(shù)據(jù)集上本文提出的姿態(tài)特征、CNN、以及姿態(tài)特征與不同深度特征混合后的性能比較.從表4可以看到與表3類似的結(jié)果,即姿態(tài)特征與深度特征的混合使用遠遠大于兩者單獨使用的性能.
從表3和表4可以看出,對不同的動作類別,姿態(tài)特征和CNN深度特征各有優(yōu)勢.對于跑步動作,兩個數(shù)據(jù)集上姿態(tài)特征的性能均高于CNN深度特征,因為跑步中的人體姿態(tài)明顯不同于其他四個動作,尤其是胳膊和腿的姿態(tài).打高爾夫球也有獨特的人體姿態(tài),視頻截圖數(shù)據(jù)集上的結(jié)果顯示姿態(tài)特征明顯優(yōu)于深度特征.而舞蹈動作中的很多姿態(tài)與行走以及坐相似,這三種動作的姿態(tài)容易混淆.表3和表4中顯示,對這三種動作,從整體圖像提取的深度特征性能高于姿態(tài)特征.
表4 視頻截圖數(shù)據(jù)集姿態(tài)特征、CNN及混合后精度比較(%)Table 4 Precision comparision on video data set(%)
為了進一步認識姿態(tài)特征和深度特征在動作識別中的互補作用,圖10顯示了部分姿態(tài)特征識別正確而深度特征識別錯誤的圖像,圖11顯示了部分深度特征識別正確而姿態(tài)特征識別錯誤的圖像,兩圖左側(cè)是靜止圖像數(shù)據(jù)集中的圖像,右側(cè)是視頻截圖數(shù)據(jù)集中的圖像.圖10中的每個圖像都有典型的動作姿態(tài),但往往包含了干擾動作識別的背景,甚至有些是無背景的卡通圖像,可見,這類圖像中深度特征不如姿態(tài)特征.圖11中的圖像有些沒有明顯的動作姿態(tài),有些尺度過大或過小,但圖像中包含該動作的背景或物體,例如凳子、球場等等,這類圖像中,深度特征的識別能力超過姿態(tài)特征.
圖10 姿態(tài)特征識別正確而深度特征識別錯誤的圖像Fig.10 Some images recognized accurately by pose feature but falsely by deep feature
圖11 深度特征識別正確而姿態(tài)特征識別錯誤的圖像Fig.11 Some images recognized accurately by deep feature but falsely by pose feature
靜止圖像中的動作可以通過圖像局部中的姿態(tài)線索識別,也可以對整體圖像訓(xùn)練CNN網(wǎng)絡(luò)識別.姿態(tài)特征描述人體的姿態(tài)語義信息,深度網(wǎng)絡(luò)中的高層特征是經(jīng)過深度學(xué)習(xí)得到的抽象特征,本文通過實驗驗證了兩者在動作識別中的互補關(guān)系.為了在訓(xùn)練實例數(shù)量有限的數(shù)據(jù)集上提取深度特征,通過預(yù)訓(xùn)練和精細調(diào)節(jié)的方法訓(xùn)練深度網(wǎng)絡(luò),然后提取C5、F6、F7三層的輸出作為深度特征.實驗結(jié)果表明,這三層特征與姿態(tài)特征混合使用,性能均得到很大提升,且遠遠超過了單獨使用CNN的性能.兩個數(shù)據(jù)集上的實驗結(jié)果表明,F6層深度特征與姿態(tài)特征混合使用性能最好,且最穩(wěn)定.