多點觸摸
多個手指來控制圖形界面的技術
多點觸摸(MultiTouch)指的是在一個觸屏上能同時接受來自屏幕上兩點或多點觸摸信號的人機交互技術。也稱多重觸控、多點觸控。
多點觸控技術研究始於1982年。2007年1月,蘋果公司推出了第一款採用多點觸控技術的手機iphone。經過幾年來的發展,現在已有多種採用多點觸控技術的產品進入市場,在手機和平板計算機上得到廣泛應用。
多點觸摸技術包括兩個方面,一是同時採集多點信號,二是對每個信號的意義進行判斷,也就是所謂的手勢識別。多點觸控技術,在許多地方取代了鍵盤、滑鼠,使人機交互更簡便、更人性化。
所謂多點觸摸,從字面的意思上不難理解,就是允許用戶同時通過多個手指來控制圖形界面的一種技術。多點觸摸設備是由可觸摸設備(例如:計算機顯示器、手機、平板電腦、牆壁)或者觸摸板組成,通過軟體識別同時發觸摸行為的點。從而實現,在沒有滑鼠、鍵盤等輸入設備的情況下,通過對屏幕的觸摸來實現各種操作,還正在逐漸向專業領域進軍,比如像大屏幕拼接市場。
隨著大屏幕拼接產品的應用領域被不斷地拓寬,許多應用場所,比如像電視台演播室背景牆、機場廣告信息屏、購物中心信息廣告屏、商業樓宇大堂等公共場所的顯示平台都已經成為大屏幕拼接產品的目標市場。而這些用戶和傳統的監控中心的使用需求上有著很大的不同,它要求產品簡單易操作、並且有一定的趣味性。
多點觸摸技術帶來了許多驚人的開創,這不僅僅局限在多點觸摸設備上,還引發了更多相關的設備出現。到2018為止,已經有五項可以幫助愛好者搭建穩定的多點觸摸平台的技術出現,它們分別是:由Jeff Han 教授開創的受抑全內反射多點觸摸技術(FTIR);微軟Surface採用的背面散射光多點觸摸技術(Rear-DI);由Alex Popovich 提出的激光平面多點觸摸技術(LLP);由Nima Motamedi 提出發光二極體平面多點觸摸技術(LED-LP);由Tim Roth 提出的散射光平面多點觸摸技術(DSI)。這五項技術主要基於光學原理和計算機視覺識別,除了這五種主流技術之外,還有一些其它的技術同樣可以搭建多點觸摸設備,包括聲波器、電容、電阻、動作捕捉器、定位器、壓力感應條等。通常情況下,這各種感應器結合起來,就可以搭建一個特別的多點觸摸設備。在這裡,我們將和大家探索這五種多點觸摸技術。
基於光學的多點觸摸技術
基於光學原理(如攝像頭)的多點觸摸技術搭建的設備體積相對較大,但它的可拓展性較強、成本較低以及容易搭建。受抑全內反射多點觸摸技術(FTIR),正面和背面散射光多點觸摸技術(Front and Rear DI),激光平面多點觸摸技術(LLP),發光二極體平面多點觸摸技術(LED-LP),散射光平面多點觸摸技術(DSI),這些都是基於光學原理多點觸摸技術。
每個基於光學原理的多點觸摸技術都包含光學感應器(通常為攝像頭或攝像機)、紅外光源以及通過投影儀或者顯示面板顯示的屏幕。因為有這三個相通點,所以在系統探討各項技術前,需要對這三點有個清晰認識和了解。受抑全內反射多點觸摸技術
JeffHan教授(Han2005)。Han教授的⽅法是源⾃⼀個光學的基本現象,叫全內反射(⼜稱全反射),它講述的是在⼊射⾓⽐的⾓(Getty,KellerandSkove1989,p.799)⼤的情況下,光線經過兩個不同折射率的介質,這個⾓(稱為臨界⾓)基於物質的折射率⽽得到的,可以通過Shell法則以數學⽅式計算出來。當上述情況發⽣時,在物質上就不會產⽣折射,⽽是所有的光線會反射在內部。Han教授通過這個原理把紅外線反射在⼀塊遵守全內反射規則的壓克⼒內部,當⽤戶在壓克⼒表⾯觸摸時,光線就會被⽤戶的接觸部位反/折射(通過⽪膚),在觸摸的地⽅就會將原本反射在內部的紅外線折射回我們在壓克⼒板⾯架設的紅外攝像頭(圖1),通過對應的軟體就可以偵測到我們相對應的信息點。這個原理在我們製作多點觸摸顯⽰設備的時候⾮常的有⽤,當光線的反射被我們破壞在對應的區域,然後折射出來時,架設在下⾯的紅外攝像頭便能夠清晰地讀取到相對的信息點。
散射光照明多點觸摸技術
背面散射光照明多點觸摸技術原理圖
激光平面多點觸摸技術
激光平面多點觸摸技術原理圖
散射光平面照明多點觸摸技術
散射光平面照射多點觸摸技術原理圖
發光二極體平面多點觸摸技術
發光二極體平面多點觸摸原理圖
多點觸摸輸入編程和其他任何形式的編程一樣,不過在多點觸摸編程中,有一套固定的某些協議,作法和標準。通過NUIGroup與其他組織和社團的合作,多點觸摸編程已經有了針對多種編程語言的開發框架,這些語言包括ActionScript3,Python,C,C++,C#以及Java。多點觸摸編程分為兩步:首先,從攝像頭或者其他輸出設備讀取和轉化輸出的觸點信息,傳遞這些原始的觸點信息通過之前制定的協議組合,然後編程語言就可以使⽤⼿勢來讓⼀個應⽤程序配合。TUIO(Tangible User Interface Protocol,可觸摸的用戶界面協議)已經成為追蹤觸點信息的專業標準協議。
觸點追蹤
對象追蹤一直是計算機視覺基礎研究領域的⼀個⽅⾯。它的創作是跟蹤包括能夠準確的反覆識別包含特定對象的⼀系列視頻幀(估算)。一般來說,這是⼀個⾮常困難的問題,因為首先要在所有的幀中發現對象(⽽且往往是在雜亂,封閉,或者是不斷變換的照明條件下),以及讓數據能夠和幀之間以某種方式聯繫起來以便識別我們所需要的對象。很多的問題已經被解決,在追蹤這個問題上最普遍的模式就是“⽣成模式”(GenerativeModel),這是些諸如Kalman粒過濾器等流解決案的基礎。
在大多數的系統中,⼀個完善的背景相減演演算法需要對每幀進⾏預處理,這確保靜態或者背景圖像能夠被忽略掉。對於一些光照不穩定的視頻流,像“⾼斯混合模型”(Gaussian Mixture Model)這樣的⾃適應模型已經能夠比較智能的識別出不均勻的動態背景。把背景過濾掉之後,剩下就是我們需要的前景對象了。我們往往確定這些對象的質⼼,而且這些點會被⼀幀⼀幀被追蹤。追蹤演演算法會根據這些萃取的質⼼估算在下⼀幀觸點的位置。
手勢識別
手勢
手勢2
Python
Python是一種可用於多種類型軟體開發的動態⾯向對象編程語言,它提供了強⼤的與其它語言和⼯具相互協作⽀持,擁有廣泛的標準庫,⽽且你可以在⼏天之內上⼿。很多Python程序員都反映使⽤Python獲得了更⾼的⽣產⼒,更強壯的代碼以及更易維護的特性。
ActionScript3&Flash
在2007年,Adobe收購了Macromedia,新版Flash推出,命名為AdobeFlashCS3。Adobe對ActionScript版本進⾏了全⾯的修訂和增改,推出ActionScript3.0,Flash已經是⽹頁設計師最強⼤的⼯具之⼀,然而,Flash已經不僅僅局限於網路。由於名為AdobeFlex和AdobeAIR的新的編程平台的出現,開發者可以⽤ActionScript3.0去開發跨平台(Cross-Platform)的桌⾯應⽤程序,Flash可以來創作多點觸摸應用,通過計算機視覺技術和多點觸摸感測程序,比如Touchlib,CCV和reacTIVision的協助。
NET/C#
.NET也為編程界⾯(API)提供了新功能和開發⼯具。這些⾰新使得程序設計員可以同時進⾏Windows應⽤軟體和⽹絡應⽤軟體以及元件和服務(webservice)的開發。.NET提供了⼀個新的反射性的且⾯向對象程序設計編程界⾯。.NET設計得⾜夠通⽤化從⽽使許多不同⾼級語⾔都得以被彙集。
從可觸摸的點數上來分,有兩點觸摸(比較適合一個用戶,市場上也把兩點觸摸歸到多點觸摸的行列)、真多點觸摸(適合於多個用戶)。
從設備尺寸上來分,有小尺寸的個人多點觸摸設備,也有大尺寸的適合多人的多點觸摸設備。通常以20英寸作為個人設備和多人設備的分界點,顯然太小的設備多人用起來也不方便。
按照馮·諾依曼的計算機構成原理,一台計算機應由運算器、存儲器、控制器、輸入-輸出設備組成。傳統計算機的輸入設備是鍵盤和滑鼠,輸出設備是顯示器,而多點觸摸計算機與傳統計算機不同之處就在於它的輸入與輸出全都集中到了顯示器上,你在顯示器上輸入指令,同時計算機就將結果反應在顯示器上。在現有技術下,多點觸摸技術所使用的顯示設備主要有液晶顯示器、背投顯示器等。諸如全息顯示器之類的設備還停留在科幻電影和科學家的實驗室里。
很多人以為多點觸摸僅限於放大縮小功能。其實,放大縮小隻是多點觸摸的實際應用樣例之一。有了多點觸摸技術,怎麼應用就可以通過無限想象來無限擴展。程序員可以把多點觸摸應用到很多方面,從一定程度上改變或者創新出更多的操作方式來。典型的應用是,在硬玻璃上彈琴成為現實。如果把你的手機屏幕變成琴鍵,那麼哄哄小女孩還是很有趣的。另一個典型的例子是蘋果手機上的PS模擬器,通過多點觸摸技術,實現了同時進行方向鍵和其他按鈕的組合輸入。