国产日韩在线播放,欧美日韩中文字幕在线,大蕉香蕉国产在线视频,丝袜情趣在线资源二区

當前位置:首頁 > 觸控技術 > 多點觸摸技術
多點觸摸技術

軟件和應用程序2

       2.3 ⼿勢識別
       NUI 的挑戰(zhàn):“Simple is hard.Easy is harder.Invisible is hardest.”——Jean-LouisGassée
       2.3.1 ⼿勢的圖形⽤戶界⾯
       未來的⼈機交互將是⾃然⽤戶界⾯(Natural User Interface),當然這個界⾯還很模糊。隨著便宜⼜可靠的多點觸摸硬件的不斷發(fā)展,我們相信,在不久的未來,多點觸摸設備不僅僅是在實驗室⾥了,⽽是遍布在學習室,繪圖室甚⾄是廚房⾥,⽆限可能。
       ⿏標和圖形⽤戶界⾯⼀直是電腦可以在社會上⼤規(guī)模普及的重要原因。然⽽,傳統(tǒng)的⼈機交互是間接的和需要識別的⼀種⽅法。建⽴在多點觸摸上的⼈機⾃然交互是直觀的,流暢的和令⼈回味的。基于⼿勢的GUI 界⾯將進⼀步使計算機成為我們⽣活中的不可或缺的⼀部分。
       從⼴義上說,“⼿勢的概念涵蓋很⼴泛,只要是為了讓交流的⽬的更明確,更引⼊矚⽬⽽采⽤的⼀切⾝體動作,都可以稱作⼿勢。”通過⼿勢交流是⼈類發(fā)展歷程中最古⽼的形式,當然,這超出了我們的討論范圍。GUI 系統(tǒng)是利⽤⼈們以往的閱歷和認知來熟悉應⽤程序,⽽NUI 的界⾯充分利⽤了⼈們的設想和合乎情理的結論從⽽提出了⼀個直觀的、基于⼿勢的內(nèi)容界⾯。這樣⼀個基于⼿勢的界⾯是社會化,任務協(xié)作,以及藝術性觸摸的最佳候選⽅案。這個界⾯是符合⾃然規(guī)律的、更直觀的⽤戶界⾯。
       然⽽,現(xiàn)在多點觸摸硬件上所使⽤的⼿勢是很少的,仍然存在很⼤的發(fā)展空間,當然也少不了繼續(xù)探尋⼀些⼿勢的可應⽤性。多點觸摸界⾯需要⼀個全新的⽅案,⽽不是⽤GUI 或者WIMP 的⽅法來實現(xiàn)它。⼿勢的類型決定了不管是多觸摸⽤戶還是單觸摸多⽤戶都能進⾏互動。我們將討論需要的新⼿勢,發(fā)展⼿勢識別模塊和⽀持框架能夠充分利⽤多點觸摸設備的潛⼒,⽀持可定制開發(fā)和易于使⽤的復雜的多點觸摸應⽤。
       2.3.2 ⼿勢Widgets
       NUI 的多點觸摸⽅案提供了⼀套強⼤的⼿勢界⾯平臺,⽽且是基于對象的(⽽不是WIMP),從⽽消除了現(xiàn)實世界與應⽤程序之間的抽象化。界⾯的⽬的在于讓⼈們能夠直接操縱、更好的沉浸式體驗和容納界⾯上的低精度操作。流⾏的⼿勢諸如⽤兩個⼿指將圖⽚縮放、旋轉,這被稱之為“操控⼿勢”,也是⾃然⼿勢的⼀個很好的例⼦。

圖1:多點觸摸程序中的⼿勢范例
圖1:多點觸摸程序中的⼿勢范例
 

       新類型的⼿勢widgets[圖2]對對象的直接操控要有⼀個全⾯的概念(在NUI的概念中,⼀切都是對象),有⼀個流暢且具有喚起性(evocative)的環(huán)境,不僅僅是模擬⿏標。

圖2
圖2
 

       Gesture Widgets 應該具有創(chuàng)造性思維,能夠存儲⽤戶的反饋并進⾏處理。那么這些Gesture Widgets 就可以被擴展來設計開發(fā)更復雜的應⽤,它們還應該⽀持⾃定義⼿勢。
       2.3.3 ⼿勢識別
       ⼿勢識別研究的主要⽬的是建⽴⼀個能夠識別⼈的特定的⼿勢然后發(fā)送這些信息或者直接控制設備的系統(tǒng)。為了確保能夠⽐較準確的識別⼿勢和呈現(xiàn)⼀個直觀的界⾯,在這個系統(tǒng)模型上會做⼀些限制。多點觸摸設備應該提供⼀個以上的⽤戶獨⽴⼯作或者協(xié)同⼯作的能⼒,然后讓多點觸摸應⽤和多種多點觸摸設置模式在⼀起⼯作。

圖3:⼿勢⽰例
圖3:⼿勢⽰例
 

       ⼿勢(Gesture)⼀詞被定義為起點和終點在⼀個范圍內(nèi),⽽且在兩點之間有動作。在多點觸摸輸⼊的時候,系統(tǒng)應該能夠識別在空間和時間內(nèi)有意義的⼿勢。⼿勢識別程序可分為三個漸進的過程。
       檢測意圖:⼿勢僅需要在⽤戶操控應⽤程序窗⼝的時候解析,X 延展輸⼊協(xié)議以及即將到來的X12 會通過X 服務器來擔當繼續(xù)地轉述觸摸事件的責任,通過軟件的執(zhí)⾏正確地反饋給應⽤界⾯。
       ⼿勢區(qū)分:在同⼀個應⽤程序操作觸摸事件的時候會有同樣的⼀套動作,因此,觸摸事件需要基于對象意向情況下被重新定義,這些被重新定義的數(shù)據(jù)會被發(fā)送給⼿勢識別模塊。
       ⼿勢分類:⼿勢識別模塊會將被定義的數(shù)據(jù)映射到相對應的命令中,這會有各種⼿勢識別能夠⽤到,可以是單獨的或者像Markov Models, Artifcial NeuralNetworks, Finite State Machine 等那樣整合起來的。
       其中最重要的技術是隱形馬爾科夫模型(Hidden Markov Models,HMM)。它是根據(jù)歷史數(shù)據(jù),預測等時間間隔點上的各類對象分布狀況。此⽅法的基本思想是根據(jù)過去對象變動的規(guī)律,推測未來對象變動的趨勢。
       ⼀個仿真的神經(jīng)⽹絡(artificial neural network,ANN),通常只叫做NN(neuralnetwork),它是⼀個建⽴在⽣物神經(jīng)⽹絡理論上的計算機模型[圖4],它在多變的環(huán)境中⾮常靈活。新的⽅法可以同時使⽤HMM 和較為常見的ANN 來識別對象。
       ⼿勢識別模塊還應提供聯(lián)機和脫機識別功能,以及shot 和progressive 的⼿勢。依照現(xiàn)在的觀點,可以表⽰為:

圖4:在離線模式下,觸點追蹤和⼿勢識別的框架
圖4:在離線模式下,觸點追蹤和⼿勢識別的框架
 

       從客戶端架構分離的⼿勢識別模塊本⾝就可以構成MVC 架構,這樣有助于稍后講到的語⾳識別模塊和其它的⼿勢識別模塊以適當?shù)男问接成涞浇?#12207;控制器,然后更新視圖和模型,使之成為更強⼤的界⾯。
       2.3.4 開發(fā)框架
       現(xiàn)在有⼀些框架已經(jīng)發(fā)布了,它們正在制定幫助多點觸摸應⽤發(fā)展的觸摸事件界⾯管理⽅式。然⽽,現(xiàn)在設備輸⼊管理的⽅式仍然是抽象的,觸摸事件通過TUIO 發(fā)送(TUIO 是不考慮底層硬件的)。⽽⼿勢識別能真正地挖掘多點觸摸界⾯的潛⼒,這也是客戶端的任務。現(xiàn)在⼀些通常的⼿勢,特別是那些操控圖⽚的⼿勢已經(jīng)出現(xiàn)了。這些框架不是側重于⼿勢界⾯,它們更側重于發(fā)展多點觸摸環(huán)境的GUI 和WIMP 的標準接⼝。
       ⼿勢和⼿勢識別模塊隨著NUI 界⾯的推出已經(jīng)有了長⾜的發(fā)展。⼀些重要的框架有:
       Sparsh-UI
       Sparsh-UI 是⼀個發(fā)布在LGPL 許可證下的多點觸摸⼿勢識別框架,貌似也是第⼀個關于⼿勢識別的框架。它可以連接各種硬件設備,并且可以跨平臺使⽤,同時⽀持不同的編程語⾔和UI 框架。觸摸信息從連接裝置捕獲之后會進⾏⼿勢的處理和識別,每⼀個在客戶端的可視化組件都可以被“聯(lián)想”成⼀組特定的⼿勢,然后試圖去識別它。新的⼿勢和識別算法可以添加到包中設為默認。
       Gesture Definition Markup Language
       GDML 是基于XML 的⼀種⽤來說明在輸⼊界⾯上如何建⽴清晰的⼿勢事件的標記語⾔。通過XML 來描述⼿勢的狀態(tài),同時⽀持在指定的基礎上創(chuàng)造新的⼿勢,這也就是說,⼿勢引擎⽀持⾃定義的⼿勢。
       這個項⽬設想成兩部分:
       描述⼀個標準的⼿勢庫(Gesturelib)來滿⾜⼤部分應⽤的需要。
       類庫代碼⽀持已經(jīng)既定的⼿勢,并且可以將⼿勢事件發(fā)送給應⽤層。
       Grafiti
       Grafiti 是⼀個建⽴在TUIO 客戶端上的C#框架,可以⽤來管理桌上界⾯多點觸摸的交互⾏為,也⽀持⼀些既定的有形物體的觸摸。這個項⽬的⽬的是⽀持使⽤第三⽅模塊來加強(專業(yè))⼿勢識別算法。當然,⼀些基本的⼿勢已經(jīng)包含在⾥⾯了。
       NUIFrame
       NUIFrame 是⼀個基于上述討論模式的C++框架(⽬前正在開發(fā)中)。它提供了⼀個單獨的⼿勢識別模塊,除了處理⼀連串觸摸事件之外,NUIFrame 也提供了客戶端程序。這就可以確保不同的對象在使⽤相同⼿勢的時候,可以根據(jù)背景做出不同的運算。它還將⽀持基于⽤戶特定的規(guī)格來⾃定義⼿勢。這套⼿勢⼯具⽀持圖形化的⾃動調(diào)試所⽣成的⼿勢。
       AME Patterns Library
       AME Patterns Library 是⼀個新的C++模式識別庫,⽬前的重點是實時⼿勢識別(real-time gesture recognition)。它使⽤基于概念的程序設計來表達通⽤的⼿勢識別算法。這個庫最近作為AMELiA (the Arts, Media and Engineering LibraryAssortment,⼀個開源的庫集)的⼀部分發(fā)布在了GNU 通⽤公共許可證下。它同時實現(xiàn)了兩個多點觸摸識別的隱形馬爾科夫模型,同時減少了⼀些參數(shù)模型,簡化需求條件,改進了運⾏時間性能,同時保持了良好的識別效果。
       這⾥也有⼿勢識別軟件在準確性和實⽤性上存在的挑戰(zhàn):
       ⼿勢識別中的圖形噪聲
       不同的⼈在同⼀⼿勢上存在差異
       在給定的區(qū)域⾥找到普遍性的⼿勢⽽不是去繪制難以記憶的⼿勢
       包容⼿勢的可變性和復制性
       慎重考慮與GUI 系統(tǒng)相⽐有沖突的地⽅
       Distinguishing intentional gestures from unintentional postural adjustmentsknown as the gesture saliency problem.
       懸空⼿臂式操作(gorilla arm):⼈類并不習慣于在操控⾏為的時候將⼿舉在前⾯,在通過⼀段時間的操控后,⼿臂回變得酸痛、局促、浮腫等,就像⼀只⼤猩猩⼀樣在觸摸屏上操作著。盡管短時間的操控沒有什么問題,但從1980 年早期開始將垂直式觸摸屏作為主流輸⼊技術,卻阻礙了發(fā)展。
       可以進⼀步改善NUI 界⾯,⽐如在⼿勢識別模塊上加⼊壓⼒感應,語⾳輸⼊,⾯部識別等。


相關文章
精彩評論:
0  相關評論