張恒鑫,葉穎詩(shī),蔡賢資+,魏福義
(1.華南農(nóng)業(yè)大學(xué) 數(shù)學(xué)與信息學(xué)院,廣東 廣州 510642; 2.電子科技大學(xué) 信息與軟件工程學(xué)院,四川 成都 610054)
人體動(dòng)作識(shí)別是智能社會(huì)的重要輔助技術(shù),在長(zhǎng)者看護(hù)、人機(jī)交互、智能安防、視頻搜索和敏感場(chǎng)所異常監(jiān)控等方面都有著應(yīng)用價(jià)值。視頻中存在著人體、物體、事件和場(chǎng)景等復(fù)雜的信息,本文研究的人體動(dòng)作識(shí)別是對(duì)視頻中多種信息的快速高效分析和理解。
以特征是手工設(shè)計(jì)或自動(dòng)學(xué)習(xí)作為區(qū)分依據(jù),可分成傳統(tǒng)的動(dòng)作識(shí)別方法和基于深度學(xué)習(xí)的動(dòng)作識(shí)別方法兩種。為減少特征的維度和提高識(shí)別效率,傳統(tǒng)的動(dòng)作識(shí)別方法一般需要先尋找視頻三維空間中的時(shí)空興趣點(diǎn),然后在其鄰域內(nèi)提取表達(dá)有效動(dòng)作特征[1],再在興趣點(diǎn)或軌跡的時(shí)空鄰域內(nèi)提取動(dòng)作特征。在目前的傳統(tǒng)動(dòng)作行為識(shí)別研究中,基于密集軌跡的識(shí)別技術(shù)取得了除深度學(xué)習(xí)方法外最好的實(shí)驗(yàn)效果[2],但傳統(tǒng)的行為識(shí)別方法只在特定場(chǎng)景下效果較為突出,難以移植。相反,深度學(xué)習(xí)方法可以自動(dòng)學(xué)習(xí)構(gòu)建出有效的動(dòng)作特征,特別適合復(fù)雜的場(chǎng)景,具有非常優(yōu)良的泛化能力和魯棒性。近年來(lái),基于深度學(xué)習(xí)的方法在計(jì)算機(jī)視覺(jué)領(lǐng)域取得了非凡的成果。但深度學(xué)習(xí)需要大量的數(shù)據(jù)支撐,不適合小型數(shù)據(jù)集的處理,且整個(gè)模型是端到端的,是個(gè)黑盒模型[3]。
在很多應(yīng)用場(chǎng)景,識(shí)別效率是非常重要的性能指標(biāo)。本文結(jié)合兩者優(yōu)勢(shì),提出一種借助深度學(xué)習(xí)模型獲取人體關(guān)節(jié)點(diǎn)信息并用傳統(tǒng)方法構(gòu)建時(shí)空特征的動(dòng)作識(shí)別算法,經(jīng)實(shí)驗(yàn)驗(yàn)證能得到快速高效的識(shí)別效率。
動(dòng)作的發(fā)出者是人體,非人體區(qū)域的特征不構(gòu)成人體動(dòng)作識(shí)別的主要判別依據(jù),模型的注意力應(yīng)聚焦在人體上?;诖?,本文提出先檢測(cè)出人體興趣區(qū)域,再對(duì)人體關(guān)節(jié)點(diǎn)進(jìn)行提取建模。算法提取的特征簡(jiǎn)單高效,且消除了復(fù)雜背景對(duì)人體動(dòng)作識(shí)別的擾動(dòng),具有良好的魯棒性。整體流程包括以下4個(gè)步驟,如圖1所示:
圖1 整體流程
(1)以一定間隔抽取一個(gè)視頻的若干幀,形成輸入幀序列;
(2)利用人體檢測(cè)算法得到各幀中感興趣的人體區(qū)域;
(3)借助人體姿勢(shì)估計(jì)算法得到人體區(qū)域中人體關(guān)節(jié)點(diǎn)的二維坐標(biāo)信息,并構(gòu)建人體骨架模型,然后計(jì)算關(guān)節(jié)向量的時(shí)空幾何角度描述特征;
(4)將行為特征輸入到訓(xùn)練好的k最近鄰(k-nearest neighbor,kNN)分類器中進(jìn)行分類,輸出行為標(biāo)簽。
人體檢測(cè)中特征的選擇尤其重要,例如Haar小波特征、edgelet特征和運(yùn)動(dòng)特征等。在目前的研究中方向梯度直方圖(histogram of oriented gradient,HOG)是使用最廣泛的人體檢測(cè)特征,它可以很好地捕捉和描摹人體,但存在著計(jì)算量大、運(yùn)算速度慢的致命缺陷[4],不適合對(duì)實(shí)時(shí)性要求較高的應(yīng)用場(chǎng)景。
表征身體外沿的輪廓特征可以提供人體檢測(cè)的重要信息,并且相鄰像素值差的正負(fù)是有效表達(dá)人體輪廓的關(guān)鍵[5]。而局部二值模式(local binary pattern,LBP)簡(jiǎn)潔編碼了相鄰像素值差的正負(fù)信息,具有無(wú)需預(yù)處理和后處理、灰度不變等優(yōu)點(diǎn)[6]。
如圖2所示,LBP算子在3×3的區(qū)域上進(jìn)行計(jì)算,用中心點(diǎn)灰度值順時(shí)針依次與相鄰8個(gè)灰度值比較。若比較的灰度值大于中心點(diǎn)灰度值,則該位置被賦值為1;若否,則該位置被賦值為0。隨后將按比較順序組成的二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù),最后以該十進(jìn)制數(shù)作為區(qū)域中心點(diǎn)的LBP值。
圖2 LBP算子
假設(shè)輸入是一張普通的RBG圖,首先需要將其轉(zhuǎn)換為圖3(a)的灰度圖以便下面的處理。為了讓LBP特征更加專注于人體的輪廓,本文采用廣泛使用的Sobel邊緣檢測(cè)算子處理灰度圖,其對(duì)邊緣定位準(zhǔn)確的同時(shí)具有很強(qiáng)的魯棒性[7]。在Sobel圖上提取LBP描述子,可以提取出更加有效的特征,并且過(guò)濾掉了許多噪聲。
圖3 灰度圖及Sobel圖像
在Sobel圖的基礎(chǔ)上,借助LBP算子可以得到LBP圖的每一個(gè)像素的灰度值大小。因?yàn)長(zhǎng)BP值的計(jì)算需要3×3的運(yùn)算區(qū)域,所以會(huì)忽略圖像周圍1個(gè)像素的區(qū)域。
算法將一個(gè)窗口份分割成m×n個(gè)單元(cell),將每2×2個(gè)相鄰的單元組成一個(gè)塊(block)。特征的提取在塊上進(jìn)行,統(tǒng)計(jì)每個(gè)塊中的LBP值直方圖,然后將所有塊的LBP直方圖串聯(lián)形成最終的LBP描述子(LBP Descriptor),如圖4所示,黑色邊界的小格子為單元,左上角深底色內(nèi)部虛線的大格子為塊。
圖4 窗口劃分
如圖5流程所示,為實(shí)現(xiàn)快速檢測(cè),使用一個(gè)線性支持向量機(jī)(support vector machine,SVM)分類器和一個(gè)非線性SVM分類器級(jí)聯(lián)的方法。首先使用線性分類器Hlin以滑動(dòng)窗口的方式對(duì)輸入的圖像進(jìn)行多尺度掃描,排除非人體區(qū)域。借助線性分類器Hlin,可以排除大部分(高于90%)的區(qū)域。再使用非線性分類器Hlik精確判別經(jīng)過(guò)線性分類器Hlin篩選出來(lái)的小部分區(qū)域,最后得到人體區(qū)域。
圖5 級(jí)聯(lián)SVM工作流程
關(guān)于級(jí)聯(lián)SVM的定義以及如何利用線性SVM分類器進(jìn)行快速掃描,請(qǐng)參見(jiàn)文獻(xiàn)[5]。
最后需要對(duì)檢測(cè)結(jié)果進(jìn)行非極大值抑制(non-maximun suppression,NMS),這會(huì)幫助得到最終的人體區(qū)域,并且可以有效消除誤報(bào)。非極大值抑制的工作流程如下:
(1)按得分(Score)降序排列待處理候選框集合H;
(2)選出得分最高的候選框h。遍歷集合H中的其余候選框,與最優(yōu)候選框h計(jì)算面積交并比(interection-over-union,IoU)。若IoU高于某個(gè)閾值(一般為0.3~0.5),則認(rèn)為該候選框與最優(yōu)候選框h重疊,將此框從集合H中移出;
(3)重復(fù)步驟(2),直到集合H不再變化。
從圖6看出,經(jīng)過(guò)非極大值抑制處理,左上角的誤報(bào)被消除。
圖6 人體檢測(cè)結(jié)果與非極大值抑制效果
人體關(guān)節(jié)點(diǎn)(Joint)對(duì)于描述人體姿態(tài)以及行為具有十分關(guān)鍵和有效的信息。當(dāng)人體表征為不同的姿勢(shì)時(shí),關(guān)節(jié)點(diǎn)與關(guān)節(jié)向量(骨骼)都呈現(xiàn)出不同的空間信息。人的動(dòng)作可以看作是不同的人體姿態(tài)(如圖7所示)組成的一組序列。因此追蹤關(guān)節(jié)點(diǎn)的坐標(biāo)和探索關(guān)節(jié)向量的時(shí)空幾何角度信息,可以提供非常直接和可靠的信息來(lái)實(shí)現(xiàn)人體行為識(shí)別。
圖7 人體姿態(tài)
3.1.1 人體關(guān)節(jié)點(diǎn)和關(guān)節(jié)向量定義
算法使用公開(kāi)的OpenPose人體骨架識(shí)別系統(tǒng)以得到人體關(guān)節(jié)點(diǎn)的位置信息[8],其具有兩點(diǎn)優(yōu)勢(shì):
(1)可在普通的RGB圖像中捕捉COCO(common objects in context)模型人體骨架信息,提供場(chǎng)景中人體關(guān)節(jié)點(diǎn)的坐標(biāo)信息。
(2)采用自下而上的人體姿態(tài)估計(jì)算法,檢測(cè)速度較快,實(shí)時(shí)性好且精度較高。
本文采用B=(J,V) 來(lái)表示一個(gè)人體骨架信息,其中J表示的是關(guān)節(jié)點(diǎn)位置集合,V表示的是關(guān)節(jié)向量集合。下面給出關(guān)節(jié)位置與關(guān)節(jié)向量的定義:
關(guān)節(jié)位置(joint positions,JP):將t時(shí)刻(幀)中人體的第k個(gè)關(guān)節(jié)點(diǎn)位置定義為Jk(t)=(x,y)。
關(guān)節(jié)向量(joint vector,JV):根據(jù)關(guān)節(jié)點(diǎn)位置信息,對(duì)肢體的有效部分進(jìn)行關(guān)節(jié)向量提取,表示為Vmn(t)=Jn(t)-Jm(t)。
OpenPose提供了24個(gè)關(guān)節(jié)點(diǎn)信息,但并不是所有的關(guān)節(jié)點(diǎn)對(duì)人體姿勢(shì)描述有作用[9]。本文在構(gòu)成人體骨架的頭顱、軀干和四肢三大部分中,選取有效的關(guān)節(jié)點(diǎn)組成相關(guān)聯(lián)的關(guān)節(jié)向量,最終構(gòu)建符合人體學(xué)和行為學(xué)的人體骨架模型。具體選取的關(guān)節(jié)點(diǎn)和組成的關(guān)節(jié)向量可見(jiàn)圖8(b)以及表1。
圖8 人體骨架模型
表1 關(guān)聯(lián)關(guān)節(jié)向量定義
3.1.2 缺失值處理
利用OpenPose提取獲得的人體關(guān)節(jié)點(diǎn)二維坐標(biāo)存在兩種數(shù)據(jù)缺失問(wèn)題:一是場(chǎng)景中的人體部分被遮擋,導(dǎo)致部分關(guān)節(jié)點(diǎn)無(wú)法被檢測(cè);二是由于OpenPose自身算法模型的限制,對(duì)具有歧義的關(guān)節(jié)點(diǎn)信息產(chǎn)生數(shù)據(jù)丟失。
考慮到人體關(guān)節(jié)點(diǎn)的變化趨勢(shì)在極短時(shí)間內(nèi)可以看成是一段直線,本文使用最近鄰前后幀進(jìn)行線性回歸預(yù)測(cè)缺失值,是一種簡(jiǎn)單但有效的補(bǔ)全缺失關(guān)節(jié)點(diǎn)的方法。若關(guān)節(jié)點(diǎn)Jk(t)=(x1,y1) 發(fā)生缺失,記最近鄰前幀對(duì)應(yīng)關(guān)節(jié)點(diǎn)為Jk(t-l)=(x0,y0),最近鄰后幀對(duì)應(yīng)關(guān)節(jié)點(diǎn)為Jk(t+m)=(x2,y2),那么缺失關(guān)節(jié)點(diǎn)可以由式(1)計(jì)算得到
(1)
(1)關(guān)節(jié)向量方向余弦特征
當(dāng)場(chǎng)景中的人體進(jìn)行某種行為時(shí),其每一段關(guān)節(jié)向量與場(chǎng)景都構(gòu)成一定的位置和角度。因此本文提取關(guān)節(jié)向量與坐標(biāo)系的x軸和y軸所成夾角余弦值作為關(guān)節(jié)向量方向余弦特征。
(2)關(guān)節(jié)向量夾角余弦特征
另一方面,由同一關(guān)節(jié)點(diǎn)連接的兩段關(guān)節(jié)向量之間的空間夾角大小也為描述人體行為提供了重要信息。因此還需計(jì)算關(guān)聯(lián)關(guān)節(jié)向量之間的夾角余弦特征來(lái)描述人體行為。
(3)關(guān)節(jié)向量角度變化率特征
一般來(lái)說(shuō),引入時(shí)域的特征可以更好地表達(dá)人體的行為,增加類內(nèi)相似性,減少類間的相似性,提高識(shí)別率。因此本文提取同一關(guān)節(jié)向量不同時(shí)刻間的角度變化速率作為行為判別的時(shí)域特征。表2給出了同一個(gè)人在單手揮手和雙手揮手兩種行為中右肘到右腕關(guān)節(jié)向量的5組角度變化率值:
從表2中可以看出該關(guān)節(jié)向量在單手揮手時(shí)角度變化率近乎沒(méi)有,而在雙手揮手時(shí)角度變化率波動(dòng)劇烈,十分符合視頻中單手揮手是使用左手揮動(dòng)而右手近乎不動(dòng)的實(shí)際情況。
表2 右肘到右腕關(guān)節(jié)向量在兩種行為中的角度變化率
選取的3種關(guān)節(jié)向量的時(shí)空特征如圖9所示。
圖9 關(guān)節(jié)向量時(shí)空特征
人體檢測(cè)數(shù)據(jù)集正樣本中來(lái)自于MIT數(shù)據(jù)庫(kù),共924張圖片,大小為128×64,人體大小約80個(gè)像素,且人體在不同的光照條件下穿著不一樣的顏色、紋理和款式等的衣服,并有著不一樣的姿態(tài),包括低頭、行走和站立等,還有著正面和背面等視角;負(fù)樣本共50張?jiān)瓐D,囊括了森林、街道、建筑、車輛、冰川、郊野、山川和夜景等各類背景元素。在訓(xùn)練中,從負(fù)樣本原圖中隨機(jī)裁取了2000張負(fù)樣本,大小與正樣本一致。圖10給出了部分正、負(fù)樣本的示例。
圖10 正樣本與負(fù)樣本示例
表3給出了在本文算法以及常用的HOG+SVM方法使用相同訓(xùn)練集樣本訓(xùn)練后,在相同測(cè)試集上的實(shí)驗(yàn)結(jié)果,測(cè)試機(jī)環(huán)境配置為intel i5-8300H+8 G內(nèi)存。
表3 人體檢測(cè)模塊實(shí)驗(yàn)結(jié)果
從表3中可以看出,在測(cè)試環(huán)境中本文提出的人體檢測(cè)算法不僅檢測(cè)速度比HOG+SVM的方法快約16倍且精度更高。
人體動(dòng)作識(shí)別模塊選擇在廣泛使用的Weizmann數(shù)據(jù)庫(kù)上進(jìn)行實(shí)驗(yàn)。Weizmann數(shù)據(jù)庫(kù)包含10種動(dòng)作(具體的動(dòng)作如圖11所示),部分動(dòng)作與動(dòng)作之間相似度較高(如單腳跳和跑步),為精確識(shí)別帶來(lái)了不小的挑戰(zhàn)。每種行為由9個(gè)人在相同背景下完成,共計(jì)90個(gè)視頻。視頻長(zhǎng)度在28幀-146幀,平均長(zhǎng)度為61幀。
圖11 Weizmann數(shù)據(jù)庫(kù)定義的行為類別
在實(shí)驗(yàn)中,運(yùn)用OpenPose算法預(yù)先對(duì)每個(gè)視頻提取出每一幀內(nèi)人體關(guān)節(jié)點(diǎn)的二維坐標(biāo),每個(gè)視頻單獨(dú)形成一份數(shù)據(jù)文件。然后讀取每一份數(shù)據(jù)文件,處理缺失值后,以步長(zhǎng)4的間隔取樣6幀視頻幀作為單個(gè)的輸入幀序列,故一組動(dòng)作的總特征維度為28×6+12×6+14×(6-1)=310。圖12給出了原地跳躍加擊掌以及彎腰兩種動(dòng)作的幀序列骨架可視。
圖12 兩種動(dòng)作的幀序列骨架可視
本文選用kNN作為分類器,其在多分類任務(wù)上的表現(xiàn)要優(yōu)于SVM分類器[10]。經(jīng)過(guò)實(shí)驗(yàn),選取近鄰參數(shù)為3時(shí)取得較好的分類效果,可以達(dá)到88.93%的精度。不同近鄰個(gè)數(shù)選取對(duì)分類精度的影響如圖13所示。
圖13 不同近鄰參數(shù)的分類精度
圖14是本文行為識(shí)別算法的識(shí)別率混淆矩陣,可以看出基于人體關(guān)節(jié)點(diǎn)時(shí)空角度特征對(duì)于噪聲干擾魯棒性強(qiáng),大部分行為的類間區(qū)分度高,識(shí)別率高達(dá)95%以上。但走、并腳跳和原地跳躍這3類行為由于人體時(shí)空變化小、相似性高導(dǎo)致識(shí)別率僅有75%左右。
圖14 識(shí)別率混淆矩陣
人體動(dòng)作識(shí)別是計(jì)算機(jī)視覺(jué)研究領(lǐng)域一個(gè)非?;钴S的研究方向,未來(lái)將在各種基于視頻的應(yīng)用系統(tǒng)中廣泛使用,有重大的應(yīng)用價(jià)值[11]。本文結(jié)合傳統(tǒng)行為識(shí)別方法和深度學(xué)習(xí)方法提出的算法模型由于選取的特征簡(jiǎn)單高效且不需要進(jìn)行后處理,在實(shí)驗(yàn)中取得了較高的識(shí)別率和較為實(shí)時(shí)的檢測(cè)速度,比較適用于場(chǎng)景干涉不復(fù)雜和對(duì)實(shí)時(shí)性能要求較高的應(yīng)用環(huán)境,本文算法已經(jīng)作為聯(lián)合培養(yǎng)基地室內(nèi)人員實(shí)時(shí)定位系統(tǒng)的動(dòng)作識(shí)別輔助,后續(xù)工作中將對(duì)多人場(chǎng)景及人與場(chǎng)景交互等情況做進(jìn)一步擴(kuò)展和優(yōu)化。