李想,張世強,梁倩
(1.西北大學 陜西省地表系統與環境承載力重點實驗室,西安 710127;2.西北大學 城市與環境學院,西安 710127)
隨著“智慧城市”和“數字地球”等概念的提出,以及生活中動態導航的普及,人們對三維地理空間數據現勢性的需求越來越強烈,從而需要更快的三維建模效率、更高的模型精度和更真實的模型[1]。三維模型在傳統上主要從航空遙感和衛星遙感獲取的立體像對中提取,具有成本高、周期長、自主性弱等問題,難以對大比例尺數字地圖進行及時、大范圍的更新。無人機具有云下低空飛行、數據采集靈活、時效性強、成本低廉等優勢,基于無人機航拍影像的三維重建技術是解決中小范圍影像問題的有效手段。
現有無人機的三維重建方法主要分為基于傳統航測理論的改進方法和基于多視幾何理論的方法,前者需要有多個相機同時進行拍攝,對于無人機的姿態控制、相機定向等要求較高[2]。而基于序列影像重建主要根據圖像特征、多視幾何等求解,相比較傳統的航測方法,通過單個相機的序列圖像即可實現,其利用小型四旋翼無人機即可實現數據獲取,該方法雖起步較晚,但已快速成為熱門的研究方向[3-7]。
1992年,Faugeras[8]首次提出可以通過未標定的序列影像進行場景和物體的三維重建。同年,Hartley[9]提出了三維重建的相關理論,即三維重建分為:對應點關系的提取、攝影重建和尺度重建3個部分,分層重建的思想成為主流思想。1999年,Karras等[10]利用傳統航測方法對無人機影像進行處理,證明了數字正射攝影技術可以進行低空非標準考古學圖像的重建,這被視為首次對無人機序列影像進行應用。2008年,Noah[11]完善了三維重建框架,成功開發了Bundler算法,該算法可以利用無人機序列影像進行場景三維重建。以上研究主要用于提取圖像中的稀疏關鍵點,且只能恢復到稀疏點云三維重建,對于真實模型的三維重建還具有一定距離。2010年,Yasutaka Furukawa等[12]提出基于面片的多視圖立體視覺(patch based multi-view stereo,PMVS)和基于聚類的多視圖立體算法(cluster based multi-view stereo,CMVS)對稀疏點云進行密集點云重建,從而實現了更真實的三維模型重建。近年來,隨著相關技術的不斷成熟,市場上已經出現了多種商業化無人機影像處理軟件,知名的軟件有:Altizure、Pix4Dmapper、Agisoft Photoscan等,研究人員通過對比相關軟件和模塊,分析精度并提出改進的方法。2012年,Strecha等[13-14]提出超輕型無人機可以使用Pix4Dmapper軟件進行全自動化和精確的測繪,其精度取決于飛行高度,選擇適當的映射解決方案可以得到與傳統的地圖相媲美的效果。2013年,Gini等[15]對比了多種無人機處理軟件,認為經過濾波處理后Photoscan的結果較Pix4Dmapper更優秀,對于陰影區的重建結果精度更高。
綜合已有文獻[16-20]看,無人機序列影像的三維重建研究仍處于起步階段,無人機重建框架流程不斷快速發展,但無人機序列影像的三維重建仍面臨許多問題,如數據量大、冗余率高、數據獲取參數難以優化等,其中基于小型四旋翼無人機的三維重建相關報道仍不多。本實驗通過小型四旋翼無人機開展了無人機序列影像的三維重建實驗,建立了三維重建的完整流程。在此基礎上,討論了三維重建中的關鍵技術,基于對比實驗提出了相應的優化參數,從而形成了較好的解決方案。
無人機序列影像的三維重建方法流程圖如圖1所示。首先需要獲取數據,得到未處理的無人機序列影像,通過相機標定、畸變校正等處理后進行特征點的提取與匹配,在此基礎上進行稀疏點云重建,再通過PMVS方法進行密集點云重建,對得到的密集點云再進行表面紋理重建生成三維場景或模型重建(圖2)。

圖1 三維重建實驗流程圖

圖2 基于小型四旋翼無人機的三維重建實驗過程
由于小型無人機多數搭載非專業攝影測量相機作為傳感器系統,而無人機影像進行三維重建前需要滿足高分辨率、高精度的要求,必須通過相機標定得到相機的畸變參數,進而通過數學模型和畸變參數對影像進行畸變校正。傳統標定方法雖然精度高但對設備有較高的要求,其過程也比較繁瑣,自標定方法的精度不高。
1998年,Zhang[21]提出了基于移動平面模板的相機標定方法,此方法介于傳統標定方法和自標定方法之間,克服了這二者的缺點同時又兼備二者的優點。本實驗所用數據由消費級四旋翼無人機DJI Mavic攝影,相機類型為FC220,分辨率4 000像素×3 000像素,相機標定見圖2(a),相機標定參數見表1。

表1 相機標定參數
通過得到相機內參數,系統會對照片位置進行優化,通過標定相機,為之后的數據處理提供了良好基礎。
圖像特征點,或者稱為圖像角點,通常為圖像中有明顯明暗變化或者紋理豐富的物體邊緣點等。無人機影像視角變化大、重疊度不規律、冗余度高,因此,必須進行合理的特征點提取和匹配。尺度不變特征變化算法(scale invariant feature transform,SIFT)具有旋轉、尺度與光照不變性,是當前研究最多的一種局部特征匹配算法,廣泛運用于無人機影像的匹配過程。因此,本研究使用SIFT算法提取圖像特征點,并進行特征匹配[22](圖2(b))。需要指出的是SIFT算法的前提是假設圖像之間滿足相似變換,適合處理相鄰角度偏差小于30°的影像。
稀疏點云重建(sparse point cloud reconstruction,SPCR)的基本理念是運動恢復結構(structure from motion,SfM),現在常用的技術是Noah等[11]基于Lecenberg-Marquardt算法主導開發的Bundler重建框架,其根據SI-FT匹配得到的結果得到相機位置等場景信息,提取圖像中稀疏的關鍵點,進而通過匹配點數最多的2張圖像中的特征點匹配,計算出這2幅圖像的三維信息,在此基礎上不斷加入新的序列圖像進行迭代,從而重建稀疏點云(圖2(c))。
密集點云重建(dense point cloud reconstruction,DPCR),是將基于面片的多視圖立體視覺PMVS方法作用于稀疏點云,從而生成密集點云。多視圖幾何重建使用的圖像重疊度很高,因此在進行PMVS之前,要先使用基于聚類的多視圖立體視覺CMVS方法對影像進行聚簇分類,以減少密集重建數據量。之后,在光度不變和全局可見性的約束下,利用PMVS方法匹配、擴散和篩選3個步驟生成最終的密集點云(圖2(d))。
在密集點云重建后,可將離散的各個點云數據生成不規則三角網格(triangulated irregular network,TIN),然后在模型與紋理結合,即可完成帶有紋理的三維模型重建(圖2(e))。在遙感圖像的三維可視化方面,主要是依據數字地表模型(digital surface model,DSM)反映真實地形,DSM可以只通過航拍數據自動合成獲得,在更精準的測量需求下需要在地面加入適量控制點,從而約束并校準地面真實模型(圖2(f))。
由于消費級小型無人機通常只帶有單個鏡頭,以測繪為目的的空中攝影多采用豎直攝影方式,因此通常需要保持無人機鏡頭豎直對地拍攝。
三維重建需要立體像對進行匹配加密,相鄰圖幅間的同名地物點需要具有同樣的精度來保證匹配,因此要求無人機在飛行過程中保持穩定的姿態。而小型旋翼無人機因為重量較輕,在空中飛行時受到氣流影響,極易導致飛行姿態不穩定,從而導致獲取的序列影像存在不同方向的畸變差,使匹配后圖像發生扭曲畸變,如圖3所示。

圖3 受姿態影響產生的匹配畸變
相機通過云臺搭載在無人機上,若相機拍照時無人機仍在飛行,在相機曝光時間內無人機飛行過的距離在傳感器中成像的同名地物點移動的距離稱為像點位移,運動產生的像點位移會造成影像模糊,對于小型的非量測相機,像點位移沒有辦法得到補償,因此拍攝時需盡量保持相對較低航速。
理論上,在同一高度上用同一相機進行拍攝,所得相片的比例尺是一致的。但是,受各種因素的影響,飛機的飛行高度總是會發生變化,從而使比例尺發生變化,比例尺變化過大會導致后期處理出現錯誤,相片比例尺由相機的主距和航高確定:
(1)
式中:1/m為相片比例尺;f為攝影機主距;H為航高。
對于同一次航拍作業,主距f為常量,相片比例尺與航高成比例。設航高變化量為±ΔH,比例尺分母變化量為±Δm,則:
(2)
相對誤差一般不應超過5%,則:
ΔH≤5%·H
(3)
在拍攝過程中,無人機按照航線飛行兩兩相鄰相片對所攝地面要有一定的重疊影像,這種重疊影像部分稱為航向重疊度,對于兩條相鄰航帶之間的相片也要有一定的影像重疊,這種重疊影像部分稱為旁向重疊度,一般相片重疊度是用相幅邊長的百分數表示,即:
(4)
(5)
式中:lx、ly表示相幅的邊長;Px、Py表示航向和旁向重疊影像部分的邊長。
相片的重疊部分是立體觀察和相片連接所必須的條件,低重疊度可能會產生不良后果,只有該區域內有數量足夠的關鍵點匹配,才會產生良好的結果。
航高是另一個重要因素,對于航高的確定要綜合考慮地面分辨率、飛行作業工作量和安全等因素。當飛行鏡頭焦距不變時,航高越高,分辨率越低;反之,當航高越低,分辨率越高。但是為了要求更高分辨率而使航高較低時,可能會導致安全問題。
對于區域測繪作業來說,航高也決定了工作量,利用Mavic Pro Camera的參數對同一地區進行了不同高度拍攝數量估算,設航向重疊率為80%、旁向重疊率為60%,則航高與航點數的關系如圖4所示。

圖4 航高與航點數關系圖
從圖4中可以看出,航點數與航高呈現冪函數關系,從20 m到80 m航高,航點數減少了近20倍,所以從工作量上考慮,提高航高可以有效降低飛行工作量。所以,確定航高時需要綜合考慮,在保證安全的情況下,需要保持分辨率與工作量之間的平衡。
對無人機的飛行要求決定了無人機序列影像的質量,而無人機序列影像的質量直接影響到后期處理的質量及精度。因此,要盡量保持飛行姿態平穩,垂直對地拍攝;保持航速較低,從而減小像點位移;重疊度至少保持在航向重疊度60%和旁向重疊度40%,要進行較好的三維重建,推薦航向重疊度和旁向重疊度提高到80%和60%;根據工作目的綜合確定航高。
無人機序列影像的獲取模式有多種,包括手動操控航拍、自動規劃路徑航拍等,獲取到的數據源類型可以為照片也可以為視頻。對待不同的地區可以選擇不同的拍攝方法,若對小范圍地區進行精細地表觀察,通常采用航點懸停拍攝模式;若對建筑等大型個體場景進行三維重建多選擇環繞拍攝模式,全方位的拍攝后進行三維重建;若對某個街道或小區范圍等建筑物較多而且相對較大的地方則可以采用掠過式拍攝模式如等時間距拍攝或等距間距拍攝。此外,對于不同的目的所選擇的拍攝方式也是不同的,如果需要快速拼接全景影像圖,一般選擇垂直對地觀測;若需要精細的地表三維模型,則常采用傾斜攝影測量。
表2和表3均為在地面站控制模式下無人機接收自主航線規劃進行的自動定向飛行。當前無人機三維重建流程已經越來越趨于自動化,但是合適的人工干預和人工操作可以起到至關重要的作用。在自動拍攝過后重建效果不理想時可以再進行手動飛行拍攝補充,地物重建效果更好。

表2 無人機不同拍照模式的優缺點對比

表3 面向不同應用推薦的不同拍照模式(√代表推薦方法)
隨著商業軟件的不斷發展,它們在處理無人機影像上的能力各有不同,本實驗選擇Pix4Dmapper、Agisoft Photoscan、Altizure和開源軟件VisualSFM進行重建,對比不同軟件重建精度及用時結果。
如表4所示,從用時上判斷,Altizure和Pix4Dmapper較Photoscan與VisualSFM軟件用時少,但Pix4Dmapper和VisualSFM只能重建到密集點云,而Photoscan和Altizure可以完整三維重建流程。從重建方式上判斷,Altizure是上傳云處理,而其他軟件需要本地處理,若針對大范圍區域,Altizure十分實用。

表4 不同軟件重建數據對比
由于不同的軟件最終結果不同,Pix4Dmapper和VisualSFM軟件進行到密集點云重建后,要繼續進行真實三維還原需要借助其他軟件,而Photoscan和Altizure可以進行三維模型還原和DSM生成。本實驗就最終結果進行對比,開源軟件VisualSFM的密集點云較Pix4Dmapper少,呈現多處空白。而Photoscan和Altizure軟件相較前2個軟件處理方式更加簡單自動化,從效果上看,Altizure可以還原出航拍時路過的人群,且三維重建模型最豐富。綜上所述,本實驗對比分析后認為以上幾款軟件的重建效果是Altizure>Photoscan>Pix4Dmapper>VisualSFM。
本文在計算機處理和人工處理相結合的情況下,針對無人機影像拍攝和后期處理中存在的問題如無人機飛行姿態控制、拍攝模式選擇以及后期處理成像精度進行了分析,結果表明:
①無人機影像序列的三維重建只需要較少的人工干預即可以獲得三維重建數據。對于需要進行精細測繪要求的作業需要加入人工控制點,對于需求快速拼接成圖的作業可進行空中全自動作業。
②在飛行過程中,要保持無人機飛行姿態穩定,需要控制無人機飛行的航高、航速以及分辨率,拍攝數量要有足夠的重疊度才能有精細的攝影測量成圖。對于不同的重建目的應選擇不同的鏡頭和拍照模式。若拍攝小區域且要求精度較高,推薦選擇航點懸停拍攝模式,若拍攝較大區域,推薦使用等時間距拍攝或者等距間距拍攝模式。
③不同軟件重建結果不同,云處理的Altizure軟件相較其他軟件具有優勢,而若要自主算法更新,開源軟件VisualSFM等軟件更為實用。
目前的無人機三維重建應用仍有限,三維模型更多作為展示或演示功能,其中蘊含的數據應用還遠不如二維數據。因此,之后的研究方向應該是如何將三維重建模型更精細化,并且可以應用到更多方面。