《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 一種基于球形顯示的多點觸摸系統(tǒng)
一種基于球形顯示的多點觸摸系統(tǒng)
來源:電子技術(shù)應(yīng)用2013年第7期
王吉林1, 謝 冉1, 魏 陽1, 趙 力2
1. 鹽城工學(xué)院 信息工程學(xué)院, 江蘇 鹽城 224051; 2. 東南大學(xué) 信息科學(xué)與工程學(xué)院,江蘇 南京210096
摘要: 設(shè)計并實現(xiàn)了一個基于球形顯示的多點觸摸系統(tǒng),分別從硬件搭建和軟件實現(xiàn)兩方面討論了系統(tǒng)的具體實現(xiàn)過程,通過對系統(tǒng)進行的測試和驗證, 顯示了多點觸摸系統(tǒng)帶來的交互性和便捷性。
中圖分類號: TP311
文獻標(biāo)識碼: A
文章編號: 0258-7998(2013)07-0121-03
A multi-touch system based on spherical display
Wang Jilin1, Xie Ran1, Wei Yang1, Zhao Li2
1. Yancheng Institute of Technology, College of Information Engineering, Yancheng,224051,China; 2 College of Information Science and Engineering, Southeast University, Nanjing 210096, China
Abstract: A multi-touch system based on the spherical display is designed and implemented. The hardware structure and software implement have been introduced.After some system testing and validation, this multi-touch system has shown the interactivity and convenience.
Key words : multi-touch; spherical display; contact tracking; gesture recognition

    球形顯示器[1]是一款新型的球體屏幕演示設(shè)備,采用球體背投屏幕替代平面的背投屏幕,特殊光學(xué)鏡頭和投影儀置于球體的底部,將普通的平面影像進行特殊的變換,投射到球形屏幕上,形成一個內(nèi)投的球體影像,使球幕成為一個炫目的360°屏幕。高清的影像配上多點觸摸互動功能,給人以全新的視覺體驗和精神享受。相比于平面顯示,球形顯示觸摸系統(tǒng)具有360°視角、非可見半球、影像隨位置與高度變化、有限顯示無邊界及大地坐標(biāo)系等特點。基于球形顯示的互動系統(tǒng)是一項嶄新的多點觸摸應(yīng)用,它能充分發(fā)揮球形顯示器的優(yōu)點,實現(xiàn)用戶與球幕之間360°全方位豐富多彩的互動,帶來全新有趣的交互體驗。對基于球形顯示多點觸摸系統(tǒng)的研究具有重要的實際意義和廣泛的應(yīng)用價值。

1 系統(tǒng)構(gòu)建
1.1 系統(tǒng)結(jié)構(gòu)

    一個多點觸摸系統(tǒng)主要由顯示屏、攝像頭、投影儀、紅外燈和計算機組成,利用受抑全內(nèi)反射多點觸摸技術(shù)(FTIR)開發(fā)基于球形顯示的多點觸摸系統(tǒng)。顯示屏選用觸摸球幕,由于球幕顯示的特殊性,需要一個特殊的球幕鏡頭對平面影像做相應(yīng)變換,另外還需要一個反射鏡用來通過可見光線反射紅外光。
     本系統(tǒng)選用直徑為70 cm的球幕,球幕下面有一個開口,紅外光線經(jīng)過開口進入球幕。選擇將2個紅外燈(波長780 nm、功率200 mw的圓形紅外燈)安裝在觸摸球幕下方的開口邊緣的內(nèi)側(cè),使紅外光線能均勻地照射到觸摸球幕上。紅外攝像頭采用感光效果較好的CCD攝像頭,由于采集的是紅外光,需要安裝一個780 nm濾光片濾除可見光,攝像頭安裝在觸摸球幕下方的開口靠中間的位置,使得攝像頭能拍到整個球幕。反射鏡安裝在球幕鏡頭里面,目的是為了增加投影儀的投射距離。球幕鏡頭對應(yīng)設(shè)置有反射鏡片的反射光通路和透射光通路,反射光通路正對紅外攝像頭,透射光通路位于投影儀的投射方向上,反射鏡能通過其他光線反射紅外光。球幕鏡頭采用寬角度的魚眼鏡頭,安裝在觸摸球幕的正下方,魚眼鏡頭的作用是將平面影像做相應(yīng)的變形,從而能在三維球幕上平滑地顯示出來。投影儀的選擇主要考慮亮度、投影距離及分辨率,本系統(tǒng)選用1 024×768分辨率、3 000標(biāo)準(zhǔn)光亮度的NEC NP63+投影儀。采用頻率為3.3 GHz的Intel 酷睿i3系列處理器,4 GB內(nèi)存和Windows XP sp2操作系統(tǒng)的主機來處理多點觸摸系統(tǒng)的軟件。
1.2 安裝和調(diào)試
    根據(jù)多點觸摸系統(tǒng)的硬件結(jié)構(gòu)進行安裝和調(diào)試,攝像頭擺放位置盡量靠近球幕鏡頭,并且垂直朝上,安裝后需保持固定,在使用中不能出現(xiàn)移動或偏移等現(xiàn)象。2個紅外燈安裝在底盤固定的位置即可,投影機和主機固定在底盤的下方。
    系統(tǒng)的調(diào)試主要分為測試電源和紅外燈、調(diào)節(jié)投影屏幕、調(diào)整紅外攝像頭的焦距和捕捉范圍。接上電源后,紅外燈需一直保持常亮狀態(tài),調(diào)節(jié)投影儀可使球幕成像清晰,攝像頭要求采集到的畫面完整且在中間成像。
2 軟件實現(xiàn)及互動應(yīng)用
    系統(tǒng)的硬件搭建完成后,需要完成軟件部分的實現(xiàn)。軟件部分包括觸摸點跟蹤模塊、手勢識別模塊和互動應(yīng)用程序。在具體實現(xiàn)中,需要修改坐標(biāo)系統(tǒng)使其適用于球形顯示并改進相應(yīng)的算法提高運算速度。
2.1 球幕坐標(biāo)系統(tǒng)
    球幕上顯示的內(nèi)容是二維輸入圖片經(jīng)過投影變換得到的,映射關(guān)系如圖1所示。二維圖片的中心位置映射到球幕的頂點(北極),圖中任意一點與中心點之間的距離轉(zhuǎn)換為球幕上距離頂點的維度跨度值,球幕上顯示的內(nèi)容為以中心點為圓心的內(nèi)切圓,圖片的四角不會顯示出來,最外圍一圈(圓周)則壓縮成球幕的底點(南極)。

2.2 觸點跟蹤模塊
    觸摸點跟蹤的作用是將攝像頭采集到的原始圖像信息,經(jīng)過相應(yīng)處理得到觸點信息,并經(jīng)TUIO通信協(xié)議發(fā)送給手勢識別模塊。目前,國外有很多開源觸點跟蹤軟件,如Touchlib和CCV(Community Core Vision)[3]等,采用計算機圖像處理庫OpenCV直接處理圖像和視頻流,從而能夠非常準(zhǔn)確地檢測到觸摸點信息,這些信息最后通過TUIO協(xié)議發(fā)送。本系統(tǒng)使用CCV進行觸點跟蹤,由于CCV基于平面顯示屏,因此需要對CCV進行相應(yīng)地修改,使其適用于球形顯示屏。
    CCV是一個開源觸點跟蹤軟件。它需要一個攝像頭或者視頻來提供數(shù)據(jù)輸入。經(jīng)過數(shù)據(jù)處理之后,輸出追蹤數(shù)據(jù)(如觸點坐標(biāo)和觸點大小等)。CCV能夠與各種網(wǎng)絡(luò)攝像頭或視頻采集設(shè)備協(xié)同工作,通過支持TUIO/OSC/XML的應(yīng)用程序進行數(shù)據(jù)連接,并且支持包括FTIR、DI、DSI、LLP、LED-LP等在內(nèi)的多種基于光學(xué)的多點觸摸硬件方案。
    當(dāng)手指觸摸屏幕時,CCV軟件能將觸點信息檢測出來,并在屏幕的相應(yīng)位置顯示白點。但通常情況下,白點的位置與實際觸摸的位置不一致,因此必須對坐標(biāo)位置進行校正,這也是CCV軟件運行非常重要的一個步驟。

    使用三角網(wǎng)格對坐標(biāo)進行校正,將兩幅圖像劃分成相同個數(shù)的三角形網(wǎng)格,對每一個三角形進行坐標(biāo)映射。當(dāng)手指觸摸時,通過判斷觸摸點所落在的三角形內(nèi),達到最終校正目的。CCV軟件標(biāo)準(zhǔn)校正是在屏幕上生成9×10共90個校準(zhǔn)點,呈矩形分布。從左上角的第一個校準(zhǔn)點開始從左至右、從上至下開始校正。測試中發(fā)現(xiàn)將校準(zhǔn)點設(shè)成矩形,分布在球形顯示屏上的校準(zhǔn)效果不理想,必須修改CCV軟件,將其校準(zhǔn)點成圓形分布。經(jīng)過校正后,CCV軟件開始準(zhǔn)確地對觸摸點進行跟蹤,并點擊平滑處理、高通濾波、觸點增強等按鈕對觸點進行處理,最終能正確清晰地得到觸點信息。
2.3 手勢識別模塊
    當(dāng)觸點信息被準(zhǔn)確地追蹤后,通過手勢識別程序便可將輸入觸點軌跡解釋為相應(yīng)的手勢命令,再傳遞給應(yīng)用程序?qū)崿F(xiàn)最終交互的功能。本文采用C#語言編寫手勢識別程序,手勢識別程序?qū)⒁詣討B(tài)鏈接庫形式為應(yīng)用程序提供交互功能。程序框架中交互元素由IGestureListener類定義,觸點信息CursorPoint經(jīng)過軌跡合成為Trace,再對軌跡分組成Group,Group即為待識別的手勢。Group手勢信息通過GroupGRManager類進行手勢事件訂閱,然后通過GestureRecognizer類進行手勢識別,識別成功后,將以事件的形式傳遞給應(yīng)用程序。
    由于觸摸球幕坐標(biāo)體系的特殊性,標(biāo)準(zhǔn)的手勢(如移動、旋轉(zhuǎn)、縮放等)需要重新定義。

2.3.3 縮放
    觸摸球面上的縮放手勢和平面上類似,都可以根據(jù)兩點之間距離的變化來表示。但是由于球形顯示的有限性,基于球形顯示的縮放手勢的放大系數(shù)必須限制在一定范圍內(nèi),超過一定的值可能會導(dǎo)致部分影像無法顯示。
2.3.4互動應(yīng)用
    觸點跟蹤模塊和手勢識別模塊完成后,就可以開發(fā)應(yīng)用程序驗證系統(tǒng)的交互功能。目前比較流行的開發(fā)語言有C/C++、C#、Flash 、Python等,一些比較成熟的多點觸摸應(yīng)用程序都是使用C#開發(fā)。不同的開發(fā)語言有各自的優(yōu)勢,用戶可以根據(jù)自己的需要和實際情況自行選擇開發(fā)語言,本文使用C#開發(fā)一些互動應(yīng)用程序,以展示該系統(tǒng)多觸點手勢交互的能力,進而從不同方面驗證了多點觸摸交互系統(tǒng)的特性,例如圖片查看器。傳統(tǒng)的圖片查看器都是通過鼠標(biāo)和鍵盤進行操作,但旋轉(zhuǎn)和縮放操作會比較麻煩,這里利用多點觸摸的優(yōu)勢,使用C#開發(fā)了可支持移動、縮放和旋轉(zhuǎn)操作的基于球形顯示的多點觸摸圖片查看器。通過該程序用戶能夠用多個手指進行圖片操作,驗證了標(biāo)準(zhǔn)手勢(如移動、旋轉(zhuǎn)和縮放等)在球形顯示器上的手勢識別功能。
    本文介紹了一種基于球形顯示的多點觸摸系統(tǒng),分別從硬件搭建和軟件實現(xiàn)兩方面闡述了系統(tǒng)的具體實現(xiàn)過程。在軟件實現(xiàn)過程中,針對觸摸球幕的特殊性建立了適合球形顯示的地理坐標(biāo)系統(tǒng),然后對觸點跟蹤軟件CCV進行了修改,使其適用于球形顯示。完成了觸點跟蹤和手勢識別模塊,選用Flash和C#開發(fā)應(yīng)用程序進行了多點觸摸互動應(yīng)用,顯示出多點觸摸系統(tǒng)帶來的交互性和便捷性。
參考文獻
[1] BENKO H, WILSON A D, BALAKRISHNAN R. Sphere: multi-touch interactions on a spherical display[J]. UIST,2008,2(3):67-69.
[2] KETTNER S, MADDEN C, ZIEGLER R. Direct rotational  interaction with a spherical projection creativity and cognition symposium on interaction[C]. Systems, Practice and Theory,2004.
[3] KALTENBRUNNER M, BENCINA R. CCV: a computer  vision framework for table-based tangible interaction[J]. In Proceedings of the 1st International Conference on Tangible  and Embedded Interaction, ACM, 2007,7(5):74.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。