一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法
【專利摘要】本發(fā)明公開了一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,包括以下步驟:(1)手勢檢測與跟蹤;(2)特征提取與矢量量化;(3)模型訓(xùn)練與手勢識別;(4)增量學(xué)習(xí)。本發(fā)明通過使用本發(fā)明提出的基于隱馬爾科夫模型增量學(xué)習(xí)的動態(tài)手勢識別方法,可以準(zhǔn)確地識別手勢操作人在攝像頭前完成的動態(tài)手勢操作,并能將識別后的手勢數(shù)據(jù)用于舊模型的增量學(xué)習(xí)以調(diào)整模型參數(shù)中,從而使舊模型能動態(tài)適應(yīng)未來手勢數(shù)據(jù)中產(chǎn)生的新變化,對手勢數(shù)據(jù)中的調(diào)整與更變能有更好的適應(yīng)性,使得模型能不斷隨著手勢數(shù)據(jù)的調(diào)整,對將來未知的手勢識別有更好的魯棒性。
【專利說明】—種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)視覺、圖像處理、模式識別等領(lǐng)域,特別是一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法。
【背景技術(shù)】
[0002]隨著科學(xué)技術(shù)的飛速進(jìn)步與發(fā)展,計(jì)算機(jī)科學(xué)也隨之迅速騰飛。當(dāng)前,計(jì)算機(jī)領(lǐng)域朝著更高速、更高效、更高計(jì)算速率方向發(fā)展的同時,也向著更便利、更簡潔、更舒適的人機(jī)交互領(lǐng)域闊步前進(jìn)。
[0003]特別是伴隨著手機(jī)、平板電腦等一系列電子消費(fèi)產(chǎn)品的火熱銷售,提供更好的人機(jī)接口,方便人們與計(jì)算機(jī)更加自然和諧的溝通與交流,成為了計(jì)算機(jī)領(lǐng)域中一個相當(dāng)有潛力的經(jīng)濟(jì)引爆點(diǎn)。
[0004]當(dāng)前,在數(shù)碼產(chǎn)品及數(shù)碼設(shè)備領(lǐng)域,越來越多的產(chǎn)品采用嶄新的技術(shù)與理念,向消費(fèi)者提供了更加方便快捷的交互方式,從而也獲得了消費(fèi)者極大地青睞。例如,在數(shù)碼照相機(jī)領(lǐng)域,人臉識別、笑臉識別等技術(shù)已經(jīng)走向成熟和商業(yè)化,廣泛地應(yīng)用在數(shù)碼照相機(jī)中,通過使用這些應(yīng)用,可以更加 實(shí)時精準(zhǔn)地捕獲拍攝對象瞬間動作和表情;在游戲領(lǐng)域,美國微軟公司2011年推出的kinect體感游戲設(shè)備能準(zhǔn)確捕捉游戲玩家的手勢及身體移動等操作,進(jìn)而控制游戲中的角色完成一系列任務(wù);在移動通信設(shè)備領(lǐng)域,韓國三星電子公司2013年3月推出的Galaxy S4擁有了基于手機(jī)上普通攝像頭的手勢控制系統(tǒng),可以通過簡單的手勢控制,完成拍照、閱讀郵件、打開文件夾等功能,極大地方便了人機(jī)交互,相信在不久的未來,基于手機(jī)普通攝像頭的各種應(yīng)用和游戲也將速度豐富起來,而手勢控制和手勢識別在移動通信設(shè)備上的巨大潛力和市場又將反向促進(jìn)手勢控制和手勢識別技術(shù)的不斷深入發(fā)展。
[0005]目前,動態(tài)手勢識別技術(shù)已在工業(yè)界和學(xué)術(shù)界展開了深入的研究和使用,并取得了非常好的經(jīng)濟(jì)效益和學(xué)術(shù)成果。
[0006]在工業(yè)界,騰訊研究院2012年發(fā)布的基于普通攝像頭的手勢控制PPT操作的“手勢達(dá)人”軟件,能較好的通過手勢控制PPT的簡單操作,但計(jì)算機(jī)能識別的指令不多,且識別效果一般;微軟公司通過kinect體感設(shè)備中的三維攝像頭和紅外感應(yīng)設(shè)備,能實(shí)時、準(zhǔn)確地跟蹤操作人的動作,進(jìn)而識別出操作人的一系列動作指令,目前基于kinect攝像頭的體感游戲在游戲玩家圈內(nèi)極度風(fēng)靡一時;韓國三星電子公司發(fā)布擁有基于普通手機(jī)攝像頭的動態(tài)手勢識別和控制軟件的Galaxy S4手機(jī),更是讓三星電子一舉超過美國蘋果公司,坐上了全球手機(jī)銷售數(shù)量及銷售額第一的寶座。
[0007]在學(xué)術(shù)界,動態(tài)手勢識別技術(shù)也是一個充滿挑戰(zhàn),并引起科研人員長期關(guān)注和研究的領(lǐng)域。在國內(nèi)科研機(jī)構(gòu)中,東北大學(xué)信息科學(xué)與工程學(xué)院的覃文軍、吳東成等通過使用基于傅里葉描述子-BP神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)了靜態(tài)手勢的識別;重慶郵電大學(xué)智能系統(tǒng)及機(jī)器人研究所的張毅、張嬌等利用Camshift跟蹤和Kalman預(yù)測實(shí)現(xiàn)手部跟蹤,進(jìn)而通過動態(tài)手勢的識別結(jié)果控制輪椅運(yùn)動;在國外科研機(jī)構(gòu)中,日本的J.Yamato、J.0hya, K.1shii率先使用隱馬爾科夫模型識別網(wǎng)球運(yùn)動員的六種不同的姿勢,取得了不錯的識別率;埃及的Mahmoud Elmezain、Ayoub Al-Hamadi利用深度攝像頭完成更準(zhǔn)確的手部跟蹤,并利用隱馬爾科夫模型完成動態(tài)手勢識別。這些方法都可以實(shí)現(xiàn)比較好效果的手勢識別,但它們中間有些項(xiàng)目使用的并非普通攝像頭來提高識別率,使用普通攝像頭的項(xiàng)目在復(fù)雜背景、存在手和臉部干擾時效果不甚理想,進(jìn)而影響識別率的問題。這些缺點(diǎn)在本發(fā)明中都進(jìn)行了有效地解決,并取得了良好的效果。
[0008]與此同時,隨著人工智能和模式識別研究的不斷深入,增量學(xué)習(xí)也成為了一個熱門的研究領(lǐng)域。增量學(xué)習(xí)(Incremental Learning, IL)是指一種學(xué)習(xí)方法能夠保留以前學(xué)習(xí)到的舊知識的情況下,持續(xù)接受外界新樣本并從中學(xué)習(xí)到新的知識。增量學(xué)習(xí)并不是一種具體的學(xué)習(xí)算法,而是一種學(xué)習(xí)思想,可以應(yīng)用到絕大多數(shù)的傳統(tǒng)機(jī)器學(xué)習(xí)算法上。
[0009]在傳統(tǒng)的基于HMM的動態(tài)手勢識別系統(tǒng)中,有以下兩個弊端:
[0010](I)經(jīng)過多樣本訓(xùn)練的模型以及其中的參數(shù),往往在訓(xùn)練完畢后,就一直持續(xù)保持原有數(shù)據(jù),不再發(fā)生改變,當(dāng)需要調(diào)整模型參數(shù)時,只能將原來所有的訓(xùn)練樣本再次重新訓(xùn)練豐吳型;
[0011](2)新識別的樣本一旦完成識別任務(wù)后,將不會再有其他作用,系統(tǒng)無法根據(jù)新加入的樣本實(shí)時調(diào)整模型參數(shù),使之更加適應(yīng)新的情景。而此時若對所有樣本(包括已有的訓(xùn)練樣本和新的識別樣本)的重新訓(xùn)練以適應(yīng)新的情景,又將花費(fèi)大量的時間和精力。
【發(fā)明內(nèi)容】
[0012]發(fā)明目的:本發(fā)明所要解決的技術(shù)問題是針對現(xiàn)有技術(shù)的不足,提供一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法。
[0013]為了解決上述技術(shù)問題,本發(fā)明公開了一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,包括以下步驟:`
[0014](I)手勢檢測與跟蹤;
[0015](2)特征提取與矢量量化;
[0016](3)模型訓(xùn)練與手勢識別;
[0017](4)增量學(xué)習(xí)。
[0018]本發(fā)明手勢檢測與跟蹤包括以下步驟:
[0019]S1:通過攝像頭或已存在的視頻文件獲取包含手勢的視頻流;
[0020]S2:對視頻流中的每一個圖像幀Ptl作如下處理以檢測與跟蹤圖像幀中的手勢:
[0021]S2.1:調(diào)整每一個圖像幀P。大小至統(tǒng)一尺寸(480*360像素),并對圖像幀P。進(jìn)行中值濾波,得到圖像幀P1 ;
[0022]S2.2:將濾波后的圖像幀P1從RGB色彩空間轉(zhuǎn)換至YCrCb色彩空間,其中R、G、B分別表示紅、綠、藍(lán)三個通道;Y表示亮度分量,Cb指藍(lán)色色度分量,而Cr指紅色色度分量;
[0023]S2.3:分離Cr、Cb通道圖像,根據(jù)閾值二值化Cr、Cb通道圖像,閾值為133 ^ Cr ^ 173,77 ^ Cb ^ 127 ;
[0024]S2.4:將Cr、Cb通道的二值圖像并集求和,得到二值圖像幀P2 ;
[0025]S2.5:對二值圖像幀P2做腐蝕、膨脹操作,得到二值圖像幀P3 ;
[0026]S2.6:去除二值圖像幀P3中小于面積閾值的區(qū)域,面積閾值為二值圖像幀P3面積的5%,將剩余的區(qū)域組成二值圖像幀P4 ;
[0027] S2.7:在步驟S2.1得到的圖像幀P1中框選出對應(yīng)二值圖像幀P4的矩形區(qū)域,框選的矩形區(qū)域內(nèi)為圖像幀P1中原始RGB色彩空間的圖像,區(qū)域外的圖像賦值為純黑色,得到圖像幀P5;
[0028]S2.8:將步驟S2.7得到的圖像幀P5通過灰度變換轉(zhuǎn)為單通道灰度圖像,再將灰度圖像直方圖均衡化,灰度圖像為單一通道,得到圖像幀P6;
[0029]S2.9:將步驟S2.8中得到的圖像幀P6通過adaboost算法分類器檢測并標(biāo)定人體頭部區(qū)域;
[0030]S2.10:在步驟S2.7的圖像幀P5去除中步驟S2.9中檢測到的人體頭部區(qū)域,得到圖像幀p7,圖像幀P7中除處于閾值133 ≤Cr ≤173和77≤Cb≤127的區(qū)域外,其余區(qū)域?yàn)榧兒谏?br>
[0031]S2.11:將步驟S2.10的圖像幀P7從RGB色彩空間轉(zhuǎn)換至HSV色彩空間,并分離出H空間,得到圖像幀P8 ;
[0032]S2.12:計(jì)算步驟S2.11分離出的H空間的圖像幀的直方圖方向投影;
[0033]S2.13:根據(jù)步驟S2.13的結(jié)果計(jì)算直方圖反向投影,結(jié)合Camshift跟蹤算法,跟蹤動態(tài)的手勢,選出手部區(qū)域,得到圖像幀P9 ;
[0034]S2.14:提取圖像幀P9中手部區(qū)域中心點(diǎn)的坐標(biāo)。
[0035]本發(fā)明步驟S2.6中,區(qū)域面積計(jì)算采用連通像素點(diǎn)求和的統(tǒng)計(jì)方法,使用隊(duì)列的數(shù)據(jù)結(jié)構(gòu)逐點(diǎn)統(tǒng)計(jì)圖像幀中的每一個點(diǎn),去除小于面積閾值的區(qū)域,并同時計(jì)算檢測到的剩余的區(qū)域的頂、底、左、右四個邊界的坐標(biāo)和區(qū)域面積。
[0036]本發(fā)明特征提取與矢量量化包括以下步驟:
[0037]S3:根據(jù)步驟S2.1~S2.14得到視頻流中的每一幅圖像幀的手部區(qū)域中心點(diǎn)的坐標(biāo),將視頻流所有圖像幀中手部區(qū)域中心點(diǎn)的坐標(biāo)組成手部運(yùn)動軌跡的時間序列,該時間序列即為捕獲到的手勢運(yùn)動軌跡的特征向量;
[0038]S4:將S3中的特征向量序列矢量量化,得到一個整型符號序列,該整型符號序列即模型訓(xùn)練與手勢識別采用的手勢動作序列輸入樣本。
[0039]本發(fā)明步驟S4中,采用的矢量量化方法為,根據(jù)連續(xù)兩個圖像幀中的手部區(qū)域中心點(diǎn)的坐標(biāo)的縱、橫坐標(biāo)值之差的絕對值,將縱坐標(biāo)之差的絕對值除以橫坐標(biāo)之差的絕對值,獲取二者的tan值,并反向利用arctan函數(shù)求得角度,并將該角度除以20,得到量化為O~17的整型符號值,對于N幀圖像的N個連續(xù)的手部運(yùn)動中心點(diǎn)坐標(biāo),得到一個包含N-1個整型符號值的整型符號序列。
[0040]本發(fā)明模型訓(xùn)練與手勢識別階段操作包括以下步驟:
[0041]S5:對于一個手勢動作采集到80個以上的視頻流,對每個視頻流進(jìn)行步驟(1)和步驟(2)的處理得到對應(yīng)的整型符號序列用于模型的訓(xùn)練中作為樣本訓(xùn)練;
[0042]S6:將輸入的樣本逐個訓(xùn)練,包括如下步驟:
[0043]S6.1:對每一個訓(xùn)練樣本的整型符號序列,利用baum-welch算法訓(xùn)練,進(jìn)而調(diào)整隱馬爾科夫模型中的參數(shù),在相鄰兩次整型符號序列訓(xùn)練得到的模型的訓(xùn)練樣本輸出概率之差的絕對值小于設(shè)定閾值后,進(jìn)入下一個樣本的訓(xùn)練;
[0044]S6.2:得到每一個樣本所對應(yīng)的訓(xùn)練模型;[0045]S7:將所有訓(xùn)練模型中的參數(shù)逐項(xiàng)相加,并歸一化各個參數(shù);
[0046]S8:對于每一個手勢動作,重復(fù)步驟SI?S7的操作,得到每一個手勢動作的隱馬爾科夫模型;
[0047]S9:對于待識別的一個手勢動作序列,重復(fù)步驟(I)和步驟(2)的處理得到該手勢動作序列的視頻流對應(yīng)的整型符號序列;
[0048]SlO:利用隱馬爾科夫模型中的forward算法,計(jì)算步驟S9中得到手勢動作序列在步驟S8中訓(xùn)練得到的所有隱馬爾科夫模型中的輸出概率;
[0049]Sll:求出在這些模型中求得的概率中的最大概率,將該最大概率所對應(yīng)的隱馬爾科夫模型作為識別結(jié)果;
[0050]S12:根據(jù)識別結(jié)果完成操作。
[0051]本發(fā)明增量學(xué)習(xí)階段包括:
[0052]S13:將步驟Sll中的最大概率與閾值比較,若大于閾值,則進(jìn)行增量學(xué)習(xí);
[0053]S14:增量學(xué)習(xí)具體步驟為:
[0054]S14.1:根據(jù)步驟S9識別的整型符號序列,利用baum_welch方法訓(xùn)練隱馬爾科夫模型中各個參數(shù),得到一個新的模型;
[0055]S14.2:將原有模型與步驟S14.1新的模型各個參數(shù)相加進(jìn)行融合,在融合之前將新的模型乘以學(xué)習(xí)率n;
[0056]S14.3:將融合后的模型參數(shù)歸一化,即完成了一輪增量學(xué)習(xí)操作。
[0057]本發(fā)明通過使用本發(fā)明提出的基于隱馬爾科夫模型(Hidden MarkovModels, HMMs)增量學(xué)習(xí)(Incremental Learning, IL)的動態(tài)手勢識別(Dynamic HandGesture Recognition)方法,可以準(zhǔn)確地識別手勢操作人在攝像頭前完成的動態(tài)手勢操作,并能將識別后的手勢數(shù)據(jù)用于舊模型的增量學(xué)習(xí)以調(diào)整模型參數(shù)中,從而使舊模型能動態(tài)適應(yīng)未來手勢數(shù)據(jù)中產(chǎn)生的新變化,對手勢數(shù)據(jù)中的調(diào)整與更變能有更好的適應(yīng)性,使得模型能不斷隨著手勢數(shù)據(jù)的調(diào)整,對將來未知的手勢識別有更好的魯棒性。實(shí)驗(yàn)結(jié)果證明,本方法最終對手勢的識別取得了良好的識別效果和較高的識別率。
[0058]本發(fā)明中提出的基于隱馬爾科夫模型增量學(xué)習(xí)的動態(tài)手勢識別系統(tǒng),它能在準(zhǔn)確識別未知樣本所屬類別后,根據(jù)閾值判定結(jié)果,利用該識別樣本調(diào)整其所屬類別HMM模型中的參數(shù),使系統(tǒng)在不忘記舊知識(舊樣本)的同時,有效根據(jù)新加入知識(新樣本)調(diào)整模型參數(shù),從而能夠隨時動態(tài)地、靈活地和外部環(huán)境交互,而且新知識的訓(xùn)練并不需要舊知識的參與,這樣就能大幅度的減少對時間和精力的消耗,并能有效提聞識別準(zhǔn)確度。
[0059]本發(fā)明將跟蹤算法、訓(xùn)練與識別算法、增量學(xué)習(xí)方法有機(jī)結(jié)合。發(fā)明能解決復(fù)雜背景、光照、遮擋等對手勢分割造成的影響,同時將手部區(qū)域和頭部區(qū)域進(jìn)行了有效分割,去除了頭部區(qū)域?qū)κ謩葑R別造成的干擾,能夠?qū)崿F(xiàn)對手部的準(zhǔn)確檢測和跟蹤;準(zhǔn)確跟蹤的手勢運(yùn)動軌跡矢量量化后,投入模型的訓(xùn)練與識別中;并針對傳統(tǒng)隱馬爾科夫模型設(shè)計(jì)出一套增量學(xué)習(xí)的算法,它可以根據(jù)反饋的識別結(jié)果決定是否利用增量學(xué)習(xí)來動態(tài)調(diào)整模型,可以克服傳統(tǒng)方法中模型一旦訓(xùn)練完成,模型中的參數(shù)就不再發(fā)生改變的缺點(diǎn),且增量學(xué)習(xí)的過程快速高效,在不完全拋棄已有模型的前提下,又能對新環(huán)境有很好的適應(yīng)性。整個系統(tǒng)流程清晰明了,并取得了較理想的識別效果?!緦@綀D】
【附圖說明】
[0060]下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明做更進(jìn)一步的具體說明,本發(fā)明的上述和/或其他方面的優(yōu)點(diǎn)將會變得更加清楚。
[0061]圖1為本發(fā)明中基于隱馬爾科夫模型增量學(xué)習(xí)的動態(tài)手勢識別系統(tǒng)的四模塊示意圖。
[0062]圖2為本發(fā)明中動態(tài)手勢檢測與跟蹤效果圖。
[0063]圖3為本發(fā)明中手勢軌跡矢量量化示意圖。
[0064]圖4為本發(fā)明中多樣本模型訓(xùn)練流程圖。
[0065]圖5為本發(fā)明中識別階段樣本增量學(xué)習(xí)流程圖。
[0066]圖6為本發(fā)明中系統(tǒng)整體流程圖。
【具體實(shí)施方式】
[0067]如圖1所示,本發(fā)明分為四個模塊:
[0068](I)手勢檢測與跟蹤:基于普通攝像頭的單手動態(tài)手勢檢測,有效地去除背景和頭部等因素的干擾,并實(shí)時準(zhǔn)確地跟蹤手部運(yùn)動軌跡。
[0069](2)特征提取與矢量量化:提取特征向量精確描述手勢運(yùn)動軌跡,并將這些特征向量量化、壓縮成手勢訓(xùn)練和識別的輸入樣本。
·[0070](3)模型訓(xùn)練與手勢識別:選取合適的模型建模多個手勢樣本,并根據(jù)這些手勢樣本訓(xùn)練出精確描述手勢運(yùn)功軌跡的模型,并利用訓(xùn)練好的模型識別未知所屬類別的測試樣本。
[0071](4)增量學(xué)習(xí):根據(jù)識別結(jié)果(測試樣本在所有模型下的最大輸出概率所對應(yīng)的模型)判定該模型是否增量學(xué)習(xí),進(jìn)而可以動態(tài)調(diào)整模型參數(shù),使模型更好的適應(yīng)新的環(huán)境。
[0072]本發(fā)明的流程為:通過手勢建模,利用訓(xùn)練好的模型識別普通攝像頭所捕獲的手勢運(yùn)動軌跡,并為手勢模型設(shè)計(jì)一套增量學(xué)習(xí)算法,該算法可以根據(jù)識別結(jié)果增量學(xué)習(xí),調(diào)整模型中的參數(shù),使模型更好的適應(yīng)新的環(huán)境變化,最后根據(jù)識別結(jié)果完成預(yù)設(shè)定的指令。
[0073]如圖6所示,本發(fā)明包括以下具體步驟:
[0074](I)手勢檢測與跟蹤階段操作
[0075]S1:通過攝像頭或已存在的視頻文件獲取包含手勢的視頻流;
[0076]S2:對視頻流中的每一個圖像幀Ptl作如下處理以檢測與跟蹤圖像幀中的手勢:
[0077]S2.1:調(diào)整每一個圖像幀P。大小至統(tǒng)一尺寸(480*360像素),并對圖像幀P。進(jìn)行中值濾波,得到圖像幀P1 ;
[0078]S2.2:將濾波后的圖像幀P1從RGB色彩空間轉(zhuǎn)換至YCrCb色彩空間,其中R、G、B分別表示紅、綠、藍(lán)三個通道;Y表示亮度分量,Cb指藍(lán)色色度分量,Cr指紅色色度分量;
[0079]S2.3:分離Cr、Cb通道圖像,根據(jù)閾值二值化Cr、Cb通道圖像,閾值為133 ^ Cr ^ 173,77 ^ Cb ^ 127 ;
[0080]S2.4:將Cr、Cb通道的二值圖像并集求和,得到二值圖像幀P2 ;
[0081]S2.5:對二值圖像幀P2做腐蝕、膨脹操作,得到二值圖像幀P3 ;
[0082]S2.6:去除二值圖像幀P3中小于面積閾值的區(qū)域,面積閾值為二值圖像幀P3面積的5%,將剩余的區(qū)域組成二值圖像幀P4 ;
[0083]S2.7:在步驟S2.1得到的圖像幀P1中框選出對應(yīng)二值圖像幀P4的矩形區(qū)域,框選的矩形區(qū)域內(nèi)為圖像幀P1中原始RGB色彩空間的圖像,區(qū)域外的圖像賦值為純黑色,得到圖像幀P5;
[0084]S2.8:將步驟S2.7得到的圖像幀P5通過灰度變換轉(zhuǎn)為單通道灰度圖像,再將灰度圖像直方圖均衡化,灰度圖像為單一通道,得到圖像幀P6;
[0085]S2.9:將步驟S2.8中得到的圖像幀P6基于haar-like (參見P Viola, M Jones.Rapid object detection using a boosted cascade of simple features.ComputerVision and Pattern Recognition, 2001.CVPR.1-511-1-518vol.1)矩形特征通過adaboost 算法(參見 Bo ffu, Haizhou Ai, Chang Huang, Shihong La0.Fast rotationinvariant mult1-view face detection based on real Adaboost.Automatic Face andGesture Recognition, 2004.79-84)分類器檢測并標(biāo)定人體頭部區(qū)域;
[0086]S2.10:在步驟S2.7的圖像幀P5去除中步驟S2.9中檢測到的人體頭部區(qū)域,得到圖像幀p7,圖像幀P7中除處于閾值133≤ Cr ≤ 173和77≤Cb≤127的區(qū)域外,其余區(qū)域?yàn)榧兒谏?br>
[0087]S2.11:將步驟S2.10的圖像幀P7從RGB色彩空間轉(zhuǎn)換至HSV色彩空間,并分離出H空間,得到圖像幀P8 ;
[0088]S2.12:計(jì)算步驟S2.11分離出的H空間的圖像幀的直方圖方向投影;
[0089]S2.13:根據(jù)步驟S2.13的結(jié)果計(jì)算直方圖反向投影,結(jié)合Camshift跟蹤算法(參見 John G.Allen, Richard Y.D.Xu, Jesse S.Jin.0bject tracking using camshiftalgorithm and multiple quantized feature spaces, the Pan-Sydney Area Workshopon Visual Information Processing.2007.),跟蹤動態(tài)的手勢,選出手部區(qū)域,得到圖像中貞P9;
[0090]S2.14:提取圖像幀P9中手部區(qū)域中心點(diǎn)的坐標(biāo)。
[0091]動態(tài)手勢檢測與跟蹤的效果圖如圖2所示。
[0092]在步驟S2.6中,類膚色區(qū)域的面積計(jì)算采用連通像素點(diǎn)求和的統(tǒng)計(jì)方法,使用隊(duì)列的數(shù)據(jù)結(jié)構(gòu)逐點(diǎn)統(tǒng)計(jì)圖像幀中的每一個點(diǎn)。小于面積閾值的區(qū)域被認(rèn)為是一些雜質(zhì)的干擾,可以認(rèn)為是非手部區(qū)域;并同時求得檢測到的手部區(qū)域的頂、底、左、右四個邊界的坐標(biāo)和區(qū)域面積。
[0093]在步驟S2.7中,采用此種截取圖像區(qū)域方法的原因是為了縮小圖像內(nèi)容檢索范圍,加快系統(tǒng)對手勢的檢索和跟蹤速度。
[0094]在步驟S2.9中,adaboost算法是一種迭代算法,其核心思想是針對同一個訓(xùn)練集訓(xùn)練不同的分類器(弱分類器),然后把這些弱分類器集合起來,構(gòu)成一個更強(qiáng)的最終分類器(強(qiáng)分類器)。其算法本身是通過改變數(shù)據(jù)分布來實(shí)現(xiàn)的,它根據(jù)每次訓(xùn)練集之中每個樣本的分類是否正確,以及上次的總體分類的準(zhǔn)確率,來確定每個樣本的權(quán)值。將修改過權(quán)值的新數(shù)據(jù)集送給下層分類器進(jìn)行訓(xùn)練,最后將每次訓(xùn)練得到的分類器最后融合起來,作為最后的決策分類器。
[0095]在人臉檢測adaboost算法的實(shí)現(xiàn)上,采用的是輸入圖像的矩形特征,即haar-like特征。在adaboost算法中,通過對大量包含頭部的測試圖片訓(xùn)練,得到若干個不同的弱分類器,再將這些弱分類器集合起來構(gòu)成一個更加強(qiáng)大的強(qiáng)分類器,該強(qiáng)分類器包含了人臉的主要特征。使用adaboost分類器可以排除一些不必要的訓(xùn)練數(shù)據(jù)特征,并將重點(diǎn)放在關(guān)鍵的訓(xùn)練數(shù)據(jù)上面。
[0096]由于手部變化的多樣性,難以利用一個普適的模型描述手部特征,這使得利用adaboost分類器檢測手勢存在著一定的難度,而人臉由于其沒有變化的多樣性,以一個剛性、不可變的方式呈現(xiàn)在圖像中,故而可以很好地訓(xùn)練出包含人臉特征的adaboost分類器,進(jìn)而完成圖像幀中人臉的識別工作。這樣,將檢測到的人臉區(qū)域排除在類膚色區(qū)域之夕卜,就可以有效地排除人臉區(qū)域?qū)κ謩莞櫯c檢測的干擾了。
[0097]此外,當(dāng)手部與頭部在圖像幀中重合時,由于檢測不到頭部區(qū)域,故不會去除頭部區(qū)域上的手部,進(jìn)而并不影響后期的手部檢測工作。
[0098]進(jìn)一步,在步驟S2.13 中,Camshift 跟蹤算法(參見 John G.Allen, RichardY.D.Xu,Jesse S.Jin.0bject tracking using camshift algorithm and multiplequantized feature spaces, the Pan-Sydney Area Workshop on Visual InformationProcessing.2007.),即 “Continuously Apative Mean-Shift” 算法,它是一種運(yùn)動跟蹤算法,它主要通過視頻圖像中運(yùn)動物體的顏色信息來達(dá)到跟蹤的目的。Camshift跟蹤算法將視頻圖像的所有巾貞作Meanshift運(yùn)算,并將上一巾貞的結(jié)果(即search window的中心和大小)作為下一巾貞Meanshift算法的search window的初始值,如此迭代下去,就可以完成手勢的動態(tài)跟蹤。
[0099](2)特征提取與矢量量化階段操作
[0100]S3:對視頻流中的每一幅圖像幀重復(fù)上述S2.1?S2.15步驟操作后,將得到一個手部運(yùn)動區(qū)域中心點(diǎn)的坐標(biāo)(中心點(diǎn)在圖像中,以左上角為(0,0)點(diǎn),所生成的x、y軸坐標(biāo))的時間序列,該時間序列即為捕獲到的手勢軌跡的特征向量;
[0101]S4:將S3中的特征向量序列矢量量化,得到一個整型符號序列,該序列也即訓(xùn)練和識別時采用的輸入樣本;
[0102]進(jìn)一步,在步驟S3中,本發(fā)明重點(diǎn)考慮手勢的連續(xù)運(yùn)動所形成的軌跡序列,并識別出該軌跡序列。因此,手勢的絕對位置、手形、手勢運(yùn)動速度將不在本發(fā)明的考慮范圍之內(nèi),只考慮手勢的相對位置信息。
[0103]進(jìn)一步,在步驟S4中,采用的矢量量化方法為,求得連續(xù)兩幀所捕獲的手勢區(qū)域中心點(diǎn),即S3中捕獲的手勢序列點(diǎn)的縱、橫坐標(biāo)值之差的絕對值,將縱坐標(biāo)之差的絕對值除以橫坐標(biāo)之差的絕對值,獲取二者的tan值,并反向利用arctan函數(shù)求得角度(0°?359°之間),并將該角度除以20,這樣可以量化為O?17的符號值。這樣,N個連續(xù)的手部運(yùn)動中心點(diǎn)坐標(biāo),通過轉(zhuǎn)換后可以得到一個包含N-1個符號值的符號序列。
[0104]手勢軌跡矢量量化示意圖如圖3所示。
[0105](3)模型訓(xùn)練與手勢識別階段操作
[0106]S5:將采集到的多樣本符號序列用于模型的訓(xùn)練中。在本發(fā)明中采用的訓(xùn)練和識別動態(tài)手勢軌跡的模型為隱馬爾科夫模型(Hidden Markov Models, HMMs),該模型對處理時間序列的序列時,有很好的識別效果。
[0107]S6:將輸入的多樣本逐個樣本訓(xùn)練,訓(xùn)練方式如下:
[0108]S6.1:對每一個輸入的符號序列樣本,利用baum-welch算法訓(xùn)練該樣本,進(jìn)而調(diào)整 HMM 中模型的參數(shù)(參見 LR Rabiner.A tutorial on hidden Markovmodels and selected applications in speech recognition.Proceedings of theIEEE, 1989.257-286)。在相鄰兩次整型符號序列訓(xùn)練得到的模型的訓(xùn)練樣本輸出概率之差的絕對值小于設(shè)定閾值后,進(jìn)入下一個樣本的訓(xùn)練;相鄰兩次整型符號序列訓(xùn)練得到的模型的訓(xùn)練樣本輸出概率之差采用forward算法計(jì)算。
[0109]S6.2:對于每一個樣本,重復(fù)S6.1的訓(xùn)練過程,這樣可以得到多個訓(xùn)練樣本所對應(yīng)的多個訓(xùn)練模型;
[0110]S7:將得到的多個訓(xùn)練模型中的參數(shù)逐項(xiàng)相加,并歸一化各個參數(shù),這樣得到的模型也即根據(jù)多個樣本訓(xùn)練求得的模型,這個多樣本訓(xùn)練得到的模型可以有效地表達(dá)這些符號序列樣本;
[0111]多樣本的模型訓(xùn)練流程圖如圖4所示。
[0112]S8:對于每個動作對應(yīng)的模型的訓(xùn)練過程,重復(fù)SI?S7的操作,這樣,最后得到每一個動態(tài)手勢序列集合的隱馬爾科夫模型。
[0113]S9:對于待識別的一個手勢動作序列,重復(fù)步驟(I)和步驟(2)的處理得到該手勢動作序列的視頻流對應(yīng)的整型符號序列;
[0114]SlO:利用隱馬爾科夫模型中的forward算法,計(jì)算步驟S9中得到手勢動作序列在步驟S8中訓(xùn)練得到的所有隱馬爾科夫模型中的輸出概率;
[0115]Sll:求出在這些模型中求得的概率中的最大概率,將該最大概率所對應(yīng)的隱馬爾科夫模型作為識別結(jié)果;最大概率說明對應(yīng)模型能最佳輸出該顯式狀態(tài)序列,此模型能與序列最佳匹配;
[0116]S12:根據(jù)識別結(jié)果完成預(yù)定義操作;
[0117]進(jìn)一步,在步驟S5中,隱馬爾科夫模型用于處理時間序列的符號具有很好的效果,它包含隱式狀態(tài)數(shù)目,顯式狀態(tài)數(shù)目,初始狀態(tài)轉(zhuǎn)移矩陣,隱式狀態(tài)轉(zhuǎn)移矩陣,隱式顯示狀態(tài)轉(zhuǎn)移矩陣等五個參數(shù)。
[0118]隱馬爾科夫模型(Hidden Markov Models)包含四個算法,用以解決以下三個問題:
[0119]①給定模型和顯式狀態(tài)序列,計(jì)算模型輸出該顯式狀態(tài)序列的概率,計(jì)算方法可以使用forward/backward算法實(shí)現(xiàn);
[0120]②給定模型和顯式狀態(tài)序列,計(jì)算模型中所對應(yīng)的隱式狀態(tài)序列能最佳(也即最大概率)表達(dá)該顯式狀態(tài)序列,計(jì)算方法可以使用viterbi算法實(shí)現(xiàn);
[0121]③給定顯式狀態(tài)序列,調(diào)整模型參數(shù),求得最能表達(dá)該顯式狀態(tài)序列的模型,計(jì)算方法可以使用baum-welch算法實(shí)現(xiàn)。
[0122]在步驟S5中,即采用③中的baum-welch算法完成模型的訓(xùn)練工作。
[0123]進(jìn)一步,在步驟SlO中,識別過程除了使用forward算法之外,還可以使用viterbi算法求得顯式狀態(tài)序列所對應(yīng)的最佳隱式狀態(tài)序列的輸出概率,二者的不同之處在于:forward算法求得的是模型中所有隱式狀態(tài)序列輸出該顯式狀態(tài)序列的概率之和;而viterbi算法求得的是這些隱式狀態(tài)序列中能最大概率輸出該顯式狀態(tài)序列所對應(yīng)的隱式狀態(tài)序列和此序列的輸出概率。在本發(fā)明中,使用forward算法來求得識別結(jié)果。
[0124](4)增量學(xué)習(xí)階段操作[0125]S13:將Sll步驟中求得的最大概率與閾值比較,若大于預(yù)定義閾值,說明該識別結(jié)果有較大置信度,可以用于該隱馬爾科夫模型的增量學(xué)習(xí)中;
[0126]S14:增量學(xué)習(xí)過程為:
[0127]S14.1:已識別并且利用forward算法求得的輸出概率值置信度大于對應(yīng)識別結(jié)果的閾值的顯式狀態(tài)序列,再次利用baum-welch訓(xùn)練HMM中各個參數(shù),通過訓(xùn)練求得一個新的模型;閾值是步驟SlO所有訓(xùn)練樣本的輸出概率的算數(shù)平均值;
[0128]S14.2:將原有模型與新的模型各個參數(shù)相加進(jìn)行融合,新的模型將乘以一個預(yù)定義權(quán)值,即為學(xué)習(xí)率Π,學(xué)習(xí)率Π取值范圍O~1,通過設(shè)定不同的大小的權(quán)值,可以使模型在保有原有知識和適應(yīng)新知識中有效的權(quán)衡;
[0129]S14.3:將融合后的模型參數(shù)歸一化,即完成了一輪增量學(xué)習(xí)操作;
[0130]S15: 一輪增量學(xué)習(xí)過程完成,系統(tǒng)重新轉(zhuǎn)入S9步驟中,完成下一輪的識別與增量學(xué)習(xí)過程中;
[0131]識別階段樣本增量學(xué)習(xí)流程圖如圖5所示。
[0132]進(jìn)一步,在步驟S13中,使用的閾值是根據(jù)在步驟S6,S7中對訓(xùn)練樣本使用forward算法,求得的識別輸出概率,再根據(jù)所有訓(xùn)練樣本的識別輸出概率,求得的這些輸出概率的均值。
[0133]進(jìn)一步,在步驟S14中,隱馬爾科夫模型的增量學(xué)習(xí)中,除了有S14所介紹的單個樣本增量學(xué)習(xí)之外,還有塊增量學(xué)習(xí)方法,也即多個識別樣本訓(xùn)練出多個新的模型后,這些模型先融合并歸一化為一個新的模型后,再與原有模型融合并歸一化,生成最終的增量學(xué)習(xí)后的模型。這些都是樣本增量學(xué)習(xí)的概念。
[0134]增量學(xué)習(xí)方法不僅可以`使模型具有更好的魯棒性和適應(yīng)性,而且在小樣本訓(xùn)練生成模型后,可以根據(jù)后期識別結(jié)`果繼續(xù)訓(xùn)練模型,使得模型更加完善,從而大大節(jié)約了時間和精力上的開支。
[0135]S16:至此,完成了⑴~⑷步驟的所有操作.[0136]實(shí)施例
[0137]在實(shí)施例中,識別O~9 一共10個阿拉伯?dāng)?shù)字的手勢操作運(yùn)動軌跡。操作人在攝像頭前利用人手在空間區(qū)域上模擬10個阿拉伯?dāng)?shù)字筆畫的軌跡,這些量化后的手勢軌跡用來模型訓(xùn)練、手勢識別與增量學(xué)習(xí)。
[0138]在訓(xùn)練階段,每個阿拉伯?dāng)?shù)字使用40段視頻流,也即40個訓(xùn)練樣本進(jìn)行訓(xùn)練,這樣訓(xùn)練樣本的總數(shù)為400個。
[0139]在識別階段,每個阿拉伯?dāng)?shù)字的識別樣本數(shù)目從70~100個不等(注:姿勢“I”由于在實(shí)驗(yàn)時用做測試視頻,所以錄制了大量的樣本庫),實(shí)驗(yàn)中訓(xùn)練樣本與識別樣本數(shù)目如表1所示:
[0140]表1實(shí)驗(yàn)中訓(xùn)練樣本與識別樣本數(shù)目列表
[0141]
【權(quán)利要求】
1.一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,包括以下步驟: (1)手勢檢測與跟蹤; (2)特征提取與矢量量化; (3)模型訓(xùn)練與手勢識別; (4)增量學(xué)習(xí)。
2.根據(jù)權(quán)利要求1所述的一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,手勢檢測與跟蹤包括以下步驟: 51:通過攝像頭或已存在的視頻文件獲取包含手勢的視頻流; 52:對視頻流中的每一個圖像幀Ptl作如下處理以檢測與跟蹤圖像幀中的手勢: S2.1:調(diào)整每一個圖像幀Ptl大小至統(tǒng)一尺寸,并對圖像幀Ptl進(jìn)行中值濾波,得到圖像幀Pi; S2.2:將濾波后的圖像幀P1從RGB色彩空間轉(zhuǎn)換至YCrCb色彩空間,其中R、G、B分別表示紅、綠、藍(lán)三個通道;Y表示亮度分量,Cb指藍(lán)色色度分量,Cr指紅色色度分量; S2.3:分離Cr、Cb通道圖像,根據(jù)閾值二值化Cr、Cb通道圖像,閾值為133 SCrS 173,77 ^ Cb ^ 127 ; S2.4^fCr、Cb通道的二值圖像并集求和,得到二值圖像幀P2 ; S2.5:對二值圖像幀P2做腐蝕、膨脹操作,得到二值圖像幀P3 ; S2.6:去除二值圖像幀P3中小于面積閾值的區(qū)域,面積閾值為二值圖像幀P3面積的5%,將剩余的區(qū)域組成二值圖像幀P4 ; S2.7:在步驟S2.1得到的圖像幀P1中框選出對應(yīng)二值圖像幀P4的矩形區(qū)域,框選的矩形區(qū)域內(nèi)為圖像幀P1中原始RGB色彩空間的圖像,區(qū)域外的圖像賦值為純黑色,得到圖像幀P5; S2.8:將步驟S2.7得到的圖像幀P5通過灰度變換轉(zhuǎn)為單通道灰度圖像,再將灰度圖像直方圖均衡化,灰度圖像為單一通道,得到圖像幀P6 ; S2.9:將步驟S2.8中得到的圖像幀P6通過adaboost算法分類器檢測并標(biāo)定人體頭部區(qū)域; S2.10:在步驟S2.7的圖像幀P5去除中步驟S2.9中檢測到的人體頭部區(qū)域,得到圖像幀P7,圖像幀P7中除處于閾值133 ^ Cr ^ 173和77≤Cb≤127的區(qū)域外,其余區(qū)域?yàn)榧兒谏? S2.11:將步驟S2.10的圖像幀P7從RGB色彩空間轉(zhuǎn)換至HSV色彩空間,并分離出H空間,得到圖像幀P8; S2.12:計(jì)算步驟S2.11分離出的H空間的圖像幀的直方圖方向投影; S2.13:根據(jù)步驟S2.13的結(jié)果計(jì)算直方圖反向投影,結(jié)合Camshift跟蹤算法,跟蹤動態(tài)的手勢,選出手部區(qū)域,得到圖像幀P9 ; S2.14:提取圖像幀P9中手部區(qū)域中心點(diǎn)的坐標(biāo)。
3.根據(jù)權(quán)利要求2所述的一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,步驟S2.6中,區(qū)域面積計(jì)算采用連通像素點(diǎn)求和的統(tǒng)計(jì)方法,使用隊(duì)列的數(shù)據(jù)結(jié)構(gòu)逐點(diǎn)統(tǒng)計(jì)圖像幀中的每一個點(diǎn),去除小于面積閾值的區(qū)域,并同時計(jì)算檢測到的剩余的區(qū)域的頂、底、左、右四個邊界的坐標(biāo)和區(qū)域面積。
4.根據(jù)權(quán)利要求2所述的一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,特征提取與矢量量化包括以下步驟: S3:根據(jù)步驟S2.1~S2.14得到視頻流中的每一幅圖像幀的手部區(qū)域中心點(diǎn)的坐標(biāo),將視頻流所有圖像幀中手部區(qū)域中心點(diǎn)的坐標(biāo)組成手部運(yùn)動軌跡的時間序列,該時間序列即為捕獲到的手勢運(yùn)動軌跡的特征向量; S4:將S3中的特征向量序列矢量量化,得到一個整型符號序列,該整型符號序列即模型訓(xùn)練與手勢識別采用的手勢動作序列輸入樣本。
5.根據(jù)權(quán)利要求4所述的一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,在步驟S4中,采用的矢量量化方法為,根據(jù)連續(xù)兩個圖像幀中的手部區(qū)域中心點(diǎn)的坐標(biāo)的縱、橫坐標(biāo)值之差的絕對值,將縱坐標(biāo)之差的絕對值除以橫坐標(biāo)之差的絕對值,獲取二者的tan值,并反向利用arctan函數(shù)求得角度,并將該角度除以20,得到量化為O~17的整型符號值,對于N幀圖像的N個連續(xù)的手部運(yùn)動中心點(diǎn)坐標(biāo),得到一個包含N-1個整型符號值的整型符號序列。
6.根據(jù)權(quán)利要求5所述的一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,模型訓(xùn)練與手勢識別階段操作包括以下步驟: 55:對于一個手勢動作采集到80個以上的視頻流,對每個視頻流進(jìn)行步驟(1)和步驟(2)的處理得到對應(yīng)的整型符號序列用于模型的訓(xùn)練中作為樣本訓(xùn)練; 56:將輸入的樣本逐個訓(xùn)練,包括如下步驟: S6.1:對每一個樣本的整型符號序列,利用baum-welch算法訓(xùn)練,進(jìn)而調(diào)整隱馬爾科夫模型中的參數(shù),在相鄰兩次整型符號序列訓(xùn)練得到的模型的訓(xùn)練樣本輸出概率之差的絕對值小于設(shè)定閾值后,進(jìn)入下一個樣本的訓(xùn)練; S6.2:得到每一個樣本所對應(yīng)的訓(xùn)練模型; 57:將所有訓(xùn)練模型中的參數(shù)逐項(xiàng)相加,并歸一化各個參數(shù); 58:對于每一個手勢動作,重復(fù)步驟SI~S7的操作,得到每一個手勢動作的隱馬爾科夫模型; 59:對于待識別的一個手勢動作序列,重復(fù)步驟(1)和步驟(2)的處理得到該手勢動作序列的視頻流對應(yīng)的整型符號序列; 510:利用隱馬爾科夫模型中的forward算法,計(jì)算步驟S9中得到手勢動作序列在步驟S8中訓(xùn)練得到的所有手勢動作的隱馬爾科夫模型中的輸出概率; 511:將所有輸出概率中的最大概率所對應(yīng)的隱馬爾科夫模型作為識別結(jié)果; 512:根據(jù)識別結(jié)果完成操作。
7.根據(jù)權(quán)利要求6所述的一種基于隱馬爾科夫模型自增量學(xué)習(xí)的動態(tài)手勢識別方法,其特征在于,增量學(xué)習(xí)階段包括: 513:將步驟Sll中的最大概率與閾值比較,若大于閾值,則進(jìn)行增量學(xué)習(xí); S14:增量學(xué)習(xí)具體步驟為: S14.1:根據(jù)步驟S9識別的整型符號序列,利用baum-welch方法訓(xùn)練隱馬爾科夫模型中各個參數(shù),得到一個新的模型; S14.2:將原有模型與步 驟S14.1新的模型各個參數(shù)相加進(jìn)行融合,在融合之前將新的模型乘以學(xué)習(xí)率n;S14.3:將融合后 的模型參數(shù)歸一化,即完成了一輪增量學(xué)習(xí)操作。
【文檔編號】G06K9/66GK103593680SQ201310585572
【公開日】2014年2月19日 申請日期:2013年11月19日 優(yōu)先權(quán)日:2013年11月19日
【發(fā)明者】申富饒, 胡孟, 趙金熙 申請人:南京大學(xué)