方成艷 孔偉青 鄧秀勤
摘 要:本文針對當(dāng)下流行的多點(diǎn)觸控設(shè)備,對多點(diǎn)觸控手勢識別算法進(jìn)行了研究,通過類比計(jì)算機(jī)中的快捷鍵設(shè)計(jì)出了一系列的觸控手勢,并結(jié)合曲線識別算法提出了一種多點(diǎn)觸控手勢識別算法。實(shí)驗(yàn)在當(dāng)下流行的Android設(shè)備上進(jìn)行,手勢檢測成功表明了識別算法的有效性。
關(guān)鍵詞:多點(diǎn)觸控;算法;手勢識別
中圖分類號:TP391.4 文獻(xiàn)標(biāo)識碼:A
1 引言(Introduction)
多點(diǎn)觸控技術(shù)是一種全新的人機(jī)交互技術(shù)[1],相對于傳統(tǒng)的單點(diǎn)觸控技術(shù)而言,它能同時檢測和識別多個觸點(diǎn)的位置和數(shù)量,從而提供了功能更加豐富的交互技術(shù)[2]。2007年,蘋果公司的iPhone手機(jī)和微軟公司的surface桌面式計(jì)算機(jī)兩款新產(chǎn)品的發(fā)布,將多點(diǎn)觸控技術(shù)引入主流消費(fèi)品市場[2],讓普通用戶真正享受這一技術(shù)帶來的便利。2009年微軟發(fā)布的操作系統(tǒng)Windows 7提供了對多點(diǎn)觸控技術(shù)的支持,使多點(diǎn)觸控進(jìn)入人機(jī)交互新時代[3]。2011年,搭載谷歌安卓系統(tǒng)的觸屏手機(jī)進(jìn)入了主流消費(fèi)市場,在全球的市場份額首次超過塞班系統(tǒng),多點(diǎn)觸控技術(shù)成為主流的觸控技術(shù)??梢灶A(yù)見,在未來多點(diǎn)觸控技術(shù)將逐步取代傳統(tǒng)的鍵盤、鼠標(biāo),成為人機(jī)交互的主流技術(shù)。但是,多點(diǎn)觸控技術(shù)在國內(nèi)發(fā)展的時間短,技術(shù)方案尚有欠缺,一些核心技術(shù)及專利屏障為多點(diǎn)觸控技的進(jìn)一步發(fā)展形成一定的阻礙。觸摸精度低,錯誤率高,手易疲勞性以及由于手勢擴(kuò)展麻煩等問題,這些都在一定程度上制約了基于多點(diǎn)觸控的雙手交互技術(shù)的發(fā)展[4]。同時,針對移動設(shè)備觸摸屏的多點(diǎn)觸控手勢識別算法十分匱乏,這嚴(yán)重的限制了多點(diǎn)操作的進(jìn)一步應(yīng)用。本文針對多點(diǎn)觸控技術(shù)中手勢功能較少,借鑒計(jì)算機(jī)快捷鍵(Ctrl+A、Ctrl+V等),設(shè)計(jì)了一系列新的手勢,并利用基于相對高度的曲線特征提取算法進(jìn)行手勢特征提取、識別,在移動設(shè)備觸摸屏上實(shí)現(xiàn)了傳統(tǒng)計(jì)算機(jī)中的相應(yīng)的快捷鍵功能,幫助用戶更好地從傳統(tǒng)計(jì)算機(jī)到觸控設(shè)備的過渡。
2 傳統(tǒng)觸控手勢(Traditional touch gestures)
目前的觸控手勢分為單點(diǎn)和多點(diǎn)兩種,單點(diǎn)觸摸手勢主要有:單擊(Tap)、雙擊(Double Tap)、拖拽(Drag)、輕彈(Fling)、按壓(Press)等,多點(diǎn)觸摸手勢主要有:旋轉(zhuǎn)(Rotate)、捏(Pinch)、展開(Spread)、按壓并單擊(Press and Tap)、按壓并拖拽(Press and Drag),下表列出了這些手勢的圖示名稱和動作描述[5]:
表1 傳統(tǒng)觸控手勢
Tab.1 Traditional touch gestures
從上表來看,相對于傳統(tǒng)的單點(diǎn)觸控技術(shù)而言,多點(diǎn)觸控實(shí)現(xiàn)的功能更加豐富,但就目前情況而言,手勢功能相對較少,并沒有完全發(fā)揮多點(diǎn)觸控的優(yōu)勢。下一節(jié)中,本文將對計(jì)算機(jī)中使用頻率較高的快捷鍵,設(shè)計(jì)新的觸控手勢,從而進(jìn)一步豐富多點(diǎn)觸控交互技術(shù),幫助用戶逐步擺脫對傳統(tǒng)鍵盤、鼠標(biāo)的依賴。
3 手勢設(shè)計(jì)(Gesture design)
3.1 計(jì)算機(jī)中快捷鍵
用戶在使用計(jì)算機(jī)過程中,不可避免地使用到快捷鍵,快捷鍵的使用使工作更加高效、快速、準(zhǔn)確地完成,因此快捷鍵在辦公、娛樂、文件管理等方面發(fā)揮著巨大作用。計(jì)算機(jī)中的快捷鍵很多,且很多快捷鍵功能并不常用,表2中列出了Windows系統(tǒng)下幾個使用頻率較高的快捷鍵。
表2 Windows系統(tǒng)快捷鍵
Tab.2 Shortcut keys in the windows system
快捷鍵 功能 使用說明
Ctrl+A 全選 文檔操作或文件管理中使用
Ctrl+C 復(fù)制 文檔操作或文件管理中使用
Ctrl+V 粘貼 文檔操作或文件管理中使用
Ctrl+X 剪切 文檔操作或文件管理中使用
Delete 刪除 文檔操作或文件管理中使用
Ctrl+Z 撤銷 文檔操作中使用
Ctrl+Y 恢復(fù) 文檔操作中使用
Alt+F4 關(guān)閉當(dāng)前窗口 窗口界面中使用
Ctrl+S 保存 文檔操作中使用
Ctrl+N 新建 文檔操作中使用
3.2 手勢設(shè)計(jì)原則
為了能更好地幫助用戶進(jìn)行人機(jī)交互,觸控手勢的設(shè)計(jì)應(yīng)便于用戶理解和使用,為此,設(shè)計(jì)時應(yīng)遵循以下原則[6]:
(1)直觀性原則:所設(shè)計(jì)的手勢應(yīng)符合用戶的直觀印象,如對圖片進(jìn)行“展開(Spread)”操作表示對圖片進(jìn)行放大,對圖片進(jìn)行“捏(Pineh)”操作,表示對圖片進(jìn)行縮小。
(2)實(shí)用性原則:所設(shè)計(jì)的手勢功能必須是用戶使用頻率最高、最常用的功能,以便用戶更好地進(jìn)行人機(jī)交互。
(3)簡潔性原則:所設(shè)計(jì)的手勢應(yīng)盡量簡潔,做到簡單明了,設(shè)計(jì)的手勢不涉及復(fù)雜的軌跡,以便用戶快速地掌握并使用。
3.3 手勢方案設(shè)計(jì)
根據(jù)3.2中的原則,設(shè)計(jì)手勢如表3所示。
表3 本文設(shè)計(jì)的手勢
Tab.3 The gestures designed in the pape
考慮到快捷方式的使用頻率,本文暫只設(shè)計(jì)以上幾種手勢。
4 手勢識別算法設(shè)計(jì)(The design of the gesture
recognition algorithm)
在觸控設(shè)備中,所繪手勢以二維點(diǎn)集的形式進(jìn)入設(shè)備中,而多點(diǎn)觸控手勢則表現(xiàn)為多個點(diǎn)集,其中
,i表示第i個觸點(diǎn),本文中i=1,2。
本文中,所設(shè)計(jì)的多點(diǎn)手勢較為簡單,識別時可分別對Ai代表的二維曲線進(jìn)行識別,因此多點(diǎn)觸控手勢識別可看作多個單點(diǎn)觸控手勢識別。endprint
特征提取算法
多點(diǎn)觸控手勢分割成多個單點(diǎn)觸控手勢后,對于每個單點(diǎn)手勢,本文采用基于相對高度的曲線特征提取算法[7]進(jìn)行曲線特征提取,該算法描述如下:
a.完整手勢 b.手勢分割 c.手勢分割
圖1 手勢分割
Fig.1 Gesture segmentation
(1)對于開曲線AB:
第一步:求出離曲線的端點(diǎn)連線最遠(yuǎn)的點(diǎn)P和曲線的相對高度,并存放相對高度在二叉樹的根節(jié)點(diǎn)。
第二步:不妨設(shè)曲線的起點(diǎn)為A、P分曲線為兩段。計(jì)算曲線AP的相對高度h1,并存放在相應(yīng)左子樹的根節(jié)點(diǎn)上。計(jì)算曲線BP 的相對高度h2,存放在右子樹根節(jié)點(diǎn)上。
第三步:if h1 第四步:if h2 (2)對于閉曲線,特征提取算法如下: 第一步:初始化二叉樹的根節(jié)點(diǎn)為0。 第二步:求出曲線的直徑AB、左曲線和右曲線。 第三步:計(jì)算左曲線的相對高度,右曲線的相對高度,分別存放在左、右子樹的節(jié)點(diǎn)。左、右曲線的最高點(diǎn)分左、右曲線成4段。 第四步:對于每一段曲線,如果帶有分割前曲線的起點(diǎn),則相對高度放在其左子樹的節(jié)點(diǎn)。否則,存放在其右子樹的節(jié)點(diǎn)。如果相對高度小于某一常數(shù),則終止這段曲線的分割。否則,繼續(xù)分割曲線,轉(zhuǎn)第四步。 任何一條曲線,經(jīng)過上述的曲線提取算法后都會轉(zhuǎn)化為一棵二叉樹。二叉樹的層數(shù)由事前設(shè)定的相對高度閾值const決定。理論上,如果const取無窮小,那么曲線可以轉(zhuǎn)化為一棵無窮大的二叉樹。為了進(jìn)行比較的方便,按照完全二叉樹的次序遍歷節(jié)點(diǎn)。對于空的節(jié)點(diǎn),添補(bǔ)0。 5 實(shí)驗(yàn)及結(jié)果分析(Experiments and results analysis) 5.1 實(shí)驗(yàn)平臺 本實(shí)驗(yàn)基于Android平臺,在Windows 7(64位)操作系統(tǒng)中,利用JDK+Eclipse+Android SDK搭建安卓開發(fā)環(huán)境。 (1)JDK:java程序的編譯環(huán)境,包括java ME(移動版)、java SE(標(biāo)準(zhǔn)版)、javaEE(企業(yè)版)三個版本,沒有jdk,java程序?qū)o法進(jìn)行編譯。本實(shí)驗(yàn)應(yīng)用的是java SE,版本為1.7.0_52。 (2)Eclipse:著名的跨平臺開源集成開發(fā)環(huán)境(IDE),最初主要用來進(jìn)行Java語言開發(fā)(需要先裝jdk),也可通過加入插件使其作為C++、Python、PHP等其他語言的開發(fā)工具(本實(shí)驗(yàn)中Android使用java語言開發(fā))。從2006年起,Eclipse基金會每年都會發(fā)布新版本的Eclipse,本文使用的是Eclipse 4.2。 (3)Android SDK:Android軟件開發(fā)包,主要用于Android開發(fā)包的管理、Android虛擬設(shè)備的管理。要運(yùn)行Android SDK,需先安裝JDK。 5.2 實(shí)驗(yàn)步驟 實(shí)驗(yàn)平臺搭建好后,接下來就開始進(jìn)行實(shí)驗(yàn)。一般情況下,Android軟件可以在電腦上的模擬器中運(yùn)行,也可以在實(shí)體機(jī)中運(yùn)行。但本實(shí)驗(yàn)中,由于涉及多點(diǎn)觸控,而電腦鼠標(biāo)只能輸入單點(diǎn),故本實(shí)驗(yàn)只能用支持多點(diǎn)觸控的Android設(shè)備運(yùn)行。本實(shí)驗(yàn)中用到的是支持多點(diǎn)觸控的Android 2.3.3設(shè)備。 本實(shí)驗(yàn)程序基于Android繪圖功能,設(shè)計(jì)手勢繪制界面,利用Android多點(diǎn)觸控事件的支持,對觸摸坐標(biāo)進(jìn)行記錄,程序流程如圖2所示。 圖2 程序流程 Fig.2 Experimental procedure 程序界面:程序界面主要分為手勢添加和手勢識別。 添加手勢:繪制需加入到手勢庫中的手勢,經(jīng)特征提取后,加入手勢庫。 手勢識別:繪制需檢測的手勢。 算法處理:利用第4部分設(shè)計(jì)的算法對所繪手勢進(jìn)行處理。 進(jìn)行識別:對所要識別的手勢進(jìn)行算法處理后,搜索手勢庫進(jìn)行匹配。 5.3 識別流程 本實(shí)驗(yàn)中,識別分為三步:觸點(diǎn)采集、特征提取、手勢識別。 (1)觸點(diǎn)采集:此過程主要是得到觸點(diǎn)集。本實(shí)驗(yàn)中,利用Androi系統(tǒng)中提供的多點(diǎn)觸摸事件處理函數(shù)onTouchEvent對觸摸事件進(jìn)行監(jiān)測,利用getX()和getY()方法得到觸摸點(diǎn)坐標(biāo)。 (2)特征提取:此過程主要是利用第4部分提出的基于相對高度的曲線特征提取算法對手勢進(jìn)行特征提取,提取后的將相應(yīng)的手勢特征存儲到手勢庫中。 (3)手勢識別:此過程主要是對所繪手勢進(jìn)行特征提到后,與手勢庫中的手勢進(jìn)行匹配,若匹配成功,則輸出相應(yīng)的手勢名稱,否則匹配失敗,程序結(jié)束。 圖3 手勢識別算法流程 Fig.3 The process of gesture recognition algorithm 5.4 結(jié)果分析 程序總界面如圖4所示,此時手勢庫中無任何手勢。點(diǎn)擊“添加手勢”按鈕則進(jìn)入手勢添加界面(圖5),圖6中手勢已經(jīng)加入了手勢庫中,從理論上講,加入到手勢庫中的手勢并無數(shù)量限制。點(diǎn)擊“識別”按鈕,程序則進(jìn)入手勢識別界面(圖7)。 圖4 程序開始界面圖 Fig.4 Beginning gestures 圖5 手勢添加界面圖 Fig.5 Adding gestures 圖6 手勢添加完成圖 Fig.6 Added gestures
圖7 識別手勢繪制
Fig.7 The drawing of recognizing gesture
識別時,將所要進(jìn)行識別的手勢繪制在手勢識別區(qū)域即可,手勢識別結(jié)果如圖8所示。
圖8 手勢識別效果圖
Fig.8 The effect drawing of gesture recognizing
由以上檢測可知,成功檢測了在手勢庫中所增加的五種手勢。
6 結(jié)論(Conclusion)
當(dāng)今社會技術(shù)日新月異,多點(diǎn)觸控技術(shù)越來越受到關(guān)注,傳統(tǒng)的計(jì)算機(jī)設(shè)備正在逐步被新技術(shù)所取代,因此應(yīng)充分發(fā)揮多點(diǎn)觸控技術(shù)以便更好地服務(wù)人類,是當(dāng)前多點(diǎn)觸控發(fā)展趨勢。本文從當(dāng)今觸控技術(shù)最為火暴的平臺之一——android平臺上實(shí)現(xiàn)多點(diǎn)觸控技術(shù)的檢測,為后續(xù)發(fā)展多點(diǎn)觸控技術(shù)的功能提供了一個新的思路。
參考文獻(xiàn)(References)
[1] 遲健男,等.多點(diǎn)觸摸人機(jī)交互技術(shù)綜述[J].智能系統(tǒng)學(xué)報(bào),
2011,01:28-37.
[2] 張鋒,陳碩.多點(diǎn)觸控交互方式的回顧與展望[J].人類工效學(xué),
2010,04:76-78.
[3] 鄒大斌.多點(diǎn)觸控:進(jìn)入人機(jī)交互新時代[N].計(jì)算機(jī)世界,2010-
01-11049.
[4] 王岫晨.多點(diǎn)觸控技術(shù)引領(lǐng)人機(jī)互動新時代[J].集成電路應(yīng)
用,2011,09:32-34.
[5] 趙杰陽.多點(diǎn)觸控手勢識別算法的研究與設(shè)計(jì)[D].北京工業(yè)
大學(xué),2012.
[6] 李春富,李鵬飛.多點(diǎn)觸控移動設(shè)備中的交互設(shè)計(jì)探究[J].藝
術(shù)與設(shè)計(jì)(理論),2011,08:139-141.
[7] 黃國華.基于相對高度的曲線特征提取算法[J].邵陽學(xué)院學(xué)報(bào)
(自然科學(xué)版),2011,01:29-33.
作者簡介:
方成艷(1991-),男,學(xué)士,學(xué)生.研究領(lǐng)域:計(jì)算機(jī)視覺.
孔偉青(1992-),男,學(xué)士,學(xué)生.研究領(lǐng)域:計(jì)算機(jī)視覺.
鄧秀勤(1966-),女,學(xué)士,副教授.研究領(lǐng)域:計(jì)算機(jī)智能,
數(shù)據(jù)挖掘.endprint
圖7 識別手勢繪制
Fig.7 The drawing of recognizing gesture
識別時,將所要進(jìn)行識別的手勢繪制在手勢識別區(qū)域即可,手勢識別結(jié)果如圖8所示。
圖8 手勢識別效果圖
Fig.8 The effect drawing of gesture recognizing
由以上檢測可知,成功檢測了在手勢庫中所增加的五種手勢。
6 結(jié)論(Conclusion)
當(dāng)今社會技術(shù)日新月異,多點(diǎn)觸控技術(shù)越來越受到關(guān)注,傳統(tǒng)的計(jì)算機(jī)設(shè)備正在逐步被新技術(shù)所取代,因此應(yīng)充分發(fā)揮多點(diǎn)觸控技術(shù)以便更好地服務(wù)人類,是當(dāng)前多點(diǎn)觸控發(fā)展趨勢。本文從當(dāng)今觸控技術(shù)最為火暴的平臺之一——android平臺上實(shí)現(xiàn)多點(diǎn)觸控技術(shù)的檢測,為后續(xù)發(fā)展多點(diǎn)觸控技術(shù)的功能提供了一個新的思路。
參考文獻(xiàn)(References)
[1] 遲健男,等.多點(diǎn)觸摸人機(jī)交互技術(shù)綜述[J].智能系統(tǒng)學(xué)報(bào),
2011,01:28-37.
[2] 張鋒,陳碩.多點(diǎn)觸控交互方式的回顧與展望[J].人類工效學(xué),
2010,04:76-78.
[3] 鄒大斌.多點(diǎn)觸控:進(jìn)入人機(jī)交互新時代[N].計(jì)算機(jī)世界,2010-
01-11049.
[4] 王岫晨.多點(diǎn)觸控技術(shù)引領(lǐng)人機(jī)互動新時代[J].集成電路應(yīng)
用,2011,09:32-34.
[5] 趙杰陽.多點(diǎn)觸控手勢識別算法的研究與設(shè)計(jì)[D].北京工業(yè)
大學(xué),2012.
[6] 李春富,李鵬飛.多點(diǎn)觸控移動設(shè)備中的交互設(shè)計(jì)探究[J].藝
術(shù)與設(shè)計(jì)(理論),2011,08:139-141.
[7] 黃國華.基于相對高度的曲線特征提取算法[J].邵陽學(xué)院學(xué)報(bào)
(自然科學(xué)版),2011,01:29-33.
作者簡介:
方成艷(1991-),男,學(xué)士,學(xué)生.研究領(lǐng)域:計(jì)算機(jī)視覺.
孔偉青(1992-),男,學(xué)士,學(xué)生.研究領(lǐng)域:計(jì)算機(jī)視覺.
鄧秀勤(1966-),女,學(xué)士,副教授.研究領(lǐng)域:計(jì)算機(jī)智能,
數(shù)據(jù)挖掘.endprint
圖7 識別手勢繪制
Fig.7 The drawing of recognizing gesture
識別時,將所要進(jìn)行識別的手勢繪制在手勢識別區(qū)域即可,手勢識別結(jié)果如圖8所示。
圖8 手勢識別效果圖
Fig.8 The effect drawing of gesture recognizing
由以上檢測可知,成功檢測了在手勢庫中所增加的五種手勢。
6 結(jié)論(Conclusion)
當(dāng)今社會技術(shù)日新月異,多點(diǎn)觸控技術(shù)越來越受到關(guān)注,傳統(tǒng)的計(jì)算機(jī)設(shè)備正在逐步被新技術(shù)所取代,因此應(yīng)充分發(fā)揮多點(diǎn)觸控技術(shù)以便更好地服務(wù)人類,是當(dāng)前多點(diǎn)觸控發(fā)展趨勢。本文從當(dāng)今觸控技術(shù)最為火暴的平臺之一——android平臺上實(shí)現(xiàn)多點(diǎn)觸控技術(shù)的檢測,為后續(xù)發(fā)展多點(diǎn)觸控技術(shù)的功能提供了一個新的思路。
參考文獻(xiàn)(References)
[1] 遲健男,等.多點(diǎn)觸摸人機(jī)交互技術(shù)綜述[J].智能系統(tǒng)學(xué)報(bào),
2011,01:28-37.
[2] 張鋒,陳碩.多點(diǎn)觸控交互方式的回顧與展望[J].人類工效學(xué),
2010,04:76-78.
[3] 鄒大斌.多點(diǎn)觸控:進(jìn)入人機(jī)交互新時代[N].計(jì)算機(jī)世界,2010-
01-11049.
[4] 王岫晨.多點(diǎn)觸控技術(shù)引領(lǐng)人機(jī)互動新時代[J].集成電路應(yīng)
用,2011,09:32-34.
[5] 趙杰陽.多點(diǎn)觸控手勢識別算法的研究與設(shè)計(jì)[D].北京工業(yè)
大學(xué),2012.
[6] 李春富,李鵬飛.多點(diǎn)觸控移動設(shè)備中的交互設(shè)計(jì)探究[J].藝
術(shù)與設(shè)計(jì)(理論),2011,08:139-141.
[7] 黃國華.基于相對高度的曲線特征提取算法[J].邵陽學(xué)院學(xué)報(bào)
(自然科學(xué)版),2011,01:29-33.
作者簡介:
方成艷(1991-),男,學(xué)士,學(xué)生.研究領(lǐng)域:計(jì)算機(jī)視覺.
孔偉青(1992-),男,學(xué)士,學(xué)生.研究領(lǐng)域:計(jì)算機(jī)視覺.
鄧秀勤(1966-),女,學(xué)士,副教授.研究領(lǐng)域:計(jì)算機(jī)智能,
數(shù)據(jù)挖掘.endprint