本發(fā)明屬于計(jì)算機(jī)視覺和人機(jī)交互技術(shù)領(lǐng)域,更為具體地講,涉及一種基于STDW(Structured Dynamic Time Warping,結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法)的連續(xù)字符手勢(shì)軌跡識(shí)別方法。
背景技術(shù):
人機(jī)交互技術(shù)實(shí)現(xiàn)計(jì)算機(jī)與人之間的信息輸入與輸出,人向計(jì)算機(jī)輸入指令,計(jì)算機(jī)向人輸出計(jì)算結(jié)果。在信息科技快速發(fā)展的今天,各種智能設(shè)備的出現(xiàn),正在改變著人們的日常生活。隨著新型智能設(shè)備的涌現(xiàn),新型的人機(jī)交互方式也在顛覆傳統(tǒng)的人機(jī)交互模式。
深度攝像機(jī)的商業(yè)化推進(jìn)(例如Kinect、Leap Motion),使得手勢(shì)識(shí)別在3D人機(jī)交互領(lǐng)域獲得了越來越多的關(guān)注。
手勢(shì)識(shí)別分為靜態(tài)手勢(shì)識(shí)別與動(dòng)態(tài)手勢(shì)識(shí)別,靜態(tài)手勢(shì)利用手部的不同姿態(tài)、形狀來進(jìn)行識(shí)別,而動(dòng)態(tài)手勢(shì)則多用手部的軌跡來進(jìn)行識(shí)別、交互。使用手勢(shì)軌跡識(shí)別的交互方式具有自然、易使用等特點(diǎn),這種方式無需用戶攜帶其它外設(shè)即可進(jìn)行便利的人機(jī)交互,無論是在會(huì)議、課堂以及任何需要文字、字符輸入的地方都可以使用軌跡識(shí)別的方式來進(jìn)行替代。
軌跡識(shí)別的應(yīng)用還可輕松移植到其它設(shè)備上,例如通過對(duì)激光筆的軌跡進(jìn)行分析,可以解析出用戶的書寫內(nèi)容從而打印在屏幕上,通過對(duì)手機(jī)軌跡的識(shí)別可以控制其它設(shè)備(例如飛行器等),因此軌跡識(shí)別具有重要的研究意義。
軌跡識(shí)別可分為連續(xù)軌跡識(shí)別與非連續(xù)軌跡識(shí)別,傳統(tǒng)的軌跡識(shí)別方式中多數(shù)是使用的非連續(xù)軌跡識(shí)別,例如手機(jī)與平板上的手寫識(shí)別,都能通過用戶的起筆、抬筆等動(dòng)作而獲得開始、結(jié)束點(diǎn),然后再利用此軌跡段進(jìn)行識(shí)別。連續(xù)軌跡識(shí)別則能夠自動(dòng)的分割出軌跡段,對(duì)用戶的書寫要求更少。對(duì)于非連續(xù)軌跡識(shí)別,他一定程度上降低了人機(jī)交互的效率,基于視覺的一些復(fù)雜規(guī)則使得用戶體驗(yàn)下降。對(duì)于目前的連續(xù)軌跡識(shí)別算法,多采用的是基于速率閾值來自動(dòng)判斷軌跡的起止點(diǎn),基于這種方式的連續(xù)軌跡手勢(shì)識(shí)別對(duì)于用戶的體驗(yàn)也有一定的影響。
現(xiàn)有技術(shù)中,2015年06月24日授權(quán)公告的、公告號(hào)為CN102854982B的中國(guó)發(fā)明專利公布了“一種識(shí)別自定義手勢(shì)軌跡的方法”。該發(fā)明首先對(duì)輸入軌跡進(jìn)行優(yōu)化獲得優(yōu)化后的軌跡,再對(duì)其提出相應(yīng)的特征,包括起止點(diǎn)之間的距離、總的旋轉(zhuǎn)角度和,起止點(diǎn)距離與手勢(shì)總距離的比值等,然后將這些特征信息與手勢(shì)庫中的預(yù)設(shè)手勢(shì)特診進(jìn)行直接匹配,從而進(jìn)行識(shí)別,雖然這種方式解析速度較快、實(shí)時(shí)性較好,但是直接匹配這種方式對(duì)手勢(shì)軌跡的尺度性變化魯棒性不強(qiáng),這樣就會(huì)增加同一類別的模板數(shù)量使得存儲(chǔ)量增加以及運(yùn)算速度下降。并且此發(fā)明是用于平板、手機(jī)的輸入軌跡識(shí)別,能夠根據(jù)點(diǎn)擊事件獲取起止點(diǎn),因此與連續(xù)軌跡識(shí)別不相同。
現(xiàn)有技術(shù)中,2012年09月12日公布的、公布號(hào)為CN102662465A的中國(guó)發(fā)明專利申請(qǐng)公布了一種“基于動(dòng)態(tài)軌跡的視覺字符輸入方法及系統(tǒng)”。該發(fā)明首先從字符模板庫中選定所要輸入字符所述的類,調(diào)整視覺字符輸入的狀態(tài),進(jìn)入字符輸入狀態(tài)后即開始獲取字符輸入的動(dòng)態(tài)軌跡,然后對(duì)獲取的字符的動(dòng)態(tài)軌跡數(shù)據(jù)進(jìn)行調(diào)整,與所述分類模板庫中的字符樣式進(jìn)行匹配,識(shí)別所輸入的字符,得到識(shí)別結(jié)果。雖然所提出的方法及系統(tǒng)有很好的實(shí)時(shí)性,但是此系統(tǒng)需要求用戶按照其模板進(jìn)行書寫,而對(duì)于常用的字符來說,不同用戶的書寫習(xí)慣是不一樣的,強(qiáng)行要求用戶按照模板所規(guī)定的單一寫法會(huì)使人機(jī)交互體驗(yàn)大打折扣。除此之外,此方法設(shè)定了一個(gè)時(shí)間閾值,在時(shí)間段之內(nèi)用戶需要一筆寫完相應(yīng)的字符,使用這種方式來分割出軌跡段也降低了人機(jī)交互的便利性,帶給用戶更多的約束。
現(xiàn)有技術(shù)中,2014年01月15日公布的、公布號(hào)為CN103513759A的中國(guó)發(fā)明專利申請(qǐng)公布了一種“手勢(shì)軌跡識(shí)別方法和裝置”,該發(fā)明使用鏈碼的方式來進(jìn)行手勢(shì)軌跡識(shí)別,照不同的方向把手勢(shì)軌跡模板分成16種,然后對(duì)每種進(jìn)行標(biāo)號(hào),后期使用編號(hào)來進(jìn)行識(shí)別。首先它把這16種手勢(shì)軌跡模板分為三類,并且根據(jù)輸入手勢(shì)軌跡包括的關(guān)鍵點(diǎn)的數(shù)目來判斷輸入手勢(shì)軌跡屬于三類中的哪一類軌跡模板以及利用不同的方法來識(shí)別輸入手勢(shì)軌跡。此方法最終以上、下、左、右等軌跡以及10個(gè)阿拉伯?dāng)?shù)字等簡(jiǎn)單字符作為識(shí)別結(jié)果,并且假設(shè)軌跡的起止點(diǎn)是已知的,并未涉及自動(dòng)的軌跡分割算法設(shè)計(jì)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的不足,提出一種基于STDW(Structured Dynamic Time Warping,結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法)的連續(xù)字符手勢(shì)軌跡識(shí)別方法,以自然、實(shí)時(shí)、準(zhǔn)確對(duì)連續(xù)字符手勢(shì)軌跡的識(shí)別。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明基于結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法的連續(xù)字符手勢(shì)軌跡識(shí)別方法,其特征在于,包括以下步驟:
(1)、連續(xù)字符手勢(shì)軌跡自動(dòng)提取(分割)
1.1)、對(duì)原始的輸入連續(xù)字符手勢(shì)軌跡進(jìn)行間隔歸一化采樣
設(shè)定距離閾值,使用累積策略累積間隔較小的原始軌跡點(diǎn),得到一個(gè)累積點(diǎn)作為采樣后的點(diǎn),并使之與前一個(gè)采樣后的點(diǎn)間距等于距離閾值,使用插值策略對(duì)間隔較大的原始軌跡點(diǎn)進(jìn)行插值,得到一個(gè)插值點(diǎn)作為采樣后的點(diǎn),并使之與前一個(gè)采樣后的點(diǎn)間距等于距離閾值;采樣后的點(diǎn)即為歸一化采樣后的連續(xù)字符手勢(shì)軌跡的軌跡點(diǎn);
1.2)、相似度度量特征提取
對(duì)于歸一化采樣后的連續(xù)字符手勢(shì)軌跡,計(jì)算相鄰軌跡點(diǎn)之間的歸一化方向向量并作為相似度度量特征;
1.3)、DTW閾值匹配與軌跡段提取
對(duì)于一個(gè)字符模板,事先按照步驟1.2)進(jìn)行處理,得到一個(gè)相似度度量特征序列,并作為字符模板特征列向量,其中,字符模板中,軌跡點(diǎn)距離等于距離閾值的,字符模板特征列向量的第一個(gè)元素為該字符模板的起點(diǎn)軌跡點(diǎn)獲取的相似度度量特征,字符模板特征列向量的最后一個(gè)元素為該字符模板的終點(diǎn)軌跡點(diǎn)獲取的相似度度量特征;
對(duì)于原始的輸入連續(xù)字符手勢(shì)軌跡,獲得原始軌跡點(diǎn)后,首先按照步驟1.1)、1.2)進(jìn)行處理,依次獲得相似度度量特征,然后對(duì)于獲得的每一個(gè)相似度度量特征,計(jì)算出其與字符模板特征列向量每個(gè)元素的距離,得到一個(gè)相同順序關(guān)系的特征距離列向量,并插入到前一個(gè)特征距離列向量的右側(cè),從而構(gòu)建出一個(gè)新的相似度矩陣;相似度矩陣的列數(shù)大于等于連續(xù)字符手勢(shì)軌跡間隔歸一化采樣后的點(diǎn)的數(shù)量,當(dāng)新插入的特征距離列向量使得列數(shù)大于相似度矩陣的列數(shù)時(shí),最左側(cè)的特征距離列向量將會(huì)被丟棄;
在相似度矩陣構(gòu)建過程中,使用貪心策略得出相似度矩陣中到當(dāng)前輸入最右下角的最優(yōu)路徑,并累加最優(yōu)路徑上元素的代價(jià)值,得到代價(jià)累加值;其中,元素ω(i,j)的代價(jià)值為:
ω(i,j)=d(i,j)+min{ω(i-1,j-1),ω(i-1,j),ω(i,j-1)} (1)
其中,d(i,j)表示相似度矩陣中坐標(biāo)為(i,j)處的元素值,ω(i-1,j-1)表示相似度矩陣中坐標(biāo)為(i-1,j-1)處的代價(jià)累加值,ω(i-1,j)表示相似度矩陣中坐標(biāo)為(i-1,j)處的代價(jià)累加值,ω(i,j-1)表示相似度矩陣中坐標(biāo)為(i,j-1)處的代價(jià)累加值;
當(dāng)代價(jià)累加值小于閾值時(shí),則認(rèn)為字符模板與連續(xù)字符手勢(shì)軌跡匹配上了,此時(shí),再根據(jù)求最優(yōu)路徑時(shí)保存的信息回溯,在歸一化采樣后的連續(xù)字符手勢(shì)軌跡中找出這條路徑即可提取出對(duì)應(yīng)的軌跡段;
連續(xù)字符手勢(shì)軌跡與每個(gè)字符模板都進(jìn)行DTW閾值匹配,如果匹配上了,就提取出對(duì)應(yīng)的軌跡段;
(2)、STDW(結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法)識(shí)別
2.1)、軌跡段尺度歸一化
對(duì)提取的軌跡段,使用PCA(主成分分析)算法求出軌跡段的主方向,求出主方向后,對(duì)軌跡段中的每一個(gè)軌跡點(diǎn)使用下面的方式進(jìn)行尺度上的歸一化:
Ratio=lin/lset (2)
pjs′=pjs*Ratio (3)
Tras=bpj(pjs′) (4)
其中l(wèi)in為軌跡段的主方向長(zhǎng)度,lset為設(shè)置的歸一化主方向長(zhǎng)度,pjs為軌跡段軌跡點(diǎn)s經(jīng)過PCA變化之后投影到主方向上的點(diǎn),bpj為反投影至2維空間,即PCA反變換還原之前的點(diǎn),Tras為二維空間的軌跡點(diǎn),并構(gòu)成尺度歸一化后的軌跡段;
對(duì)尺度歸一化后的軌跡段進(jìn)行步驟1.1)的間隔歸一化采樣,采樣后的點(diǎn)為Tra′s,然后,根據(jù)以下式子把整體坐標(biāo)平移成以(0,0)為中心的采樣點(diǎn)Tra″s:
Tra″s=Tra′s-(ptx,pty) (6)
其中ptx,pty代表軌跡段的質(zhì)心,x,y為坐標(biāo)軸,N為采樣后的點(diǎn)的數(shù)量;所有的采樣點(diǎn)Tra″s構(gòu)成軌跡段采樣點(diǎn)序列;
2.2)、提取新特征
對(duì)軌跡段采樣點(diǎn)序列進(jìn)行角點(diǎn)的檢測(cè):
其中,θk表示第s個(gè)采樣點(diǎn)與第s±k個(gè)采樣點(diǎn)之間的角度,d(s,s±k)表示第s個(gè)采樣點(diǎn)與第s±k個(gè)采樣點(diǎn)之間的距離。
對(duì)于第s個(gè)采樣點(diǎn),s=1,2,﹍,N,當(dāng)k=1,2,3中任意一個(gè)數(shù),角度θk<τ時(shí)即檢測(cè)到角點(diǎn),其中,τ為角度閾值,可以根據(jù)具體情況設(shè)置;
生成一個(gè)長(zhǎng)度為N的序列,序列中的元素?cái)?shù)值為0,然后在角點(diǎn)位置按照以下擬合函數(shù)進(jìn)行賦值:
Z=0時(shí),f(0)的值賦值給序列中角點(diǎn)位置的元素,Z=1時(shí),f(1)的值賦值給序列中角點(diǎn)位置后面第一個(gè)元素,Z=2時(shí),f(2)的值賦值給序列中角點(diǎn)位置后面第二個(gè)元素,Z=-1時(shí),f(-1)的值賦值給序列中角點(diǎn)位置前面第一個(gè)元素,Z=-2時(shí),f(-2)的值賦值給序列中角點(diǎn)位置前面第一個(gè)元素,從而得到一個(gè)權(quán)重分布序列;
2.3)、SDTW識(shí)別
2.3.1)、構(gòu)建權(quán)重分布矩陣
字符模板事先按照步驟2.1)、2.2)進(jìn)行相同的處理,得到字符模板采樣點(diǎn)序列、一個(gè)權(quán)重分別序列;
將軌跡段的權(quán)重分布序列作為一個(gè)行向量,與軌跡段對(duì)應(yīng)的字符模板的權(quán)重分布序列作為一個(gè)列向量,構(gòu)建一個(gè)權(quán)重分布矩陣(fij),其中,元素fij為行向量中的第i個(gè)元素與列向量中的第j個(gè)元素之和;
2.3.2)、構(gòu)建像素距離相似度矩陣
將字符模板采樣點(diǎn)序列作為一個(gè)列向量,其中,第一個(gè)元素對(duì)應(yīng)該字符模板的起點(diǎn)軌跡點(diǎn),最后一個(gè)元素對(duì)應(yīng)該字符模板的終點(diǎn)軌跡點(diǎn),然后計(jì)算軌跡段采樣點(diǎn)序列第一個(gè)采樣點(diǎn)與列向量中每個(gè)元素的像素距離,得到一個(gè)像素距離列向量,同樣,將第二個(gè)采樣點(diǎn)也進(jìn)行同樣的計(jì)算,得到的像素距離列向量放到前一個(gè)像素列向量的右側(cè),軌跡段采樣點(diǎn)序列中的采樣點(diǎn)依次采用同樣的計(jì)算和處理,得到一個(gè)像素距離相似度矩陣;
2.3.3)、計(jì)算代價(jià)累加值
使用貪心策略搜索出像素距離相似度矩陣到右下角的最優(yōu)路徑,并累加最優(yōu)路徑上元素的代價(jià)值,得到代價(jià)累加值ω′(i,j):
ω′(i,j)=(1+fij)d′(i,j)+min{ω′(i-1,j-1),ω′(i-1,j),ω′(i,j-1)} (8)
其中,d′(i,j)表示像素距離相似度矩陣中坐標(biāo)為(i,j)處的元素值,ω′(i-1,j-1)表示像素距離相似度矩陣中坐標(biāo)為(i-1,j-1)處的代價(jià)累加值,ω′(i-1,j)表示像素距離相似度矩陣中坐標(biāo)為(i-1,j)處的代價(jià)累加值,ω′(i,j-1)表示像素距離似度矩陣中坐標(biāo)為(i,j-1)處的代價(jià)累加值;
2.3.4)、識(shí)別
如果步驟(1)中,同時(shí)有兩個(gè)或兩個(gè)以上字符模板匹配上,則選擇相像素距離似度矩陣中代價(jià)累加值最小的字符模板對(duì)應(yīng)的字符作為識(shí)別字符輸出,如果只有一個(gè)匹配上,則直接將匹配上的字符模板對(duì)應(yīng)的字符作為識(shí)別字符輸出;
(3)、軌跡自包含的處理
識(shí)別字符存儲(chǔ)到輸出隊(duì)列中,如果當(dāng)前輸出識(shí)別字符對(duì)應(yīng)的軌跡段坐標(biāo)序列與輸出隊(duì)列中存儲(chǔ)的識(shí)別字符的軌跡段坐標(biāo)序列具有包含關(guān)系,即在某一部分軌跡上它們的坐標(biāo)完全一樣,則保留最長(zhǎng)的軌跡段對(duì)應(yīng)的識(shí)別字符,而去除掉較短的軌跡段對(duì)應(yīng)的識(shí)別字符,然后存儲(chǔ)到輸出隊(duì)列中;如果不具有包含關(guān)系,則保存識(shí)別字符到輸出隊(duì)列中;當(dāng)輸出隊(duì)列中的識(shí)別字符數(shù)量大于輸出隊(duì)列長(zhǎng)度時(shí),先存入的識(shí)別字符作為最終識(shí)別字符輸出,同時(shí),結(jié)束輸入后,輸出隊(duì)列里的內(nèi)容也作為最終識(shí)別字符輸出。
本發(fā)明的目的是這樣實(shí)現(xiàn)的。
針對(duì)現(xiàn)有技術(shù)存在的問題,本發(fā)明提出了一種基于結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法的連續(xù)字符手勢(shì)軌跡識(shí)別方法,通過連續(xù)手勢(shì)軌跡的自動(dòng)分割問題、角點(diǎn)新特征的提取與STDW識(shí)別以及字符手勢(shì)軌跡之間的包含的處理,實(shí)現(xiàn)自然、實(shí)時(shí)、準(zhǔn)確對(duì)連續(xù)字符手勢(shì)軌跡的識(shí)別。與現(xiàn)有技術(shù)相比,本發(fā)明的交互方式更加自然、對(duì)用戶的約束更小符合人機(jī)交互的要求。相對(duì)于傳統(tǒng)的數(shù)個(gè)手勢(shì)動(dòng)作類別更加多樣,在兼顧準(zhǔn)確性與實(shí)時(shí)性的條件下,本發(fā)明把字符手勢(shì)軌跡的結(jié)構(gòu)與動(dòng)態(tài)時(shí)間規(guī)整算法相結(jié)合而形成結(jié)構(gòu)化的動(dòng)態(tài)時(shí)間規(guī)整算法來提高原始算法的識(shí)別效果,增加識(shí)別率,同時(shí),具有較高的準(zhǔn)確率、較好的人機(jī)交互體驗(yàn)并能滿足實(shí)時(shí)性要求。
附圖說明
圖1是本發(fā)明基于結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法的連續(xù)字符手勢(shì)軌跡識(shí)別方法一種具體實(shí)施方式流程圖;
圖2是圖1所示間隔歸一化采樣的原理示意圖;
圖3是圖1所示相似度度量特征提取中的歸一化方向向量的提取示意圖;
圖4是圖1所示DTW閾值匹配與軌跡段提取中構(gòu)建的相似度矩陣示意圖;
圖5是圖1所示軌跡段尺度歸一化示意圖;
圖6是圖1所示提取新特征中的角度以及高斯權(quán)重分布示意圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行描述,以便本領(lǐng)域的技術(shù)人員更好地理解本發(fā)明。需要特別提醒注意的是,在以下的描述中,當(dāng)已知功能和設(shè)計(jì)的詳細(xì)描述也許會(huì)淡化本發(fā)明的主要內(nèi)容時(shí),這些描述在這里將被忽略。
圖1是本發(fā)明基于結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法的連續(xù)字符手勢(shì)軌跡識(shí)別方法一種具體實(shí)施方式流程圖。
在本實(shí)施例中,如圖1所示,本發(fā)明基于結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法的連續(xù)字符手勢(shì)軌跡識(shí)別方法包括以下步驟:
步驟1、連續(xù)字符手勢(shì)軌跡自動(dòng)提取(分割)
步驟101、對(duì)原始的輸入連續(xù)字符手勢(shì)軌跡進(jìn)行間隔歸一化采樣
由于程序運(yùn)行的差異性以及用戶書寫速度的差異性,得到的連續(xù)字符手勢(shì)軌跡的軌跡點(diǎn)之間在空間距離間隔上是不均勻的。為了方便后續(xù)的相似度度量特征提取,需要對(duì)原始的輸入連續(xù)字符手勢(shì)軌跡進(jìn)行間隔歸一化采樣:設(shè)定距離閾值,使用累積策略累積間隔較小的原始軌跡點(diǎn),得到一個(gè)累積點(diǎn)作為采樣后的點(diǎn),并使之與前一個(gè)采樣后的點(diǎn)間距等于距離閾值,使用插值策略對(duì)間隔較大的原始軌跡點(diǎn)進(jìn)行插值,得到一個(gè)差值點(diǎn)作為采樣后的點(diǎn),并使之與前一個(gè)采樣后的點(diǎn)間距等于距離閾值。采樣后的點(diǎn)即為歸一化采樣后的連續(xù)字符手勢(shì)軌跡的軌跡點(diǎn)。
圖2是圖1所示間隔歸一化采樣的原理示意,其中X代表采樣后的點(diǎn),○代表原始軌跡點(diǎn)。
如圖2所示,前幾個(gè)(三個(gè))原始軌跡點(diǎn)的間隔較小即前一個(gè)采樣后的點(diǎn)到距離閾值之間有兩個(gè)以及以上的原始軌跡點(diǎn),因此,使用累積策略對(duì)這三個(gè)原始軌跡點(diǎn)進(jìn)行累積,得到一個(gè)累積點(diǎn)作為采樣后的點(diǎn),并使之與前一個(gè)采樣后的點(diǎn)間距等于距離閾值;而后幾個(gè)點(diǎn)間隔較大即前一個(gè)采樣后的點(diǎn)到距離閾值之間沒有或者只有一個(gè)原始軌跡點(diǎn),則采用使用插值策略進(jìn)行插值,得到一個(gè)差值點(diǎn)作為采樣后的點(diǎn),并使之與前一個(gè)采樣后的點(diǎn)間距等于距離閾值。
步驟102、相似度度量特征提取
對(duì)于歸一化采樣后的連續(xù)字符手勢(shì)軌跡,計(jì)算相鄰軌跡點(diǎn)之間的歸一化方向向量并作為相似度度量特征。
在間隔歸一化采樣之后,為了后續(xù)的DTW相似度計(jì)算需要提取特征,特征需要對(duì)尺度變化有一定的魯棒性,因此,在本發(fā)明中,使用的連續(xù)字符手勢(shì)軌跡的特征即為每?jī)蓚€(gè)相鄰軌跡點(diǎn)之間的歸一化的方向向量,提取方式如圖3所示。
在后續(xù)的連續(xù)字符手勢(shì)軌跡與字符模板的比較中,采用的是2個(gè)相鄰的方向向量相對(duì)角度作為相似度度量特征。
步驟103、DTW閾值匹配與軌跡段提取
DTW算法是一種匹配算法,在本發(fā)明中,它從字符模板以及輸入連續(xù)字符手勢(shì)軌跡的相似度度量特征出發(fā),構(gòu)建相似度矩陣。
對(duì)于一個(gè)字符模板,事先按照步驟102)進(jìn)行處理,得到一個(gè)相似度度量特征序列,并作為字符模板特征列向量,其中,字符模板中,軌跡點(diǎn)距離等于距離閾值的,字符模板特征列向量的第一個(gè)元素為該字符模板的起點(diǎn)軌跡點(diǎn)獲取的相似度度量特征,字符模板特征列向量的最后一個(gè)元素為該字符模板的終點(diǎn)軌跡點(diǎn)獲取的相似度度量特征;
對(duì)于原始的輸入連續(xù)字符手勢(shì)軌跡,獲得原始軌跡點(diǎn)后,首先按照步驟101、102進(jìn)行處理,依次獲得相似度度量特征,然后對(duì)于獲得的每一個(gè)相似度度量特征,計(jì)算出其與字符模板特征列向量每個(gè)元素的距離,得到一個(gè)相同順序關(guān)系的特征距離列向量,并插入到前一個(gè)特征距離列向量的右側(cè),從而構(gòu)建出一個(gè)新的相似度矩陣,如圖4所示。在本實(shí)施例中,采用方向向量之間的夾角角度作為相似度度量特征的相似度,角度越小,相似度越大。
此外,當(dāng)相似度矩陣的列數(shù)大于等于連續(xù)字符手勢(shì)軌跡間隔歸一化采樣后的點(diǎn)的數(shù)量,當(dāng)新插入的特征距離列向量使得列數(shù)大于相似度矩陣的列數(shù)時(shí),最左側(cè)的特征距離列向量將會(huì)被丟棄。
在相似度矩陣構(gòu)建過程中,使用貪心策略得出相似度矩陣中到當(dāng)前輸入最右下角的最優(yōu)路徑并累加最優(yōu)路徑上元素的代價(jià)值,得到代價(jià)累加值;其中,元素ω(i,j)的代價(jià)值為:
ω(i,j)=d(i,j)+min{ω(i-1,j-1),ω(i-1,j),ω(i,j-1)} (1)
其中,d(i,j)表示相似度矩陣中坐標(biāo)為(i,j)處的元素值,ω(i-1,j-1)表示相似度矩陣中坐標(biāo)為(i-1,j-1)處的代價(jià)累加值,ω(i-1,j)表示相似度矩陣中坐標(biāo)為(i-1,j)處的代價(jià)累加值,ω(i,j-1)表示相似度矩陣中坐標(biāo)為(i,j-1)處的代價(jià)累加值。
當(dāng)相似度矩陣右下角處代價(jià)累加值小于閾值時(shí),則認(rèn)為字符模板與連續(xù)字符手勢(shì)軌跡匹配上了,此時(shí),再根據(jù)求最優(yōu)路徑時(shí)保存的信息回溯,在歸一化采樣后的連續(xù)字符手勢(shì)軌跡中找出這條路徑即可提取出對(duì)應(yīng)的軌跡段。
連續(xù)字符手勢(shì)軌跡與每個(gè)字符模板都進(jìn)行DTW閾值匹配,如果匹配上了,就提取出對(duì)應(yīng)的軌跡段。
步驟104、速度特征校驗(yàn)
在找出對(duì)應(yīng)的軌跡段之后,此軌跡段是根據(jù)字符模板與連續(xù)字符手勢(shì)軌跡中某一段的相似性進(jìn)行提取出來的,提取出的軌跡段與真正想要提取的部分具有一定差異,例如字符e中的c這部分軌跡,因此需要結(jié)合速度特征進(jìn)行校驗(yàn)。所使用的具體的校驗(yàn)方式為:檢測(cè)軌跡段是否有連續(xù)5個(gè)軌跡點(diǎn)的坐標(biāo)移動(dòng)距離小于閾值τ′,如果有則認(rèn)為分割成功,否則繼續(xù)等待下一軌跡點(diǎn)輸入(也可以構(gòu)建分類器來判別速度是否有停頓趨勢(shì))。因此附加一個(gè)速度特征校驗(yàn)部分可以改善分割效果。
因此總的說來,本步驟使用DTW算法構(gòu)建各個(gè)字符模板與輸入連續(xù)字符手勢(shì)軌跡的相似度(距離)矩陣后,采用閾值策略進(jìn)行匹配,然后選出代價(jià)累加值小于閾值的軌跡信息,通過回溯的方式在相似度矩陣中尋找到起點(diǎn),從而自動(dòng)的找出相應(yīng)的軌跡段。同時(shí),為了提高自動(dòng)軌跡提取的準(zhǔn)確度,最后加入了一個(gè)速度校驗(yàn)部分。
步驟2、STDW(結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法)識(shí)別
步驟201、軌跡段尺度歸一化
由于所使用的方向、角度特征對(duì)采樣點(diǎn)之間的距離進(jìn)行了歸一化,因此這種特征不能描述采樣點(diǎn)(軌跡點(diǎn))之間的全局位置關(guān)系。如果不包含這種全局位置關(guān)系而僅從采樣點(diǎn)之間歸一化的方向向量來看,一些字符軌跡就顯得非常相似了,即出現(xiàn)了在特征空間具有混淆的情況,例如字符b與字符p,字符d與字符q,他們的歸一化之后的向量特征序列是非常相似的,因此我們需要提取新的特征,即各個(gè)采樣點(diǎn)(軌跡點(diǎn))之間的坐標(biāo)特征。
為了克服軌跡的尺度變化以及旋轉(zhuǎn)等因素,需要把字符模板、提取軌跡段歸一化到同一尺度下,而簡(jiǎn)單的把軌跡輪廓的長(zhǎng)、寬歸一化到同樣的數(shù)值下并不能解決旋轉(zhuǎn)所帶來的差異,因此我們使用PCA(主成分分析)算法來求出軌跡的主方向。
在本實(shí)施例中,如圖5所示,對(duì)e、l的軌跡段的主方向進(jìn)行長(zhǎng)度歸一化,使得字符模板(字符模板也進(jìn)行相同的長(zhǎng)度歸一化)與提取的軌跡段主方向長(zhǎng)度一致。PCA是一種常用的數(shù)據(jù)分析方法,主要用來作為數(shù)據(jù)的降維,軌跡的坐標(biāo)序列是一個(gè)2維序列,使用PCA降成一維數(shù)據(jù)的同時(shí)即可求出它的主方向,數(shù)據(jù)在主方向上丟失的信息最少。
對(duì)提取的軌跡段,使用PCA(主成分分析)算法求出軌跡段的主方向,求出主方向后,對(duì)軌跡段中的每一個(gè)軌跡點(diǎn)使用下面的方式進(jìn)行尺度上的歸一化:
Ratio=lin/lset (2)
pjs′=pjs*Ratio (3)
Tras=bpj(pjs′) (4)
其中l(wèi)in為軌跡段的主方向長(zhǎng)度,lset為設(shè)置的歸一化主方向長(zhǎng)度,pjs為軌跡段軌跡點(diǎn)s經(jīng)過PCA變化之后投影到主方向上的點(diǎn),bpj為反投影至2維空間,即PCA反變換還原之前的點(diǎn),Tras為二維空間的軌跡點(diǎn),并構(gòu)成尺度歸一化后的軌跡段;
對(duì)尺度歸一化后的軌跡段進(jìn)行步驟1.1)的間隔歸一化采樣,采樣后的點(diǎn)為Tra′s,然后,根據(jù)以下式子把整體坐標(biāo)平移成以(0,0)為中心的采樣點(diǎn)Tra″s:
Tra″s=Tra′s-(ptx,pty) (6)
其中ptx,pty代表軌跡段的質(zhì)心,x,y為坐標(biāo)軸,N為采樣后的點(diǎn)的數(shù)量;所有的采樣點(diǎn)Tra″s構(gòu)成軌跡段采樣點(diǎn)序列。
如圖5所示,由于進(jìn)行了尺度歸一化,此時(shí)所采用的新的位置特征即可使用軌跡段上對(duì)應(yīng)點(diǎn)的坐標(biāo),即在圖6所示的像素距離相似度矩陣中的軌跡段采樣點(diǎn)序列與字符模板采樣點(diǎn)序列都為軌跡中的采樣點(diǎn)坐標(biāo)。
步驟202、提取新特征
提取出尺度歸一化的軌跡段采樣點(diǎn)序列之后,可以利用其包含的位置信息進(jìn)行更準(zhǔn)確的分類。為了更準(zhǔn)確的進(jìn)行分類,我們需要利用字符軌跡本身所具有的結(jié)構(gòu)化信息。對(duì)于字符軌跡來說,各個(gè)組成部分的重要性是不一樣的,字符的角點(diǎn)處所包含更加豐富、重要的信息,可以采用加權(quán)的方式來對(duì)重要軌跡部分進(jìn)行體現(xiàn)。所謂的角點(diǎn)即采樣點(diǎn)中轉(zhuǎn)折角度較大的點(diǎn)。
對(duì)軌跡段采樣點(diǎn)序列進(jìn)行角點(diǎn)的檢測(cè):
其中,θk表示第s個(gè)采樣點(diǎn)與第s±k個(gè)采樣點(diǎn)之間的角度,d(s,s±k)表示第s個(gè)采樣點(diǎn)與第s±k個(gè)采樣點(diǎn)之間的距離。
對(duì)于第s個(gè)采樣點(diǎn),s=1,2,﹍,N,當(dāng)k=1,2,3中任意一個(gè)數(shù),角度θk<τ時(shí)即檢測(cè)到角點(diǎn),其中,θk<τ為角度閾值,可以根據(jù)具體情況設(shè)置。
在本發(fā)明中,因此整體使用的是余弦定理,為了更加準(zhǔn)確的檢測(cè)角點(diǎn),對(duì)當(dāng)前采樣點(diǎn)與距離k個(gè)采樣點(diǎn)都計(jì)算出夾角,當(dāng)任意θk<τ時(shí)即檢測(cè)到角點(diǎn),再本實(shí)施例中,角度閾值τ設(shè)為60°。對(duì)于權(quán)值在角點(diǎn)處的分配,我們采用高斯分布進(jìn)行擬合,在角點(diǎn)處的權(quán)值等于高斯的最大值,兩邊則依次減小,具體為:
生成一個(gè)長(zhǎng)度為N的序列,序列中的元素素值為0,然后在角點(diǎn)位置按照以下擬合函數(shù)進(jìn)行賦值:
Z=0時(shí),f(0)的值賦值給序列中角點(diǎn)位置的元素,Z=1時(shí),f(1)的值賦值給序列中角點(diǎn)位置后面第一個(gè)元素,Z=2時(shí),f(2)的值賦值給序列中角點(diǎn)位置后面第二個(gè)元素,Z=-1時(shí),f(-1)的值賦值給序列中角點(diǎn)位置前面第一個(gè)元素,Z=-2時(shí),f(-2)的值賦值給序列中角點(diǎn)位置前面第一個(gè)元素,從而得到一個(gè)權(quán)重分布序列。
對(duì)于軌跡段采樣點(diǎn)序列以及字符模板采樣點(diǎn)序列都檢測(cè)出他們的角點(diǎn),然后根據(jù)角點(diǎn)與高斯分布賦予相應(yīng)的權(quán)重,如圖6所示,黑色實(shí)心點(diǎn)即是角點(diǎn),虛線為高斯分布。
步驟203、SDTW識(shí)別
步驟2031、構(gòu)建權(quán)重分布矩陣
字符模板事先按照步驟201、202進(jìn)行相同的處理,得到字符模板采樣點(diǎn)序列、一個(gè)權(quán)重分別序列。
將軌跡段的權(quán)重分布序列作為一個(gè)行向量,與軌跡段對(duì)應(yīng)的字符模板的權(quán)重分布序列作為一個(gè)列向量,構(gòu)建一個(gè)權(quán)重分布矩陣(fij),其中,元素fij為行向量中的第i個(gè)元素與列向量中的第j個(gè)元素之和;
步驟2032、構(gòu)建像素距離相似度矩陣
將字符模板采樣點(diǎn)序列作為一個(gè)列向量,其中,第一個(gè)元素對(duì)應(yīng)該字符模板的起點(diǎn)軌跡點(diǎn),最后一個(gè)元素對(duì)應(yīng)該字符模板的終點(diǎn)軌跡點(diǎn),然后計(jì)算軌跡段采樣點(diǎn)序列第一個(gè)采樣點(diǎn)與列向量中每個(gè)元素的像素距離,得到一個(gè)像素距離列向量,同樣,將第二個(gè)采樣點(diǎn)也進(jìn)行同樣的計(jì)算,得到的像素距離列向量放到前一個(gè)像素列向量的右側(cè),軌跡段采樣點(diǎn)序列中的采樣點(diǎn)依次采用同樣的計(jì)算和處理,得到一個(gè)像素距離相似度矩陣。
步驟2033、計(jì)算代價(jià)累加值
使用貪心策略搜索出像素距離相似度矩陣到右下角的最優(yōu)路徑,并累加最優(yōu)路徑上元素的代價(jià)值,得到代價(jià)累加值ω′(i,j):
ω′(i,j)=(1+fij)d′(i,j)+min{ω′(i-1,j-1),ω′(i-1,j),ω′(i,j-1)} (8)
其中,d′(i,j)表示相像素距離相似度矩陣中坐標(biāo)為(i,j)處的元素值,ω′(i-1,j-1)表示相像素距離相似度矩陣中坐標(biāo)為(i-1,j-1)處的代價(jià)累加值,ω′(i-1,j)表示相像素距離相似度矩陣中坐標(biāo)為(i-1,j)處的代價(jià)累加值,ω′(i,j-1)表示相像素距離似度矩陣中坐標(biāo)為(i,j-1)處的代價(jià)累加值。
步驟2034、識(shí)別
如果步驟1中,同時(shí)有兩個(gè)或兩個(gè)以上字符模板匹配上,則選擇相像素距離似度矩陣中右下角處代價(jià)累加值最小的字符模板對(duì)應(yīng)的字符作為識(shí)別字符輸出,如果只有一個(gè)匹配上,則直接將匹配上的字符模板對(duì)應(yīng)的字符作為識(shí)別字符輸出。
由于最初的輸入連續(xù)字符手勢(shì)軌跡分類是由軌跡自動(dòng)提取(分割)步驟通過閾值策略所決定,而SDTW(結(jié)構(gòu)化動(dòng)態(tài)時(shí)域規(guī)整算法)識(shí)別則會(huì)對(duì)其輸出結(jié)果進(jìn)行更進(jìn)一步的分類,例如輸入字符b的連續(xù)字符手勢(shì)軌跡,通過軌跡自動(dòng)提取(分割)的閾值策略可能會(huì)匹配上字符b的字符模塊和字符p的字符模塊兩種結(jié)果,這時(shí)SDTW識(shí)別會(huì)把提取的軌跡段分別與識(shí)別出結(jié)果即字符的對(duì)應(yīng)字符模板利用位置特征進(jìn)行結(jié)構(gòu)化的相似度計(jì)算,選擇相似度最大的一個(gè)結(jié)果即識(shí)別字符作為輸出,輸出給步驟3。
步驟3、軌跡自包含的處理
為了提高人機(jī)交互的體驗(yàn),本發(fā)明并沒有使用傳統(tǒng)讓用戶在起止點(diǎn)停止、等待從而檢測(cè)起止點(diǎn)的方式,而是使用回溯的方式在DTW距離矩陣中進(jìn)行軌跡段提取以及使用速率進(jìn)行檢測(cè),用戶往往會(huì)在書寫完一個(gè)字符處進(jìn)行減速。但是連續(xù)字符手勢(shì)軌跡的書寫過程中也可能會(huì)產(chǎn)生減速區(qū)域,比如在角點(diǎn)附近軌跡的速率也會(huì)產(chǎn)生明顯下降因此就會(huì)產(chǎn)生把字符的局部字符進(jìn)行輸出,例如書寫字符q的時(shí)候會(huì)輸出字符o,而字符q從軌跡上來說是包含了字符o的,從字符的形狀上來看他們也是有相應(yīng)的包含關(guān)系,因此本發(fā)明還要自動(dòng)處理這種自包含問題,具體為:
步驟301、識(shí)別字符存儲(chǔ)到輸出隊(duì)列中,如果當(dāng)前輸出識(shí)別字符對(duì)應(yīng)的軌跡段坐標(biāo)序列與輸出隊(duì)列中存儲(chǔ)的識(shí)別字符的軌跡段坐標(biāo)序列具有包含關(guān)系,即在某一部分軌跡上它們的坐標(biāo)完全一樣,則轉(zhuǎn)到步驟302;如果不具有包含關(guān)系,則保存識(shí)別字符到輸出隊(duì)列中;
步驟302、保留最長(zhǎng)的軌跡段對(duì)應(yīng)的識(shí)別字符,而去除掉較短的軌跡段對(duì)應(yīng)的識(shí)別字符,然后存儲(chǔ)到輸出隊(duì)列中;
步驟303、當(dāng)輸出隊(duì)列中的識(shí)別字符數(shù)量大于輸出隊(duì)列長(zhǎng)度時(shí),先存入的識(shí)別字符作為最終識(shí)別字符輸出,同時(shí),結(jié)束輸入后,輸出隊(duì)列里的內(nèi)容也作為最終識(shí)別字符輸出。
在本實(shí)施例中,輸出隊(duì)列的長(zhǎng)度設(shè)置為10即存儲(chǔ)10個(gè)識(shí)別字符,包含關(guān)系的重疊率判斷閾值為0.7,即對(duì)于相比較的兩段軌跡段,若坐標(biāo)完全一樣的采樣點(diǎn)數(shù)量超過某一段軌跡段總軌跡點(diǎn)數(shù)的0.7倍即認(rèn)為兩段軌跡段有重疊關(guān)系。
盡管上面對(duì)本發(fā)明說明性的具體實(shí)施方式進(jìn)行了描述,以便于本技術(shù)領(lǐng)域的技術(shù)人員理解本發(fā)明,但應(yīng)該清楚,本發(fā)明不限于具體實(shí)施方式的范圍,對(duì)本技術(shù)領(lǐng)域的普通技術(shù)人員來講,只要各種變化在所附的權(quán)利要求限定和確定的本發(fā)明的精神和范圍內(nèi),這些變化是顯而易見的,一切利用本發(fā)明構(gòu)思的發(fā)明創(chuàng)造均在保護(hù)之列。