作者:陳大煒 康佳集團研究院 時間:2009-09-08 來源:電子產品世界 引言 與傳統的鼠標、鍵盤的輸入方式相比,多點觸摸技術是一種更加自然和諧的人機交互方式。這種技術最突出的特點是用戶可以不借助任何外部設備直接在顯示屏幕上進行操作,是一種真正的所見即所得的非常自然的人機交互方式,多個用戶可以同時與計算機進行交互,而且各個用戶之間并不相互影響,系統甚至還可以識別用戶的觸摸姿態和手勢。然而,在傳統的基于觸摸屏的觸摸控制解決方案中,大多都只是考慮用手指取代鼠標的作用,即一般只考慮單點觸控的應用情況。另一方面,無論是目前常見的電阻式還是電容式觸摸屏方案,大都應用于面積較小的屏幕或者觸摸板上,對于40寸以上大尺寸觸摸控制設備上就鮮見傳統觸摸屏的應用了,這其中不乏制作成本和制作工藝上的考慮。 多點觸摸基本原理 傳統觸摸屏的本質是傳感器,它由觸摸檢測部件和觸摸屏控制器組成,常見的傳感器包括電阻式和電容式觸摸屏。而基于光學感應的多點觸摸系統是用戶通過觸摸投影屏幕表面,影響光學感應成像設備的輸入結果,成像設備將成像結果輸入軟件系統進行處理,一般經過3個步驟,首先是對原始輸入圖像進行包括矯正、濾波等預處理,然后通過光斑跟蹤引擎對觸點進行跟蹤,并將其解釋為各種輸入狀態,最后將輸入位置、狀態等信息發送給上層應用程序。應用程序處理結果最終被投射到顯示屏幕表面上,從而與用戶產生真正的所見即所得的交互效果。其實現框架如圖1所示。 根據不同的光學感應原理,目前常見的多點觸摸實現方式包括FTIR(受抑全內反射)、DI、LLP等技術。 基于FTIR的多點觸摸實現原理如圖2所示。 紅外LED(IR LED)發射紅外線進入諸如亞克力板(Acrylic),當亞克力面板的厚度大于8mm時,光線會發生在亞克力內不停反射,產生全內反射現象,當手指(或者其他材質如硅膠等有一定韌性和反射性的材料)碰到亞克力表面時,全內反射被破壞,光線被手指反射出來,此時,亞克力下方的紅外攝像頭(IR Camera)捕捉到手指反射的光斑,攝像頭捕捉到的光斑會送到計算機進行處理,最終形成輸入點。 這種技術的優缺點如表1所示。DI方式原理比較簡單,通過IR光源照射投影屏幕,形成均勻的照射效果,當有手指觸摸屏幕表面時,IR光線會被反射,從而在成像設備上形成光斑;贒I技術的多點觸摸實現如圖3所示。 DI技術的優缺點如表2所示。LLP技術的基本原理是通過紅外激光發射裝置在投影屏幕表面上方形成一層紅外激光表面,當手指觸摸到屏幕上時,激光被散射到成像設備上從而形成光斑;贚LP技術的多點觸摸實現原理如圖4所示。 LLP技術同樣也有明顯的優缺點,如表3所示。 系統實現硬件構成 目前的多點觸摸硬件常見實現方法都有各自的優缺點,特別是對于大尺寸多點觸摸控制系統而言更是明顯。我們的應用目標是要在一臺70寸的高清LCOS背投電視上實現多點觸摸控制效果,受到電視機本身結構和背投屏幕材質的光學特性的限制,無論是直接使用FTIR技術、DI技術還是LLP技術都不能取得理想的光學感應效果。 鑒于此,我們使用了一種特殊的LLP的方式來進行硬件設置,即通過具備主動發射紅外光的觸筆來模擬手指的直接觸摸過程。具體來說:通過觸筆在背投屏幕上的觸壓發射紅外光信號,光信號穿透背投屏幕后經過背投內部的大反射鏡作鏡面反射;鏡頭板接收鏡面反射的光信號,再傳遞給計算機;觸筆產生的信號會在屏幕上形成一個大的光斑,系統采用逐行掃描的方式對信號進行采樣(30幀/秒),取光斑的最亮值,并記錄該點在CMOS上成像的坐標;計算機對感應到的光信號進行處理,形成一套坐標系統,并將處理后的數據通過特定的數據格式傳遞給上層應用程序;從而達到跟蹤觸筆的運動,模擬出多點觸摸的效果。圖5展現了實際起作用的光路示意圖。 多點應用軟件框架 我們實現的多點觸摸控制上層應用是基于Touchlib構建的,Touchlib是一個開源的用于創建多點觸摸交互界面的庫,它能夠處理紅外線光斑跟蹤,并向上層應用程序發送諸如按下、移動、釋放等事件,使用該庫的多點觸摸應用基本框架如圖6所示。 目前,Touchlib庫使用TUIO協議(Table-Top User Interfaces Objects)發送事件,這使得Touchlib可以勝任于包括Adobe Flash在內的任何支持此協議的應用程序。TUIO是一套簡單且通用的,特別為滿足可感知桌面用戶界面需要所設計的協議。因為TUIO協議本身是基于 OSC(OpenSound Control)的,所以TUIO協議可以看做是OSC數據的一種標準化實現,可以用于所有支持該協議的設備上。 TUIO協議定義了兩類主要的消息,即set消息和alive消息。其中,set消息用于目標對象特定狀態,如位置、姿態或其他任何可以識別狀態的通訊;alive消息則用于通過系列的sessionID來標識當前目標對象。TUIO使用下面的格式來進行數據通訊: /tuio/[profileName] set sessionID [parameterList] /tuio/[profileName] alive [list of active sessionIDs] /tuio/[profileName] fseq int32 其中的profileName代表定義好的常用可感知用戶界面配置,該配置定義了set消息中目標對象的狀態數據格式,比如常用的2D Profile: /tuio/2Dobj set s i x y a X Y A m r /tuio/2Dcur set s x y X Y m 為了更好地展現多點觸控的視覺效果,我們在上層應用中選擇了基于Flash的實現方式。需要指出的是,TUIO原生是通過UDP進行數據傳送的,而Flash本身只能通過TCP鏈接接收數據,因此還必需通過Flosc網關將OSC數據轉換為為Flash可以讀取的XMLSocket數據。上述流程如圖7所示。 通過轉換,上層的Flash應用程序就可以接收Touchlib發送的觸點位置、編號、觸控事件等各種數據,進而做出適當的響應,從而與用戶產生多點觸摸控制交互。綜合上文描述的硬件設置,我們以一臺70寸LCOS高清背投電視為基礎,基于光學感應開發出一套使用主動紅外觸摸筆交互的多點觸摸控制應用系統,已經成功應用于某風景區電子交互導覽的實際應用中,為大尺寸多點觸摸控制系統的研究和應用打下了一定的基礎。 結語 本文介紹了多點觸摸控制系統的基本原理,展示并分析了常見的基于光學感應的多點觸摸實現方案的優缺點,深入研究了基于Touchlib的多點應用系統框架,及其與上層應用程序之間的數據傳送協議和方法,并給出了一種基于70寸高清背投電視的大尺寸光學感應多點觸控應用系統解決方案。當然,本文的初步結果是基于主動紅外觸摸筆的形式,人與機器之間還是借助了外部設備,并不是直接的肢體觸摸,而且還不能支持手勢識別。 可以預見,多點觸摸人機界面及其相關技術有著非常廣泛的應用前景,特別是大尺寸、低成本的多點觸摸控制系統是值得廣大業界同仁深入研究的。 參考文獻: [1] Kaltenbrunner M, Bovermann T, Bencina R, et al. TUIO - A Protocol for Table Based Tangible User Interfaces[C]. Proceedings of the 6th International Workshop on Gesture in Human-Computer Interaction and Simulation (GW 2005), Vannes, France, 2005 [2] Kaltenbrunner M, Bencina R. reacTIVision: A Computer-Vision Framework for Table-Based Tangible Interaction[C]. Proceedings of the first international conference on "Tangible and Embedded Interaction" (TEI07). Baton Rouge, Louisiana, 2007 [3] Wright M, Freed A, Momeni A. OpenSound Control: State of the Art 2003[C]. Proceedings of the 3rd Conference on New Instruments for Musical Expression (NIME 03), Montreal, Canada, 2003 [4] NUI Group Community[R/OL]. http://nuigroup.com/ [5] OpenCV[R/OL]. http://sourceforge.net/projects/opencvlibrary/ |