蔡興泉,涂宇欣,余雨婕,高宇峰
基于少量關鍵序列幀的人體姿態(tài)識別方法
蔡興泉,涂宇欣,余雨婕,高宇峰
(北方工業(yè)大學信息學院,北京 100144)
針對傳統(tǒng)人體姿態(tài)識別數(shù)據(jù)采集易受環(huán)境干擾、難以解決人體運動姿態(tài)的相似性和人體運動執(zhí)行者的特征差異性等問題,提出一種基于少量關鍵序列幀的人體姿態(tài)識別方法。首先對原有運動序列進行預選,通過運動軌跡取極值的方法構造初選關鍵幀序列,再利用幀消減算法獲取最終關鍵幀序列;然后對不同人體姿態(tài)分別建立隱馬爾科夫模型,利用Baum-Welch算法計算得到初始概率矩陣、混淆矩陣、狀態(tài)轉移矩陣,獲得訓練后模型;最后輸入待測數(shù)據(jù),應用前向算法,得到對于每個模型的概率,比較并選取最大概率對應的姿態(tài)作為識別結果。實驗結果表明,該方法能夠有效的選取原始運動序列的關鍵幀,提高人體姿態(tài)識別的準確性。
人體姿態(tài)識別;序列幀;幀消減;隱馬爾科夫模型
人體姿態(tài)識別是計算機視覺領域的重要研究難題,在智能監(jiān)控、智能家居、人機交互、服務機器人等領域具有廣闊的應用前景。隨著社會的快速發(fā)展,智能服務機器人將會走進家庭,照顧人們的日常起居。面向智能服務機器人的人體姿態(tài)識別技術是當前急需解決的難題。
當前,關于人體姿態(tài)識別的數(shù)據(jù)采集易受環(huán)境干擾,采集的數(shù)據(jù)摻雜噪聲;人體運動姿態(tài)的相似性,比如打電話和吃東西、跑和跳等的過程相近;人體運動執(zhí)行者的特征有差異,比如身體高矮胖瘦、動作快慢等。針對這些問題,本文主要研究一種基于少量關鍵序列幀的人體姿態(tài)識別方法,通過紅外深度相機采集人體姿態(tài)序列幀數(shù)據(jù),實現(xiàn)幀消減減少數(shù)據(jù)量,最終實現(xiàn)人體運動的各種姿態(tài)識別。
對人體姿態(tài)識別技術運動序列進行特征提取及分類,按照不同的匹配方法可分為模板匹配法和概率網(wǎng)絡法[1]。模板匹配法是通過將待測序列與已定義的動作模板進行匹配,完成人體姿態(tài)識別。此類方法普遍具有實現(xiàn)簡單、運算復雜度低的特點,但存在對噪聲和運動時間間隔變化敏感、抗干擾能力差、準確性不足等問題[2-4]。概率網(wǎng)絡法是先定義人體的靜態(tài)姿勢,每個靜態(tài)姿勢為一個狀態(tài)。運動序列就是在該類狀態(tài)間進行一次遍歷,相似動作的運動序列通常具有相似的轉移概率[5]。進行人體運動識別時,通過計算各個遍歷的聯(lián)合概率,對相似的行為序列進行分類。該類方法通常計算復雜度較高,但準確性高、魯棒性強,也使其成為目前研究的主流。
文獻[6]提出了一種基于幀間距的關鍵幀提取的方法用于實現(xiàn)對運動序列關鍵幀的壓縮。該方法通過提取代表運動數(shù)據(jù)內(nèi)容的關鍵姿勢作為關鍵幀,然后消除運動序列中差異較大的幀,最后采用四元數(shù)球面插值進行關鍵幀重構。該方法在提取人體邊界姿勢時準確率較低。文獻[7]提出了一種基于部位檢測的人體姿態(tài)識別,使用隨機森林法將較小的人體部位合并,用均值偏移算法獲取各部位關節(jié)點的位置。該方法可提高圖像中的人體姿勢的準確率,但無法進行實時的姿態(tài)識別。文獻[8]提出了改進的基于支持向量機(support vector machine, SVM)的方法用于人體姿態(tài)識別。首先從運動序列中提取多種特征組成矩陣,之后利用奇異值分解等方法對運動采集數(shù)據(jù)進行特征降維,最后對數(shù)據(jù)降維后的子空間數(shù)據(jù)利用支持向量機進行特征分析,達到姿態(tài)識別的目的。該方法在數(shù)據(jù)規(guī)模較大時訓練效果欠佳。文獻[9]提出了基于三維人體關節(jié)特征和特定關節(jié)的隱馬爾科夫模型的方法用于人體運動識別。首先通過對所有單個運動建立隱馬爾科夫模型,然后通過對關節(jié)運動信息和時序判斷運動過程中關節(jié)點的自由度信息,確定不同的運動特征。最后,針對不同活動中特定關節(jié)點的三維信息利用隱馬爾科夫模型進行訓練和匹配。該方法使用時需要較高的先驗知識,存在需要預設隱狀態(tài)數(shù)量以及維度災難等問題。
隨著深度學習技術的不斷發(fā)展,基于深度學習的相關算法也廣泛應用于人體姿態(tài)識別技術[10-12]。文獻[11]提出了一種基于深度神經(jīng)網(wǎng)絡的人體動作識別方法。采用三維建模的方法建立人體模型,分層次地識別人體各部位的行為,從底層行為組合成為高層的動作和活動,應用隱馬爾科夫模型完成人體行為的學習工作。該方法可以有效識別人體復雜姿態(tài),但需要通過不斷移動相機實現(xiàn)多角度的人體圖像獲取,易存在捕捉數(shù)據(jù)不夠精準的問題。文獻[12]提出了采用蒙版關節(jié)軌跡在深度視頻序列的動作識別方法。本文也是受此啟發(fā),對視頻序列進行處理,實現(xiàn)人體姿態(tài)識別。
為了更好地實現(xiàn)使用少量關鍵幀序列對人體姿態(tài)進行準確識別,本文提出了一種基于少量關鍵序列幀的人體姿態(tài)識別方法。
為了實現(xiàn)人體姿態(tài)識別,本文首先定義人體運動姿態(tài)數(shù)據(jù)格式,然后基于深度相機獲取人體姿態(tài)序列幀數(shù)據(jù),接著基于預選策略實現(xiàn)幀消減,最后實現(xiàn)基于隱馬爾科夫模型的人體姿態(tài)識別。
進行人體姿態(tài)識別前,需要保存序列幀的數(shù)據(jù)。針對不同數(shù)據(jù)源命名格式和內(nèi)容格式的不同的問題,需要對序列幀的數(shù)據(jù)進行格式定義。數(shù)據(jù)集對20個骨骼點進行采集,分別對骨骼點數(shù)量、坐標方式和計量單位等重要參數(shù)進行定義,并構建相應數(shù)據(jù)庫。在構建人體運動姿態(tài)數(shù)據(jù)庫時,采用的數(shù)據(jù)存儲格式為:
(1) 每20行數(shù)據(jù)存儲為一幀數(shù)據(jù),其中每一行代表一個骨骼點的數(shù)據(jù);
(2) 每行包含4列數(shù)據(jù),依次為空間坐標系下的軸、軸、軸的坐標和置信度分數(shù)。其中置信度分數(shù)用來對數(shù)據(jù)中可能存在的遮擋等情況進行區(qū)分。數(shù)據(jù)集中已標注置信度分數(shù)的數(shù)據(jù)直接引用,未標注的部分采用手動標注和機器標注的方式共同進行。如此,定義人體運動姿態(tài)數(shù)據(jù)格式,構建相應的數(shù)據(jù)庫,為后續(xù)訓練和識別準備。
采用深度相機獲取人體運動姿態(tài)序列幀數(shù)據(jù),具體分以下5步完成:
步驟1.使用深度相機獲取深度圖像,由深度圖像獲取像素點的深度距離和用戶索引值;
步驟2.根據(jù)深度相機有效距離設定深度閾值范圍,保留深度值為1.2~3.5 m的點,舍去其余點;
步驟3.將深度圖像進行二值化處理;
步驟4.采用人體目標識別方法,提取人體運動數(shù)據(jù),進行人體像素點的判定;
步驟5.檢測識別結果,并對識別結果進行膨脹腐蝕等預處理操作。
關鍵幀的選取是姿態(tài)識別中的關鍵步驟,主要對目標識別獲取的實時數(shù)據(jù)進行處理,關鍵幀技術通過對原有動作序列的處理,可以有效減少姿態(tài)序列的數(shù)據(jù)量和后續(xù)計算,使用少數(shù)關鍵幀代表完整的原始動作序列,達到數(shù)據(jù)降維、減小數(shù)據(jù)量目的。針對關鍵幀選取時無法兼顧壓縮比和重建誤差、可移植性差等問題,本文提出了一種基于預選策略的幀消減算法。該方法通過對原始三維骨骼數(shù)據(jù)進行計算,分2步完成:
步驟1.對原有運動序列進行初選,通過運動軌跡取極值的方法構造初選關鍵幀序列。將人體各關節(jié)點的運動軌跡視作空間中的連續(xù)曲線,通過選取曲線上極值點的所在幀作為關鍵幀,構造預選關鍵幀序列。
步驟2.利用幀消減算法獲取滿足不同用戶需求的最終關鍵幀序列。通過將關鍵幀選取過程中的2個優(yōu)化目標分別設置為最大重建誤差和關鍵幀數(shù)量,達到兼顧重建誤差和壓縮比的目的。利用幀削減算法逐幀刪除重建誤差小的預選關鍵幀,最終得到滿足指定重建誤差和壓縮比要求的關鍵幀序列。
2.3.1 運動插值重建和重建誤差
使用運動插值重建方法對關鍵幀進行插值以及重建原始運動序列。設1和2時刻關鍵幀序列中的對應關鍵幀分別為(1)和(2),則時刻的關鍵 幀為