劉光沛,賀亞威,張 兵,
(1浙江理工大學 信息學院,杭州310000;2像航(上海)科技有限公司,上海200000)
虛擬現實技術主要以信息技術為核心,可以將人們的視覺、聽覺以及觸覺等融為一體,形成一個沉浸交互式虛擬環境,用戶在這個虛擬的三維環境中可以與物體展開交互,為用戶帶來更加真實的體驗感。目前,較為人們熟知的VR(Virtual Reality)、AR(Augmented Reality)以及全息技術都屬于沉浸式虛擬環境技術,但其中VR需要頭戴設備,AR需要手機或眼鏡,全息投影(虛像)無交互或交互性差等缺點。本文介紹一種新型的視覺體驗技術——無介質浮空投影技術,該技術是基于光線在微鏡矩陣結構中的二次反射,將物體投射到空中,形成浮空影投,用戶可以在沒有任何介質的空氣中,裸眼觀看“真實存在”的影像。
人機交互是人與計算機之間交換信息的過程,為了在三維環境下實現人機交互,手勢識別是關鍵,而手勢識別設備是手勢識別的基礎[1]。目前常用的手勢識別設備有基于運動傳感器的數據手套[2]、基于高幀率單目攝像系統或高幀率雙目攝像系統。數據手套通過運動傳感器獲取手勢相關數據,其優點是準確,但是需要用戶佩戴專業設備,適用范圍窄、應用性差[3],且成本較高。高幀率單目攝像系統或高幀率雙目攝像系統是利用紅外攝像頭模擬人的雙目視覺,實現手勢的定位和識別。但由于在實際交互中,攝像頭對環境光的抗光性較弱,對手部信息的形態學檢測效果較差,不能保證在實際交互中可以精準響應用戶的點擊行為。因此,本文選用紅外陣列觸摸傳感器,它能夠在空氣中形成紅外光場區域模擬觸摸區域,其抗光性能優越,用紅外激光進行定位和手勢識別,誤差可低至毫米級,并且可以在多種系統中進行集成。
Unity 3D是Unity Technologies公司開發的一款跨平臺綜合性專業游戲引擎[1],可以應用在多種系統中,滿足多種應用需求。
無介質浮空投影技術是一種新型的顯示技術,該技術基于光線在微鏡結構中的二次反射將物體投射到空中,形成浮空投影。光學微鏡結構選用新型納米級光學材料——微通道矩陣光波導平板(Microchannel matrix optical waveguide plate,簡稱MOW)[4],可以使入射圖像的光線產生彎曲,使光線在光學成像元件中經過至少2次反射后,形成與入射圖像對應的空中實像。折射角的條件要大于臨界角,形成全反射。一次反射不能形成無介質浮空影像,所以需要二次反射才能形成穩定的、完全定位的空中實像。無介質浮空影像技術不需要任何介質,能夠在不存在任何事物的空中出現正視的影像。成像過程如圖1所示。

圖1 成像原理圖Fig.1 Principle diagram of optical materials
紅外陣列觸摸傳感器是一種基于紅外激光的傳感器模塊,可以集成在多種設備中,并支持多種系統。傳感器模塊能夠在任何表面甚至在空氣中使用,不僅可以提供多種尺寸的觸摸區域,并可以配置參數來選取觸摸活動區域。傳感器模塊掃描頻率高、延遲低,觸摸精度可達到0.1mm。
紅外光波長范圍在750~1 000 nm之間,是一種不可見光,但與可見光一樣具有反射、折射、吸收等性質[3]。紅外陣列觸摸傳感器就是通過紅外線漫反射來檢測和跟蹤物體。該傳感器模塊包括一個光學系統,光學系統用于將紅外發射器(Emitter)和紅外接收器(Receiver)相結合,并形成多個發射器—接收器組合。每個發射器-接收器組合覆蓋一個狹窄區域。一個物體出現在感應區域將影響幾個發射-接收通道,通過計算物體重心定位物體坐標位置。該傳感器模塊處理器有檢測和跟蹤多個對象的能力,可以判斷是否出現相對應的手勢。例如,手指點擊、拖拽、縮放、旋轉等。
無介質浮空投影交互系統由紅外陣列觸摸傳感器、主機系統、高亮顯示器和光學微鏡結構MOW板構成??傮w架構如圖2所示。

圖2 系統總體框圖Fig.2 System overall block diagram
其中,紅外陣列觸摸傳感器用來檢測浮空投影交互位置信息,并通過I2C/USB完成與主機系統的通信;主機系統用來識別交互事件;高亮顯示器用來提供像源;像源通過光學微鏡結構MOW板在空氣中形成無介質浮空投影。
紅外陣列觸摸傳感器系統架構如圖3所示。該系統包括主機系統、連接器、電源電路、微處理器、多點觸控處理器、紅外傳感器陣列。主機系統通過與標準連接器連接電源電路。標準連接器的8個引腳可以適配多種主機系統,并且通過USB或I2C接口進行通信,完成數據傳輸。紅外傳感器陣列將檢測到的原始數據發送給多點觸控處理器,然后發送給微處理器進行數據處理,轉換為位置坐標信息,最終發送給主機系統。

圖3 紅外陣列觸摸傳感器系統框圖Fig.3 Infrared array touch sensor system block diagram
為實現成像區域與觸摸區域進行匹配實現交互,觸摸區域需要與顯示區域一一映射。紅外陣列傳感器模塊有自己對應的軟件開發工具,可以通過SDK(Software Development Kit)或Ardunio庫配置參數,選擇觸摸區域范圍、觸摸區域方向及成像區域范圍,并且可以配置坐標偏移量,來指定顯示區域中觸摸區域,滿足用戶多種需求。
本文通過Unity 3D系統平臺開發設計浮空投影,并通過C#腳本編程設計觸發事件識別基本手勢?;臼謩莅?點擊、拖拽、縮放、旋轉手勢。Unity 3D采用事件函數驅動機制,其腳本是由事先聲明好的事件函數組成。每一個Unity 3D腳本都會綁定到一個Game Object(游戲對象)上,當這個Game Object在程序運行中被激活時,事件函數則開始運行,當這個Game Object被銷毀時,相應的腳本也隨之銷毀。常用事件函數有:Awake()、Start()、Update()、Fixed Update()、On Enable()、On Disable()、On Destroy()等。Unity 3D常 用 的API(Application Programming Interface)接口是Transform類,用于描述和控制物體的三維或二維位置、旋轉、縮放屬性[5]。本文通過調用API接口編寫C#腳本程序實現對Game Object(游戲對象)的控制,完成Unity 3D交互軟件實現。C#腳本程序流程如圖4所示:

圖4 程序流程Fig.4 Program flow chart
無介質浮空投影系統結構主件包括:主板、光學微鏡結構MOW板、紅外陣列觸摸傳感器、顯示屏幕,如圖5所示。顯示屏幕在豎直方向成一定傾斜角度放置,光學微鏡結構MOW板水平放置,紅外陣列觸摸傳感器放置與浮空投影區域平行,使觸摸區域與成像區域構成映射關系。

圖5 無介質浮空投影系統示意圖Fig.5 Non-medium floating image system diagram
3.1.1 測試方法
測試方案選擇L型測試板,左側面板模擬顯示區域和觸摸區域,下表面放置紅外陣列傳感器,紅外陣列觸摸傳感器與PC主機連接,如圖6所示。設置顯示區域范圍與觸摸區域范圍完全映射(范圍大小選擇320*192和300*200 mm),將顯示區域單位劃分(單位大小分別為16*16 mm和10*10 mm)模擬浮空投影區域,分別選擇直徑為16 mm和10 mm單位圓柱測試棒,模擬不同大小手指。單位圓柱測試棒分別測量單位區域,將PC計算出的坐標信息進行統計分析。本次實驗測試包括定位準確性、定位穩定性、移動誤差。

圖6 測試方法圖Fig.6 Test method diagram
3.1.2 實驗結果
3.1.2.1 定位準確性
測試區域范圍分別為320*192 mm和300*200 mm,單位測試區域范圍為16*16 mm(240個區域)和10*10 mm(600個區域),共計840個區域。分別使用直徑16 mm和10 mm的白色單位圓柱測試棒,對單位測試區域點擊測試,統計PC計算坐標是否落在各區域,測試結果如圖7所示。

圖7 單位區域點擊測試結果圖Fig.7 Unit area click test result graph
由測試結果可見,對于不同尺寸單位圓柱測試棒測試結果下,各測試坐標均落入單位區域,說明在人機交互中,不同尺寸的手指可以實現對浮空投影精準定位。
3.1.2.2 定位穩定性
測試區域范圍為320*192 mm和300*200 mm,單位測試區域范圍為16*16 mm和10*10 mm。分別對測試區域左上、左下、右上、右下、中心多次測量,統計PC坐標數據,計算坐標均值μ,95%置信區間μ±2σ。 測試結果見表1及表2。

表1 單位區域16*16 mm各點坐標波動表Tab.1 Unit area 16*16 mm coordinate fluctuation table of each point

表2 單位區域10*10 mm各點坐標波動表Tab.2 Unit area 10*10 mm coordinate fluctuation table of each point
由測試結果可以看出,對于不同尺寸單位圓柱測試棒測試結果,各單位區域坐標95%置信區間幅度范圍在2 mm內,且均落在單位區域范圍內,證明在人機交互中,不同尺寸手指可以保證對浮空投影穩定定位。
3.1.2.3 移動誤差
測試區域范圍分別為320*192 mm和300*200 mm,單位測試區域范圍分別為16*16 mm和10*10 mm。以左上角為起始點,連續向右或向下移動10個單位區域,分別記錄移動坐標測量值,與實際值進行比較。測試結果如圖8所示。

圖8 單位移動對比圖Fig.8 Unit movement comparison chart
由測試結果可以看出,在不同尺寸單位圓柱測試棒測試下,測量折線與實際折線幾乎重合,移動誤差在1 mm左右。說明在人機交互中,不同尺寸手指對浮空投影進行移動操作時可以實時準確控制。
采用Unity 3D設計10*10 mm測試背景板及相關模型,在浮空投影區域完成對模型的基本手勢操作。圖9為初始模型未執行手勢操作,浮空投影的基本手勢交互結果如圖10所示。

圖9 初始模型圖Fig.9 Initial model diagram
其中,圖10(a)中點擊模型后模型有“爆炸”特效;圖10(b)中移動手勢完成模型向右移動;圖10(c)、(d)中縮放手勢完成模型的放大與縮??;圖10(e)中旋轉手勢完成模型的旋轉。

圖10 浮空投影手勢交互結果圖Fig.10 Gesture interaction result chart of floating image
本文介紹并實現了無介質浮空投影交互系統。用戶可以裸眼觀看空氣中“真實存在”的影像,并且通過紅外陣列觸摸傳感器,實現在空氣中的人機交互。文中介紹了無介質浮空投影和紅外陣列觸摸傳感器的技術原理和系統結構,并且通過Unity 3D設計實現了浮空投影與手勢交互事件,完成了交互軟件系統。通過靜態定位與動態交互測試證明,該系統能夠實現對浮空投影精準穩定定位,并能夠完成基本手勢交互識別。該系統應用前景十分廣泛,例如在疫情期間,為避免在公共場所接觸可能造成的交叉感染,該系統可以應用在各種公共終端設備,浮空投影可以帶來真正的科技感,無接觸手勢交互可以保證安全性。