何雁如,徐敬海,秦 駿
(南京工業(yè)大學(xué)測(cè)繪科學(xué)與技術(shù)學(xué)院,江蘇 南京 211816)
無人機(jī)產(chǎn)業(yè)近十年在我國取得了蓬勃發(fā)展,在測(cè)繪地理信息行業(yè)也在逐漸發(fā)生著演變。由單鏡頭單角度發(fā)展到多鏡頭多角度[1],由獲得正射影像延伸到獲得傾斜影像,一步步向多鏡頭傾斜攝影測(cè)量過渡。傾斜攝影測(cè)量的到來為實(shí)景三維建模提供了可能性。當(dāng)前,圍繞傾斜攝影測(cè)量構(gòu)建實(shí)景三維模型,眾多研究人員已開展許多富有成效的研究,如文獻(xiàn)[2—4]闡述了在無人機(jī)多角度傾斜攝影中使用Smart3D自動(dòng)化快速三維建模的流程并應(yīng)用在城市、水利BIM、地質(zhì)勘查等工程中;文獻(xiàn)[5—6]針對(duì)自動(dòng)建模后的模型,研究了單體重建與精細(xì)化處理以獲得更逼真的實(shí)景三維模型;文獻(xiàn)[7—8]改變了傳統(tǒng)五鏡頭,利用小型多鏡頭或單鏡頭航攝儀進(jìn)行傾斜攝影測(cè)量構(gòu)建實(shí)景三維模型;文獻(xiàn)[9]提出了利用空中傾斜攝影結(jié)合地面測(cè)量可對(duì)環(huán)境進(jìn)行有效監(jiān)測(cè)。總體上現(xiàn)有研究較好地促進(jìn)了傾斜攝影測(cè)量技術(shù)的發(fā)展,在自動(dòng)化建模流程與應(yīng)用、模型精細(xì)化處理與優(yōu)化及傾斜攝影測(cè)量硬件優(yōu)化幾個(gè)方面進(jìn)行的研究較多。
隨著無人機(jī)續(xù)航能力與相機(jī)分辨率的大幅提升,傾斜攝影測(cè)量已經(jīng)成熟應(yīng)用于大測(cè)區(qū)范圍(如一個(gè)片區(qū)/城市),伴隨而來的是不斷增多的相片數(shù)量與對(duì)相片質(zhì)量的要求,普通PC機(jī)已很難滿足這類測(cè)區(qū)在自動(dòng)建模時(shí)的需求,有時(shí)即使選購配置高性能的工作站也不得不面對(duì)計(jì)算資源的局限性。集群技術(shù)的出現(xiàn)為普通PC機(jī)進(jìn)行大測(cè)區(qū)范圍的自動(dòng)建模提供了支撐,然而如何恰當(dāng)運(yùn)用集群技術(shù)于實(shí)景三維建模過程仍值得探討與研究。本文將對(duì)集群在三維建模中的應(yīng)用模式進(jìn)行探討,并研究集群背景下的實(shí)景三維建模技術(shù),旨在通過應(yīng)用多臺(tái)普通PC機(jī)集群建立測(cè)區(qū)的實(shí)景三維模型,降低生產(chǎn)成本。
集群是將多臺(tái)同構(gòu)或異構(gòu)的計(jì)算機(jī)通過高性能網(wǎng)絡(luò)或局域網(wǎng)連接起來并協(xié)同完成特定任務(wù)的計(jì)算機(jī)群,它們對(duì)外部的表現(xiàn)就像一個(gè)系統(tǒng)在工作。高性能計(jì)算集群(high-perfomance clusters,HPC)是網(wǎng)絡(luò)GIS中常用的集群方式[10-13]。一種簡(jiǎn)易的HPC系統(tǒng)硬件由主節(jié)點(diǎn)(服務(wù)節(jié)點(diǎn))、一系列從節(jié)點(diǎn)(客戶節(jié)點(diǎn))和連接到它們的交換機(jī)及網(wǎng)絡(luò)線組成,其中主節(jié)點(diǎn)是集群控制器和外部網(wǎng)關(guān)。它負(fù)責(zé)管理和控制從節(jié)點(diǎn)并對(duì)外進(jìn)行通信,從節(jié)點(diǎn)執(zhí)行從主節(jié)點(diǎn)分配來的任務(wù)。這樣通過獨(dú)立的計(jì)算機(jī)和高速網(wǎng)絡(luò)搭建的整個(gè)集群本質(zhì)上像一臺(tái)計(jì)算機(jī),執(zhí)行傾斜攝影測(cè)量建模任務(wù)時(shí),由集群操作系統(tǒng)(分布式計(jì)算平臺(tái))完成任務(wù)分解傳遞給主節(jié)點(diǎn),主節(jié)點(diǎn)安排各從節(jié)點(diǎn)作為計(jì)算節(jié)點(diǎn)接收子任務(wù),各子任務(wù)之間并行計(jì)算(如圖1(a)所示),并在子任務(wù)計(jì)算結(jié)束后,完成計(jì)算結(jié)果合并。
從傾斜攝影測(cè)量角度看子任務(wù)之間無邏輯關(guān)聯(lián),純粹是為了集群操作系統(tǒng)調(diào)度方便,因此,這種集群模式為純物理意義上的并行計(jì)算集群。相比購買昂貴的高性能工作站,這種集群除了成本優(yōu)勢(shì),還具有很好的擴(kuò)展性、高可用性、易管理性,一旦需要更多的處理能力只需增加一定數(shù)量的服務(wù)器或普通電腦即可[12],是較為成熟的集群模式。然而,目前這種模式雖然理解起來容易,但在實(shí)際應(yīng)用中由于子任務(wù)劃分在底層,不易控制,在傾斜攝影測(cè)量中實(shí)現(xiàn)較困難,且此集群模式的運(yùn)算能力的擴(kuò)展比較麻煩,需增加特定的硬件,相關(guān)傾斜攝影測(cè)量商業(yè)軟件中運(yùn)用該模式的軟件還比較少。
基于邏輯并行計(jì)算的集群是基于物理并行計(jì)算的集群在傾斜攝影測(cè)量中的延展。由于在傾斜攝影測(cè)量建模過程中,測(cè)區(qū)空三解算與自動(dòng)建模任務(wù)是可劃分的,因此,基于邏輯并行計(jì)算的集群,在測(cè)區(qū)空三解算與自動(dòng)建模過程中,將原本由集群操作系統(tǒng)完成的子任務(wù)分解交給軟件從邏輯上進(jìn)行人工劃分。Bentley公司的ContextCapture Center軟件是這種模式的代表,目前已在生產(chǎn)中取得了一些應(yīng)用。
該軟件是在其前Smart3D Capture技術(shù)的基礎(chǔ)上發(fā)展起來的一種新的軟件解決方案[14],可使簡(jiǎn)單的照片生產(chǎn)成高分辨率的三維模型,且無需任何人工干預(yù)。軟件包含Master、Setting、Engine、Viewer等幾個(gè)主要的模塊。其中Master是一個(gè)非常友好的人機(jī)交互界面,相當(dāng)于一個(gè)管理者,它創(chuàng)建任務(wù),管理任務(wù),監(jiān)視任務(wù)的進(jìn)度等;Setting是一個(gè)中間媒介,它主要是幫助Engine指向任務(wù)的路徑;Engine即是引擎端,只負(fù)責(zé)對(duì)所指向的Job Queue中的任務(wù)進(jìn)行處理,可以獨(dú)立于Master打開或關(guān)閉;Viewer則可預(yù)覽生成的三維場(chǎng)景和模型[15]。ContextCapture Center 4.4軟件在基于邏輯并行計(jì)算的集群下,由主機(jī)的Master替代了物理并行計(jì)算集群模式中的集群操作系統(tǒng)進(jìn)行任務(wù)劃分,分成多個(gè)子任務(wù)塊,將由主節(jié)點(diǎn)進(jìn)行的任務(wù)分配現(xiàn)交給Job Queue,建立“先到先行”的工作隊(duì)列,進(jìn)行任務(wù)分配,副機(jī)的Engine接收分配的子任務(wù)塊并完成并行計(jì)算(如圖1(b)所示)。
圖1 集群在三維建模中的應(yīng)用模式
這種集群模式下各子任務(wù)塊之間互相獨(dú)立,結(jié)果互不影響,在物理上已屬于多個(gè)任務(wù),嚴(yán)格意義上來說,這種集群模式甚至可以認(rèn)為是一種偽集群。但該種模式相比較上一種模式,從傾斜攝影測(cè)量建模的流程上看,帶有邏輯關(guān)聯(lián)性,且在實(shí)現(xiàn)時(shí)具有一定的優(yōu)點(diǎn),如建模過程中可隨時(shí)增加或減少建模計(jì)算機(jī)(硬件可以熱插拔);對(duì)建模計(jì)算機(jī)軟硬件要求相對(duì)低;各任務(wù)塊之間的計(jì)算結(jié)果互不影響,可以隨時(shí)停止與繼續(xù)。該模式可彌補(bǔ)物理并行計(jì)算集群模式下擴(kuò)展麻煩的缺點(diǎn),也可增加建模效率,降低生產(chǎn)成本。
ContextCapture Center 4.4在邏輯并行計(jì)算集群下分配計(jì)算任務(wù)以及確保模型精度擁有自己的一套實(shí)景三維建模工作流程如圖2所示。在該流程中,由于計(jì)算機(jī)硬件資源限制且ContextCapture Center 4.4無法對(duì)相片進(jìn)行自動(dòng)分塊,因此首先需要在主機(jī)的Master中對(duì)大量相片預(yù)處理,并在工程中建立多個(gè)Block,再將相片分Block導(dǎo)入后由工作隊(duì)列Job Queue將多個(gè)Block分配到多臺(tái)副機(jī)的Engine上,進(jìn)行空三解算,為保證合并后空三結(jié)果的穩(wěn)定性,還需在空三解算前進(jìn)行精度控制??杖Y(jié)果合并后指定切片大小,則可由ContextCapture的Master自動(dòng)切片,最后,Job Queue將多個(gè)Tile按先到先行的隊(duì)列分配到Engine上面構(gòu)建實(shí)景三維模型。
圖2 基于集群的實(shí)景三維建模流程
從該工作流程可以看出,本質(zhì)上這種集群建模模式是通過人為劃分具有邏輯意義的子測(cè)區(qū)(子塊/block),并通過將子測(cè)區(qū)的任務(wù)交由不同的普通電腦進(jìn)行空三解算。并將空三解算結(jié)果進(jìn)行合成后,再將測(cè)區(qū)劃分為小的切片交由不同普通電腦完成建模。由于子測(cè)區(qū)的劃分,可減少每次空三解算和建模對(duì)硬件計(jì)算資源的需求,從而能實(shí)現(xiàn)多臺(tái)普通電腦對(duì)大測(cè)區(qū)的建模。然而帶來的問題是如何合理地劃分子測(cè)區(qū),以及如何控制由于劃分子塊所帶來的建模精度,這些已成為此建模模式需要解決的關(guān)鍵問題。下面結(jié)合工程案例對(duì)此問題進(jìn)一步探索。
某測(cè)區(qū)位于江蘇省南京市浦口區(qū),東至浦口大道,北至沿山大道中段,西至七里路,南至浦珠南路,測(cè)區(qū)面積約2 km2,呈長(zhǎng)形,南北長(zhǎng)約2220 m,東西寬約920 m。地形復(fù)雜,多為丘陵,植被豐富,建筑物錯(cuò)落分布。本工程使用Dji Matrice 600電動(dòng)多旋翼無人機(jī),并搭載了五鏡頭傾斜相機(jī)進(jìn)行外業(yè)測(cè)繪,航測(cè)使用的無人機(jī)平臺(tái)與搭載傳感器參數(shù)見表1。該測(cè)區(qū)共執(zhí)行了12個(gè)架次的飛行任務(wù),航向重疊度80%,旁向重疊度70%,共60條航帶,獲取航片15 000余張。實(shí)驗(yàn)室的單臺(tái)工作站可以完成約6000張航片的自動(dòng)建模工作,面對(duì)該工程的航片數(shù),工作站的內(nèi)存與處理能力仍然存在瓶頸,需要搭建集群環(huán)境運(yùn)用多臺(tái)計(jì)算機(jī)聯(lián)合計(jì)算。
實(shí)驗(yàn)室擁有多臺(tái)普通PC機(jī),內(nèi)存8 GB,CPU主頻2.4 Hz,GPU顯存1 MB,這些PC機(jī)由交換機(jī)連接,組成局域網(wǎng)搭建集群環(huán)境。有效存儲(chǔ)空間最大的PC機(jī)為主機(jī),航片存儲(chǔ)于主機(jī)上,網(wǎng)絡(luò)映射存儲(chǔ)盤。這些PC機(jī)上均安裝有ContextCapture Center 4.4軟件,主機(jī)使用Master、Engine模塊,副機(jī)使用Engine模塊,修改主機(jī)的任務(wù)提交目錄,修改副機(jī)的任務(wù)提交目錄與主機(jī)一致。值得注意的是,在計(jì)算機(jī)集群環(huán)境中使用ContextCapture Center 4.4,需要使用通用命名約定路徑來設(shè)置輸入、輸出及工程文件。待工程提交計(jì)算任務(wù)后,便可在任務(wù)序列監(jiān)視器中檢查運(yùn)算引擎端數(shù)量及各Engine執(zhí)行情況。
在基于Smart3D Capture的邏輯并行計(jì)算集群環(huán)境下,子塊劃分的合理性直接影響著整個(gè)任務(wù)的計(jì)算效率與計(jì)算精度,如果劃分太少,計(jì)算機(jī)硬件資源仍然顯得不夠,如果劃分過多,一是對(duì)現(xiàn)有的計(jì)算資源是一種浪費(fèi),二是需要多次精度控制,影響效率。如何對(duì)任務(wù)進(jìn)行更為合理高效的劃分,需要找到一個(gè)平衡點(diǎn),結(jié)合本次工程航攝的實(shí)際情況,本文從計(jì)算資源荷載量(P1)、計(jì)算效率(P2)、計(jì)算精度(P3)3方面,提出以下5個(gè)劃分參考原則:
表1 無人機(jī)平臺(tái)與搭載傳感器參數(shù)
(1) 起降點(diǎn)原則(P3)。在地形高起伏地區(qū),起降點(diǎn)的不同可能會(huì)根據(jù)實(shí)際情況改變飛行高度與姿態(tài)角,空三解算中,不同起降點(diǎn)不建議放在一塊解算。本次航測(cè)的起降點(diǎn)見圖3位置,共計(jì)4個(gè)起降點(diǎn)。根據(jù)起降點(diǎn)位置規(guī)劃了相應(yīng)的子測(cè)區(qū)(見表2),測(cè)區(qū)與測(cè)區(qū)之間疊加重疊航線,為避免不同測(cè)區(qū)對(duì)空三結(jié)果的影響,不同起降點(diǎn)的測(cè)區(qū)應(yīng)劃塊分別解算空三。
表2 無人機(jī)起降點(diǎn)信息
(2) 飛行高度原則(P3)。飛行高度不同的航片如果不存在重疊度,合并計(jì)算易失敗。該測(cè)區(qū)地形起伏大,建筑物眾多,起降點(diǎn)高程相差大(見表2),不同的測(cè)區(qū)起飛高度根據(jù)起降點(diǎn)高程與測(cè)區(qū)建筑物高度作了相應(yīng)調(diào)整,飛行高程不同的航測(cè)區(qū)域不可合并解算。
(3) 建筑物密度/植被密度原則(P2)。為保證建筑物建模效果,建筑物密集區(qū)航片重疊率要求較高,而植被密集區(qū)點(diǎn)云匹配較困難,易失敗,往往需要補(bǔ)測(cè),根據(jù)建筑物/植被情況分塊解算,有助于提高解算效率。該測(cè)區(qū)南部建筑物較密集,北部以丘陵地帶為主,多植被,應(yīng)分開解算。
(4) 最大計(jì)算量原則(P1)。本次三維自動(dòng)建模任務(wù)采用的計(jì)算機(jī)為普通8 GB內(nèi)存PC機(jī),經(jīng)多次測(cè)試,單臺(tái)8 GB內(nèi)存PC機(jī)處理航片數(shù)不宜超過3000張。
(5) 航線角度原則(P2、P3)。為保證航片參數(shù)一致性,航線角度的不同影響著航片劃分方向。本測(cè)區(qū)整體呈長(zhǎng)形,航線規(guī)劃選擇橫向可減少往返起降點(diǎn)的距離,因此空三解算任務(wù)以橫向劃分為宜。
綜合以上參考原則,對(duì)本測(cè)區(qū)進(jìn)行空三解算子塊劃分,如圖3,(a)為3號(hào)起降點(diǎn)植被密集低洼區(qū),(b)為2號(hào)起降點(diǎn)丘陵區(qū),(c)為4號(hào)起降點(diǎn)丘陵區(qū),(d)為4號(hào)起降點(diǎn)建筑物密集區(qū),(e)、(f)均為1號(hào)起飛點(diǎn)建筑物密集區(qū),由于航片量超3000張,特劃分成兩個(gè)子塊。
圖3 空三解算子塊劃分
在常規(guī)實(shí)景三維建模中,帶有POS數(shù)據(jù)的航片甚至可不進(jìn)行精度控制,但在集群環(huán)境下,執(zhí)行各子測(cè)區(qū)空三結(jié)果合并后,雖然每個(gè)塊都進(jìn)行過空三解算,但塊與塊之間沒有建立起聯(lián)系。在地形起伏較大的區(qū)域,易出現(xiàn)精度問題,與實(shí)際位置誤差較大,模型模糊,難以滿足建模需求,如圖4(a)所示出現(xiàn)“雙屋頂”現(xiàn)象。
圖4 精度控制前后模型效果對(duì)比
要解決該問題可通過精度控制,減小模型坐標(biāo)與實(shí)際坐標(biāo)的差值。因此,本文布設(shè)了地面控制點(diǎn)以控制集群模式下生產(chǎn)的模型精度,參照《1∶500 1∶1000 1∶2000地形圖航空攝影測(cè)量外業(yè)規(guī)范》(GB/T 7931—2015)并結(jié)合傾斜攝影測(cè)量實(shí)際情況,根據(jù)各子測(cè)區(qū)范圍大小,分別布設(shè)4~5個(gè)控制點(diǎn),共計(jì)24個(gè)地面控制點(diǎn)(如圖5所示),經(jīng)精度控制后不同分區(qū)的空三解算精度均得到了提升,見表3。合并后生產(chǎn)的實(shí)景三維模型改善了模型與實(shí)際誤差較大及模型模糊的問題(如圖4(b))。
表3 不同分區(qū)增加控制點(diǎn)前后空三解算(RMS of distances to rays)精度
m
為驗(yàn)證實(shí)景三維模型的精度控制是否有效,模型精度是否滿足生產(chǎn)需要,還需檢測(cè)三維建模精度。三維建模精度包括平面位置精度和高度精度[16],一般是通過量測(cè)模型上檢查點(diǎn)的三維坐標(biāo)與外業(yè)實(shí)測(cè)值進(jìn)行比對(duì),并作為檢查指標(biāo)。本文在測(cè)區(qū)均勻布設(shè)了15個(gè)檢查點(diǎn)(如圖5所示),精度統(tǒng)計(jì)見表4。
圖5 測(cè)區(qū)地面控制點(diǎn)與檢查點(diǎn)分布
由表4可以看出,該測(cè)區(qū)實(shí)景三維模型精度符合《三維地理信息模型數(shù)據(jù)產(chǎn)品規(guī)范》(CH/T 9015—2012),滿足該測(cè)區(qū)的建模需求。經(jīng)多臺(tái)PC機(jī)集群計(jì)算,快速建立了某測(cè)區(qū)實(shí)景三維模型(如圖6所示),該模型效果良好,建筑物清晰,模型精度符合測(cè)區(qū)要求,但由于該測(cè)區(qū)地形復(fù)雜,高差較大,植被覆蓋廣,使得點(diǎn)云匹配效果較差,部分水面、植被遮擋區(qū)域、屋檐下方、光線反射區(qū)域存在空洞,還需人工修補(bǔ),模型效果仍有待提升。
表4 某測(cè)區(qū)實(shí)景三維模型精度統(tǒng)計(jì) m
圖6 某測(cè)區(qū)實(shí)景三維模型
無人機(jī)續(xù)航能力的大幅提升使大測(cè)區(qū)傾斜攝影測(cè)量的應(yīng)用成為可能,但是計(jì)算資源的稀缺性大大限制了大測(cè)區(qū)實(shí)景三維建模的發(fā)展,集群的出現(xiàn)為普通PC機(jī)執(zhí)行大測(cè)區(qū)實(shí)景三維建模帶來了契機(jī)。本文研究了集群在實(shí)景三維建模中的兩種應(yīng)用模式,并結(jié)合工程案例,使用普通PC機(jī)替代高性能工作站,探討了基于邏輯并行計(jì)算的集群模式下實(shí)景三維自動(dòng)化建模的兩大問題:如何充分利用計(jì)算資源劃分建模任務(wù)以提高建模效率,如何確保集群下的實(shí)景三維模型的精度。在劃分建模任務(wù)方面,本文提出了子塊劃分參考5大原則以確保子塊劃分的合理性;在確保模型精度方面,本文根據(jù)測(cè)區(qū)情況增加了地面控制點(diǎn),控制了模型精度,大大減小了模型生產(chǎn)中精度問題帶來的影響。結(jié)果表明,基于邏輯并行計(jì)算集群下多臺(tái)PC機(jī)聯(lián)合自動(dòng)建模完成的實(shí)景三維建模精度符合精度要求,突破了計(jì)算資源限制,能夠滿足大測(cè)區(qū)范圍實(shí)景三維建模的需求,可運(yùn)用于城市、大型工程、工業(yè)園區(qū)等的實(shí)景三維模型構(gòu)建中。但是模型中還存在少量空洞,還需在后期對(duì)集群下的模型精細(xì)化與模型優(yōu)化進(jìn)一步研究。