湯 瀑,何 福,湯春林
(中國空氣動力研究與發(fā)展中心 計算空氣動力研究所,四川 綿陽 621000)
虛擬現(xiàn)實(Virtual Reality)[1]通過計算機對真實世界進(jìn)行模擬,并利用人機交互裝置提供豐富體驗。將虛擬現(xiàn)實技術(shù)應(yīng)用于試驗中,可以為試驗提供更豐富的體驗,其中難點在于試驗?zāi)P偷娜S重建[9]。但在特種復(fù)雜試驗裝置中,模型處于不可接觸的環(huán)境,如密閉空間、有高輻射、高污染、病毒環(huán)境、超低溫等。這給可視化數(shù)據(jù)的獲取造成了困難。傳統(tǒng)的建模方式,雖然更為精確,但是周期太長,不具備實時性。
運動恢復(fù)結(jié)構(gòu)(structure from motion,SFM)是基于圖像的三維重建方法,可以通過在不同視角獲取目標(biāo)的圖像,從而獲得目標(biāo)的三維結(jié)構(gòu)。運用運動恢復(fù)結(jié)構(gòu)技術(shù),可以方便快捷地獲得特種復(fù)雜試驗裝置中模型的可視化三維結(jié)構(gòu),但面臨著精度低和附加數(shù)據(jù)困難等問題。
本文設(shè)計了基于運動恢復(fù)結(jié)構(gòu)的動態(tài)建模系統(tǒng)。通過在模型上設(shè)置標(biāo)識點,使用智能尋跡車接近模型拍攝照片,然后經(jīng)過運動恢復(fù)結(jié)構(gòu)技術(shù),自動將照片轉(zhuǎn)化為三維模型,并附加溫度數(shù)據(jù),獲得了數(shù)據(jù)豐富的三維模型。該三維模型經(jīng)加工后,可以使用頭戴式虛擬現(xiàn)實設(shè)備獲得沉浸式體驗。
系統(tǒng)為三層架構(gòu),自底向上分別為前端設(shè)備感知層、中心控制計算層和用戶控制層,如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)
前端設(shè)備感知層進(jìn)行步進(jìn)電機、軌跡攝像頭、光學(xué)相機、紅外相機等設(shè)備的控制和數(shù)據(jù)傳輸,搭載于智能尋跡車上。
中心控制計算層,主要位于應(yīng)用服務(wù)器上,進(jìn)行業(yè)務(wù)邏輯的處理。前端設(shè)備感知層軌跡攝像頭傳輸過來的軌道圖像和步進(jìn)電機的狀態(tài)數(shù)據(jù),在軌跡控制模塊進(jìn)行處理,并將反饋數(shù)據(jù)傳輸回前端設(shè)備感知層。前端設(shè)備感知層傳輸?shù)墓鈱W(xué)相機圖像,依次經(jīng)過環(huán)狀編碼識別和光學(xué)SFM,進(jìn)行三維重建。前端設(shè)備感知層傳輸?shù)募t外相機圖像,經(jīng)過紅外SFM,將溫度信息加入三維重建的模型中。
用戶控制層,用于與用戶交互,包括兩部分。一部分位于上位機,主要進(jìn)行智能尋跡車的控制。另一部分位于應(yīng)用服務(wù)器,主要進(jìn)行虛擬現(xiàn)實渲染。
智能尋跡車采用樹莓派4B,其硬件配置有64位1.5 GHz四核CPU和Broadcom Video Core VI 500 MHz的GPU。智能循跡車操作系統(tǒng)采用樹莓派官方操作系統(tǒng) Raspbian,具有較好的穩(wěn)定性。
試驗裝置內(nèi)部如圖2所示。裝置底部為白色平面,智能尋跡車軌道為黑色車道線。為避開裝置底部障礙物,智能尋跡車軌跡不規(guī)則。智能尋跡車上搭載用于軌跡識別的攝像頭,使用OpenCV實現(xiàn)循跡。
圖2 智能尋跡車軌道示意圖
智能尋跡車上配置云臺,搭載CCD相機和紅外相機,用來拍攝模型圖像。圖像數(shù)據(jù)通過無線網(wǎng)絡(luò)傳輸至服務(wù)器端,再進(jìn)行三維重建。
光學(xué)相機采用GoPro MAX全景運動相機,可拍攝5.5 MP平面照片。
紅外熱像儀采用FLIR E6-XT,分辨率為160*120,測溫范圍為-20度到250度,環(huán)境溫度為10度到35度時測溫精度為±2度。
智能尋跡車具有邊緣計算能力,將感知的信號進(jìn)行預(yù)處理,再提交下一層進(jìn)行計算和控制等。
應(yīng)用服務(wù)器處理器為Intel Xeon CPU E7-4850,安裝windows server 2016操作系統(tǒng)和SQL Server 2016數(shù)據(jù)庫。
成熟的虛擬現(xiàn)實設(shè)備有多種,包括CAVE投影系統(tǒng)和多種頭戴式設(shè)備。CAVE投影系統(tǒng)由圍繞使用者的三個以上投影面組成,并配有動作跟蹤裝置,可以用于虛擬現(xiàn)實的多種應(yīng)用場景。CAVE投影系統(tǒng)雖然沉浸式效果最佳,但造價高昂。頭戴式設(shè)備主要應(yīng)用于虛擬現(xiàn)實游戲,通過對使用者雙眼呈現(xiàn)不同的影像產(chǎn)生沉浸式效果。
由于本系統(tǒng)采用了西門子Teamcenter系列軟件,綜合考慮軟硬件兼容性、顯示效果和經(jīng)濟(jì)性,本系統(tǒng)采用HTC Vive頭戴式設(shè)備作為虛擬現(xiàn)實顯示硬件。HTV Vive頭戴式設(shè)備,包括一個虛擬現(xiàn)實頭盔和兩個定位器,需要在固定的規(guī)劃空間內(nèi)使用,并連接一臺專門用于虛擬現(xiàn)實的計算機。
虛擬現(xiàn)實計算機安裝NVIDIA GeForce GTX 1060顯卡用于虛擬現(xiàn)實渲染。虛擬現(xiàn)實體驗房間用于設(shè)備使用的規(guī)劃空間需要至少2 m×1.5 m,推薦3.5 m×3.5 m。
定位器于規(guī)劃空間對角放置,最大距離不超過5米。兩個定位器需要固定于墻上,且都需要接電源。
虛擬現(xiàn)實計算機放置于規(guī)劃空間的邊緣,用于連接HTC Vive頭戴式設(shè)備。頭戴式設(shè)備需要接電源。
網(wǎng)絡(luò)架構(gòu)圖如圖3所示。智能尋跡車搭載光學(xué)設(shè)備,位于特種試驗裝置中,通過無線網(wǎng)絡(luò)連接到交換機。上位機位于試驗室,方便通過網(wǎng)絡(luò)控制智能尋跡車。
圖3 系統(tǒng)網(wǎng)絡(luò)架構(gòu)示意圖
智能尋跡車拍攝的圖像,通過無線網(wǎng)絡(luò)傳輸至交換機,再通過網(wǎng)線傳輸至應(yīng)用服務(wù)器。應(yīng)用服務(wù)器位于機房,主要進(jìn)行三維重建。應(yīng)用服務(wù)器安裝有SQL Server 2016數(shù)據(jù)庫,系統(tǒng)所有數(shù)據(jù)最后都存儲于數(shù)據(jù)庫中。
虛擬現(xiàn)實計算機位于專門的展示間,通過網(wǎng)絡(luò)連接到交換機。HTC Vive頭戴式設(shè)備通過USB線連接到虛擬現(xiàn)實計算機。
特種復(fù)雜試驗裝置具有完整的測量與控制系統(tǒng),本系統(tǒng)的軟硬件設(shè)計不能干擾試驗裝置的測量與控制系統(tǒng)。因此本系統(tǒng)的軟件部分,必須兼容試驗裝置的測量與控制系統(tǒng)。試驗裝置的測量與控制系統(tǒng),主要為Profibus架構(gòu)的多個PLC組成,工控機上部署使用LabVIEW開發(fā)的上位機程序。
根據(jù)以上情況,本系統(tǒng)軟件部分采用分布式部署。
智能尋跡車上部署python語言開發(fā)的客戶端,進(jìn)行智能尋跡車控制、軌跡識別和圖像傳輸。
應(yīng)用服務(wù)器上部署C#語言開發(fā)的服務(wù)器端程序,進(jìn)行圖像處理。應(yīng)用服務(wù)器軟件部分根據(jù)功能劃分為四個主要模塊。光學(xué)三維重建模塊,根據(jù)輸入的圖片,使用運動恢復(fù)結(jié)構(gòu)算法,以獲得模型的三維結(jié)構(gòu)。模型環(huán)狀編碼標(biāo)記模塊,通過在模型上設(shè)置一些關(guān)鍵點,并進(jìn)行標(biāo)記,以增加生成的三維結(jié)構(gòu)的精度。紅外三維重建模塊,利用光學(xué)相機和紅外相機姿態(tài)和視角相同的特點,以獲取模型的溫度信息。虛擬現(xiàn)實體驗?zāi)K,將生成的有溫度信息的三維結(jié)構(gòu),在專業(yè)設(shè)備中進(jìn)行渲染。
上位機上部署LabVIEW語言開發(fā)的上位機程序,用來進(jìn)行人機操作。
虛擬現(xiàn)實計算機上部署C#語言開發(fā)的客戶端程序,用于接收圖像并調(diào)用虛擬現(xiàn)實專業(yè)軟件進(jìn)行渲染。
軟件實現(xiàn)流程圖如圖4所示。由于軟件部分位于多個不同的硬件節(jié)點上,因此分布式部署的各個節(jié)點之間,采用WebAPI接口進(jìn)行數(shù)據(jù)的交換。WebAPI采用標(biāo)準(zhǔn)的http協(xié)議,能夠支持多種語言的客戶端。在本系統(tǒng)的開發(fā)中,使用分布式部署和WebAPI接口,很適合本系統(tǒng)的硬件環(huán)境。軟件部分的主要模塊的實現(xiàn),將在下文詳述。
圖4 軟件實現(xiàn)流程圖
3.2.1 光學(xué)三維重建
三維重建是計算機視覺中的一個重要組成部分,三維模型能比二維圖像提供更豐富的信息和更好的體驗。本系統(tǒng)采用文獻(xiàn)[2] 提出的基于連續(xù)圖片的運動恢復(fù)結(jié)構(gòu)算法,來獲取目標(biāo)的三維結(jié)構(gòu)。三維重建模塊的處理步驟如圖5所示。
圖5 運動恢復(fù)結(jié)構(gòu)基本過程
1)輸入圖像:光學(xué)相機拍攝不同視角的若干個圖像,通過無線網(wǎng)絡(luò)從智能尋跡車傳輸?shù)綉?yīng)用服務(wù)器。相鄰圖像之間要有一定的重疊度。
2)特征提?。菏褂肧URF(speeded-up robust features)[5]算法從所有拍攝的圖像中獲取一些具有獨特特征的關(guān)鍵點。
3)特征匹配:通過從兩個不同圖像中尋找具有視覺上相似性的特征對。這些特征對需要滿足最小相似性標(biāo)準(zhǔn)。
4)幾何驗證:通過計算匹配圖像之間的相對姿態(tài),來驗證匹配的圖像對,并據(jù)此計算相機的姿態(tài)。最后使用基本極限約束來驗證所有對應(yīng)關(guān)系,刪除異常值匹配。
5)重建:根據(jù)前一步驟獲取的匹配圖像對的相對姿態(tài),經(jīng)坐標(biāo)變換,將所有相機轉(zhuǎn)換到同一個固定的世界坐標(biāo)系下,創(chuàng)建一致的三維模型。所有匹配的特征點將被三角測量到三維空間,并形成稀疏點云。
6)BA優(yōu)化(bundle adjustment):運行全局的光束法平差算法,以得到一致的三維模型[7]。
智能循跡車每環(huán)繞模型一周,就將拍攝的所有光學(xué)圖像傳輸給三維重建模塊。三維重建模塊通過這些圖像獲得三維結(jié)構(gòu),并根據(jù)模型環(huán)狀編碼標(biāo)記獲得的關(guān)鍵點信息增加三維結(jié)構(gòu)的精度。
3.2.2 模型環(huán)狀編碼標(biāo)記
在特種試驗裝置中,復(fù)雜的工況可能給三維重建帶來困難:1)存在較多的機械部件,如電動機等,造成較大的震動。智能循跡車拍攝的圖像,因為抖動而存在模糊的情況。2)模型和裝置內(nèi)部環(huán)境可能視覺上區(qū)分度不高,難以把模型和背景區(qū)分開。不經(jīng)過處理,直接對光學(xué)相機圖像進(jìn)行三維重建,生成的三維結(jié)構(gòu)精度較低。
為進(jìn)一步提高三維模型的精度,在模型表面設(shè)置一些特征明顯且唯一的關(guān)鍵點,可以有效地降低三維重建的復(fù)雜性,增加三維模型的精度。本系統(tǒng)使用文章[4]提出的方法,采用環(huán)狀編碼標(biāo)記點(CCT,circular coded target),實現(xiàn)環(huán)狀編碼的識別。
環(huán)狀標(biāo)記如圖6所示,圖中有3個同心圓,其直徑分別為7 mm、18 mm、28 mm,正方形黑色背景邊長為38 mm。環(huán)狀編碼帶中有8處為白色,7處為黑色。使用黑色表示0,白色表示1,最多可以標(biāo)記429個點。
圖6 環(huán)狀編碼標(biāo)記示意圖
模型表面根據(jù)需要設(shè)置環(huán)狀編碼標(biāo)記點。環(huán)狀標(biāo)記應(yīng)設(shè)置于模型表面變化較大的位置,以及容易和背景混淆的位置。在系統(tǒng)運行過程中,進(jìn)行環(huán)狀編碼識別,由于標(biāo)記點的坐標(biāo)是固定的,用于在三維重建中糾正關(guān)鍵點的坐標(biāo),可以提高三維重建模塊的精度。
使用環(huán)狀編碼標(biāo)記,成本較低,對裝置內(nèi)部改造少。使用該方法,識別準(zhǔn)確度和三維重建速度提升明顯,具有良好的綜合性能。
3.2.3 紅外三維重建
特種試驗裝置中,具有復(fù)雜的溫度控制系統(tǒng)。其中包括一套鍋爐用來加熱內(nèi)部壁面,一套制冷機組用于內(nèi)部空間制冷,一套電加熱溫度車用于內(nèi)部空間加熱。模型表面溫度是一個測量的重要參數(shù)。雖然眾多的傳感器用來監(jiān)測溫度,但使用紅外三維重建的方式能夠更快的且更直觀的展示模型整體的溫度狀況,在試驗進(jìn)行當(dāng)中指導(dǎo)試驗的溫度控制策略。
智能循跡車上裝有紅外相機,從紅外相機拍攝的紅外圖像,能夠獲取模型表面的溫度信息。但紅外圖像存在分辨率低、干擾多等問題,無法直接從中重建三維模型。
文獻(xiàn)[3]提出了改進(jìn)的SFM算法,將SFM算法擴(kuò)展到了紅外圖像。該算法在特征檢測和特征匹配方面進(jìn)行了改進(jìn),采用SURF算法進(jìn)行特征檢測,并基于RANSAC 算法[4-5]結(jié)合紅外圖像的溫度信息又提出了TAC-RANSAC算法,提高了紅外圖像三維重建的精度。
由于光學(xué)相機和紅外相機姿態(tài)和視角相同,經(jīng)過坐標(biāo)變換和調(diào)整,可以將紅外圖像得到的點云附在光學(xué)圖像重建的三維結(jié)構(gòu)上。兩者相結(jié)合可以重建出具有溫度信息的三維模型。
智能尋跡車每環(huán)繞模型一周,所有的紅外圖像將傳輸給紅外三維重建模塊。紅外三維重建模塊得到有溫度信息的三維結(jié)構(gòu),傳輸給虛擬現(xiàn)實體驗?zāi)K。
3.2.4 虛擬現(xiàn)實體驗
目前成熟的用于工業(yè)模型的虛擬現(xiàn)實顯示方案都比較昂貴。本系統(tǒng)采用的頭戴式設(shè)備HTC Vive主要用于虛擬現(xiàn)實游戲,沒有針對工業(yè)模型的軟件。因此,本系統(tǒng)采用西門子TC VisMockup進(jìn)行針對性渲染,需要配置左右眼顯示差異參數(shù)。有溫度信息的三維結(jié)構(gòu)傳輸至虛擬現(xiàn)實計算機,經(jīng)西門子Teamcenter Visualization Animation Creation Option軟件進(jìn)行修改和加工后,在虛擬現(xiàn)實計算機上使用西門子TC VisMockup進(jìn)行渲染,再輸出到HTC Vive頭戴式設(shè)備進(jìn)行沉浸式體驗。
某試驗裝置,內(nèi)部有移測架、溫度車、彎刀等機構(gòu),導(dǎo)致內(nèi)部空間狹小且不規(guī)則。使用黑色膠帶貼在裝置底板,作為智能循跡車的軌道,啟動智能循跡車行進(jìn)。
該裝置具有加熱和制冷功能,以及蒸汽加濕系統(tǒng),氣流溫度和濕度變化較大。分別在多種工況下,操作智能尋跡車沿固定軌道環(huán)繞模型拍攝照片。
結(jié)果顯示,本系統(tǒng)能夠獲得較精確的模型三維結(jié)構(gòu),其溫度數(shù)據(jù)能起到了現(xiàn)場輔助試驗的作用。試驗人員通過頭戴式設(shè)備,能沉浸式的觀看模型。
本系統(tǒng)基本解決了特種試驗裝置中模型的動態(tài)建模問題,且提供了虛擬現(xiàn)實的體驗方式。
試驗過程中,遇到以下問題:1)在濕度較大的情況下,智能循跡車上裝載的相機鏡頭容易起霧,不能長時間進(jìn)行動態(tài)建模。2)裝置內(nèi)氣流速度較大的情況下,智能循跡車容易偏離軌道。
下一步,將從兩方面改進(jìn)本系統(tǒng):1)在特種試驗裝置中特定工況下,如高風(fēng)速、高濕度下,加強系統(tǒng)的適應(yīng)能力,增加動態(tài)建模的精度。2)將結(jié)合試驗任務(wù)中的更多原始數(shù)據(jù),采用增強現(xiàn)實(augmented reality)[6]的方法呈現(xiàn)模型,以沉浸式體驗的方式觀看模型和操作特種試驗裝置[7-11]。