摘 要
針對(duì)于虛擬現(xiàn)實(shí)平臺(tái)中構(gòu)建三維場(chǎng)景的費(fèi)時(shí)費(fèi)力問(wèn)題,基于無(wú)人機(jī)傾斜攝影建模技術(shù)構(gòu)建三維模型,利用 3DS Max 建模軟件進(jìn)行模型優(yōu)化,并結(jié)合 Unity 3D 引擎構(gòu)建并完成了虛擬校園平臺(tái)的開發(fā)。實(shí)踐結(jié)果表明,構(gòu)建的虛擬現(xiàn)實(shí)平臺(tái),能夠?qū)o(wú)人機(jī)傾斜攝影建模技術(shù)構(gòu)建的三維場(chǎng)景模型很好的應(yīng)用在該平臺(tái)上,同時(shí) Unity 3D 引擎具有良好的開發(fā)環(huán)境,是虛擬現(xiàn)實(shí)平臺(tái)的強(qiáng)大開發(fā)工具。
關(guān)鍵詞:虛擬現(xiàn)實(shí);傾斜攝影測(cè)量技術(shù);Unity 3D;三維模型;虛擬漫游
引 言
隨著現(xiàn)代科學(xué)技術(shù)的不斷發(fā)展,計(jì)算機(jī)虛擬現(xiàn)實(shí)技術(shù)引起了人們的廣泛關(guān)注,特別是在智慧城市建設(shè)方面。所謂虛擬現(xiàn)實(shí)(virtual reality,VR)是一門集成了人與信息的科學(xué),是由計(jì)算機(jī)技術(shù)構(gòu)建的虛擬世界。它既是虛擬的,也是真實(shí)的,也可以是真實(shí)世界對(duì)虛擬世界的映射。
如今,虛擬現(xiàn)實(shí)技術(shù)被廣泛應(yīng)用于各個(gè)領(lǐng)域。與此同時(shí),計(jì)算機(jī)硬件和軟件的升級(jí)使虛擬現(xiàn)實(shí)技術(shù)得以更好的發(fā)展。一個(gè)真實(shí)的三維場(chǎng)景是虛擬現(xiàn)實(shí)平臺(tái)建設(shè)的基石,所以需要建設(shè)一個(gè)良好的虛擬現(xiàn)實(shí)平臺(tái),必須擁有一個(gè)逼真的虛擬環(huán)境。在傳統(tǒng)的三維場(chǎng)景建模中,需要到實(shí)地采集照片,進(jìn)行紋理貼圖制作,同時(shí)還得花費(fèi)大量的人力進(jìn)行模型場(chǎng)景的構(gòu)建。城市在高速發(fā)展,城市三維場(chǎng)景需要不斷的更新,這時(shí)需要一種全自動(dòng)或者半自動(dòng)的三維場(chǎng)景建模技術(shù)來(lái)解決當(dāng)下的問(wèn)題。如果將無(wú)人機(jī)傾斜攝影測(cè)量技術(shù)構(gòu)建的三維場(chǎng)景模型應(yīng)用于虛擬現(xiàn)實(shí)系統(tǒng)中,將大大縮短虛擬平臺(tái)的建設(shè)周期,利用無(wú)人機(jī)傾斜攝影測(cè)量技術(shù)獲取豐富的紋理信息數(shù)據(jù),生成高密度三維點(diǎn)云和三維TIN 網(wǎng)格模型,結(jié)合自動(dòng)化軟件構(gòu)建三維模型,實(shí)現(xiàn)三維場(chǎng)景的快速、高效、低成本的真實(shí)還原,用現(xiàn)勢(shì)的三維場(chǎng)景模型呈現(xiàn)城市信息,在城市規(guī)劃、建設(shè)、管理和應(yīng)急響應(yīng)中起著極其重要的作用。
應(yīng)用系統(tǒng)設(shè)計(jì)流程及關(guān)鍵技術(shù)
本文將無(wú)人機(jī)傾斜攝影建模技術(shù)應(yīng)用于在虛擬現(xiàn)實(shí)中,其應(yīng)用系統(tǒng)設(shè)計(jì)流程如圖 1 所示。具體步驟為:
①通過(guò)無(wú)人機(jī)航拍采集傾斜影像,檢查相鄰航帶側(cè)視影像飛行方向是否一致,確定圖像放置位置和攝像機(jī)參數(shù)設(shè)置,確定無(wú)誤后便可以進(jìn)行空中三角測(cè)量。
②在確認(rèn)影像數(shù)據(jù)正確后,進(jìn)行空中三角測(cè)量。根據(jù)少量的野外控制點(diǎn),進(jìn)行控制點(diǎn)加密,獲得精確外方位元素,并通過(guò)多視影像密集匹配尋找連接點(diǎn),構(gòu)建三維 TIN 網(wǎng)格。對(duì)于數(shù)據(jù)較大區(qū)塊,需要進(jìn)行數(shù)據(jù)分塊處理,本次實(shí)驗(yàn)選擇自適應(yīng)切塊,可以快速的自適應(yīng)計(jì)算機(jī) RAM 使用量,根據(jù)當(dāng)前計(jì)算機(jī)的性能給出一個(gè)參考范圍,在范圍內(nèi)設(shè)置目標(biāo) RAM 使用量值來(lái)順利進(jìn)行三維重建。
③根據(jù)三維 TIN 網(wǎng)格每個(gè)三角形瓦片的法線方程與二維圖像之間的夾角篩選出對(duì)應(yīng)的最優(yōu)紋理信息,完成自動(dòng)紋理映射;
④ 輸出并獲得 OBJ 格式三維場(chǎng)景模型,并導(dǎo)入 3DS Max 中進(jìn)行場(chǎng)景優(yōu)化。將其轉(zhuǎn)為可編輯多邊形,便可進(jìn)行懸浮物刪除,模型裁剪、變形修改等操作,然后在 UVW 展開界面修改映射錯(cuò)誤的紋理。
⑤將優(yōu)化好的模型導(dǎo)出 OBJ 格式至 Unity 3D 引擎,通過(guò)C#語(yǔ)言寫動(dòng)態(tài)交互功能腳本,實(shí)現(xiàn)場(chǎng)景的實(shí)時(shí)驅(qū)動(dòng)、用戶界面和場(chǎng)景漫游等功能,完成該虛擬漫游系統(tǒng)。
01
傾斜影像聯(lián)合空中三角測(cè)量
由于無(wú)人機(jī)航拍的傾斜影像中不僅有垂直影像數(shù)據(jù)還包括多個(gè)傾斜角度拍攝的影像數(shù)據(jù),傳統(tǒng)的同名像點(diǎn)自動(dòng)量測(cè)算法已不能適用于傾斜影像。通過(guò)在同一飛行平臺(tái)上使用多個(gè)傳感器,在拍攝影像時(shí)記錄影像參數(shù):包括航高、航向、航速、旁向重疊度和坐標(biāo)等,獲取以拍攝瞬間的 POS 觀測(cè)值作為原始影像粗略的初始外方位元素,結(jié)合傳感器的成像模型,通過(guò)成像模型可計(jì)算得到多視影像上每個(gè)像元的物方坐標(biāo),進(jìn)行相對(duì)定向,再進(jìn)行精確匹配,結(jié)合少量的野外控制點(diǎn)(像控點(diǎn))坐標(biāo),得到傾斜影像聯(lián)合空中三角測(cè)量成果。
02
多視影像密集匹配及TIN網(wǎng)格構(gòu)建
多視影像進(jìn)行密集匹配的實(shí)質(zhì)就是確定影像之間的同名像點(diǎn)。為防止遮擋對(duì)匹配造成的影響,匹配過(guò)程中還需過(guò)濾冗余信息。影像匹配的算法分 3 類:灰度匹配、特征匹配和關(guān)系匹配,匹配的共性就是在影像上按照匹配策略找同名點(diǎn)。根據(jù)獲取的同名點(diǎn)坐標(biāo),生成高密度 3D 點(diǎn)云數(shù)據(jù),得到不同細(xì)節(jié)層次三角 TIN 網(wǎng)格模型。同時(shí),通過(guò)相關(guān)算法的優(yōu)化,簡(jiǎn)化了相對(duì)平坦區(qū)域的三角網(wǎng)絡(luò),減少了數(shù)據(jù)冗余,進(jìn)而獲取地物的三維信息。因此,影像匹配是后期自動(dòng)生成數(shù)字表面模型、三維建模的技術(shù)基礎(chǔ)。
03
多視影像聯(lián)合平差
目前相對(duì)成熟的多視影像聯(lián)合平差方法為:利用由粗到精的金字塔匹配方法。利用 POS 系統(tǒng)得到的多視影像外方位元素,實(shí)現(xiàn)每級(jí)影像同名點(diǎn)的自動(dòng)匹配以及自由網(wǎng)光束法平差。當(dāng)獲得了比較好的同名點(diǎn)匹配結(jié)果時(shí),建立像控點(diǎn)坐標(biāo)、GPU/IMU 輔助數(shù)據(jù)和連接點(diǎn)線的多視影像自檢校區(qū)域網(wǎng)平差的誤差方程,經(jīng)過(guò)聯(lián)合解算,保證平差結(jié)果的準(zhǔn)確性。
04
重建自動(dòng)紋理映射技術(shù)
傾斜攝影技術(shù)在虛擬城市中作為一項(xiàng)重要數(shù)據(jù)源,自動(dòng)紋理映射技術(shù)可以從海量的影像數(shù)據(jù)中,快速、高效獲取豐富的紋理信息,能夠真實(shí)地反映地面的客觀情況,生成高質(zhì)量的三維場(chǎng)景,滿足現(xiàn)代社會(huì)的需求。
傳統(tǒng)的城市三維建模的方法是:
結(jié)合正射影像、測(cè)區(qū) CAD 地形圖等數(shù)據(jù),建立初始白模,在實(shí)地采集照片,然后對(duì)照片進(jìn)行處理,將紋理映射在白模上。這種方法消耗大量的人力、物力、財(cái)力。
自動(dòng)紋理映射技術(shù)的出現(xiàn)就能夠很好地解決這個(gè)問(wèn)題。無(wú)人機(jī)傾斜影像一般都是較高分辨率的影像,可以很好地呈現(xiàn)實(shí)地情況,滿足一定精度的建模。自動(dòng)紋理映射技術(shù)是利用影像的內(nèi)、外方位元素,恢復(fù)拍攝影像時(shí)的瞬間姿態(tài),然后通過(guò)聯(lián)系模型面與傾斜影像之間的索引關(guān)系,以三角網(wǎng)(TIN)模型為基礎(chǔ),根據(jù)數(shù)字三維技術(shù)和空間幾何技術(shù)相結(jié)合,對(duì)每一張影像數(shù)據(jù)進(jìn)行空間篩選,找出最符合模型的影像集,進(jìn)行影像像素采樣并讀入到模型上,自動(dòng)完成紋理映射。
05
場(chǎng)景漫游技術(shù)
虛擬現(xiàn)實(shí)注重人機(jī)交互的過(guò)程,其中場(chǎng)景漫游技術(shù)的重要性便不言而喻了。場(chǎng)景漫游技術(shù)是指在虛擬場(chǎng)景中借助必要的裝備實(shí)現(xiàn)全方位多角度瀏覽該虛擬場(chǎng)景的操作。如:通過(guò)鍵盤控制和鼠標(biāo)控制,能讓用戶在虛擬場(chǎng)景中前后左右任意方向行走等。在設(shè)計(jì)方面,本次實(shí)驗(yàn)制作分為空中漫游和地面漫游,通過(guò)控制飛機(jī)的姿態(tài)傾斜和速度快慢實(shí)現(xiàn)對(duì)虛擬場(chǎng)景的鳥瞰、俯視和穿梭等操作,另外也可將飛機(jī)著陸并進(jìn)行地面漫游,其界面中加入實(shí)時(shí)地圖導(dǎo)航,極大的賦予了該場(chǎng)景漫游的多樣性,給人不一樣的觀賞感受。
模型實(shí)現(xiàn)
本次實(shí)驗(yàn)采用的建模系統(tǒng)為 Smart3D Capture 全自動(dòng)三維建模系統(tǒng)。Smart3D Capture 處理流程如圖 2 所示,局部區(qū)域三維場(chǎng)景如圖 3 所示。
▲圖3 局部區(qū)域三維場(chǎng)景
01
三維模型的優(yōu)化
如今,傾斜攝影技術(shù)在三維場(chǎng)景建模方面取得了一定的成就。Smart3D Capture 軟件系統(tǒng)強(qiáng)大的數(shù)據(jù)處理能快速生成三維場(chǎng)景模型,但是還是有些地方是需要進(jìn)行改進(jìn)和完善的。如在樹林、水面、不規(guī)則的建筑物或是在建筑物遮擋比較嚴(yán)重的地方,建立的模型會(huì)存在一些變形或缺失。為了解決這些問(wèn)題,后期我們可以用 ZR-Modeler進(jìn)行模型優(yōu)化處理,主要進(jìn)行模型懸浮物的刪除、模型的裁剪、模型紋理錯(cuò)亂修改、模型變形修改等,模型紋理修改前后如圖 4 所示。
▲圖 4 模型紋理修改前后
02
三維模型的精度分析
在三維模型瀏覽平臺(tái)下查看模型的結(jié)果,地形的紋理、顏色、形狀和空間位置基本上與現(xiàn)實(shí)環(huán)境相同。地理要素類型齊全,建筑、道路等主要設(shè)施輪廓清晰。進(jìn)行空中三角測(cè)量的影像成功率為 96.99%,空中三角測(cè)量誤差報(bào)告中誤差各值小于 1 像素??罩腥菧y(cè)量誤差見(jiàn)表 1。
▲表 1 空中三角測(cè)量誤差
為更直觀體現(xiàn)模型精度,對(duì)模型中圖書館樓梯的長(zhǎng)度和寬度進(jìn)行了量測(cè)和檢驗(yàn),詳見(jiàn)圖 5 所示。
▲圖 5 圖書館樓梯長(zhǎng)度量測(cè)
從 Acute3D Viewer 中量測(cè)可以得到圖書館長(zhǎng)寬分別為 35.77 和 13.90 m,實(shí)地用 30 m 鋼卷尺測(cè)量出的長(zhǎng)寬分別為 35.73 和 13.87 m,模型中量測(cè)值與實(shí)地量測(cè)數(shù)據(jù)十分接近,充分體現(xiàn)了模型的高精度,為后續(xù)的系統(tǒng)應(yīng)用提供了精度保障。
系統(tǒng)實(shí)現(xiàn)
Unity 3D 是由 Unity Technologies 開發(fā)的多平臺(tái)集成游戲開發(fā)工具,可讓用戶輕松創(chuàng)建交互式內(nèi)容。本文采用 Unity 3D 引擎構(gòu)建校園虛擬漫游系統(tǒng),具有模型兼容性好、運(yùn)行穩(wěn)定、交互設(shè)計(jì)多樣等優(yōu)點(diǎn)。以桂林理工大學(xué)為試驗(yàn)地區(qū),規(guī)劃功能需求,制定桂林理工大學(xué)虛擬漫游系統(tǒng)設(shè)計(jì)方案,系統(tǒng)實(shí)現(xiàn)流程如圖 6 所示。
▲圖 6 系統(tǒng)實(shí)現(xiàn)流程
01
場(chǎng)景模型導(dǎo)入
將 3DS Max 導(dǎo)出的 OBJ 格式的模型文件置入 Unity3D 場(chǎng)景中進(jìn)行位置擺放。創(chuàng)建燈光以實(shí)現(xiàn)在不同氣候條件下的校園場(chǎng)景,如晴天,陰天,霧天、雨天等場(chǎng)景。調(diào)節(jié)光線,調(diào)整至合適亮度,體現(xiàn)出空間層次感。添加碰撞,可以用內(nèi)置的 Box Collider 或者 Mesh Collider 碰撞組件,對(duì)地面、建筑和樹等場(chǎng)景添加該屬性。
02
角色漫游的設(shè)計(jì)與實(shí)現(xiàn)
在虛擬系統(tǒng)中,實(shí)現(xiàn)漫游是最基本的功能,Unity 3D 已經(jīng)設(shè)計(jì)有角色控制器組件(Characters),import Package→Characters,可以直接調(diào)用,需要調(diào)整視角、位置、奔跑速度和加速度等參數(shù)。默認(rèn)情況下,用戶按下 W、S、A 和 D 鍵,同時(shí)控制鼠標(biāo)調(diào)整視野位置,實(shí)現(xiàn)人物在場(chǎng)景中漫游的效果。
03
GUI界面的設(shè)計(jì)和實(shí)現(xiàn)
在本漫游系統(tǒng)中,GUI 界面是用戶與系統(tǒng)之間的橋梁。通過(guò) GUI 界面的引導(dǎo),用戶可以進(jìn)入其他界面進(jìn)行瀏覽,同時(shí)用戶也可以自行選擇不同的場(chǎng)景,實(shí)現(xiàn)相應(yīng)的漫游功能。在 GUI 主界面,共創(chuàng)建了多個(gè)菜單選項(xiàng),包括校園漫步、校園航飛、學(xué)校簡(jiǎn)介、導(dǎo)航、幫助等菜單選項(xiàng)。本系統(tǒng)中 GUI 界面的創(chuàng)建,首先在工程視圖中,右擊 Create→UI,將所需要的控件加入到 Canvas,并調(diào)整到合適的位置,最后將控件所要實(shí)現(xiàn)的功能代碼加入到 UI 中。由于組件較多,可以構(gòu)建思維導(dǎo)圖用來(lái)規(guī)劃邏輯,以免遺漏。主界面 GUI 如圖 7 所示。
▲圖 7 主界面 GUI
3.4 系統(tǒng)生成先點(diǎn)擊頁(yè)面左上方的 file→Building settings,或者用快捷鍵 Ctrl +Shift +B 快速進(jìn)入,點(diǎn)擊 PC、Mac 所在的圖標(biāo),選擇 Windows 系統(tǒng),根據(jù)電腦選擇×86 還是×64,點(diǎn)擊 Build,給生成的文件夾重命名和選擇導(dǎo)出位置。
三維數(shù)字校園漫游界面如圖 8 所示。
▲圖 8 三維數(shù)字校園漫游界面
結(jié)束語(yǔ)
本文結(jié)合虛擬現(xiàn)實(shí)技術(shù)和無(wú)人機(jī)傾斜攝影技術(shù)設(shè)計(jì)并實(shí)現(xiàn)了校園虛擬漫游系統(tǒng)。利用傾斜攝影技術(shù)以及強(qiáng)大的圖像幾何運(yùn)算軟件(Smart 3D Capture)來(lái)生產(chǎn)城市三維模型方法的可行性,快速構(gòu)建三維場(chǎng)景,并應(yīng)用 3DS Max 建模軟件進(jìn)行場(chǎng)景優(yōu)化,最后導(dǎo)入 Unity 3D 引擎實(shí)現(xiàn)虛擬漫游的技術(shù)路線和實(shí)施方案,實(shí)現(xiàn)了三維交互式校園布局展示功能。該系統(tǒng)開發(fā)基本達(dá)到預(yù)期目的,實(shí)現(xiàn)了碰撞檢測(cè)、虛擬漫游等功能,該系統(tǒng)的研究和實(shí)現(xiàn)對(duì)后續(xù)虛擬城市項(xiàng)目建設(shè)具有重要的現(xiàn)實(shí)意義。
來(lái)源:《桂林理工大學(xué)學(xué)報(bào)》
作者:康傳利、程耀、石靈璠
原標(biāo)題:《學(xué)術(shù)丨無(wú)人機(jī)傾斜攝影建模技術(shù)在虛擬現(xiàn)實(shí)中的應(yīng)用》