專利名稱:一種基于筆劃的多指觸控手勢識別方法
技術領域:
本發(fā)明屬于人機交互領域,具體涉及一種基于筆劃的多指觸控手勢識別方法。
背景技術:
目前,iPhone, il^d、桌面設備等多觸控設備變得越來越流行。這些觸控設備在 我們的日常生活中發(fā)揮著重要的作用。手指或手觸控是這些設備的主要輸入通道。這種 交互方式被廣泛應用于一些平臺上,如iPhone OS、Windows Phone 7、Android、Wacom、 GestureWorks、Microsoft Surface等。然而,這些系統(tǒng)只支持少量預定義的多指觸控手勢。 用戶需要嚴格的使用這些手勢,否則手勢不能被正確識別。例如,放縮一個對象常常使用基 于兩個手指的Pinch手勢。當多于兩個手指被不經(jīng)意地放到觸控平面上時,系統(tǒng)可能不能 正確識別觸控手勢,因而不能完成放縮任務。類似地,當用戶通過拖拽移動對象的時候,手 指需要與觸控面一直接觸直到對象到達目標位置。偶然抬起手指將被認為是移動操作的結 束。因此,對象被放置在錯誤的位置。這種對用戶觸控行為的約束限制了多指觸控交互的 適應性。用戶需要嚴格遵循系統(tǒng)定義的多觸控手勢,對擴展多指觸控手勢的范圍也提出了 挑戰(zhàn)。用戶更喜歡自己定義的手勢,這些用戶定義的手勢比已有的手勢更加靈活(參考文 獻:ffobbrock, J. 0. , Morris, Μ. R. and Wilson, A. D. User-defined gestures for surface computing. InProc. CHI 2009,1083-1092.)。當用戶自定義手勢時,用戶并不關心手勢輸入 時所采用的手指的個數(shù)。盡管開發(fā)者可以使用GestureWorks等手勢庫建立新的手勢,已有 的手勢識別方法大部分為特定手勢設計,如pinch和flick。由于新手勢需要新的模塊來識 別新手勢,這些庫難于識別用戶定義的手勢。因此,目前已有的多觸控手勢識別方法要求用戶按照給定的方式輸入手勢,并不 支持用戶自定義的手勢的識別。觸控手勢識別面臨如下挑戰(zhàn)(如圖2所示)a)冗余輸入,由用戶不經(jīng)意的觸摸、 用戶同步的多個手指輸入引起;b)間斷的輸入,由用戶無意識的抬起引起;c)手指輸入的 變形;d)筆劃順序的不一致性。圖2中每行中的三幅圖分別反映觸控手勢的接觸面積、位 置信息,按照手指ID區(qū)分的筆劃信息,以及按照時間順序連接得到的筆劃。
發(fā)明內(nèi)容
針對現(xiàn)有技術中存在的技術問題,本發(fā)明的目的在于提供一種基于筆劃的多指觸 控手勢識別方法,從而提高多觸控手勢的魯棒性并擴展多觸控手勢的集合?;诠P劃的多 指觸控手勢的定義不依賴于手指的個數(shù)、接觸區(qū)域的形狀或面積,將觸控手勢抽象為一個 或多個筆劃。其識別過程采用筆劃匹配的方法識別多指觸控手勢。本發(fā)明的技術方案為一種基于筆劃的多指觸控手勢識別方法,其步驟為1)提取用戶在觸控設備上所輸入觸控手勢的觸控點信息;其中,所述觸控點信息包括當前觸控手指的標識ID、當前觸控點的位置(X,y)、觸控點的時間time ;2)根據(jù)所提取觸控手勢的觸控點信息,將具有相同ID的觸控點構建為觸控筆劃;3)對構建的觸控筆劃進行去冗余處理,即對于同一時間段的任意兩個觸控筆劃 A和B,如果A和B中具有相同時刻的觸控點之間距離的最大值、最小值之差與平均值的比 值介于設定閾值Li、L2之間,則刪除其中一觸控筆劃;4)檢查幻處理后的觸控筆劃,當一觸控筆劃的末點觸控點時間和坐標與另一觸 控筆劃的起點觸控點時間和坐標對應差值分別小于設定閾值,則連接這兩個觸控筆劃;5)將4)處理后的觸控筆劃構成的手勢與手勢庫中的手勢進行匹配,得到輸入觸 控手勢的類型。進一步的,所述步驟3)中,如果A和B中具有相同時刻的觸控點之間距離的最大 值、最小值之差與平均值的比值介于設定閾值L1、L2之間,且A和B的大小相似度介于設定 閾值Si、S2之間,且A和B的方向相似度介于設定閾值D1、D2之間,則刪除其中一觸控筆 劃。進一步的,如果步驟4)處理后的觸控筆劃多于2個,則根據(jù)觸控筆劃末點觸控點 時間與起點觸控點時間計算觸控筆劃的時間長度,保留時間長度最長的兩個觸控筆劃。進一步的,對步驟4)處理后的觸控筆劃進行歸一化,其方法為1)對觸控筆劃進行平滑處理;2)對觸控筆劃進行排序如果兩觸控筆劃的大小不相似,則將較小的筆劃位于筆 劃序列的第一個;若筆劃大小相似,則將左邊的筆劃為筆劃序列中的第一個筆劃;3)對排序后的觸控筆劃重采樣,使觸控筆劃內(nèi)觸控點的間隔大小相同;旋轉觸控 筆劃,使第一個筆劃包圍框的中心點到第二個筆劃包圍框中心點的連線旋轉到水平方向; 放縮觸控筆劃,使觸控筆劃所構成手勢的大小放縮到設定大??;平移觸控筆劃,使觸控筆劃 所構成手勢所包圍框左上角坐標為(0,0)。進一步的,計算兩觸控筆劃A和B的大小相似度的方法為根據(jù)觸控筆劃中觸控點 的坐標,計算觸控筆劃包圍框的寬度和高度;然后根據(jù)width/widtl·^ heightA/heightB得 到筆劃A和B的大小相似度;其中,widthA、heightA分別是筆劃A的包圍框的寬度和高度, widths heightB分別是筆劃B的包圍框的寬度和高度。進一步的,根據(jù)(end)(A-start)(A) / (end)(B-start)(B)、(endYA_startYA) / (endYB-startYB)計算觸控筆劃A和B的方向相似度;其中,(startXA, startYA)為筆劃A起 始點的坐標,(endXA, endYA)為筆劃A終點的坐標,(startXB, startYB)為筆劃B起始點的坐 標,(encD(B,endYB)為筆劃B終點的坐標。進一步的,所述閾值Ll = 1/4,所述閾值L2 = 4。進一步的,所述閾值Li、閾值Si、閾值Dl均相等;所述閾值L2、閾值S2、閾值D2均相等。進一步的,對于基于視覺的觸控設備,采用圖像檢測算法檢測所輸入觸控手勢的 觸控信息。具體來說,本發(fā)明的技術方案如
圖1,具體如下1、用手指在觸控設備上輸入觸控手勢,采用手指檢測算法提取觸控信息。
觸控設備既可以是iPhone等移動設備,也可以是Surface等觸控交互桌面。觸控 手勢可以是單手手勢,也可以是雙手手勢;可以是單筆劃手勢,也可以是多筆劃手勢。對于基于視覺的觸控設備,可采用計算機圖形學中的圖像檢測算法檢測手指的 輸入(參考文獻:Han, J. Y. Low-cost multi-touch sensing through frustrated total internal reflection. In Proc. UIST 2005,115-118.);對于基于電容的觸控設備,通 過檢測由手指帶來的電容場的變化來檢測手指輸入(參考文獻Dietz,P. and Leigh, D. DiamondTouch :a multi-user touch technology.InProc. UIST 2001,219-226.) TouchLib和reacTIVision為開發(fā)者提供了基于紅外光的手指和手檢測的功能。觸控點的信息可表示為(ID, X,y,width, height, area, time)。其中,ID是當前 觸控手指的標識,(x,y)為當前觸控點的位置,width、height和area分別表示當前觸控點 的手指與觸控平面的接觸區(qū)域的寬度、高度和面積,time為觸控點的時間。在同一時刻,不 同的觸控手指會對應不同的ID ;當某一手指觸摸交互桌面并且沒有抬起時,在不同時刻該 手指的ID不變;當手指抬起后,再次觸摸時,手指觸摸會對應新的ID。2、提取觸控輸入中的有效筆劃。每個觸控筆劃由具有相同ID的觸控點組成。觸控筆劃中的觸控點可以用ID(x,y, time)表示。筆劃是由一系列的筆劃點組成,每個筆劃點具有(X,y,time)屬性。提取有效 筆劃主要由兩部分組成1)去除冗余的筆劃。冗余筆劃往往在時間上與有效筆劃重疊;冗余筆劃在形狀上 與同時間段內(nèi)的有效筆劃類似,冗余點與有效點間的距離較為穩(wěn)定;冗余筆劃與有效筆劃 的方向一致。因此,利用如下特征判斷是否去除某一筆劃。假設A和B是在同一時間段的筆劃,B的開始時間小于或等于A,判斷B是否是冗 余筆劃的方法如圖5所示。widthA、heightA分別是筆劃A的包圍框的寬度和高度,widths heightB分別是筆劃B的包圍框的寬度和高度,widthA/widthB和height/heigh、描述了 筆劃A和筆劃B大小的相似度。maxDiSt、minDiSt、aveDiSt為兩個筆劃中相同時刻的對應 點之間的最大距離、最小距離和平均距離,(maxDist-minDist)/aveDist描述了兩個筆劃中 相同時刻的對應點之間的距離關系。(start、,startYA)為筆劃A起始點的坐標,(encD(A, endYA)為筆劃A終點的坐標,(startXB, startYB)為筆劃B起始點的坐標,(endXB, endYB)為 筆劃 B 終點的坐標,(endXA-star+tXA) / (endXB-startXB),(endYA-startYA) / (endYB-startYB) 描述了 A和B方向的一致性。當 wi dthA/w i dthB> he i ghtA/he i ghtB> (maxD i st_mi nD i st)/aveD i s t、 (endXA-startXA) / (endXB-startXB) > (endYA-startYA) / (endYB-startYB)的值均介于 thresl 和thres2之間時,B為冗余筆劃,被從觸控筆劃中去除。thresl和thres2是兩個閾值,可 以經(jīng)驗性的設置為1/4和4。2)連接斷掉的筆劃。無意識的抬起操作可能引起原本連續(xù)的筆劃被檢測為多個分開的筆劃。斷開的筆 劃時間上不重疊,但從時間和空間上鄰近。當一個筆劃的末點與另一個筆劃的起點在時間 和空間上鄰近時,兩個筆劃被連接。如果步驟連接處理后的觸控筆劃多于2個,則根據(jù)觸控筆劃末點觸控點時間與起 點觸控點時間計算觸控筆劃的時間長度,保留時間長度最長的兩個觸控筆劃。
3、對觸控筆劃進行歸一化,減少輸入同一手勢的差異性對識別結果帶來的影響。歸一化主要由3部分組成1)對筆劃進行平滑,去除由于手指輸入的不規(guī)范性帶來的問題。某一點的坐標和 時間為該點前一個點、該點、該點后一個點的坐標和時間的均值。2)對筆劃排序。若去除冗余后的筆劃個數(shù)為1,則不需要排序。否則,若筆劃的大 小不相似,重新排序筆劃使得較小的筆劃位于筆劃序列的第一個;若筆劃大小相似,排序使 得左邊的筆劃為筆劃序列中的第一個筆劃。3)重采樣,旋轉,放縮和平移筆劃。重采樣筆劃使筆劃內(nèi)筆劃點的間隔大小相同, 支持識別方法與觸控輸入速度的無關性。若筆劃數(shù)為2,旋轉使第一個筆劃包圍框的中心點 到第二個筆劃包圍框中心點的連線旋轉到水平方向,支持識別方法的旋轉無關性。放縮使 手勢的大小放縮到固定大小,支持識別方法的大小無關性。平移筆劃使手勢的包圍框左上 角坐標標(0,0),使得識別方法具有位置無關性。4、識別觸控手勢,得到觸控手勢的類型。計算觸控手勢與手勢庫中手勢的距離,手勢庫中距離最近的手勢的類型為該觸控 手勢的類型。給定筆劃Sl和筆劃S2,兩筆劃間的距離d(Sl,S2)可以用如下公式計算得到。N 是筆劃中的點的個數(shù),(Sli.x, Sliy)是Sl中第i個點的位置坐標,(S2i.x, S2i. y)是S2 中第i個點的位置坐標。
權利要求
1.一種基于筆劃的多指觸控手勢識別方法,其步驟為1)提取用戶在觸控設備上所輸入觸控手勢的觸控點信息;其中,所述觸控點信息包 括當前觸控手指的標識ID、當前觸控點的位置(X,y)、觸控點的時間time ;2)根據(jù)所提取觸控手勢的觸控點信息,將具有相同ID的觸控點構建為觸控筆劃;3)對構建的觸控筆劃進行去冗余處理,即對于同一時間段的任意兩個觸控筆劃A和 B,如果A和B中具有相同時刻的觸控點之間距離的最大值、最小值之差與平均值的比值介 于設定閾值Li、L2之間,則刪除其中一觸控筆劃;4)檢查幻處理后的觸控筆劃,當一觸控筆劃的末點觸控點時間和坐標與另一觸控筆 劃的起點觸控點時間和坐標對應差值分別小于設定閾值,則連接這兩個觸控筆劃;5)將4)處理后的觸控筆劃構成的手勢與手勢庫中的手勢進行匹配,得到輸入觸控手 勢的類型。
2.如權利要求1所述的方法,其特征在于所述步驟3)中,如果A和B中具有相同時刻 的觸控點之間距離的最大值、最小值之差與平均值的比值介于設定閾值L1、L2之間,且A和 B的大小相似度介于設定閾值Si、S2之間,且A和B的方向相似度介于設定閾值Dl、D2之 間,則刪除其中一觸控筆劃。
3.如權利要求1或2所述的方法,其特征在于如果步驟4)處理后的觸控筆劃多于2個, 則根據(jù)觸控筆劃末點觸控點時間與起點觸控點時間計算觸控筆劃的時間長度,保留時間長 度最長的兩個觸控筆劃。
4.如權利要求3所述的方法,其特征在于對步驟4)處理后的觸控筆劃進行歸一化,其 方法為1)對觸控筆劃進行平滑處理;2)對觸控筆劃進行排序如果兩觸控筆劃的大小不相似,則將較小的筆劃位于筆劃序 列的第一個;若筆劃大小相似,則將左邊的筆劃為筆劃序列中的第一個筆劃;3)對排序后的觸控筆劃重采樣,使觸控筆劃內(nèi)觸控點的間隔大小相同;旋轉觸控筆 劃,使第一個筆劃包圍框的中心點到第二個筆劃包圍框中心點的連線旋轉到水平方向;放 縮觸控筆劃,使觸控筆劃所構成手勢的大小放縮到設定大??;平移觸控筆劃,使觸控筆劃所 構成手勢所包圍框左上角坐標為(0,0)。
5.如權利要求4所述的方法,其特征在于計算兩觸控筆劃A和B的大小相似度的方法 為根據(jù)觸控筆劃中觸控點的坐標,計算觸控筆劃包圍框的寬度和高度;然后根據(jù)widthA/ widthsheightA/heightB得到筆劃A和B的大小相似度;其中,widthA、heightA分別是筆劃 A的包圍框的寬度和高度,widths heightB分別是筆劃B的包圍框的寬度和高度。
6.如權利要求4所述的方法,其特征在于根據(jù)(endXA-StartXA)/(endXB-StartXB)、 (endYA-startYA)/(endYB-startYB)計算觸控筆劃A和B的方向相似度;其中,(startXA, startYA)為筆劃A起始點的坐標,(endXA, endYA)為筆劃A終點的坐標,(startXB, startYB) 為筆劃B起始點的坐標,(endXB, endYB)為筆劃B終點的坐標。
7.如權利要求2所述的方法,其特征在于所述閾值Ll= 1/4,所述閾值L2 = 4。
8.如權利要求7所述的方法,其特征在于所述閾值Li、閾值Si、閾值Dl均相等;所述 閾值L2、閾值S2、閾值D2均相等。
9.如權利要求1所述的方法,其特征在于對于基于視覺的觸控設備,采用圖像檢測算法檢測所輸入觸控手勢的觸控信息。
全文摘要
本發(fā)明公開了一種基于筆劃的多指觸控手勢識別方法,屬于人機交互領域。本方法為1)提取用戶在觸控設備上所輸入觸控手勢的觸控點信息;2)將具有相同ID的觸控點構建為觸控筆劃;3)對構建的觸控筆劃進行去冗余處理;4)檢查3)處理后的觸控筆劃,當一觸控筆劃的末點觸控點時間和坐標與另一觸控筆劃的起點觸控點時間和坐標對應差值分別小于設定閾值,則連接這兩個觸控筆劃;5)將4)處理后的觸控筆劃構成的手勢與手勢庫中的手勢進行匹配,得到輸入觸控手勢的類型。本發(fā)明支持更加自由的觸控手勢輸入,魯棒性強;可以支持更多的觸控手勢的識別,為觸控設備提供了更大的觸控手勢集合。
文檔編號G06F3/048GK102147707SQ20111007914
公開日2011年8月10日 申請日期2011年3月30日 優(yōu)先權日2011年3月30日
發(fā)明者劉佳升, 姜映映, 張鳳軍, 王宏安, 田豐 申請人:中國科學院軟件研究所