王建興
(閩江學(xué)院物理學(xué)與電子信息工程系,福建 福州 350108)
基于模版匹配的靜態(tài)姿態(tài)識別
王建興
(閩江學(xué)院物理學(xué)與電子信息工程系,福建 福州 350108)
基于KINECT的人體姿態(tài)識別方法,是指由KINECT傳感器獲取深度數(shù)據(jù)和骨骼數(shù)據(jù)等信息,提取特征后進(jìn)行的姿態(tài)識別.在簡要描述基于KINECT的人體姿態(tài)識別方法的基礎(chǔ)上,提出了一種基于KINECT靜態(tài)姿態(tài)識別的模版匹配方法,并完成了相關(guān)實驗,證明該方法簡單實用.
KINECT;姿態(tài)識別實驗;模版匹配;圖像處理
靜態(tài)姿態(tài)識別過程是先通過KINECT獲取姿態(tài)深度信息,然后根據(jù)KINECT SDK提供的深度信息進(jìn)行姿態(tài)分割,接著利用相關(guān)算法處理分割后的圖片,獲取姿態(tài)的形狀,最后進(jìn)行分類識別,根據(jù)相關(guān)指令輸出結(jié)果.
1.1.1 姿態(tài)分割
利用KINECT獲取到的是深度信息,對骨骼模型和深度圖像進(jìn)行分割,以骨骼圖顯示出的骨骼點的三維位置,結(jié)合相關(guān)算法,利用設(shè)定的閾值分割出相應(yīng)的位置[1].姿態(tài)分割所需要的人體骨骼點模型可以通過KINECT的骨骼追蹤技術(shù)來實現(xiàn),可以將三維坐標(biāo)骨骼轉(zhuǎn)換為二維空間來定位各種姿態(tài).
1.1.2 圖像處理
KINECT所采集的深度圖像存在噪聲和空洞,且這些噪聲和空洞在目標(biāo)的邊緣處最多.所以,如果直接提取KINECT中獲取的深度圖像的特征,提取的特征值可能變化比較大,從而影響識別算法的準(zhǔn)確性.基于以上因素,在進(jìn)行分類識別前,要對KINECT傳感器采集的圖像進(jìn)行關(guān)于形態(tài)學(xué)的處理和噪聲的濾波,經(jīng)過處理后的圖像可以有效地提高后續(xù)步驟的準(zhǔn)確性.
1.1.3 輪廓識別
對姿態(tài)進(jìn)行分割之后,需要對已分割出來的圖像進(jìn)行處理,相關(guān)處理方法包括利用雙層深度圖像信息的方法、運用Border-Following Mooreneighborhood算法等.利用雙層深度圖像信息的方法是先設(shè)定深度閾值,然后對不同位置的像素點進(jìn)行相對應(yīng)的1和0的分類,構(gòu)建不同姿態(tài)狀態(tài)的像素點,最后用對應(yīng)算法創(chuàng)建出姿態(tài)外圍各個像素點的點集,從而獲得姿態(tài)的輪廓[2].運用Border-Following算法是先設(shè)定顏色閾值進(jìn)行像素級掃描,確定邊界點,從而找出姿態(tài)的輪廓.采用Mooreneighborhood算法是定義像素的8個領(lǐng)域像素,進(jìn)行輪廓檢測.
1.1.4 分類識別
顧名思義,分類識別就是將獲取到的信息按不同的類別分開,并理解該信息所表達(dá)的含義,分類后就能得到姿態(tài)的特征.不同的信息類別與信息量采用不同的分類器.小樣本、非線性、高維模式的識別主要運用的是支持向量機SVM.
1.2.1 基于DTW算法的動態(tài)姿態(tài)識別
基于DTW算法動態(tài)姿態(tài)識別的第一步是通過KINECT SDK獲取骨骼圖和骨骼模型中25個節(jié)點的三維坐標(biāo)信息.實際操作時,要先預(yù)處理這些骨骼點,再由KINECT得到需要的特征向量.完成這些基礎(chǔ)工作后,需要運用DTW算法得到待識別姿態(tài).DTW算法的整個過程是:將獲取的姿態(tài)信息與事先采集好的模版數(shù)據(jù)進(jìn)行匹配,而匹配程度最高的就是待識別姿態(tài),匹配的主要算法是計算它的最短路徑法.
1.2.2 基于HMM模型的動態(tài)姿態(tài)識別
隱馬爾可夫模型主要是統(tǒng)計過程的,它用來描述一個含有隱含未知參數(shù)的馬爾可夫過程.在使用隱馬爾可夫模型的過程中,會面對3個最基本的問題,即評估、解碼和學(xué)習(xí).這3個問題可以運用即前向算法、Viterbi算法和Baum-Welch算法來解決.
模版匹配法是靜態(tài)識別中一種常用的方法.該方法的識別方式是:將從KINECT獲取的深度數(shù)據(jù)與預(yù)留的模版數(shù)據(jù)進(jìn)行對比,檢查獲取到的深度數(shù)據(jù)與模版中的哪個動作匹配程度最高,從而識別該動作.這種方法需要預(yù)先采集大量的數(shù)據(jù),然后將這些數(shù)據(jù)進(jìn)行處理(比如編碼等處理方法)后得到模版數(shù)據(jù),然后根據(jù)數(shù)據(jù)相似程度分類識別.這種方法的優(yōu)點是識別速度快,計算方法簡單.
實驗共采集了6組姿態(tài)動作,它們分別為站立、左手直舉、右手直舉、雙手半舉、雙手直舉和雙手側(cè)舉.采集數(shù)據(jù)時,先采集這6個姿態(tài)動作的三維坐標(biāo)數(shù)據(jù),以此作為模版數(shù)據(jù).在采集過程中,固定KINECT中的攝像頭位置,使其保持不變,人保持不變的姿勢.由于KINECT2.0的精度高,所以,它能輕松獲取正面的25個關(guān)節(jié)的數(shù)據(jù)幀,這樣就可以將6個姿勢的數(shù)據(jù)幀采集完.
獲取到的三維坐標(biāo)會因為人的位置、姿態(tài)、動作的不同而不同.三維坐標(biāo)的比對不能很好地識別上述6種姿態(tài),需要對三維坐標(biāo)進(jìn)行編碼后再進(jìn)行有效的比對.我們不使用深度數(shù)據(jù),只需對上述6個姿態(tài)中每組動作2種數(shù)據(jù)的X坐標(biāo)和Y坐標(biāo)進(jìn)行標(biāo)準(zhǔn)編碼.由于有25個關(guān)節(jié)點,每個動作有50個數(shù)據(jù).實驗表明,只使用X坐標(biāo)和Y坐標(biāo)在姿態(tài)識別中是有效的.
在實際運用中,一個姿態(tài)動作在完成2組數(shù)據(jù)編碼后,可以用比較2個編碼的歐氏距離的方法選擇最佳的匹配姿態(tài),也就是將人體獲取的坐標(biāo)與6組姿態(tài)坐標(biāo)進(jìn)行差值對比,歐氏距離最小的就是所匹配到的姿態(tài).實驗效果見圖1.
本文首先探討了基于KINECT的靜態(tài)姿態(tài)識別的姿態(tài)分割、特征提取、分類識別和動態(tài)姿態(tài)識別的DTW或者HMM算法識別等多種方法,然后對基于KINECT靜態(tài)姿態(tài)識別的模版匹配方法進(jìn)行了研究和實驗.在實驗過程中,模版數(shù)據(jù)的采集工作比較難,需要保持KINECT位置不變,人也不能移動,只有在完成了6組動作的采集后才能移動.另外一個問題就是,要尋找適合圖像數(shù)據(jù)編碼的編碼方式,該編碼方式需要完成對坐標(biāo)數(shù)據(jù)的編碼.本文只是進(jìn)行了基于KINECT的靜態(tài)姿態(tài)識別的研究,下一步將開展關(guān)于動態(tài)姿態(tài)識別的研究和相關(guān)實驗.
圖1 實驗效果圖
[1]王艷,張奇志.基于Kinect深度信息的手勢識別[J].北京信息科技大學(xué)學(xué)報(自然科學(xué)版),2013(1):22-26.
[2]王松林.基于Kinect的姿態(tài)識別與機器人控制技術(shù)研究[D].北京:北京交通大學(xué),2014.
〔編輯:白潔〕
TP391
A
10.15913/j.cnki.kjycx.2017.22.040
2095-6835(2017)22-0040-02