陳潤華
摘 要:文章針對數字城市三維建模的需求,提出了使用FME結合三維矢量線和航片進行快速建模的方法,介紹了實現過程。
關鍵詞:FME;三維矢量線;航片;建模
1 概述
雖以Smart3D為代表的利用照片建模的三維重建技術正在迅速普及,但受限于使用此種方法得到的場景模型尚未實現模型單體化,在需要制作精細模型的項目中,仍然使用屋頂三維線結合航片影像生成模型的技術。
2 總體流程設計
3 實現過程
3.1 準備源數據。提取第三方航測軟件生成的空三成果,整理成CSV格式文件方便在FME中使用,整理好的文件格式如下:外方位元素文件:相片文件路徑,X,Y,Z,Phi,Omega,Kappa。測區參數文件:相機焦距,像主點x0,像主點y0,相片高(像素),相片寬(像素),像素大小,地面分辨率。準備屋頂三維矢量線和DEM文件。
3.2 檢查、處理屋頂矢量線
首先對屋頂矢量線做必要的檢查,包括檢查不閉合的面、檢查面邊界是否有弧、重復頂點、面自相交、面重疊等。針對圖形規范的檢查和自動處理,可以使用GeometryValidator轉換器。
人工采集屋頂矢量線的過程中,容易出現因捕捉不到位造成的頂點間以及點線間的縫隙,需要對其進行一定容差內的規范處理,包括二三維捕捉和給人字形屋頂加中線。其中人字形屋頂的所有頂點不在同一個平面上,屬于不規范圖形。但因為此類要素較多,如果采集過程中分別采集兩個屋頂面,會嚴重降低作業效率。可以在FME處理過程中針對此類圖形自動添加屋脊線,將其分隔成兩個面。
3.3 檢查屋頂線與相片是否重合
使用InsidePointReplacer轉換器得到各屋頂投影面的中心點,使用NeighborFinder轉換器求出離各屋頂面中心點最近的相片文件,然后根據攝影測量專業的共線條件方程,將矢量線的各頂點坐標計算到相片坐標,然后輸出到FME Data Inspector中查看。在Inspector轉換器中按相片全路徑分組,矢量線對應的相片路徑會直接顯示在FME Data Inspector數據列表的節點上,可以更方便的檢查。若屋頂線與相片不套合,最常見的原因是相片的外方位元素不規范,航測條帶轉向后坐標系正方向未保持一致。程序提供根據航帶號的奇偶性進行自動糾正的功能。
3.4 獲取底面
源數據確認無誤后,使用SurfaceDraper轉換器將每個屋頂面投影到DEM上,得到對應的底面。但通常每幢房屋范圍內的DEM的高度都是不相等的,而最終房屋模型底面各頂點的高程就有不同的選擇。最常見的要求是整幢房屋底都是平的,其次是要求房屋各頂點都正好貼到地表,最復雜的要求是對房屋邊線進行頂點內插,使得整條線都貼合在地表上。第二種情況處理最簡單,但是生成的模型從側面看就會不美觀。第三種會造成底面邊線生成過多頂點,不僅會極大增加模型的體積,還會嚴重影響側面紋理效果。第一種要求需要統計投影面各頂點的Z值,根據需要取最小值、最大值或平均值。
3.5 掏空模型
掏空模型指對同一幢房屋(投影面相鄰或重疊)的各部分進行體布爾運算,刪除體內部表面,只保留最外部表面。此步驟可以使用FME Store上共享的SolidDissolver轉換器完成。
3.6 裁切紋理
根據共線方程求出矢量線各頂點在相片上的坐標后,使用PointConnector轉換器將點重新連接成面,然后使用Clipper轉換器裁切離面中心點最近的相片得到紋理。
3.7 處理紋理
因為裁切得到的紋理是相片坐標,需要根據原屋頂線的所有頂點,使用AffineWarper轉換器將其糾正回空間直角坐標。程序根據實際需求,提供了紋理最大像素限制和紋理轉正的功能。因為常見的三維平臺對紋理像素有限制,可以使用RasterResampler轉換器進行重采樣。另外因為紋理柵格文件是正矩形,當屋頂面的斜外接矩形與正南正北方向存在一定角度時,會存在多余的紋理。使用BoundingBoxReplacer轉換器得到屋頂面斜外接矩形,求出旋轉角后同時將屋頂面和已裁切的紋理旋轉至水平方向并再次裁切,得到轉正后紋理。紋理轉正不會影響模型效果,卻能有效的減少紋理文件大小。
3.8 輸出模型
使用AppearanceSetter轉換器對屋頂貼紋理。因為頂面、側面是分開的要素,為保證輸出后一幢房屋為一個模型對象,可以使用Aggregator轉換器聚合同幢房屋的頂面和側面。
3.9 使用自定義轉換器分組處理
在最初測試中發現,當紋理數量較多時程序的處理效率非常慢,經檢查發現主要原因是紋理糾正步驟使用的AffineWarper轉換器目前在FME中沒有提供原生的分組處理功能。后將紋理糾正步驟保存成自定義轉換器,使用自定義轉換器提供的分組功能實現并行處理。對比后發現,分組并行處理1000個紋理的效率是單進程處理的30倍以上。
4 結束語
整個處理流程共405個轉換器,相比完全用代碼實現,FME提供的方案實在是簡單、易用、可靠。在實際使用中,搭配多核CPU計算機,使用FME的并行處理功能,可以極大的提高處理效率,完全滿足實際需求。
參考文獻
[1]張劍清,潘勵,王樹根.攝影測量學[M].武漢:武漢大學出版社,2000.
[2]李永泉,韓文泉,黃志洲.數字城市三維建模方法比較分析[J].現代測繪,2010,33(2).