周 岳 王 銳 曾文勝
(廣東省鐵路規劃設計院有限公司,廣東 廣州 510600)
隨著勘測技術的發展,高精度衛航片的獲取成本越來越低,開始廣泛應用于鐵路選線設計[1-2]。將高精度衛片、航片作為選線設計的底圖,可以形象、直觀、準確地感知線路與周圍環境的空間關系,尤其是在居民區、既有路網、管線較多的復雜區域;同時還可以顯著提升線路方案的出圖、匯報、展示效果。
線路設計具有點多、線長、面廣的特點,研究范圍動輒萬平方公里級[3]。將沿線高精度衛航片一次性全部加載到選線系統,目前的硬件條件難以滿足該要求。而且AutoCAD 本身對插入的參照圖片總大小有一定限制,只能加載少量的圖片。因此,現在的高清衛片航片只能用于小范圍局部方案的調整;而且還需要不停地手動加載、卸載衛航片,操作極為煩瑣。另外在大范圍選線時,設計人員需要感知宏觀層面的高山、河流、城鎮分布,高精度的衛航片反而無法滿足要求。
為最大程度發揮高清衛航片的作用,突破AutoCAD 平臺對參照圖片內存的限制,該研究建立了多層次細節衛航片模型,提出與視口相關的衛航片調度方法,構建自動加載、卸載模式,在選線過程中,能夠實時、流暢、大規模地顯示衛航片。
選線設計過程中既需要反映宏觀特征的粗分辨率模型,也需要刻畫局部細節的高分辨率模型。單一細節層次的衛航片顯然無法滿足需求,該研究借鑒Open Scene Graph中對地形的處理模式[3],建立了多層次細節衛航片模型。
假設大范圍高清衛航片的大小為r0×c0像素的圖片M0,無法一次性加載到AutoCAD 中。而滿足在AutoCAD 中可快速加載和順暢交互的正方形圖片的像素為n×n。我們可將原始衛航片M0分割為n×n一系列像素的小圖片陣列。該陣列的圖片數為R0行、C0列。
R0=[r0/n]
C0=[c0/n]
由于r0、c0極有可能無法被n整除,因此上述公式為商值向上取整,而對不能整除的像素則可用RGB(0,0,0)來填充。
該圖像陣列是由原始圖像無損分割而成,筆者稱其為第0 層圖像陣列,記為M0,其中的第i行,j列的圖像記為M0i,j。注意,該處的行、列號i,j從0 開始。該層圖像在選線設計需要最精細數據時加載到AutoCAD。在第0 層圖像陣列之上,該研究將采用圖像重采樣的方式,生成逐層粗糙的多細節層次圖像陣列,具體方法如下。
如圖1,從圖像陣列的左下角開始,至下而上,自左往右,逐行掃描,每2×2 個圖像合并成一個新圖像且新圖像像素數量n×n保持不變,即:第0 層的M00,0,M00,1,M01,0,M01,1合并為第1 層的M10,0;M10,0,M10,1,M11,0,M11,1,再合并成第2 層的M20,0;最終第2 層的4 個圖像合并成M30,0。需要注意的是,如果行、列數不是偶數,可以在最上面或者最右側增加一行或者一列RGB(0,0,0)的空白圖像。設第k層i行,j列的圖像Mk i,j,則第k+1 層,j列的圖像Mk+1i,j的函數如下。

圖1 多層次細節圖像

F為像素重采樣函數。該研究采用圖像處理中計算速度與圖像質量較為均衡的雙線性插值法[4]來計算重采樣后的每個像素RGB值。
采樣上述方法不斷對圖像進行重采樣,每次采樣圖片數量都只剩下1/4,每個圖片都增大到上一層的4 倍,經過L層的重采樣,最終形成一張分辨率低的可以快速調入AutoCAD 的n×n像素圖像ML。此時,可以將所有的分層圖像采用如圖2 的四叉樹進行存儲,每個節點內存儲一個圖像,并記錄下該圖像的層級k,圖像陣列中的行號i,列號j。每個父節點的范圍剛好完全包括下屬4 個子節點且精細程度增加一倍,從而形成了一個多層次的細節模型。

圖2 多層次四叉樹結構
在AutoCAD 內定線時,當需要進行宏觀線位規劃時,設計人員通常會將視口拉遠,希望從衛航片中看到高山、河流、城市邊界;而在進行細部的曲線半徑、緩長調整時,通常會將視口拉近,希望看到細節的房屋、道路等。不同層次細節的模型前面已經建立,為滿足上述需求,還需要建立一套視相關調度方法。
在實時瀏覽和縮放AutoCAD 繪圖窗口過程中,筆者可以通過ObjectARX 開發包獲取AutoCAD 繪圖窗口的大地坐標及在屏幕上的像素坐標。設左下角PLB點的大地坐標、屏幕像素坐標分別為(xLB,yLB),(HLB,HLB);右上角點PRU的大地坐標、屏幕像素坐標分別為(xRU,yRU),(HRU,HRU)。則屏幕上1 個像素代表的AutoCAD 中圖形的實際長度如下。
dpp=(xRU-xLB)/(HRU-HLB)
如果要完全無損地在AutoCAD 中展現衛航圖像,dpp應大于當前加載的衛航片的圖像的精度。設衛航片的原始測繪精度為d0,第k級時衛航片精度為d0×2k,應滿足以下條件。
d0×2k 考慮到實際選線設計過程中,設計人員并不會分辨平面上每個像素點,往往2×2 個甚至4×4 個像素點范圍內有1 個衛航片像素點即可滿足要求。因此可在上述公式的dpp前乘以1 個容許模糊系數f。 通過上述的視相關調度方法,可以計算出與用戶AutoCAD 視口相關的且最少數量的圖像文件。在真正的定線過程中,還需要一套自適應動態調度機制來管理這些圖像文件的加載、卸載,使AutoCAD 的圖像占用內存始終處于一個合理的范圍,從而保證在各類交互式定線過程中能夠流暢地顯示與刷新圖像。 該研究在動態加載機制中記錄了上次已載入AutoCAD的所有圖像集合UPre,圖像的層級k,該視口變化需要增加和刪除的圖像集合UAdd,UDel,AutoCAD 最大容許加載圖像數量Nmax,并對AutoCAD 的視口進行實時監控,只要視口發生變化就將進入以下流程:1)如果視口只進行了平移,表明無須更改圖像層級,此時可根據平移量與第kk層圖像大小之間的關系,只遍歷UM附近的圖像,計算與新視口是否存在交集,可快速確定需要增加的圖像集合UAdd和可刪除的圖像集合UDel,轉步驟3);2)如果視口發生縮放,此時需根據視相關調度算法計算新的圖像層級k以及需要增加的圖像集合UAdd和可刪除的圖像集合UDel;轉步驟3);3)考慮到圖像的加載和刪除需要申請和釋放資源,速度較慢,因此優先使用更新圖像的方法,分以下幾種情況處理。①當UPre+UAdd的圖像數量 通過上述自適應動態加載機制,可以用較小的代價將實時定線過程中最關心的衛航片加載到AutoCAD。 基于上述的原理與方法,該研究采用Visual Studio 2012、ObjectARXARX2016 開發了運行于AutoCAD2016 的大規模衛航片自適應動態加載程序,可對高精度衛航片進行自動分割、重采樣,建立多層次細節的圖像模型;在定線過程中,可以根據用戶的視角、視口自動加載定線關系的衛航片資源(如圖3),幫助設計人員形象直觀地判定線路與周圍環境的關系,提高選線設計效率。 圖3 自適應動態加載的選線衛航片 將高精度衛片、航片作為選線設計的底圖,可以形象、直觀、準確地感知線路與周圍環境的空間關系,顯著提升線路方案的出圖、匯報、展示效果。但選線設計常用的AutoCAD平臺無法直接加載大規模的衛航片資源。為破解該難題,該文建立多層次細節衛航片模型,提出視相關的圖像調度方法,構建自適應動態加卸載模式,編制了AutoCAD 衛航片自動加載插件,在選線過程中,可以大規模、實時、流暢地顯示衛航片,輔助提升了選線設計的效率與質量。該技術不僅可用于鐵路選線設計,也適用于在AutoCAD 平臺上開展的公路、電力、管道等設計,具有廣闊的應用前景。
3 衛航片自適應動態加卸載
4 程序開發與應用

5 結語