本發(fā)明屬于手勢識別領域,具體涉及一種基于陀螺儀的手寫數(shù)字識別方法。
背景技術:
隨著科學技術的發(fā)展,人民大眾的生活和娛樂逐漸朝著智能、便捷的方向發(fā)展。手勢是人們經(jīng)常使用的操作與交流方式,使用先進的傳感設備和模式識別技術,對手勢進行識別,可以實現(xiàn)交流與遠程操控。尤其對于行動不便人群,利用手勢進行遠程操控成為了迫切的需求。
阿拉伯數(shù)字是一類具有確定規(guī)范筆畫的符號,為大部分人所知曉,易于操作、方便記憶,而且大部分設備集成了以阿拉伯數(shù)字為輸入的控制接口(如:電視機)。將手寫數(shù)字軌跡作為交互手勢,與用戶的日常使用習慣和心智模型相符。
目前的手勢識別方法還存在幾個明顯的缺點:1)手勢識別主要有兩種技術:基于計算機視覺的手勢識別和基于傳感器的手勢識別。基于計算機視覺的手勢識別受外部干擾較大(如光照條件變化),并且受行為者外形的影響(如行為者著裝或攜帶重物),甚至活動范圍也受到攝像頭的限制。2)各種傳感器被用于手勢識別,但是仍然很難解決舒適度差、識別范圍受限、識別率低、價格昂貴、傳感器數(shù)量多而導致的高功耗等問題。3)算法復雜度高,難以在硬件受限的條件下進行運算。
技術實現(xiàn)要素:
本發(fā)明要解決的技術問題是:提供一種基于陀螺儀的手寫數(shù)字識別方法,具有可穿戴效果好、成本低、無需其他的傳感器、功耗低的優(yōu)點。
本發(fā)明為解決上述技術問題所采取的技術方案為:一種基于陀螺儀的手寫數(shù)字識別方法,其特征在于:它包括以下步驟:
S1、通過佩戴在手腕上的陀螺儀采集角速度,其中每個采樣點對應一組角速度組,每組角速度組包括x軸角速度、y軸角速度和z軸角速度,x軸為人體的水平向右方向,z軸為重力方向,y軸人體的水平向前方向;分別計算每個采樣點的合成角速度;
S2、有效手勢數(shù)據(jù)的截?。翰捎萌撝档南蚯跋蚝笏阉鞯姆椒?,對合成角速度的值ω按時間進行截取,判斷有效手勢的起點與終點,截取若干段有效手勢數(shù)據(jù)段;每段有效手勢數(shù)據(jù)段包含若干個連續(xù)采樣點及其對應的角速度組和合成角速度;
S3、特征量的選取:
在有效手勢數(shù)據(jù)段中,每個軸的角速度均由3類子段組成:正段、負段和零段;正段的定義為:在該數(shù)據(jù)段中,數(shù)據(jù)的值均大于0,且最大值高于第一閾值;負段的定義為:在該數(shù)據(jù)段中,數(shù)據(jù)的值均小于0,且最小值低于第二閾值;零段的定義為:在該數(shù)據(jù)段中,數(shù)據(jù)的值在第一閾值和第二閾值之間變化;
選取以下5個特征量:(1)有效手勢數(shù)據(jù)段采樣點的數(shù)目T1,即為從該段有效手勢數(shù)據(jù)段中,有效手勢的開始采樣點到終止采樣點的總個數(shù);(2)x軸角速度ωx的分段數(shù)T2,為x軸角速度的正段、負段、零段的總數(shù)目;(3)z軸角速度ωz的分段數(shù)T3,為z軸角速度的正段、負段、零段的總數(shù)目;(4)x軸角速度的零段的位置T4,根據(jù)x軸角速度的零段出現(xiàn)的位置為首段、尾段、中間段還是沒有零段,分別進行標識;(5)z軸角速度的零段的位置T5,根據(jù)z軸角速度的零段出現(xiàn)的位置為首段、尾段、中間段還是沒有零段,分別進行標識;
S4、特征量的計算:
根據(jù)各特征量的定義,從S2得到的有效手勢數(shù)據(jù)段中分別計算;
S5、手寫數(shù)字的識別:
將計算的特征量與預設的0-9這10個數(shù)字的手勢數(shù)據(jù)進行比較,判斷有效手勢數(shù)據(jù)段對應書寫的是哪個數(shù)字。
按上述方法,所述的S5具體包含以下步驟:
S5-1、決策方法的建立:
建立6種決策方法,用計算的特征向量順序依次表示為:W1=[T2,T4,T3,T5],W2=[T3,T5,T2,T4],W3=[T2,T3,T5,T4],W4=[T2,T3,T4,T5],W5=[T3,T2,T4,T5],W6=[T3,T2,T5,T4];
S5-2、決策方法的動態(tài)選擇:
將預設的0-9這10個數(shù)字的手勢數(shù)據(jù)分為4類,分別為S1={1},S2={0,6,7},S3={2,3,9},S4={4,5,8};這4類對應的決策方法分別為:S1對應任意決策方法,S2對應W1,S3對應W2,S4對應W2;
利用T1的均值、T1的中位數(shù)Q2、T1的第一四分位數(shù)Q1、T1的第三四分位數(shù)Q3這四個屬性,依據(jù)這四個屬性進行模糊聚類,根據(jù)最大隸屬度原則,認為待識別對象T1相對隸屬于S1-S4中哪一類,選擇該類對應的決策方法;
S5-3、按照所選擇的決策方法,依次計算特征向量,與預設的0-9這10個數(shù)字的手勢數(shù)據(jù)進行比較,判斷有效手勢數(shù)據(jù)段對應書寫的是哪個數(shù)字。
按上述方法,所述的S2中:有效手勢的起點的判斷:選取3個從小到大的閾值通過進行手勢運動開始的判定,選取大于的第一個采樣點,得到采樣點Ab;然后向前搜索小于的第一個采樣點,得到采樣點As;如果Ab與As這兩個采樣點的距離小于距離閾值DA,則判定As為效手勢的起點;否則,從Ab開始向前搜索小于的第一個采樣點,得到時間點Am,將Am設為有效手勢的起點;
有效手勢的終點的判斷:選取3個從小到大的閾值選取滿足與其后N個采樣點的合成角速度和的平均值小于閾值的時間點Bs;然后從點Bs向前搜索大于較大閾值的第一個采樣點,得到采樣點Bb;如果Bs與Bb的距離小于距離閾值DB,則將Bs設為有效手勢的終點;否則,從Bb開始向后搜索小于的第一個采樣點,得到采樣點Bm,將Bm設為有效手勢的終點。
按上述方法,所述的x軸角速度的零段的位置T4,當x軸角速度的零段出現(xiàn)在首段,T4標識為1;當x軸角速度的零段出現(xiàn)在尾段,T4標識為-1;當x軸角速度的零段出現(xiàn)在中間段,T4標識為0;當x軸角速度沒有零段,T4標識為2;
所述的z軸角速度的零段的位置T5標識方法與x軸角速度的零段的位置T4相同。
按上述方法,所述的T2的計算方法如下:
①尋找近似零點:先利用零點兩側(cè)數(shù)值的符號不同,尋找零點存在的采樣點區(qū)間,取該采樣點區(qū)間的兩個區(qū)間點中絕對值較小的點作為近似零點,將所有近似零點按照采樣時間順序排序,得到近似零點序列;
②去除首尾零點:分別從近似零點序列的首尾進行搜索,去除相距小于5的近似零點,更新近似零點序列;
③尋找非零段區(qū)間的零段:首先對近似零點序列的每個相鄰近似零點組成的區(qū)間進行搜索,若存在某個點的x軸角速度絕對值大于閾值Ωt,則該區(qū)間為非零段區(qū)間,令該非零段區(qū)間為[a,b];首段的角速度絕對值連續(xù)小于閾值Ωt的點數(shù)為n1,尾端的角速度絕對值連續(xù)小于閾值Ωt的點數(shù)為n2,若n1>n2并且n1大于閾值N,則零段位于首段,且分段點為a+n1;若n1<n2并且n2大于閾值N,則零段位于尾段,分段點為b-n2;否則該非零段區(qū)間不存在零段;將分段點補充到近似零點序列中,再次更新近似零點序列;
④去除連續(xù)零段分離段:若有連續(xù)的零段,去除其間的分段點,使其合為一段,并從近似零點序列中刪除相應的分段點;
⑤最終的近似零點序列中的點的個數(shù)減1,即為T2;
所述的T3的計算方法與T2相同。
本發(fā)明的有益效果為:
1、利用本發(fā)明方法,只需要在手腕佩戴陀螺儀即可,具有可穿戴效果好、成本低、無需其他的傳感器、功耗低的優(yōu)點。
2、進一步的,通過決策樹的方法進行手勢識別,首先根據(jù)統(tǒng)計分析建立決策方法,然后根據(jù)模糊聚類方法進行模糊識別,選擇對應的決策方法進行識別,從而可以盡可能的使用耗時最短的方法對數(shù)字手勢進行識別,有利于實時性的提高,解決了算法復雜而導致的實時性差和電腦依賴性嚴重的問題。
附圖說明
圖1為本發(fā)明一實施例的運行總體流程圖。
圖2為本發(fā)明一實施例的有效手勢截取的示意圖。
圖3為本發(fā)明一實施例的有效手勢截取的程序流程圖。
圖4為本發(fā)明一實施例的有效手勢段的分類示意圖。
圖5為本發(fā)明一實施例的特征提取算法示意圖。
圖6為本發(fā)明一實施例的特征T2與T3的程序流程圖。
具體實施方式
下面結(jié)合具體實例和附圖對本發(fā)明做進一步說明。
本發(fā)明提高一種基于陀螺儀的手寫數(shù)字識別方法,如圖1所示,包括以下步驟:
S1、通過佩戴在手腕上的陀螺儀采集角速度,其中每個采樣點對應一組角速度組,每組角速度組包括x軸角速度、y軸角速度和z軸角速度,x軸為人體的水平向右方向,z軸為重力方向,y軸人體的水平向前方向;分別計算每個采樣點的合成角速度。
S2、有效手勢數(shù)據(jù)的截?。翰捎萌撝档南蚯跋蚝笏阉鞯姆椒?,對合成角速度的值ω按時間進行截取,判斷有效手勢的起點與終點,截取若干段有效手勢數(shù)據(jù)段;每段有效手勢數(shù)據(jù)段包含若干個連續(xù)采樣點及其對應的角速度組和合成角速度。
細化的,如圖2和圖3所示,所述的S2中:有效手勢的起點的判斷:選取3個從小到大的閾值通過進行手勢運動開始的判定,選取大于的第一個采樣點,得到采樣點Ab;然后向前搜索小于的第一個采樣點,得到采樣點As;如果Ab與As這兩個采樣點的距離小于距離閾值DA,則判定As為效手勢的起點;否則,說明手勢開始時,人手的抖動誤差較大,從Ab開始向前搜索小于的第一個采樣點,得到時間點Am,將Am設為有效手勢的起點;
有效手勢的終點的判斷:選取3個從小到大的閾值選取滿足與其后N個采樣點的合成角速度和的平均值小于閾值的時間點Bs;然后從點Bs向前搜索大于較大閾值的第一個采樣點,得到采樣點Bb;如果Bs與Bb的距離小于距離閾值DB,則將Bs設為有效手勢的終點;否則,說明手勢結(jié)束時,人手的抖動誤差較大,從Bb開始向后搜索小于的第一個采樣點,得到采樣點Bm,將Bm設為有效手勢的終點。
S3、特征量的選?。?/p>
如圖4所示,為了能夠分析數(shù)據(jù),進行手勢數(shù)據(jù)的采集。經(jīng)分析發(fā)現(xiàn),在有效手勢數(shù)據(jù)段中,每個軸的角速度均由3類子段組成:正段、負段和零段;正段的定義為:在該數(shù)據(jù)段中,數(shù)據(jù)的值均大于0,且最大值高于第一閾值;負段的定義為:在該數(shù)據(jù)段中,數(shù)據(jù)的值均小于0,且最小值低于第二閾值;零段的定義為:在該數(shù)據(jù)段中,數(shù)據(jù)的值在第一閾值和第二閾值之間變化。
選取以下5個特征量:(1)有效手勢數(shù)據(jù)段采樣點的數(shù)目T1,即為從該段有效手勢數(shù)據(jù)段中,有效手勢的開始采樣點到終止采樣點的總個數(shù);由于存在限制手勢速度的規(guī)定,所以有效手勢數(shù)據(jù)段采樣點的數(shù)目在一定程度上能夠反映出手勢的長短。(2)x軸角速度ωx的分段數(shù)T2,為x軸角速度的正段、負段、零段的總數(shù)目。(3)z軸角速度ωz的分段數(shù)T3,為z軸角速度的正段、負段、零段的總數(shù)目。(4)x軸角速度的零段的位置T4,根據(jù)x軸角速度的零段出現(xiàn)的位置為首段、尾段、中間段還是沒有零段,分別進行標識。(5)z軸角速度的零段的位置T5,根據(jù)z軸角速度的零段出現(xiàn)的位置為首段、尾段、中間段還是沒有零段,分別進行標識。
本實施例中,所述的x軸角速度的零段的位置T4,當x軸角速度的零段出現(xiàn)在首段,T4標識為1;當x軸角速度的零段出現(xiàn)在尾段,T4標識為-1;當x軸角速度的零段出現(xiàn)在中間段,T4標識為0;當x軸角速度沒有零段,T4標識為2。
所述的z軸角速度的零段的位置T5標識方法與x軸角速度的零段的位置T4相同。
S4、特征量的計算:
根據(jù)各特征量的定義,從S2得到的有效手勢數(shù)據(jù)段中分別計算。
其中,T1的計算可由截取后的有效數(shù)據(jù)中得到。記從有效數(shù)據(jù)段獲取其采樣點數(shù)目的平均時間長度為t1。
如圖5和圖6所示,所述的T2的計算方法如下:
①尋找近似零點:由于采樣點是離散的,所以并不能保證存在某一采樣點為零點。然而,可以先利用零點兩側(cè)數(shù)值的符號不同,尋找零點存在的采樣點區(qū)間,取該采樣點區(qū)間的兩個區(qū)間點中絕對值較小的點作為近似零點,將所有近似零點按照采樣時間順序排序,得到近似零點序列。
舉例說明,圖5中近似零點序列為:{14,23,25,46,60,62}。為了計算方便,則增加手勢數(shù)據(jù)首尾點進入近似零點序列,得到:{1,14,23,25,46,60,62,63}。
②去除首尾零點:由于截取有效手勢時,難免會存在誤差,所以對首尾的近似零點進行檢驗。分別從近似零點序列的首尾進行搜索,去除相距小于5的近似零點,更新近似零點序列。在圖5中,去除點62和點63,更新后的近似零點序列為{1,14,23,25,46,60}。
③尋找非零段區(qū)間的零段:由于零段分段點并不一定是上述序列中的某一點,所以首先對近似零點序列的每個相鄰近似零點組成的區(qū)間進行搜索,若存在某個點的x軸角速度絕對值大于閾值Ωt,則該區(qū)間為非零段區(qū)間,令該非零段區(qū)間為[a,b];首段的角速度絕對值連續(xù)小于閾值Ωt的點數(shù)為n1,尾端的角速度絕對值連續(xù)小于閾值Ωt的點數(shù)為n2,若n1>n2并且n1大于閾值N,則零段位于首段,且分段點為a+n1;若n1<n2并且n2大于閾值N,則零段位于尾段,分段點為b-n2;否則該非零段區(qū)間不存在零段;將分段點補充到近似零點序列中,再次更新近似零點序列。
在圖5中,取N=5,Ωt=20,區(qū)間[25,46]為非零段,且該區(qū)間的前半部分存在零段,零段分段點為36,將其添加到近似零點序列中,再次更新后的近似零點序列為{1,14,23,25,36,46,60}。
④去除連續(xù)零段分離段:由于零段符號的不確定性,所以以上得到的近似零點序列可能會把連續(xù)的零段分離開。若有連續(xù)的零段,去除其間的分段點,使其合為一段,并從近似零點序列中刪除相應的分段點。
在圖5中,[14,23],[23,25],[25,36]為零段,所以去除分段點23和25,得到近似零點序列為{1,14,36,46,60}。
⑤最終的近似零點序列中的點的個數(shù)減1,即為T2。本實施例中,T2為5-1=4。
所述的T3的計算方法與T2相同。
記上述計算T2與T3的各個步驟的一共耗費的平均時間長度分別為t2和t3,t2≈t3。
由④獲得的相鄰分段點組成的區(qū)間,檢測每個區(qū)間是否符合零段的要求,即每個點的絕對值是否小于閾值Ωt,可以獲得零段的位置,并根據(jù)零段的位置對其進行標識。圖5中,第2段為零段。記從T2與T3的計算方法中,得到T4與T5的平均耗費時間長分別為t4和t5,其中,t4≈t5。
S5、手寫數(shù)字的識別:
將計算的特征量與預設的0-9這10個數(shù)字的手勢數(shù)據(jù)進行比較,判斷有效手勢數(shù)據(jù)段對應書寫的是哪個數(shù)字。
優(yōu)選的,為了能夠通過動態(tài)的選擇決策方法,跳過冗余特征量的計算,盡可能的使用耗時最短的方法對數(shù)字手勢進行識別,所述的S5具體包含以下步驟:
S5-1、決策方法的建立:
建立6種決策方法,用計算的特征向量順序依次表示為:W1=[T2,T4,T3,T5],W2=[T3,T5,T2,T4],W3=[T2,T3,T5,T4],W4=[T2,T3,T4,T5],W5=[T3,T2,T4,T5],W6=[T3,T2,T5,T4]。
S5-2、決策方法的動態(tài)選擇:
將預設的0-9這10個數(shù)字的手勢數(shù)據(jù)分為4類,分別為S1={1},S2={0,6,7},S3={2,3,9},S4={4,5,8};這4類對應的決策方法分別為:S1對應任意決策方法,S2對應W1,S3對應W2,S4對應W2;
利用T1的均值、T1的中位數(shù)Q2、T1的第一四分位數(shù)Q1、T1的第三四分位數(shù)Q3這四個屬性,依據(jù)這四個屬性進行模糊聚類,根據(jù)最大隸屬度原則,認為待識別對象T1相對隸屬于S1-S4中哪一類,選擇該類對應的決策方法;
S5-3、按照所選擇的決策方法,依次計算特征向量,與預設的0-9這10個數(shù)字的手勢數(shù)據(jù)進行比較,判斷有效手勢數(shù)據(jù)段對應書寫的是哪個數(shù)字。
上述決策方法的建立原理如下:
由上述5個特征量組成了特征向量T=[T1,T2,T3,T4,T5]。但是,經(jīng)統(tǒng)計分析發(fā)現(xiàn),并非所有的數(shù)字手勢需要這五個特征量才能識別出來。記能夠最快識別該數(shù)字的特征向量為Tf,所需時間為tf。下表統(tǒng)計出了這十個數(shù)字的T2,T3,T4,T5,Tf的值。
由于T2與T4、T3與T5的依賴性的限制,進行手寫數(shù)字識別分為六種決策方法,記為Wi(i=1~6)。分別用計算的特征向量順序的表示為[T2,T4,T3,T5],[T3,T5,T2,T4],[T2,T3,T5,T4],[T2,T3,T4,T5],[T3,T2,T4,T5],[T3,T2,T5,T4]。記使用每種方法識別各個數(shù)字的花費時間為twi(i=1~6),記twi與tf之差為Δtwi(i=1~6)。
每種方法中都有一些數(shù)字在識別過程中,計算了多余的特征量,導致實時性較差并且能耗增加。所以可以采用動態(tài)選擇的方法,事先對手勢數(shù)據(jù)進行判別,獲取大致范圍后,再確定該計算的特征量。
利用T1的均值、中位數(shù)Q2、第一四分位數(shù)Q1、第三四分位數(shù)Q3這四個屬性,依據(jù)這四個屬性進行模糊聚類。將10個數(shù)字的手勢數(shù)據(jù)分為4類,分別為{1},{0,6,7},{2,3,9},{4,5,8}分別用S1~S4表示。可以由T1通過計算所屬各類的隸屬度,模糊地判斷所做手勢的類別。根據(jù)最大隸屬度原則,認為待識別對象T1相對隸屬于類Sk,選擇該類的決策方法Wk。然后,確定每類的決策方法。以每類中數(shù)字的Δtw1和最小為原則,S1可選用任意一種,S2選用W1,S3選用W2,S4選用W2。通過動態(tài)地選擇決策方法,可以盡可能地使用耗時最短的方法對數(shù)字手勢進行識別,有利于實時性的提高。
具體的,圖5為手勢“4”的數(shù)據(jù)曲線圖。手勢的數(shù)據(jù)長度T1為64,根據(jù)最大隸屬度原則,將該手勢分到S4類,然后將S4類的特征量計算順序W2=[T3,T5,T2,T4]進行計算。按照該方法,識別出手勢“4”,僅需要計算特征量T3和T5,節(jié)省了計算T2和T4的消耗時間。
以上實施例僅用于說明本發(fā)明的設計思想和特點,其目的在于使本領域內(nèi)的技術人員能夠了解本發(fā)明的內(nèi)容并據(jù)以實施,本發(fā)明的保護范圍不限于上述實施例。所以,凡依據(jù)本發(fā)明所揭示的原理、設計思路所作的等同變化或修飾,均在本發(fā)明的保護范圍之內(nèi)。