一種基于改進(jìn)維特比算法的連續(xù)動作識別方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于視頻處理領(lǐng)域,具體涉及一種基于改進(jìn)維特比算法的連續(xù)動作識別方 法,用于高效地識別人體全身連續(xù)動作。
【背景技術(shù)】
[0002] 隨著計算機(jī)應(yīng)用的迅速發(fā)展,基于視頻序列的人體行為識別逐漸成為計算機(jī)視覺 領(lǐng)域研究的熱點,在人機(jī)接口系統(tǒng)、智能家居應(yīng)用、智能監(jiān)控、運動分析等方面得到了廣泛 的應(yīng)用。
[0003] 對于動作識別這一具有較高應(yīng)用價值問題,國內(nèi)外的學(xué)者已經(jīng)做了大量的基礎(chǔ)研 究。常用的動作識別方法有:基于HMM的方法、基于DTW的方法、基于SVM的方法以及基于 神經(jīng)網(wǎng)絡(luò)的方法等。對于單個的動作識別這些方法都達(dá)到了比較令人滿意的效果,但是對 于連續(xù)的動作識別,國內(nèi)外的研究學(xué)者大多只是專注于手勢的識別,并且連續(xù)的動作識別 沒有達(dá)到很好的效果。A.Ali等人在文獻(xiàn)《Segmentationandrecognitionofcontinuous humanactivity》(IEEEWorkshopon. IEEE, 2001:28-35)實現(xiàn)了基于普通視頻的動作分割 算法,但是該算法中用于分割的方法不具備良好的魯棒性。該方法利用一些特定的靜態(tài)姿 態(tài)對連續(xù)的動作視頻進(jìn)行分割。其它用于分割連續(xù)手勢序列的文獻(xiàn)也都是基于特定的靜態(tài) 手勢或者是概率模型,對于手勢或者動作的分割都不盡如人意;并且大部分是以實現(xiàn)手勢 的連續(xù)識別為目標(biāo),并沒有將其拓展到全身動作領(lǐng)域。目前對于全身的連續(xù)動作識別還沒 有系統(tǒng)的方法。
[0004] 本發(fā)明中涉及到的重要一項已有技術(shù)是隱馬爾可夫模型。
[0005] 隱馬爾可夫模型是一種有效的描述存在于離散時間段上的具有關(guān)聯(lián)關(guān)系的數(shù)據(jù) 序列的統(tǒng)計學(xué)方法。
[0006] 隱馬爾科夫模型的理論基礎(chǔ)是在1970年前后由Baum等人建立起來的,隨后有CMU 的Baker和IBM的Jelinek等人將其應(yīng)用到語音識別之中,由于Bell實驗室Rabiner等人 在80年代中期對隱馬爾科夫模型的深入淺出的介紹,才逐漸使隱馬爾科夫模型為世界各 國從事語音處理的研究員所了解和熟悉,進(jìn)而成為公認(rèn)的一個研究熱點。
[0007] 隱馬爾科夫模型是在Markov鏈(一種有限狀態(tài)機(jī))的基礎(chǔ)上發(fā)展起來的。首 先介紹兩個概念:狀態(tài)集合和觀察序列。狀態(tài)集合指隱馬爾科夫模型所具有的全部狀態(tài) {Sp . . .,Si,. . .,SN},其中N為隱式狀態(tài)數(shù);觀察序列是一個具有上下文關(guān)聯(lián)性的數(shù)據(jù)序 列,用Vp. . .,vt,. . .,VT表示,V. . .,vt,. . .,VTS-個觀測序列,其中V t=cb,表示該序列 中時刻t的元素的取值為cb,1<b<B,B表示每個狀態(tài)可輸出的元素(值)的總數(shù)。
[0008] 由于實際問題比Markov鏈模型所描述的更為復(fù)雜,觀察到的觀察序列中的元素 并不是與Markov鏈中的狀態(tài) 對應(yīng),而是通過一組概率分布相聯(lián)系。這樣,站在觀察者 的角度,只能看到觀察值,不像Markov鏈模型中的觀察值和狀態(tài)一一對應(yīng)。因此,不能直接 看到狀態(tài),而是通過一個隨機(jī)過程去感知狀態(tài)的存在及其特性,這就是所謂的"隱"Markov 模型,即HiddenMarkovModel(HMM)。
[0009] 隱馬爾科夫模型的三個基本問題是:評估問題、解碼問題及學(xué)習(xí)問題。其中,學(xué)習(xí) 問題是使模型參數(shù)最優(yōu)化,及調(diào)整模型參數(shù),以使模型能最好的描述一個給定觀測序列,最 好的說明這個觀測序列就是最優(yōu)化模型產(chǎn)生出來的,用來解決分類問題。
【發(fā)明內(nèi)容】
[0010] 本發(fā)明的目的是針對人體連續(xù)動作的識別,提出了一種基于改進(jìn)維特比算法的連 續(xù)動作識別方法。該方法首先通過建立以人體關(guān)節(jié)為基準(zhǔn)的坐標(biāo)系消除人旋轉(zhuǎn)平移等因素 造成的動作差異性。其次通過按照人體模型的約束對人體骨架坐標(biāo)進(jìn)行進(jìn)一步處理,消除 因為人體形的差異,然后通過K-means對骨骼數(shù)據(jù)進(jìn)行編碼,然后為每個動作訓(xùn)練對應(yīng)的 隱式馬爾科夫模型,接著通過活躍關(guān)節(jié)的變化、速度快慢、角度大小進(jìn)行連續(xù)動作序列的分 害IJ,然后為每個子序列篩選出較好的候選動作,最后通過改進(jìn)的維特比算法找出最佳路徑, 進(jìn)而得到最佳的動作序列。
[0011] 本發(fā)明的目的是通過下述技術(shù)方案實現(xiàn)的。
[0012] 本發(fā)明的一種基于改進(jìn)維特比算法的連續(xù)動作識別方法,其特征在于:其包括訓(xùn) 練過程和識別過程。
[0013] 所述訓(xùn)練過程的具體實施步驟如下:
[0014] 步驟一、對訓(xùn)練數(shù)據(jù)中的人體全身動作視頻數(shù)據(jù)進(jìn)行預(yù)處理。
[0015] 將每一種人體全身動作的訓(xùn)練數(shù)據(jù)稱為一個訓(xùn)練樣本集;一個訓(xùn)練樣本集中的訓(xùn) 練樣本數(shù)量用R表示,R > 20。分別對每個訓(xùn)練樣本集中的每個人體全身動作視頻數(shù)據(jù)做 預(yù)處理,得到一條單一動作編碼序列。
[0016] 所述人體全身動作視頻是通過三維體感攝像機(jī)拍攝獲得的單個人體全身動作。
[0017] 所述人體全身動作視頻為RGB-D格式視頻。
[0018] 所述對每個訓(xùn)練樣本集中的每個人體全身動作視頻數(shù)據(jù)做預(yù)處理,得到一條單一 動作編碼序列的具體操作步驟為:
[0019] 步驟1. 1 :利用人體骨架提取工具從每個人體全身動作視頻的每幀圖像中提取人 的骨架信息。
[0020] 所述骨架信息為人體關(guān)節(jié)點在三維體感攝像機(jī)所建立的原始坐標(biāo)系上的三維坐 標(biāo)值。所述人體關(guān)節(jié)點的個數(shù)用符號m表示,m3 10。
[0021] 所述人體關(guān)節(jié)點包括頭部關(guān)節(jié)點、脊柱關(guān)節(jié)點、肩膀中心節(jié)點、左肩膀關(guān)節(jié)點、右 肩膀關(guān)節(jié)點、左肘關(guān)節(jié)點、右肘關(guān)節(jié)點、左腕關(guān)節(jié)點、右腕關(guān)節(jié)點、左手關(guān)節(jié)點、右手關(guān)節(jié)點、 臀部關(guān)節(jié)點、左髖骨關(guān)節(jié)點、右髖骨關(guān)節(jié)點、左膝關(guān)節(jié)點、右膝關(guān)節(jié)點、左踝關(guān)節(jié)點、右踝關(guān) 節(jié)點、左腳關(guān)節(jié)點、右腳關(guān)節(jié)點。
[0022] 步驟1. 2 :建立矯正坐標(biāo)系。
[0023] 以脊柱關(guān)節(jié)點為坐標(biāo)原點,以左肩膀關(guān)節(jié)點和右肩膀關(guān)節(jié)點的連線為X軸,以垂 直于X軸并指向所述三維體感攝像機(jī)的方向為Z軸,重建右手坐標(biāo)系,第三軸為Y軸,則重 建的三維坐標(biāo)系稱為矯正坐標(biāo)系。
[0024] 步驟1. 3 :獲得每個人體全身動作視頻的每幀圖像中的全部人體關(guān)節(jié)點在矯正坐 標(biāo)系中的坐標(biāo)值,得到矯正骨架信息。
[0025] 步驟1. 4 :為了解決因不同人體型不同造成的對矯正骨架信息的影響,對步驟1. 3 得到的矯正骨架信息進(jìn)行歸一化處理,具體為:
[0026] 步驟1. 4. 1 :建立人體模型。所述人體模型定義了每兩個相鄰并連接的關(guān)節(jié)點之 間的距離。
[0027] 步驟1. 4. 2 :按照人體模型中定義的相鄰并連接的關(guān)節(jié)點之間的距離,調(diào)整矯正 骨架信息,具體操作位:首先保證脊柱關(guān)節(jié)點位置不變;然后對于其它關(guān)節(jié)點,在保證相鄰 并連接的兩個相鄰關(guān)節(jié)點連線與矯正坐標(biāo)系所成角度不變的情況下,調(diào)整各個關(guān)節(jié)點的位 置,使相鄰并連接的兩個關(guān)節(jié)點的距離與人體模型中與之對應(yīng)的相鄰并連接的兩個關(guān)節(jié)點 之間的距離相等。
[0028] 經(jīng)過步驟1. 4的操作,得到歸一化處理后的矯正骨架信息。
[0029] 步驟1. 5 :得到每個人體全身動作視頻對應(yīng)的單一動作編碼序列。
[0030] 將每個人體全身動作視頻的每幀圖像對應(yīng)的歸一化處理后的矯正骨架信息中的m 個人體關(guān)節(jié)點的三維坐標(biāo)信息,組成一個3Xm維的向量;然后通過K均值聚類算法對訓(xùn)練 數(shù)據(jù)中全部人體全身動作視頻中的各幀圖像對應(yīng)的3Xm維向量進(jìn)行聚類,并將各幀圖像 用一個距離最近的聚類中心的序號來表示,該序號稱為聚類編碼。因此,一個人體全身動 作視頻用一組代表各幀圖像的聚類編碼的有序序列表示,該有序序列稱為單一動作編碼序 列。
[0031] 通過步驟1. 5的操作,將每個人體全身動作視頻表示為一