李想,張世強(qiáng),梁倩
(1.西北大學(xué) 陜西省地表系統(tǒng)與環(huán)境承載力重點(diǎn)實(shí)驗(yàn)室,西安 710127;2.西北大學(xué) 城市與環(huán)境學(xué)院,西安 710127)
隨著“智慧城市”和“數(shù)字地球”等概念的提出,以及生活中動(dòng)態(tài)導(dǎo)航的普及,人們對(duì)三維地理空間數(shù)據(jù)現(xiàn)勢(shì)性的需求越來越強(qiáng)烈,從而需要更快的三維建模效率、更高的模型精度和更真實(shí)的模型[1]。三維模型在傳統(tǒng)上主要從航空遙感和衛(wèi)星遙感獲取的立體像對(duì)中提取,具有成本高、周期長(zhǎng)、自主性弱等問題,難以對(duì)大比例尺數(shù)字地圖進(jìn)行及時(shí)、大范圍的更新。無人機(jī)具有云下低空飛行、數(shù)據(jù)采集靈活、時(shí)效性強(qiáng)、成本低廉等優(yōu)勢(shì),基于無人機(jī)航拍影像的三維重建技術(shù)是解決中小范圍影像問題的有效手段。
現(xiàn)有無人機(jī)的三維重建方法主要分為基于傳統(tǒng)航測(cè)理論的改進(jìn)方法和基于多視幾何理論的方法,前者需要有多個(gè)相機(jī)同時(shí)進(jìn)行拍攝,對(duì)于無人機(jī)的姿態(tài)控制、相機(jī)定向等要求較高[2]。而基于序列影像重建主要根據(jù)圖像特征、多視幾何等求解,相比較傳統(tǒng)的航測(cè)方法,通過單個(gè)相機(jī)的序列圖像即可實(shí)現(xiàn),其利用小型四旋翼無人機(jī)即可實(shí)現(xiàn)數(shù)據(jù)獲取,該方法雖起步較晚,但已快速成為熱門的研究方向[3-7]。
1992年,F(xiàn)augeras[8]首次提出可以通過未標(biāo)定的序列影像進(jìn)行場(chǎng)景和物體的三維重建。同年,Hartley[9]提出了三維重建的相關(guān)理論,即三維重建分為:對(duì)應(yīng)點(diǎn)關(guān)系的提取、攝影重建和尺度重建3個(gè)部分,分層重建的思想成為主流思想。1999年,Karras等[10]利用傳統(tǒng)航測(cè)方法對(duì)無人機(jī)影像進(jìn)行處理,證明了數(shù)字正射攝影技術(shù)可以進(jìn)行低空非標(biāo)準(zhǔn)考古學(xué)圖像的重建,這被視為首次對(duì)無人機(jī)序列影像進(jìn)行應(yīng)用。2008年,Noah[11]完善了三維重建框架,成功開發(fā)了Bundler算法,該算法可以利用無人機(jī)序列影像進(jìn)行場(chǎng)景三維重建。以上研究主要用于提取圖像中的稀疏關(guān)鍵點(diǎn),且只能恢復(fù)到稀疏點(diǎn)云三維重建,對(duì)于真實(shí)模型的三維重建還具有一定距離。2010年,Yasutaka Furukawa等[12]提出基于面片的多視圖立體視覺(patch based multi-view stereo,PMVS)和基于聚類的多視圖立體算法(cluster based multi-view stereo,CMVS)對(duì)稀疏點(diǎn)云進(jìn)行密集點(diǎn)云重建,從而實(shí)現(xiàn)了更真實(shí)的三維模型重建。近年來,隨著相關(guān)技術(shù)的不斷成熟,市場(chǎng)上已經(jīng)出現(xiàn)了多種商業(yè)化無人機(jī)影像處理軟件,知名的軟件有:Altizure、Pix4Dmapper、Agisoft Photoscan等,研究人員通過對(duì)比相關(guān)軟件和模塊,分析精度并提出改進(jìn)的方法。2012年,Strecha等[13-14]提出超輕型無人機(jī)可以使用Pix4Dmapper軟件進(jìn)行全自動(dòng)化和精確的測(cè)繪,其精度取決于飛行高度,選擇適當(dāng)?shù)挠成浣鉀Q方案可以得到與傳統(tǒng)的地圖相媲美的效果。2013年,Gini等[15]對(duì)比了多種無人機(jī)處理軟件,認(rèn)為經(jīng)過濾波處理后Photoscan的結(jié)果較Pix4Dmapper更優(yōu)秀,對(duì)于陰影區(qū)的重建結(jié)果精度更高。
綜合已有文獻(xiàn)[16-20]看,無人機(jī)序列影像的三維重建研究仍處于起步階段,無人機(jī)重建框架流程不斷快速發(fā)展,但無人機(jī)序列影像的三維重建仍面臨許多問題,如數(shù)據(jù)量大、冗余率高、數(shù)據(jù)獲取參數(shù)難以優(yōu)化等,其中基于小型四旋翼無人機(jī)的三維重建相關(guān)報(bào)道仍不多。本實(shí)驗(yàn)通過小型四旋翼無人機(jī)開展了無人機(jī)序列影像的三維重建實(shí)驗(yàn),建立了三維重建的完整流程。在此基礎(chǔ)上,討論了三維重建中的關(guān)鍵技術(shù),基于對(duì)比實(shí)驗(yàn)提出了相應(yīng)的優(yōu)化參數(shù),從而形成了較好的解決方案。
無人機(jī)序列影像的三維重建方法流程圖如圖1所示。首先需要獲取數(shù)據(jù),得到未處理的無人機(jī)序列影像,通過相機(jī)標(biāo)定、畸變校正等處理后進(jìn)行特征點(diǎn)的提取與匹配,在此基礎(chǔ)上進(jìn)行稀疏點(diǎn)云重建,再通過PMVS方法進(jìn)行密集點(diǎn)云重建,對(duì)得到的密集點(diǎn)云再進(jìn)行表面紋理重建生成三維場(chǎng)景或模型重建(圖2)。
圖1 三維重建實(shí)驗(yàn)流程圖
圖2 基于小型四旋翼無人機(jī)的三維重建實(shí)驗(yàn)過程
由于小型無人機(jī)多數(shù)搭載非專業(yè)攝影測(cè)量相機(jī)作為傳感器系統(tǒng),而無人機(jī)影像進(jìn)行三維重建前需要滿足高分辨率、高精度的要求,必須通過相機(jī)標(biāo)定得到相機(jī)的畸變參數(shù),進(jìn)而通過數(shù)學(xué)模型和畸變參數(shù)對(duì)影像進(jìn)行畸變校正。傳統(tǒng)標(biāo)定方法雖然精度高但對(duì)設(shè)備有較高的要求,其過程也比較繁瑣,自標(biāo)定方法的精度不高。
1998年,Zhang[21]提出了基于移動(dòng)平面模板的相機(jī)標(biāo)定方法,此方法介于傳統(tǒng)標(biāo)定方法和自標(biāo)定方法之間,克服了這二者的缺點(diǎn)同時(shí)又兼?zhèn)涠叩膬?yōu)點(diǎn)。本實(shí)驗(yàn)所用數(shù)據(jù)由消費(fèi)級(jí)四旋翼無人機(jī)DJI Mavic攝影,相機(jī)類型為FC220,分辨率4 000像素×3 000像素,相機(jī)標(biāo)定見圖2(a),相機(jī)標(biāo)定參數(shù)見表1。
表1 相機(jī)標(biāo)定參數(shù)
通過得到相機(jī)內(nèi)參數(shù),系統(tǒng)會(huì)對(duì)照片位置進(jìn)行優(yōu)化,通過標(biāo)定相機(jī),為之后的數(shù)據(jù)處理提供了良好基礎(chǔ)。
圖像特征點(diǎn),或者稱為圖像角點(diǎn),通常為圖像中有明顯明暗變化或者紋理豐富的物體邊緣點(diǎn)等。無人機(jī)影像視角變化大、重疊度不規(guī)律、冗余度高,因此,必須進(jìn)行合理的特征點(diǎn)提取和匹配。尺度不變特征變化算法(scale invariant feature transform,SIFT)具有旋轉(zhuǎn)、尺度與光照不變性,是當(dāng)前研究最多的一種局部特征匹配算法,廣泛運(yùn)用于無人機(jī)影像的匹配過程。因此,本研究使用SIFT算法提取圖像特征點(diǎn),并進(jìn)行特征匹配[22](圖2(b))。需要指出的是SIFT算法的前提是假設(shè)圖像之間滿足相似變換,適合處理相鄰角度偏差小于30°的影像。
稀疏點(diǎn)云重建(sparse point cloud reconstruction,SPCR)的基本理念是運(yùn)動(dòng)恢復(fù)結(jié)構(gòu)(structure from motion,SfM),現(xiàn)在常用的技術(shù)是Noah等[11]基于Lecenberg-Marquardt算法主導(dǎo)開發(fā)的Bundler重建框架,其根據(jù)SI-FT匹配得到的結(jié)果得到相機(jī)位置等場(chǎng)景信息,提取圖像中稀疏的關(guān)鍵點(diǎn),進(jìn)而通過匹配點(diǎn)數(shù)最多的2張圖像中的特征點(diǎn)匹配,計(jì)算出這2幅圖像的三維信息,在此基礎(chǔ)上不斷加入新的序列圖像進(jìn)行迭代,從而重建稀疏點(diǎn)云(圖2(c))。
密集點(diǎn)云重建(dense point cloud reconstruction,DPCR),是將基于面片的多視圖立體視覺PMVS方法作用于稀疏點(diǎn)云,從而生成密集點(diǎn)云。多視圖幾何重建使用的圖像重疊度很高,因此在進(jìn)行PMVS之前,要先使用基于聚類的多視圖立體視覺CMVS方法對(duì)影像進(jìn)行聚簇分類,以減少密集重建數(shù)據(jù)量。之后,在光度不變和全局可見性的約束下,利用PMVS方法匹配、擴(kuò)散和篩選3個(gè)步驟生成最終的密集點(diǎn)云(圖2(d))。
在密集點(diǎn)云重建后,可將離散的各個(gè)點(diǎn)云數(shù)據(jù)生成不規(guī)則三角網(wǎng)格(triangulated irregular network,TIN),然后在模型與紋理結(jié)合,即可完成帶有紋理的三維模型重建(圖2(e))。在遙感圖像的三維可視化方面,主要是依據(jù)數(shù)字地表模型(digital surface model,DSM)反映真實(shí)地形,DSM可以只通過航拍數(shù)據(jù)自動(dòng)合成獲得,在更精準(zhǔn)的測(cè)量需求下需要在地面加入適量控制點(diǎn),從而約束并校準(zhǔn)地面真實(shí)模型(圖2(f))。
由于消費(fèi)級(jí)小型無人機(jī)通常只帶有單個(gè)鏡頭,以測(cè)繪為目的的空中攝影多采用豎直攝影方式,因此通常需要保持無人機(jī)鏡頭豎直對(duì)地拍攝。
三維重建需要立體像對(duì)進(jìn)行匹配加密,相鄰圖幅間的同名地物點(diǎn)需要具有同樣的精度來保證匹配,因此要求無人機(jī)在飛行過程中保持穩(wěn)定的姿態(tài)。而小型旋翼無人機(jī)因?yàn)橹亓枯^輕,在空中飛行時(shí)受到氣流影響,極易導(dǎo)致飛行姿態(tài)不穩(wěn)定,從而導(dǎo)致獲取的序列影像存在不同方向的畸變差,使匹配后圖像發(fā)生扭曲畸變,如圖3所示。
圖3 受姿態(tài)影響產(chǎn)生的匹配畸變
相機(jī)通過云臺(tái)搭載在無人機(jī)上,若相機(jī)拍照時(shí)無人機(jī)仍在飛行,在相機(jī)曝光時(shí)間內(nèi)無人機(jī)飛行過的距離在傳感器中成像的同名地物點(diǎn)移動(dòng)的距離稱為像點(diǎn)位移,運(yùn)動(dòng)產(chǎn)生的像點(diǎn)位移會(huì)造成影像模糊,對(duì)于小型的非量測(cè)相機(jī),像點(diǎn)位移沒有辦法得到補(bǔ)償,因此拍攝時(shí)需盡量保持相對(duì)較低航速。
理論上,在同一高度上用同一相機(jī)進(jìn)行拍攝,所得相片的比例尺是一致的。但是,受各種因素的影響,飛機(jī)的飛行高度總是會(huì)發(fā)生變化,從而使比例尺發(fā)生變化,比例尺變化過大會(huì)導(dǎo)致后期處理出現(xiàn)錯(cuò)誤,相片比例尺由相機(jī)的主距和航高確定:
(1)
式中:1/m為相片比例尺;f為攝影機(jī)主距;H為航高。
對(duì)于同一次航拍作業(yè),主距f為常量,相片比例尺與航高成比例。設(shè)航高變化量為±ΔH,比例尺分母變化量為±Δm,則:
(2)
相對(duì)誤差一般不應(yīng)超過5%,則:
ΔH≤5%·H
(3)
在拍攝過程中,無人機(jī)按照航線飛行兩兩相鄰相片對(duì)所攝地面要有一定的重疊影像,這種重疊影像部分稱為航向重疊度,對(duì)于兩條相鄰航帶之間的相片也要有一定的影像重疊,這種重疊影像部分稱為旁向重疊度,一般相片重疊度是用相幅邊長(zhǎng)的百分?jǐn)?shù)表示,即:
(4)
(5)
式中:lx、ly表示相幅的邊長(zhǎng);Px、Py表示航向和旁向重疊影像部分的邊長(zhǎng)。
相片的重疊部分是立體觀察和相片連接所必須的條件,低重疊度可能會(huì)產(chǎn)生不良后果,只有該區(qū)域內(nèi)有數(shù)量足夠的關(guān)鍵點(diǎn)匹配,才會(huì)產(chǎn)生良好的結(jié)果。
航高是另一個(gè)重要因素,對(duì)于航高的確定要綜合考慮地面分辨率、飛行作業(yè)工作量和安全等因素。當(dāng)飛行鏡頭焦距不變時(shí),航高越高,分辨率越低;反之,當(dāng)航高越低,分辨率越高。但是為了要求更高分辨率而使航高較低時(shí),可能會(huì)導(dǎo)致安全問題。
對(duì)于區(qū)域測(cè)繪作業(yè)來說,航高也決定了工作量,利用Mavic Pro Camera的參數(shù)對(duì)同一地區(qū)進(jìn)行了不同高度拍攝數(shù)量估算,設(shè)航向重疊率為80%、旁向重疊率為60%,則航高與航點(diǎn)數(shù)的關(guān)系如圖4所示。
圖4 航高與航點(diǎn)數(shù)關(guān)系圖
從圖4中可以看出,航點(diǎn)數(shù)與航高呈現(xiàn)冪函數(shù)關(guān)系,從20 m到80 m航高,航點(diǎn)數(shù)減少了近20倍,所以從工作量上考慮,提高航高可以有效降低飛行工作量。所以,確定航高時(shí)需要綜合考慮,在保證安全的情況下,需要保持分辨率與工作量之間的平衡。
對(duì)無人機(jī)的飛行要求決定了無人機(jī)序列影像的質(zhì)量,而無人機(jī)序列影像的質(zhì)量直接影響到后期處理的質(zhì)量及精度。因此,要盡量保持飛行姿態(tài)平穩(wěn),垂直對(duì)地拍攝;保持航速較低,從而減小像點(diǎn)位移;重疊度至少保持在航向重疊度60%和旁向重疊度40%,要進(jìn)行較好的三維重建,推薦航向重疊度和旁向重疊度提高到80%和60%;根據(jù)工作目的綜合確定航高。
無人機(jī)序列影像的獲取模式有多種,包括手動(dòng)操控航拍、自動(dòng)規(guī)劃路徑航拍等,獲取到的數(shù)據(jù)源類型可以為照片也可以為視頻。對(duì)待不同的地區(qū)可以選擇不同的拍攝方法,若對(duì)小范圍地區(qū)進(jìn)行精細(xì)地表觀察,通常采用航點(diǎn)懸停拍攝模式;若對(duì)建筑等大型個(gè)體場(chǎng)景進(jìn)行三維重建多選擇環(huán)繞拍攝模式,全方位的拍攝后進(jìn)行三維重建;若對(duì)某個(gè)街道或小區(qū)范圍等建筑物較多而且相對(duì)較大的地方則可以采用掠過式拍攝模式如等時(shí)間距拍攝或等距間距拍攝。此外,對(duì)于不同的目的所選擇的拍攝方式也是不同的,如果需要快速拼接全景影像圖,一般選擇垂直對(duì)地觀測(cè);若需要精細(xì)的地表三維模型,則常采用傾斜攝影測(cè)量。
表2和表3均為在地面站控制模式下無人機(jī)接收自主航線規(guī)劃進(jìn)行的自動(dòng)定向飛行。當(dāng)前無人機(jī)三維重建流程已經(jīng)越來越趨于自動(dòng)化,但是合適的人工干預(yù)和人工操作可以起到至關(guān)重要的作用。在自動(dòng)拍攝過后重建效果不理想時(shí)可以再進(jìn)行手動(dòng)飛行拍攝補(bǔ)充,地物重建效果更好。
表2 無人機(jī)不同拍照模式的優(yōu)缺點(diǎn)對(duì)比
表3 面向不同應(yīng)用推薦的不同拍照模式(√代表推薦方法)
隨著商業(yè)軟件的不斷發(fā)展,它們?cè)谔幚頍o人機(jī)影像上的能力各有不同,本實(shí)驗(yàn)選擇Pix4Dmapper、Agisoft Photoscan、Altizure和開源軟件VisualSFM進(jìn)行重建,對(duì)比不同軟件重建精度及用時(shí)結(jié)果。
如表4所示,從用時(shí)上判斷,Altizure和Pix4Dmapper較Photoscan與VisualSFM軟件用時(shí)少,但Pix4Dmapper和VisualSFM只能重建到密集點(diǎn)云,而Photoscan和Altizure可以完整三維重建流程。從重建方式上判斷,Altizure是上傳云處理,而其他軟件需要本地處理,若針對(duì)大范圍區(qū)域,Altizure十分實(shí)用。
表4 不同軟件重建數(shù)據(jù)對(duì)比
由于不同的軟件最終結(jié)果不同,Pix4Dmapper和VisualSFM軟件進(jìn)行到密集點(diǎn)云重建后,要繼續(xù)進(jìn)行真實(shí)三維還原需要借助其他軟件,而Photoscan和Altizure可以進(jìn)行三維模型還原和DSM生成。本實(shí)驗(yàn)就最終結(jié)果進(jìn)行對(duì)比,開源軟件VisualSFM的密集點(diǎn)云較Pix4Dmapper少,呈現(xiàn)多處空白。而Photoscan和Altizure軟件相較前2個(gè)軟件處理方式更加簡(jiǎn)單自動(dòng)化,從效果上看,Altizure可以還原出航拍時(shí)路過的人群,且三維重建模型最豐富。綜上所述,本實(shí)驗(yàn)對(duì)比分析后認(rèn)為以上幾款軟件的重建效果是Altizure>Photoscan>Pix4Dmapper>VisualSFM。
本文在計(jì)算機(jī)處理和人工處理相結(jié)合的情況下,針對(duì)無人機(jī)影像拍攝和后期處理中存在的問題如無人機(jī)飛行姿態(tài)控制、拍攝模式選擇以及后期處理成像精度進(jìn)行了分析,結(jié)果表明:
①無人機(jī)影像序列的三維重建只需要較少的人工干預(yù)即可以獲得三維重建數(shù)據(jù)。對(duì)于需要進(jìn)行精細(xì)測(cè)繪要求的作業(yè)需要加入人工控制點(diǎn),對(duì)于需求快速拼接成圖的作業(yè)可進(jìn)行空中全自動(dòng)作業(yè)。
②在飛行過程中,要保持無人機(jī)飛行姿態(tài)穩(wěn)定,需要控制無人機(jī)飛行的航高、航速以及分辨率,拍攝數(shù)量要有足夠的重疊度才能有精細(xì)的攝影測(cè)量成圖。對(duì)于不同的重建目的應(yīng)選擇不同的鏡頭和拍照模式。若拍攝小區(qū)域且要求精度較高,推薦選擇航點(diǎn)懸停拍攝模式,若拍攝較大區(qū)域,推薦使用等時(shí)間距拍攝或者等距間距拍攝模式。
③不同軟件重建結(jié)果不同,云處理的Altizure軟件相較其他軟件具有優(yōu)勢(shì),而若要自主算法更新,開源軟件VisualSFM等軟件更為實(shí)用。
目前的無人機(jī)三維重建應(yīng)用仍有限,三維模型更多作為展示或演示功能,其中蘊(yùn)含的數(shù)據(jù)應(yīng)用還遠(yuǎn)不如二維數(shù)據(jù)。因此,之后的研究方向應(yīng)該是如何將三維重建模型更精細(xì)化,并且可以應(yīng)用到更多方面。