趙玉芹,劉 琳
東華理工大學(xué)軟件學(xué)院,江西 南昌 330013
隨著計(jì)算機(jī)應(yīng)用技術(shù)的不斷發(fā)展,人與計(jì)算機(jī)的交互活動(dòng)越來越成為人們?nèi)粘I畹囊粋€(gè)重要組成部分。最近幾年,符合實(shí)際交流習(xí)慣的新穎人機(jī)交互技術(shù)取得了可喜的進(jìn)步。手勢識(shí)別是其中比較熱門的一個(gè)研究課題。手勢是人類最自然的表達(dá)方式之一,手勢指的是一種自然、直觀、易于學(xué)習(xí)的人機(jī)交互手段,是人與人溝通的重要媒介。在手勢識(shí)別中,由于不同的手勢動(dòng)作經(jīng)常同時(shí)包含類似的動(dòng)作,而且動(dòng)作之間的轉(zhuǎn)換在時(shí)間點(diǎn)上具有模糊性和重疊性。所以手勢動(dòng)作的識(shí)別是人機(jī)交互領(lǐng)域一個(gè)復(fù)雜而具有挑戰(zhàn)性的研究。動(dòng)態(tài)手勢識(shí)別中手勢運(yùn)動(dòng)序列的描述是一個(gè)關(guān)鍵問題,一些文獻(xiàn)使用隱馬爾可夫模型來描述手勢運(yùn)動(dòng),隱馬爾可夫模型要求手勢動(dòng)作序列是獨(dú)立的,而實(shí)際上手勢動(dòng)作序列具有長距離依賴性。利用條件隨機(jī)場描述手勢動(dòng)作序列則可以避免數(shù)據(jù)必須獨(dú)立的假設(shè)。
可以認(rèn)為條件隨機(jī)場(CRF)是一個(gè)無向圖模型,或者隨機(jī)馬爾科夫場,定義G=(V,E)為一個(gè)無向圖,存在隨機(jī)變量序列X。隨機(jī)變量sv服從馬爾科夫性質(zhì),即:
其中(X,S)為一個(gè)條件隨機(jī)場。條件隨機(jī)場是一個(gè)以觀察序列X為條件的隨機(jī)場。在給定X條件下,狀態(tài)序列S的聯(lián)合概率為
其中X是樣本序列,S為狀態(tài)序列。
可以將S認(rèn)為是狀態(tài),而X認(rèn)為是觀察樣本。與隱馬爾可夫模型不同,條件隨機(jī)場模型不需要估計(jì)狀態(tài)的概率分布模型。
不同的應(yīng)用模式,可以運(yùn)用不同的圖形來描述條件隨機(jī)場中變量之間的關(guān)系。當(dāng)變量之間存在層次概念時(shí),可以選擇樹狀結(jié)構(gòu)來描述層次關(guān)系;當(dāng)要描述兩個(gè)不同路徑但是有共同時(shí)間索引的馬爾科夫模型狀態(tài)與數(shù)據(jù)之間的關(guān)系時(shí)??梢赃x擇動(dòng)態(tài)條件隨機(jī)場架構(gòu)。
在條件隨機(jī)場的相關(guān)研究中,往往使用現(xiàn)行鏈狀結(jié)構(gòu)來描述變量之間的依賴性。事實(shí)上,在隨機(jī)場中,變量的依賴關(guān)系有時(shí)候會(huì)出現(xiàn)回路。尤其是在時(shí)間順序上前后相互影響的變量。這時(shí),精確的樹狀推論方法就不能用來正確的推算變量的聯(lián)合概率。因此我們可以依照聯(lián)合樹的步驟來分析該圖形,并建立一個(gè)樹狀的結(jié)構(gòu)。使得可以用標(biāo)準(zhǔn)的推演方法來推算這一圖形模型。假如圖形符合建構(gòu)聯(lián)合樹的條件,則建構(gòu)相對應(yīng)的聯(lián)合樹圖。
條件隨機(jī)場模型的特征函數(shù)的定義取決于狀態(tài)與狀態(tài)之間的關(guān)系,以及觀察狀態(tài)序列之間的關(guān)系,因此應(yīng)用最大似然訓(xùn)練的隱馬爾可夫模型(HMM)進(jìn)行特征提取??梢杂盟迫欢确?jǐn)?shù)和狀態(tài)轉(zhuǎn)移概率來定義特征函數(shù)。首先用隱馬爾可夫模型獲得經(jīng)過狀態(tài)分割的狀態(tài)序列,以及每一個(gè)時(shí)間點(diǎn)觀測值與每個(gè)狀態(tài)的相似度分?jǐn)?shù)。即可求出特征函數(shù)的值。
定義特征函數(shù)的方法如下:對每一個(gè)手勢動(dòng)作中的每一個(gè)狀態(tài)建立一個(gè)特征函數(shù):
其中p(xt|st)代表相似度??梢缘玫较鄬?yīng)的三個(gè)特征函數(shù)為:
使用GIS(Genera1ized Iterative Sca1ing)訓(xùn)練模型參數(shù)。求出對應(yīng)的特征函數(shù)的值,建構(gòu)條件隨機(jī)場模型。
最大化條件似然對數(shù)P(c|X)是條件隨機(jī)場模型訓(xùn)練的目標(biāo),其中c為類別,每一個(gè)類別c中都存在特定的狀態(tài)序列,因此最大化P(c|X)等同于最大化p (S ∈c|X),通過微分求極值的運(yùn)算后得到最終結(jié)果,即特征函數(shù)的期望與真實(shí)模型期望相等時(shí),條件似然對數(shù)最大。
特征函數(shù)實(shí)驗(yàn)期望值的計(jì)算,每一個(gè)接受訓(xùn)練的模型都有對應(yīng)的訓(xùn)練數(shù)據(jù)。我們可以得到這些數(shù)據(jù)對自己所屬模型的分割與似然分?jǐn)?shù),因此我們可以求出每一個(gè)對應(yīng)的特征函數(shù)值,最后再將相同的特征函數(shù)在訓(xùn)練數(shù)據(jù)中得到的分?jǐn)?shù)相加,就的到了特征函數(shù)的實(shí)驗(yàn)期望。
在計(jì)算特征函數(shù)真實(shí)模型期望時(shí),要考慮每一個(gè)觀察序列對每一個(gè)類別都有影響,因此不能認(rèn)為觀察序列所屬的類別是已知的。我們必須獲得所有觀察序列對每一個(gè)類別的分割信息與累積分?jǐn)?shù)。在計(jì)算某個(gè)特征函數(shù)時(shí),因?yàn)檫@個(gè)狀態(tài)只會(huì)出現(xiàn)在某個(gè)類別中,因此在計(jì)算時(shí),只會(huì)有一個(gè)被加進(jìn)來。因此我們可以計(jì)算出每一個(gè)特征函數(shù)的真實(shí)模型期望。步驟如下:
1)計(jì)算每一個(gè)特征函數(shù)的實(shí)驗(yàn)期望值;
2)參數(shù)初始化;
3)計(jì)算每一個(gè)特征函數(shù)的真實(shí)模型期望;
4)調(diào)整參數(shù)使得每一個(gè)特征函數(shù)的真實(shí)模型期望值逼近實(shí)驗(yàn)期望;
5)回到3),直到終止條件成立。
當(dāng)一個(gè)觀察序列進(jìn)入條件隨機(jī)場之前,我們可以求出每一個(gè)特征函數(shù)值,在特征函數(shù)值算好后,則可以代入鑒別函數(shù)中,求的這個(gè)觀察序列對于每一個(gè)動(dòng)作的分?jǐn)?shù)。鑒別函數(shù)為
其中ci為第i個(gè)動(dòng)作類別,X為測試中的觀測值序列。
使用Microsoft Visau1 C++ 6.0實(shí)現(xiàn)了本文的算法。動(dòng)態(tài)手勢樣本選用瑞士IDIAP的兩手?jǐn)?shù)據(jù)庫。這個(gè)數(shù)據(jù)庫中總共包括7個(gè)雙手手勢視頻 ,分別為 Push、Up、Down、Front、Back、Left、Right。數(shù)據(jù)庫中包括訓(xùn)練樣本和測試樣本,訓(xùn)練樣本中,每個(gè)動(dòng)作有70部。訓(xùn)練樣本中,每個(gè)動(dòng)作有60部。從數(shù)據(jù)庫中取100部視頻,其中30部作為訓(xùn)練樣本,70部作為測試樣本。通過訓(xùn)練條件隨機(jī)場模型,并進(jìn)行識(shí)別實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果顯示識(shí)別率均在70%以上。
本文將條件隨機(jī)場應(yīng)用于動(dòng)態(tài)手勢識(shí)別,解釋手勢動(dòng)作序列之間的相關(guān)性。用聯(lián)合樹算法將存在回路的條件隨機(jī)場架構(gòu)轉(zhuǎn)換成子圖樹,用樹狀推演算法計(jì)算整體的聯(lián)合概率。基于隱馬爾可夫模型,獲得適合于連續(xù)變量的特征函數(shù)。利用本文的算法進(jìn)行了手勢識(shí)別實(shí)驗(yàn),取得了較理想的識(shí)別率。
[1]杜友田.基于視覺的人的運(yùn)動(dòng)識(shí)別綜述[J].清華大學(xué)自動(dòng)化系.電子學(xué)報(bào),2007(1).
[2]任雅祥.基于手勢識(shí)別的人機(jī)交互發(fā)展研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2006(7).