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

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

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

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

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

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

圖6 測試方法圖Fig.6 Test method diagram
3.1.2 實(shí)驗(yàn)結(jié)果
3.1.2.1 定位準(zhǔn)確性
測試區(qū)域范圍分別為320*192 mm和300*200 mm,單位測試區(qū)域范圍為16*16 mm(240個(gè)區(qū)域)和10*10 mm(600個(gè)區(qū)域),共計(jì)840個(gè)區(qū)域。分別使用直徑16 mm和10 mm的白色單位圓柱測試棒,對單位測試區(qū)域點(diǎn)擊測試,統(tǒng)計(jì)PC計(jì)算坐標(biāo)是否落在各區(qū)域,測試結(jié)果如圖7所示。

圖7 單位區(qū)域點(diǎn)擊測試結(jié)果圖Fig.7 Unit area click test result graph
由測試結(jié)果可見,對于不同尺寸單位圓柱測試棒測試結(jié)果下,各測試坐標(biāo)均落入單位區(qū)域,說明在人機(jī)交互中,不同尺寸的手指可以實(shí)現(xiàn)對浮空投影精準(zhǔn)定位。
3.1.2.2 定位穩(wěn)定性
測試區(qū)域范圍為320*192 mm和300*200 mm,單位測試區(qū)域范圍為16*16 mm和10*10 mm。分別對測試區(qū)域左上、左下、右上、右下、中心多次測量,統(tǒng)計(jì)PC坐標(biāo)數(shù)據(jù),計(jì)算坐標(biāo)均值μ,95%置信區(qū)間μ±2σ。 測試結(jié)果見表1及表2。

表1 單位區(qū)域16*16 mm各點(diǎn)坐標(biāo)波動(dòng)表Tab.1 Unit area 16*16 mm coordinate fluctuation table of each point

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

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

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

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