文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2013)07-0121-03
球形顯示器[1]是一款新型的球體屏幕演示設(shè)備,采用球體背投屏幕替代平面的背投屏幕,特殊光學(xué)鏡頭和投影儀置于球體的底部,將普通的平面影像進(jìn)行特殊的變換,投射到球形屏幕上,形成一個(gè)內(nèi)投的球體影像,使球幕成為一個(gè)炫目的360°屏幕。高清的影像配上多點(diǎn)觸摸互動(dòng)功能,給人以全新的視覺體驗(yàn)和精神享受。相比于平面顯示,球形顯示觸摸系統(tǒng)具有360°視角、非可見半球、影像隨位置與高度變化、有限顯示無邊界及大地坐標(biāo)系等特點(diǎn)?;谇蛐物@示的互動(dòng)系統(tǒng)是一項(xiàng)嶄新的多點(diǎn)觸摸應(yīng)用,它能充分發(fā)揮球形顯示器的優(yōu)點(diǎn),實(shí)現(xiàn)用戶與球幕之間360°全方位豐富多彩的互動(dòng),帶來全新有趣的交互體驗(yàn)。對(duì)基于球形顯示多點(diǎn)觸摸系統(tǒng)的研究具有重要的實(shí)際意義和廣泛的應(yīng)用價(jià)值。
1 系統(tǒng)構(gòu)建
1.1 系統(tǒng)結(jié)構(gòu)
一個(gè)多點(diǎn)觸摸系統(tǒng)主要由顯示屏、攝像頭、投影儀、紅外燈和計(jì)算機(jī)組成,利用受抑全內(nèi)反射多點(diǎn)觸摸技術(shù)(FTIR)開發(fā)基于球形顯示的多點(diǎn)觸摸系統(tǒng)。顯示屏選用觸摸球幕,由于球幕顯示的特殊性,需要一個(gè)特殊的球幕鏡頭對(duì)平面影像做相應(yīng)變換,另外還需要一個(gè)反射鏡用來通過可見光線反射紅外光。
本系統(tǒng)選用直徑為70 cm的球幕,球幕下面有一個(gè)開口,紅外光線經(jīng)過開口進(jìn)入球幕。選擇將2個(gè)紅外燈(波長(zhǎng)780 nm、功率200 mw的圓形紅外燈)安裝在觸摸球幕下方的開口邊緣的內(nèi)側(cè),使紅外光線能均勻地照射到觸摸球幕上。紅外攝像頭采用感光效果較好的CCD攝像頭,由于采集的是紅外光,需要安裝一個(gè)780 nm濾光片濾除可見光,攝像頭安裝在觸摸球幕下方的開口靠中間的位置,使得攝像頭能拍到整個(gè)球幕。反射鏡安裝在球幕鏡頭里面,目的是為了增加投影儀的投射距離。球幕鏡頭對(duì)應(yīng)設(shè)置有反射鏡片的反射光通路和透射光通路,反射光通路正對(duì)紅外攝像頭,透射光通路位于投影儀的投射方向上,反射鏡能通過其他光線反射紅外光。球幕鏡頭采用寬角度的魚眼鏡頭,安裝在觸摸球幕的正下方,魚眼鏡頭的作用是將平面影像做相應(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)的主機(jī)來處理多點(diǎn)觸摸系統(tǒng)的軟件。
1.2 安裝和調(diào)試
根據(jù)多點(diǎn)觸摸系統(tǒng)的硬件結(jié)構(gòu)進(jìn)行安裝和調(diào)試,攝像頭擺放位置盡量靠近球幕鏡頭,并且垂直朝上,安裝后需保持固定,在使用中不能出現(xiàn)移動(dòng)或偏移等現(xiàn)象。2個(gè)紅外燈安裝在底盤固定的位置即可,投影機(jī)和主機(jī)固定在底盤的下方。
系統(tǒng)的調(diào)試主要分為測(cè)試電源和紅外燈、調(diào)節(jié)投影屏幕、調(diào)整紅外攝像頭的焦距和捕捉范圍。接上電源后,紅外燈需一直保持常亮狀態(tài),調(diào)節(jié)投影儀可使球幕成像清晰,攝像頭要求采集到的畫面完整且在中間成像。
2 軟件實(shí)現(xiàn)及互動(dòng)應(yīng)用
系統(tǒng)的硬件搭建完成后,需要完成軟件部分的實(shí)現(xiàn)。軟件部分包括觸摸點(diǎn)跟蹤模塊、手勢(shì)識(shí)別模塊和互動(dòng)應(yīng)用程序。在具體實(shí)現(xiàn)中,需要修改坐標(biāo)系統(tǒng)使其適用于球形顯示并改進(jìn)相應(yīng)的算法提高運(yùn)算速度。
2.1 球幕坐標(biāo)系統(tǒng)
球幕上顯示的內(nèi)容是二維輸入圖片經(jīng)過投影變換得到的,映射關(guān)系如圖1所示。二維圖片的中心位置映射到球幕的頂點(diǎn)(北極),圖中任意一點(diǎn)與中心點(diǎn)之間的距離轉(zhuǎn)換為球幕上距離頂點(diǎn)的維度跨度值,球幕上顯示的內(nèi)容為以中心點(diǎn)為圓心的內(nèi)切圓,圖片的四角不會(huì)顯示出來,最外圍一圈(圓周)則壓縮成球幕的底點(diǎn)(南極)。
2.2 觸點(diǎn)跟蹤模塊
觸摸點(diǎn)跟蹤的作用是將攝像頭采集到的原始圖像信息,經(jīng)過相應(yīng)處理得到觸點(diǎn)信息,并經(jīng)TUIO通信協(xié)議發(fā)送給手勢(shì)識(shí)別模塊。目前,國(guó)外有很多開源觸點(diǎn)跟蹤軟件,如Touchlib和CCV(Community Core Vision)[3]等,采用計(jì)算機(jī)圖像處理庫(kù)OpenCV直接處理圖像和視頻流,從而能夠非常準(zhǔn)確地檢測(cè)到觸摸點(diǎn)信息,這些信息最后通過TUIO協(xié)議發(fā)送。本系統(tǒng)使用CCV進(jìn)行觸點(diǎn)跟蹤,由于CCV基于平面顯示屏,因此需要對(duì)CCV進(jìn)行相應(yīng)地修改,使其適用于球形顯示屏。
CCV是一個(gè)開源觸點(diǎn)跟蹤軟件。它需要一個(gè)攝像頭或者視頻來提供數(shù)據(jù)輸入。經(jīng)過數(shù)據(jù)處理之后,輸出追蹤數(shù)據(jù)(如觸點(diǎn)坐標(biāo)和觸點(diǎn)大小等)。CCV能夠與各種網(wǎng)絡(luò)攝像頭或視頻采集設(shè)備協(xié)同工作,通過支持TUIO/OSC/XML的應(yīng)用程序進(jìn)行數(shù)據(jù)連接,并且支持包括FTIR、DI、DSI、LLP、LED-LP等在內(nèi)的多種基于光學(xué)的多點(diǎn)觸摸硬件方案。
當(dāng)手指觸摸屏幕時(shí),CCV軟件能將觸點(diǎn)信息檢測(cè)出來,并在屏幕的相應(yīng)位置顯示白點(diǎn)。但通常情況下,白點(diǎn)的位置與實(shí)際觸摸的位置不一致,因此必須對(duì)坐標(biāo)位置進(jìn)行校正,這也是CCV軟件運(yùn)行非常重要的一個(gè)步驟。
使用三角網(wǎng)格對(duì)坐標(biāo)進(jìn)行校正,將兩幅圖像劃分成相同個(gè)數(shù)的三角形網(wǎng)格,對(duì)每一個(gè)三角形進(jìn)行坐標(biāo)映射。當(dāng)手指觸摸時(shí),通過判斷觸摸點(diǎn)所落在的三角形內(nèi),達(dá)到最終校正目的。CCV軟件標(biāo)準(zhǔn)校正是在屏幕上生成9×10共90個(gè)校準(zhǔn)點(diǎn),呈矩形分布。從左上角的第一個(gè)校準(zhǔn)點(diǎn)開始從左至右、從上至下開始校正。測(cè)試中發(fā)現(xiàn)將校準(zhǔn)點(diǎn)設(shè)成矩形,分布在球形顯示屏上的校準(zhǔn)效果不理想,必須修改CCV軟件,將其校準(zhǔn)點(diǎn)成圓形分布。經(jīng)過校正后,CCV軟件開始準(zhǔn)確地對(duì)觸摸點(diǎn)進(jìn)行跟蹤,并點(diǎn)擊平滑處理、高通濾波、觸點(diǎn)增強(qiáng)等按鈕對(duì)觸點(diǎn)進(jìn)行處理,最終能正確清晰地得到觸點(diǎn)信息。
2.3 手勢(shì)識(shí)別模塊
當(dāng)觸點(diǎn)信息被準(zhǔn)確地追蹤后,通過手勢(shì)識(shí)別程序便可將輸入觸點(diǎn)軌跡解釋為相應(yīng)的手勢(shì)命令,再傳遞給應(yīng)用程序?qū)崿F(xiàn)最終交互的功能。本文采用C#語言編寫手勢(shì)識(shí)別程序,手勢(shì)識(shí)別程序?qū)⒁詣?dòng)態(tài)鏈接庫(kù)形式為應(yīng)用程序提供交互功能。程序框架中交互元素由IGestureListener類定義,觸點(diǎn)信息CursorPoint經(jīng)過軌跡合成為Trace,再對(duì)軌跡分組成Group,Group即為待識(shí)別的手勢(shì)。Group手勢(shì)信息通過GroupGRManager類進(jìn)行手勢(shì)事件訂閱,然后通過GestureRecognizer類進(jìn)行手勢(shì)識(shí)別,識(shí)別成功后,將以事件的形式傳遞給應(yīng)用程序。
由于觸摸球幕坐標(biāo)體系的特殊性,標(biāo)準(zhǔn)的手勢(shì)(如移動(dòng)、旋轉(zhuǎn)、縮放等)需要重新定義。
2.3.3 縮放
觸摸球面上的縮放手勢(shì)和平面上類似,都可以根據(jù)兩點(diǎn)之間距離的變化來表示。但是由于球形顯示的有限性,基于球形顯示的縮放手勢(shì)的放大系數(shù)必須限制在一定范圍內(nèi),超過一定的值可能會(huì)導(dǎo)致部分影像無法顯示。
2.3.4互動(dòng)應(yīng)用
觸點(diǎn)跟蹤模塊和手勢(shì)識(shí)別模塊完成后,就可以開發(fā)應(yīng)用程序驗(yàn)證系統(tǒng)的交互功能。目前比較流行的開發(fā)語言有C/C++、C#、Flash 、Python等,一些比較成熟的多點(diǎn)觸摸應(yīng)用程序都是使用C#開發(fā)。不同的開發(fā)語言有各自的優(yōu)勢(shì),用戶可以根據(jù)自己的需要和實(shí)際情況自行選擇開發(fā)語言,本文使用C#開發(fā)一些互動(dòng)應(yīng)用程序,以展示該系統(tǒng)多觸點(diǎn)手勢(shì)交互的能力,進(jìn)而從不同方面驗(yàn)證了多點(diǎn)觸摸交互系統(tǒng)的特性,例如圖片查看器。傳統(tǒng)的圖片查看器都是通過鼠標(biāo)和鍵盤進(jìn)行操作,但旋轉(zhuǎn)和縮放操作會(huì)比較麻煩,這里利用多點(diǎn)觸摸的優(yōu)勢(shì),使用C#開發(fā)了可支持移動(dòng)、縮放和旋轉(zhuǎn)操作的基于球形顯示的多點(diǎn)觸摸圖片查看器。通過該程序用戶能夠用多個(gè)手指進(jìn)行圖片操作,驗(yàn)證了標(biāo)準(zhǔn)手勢(shì)(如移動(dòng)、旋轉(zhuǎn)和縮放等)在球形顯示器上的手勢(shì)識(shí)別功能。
本文介紹了一種基于球形顯示的多點(diǎn)觸摸系統(tǒng),分別從硬件搭建和軟件實(shí)現(xiàn)兩方面闡述了系統(tǒng)的具體實(shí)現(xiàn)過程。在軟件實(shí)現(xiàn)過程中,針對(duì)觸摸球幕的特殊性建立了適合球形顯示的地理坐標(biāo)系統(tǒng),然后對(duì)觸點(diǎn)跟蹤軟件CCV進(jìn)行了修改,使其適用于球形顯示。完成了觸點(diǎn)跟蹤和手勢(shì)識(shí)別模塊,選用Flash和C#開發(fā)應(yīng)用程序進(jìn)行了多點(diǎn)觸摸互動(dòng)應(yīng)用,顯示出多點(diǎn)觸摸系統(tǒng)帶來的交互性和便捷性。
參考文獻(xiàn)
[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.