專利名稱:一種自動識別手勢的方法及移動終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及移動終端領(lǐng)域的手勢識別技術(shù),尤其涉及一種自動識別手勢的方法及移動終端。
背景技術(shù):
移動通訊的迅速發(fā)展,引起整個社會的方方面面不同程度的改變,目前移動終端 已成為絕大多數(shù)人生活中不可或缺的一部分。未來移動終端的人機交互將以自然性、多通 道性、協(xié)作性為主要發(fā)展方向,試圖通過手勢、語音、表情等人類自然的交流方式形成多通 道、多模式的用戶與移動終端的自然對話,以提高用戶的體驗效果。移動終端的用戶界面 (UI,User Interface)由“以技術(shù)為中心”向“以用戶為中心”發(fā)展的趨勢,使自然直觀的自 然人機交互成為用戶界面發(fā)展的必然趨勢。其中,手勢交互這一交互方式作為適應(yīng)自然交 互趨勢的UI交互形式,正逐漸受到大家的重視,應(yīng)用的廣泛性日益擴大。移動終端的廠商已經(jīng)在UI技術(shù)上花費了很多精力,包括UI設(shè)計、鼠標、鍵盤、軌跡 球、重力傳感器等。隨著智能移動終端的普及,觸摸屏的功能越來越不可替代,手勢也因其 新奇性、方便性、易用性,成為人機交互新技術(shù)?;谧匀皇謩莸目呻p指觸摸的人機交互,是 用戶與移動終端之間自然和諧對話的一種新的交互技術(shù)。這種方式是“以用戶為中心”的 交互,與傳統(tǒng)的觸摸屏只能單個指頭的操作不同,這種方式允許用戶多個手指同時操作一 個移動終端,甚至可以讓多個用戶同時操作。但是多個手指同時操作意味著允許處理更加 復雜的任務(wù),因此如何既快速、又高效的實現(xiàn)手勢交互是移動終端制造商迫在眉睫要解決 的問題。目前為止,蘋果公司在做這方面研究,已經(jīng)實現(xiàn)的功能主要有滑動解鎖、縮放和翻 轉(zhuǎn)等,但是主要集中在UI的設(shè)計方面。此外,還有一些觸摸屏廠商做的底層手勢交互處理, 主要研究一些底層的算法和結(jié)構(gòu),因為算法和結(jié)構(gòu)不同,廠商間的移動終端很難相互兼容。圖1是現(xiàn)有技術(shù)中android平臺上實現(xiàn)手勢識別的系統(tǒng)結(jié)構(gòu)示意圖,如圖1所示, 做一次兩指分離或者合攏的動作,假設(shè)驅(qū)動層以80Hz的頻率上報數(shù)據(jù)給架構(gòu)層,每秒架構(gòu) 層需要進行80*N次的計算,其中N代表一次完整事件所需要手指的觸點信息,觸點信息主 要包括以移動終端屏幕左上角為原點的χ坐標的值和y坐標的值,手指的指寬w,手指對 屏幕的壓力 P,多點同步上報(SYN_MT_REP0RT,Synchronize Multi-Touch Report)的值, 同步上報(SYN_REP0RT,Synchronize Report)的值;如果是單指,則N = 6,如果是兩指, 則N= 11,如果是M個指頭,則N = 5*M+1 ;架構(gòu)層把一次完整事件的信息進行預處理,放 在motion類中,因為驅(qū)動層以80Hz的頻率上報數(shù)據(jù)給架構(gòu)層,所以每秒最多產(chǎn)生80次 motion,然后將每次預處理后的motion類中的數(shù)據(jù)發(fā)送給手勢算法處理層進行處理,手勢 算法處理層每28ms處理一次,所以每秒大概計算35次。手勢算法處理層利用的算法計算過程如下記錄第一次兩個指頭按下的兩個點的 坐標(X' y' i)和(X' 2,y' 2)、以及第二次兩個指頭按下的兩個點的坐標(Xl,yi)和
(χ2,y2),求得兩點的距離為Ave = √(X12-Y1)2+ (/2 —力)2 和= √(x2-x1)2 + (y2-y1)2 ;然后,求得兩指分離或合攏的系數(shù)為scale = As。uyAspM,其中As■代表當前兩點的距 離,A SpM代表上一次兩點的距離,將scale值發(fā)送給應(yīng)用層;如果是兩指遠離的動作,發(fā)送 的scale值最大不能超過上一次scale值的1. 25倍,如果是兩指合攏的動作,發(fā)送的scale 值最小不低于上一次scale值的0. 8倍。這種方法的缺陷是手勢算法處理層利用的算法每 秒大概計算35次,所以手勢算法處理層的計算量較大,使得移動終端的反應(yīng)比較慢;而且, 處理的速度還要根據(jù)驅(qū)動層的上報頻率而定,不具備根據(jù)需求而進行自適應(yīng)調(diào)節(jié)的能力。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種自動識別手勢的方法及移動終端,能 夠快捷、高效地實現(xiàn)自動識別多指手勢。為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的本發(fā)明公開一種自動識別手勢的方法,包括對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上運動時的時間變化量 閾值和距離變化量閾值;獲取手指在移動終端觸摸屏上的觸控信息,并對獲得的觸控信息的數(shù)據(jù)進行預處 理;提取所述時間變化量閾值和距離變化量閾值,根據(jù)預處理后的數(shù)據(jù)、觸控信息和 提取的時間變化量閾值和距離變化量閾值,對手勢進行識別。上述方法中,所述對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上運 動時的時間變化量閾值和距離變化量閾值,具體為根據(jù)手指之間的距離變化量和產(chǎn)生變化所用的時間,得到運動速度;在預先存儲 的速度的經(jīng)驗值中找到與所得到運動速度最接近的速度;根據(jù)所述最接近的速度和從預先 存儲的時間經(jīng)驗值中選出的時間變化量閾值,得到距離變化量閾值,保存得到的時間變化 量閾值和距離變化量閾值。上述方法中,所述預先存儲的速度的經(jīng)驗值是根據(jù)不同年齡段、不同身高、不同性 別的用戶采樣獲得的手勢速度的經(jīng)驗值,所述預先存儲的速度的經(jīng)驗值按照正態(tài)分布進行 排列。上述方法中,所述獲取手指在移動終端觸摸屏上的觸控信息具體為移動終端的驅(qū)動層中的芯片實時獲取手指在移動終端觸摸屏上的觸控信息,將觸 控信息發(fā)送給架構(gòu)層;所述觸控信息包括以移動終端觸摸屏左上角為原點的坐標系中手 指的坐標值、手指的指寬值、手指對觸摸屏的壓力和手指的按壓觸摸值。上述方法中,所述對所述觸控信息的數(shù)據(jù)進行預處理具體為移動終端的架構(gòu)層根據(jù)觸控信息的數(shù)據(jù),將手指的運動狀態(tài)信息記錄到motion 類中;架構(gòu)層將觸控信息中的數(shù)據(jù)記錄到motion類中,并將motion類中的數(shù)據(jù)發(fā)送給手勢 算法處理層;所述運動狀態(tài)信息包括有手指在運動、手指都彈起和有手指按下。上述方法中,所述根據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距 離變化量閾值,對手勢進行識別具體為移動終端的手勢算法處理層根據(jù)預處理后的數(shù)據(jù)得到觸摸屏上手指的運動狀態(tài), 當確定運動狀態(tài)是有手指在觸摸屏上運動時,根據(jù)觸控信息中用于分隔不同指頭的觸控信息的分隔符的數(shù)量判斷觸摸屏上運動的手指的數(shù)量,當確定有兩指在觸摸屏上運動時,實時記錄當前兩指的坐標以及當前時間,計算兩指距離;當兩次兩指的距離的差值的絕對值 大于距離變化量閾值,且兩次當前時間的差大于時間變化量閾值時,該手勢為有效手勢。上述方法中,該方法還包括當確定有三指在觸摸屏上運動時,實時記錄當前三指的坐標以及當前時間,計算 三指的坐標的外接圓的半徑;當兩次三指的坐標的外接圓半徑的差值的絕對值大于距離變 化量閾值且兩次當前時間的差大于時間變化量閾值時,該手勢為有效手勢。上述方法中,該方法還包括當確定運動狀態(tài)是所有手指都彈起或者有手指按下時,該手勢為無效手勢。上述方法中,該方法還包括根據(jù)識別結(jié)果在移動終端上實現(xiàn)手勢對應(yīng)的功能。本發(fā)明還公開一種自動識別手勢的移動終端,其特征在于,該移動終端包括手勢 校準模塊、驅(qū)動層、架構(gòu)層、手勢算法處理層;其中,手勢校準模塊,用于對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上 運動時的時間變化量閾值和距離變化量閾值;驅(qū)動層,用于獲取手指在移動終端觸摸屏上的觸控信息;架構(gòu)層,用于對所獲取的觸控信息的數(shù)據(jù)進行預處理;手勢算法處理層,用于提取預先存儲的時間的變化量閾值和距離的變化量閾值, 根據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行 識別。上述移動終端中,該移動終端進一步包括應(yīng)用層、數(shù)據(jù)庫;其中,應(yīng)用層,用于根據(jù)識別結(jié)果在移動終端上實現(xiàn)手勢對應(yīng)的功能;數(shù)據(jù)庫,用于保存獲得的時間變化量閾值和距離變化量閾值;還用于保存速度的 經(jīng)驗值和時間的經(jīng)驗值。本發(fā)明提供自動識別手勢的方法及移動終端,提取預先存儲的時間變化量閾值和 距離變化量閾值,根據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的閾值,對手勢進行識別,即在手 勢算法處理層采用新的算法對手勢進行識別,與現(xiàn)有技術(shù)中每秒35次的計算量相比較,本 發(fā)明中僅有每秒10 15次的計算量,大大降低了手勢算法處理層的計算量,提高了移動終 端的反應(yīng)速度,實現(xiàn)快捷、高效地手勢自動識別,進而給使用觸摸屏的移動終端用戶帶來良 好的使用體驗,使用戶操作更方便、更快捷。此外,本發(fā)明中可以針對不同用戶進行手勢校 準,因此,使得手勢識別具有良好的自適應(yīng)性。
圖1是現(xiàn)有技術(shù)中android平臺上實現(xiàn)手勢識別的系統(tǒng)的結(jié)構(gòu)示意圖;圖2是本發(fā)明實現(xiàn)自動識別手勢的方法的流程示意圖;圖3是本發(fā)明中包含BTN_T0UCH值時不同數(shù)量的指頭按下時的數(shù)據(jù)格式的示意 圖;圖4是本發(fā)明中不包含BTN_T0UCH值時不同數(shù)量的指頭按下時的數(shù)據(jù)格式的示意 圖;圖5是本發(fā)明實現(xiàn)自動識別手勢的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明的基本思想是對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏 上運動時的時間變化量閾值和距離變化量閾值;獲取手指在移動終端觸摸屏上的觸控信 息,并對獲得的觸控信息的數(shù)據(jù)進行預處理;提取所述時間變化量閾值和距離變化量閾值, 根據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行 識別。下面通過附圖及具體實施例對本發(fā)明再做進一步的詳細說明。本發(fā)明提供一種自動識別手勢的方法,圖2是本發(fā)明實現(xiàn)自動識別手勢的方法的 流程示意圖,如圖2所示,該方法包括以下步驟步驟201,對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上運動時的時 間變化量閾值和距離變化量閾值;具體的,在用戶的手指第一次觸摸移動終端的觸摸屏時,啟動移動終端的手勢校 準功能,對移動終端的觸摸屏進行校準,校準之后每次再使用時不需要再進行校準;這里, 手勢校準功能可利用校準的應(yīng)用程序?qū)崿F(xiàn)。
以兩指手勢為例,說明對移動終端的觸摸屏進行校準的過程,記錄從兩指按下觸 摸屏到兩指從觸摸屏抬起這段時間內(nèi),兩指之間的距離變化量ASi和所用的時間△ ^,從 而求出兩指的運動速度在移動終端中預先存儲的速度的經(jīng)驗值中找到與、最接近的 速度u ;根據(jù)觸摸屏的尺寸和驅(qū)動層將觸控信息發(fā)送給架構(gòu)層的頻率等,從移動終端中預 先存儲的時間的經(jīng)驗值中,選取時間變化量閾值△ t,將u與△ T相乘,得到距離變化量 閾值A(chǔ)S,將A X和AS保存等待提?。黄渲?,A x的值必須是中斷時間的整數(shù)倍,中斷時 間指的是驅(qū)動層兩次向架構(gòu)層發(fā)送觸控信息的時間間隔,以驅(qū)動層兩次向架構(gòu)層發(fā)送觸控 信息的頻率為80Hz為例,A X的值取中斷時間的三至五倍比較合適;預先存儲的速度的經(jīng)驗值和時間的經(jīng)驗值是根據(jù)不同年齡段、不同身高、不同性 別等不同性別的用戶采樣獲得的手勢移動時間的經(jīng)驗值和手勢速度的經(jīng)驗值;從經(jīng)驗值 中選取與計算得到的速度最接近的速度值和時間變化量閾值,而不直接使用計算值,是因 為這些經(jīng)驗值具有一定的代表性,可以排除一些比較極端的情況下的速度值和手勢移動時 間,如極快的速度或者極慢的速度,從而可以防止一些誤操作給校準過程帶來誤差。在本發(fā) 明中,對預先存儲的速度的經(jīng)驗值是按照正態(tài)分布進行排列的,這樣在移動終端的數(shù)據(jù)庫 中預先存儲的速度的經(jīng)驗值中找到與\最接近的速度u的效率會提高,使得移動終端的 反映速度加快。步驟202,獲取手指在移動終端觸摸屏上的觸控信息;具體為,移動終端的驅(qū)動層中的芯片實時獲取手指在移動終端觸摸屏上的觸控信 息,按照一定的數(shù)據(jù)格式將觸控信息通過驅(qū)動層和架構(gòu)層連接的傳輸通道發(fā)送給架構(gòu)層; 其中,觸控信息包括以移動終端觸摸屏的左上角為原點的坐標系中,手指的坐標值x和y、 手指的指寬值w、手指對觸摸屏的壓力p、手指的按壓觸摸(BTN TOUCH, Button Touch)值; 當BTN_T0UCH值為1時,表示有手指的指頭按下,當BTN_T0UCH值為0時,表示所有的手指 的指頭都抬起;BTN_T0UCH值只有當?shù)谝淮斡惺种赴聪禄蛘咚械氖种傅闹割^都抬起時, 即BTN_T0UCH值發(fā)生變化時才作為觸控信息的一部分發(fā)送給架構(gòu)層;其中,一定的數(shù)據(jù)格式如圖3和圖4所示。圖3中分別給出了包含BTN_T0UCH值時單個指頭、雙指、三個指頭以及N個指頭按下時的數(shù)據(jù)格式,圖4中分別給出了不包含BTN_T0UCH值時單個指頭、雙指、三個指頭以及 N個指頭按下時的數(shù)據(jù)格式;其中SYN_MT_REP0RT值是用于分隔不同指頭的觸控信息的分 隔符,SYN_REP0RT是用于分隔每次發(fā)送的觸控信息的分隔符;驅(qū)動層以一定的頻率將觸控 信息發(fā)送給架構(gòu)層,該頻率又稱為中斷頻率,不同的觸摸屏生產(chǎn)廠商提供的中斷頻率不同, 通常采用60Hz至80Hz,有的高達250Hz。步驟203,對獲得的觸控信息中的數(shù)據(jù)進行預處理;具體的,移動終端的架構(gòu)層按照驅(qū)動層發(fā)送的觸控信息的數(shù)據(jù)格式,接收驅(qū)動層 發(fā)送的觸控信息,例如驅(qū)動層按照坐標值X、坐標值y、手指的指寬值W、手指對觸摸屏的 壓力P的順序發(fā)送觸控信息,架構(gòu)層就按照坐標值χ、坐標值y、手指的指寬值w、手指對觸 摸屏的壓力P的順序接收觸控信息;架構(gòu)層對收到的觸控信息中的數(shù)據(jù)進行預處理,即根 據(jù)收到的觸控信息中的數(shù)據(jù),將手指的運動狀態(tài)信息記錄到motion類中;其中,所述運動 狀態(tài)信息包括:ACTI0N_M0VE、ACTI0N_UP、ACTI0N_D0WN, ACTI0N_M0VE 表示有手指在運動, ACTI0N_UP表示所有的手指都彈起,ACTI0N_D0WN表示有手指按下;根據(jù)觸控信息中的是 否有BTN_T0UCH值判斷是否是ACTI0N_M0VE狀態(tài),如果沒有BTN_T0UCH值說明有手指在觸 摸屏上運動,即是ACTI0N_M0VE狀態(tài);如果有BTN_T0UCH值,就判斷BTN_T0UCH值是0還是 1,如果是0表示所有的手指都彈起,即是ACTI0N_UP狀態(tài),如果是1表示有手指按下,即是 ACTI0N_D0WN狀態(tài);同時,架構(gòu)層將觸控信息中的數(shù)據(jù)記錄到motion類中,用于根據(jù)記錄的 數(shù)據(jù)得到各個指頭的運動軌跡;架構(gòu)層將motion類中的數(shù)據(jù)發(fā)送給手勢算法處理層;所述 motion類是一種class程序語言,一類性質(zhì)相同的數(shù)據(jù)存儲到一個motion類中,在本發(fā)明 中motion類相當于用于存儲觸控信息以及對觸控信息進行預處理后的一種存儲介質(zhì)。步驟204,提取預先存儲的時間變化量閾值和距離變化量閾值,根據(jù)預處理后的數(shù) 據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行識別;具體的,移動終端的手勢算法處理層收到架構(gòu)層發(fā)送的motion類中的數(shù)據(jù),根據(jù) 收到的運動狀態(tài)信息可以知道觸摸屏上手指的運動狀態(tài),因為觸控信息中SYN_MT_REP0RT 值是用于分隔不同指頭的觸控信息的分隔符,所以根據(jù)數(shù)據(jù)中的觸控信息中的SYN_MT_ REPORT的數(shù)量可以知道觸摸屏上運動的手指的數(shù)量。手勢算法處理層根據(jù)motion類中的數(shù)據(jù)得到手指的運動狀態(tài)信息,如果是 ACTI0N_UP或ACTI0N_D0WN,表示手指是全部抬起,或者只是按下,因此手指并沒有在移動 終端上運動,該手勢為無效手勢,所以不需要對手勢進行識別,結(jié)束流程;如果是ACTI0N_M0VE,當手勢算法處理層確定觸摸屏上運動的手指的數(shù)量是兩指 時,以兩指合攏和兩指遠離的手勢為例進行說明當兩指在移動終端的觸摸屏上運動時,手 勢算法處理層實時記錄當前兩指的坐標(Xl、yi)和(x2、y2),以及當前時間T1,計算兩指的距
離S1 = √( X2-X1)2+(y2-y,)2 ;當下一次記錄兩指的坐標來臨時,記錄兩指的坐標并計算出兩指的距離S2和T2 ; 手勢算法處理層從數(shù)據(jù)庫中提取在步驟201中存儲的Δ τ和Δ S,比較!S2-S1I與AS的 大小以及T2-T1與Δ τ的大小,只有當IS2-S1I > Δ S并且T2-T1 > Δ τ,這次兩指運動的 手勢才有效,計算該手勢的變化系數(shù)scale = S2ZiS1 ;如果這次兩指運動的手勢為無效,就對下一個手勢進行識別;當手勢算法處理層確定觸摸屏上運動的手指的數(shù)量是三指時,以三指合攏和三指 遠離的手勢為例進行說明手勢算法處理層實時記錄當前三指的坐標,根據(jù)不在同一直線 上的三點確定一個外接圓的原理,根據(jù)當前三指的坐標得到其外接圓,并計算該外接圓的 半徑巧以及當前時間T3 ;當下一次記錄三指的坐標來臨時,記錄當前三指的坐標及當前時 間1\,并計算此時三點坐標的外接圓的半徑r2;只有當|r2-ri| > AS并且T4-T3> A t,這 次三指運動的手勢才有效,計算該手勢的變化系數(shù)sacle = r2/ri ;手勢算法處理層將識別 結(jié)果即手勢的變化系數(shù)scale的值發(fā)送給移動終端的應(yīng)用層。步驟205,根據(jù)識別結(jié)果在移動終端上實現(xiàn)該手勢對應(yīng)的功能;具體的,移動終端的應(yīng)用層接收手勢算法處理層發(fā)送的識別結(jié)果,判斷scale的 值與1的大小,如果sacle小于1,說明兩指或者三指的手勢是合攏,例如,可在移動終端 上實現(xiàn)圖片縮小的功能,縮小的比例根據(jù)scale的值計算獲得;如果sacle大于1,說明兩 指或三指的手勢是遠離,例如,可在移動終端上實現(xiàn)圖片放大的功能,放大的倍數(shù)也是根據(jù) scale的值計算獲得;如果等于1,說明兩手指沒有在移動終端的觸摸屏上運動,不執(zhí)行任 何操作。 本發(fā)明中的手勢可以是多個手指構(gòu)成的手勢,一般兩個手指或三個手指的手勢實 現(xiàn)的效果比較好。此外,本發(fā)明可以應(yīng)用于多種操作系統(tǒng),如WindowsMob i 1 e操作系統(tǒng)、 Symbian操作系統(tǒng)以及Android操作系統(tǒng)等,還可以應(yīng)用于全球定位系統(tǒng)。為實現(xiàn)上述方法,本發(fā)明還提供一種自動識別手勢的移動終端,圖5是本發(fā)明實 現(xiàn)自動識別手勢的移動終端的結(jié)構(gòu)示意圖,如圖5所示,該移動終端包括手勢校準模塊 51、驅(qū)動層52、架構(gòu)層53、手勢算法處理層54、;其中,手勢校準模塊51,用于對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏 上運動時的時間變化量閾值和距離變化量閾值;所述手勢校準模塊51對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏 上運動時的時間變化量閾值和距離變化量閾值,具體為移動終端的手勢校準模塊51根據(jù) 手指之間的距離變化量和產(chǎn)生變化所用的時間,得到運動速度;在預先存儲的速度的經(jīng)驗 值中找到與所述運動速度最接近的速度;根據(jù)所述最接近的速度和從預先存儲的時間經(jīng)驗 值中選出的時間的變化量閾值,得到距離的變化量閾值,將兩個變化量閾值保存;驅(qū)動層52,用于獲取手指在移動終端觸摸屏上的觸控信息;所述驅(qū)動層52獲取手指在移動終端觸摸屏上的觸控信息具體為驅(qū)動層52中的 芯片實時獲取手指在移動終端觸摸屏上的觸控信息,按照一定的數(shù)據(jù)格式將獲取的觸控信 息通過驅(qū)動層52與架構(gòu)層53之間的傳輸通道以一定的頻率發(fā)送給架構(gòu)層53 ;所述觸控信 息包括以移動終端的觸摸屏的左上角為原點的坐標系中手指的坐標值、手指的指寬值、手 指對觸摸屏的壓力和手指的按壓觸摸值;架構(gòu)層53,用于對所述觸控信息的數(shù)據(jù)進行預處理;所述架構(gòu)層53對所述觸控信息的數(shù)據(jù)進行預處理具體為架構(gòu)層53根據(jù)觸控信 息的數(shù)據(jù)將手指的運動狀態(tài)信息記錄到motion類中,所述運動狀態(tài)信息包括有手指在運 動、手指都彈起和有手指按下;架構(gòu)層將觸控信息中的數(shù)據(jù)記錄到motion類中,將motion 類中的數(shù)據(jù)發(fā)送給手勢算法處理層54 ;
手勢算法處理層54,用于提取預先存儲的時間變化量閾值和距離變化量閾值,根 據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行識 別;所述手勢算法處理層54提取預先存儲的時間變化量閾值和距離變化量閾值,根 據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的閾值,對手勢進行識別具體為移動終端的手勢算法 處理層54根據(jù)預處理后的數(shù)據(jù)得到觸摸屏上的手指的運動狀態(tài),當確定運動狀態(tài)是有手 指在觸摸屏上運動時,根據(jù)觸控信息中用于分隔不同指頭的觸控信息的分隔符的數(shù)量判斷 判斷觸摸屏上運動的手指的數(shù)量;當確定有兩指在觸摸屏上運動時,當確定有兩指在觸摸 屏上運動時,實時記錄當前兩指的坐標以及當前時間,計算兩指距離;當兩次兩指的距離的 差值的絕對值大于距離變化量閾值,且兩次當前時間的差大于時間變化量閾值時,計算手 勢的變化系數(shù);當確定有三指在觸摸屏上運動時,實時記錄當前三指的坐標以及當前時間, 計算三指的坐標的外接圓的半徑;當兩次三指的坐標的外接圓半徑的差值的絕對值大于距 離變化量閾值且兩次當前時間的差大于時間變化量閾值時,計算手勢的變化系數(shù);當確定 運動狀態(tài)是所有手指都彈起或者有手指按下時,該手勢為無效手勢,結(jié)束當前流程。
該移動終端進一步包括應(yīng)用層55 ;其中,應(yīng)用層55,用于根據(jù)識別結(jié)果在移動終端上實現(xiàn)手勢對應(yīng)的功能。該移動終端進一步包括數(shù)據(jù)庫56,用于保存獲得的時間變化量閾值和距離變化 量閾值;還用于保存速度的經(jīng)驗值、時間的經(jīng)驗值等。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍,凡在 本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應(yīng)包含在本發(fā)明的保護 范圍之內(nèi)。
權(quán)利要求
一種自動識別手勢的方法,其特征在于,該方法包括對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上運動時的時間變化量閾值和距離變化量閾值;獲取手指在移動終端觸摸屏上的觸控信息,并對獲得的觸控信息的數(shù)據(jù)進行預處理;提取所述時間變化量閾值和距離變化量閾值,根據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行識別。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對移動終端的觸摸屏進行校準,獲取 并保存手指在觸摸屏上運動時的時間變化量閾值和距離變化量閾值,具體為根據(jù)手指之間的距離變化量和產(chǎn)生變化所用的時間,得到運動速度;在預先存儲的速 度的經(jīng)驗值中找到與所得到運動速度最接近的速度;根據(jù)所述最接近的速度和從預先存儲 的時間經(jīng)驗值中選出的時間變化量閾值,得到距離變化量閾值,保存得到的時間變化量閾 值和距離變化量閾值。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述預先存儲的速度的經(jīng)驗值是根據(jù)不 同年齡段、不同身高、不同性別的用戶采樣獲得的手勢速度的經(jīng)驗值,所述預先存儲的速度 的經(jīng)驗值按照正態(tài)分布進行排列。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取手指在移動終端觸摸屏上的觸 控信息具體為移動終端的驅(qū)動層中的芯片實時獲取手指在移動終端觸摸屏上的觸控信息,將觸控信 息發(fā)送給架構(gòu)層;所述觸控信息包括以移動終端觸摸屏左上角為原點的坐標系中手指的 坐標值、手指的指寬值、手指對觸摸屏的壓力和手指的按壓觸摸值。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述對所述觸控信息的數(shù)據(jù)進行預處理 具體為移動終端的架構(gòu)層根據(jù)觸控信息的數(shù)據(jù),將手指的運動狀態(tài)信息記錄到motion類中; 架構(gòu)層將觸控信息中的數(shù)據(jù)記錄到motion類中,并將motion類中的數(shù)據(jù)發(fā)送給手勢算法 處理層;所述運動狀態(tài)信息包括有手指在運動、手指都彈起和有手指按下。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預處理后的數(shù)據(jù)、觸控信息和提 取的時間變化量閾值和距離變化量閾值,對手勢進行識別具體為移動終端的手勢算法處理層根據(jù)預處理后的數(shù)據(jù)得到觸摸屏上手指的運動狀態(tài),當確 定運動狀態(tài)是有手指在觸摸屏上運動時,根據(jù)觸控信息中用于分隔不同指頭的觸控信息的 分隔符的數(shù)量判斷觸摸屏上運動的手指的數(shù)量,當確定有兩指在觸摸屏上運動時,實時記 錄當前兩指的坐標以及當前時間,計算兩指距離;當兩次兩指的距離的差值的絕對值大于 距離變化量閾值,且兩次當前時間的差大于時間變化量閾值時,該手勢為有效手勢。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法還包括當確定有三指在觸摸屏上運動時,實時記錄當前三指的坐標以及當前時間,計算三指 的坐標的外接圓的半徑;當兩次三指的坐標的外接圓半徑的差值的絕對值大于距離變化量 閾值且兩次當前時間的差大于時間變化量閾值時,該手勢為有效手勢。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,該方法還包括當確定運動狀態(tài)是所有手指都彈起或者有手指按下時,該手勢為無效手勢。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,該方法還包括根據(jù)識別結(jié)果在移動終端上實現(xiàn)手勢對應(yīng)的功能。
10.一種自動識別手勢的移動終端,其特征在于,該移動終端包括手勢校準模塊、驅(qū) 動層、架構(gòu)層、手勢算法處理層;其中,手勢校準模塊,用于對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上運動 時的時間變化量閾值和距離變化量閾值;驅(qū)動層,用于獲取手指在移動終端觸摸屏上的觸控信息; 架構(gòu)層,用于對所獲取的觸控信息的數(shù)據(jù)進行預處理;手勢算法處理層,用于提取預先存儲的時間的變化量閾值和距離的變化量閾值,根據(jù) 預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行識別。
11.根據(jù)權(quán)利要求10所述的移動終端,其特征在于,該移動終端進一步包括應(yīng)用層、 數(shù)據(jù)庫;其中,應(yīng)用層,用于根據(jù)識別結(jié)果在移動終端上實現(xiàn)手勢對應(yīng)的功能; 數(shù)據(jù)庫,用于保存獲得的時間變化量閾值和距離變化量閾值;還用于保存速度的經(jīng)驗 值和時間的經(jīng)驗值。
全文摘要
本發(fā)明公開一種自動識別手勢的方法,包括對移動終端的觸摸屏進行校準,獲取并保存手指在觸摸屏上運動時的時間變化量閾值和距離變化量閾值;獲取手指在移動終端的觸摸屏上的觸控信息,并對所述觸控信息的數(shù)據(jù)進行預處理;提取所述時間的變化量閾值和距離的變化量閾值,根據(jù)預處理后的數(shù)據(jù)、觸控信息和提取的時間變化量閾值和距離變化量閾值,對手勢進行識別;本發(fā)明還提供一種自動識別手勢的移動終端。根據(jù)本發(fā)明的技術(shù)方案,能夠快捷、高效地實現(xiàn)自動識別多指手勢。
文檔編號G06F3/0488GK101853133SQ20101018842
公開日2010年10月6日 申請日期2010年5月31日 優(yōu)先權(quán)日2010年5月31日
發(fā)明者楊新力, 胡博, 趙薇, 魏蘭英 申請人:中興通訊股份有限公司