樊孝常,梁玉斌,楊 陽,崔鐵軍
(天津師范大學地理與環境科學學院,天津 300387)
建筑物三維模型在城市規劃、災害分析和應急響應等領域具有廣泛應用.常見的三維建模方式主要包括三維建模軟件手工建模、三維激光掃描點云建模和攝影測量技術建模.手工建模需要研究人員基于點線面進行模型構建,建模過程耗時耗力;而激光掃描建模設備昂貴,數據采集過程復雜[1].
隨著無人機(unmanned aerial vehicle,UAV)技術的快速發展,其成本低、時效高、響應迅速的優勢日益顯現[2-3].無人機數據在各領域的應用越來越廣泛[4-5].運動結構恢復算法(structure from motion,SFM)和多視圖立體匹配算法(multi view stereo,MVS)的不斷完善,使基于無人機影像的攝影測量技術能夠更好地實現實景三維模型的重建[6-7].無人機影像構建的實景三維模型在施工場地土方測量和公路邊坡災害識別等各個方面都有較強的實用性[8].建筑物是三維模型的重要組成部分,傾斜影像增加了建筑物的立面紋理結構信息,逐漸成為建筑實景三維建模的主要數據來源[9-10].然而,與常規航空影像相比,傾斜影像顯著增加了攝影測量數據處理的復雜性,如何高效準確地構建建筑物三維模型成為攝影測量的研究熱點[11-13].李大軍等[14]應用Mask R-CNN 神經網絡識別無人機影像中的建筑目標,發現它比傳統航空影像的建筑識別更加高效與智能.陳麗君[15]改良傳統Mask R-CNN 算法,增加了訓練模型的穩健性,提高了識別建筑影像的準確率.邵振峰[16]提出了一種基于航空立體像對的人工目標三維提取與重建方法,研究開發了一體化立體影像平臺,通過平臺實現了部分復雜建筑目標的三維提取與重建.
傳統傾斜攝影測量實景三維建模方法利用全部影像進行建模,普遍適用于建筑密度高的城市區域,但對于建筑密度較低的村鎮區域來說,該方法未能充分利用照片內含的語義信息,引入了大量非建筑區域的非必要同名點,降低了三維重建的效率.因此,本研究將深度學習技術與攝影測量技術結合,在圖像匹配之前篩選包含建筑的影像,在不損失建筑物模型信息和精度的前提下,提高建筑物三維建模的效率.
本研究將深度學習技術與攝影測量技術相結合,首先利用深度學習技術構建并訓練Mask R-CNN 神經網絡模型,使用該模型剔除傾斜影像中不包含建筑的影像,然后將篩選出的影像與下視影像結合,組成參與建模的影像集.利用攝影測量技術進行建模,研究出一種不降低最終建模精度且有效減少模型構建時間的方法.本研究過程主要包括6個部分,分別為數據獲取、數據準備、Mask R-CNN 神經網絡模型的構建及訓練、含建筑影像篩選、三維重建和對比評估,具體技術流程如圖1 所示.

圖1 技術流程圖Fig.1 Technical scheme
Mask R-CNN 神經網絡結構識別建筑目標的流程主要包括4個部分:①特征提取,將影像輸入CNN 網絡提取特征;②獲得建議框,通過區域生成網絡得到影像目標的可能位置,用矩形建議框標記;③分類和回歸,利用感興趣對齊層對建議框微調,得到較為準確的目標位置及大小;④像素分割,以像素級形式分割ROI,并按類別劃分其像素,具體流程如圖2 所示.

圖2 Mask R-CNN 建筑目標檢測流程圖Fig.2 Flowchart of Mask R-CNN detection
根據構建方式的不同,將SFM 分為增量式SFM與全局SFM.增量式SFM 在三維重建過程中能夠逐漸增加參與迭代計算的影像數量,直至所有影像都參與模型的構建.為使三維重建更具穩健性,本研究采用增量式SFM 構建方法.首先對研究區進行影像識別,獲取輸入影像包含的內參數信息;然后進行特征提取與構建圖像對.使用尺度不變特征變換算法(scale-invariant feature transform,SIFT)及其改進算法進行特征提取,增強匹配的穩健性. 本研究在特征匹配之前,根據POS 信息將影像兩兩生成匹配對,控制影像匹配的數量;之后進行特征匹配,按照生成的影像匹配對逐個進行匹配.影像匹配結束后,利用RANSAC 算法剔除誤匹配的特征點,得到可靠的匹配點.在上述過程的基礎上進行增量式重建,得到優化后的影像參數及初始的空間點;最后進行三維點上色與重新三角化,根據對應影像位置的顏色對三維點進行上色處理,得到三維稀疏點云模型.
本研究的數據處理過程均在Dell Precision Tower 7810 工作站中完成,工作站操作系統為Windows 10專業工作站版,處理器為Intel Xeon E5-2630,內存為128 GB,同時配有NVIDIA Quadro M4000 的顯卡.使用Python3.6、CUDA9.0、cuDNN7.0.5、TensorFlow-GPU1.9.0和Keras2.16 進行實驗環境的搭建.
研究區位于廣西省來賓市武宣縣(23°37′9″N~23°39′26″N,109°39′24″E~109°42′27″E),東西長約為5.7 km,南北寬約為4.7 km,總面積約為9.1 km2. 研究區是平坦的鄉村區域,主要包含大片的農作物種植區、零散分布的村落、道路、裸地、樹林和水塘等.研究區衛星影像信息如圖3 所示.

圖3 研究區衛星影像圖Fig.3 Satellite image map of the studied area
2018 年秋季,使用垂直起降的固定翼無人機搭載傾斜攝影系統采集影像數據. 研究區每個鏡頭均拍攝1 955 張影像,5個鏡頭共獲得9 775 張影像.攝像機1—5 號鏡頭分別對應無人機飛行方向的后、前、右、左、下5個方向.無人機同時搭載有GPS/INS 組合系統,能夠準確獲取航測時曝光點位的POS 數據.POS數據包含2 部分內容:一部分記錄每個曝光點位的絕對位置;另一部分記錄無人機在每個曝光點位相對于導航坐標系的飛行姿態,即每個曝光時刻該無人機的側滾角φ、俯仰角ω、偏航角κ.無人機影像在研究區的POS 分布如圖4 所示.由圖4 可以看出,影像的曝光點位均勻分布于研究區內,無人機每條航線間相互平行.

圖4 研究區POS 分布圖Fig.4 POS distribution map of the studied area
本研究首先用CrowdAI 官方提供的用于Map Challenge 比賽的數據集(數據集1)進行預訓練[17],該數據集包含了針對建筑物的大量人工標注完善的衛星影像瓦片,將這些數據用于神經網絡的預訓練,可使模型從衛星影像中初步識別包含建筑的區域.數據集1 共包括訓練集、驗證集和測試集3個部分.訓練集部分標注了280 741 張影像瓦片,驗證集部分標注了60 317張影像瓦片,測試集沒有標注.衛星圖像標注示例如圖5 所示.

圖5 衛星圖像數據標注示例Fig.5 Example of satellite image annotation
不同于數據集1 的影像區域,研究區內不僅建筑分布分散,地表還增加了許多綠色植被,需要人工標注出具有研究區特色的數據集(數據集2),進一步訓練神經網絡模型.數據集2 是對無人機下視影像進行人工標注后獲得的瓦片數據,包括2 306 張訓練集瓦片,600 張驗證集瓦片.無人機影像數據標注示例如圖6 所示.

圖6 無人機影像數據標注示例Fig.6 Example of UAV image data annotation
2.2.1 神經網絡模型的訓練
數據集1 含有大量建筑密集的影像瓦片,故使用數據集1 進行模型的預訓練.預訓練共包括160 輪,每輪訓練1 000 步.預訓練過程訓練集及驗證集的損失分布如圖7 所示.

圖7 預訓練損失分布圖Fig.7 Distribution of pretraining loss
由圖7 可以看出,模型訓練在0~65 輪之間損失值逐漸降低,準確度逐漸提升;而65 輪之后的訓練由于訓練次數過多,出現模型過擬合的現象.其中,在第62 輪時取得最低驗證集損失值,將第62 輪得到的權重文件作為預訓練部分的結果.
使用數據集2 進行模型的精準訓練,將預訓練獲得的權重文件作為訓練的初始權重文件,在此基礎上進行29 輪訓練,每輪訓練100 步.精準訓練過程訓練集及驗證集的損失分布如圖8 所示. 由圖8 可以看出,模型在第24 輪時取得最低驗證集損失值,將第24輪得到的權重文件作為精準訓練部分的結果.Mask RCNN 神經網絡預測模型的最終訓練集損失值為0.683,驗證集損失值為1.033.

圖8 精準訓練損失分布圖Fig.8 Distribution of precision training loss
2.2.2 影像篩選
將傾斜影像剪切成能夠輸入神經網絡尺寸(300×300 像素)的瓦片,利用Mask R-CNN 神經網絡預測模型對傾斜影像進行篩選.為保證最終模型的完整性,該步驟只對后、前、右、左4個方向鏡頭的影像做篩選,下視影像全部保留參與重建.每個鏡頭篩選影像用時分別為47.02、47.03、46.42 和48.25 min,均在47 min 上下波動;每個鏡頭篩選出包含建筑的影像的數量分別為1 359、1 367、1 361 和1 409 張,共7 451張無人機影像用于研究區三維模型的構建.圖9 為2 組單幅影像神經網絡建筑識別的效果展示.由圖9 可以看出,神經網絡識別出的建筑分布與影像中實際建筑分布情況基本一致,神經網絡的建筑檢測結果符合影像的真實情況.

圖9 建筑檢測結果示例Fig.9 Example of Building inspection results
常規三維重建過程不做地物類型區分,將全部影像作為輸入數據進行整體三維重建;而基于本研究方法的三維重建過程則利用神經網絡篩選的傾斜影像和全部下視影像對研究區進行三維重建.2種重建方法都通過OpenMVG[18]和增量式SFM 分別進行圖像匹配和三維重建.對比2種方法的效率與精度,結果如表1 所示.

表1 三維重建時間及精度統計表Tab.1 Statistics of 3D reconstruction time and accuracy
由表1 可知,從建模精度來看,常規三維重建方法和本研究方法的均方根誤差分別為0.68 像素和0.69 像素,基本一致;從建模時間來看,常規方法總共耗時24.33 h,而本研究方法總共耗時12.31 h,節省了49.4%的數據處理時間.
2種三維重建方法生成的稀疏點云圖如圖10 所示.從圖中可以看出,與常規方法相比,本研究方法的點云數量在研究區邊緣區域較為稀疏,在建筑分布區域無明顯差異.
2種方法建模對應的重投影誤差統計分布直方圖如圖11 所示.

圖11 重投影誤差統計分布直方圖Fig.11 Statistical distribution histogram of reprojection error
由圖11 可知,2種建模方法的重投影誤差頻率分布較為相似,大部分像點重投影誤差都集中在1個像素以內,誤差較小.從像點數目來看,常規方法建模的像點數比本研究方法建模的像點數多了約703 000個,本研究方法的像點數在地表建筑較為密集的區域比較集中,其他區域較為分散;常規方法建模會在全區域生成像點,像點數比本研究方法多較為合理.在常規方法和本研究方法稀疏重建的基礎上,進一步對研究區域內某一建筑密集區進行密集點云重建,重建結果如圖12 所示.

圖12 用于密集點云對比的建筑Fig.12 Comparison of buildings selected for dense cloud comparison
使用開源軟件Cloud Compare 計算對應密集點之間的距離.先將2種建模方法生成的每棟建筑的密集點云進行對齊處理,使用該軟件的M3C2(multiscale model to model cloud comparison)插件計算2個密集點云之間的對應點距離.選定的5 棟建筑對應密集點之間距離的統計結果如表2 所示.
由表2 可以看出,5 棟建筑對應密集點的標準差均在0.04~0.06 m 范圍內,對應到影像上為0.57~0.86個像素.建筑1、4 和5 對應密集點的最大距離略大,主要集中在窗戶和遮擋嚴重的區域,這些區域的密集匹配穩定性較差.建筑2 和3 的對應密集點最大距離均小于1 m.建筑密集點云和2種方法生成密集點的對應距離如圖13 所示.由圖13可以看出,對應密集點之間的距離在窗戶和不易觀測的墻體角落等區域較大,大部分對應密集點的距離都在厘米尺度,本研究方法與常規方法生成的密集點云結果基本一致.
為了減少建模時間與計算量,提升影像建模的效率,本研究提出了一種使用深度學習技術對影像進行篩選的方法,并將該方法用于影像三維重建,與常規方法做對比,得到以下結論:
(1)本研究方法在建模之前使用神經網絡模型對村鎮區域的建筑影像進行篩選,減少了影像的數量,比常規方法建模節省了49.4%的時間,提升了建模效率.
(2)篩選包含建筑的影像并未減少建筑相關影像之間的匹配.從建模的重投影誤差來看,常規方法的均方根誤差為0.68 像素,本研究方法的均方根誤差為0.69 像素,兩者基本一致.從2種方法生成的點云模型對比來看,2種方法大部分對應密集點之間的距離均在厘米尺度.本研究方法與常規方法在建模精度上基本一致,表明減少非建筑圖像數量不會降低三維重建的精度.
綜上所述,本研究方法構建的影像模型的精度與常規方法相差不大,但大大減少了影像建模的時間,提高了效率,實驗結果達到預期效果,這為特定地區的三維建模任務提供了一種效率高、計算量少、成本低的可行方法.