劉源 陳杰 龔國成 楊朝智
摘要 虛擬現(xiàn)實(shí)技術(shù)把現(xiàn)實(shí)世界物體高精度建模,為用戶帶來交互式的三維動態(tài)實(shí)景,使用戶足不出戶就可細(xì)覽物體各角度細(xì)節(jié)。結(jié)合虛擬現(xiàn)實(shí)技術(shù),物聯(lián)網(wǎng)設(shè)備采集的信息和用戶控制手段將會得到革新,帶給用戶前所未有的所見即所得的非常體驗(yàn)。高精度3D模型建立技術(shù)是虛擬現(xiàn)實(shí)的關(guān)鍵技術(shù),其模型包括空間結(jié)構(gòu)模型和外觀紋理模型,然而高精度空間結(jié)構(gòu)模型建立于物體的點(diǎn)云模型上,因此獲取高精度點(diǎn)云模型就是虛擬現(xiàn)實(shí)關(guān)鍵技術(shù)中的關(guān)鍵技術(shù)。本文就建立點(diǎn)云模型所用到的三種常見關(guān)鍵技術(shù)(包括激光掃描法、雙目立體視覺法以及序列圖片重建法),并就各自方法的優(yōu)缺點(diǎn)進(jìn)行說明,探討技術(shù)發(fā)展方向。
[關(guān)鍵詞]虛擬現(xiàn)實(shí) 物聯(lián)網(wǎng)展示與控制 點(diǎn)云模型3D掃描
1 引言
虛擬現(xiàn)實(shí)是一種新型的交互顯示技術(shù),是一門以計(jì)算機(jī)技術(shù)為基礎(chǔ),結(jié)合其它相關(guān)技術(shù),為用戶帶來交互式的三維動態(tài)實(shí)景展示。虛擬現(xiàn)實(shí)技術(shù)通過對現(xiàn)實(shí)物體高精度三維建模,從而構(gòu)造近似現(xiàn)實(shí)的虛擬數(shù)字世界,帶來沉浸式的交互體驗(yàn),用戶通過與虛擬世界的交互,體驗(yàn)現(xiàn)實(shí)世界中的感覺,進(jìn)而獲得真實(shí)的經(jīng)驗(yàn)。虛擬現(xiàn)實(shí)技術(shù)具有廣泛的應(yīng)用,比如各類危險(xiǎn)環(huán)境下的模擬訓(xùn)練、城市規(guī)劃、物聯(lián)網(wǎng)系統(tǒng)展示與控制等。物體的高精度三維模型由空間結(jié)構(gòu)模型和表面紋理模型組成,空間結(jié)構(gòu)模型負(fù)責(zé)展示目標(biāo)結(jié)構(gòu),紋理模型負(fù)責(zé)渲染目標(biāo)顏色等信息??臻g模型可以通過實(shí)際測量或軟件建模等方法生成,不過由于物體形狀結(jié)構(gòu)千差萬別,使用建模軟件需要熟悉的工程師用較長的時(shí)間進(jìn)行設(shè)計(jì)加工,對于使用率較低的物體模型就會有較大的成本投入;實(shí)際測量則通過掃描儀等專業(yè)傳感器獲取物體的測量數(shù)據(jù),對于物體,特別是精細(xì)物體的建模較人工設(shè)計(jì)有速度快,精度高的優(yōu)勢。隨著技術(shù)發(fā)展,測量儀器也從專業(yè)設(shè)備逐步演變?yōu)槠胀ㄔO(shè)備結(jié)合專用軟件的方式。本文就如何利用普通設(shè)備進(jìn)行高精度建模的三種主流方法進(jìn)行研究并探討各自優(yōu)點(diǎn)。
2 點(diǎn)云模型建立方法研究
目前生成點(diǎn)云模型的方法主要有三種,分別是激光掃描法、雙目立體視覺法和序列重建法。
2.1 激光掃描法
激光掃描法是最常見的一種測量方式,這類方法一般都是利用激光測距原理獲取掃描點(diǎn)距離激光發(fā)射點(diǎn)的距離,從而獲取掃描點(diǎn)在世界坐標(biāo)系下的坐標(biāo)。激光測距有激光飛行時(shí)間法(TOF)和三角測距法。利用激光飛行時(shí)間技術(shù)獲取物體距離需專用的激光傳感器,其原理是通過計(jì)算發(fā)出激光到接收反射激光的時(shí)間差計(jì)算距離。這種方法需專用高精度傳感器,價(jià)格較貴,一般主要用于空間測量領(lǐng)域,比如建筑測繪等。此處主要介紹基于三角測距原理進(jìn)行物體點(diǎn)云模型重建的方法,三角測距的原理如圖1所示。
激光發(fā)射器和相機(jī)光心處于同一直線上,激光發(fā)射器發(fā)射激光點(diǎn)投影到目標(biāo)點(diǎn)上,對應(yīng)的,針孔相機(jī)獲取當(dāng)前激光點(diǎn)在像平面中的成像,可得到圖1所示的系統(tǒng)工作光路原理模型。根據(jù)針孔相機(jī)原理,可以得到如下的相似三角形關(guān)系:
那么目標(biāo)點(diǎn)距離激光器的距離即可通過公式(2)中得到:
d=sf/x sin(β)
(2)
公式(2)中B為激光發(fā)射器與坐標(biāo)系夾角,s為激光發(fā)射器距離相機(jī)光心距離,f為相機(jī)焦距。此種光路情況對于激光點(diǎn)剛好位于圖像中心,對于激光點(diǎn)像素不位于圖像中心時(shí),圖1中的f可以通過圖2所示關(guān)系換算,圖2中P1點(diǎn)表示圖像中心點(diǎn),P2點(diǎn)表示目標(biāo)點(diǎn)在圖像中的位置,且有,那么此時(shí):
將公式(3)代入公式(2)中,激光線上非中心點(diǎn)對應(yīng)的目標(biāo)點(diǎn)距離激光發(fā)射器的距離。把激光線繞物體旋轉(zhuǎn)360°,即可完成對物體的掃描建模。
基于此原理的掃描儀主要是在精度要求高,掃描物體較精細(xì)的場景下使用。目前有一款桌面級的3D掃描開源系統(tǒng)Ciclop也是基于此原理實(shí)現(xiàn)。Ciclop系統(tǒng)包括自動轉(zhuǎn)臺,線激光發(fā)射器,攝像頭和必須的支架,這款系統(tǒng)依據(jù)上述介紹的激光測距原理,獲取掃描物體的3D點(diǎn)云模型。團(tuán)隊(duì)對基于激光掃描法的測試也主要依賴Ciclop系統(tǒng)實(shí)現(xiàn),經(jīng)過參數(shù)調(diào)試,使用激光法得到的物體點(diǎn)云模型如圖3所示。
2.2 雙目立體視覺法
雙目立體視覺法是利用兩幅圖片之間的對極幾何約束條件,獲取視差圖像,從而得到物體的深度信息。這種方法是模擬人眼處理景物的方式,只需要兩個(gè)攝像頭即可,排除了激光法中激光對于敏感物體的潛在破壞風(fēng)險(xiǎn),具有很好的推廣價(jià)值。
雙目立體視覺法實(shí)現(xiàn)空間坐標(biāo)重建主要有圖像獲取、特征匹配和重建三個(gè)步驟。圖像獲取是由不同位置的兩臺攝像機(jī)獲取同一物體的過程;特征匹配是在兩幅圖片中通過特征關(guān)系,尋找對應(yīng)點(diǎn)的過程;重建就是根據(jù)匹配點(diǎn)對應(yīng)關(guān)系計(jì)算目標(biāo)點(diǎn)點(diǎn)空間坐標(biāo)的過程。
2.2.1 圖像匹配
圖像匹配通過提取圖片特征,尋找同一點(diǎn)在兩幅圖像中的像素坐標(biāo)的過程。常用的特征有圖像紋理特征(比如SIFT特征、SURF特征)和圖像編碼等。圖像紋理特征主要依賴圖像中具有的數(shù)學(xué)極值的特征點(diǎn),比如Hams角點(diǎn)等進(jìn)行定位,這種方法的優(yōu)勢就是只需要同時(shí)采集兩幅圖像即可,缺點(diǎn)就是對于物體表面無明顯紋理的物體無法使用,且有的點(diǎn)無法尋找到穩(wěn)定的對應(yīng)點(diǎn),造成重建效果不好。結(jié)構(gòu)光法通過投影編碼圖案到被測物體,并利用攝像頭采集編碼圖案后解碼獲取對應(yīng)點(diǎn)關(guān)系,是獲取對應(yīng)點(diǎn)最可靠的方式之一。此處實(shí)驗(yàn)使用時(shí)間多路二進(jìn)制編碼測試,系統(tǒng)對物體投射圖4所示橫縱交替編碼圖片,這些編碼圖片把攝像頭采集部分每個(gè)像素進(jìn)行編碼,簡單二進(jìn)制解碼后可以獲取兩幅圖片中每個(gè)像素的精確對應(yīng)關(guān)系。
2.2.2 空間點(diǎn)坐標(biāo)計(jì)算
物體空間點(diǎn)坐標(biāo)利用兩幅采集圖像的對應(yīng)關(guān)系求解。通過相機(jī)立體標(biāo)定,建立以攝像機(jī)1相機(jī)坐標(biāo)為世界坐標(biāo)的參考系,則對于攝像機(jī)2有X2=RXi+T。通過該式把世界坐標(biāo)系下坐標(biāo)轉(zhuǎn)到攝像機(jī)2坐標(biāo)系下;通過攝像機(jī)單機(jī)標(biāo)定,攝像機(jī)各自的內(nèi)參矩陣K己知,由相機(jī)模型原理可得:
zx=Kx
那么對于兩攝像機(jī)有如下公式:
式中X表示點(diǎn)的空間坐標(biāo),x,表示該點(diǎn)在攝像機(jī)1中的圖像齊次坐標(biāo)(Ul v1 l),X2表示該點(diǎn)在攝像機(jī)2中的圖像坐標(biāo)(U2 V2 1)。
求解上述方程組即可得到物體的空間坐標(biāo)。如圖5、圖6所示。
2.3 序列重建法
序列重建法利用序列圖像進(jìn)行三維重建,該方法只需要對物體拍攝不同角度的序列圖片即可,不需要依賴其余設(shè)備。這種方法主要利用的是雙目立體視覺的原理,由于圖像特征點(diǎn)匹配是稀疏的過程,為了達(dá)到一個(gè)較好的效果,這種方法還要進(jìn)行點(diǎn)云模型的稠密重建。
2.3.1 圖像稀疏重建
圖像的稀疏重建一般使用基于SIFT特征的方式,對兩幅圖片提取SIFT特征,然后進(jìn)行點(diǎn)與點(diǎn)的匹配得到兩幅圖像上的點(diǎn)對應(yīng)關(guān)系,然后根據(jù)2.2.2節(jié)的分析進(jìn)行對應(yīng)點(diǎn)的空間坐標(biāo)計(jì)算。不過這種情況下由于兩幅圖片的旋轉(zhuǎn)矩陣R和平移矩陣T是未知的,那么圖像稀疏重建的過程首先要進(jìn)行坐標(biāo)系自標(biāo)定。
坐標(biāo)系自標(biāo)定
序列圖像是同一攝像頭轉(zhuǎn)動不同角度拍攝物體得到的序列圖片,且每次拍攝的移動距離和角度都未知,那么通過圖像對應(yīng)關(guān)系獲取坐標(biāo)系的變換參數(shù)就是最主要的任務(wù)。
由2 2 2節(jié)可得:
s1x1=K1X
s2x2=K2(RX+T)
那么有:
s2x2=K2(Rs1K1-1x1+T)
對等式同時(shí)乘以X2T,也就是x2與T的外積,則有:
O=(x2xT)K2(RK1-1x1)
對于兩幅不同視角圖像,當(dāng)有多對特征對應(yīng)點(diǎn)時(shí),通過SVD求解上述方程組的解即可求得兩幅圖像對應(yīng)的相機(jī)坐標(biāo)系的變換矩陣,從而使用2.2.2節(jié)所述方法求取特征匹配點(diǎn)的空間坐標(biāo)。
2.3.2 稠密點(diǎn)云重建
2.3.1 節(jié)介紹了如何通過圖像匹配點(diǎn)求取物體特征點(diǎn)空間坐標(biāo),不過上述步驟得到的匹配點(diǎn)較少,需要PMVS算法進(jìn)行稠密重建獲取物體點(diǎn)云模型。實(shí)驗(yàn)使用VisualSFM系統(tǒng)進(jìn)行測試,得到的恢復(fù)點(diǎn)云重建模型如圖7所示,原始序列圖像數(shù)據(jù)來自。觀察重建模型不難發(fā)現(xiàn),頂部區(qū)域的重建效果很不理想,這就是因?yàn)轫敳繀^(qū)域的紋理特征點(diǎn)不穩(wěn)定,發(fā)生錯(cuò)誤匹配,導(dǎo)致計(jì)算的空間坐標(biāo)不正確。
2.4 對比
上述介紹的三種方法是主流的點(diǎn)云模型重建算法,已經(jīng)在很多領(lǐng)域得到了應(yīng)用。激光掃描法模型精度高,不過系統(tǒng)比較復(fù)雜,并且激光對于文物等物品有潛在破壞作用,不能便攜應(yīng)用;雙目立體視覺法依賴雙目攝像頭,較激光法的設(shè)備而言比較輕便,目前在手持掃描終端等移動端上應(yīng)用較多,部分手機(jī)也集成了雙目攝像頭;序列圖像的方法完全脫離了專用硬件設(shè)備的限制,只用一個(gè)普通攝像頭即可,該方法利用同一物體的不同角度照片即可實(shí)現(xiàn)物體建模,在互聯(lián)網(wǎng)圖片建模等方面較多,比如虛擬圖像瀏覽等。不過序列圖像法的精度較低,對于物體的精細(xì)化建模還有提高的空間,對于某些沒有明顯紋理的物體(比如純白瓷瓶等)無法處理。
需要注意的是,上述三種方法都是采用普通攝像頭采集激光線、編碼圖案或者物體圖像,環(huán)境因素(比如光照條件)對重建效果具有較大的影響,實(shí)驗(yàn)時(shí)需要盡可能調(diào)節(jié)環(huán)境因素減少處理難度。此外對于攝像頭無法拍攝到的區(qū)域(比如遮擋部分),還應(yīng)調(diào)整物體角度,多次重建后進(jìn)行點(diǎn)云模型融合等操作才會得到一個(gè)比較精確的模型。
3 小結(jié)
虛擬現(xiàn)實(shí)技術(shù)為用戶帶來全新的瀏覽體驗(yàn),本文從技術(shù)原理上分析了主流三種3D模型重建方法,分析對比各自方法的優(yōu)勢。隨著技術(shù)的發(fā)展,物聯(lián)網(wǎng)技術(shù)的成熟,沉浸式的交互需求會越來越旺,基于虛擬現(xiàn)實(shí)技術(shù)的應(yīng)用一定會越來越多,該技術(shù)有巨大的應(yīng)用前景。本文所述的建模方法不需要復(fù)雜的專用設(shè)備即可達(dá)到不錯(cuò)的效果,可以有效應(yīng)用于日常生活中,降低虛擬現(xiàn)實(shí)技術(shù)的門檻。