本發明實施例涉及交通技術領域,尤其涉及一種三維橋梁場景構建方法和裝置。
背景技術:
高速公路橋梁是養護部門的重點監測對象,由于其受環境、超載、人為、材料自身性能退化、管理養護不及時到位等因素的影響,橋梁結構各部分在遠沒有達到設計年限就產生不同程度的損傷和劣化。傳統的橋梁展示方法是在二維地圖上以點的形式進行展示,而橋梁具有復雜空間結構,在二維地圖中,橋梁的空間信息和橋梁周邊的環境信息都無法展示,不能進行橋梁病害位置定位,不能在橋梁運營管理中,為橋梁養護人員提供輔助決策支持。
目前,常見的橋梁的三維場景展示方案為制作簡單的三維橋梁模型,并且只有橋梁,橋梁空間信息丟失嚴重,沒有橋梁周邊的環境信息。該方法成本低,但是交互體驗差,只是示意圖,不能起到養護輔助決策支持的作用。
技術實現要素:
本發明實施例提供一種三維橋梁場景構建方法和裝置,用于解決現有技術中三維橋梁場景中缺少橋梁周邊環境信息的問題。
本發明實施例提供了一種三維橋梁場景構建方法,包括:
獲取橋梁的結構數據及所述橋梁周圍的環境數據;
對所述橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據;
根據所述橋梁環境的建模數據建立所述橋梁環境的三維場景模型,并根據所述橋梁的結構數據建立所述橋梁的三維模型;
將所述橋梁環境的三維場景模型和所述橋梁的三維模型進行貼合并展示。
可選地,所述對所述橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據,包括:
將所述橋梁周圍的環境數據重新投影后獲得重投影數據;
將所述重投影數據進行數據格式轉換確定目標格式數據;
將所述目標格式數據進行三維空間坐標映射確定橋梁環境的建模數據。
可選地,所述將所述目標格式數據進行三維空間坐標映射確定橋梁環境的建模數據,包括:
按照第一映射比例將所述目標格式數據進行平面坐標映射之后,根據所述第一映射比例對所述目標格式數據進行高程坐標映射確定橋梁環境的建模數據;或者
按照第一映射比例將所述目標格式數據進行平面坐標映射之后,根據預設的固定映射比例對所述目標格式數據進行高程坐標映射確定橋梁環境的建模數據。
可選地,所述根據所述橋梁環境的建模數據建立所述橋梁環境的三維場景模型,包括:
根據所述橋梁環境的建模數據構建橋梁環境模型對象;
對所述橋梁環境模型對象進行顯示優化;
將優化后的橋梁環境模型對象進行紋理渲染和映射確定橋梁環境的三維場景模型。
可選地,所述將所述橋梁環境的三維場景模型和所述橋梁的三維模型進行貼合并展示,包括:
根據所述橋梁環境的三維場景模型調整所述橋梁的三維模型的比例;
將所述橋梁環境的三維場景模型和調整比例后的橋梁的三維模型進行貼合并分段加載展示。
相應地,本發明實施例還提供了一種三維橋梁場景構建裝置,包括:
獲取模塊,用于獲取橋梁的結構數據及所述橋梁周圍的環境數據;
處理模塊,用于對所述橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據;根據所述橋梁環境的建模數據建立所述橋梁環境的三維場景模型,并根據所述橋梁的結構數據建立所述橋梁的三維模型;將所述橋梁環境的三維場景模型和所述橋梁的三維模型進行貼合并展示。
可選地,所述處理模塊具體用于:
將所述橋梁周圍的環境數據重新投影后獲得重投影數據;
將所述重投影數據進行數據格式轉換確定目標格式數據;
將所述目標格式數據進行三維空間坐標映射確定橋梁環境的建模數據。
可選地,所述處理模塊具體用于:
按照第一映射比例將所述目標格式數據進行平面坐標映射之后,根據所述第一映射比例對所述目標格式數據進行高程坐標映射確定橋梁環境的建模數據;或者
按照第一映射比例將所述目標格式數據進行平面坐標映射之后,根據預設的固定映射比例對所述目標格式數據進行高程坐標映射確定橋梁環境的建模數據。
可選地,所述處理模塊具體用于:
根據所述橋梁環境的建模數據構建橋梁環境模型對象;
對所述橋梁環境模型對象進行顯示優化;
將優化后的橋梁環境模型對象進行紋理渲染和映射確定橋梁環境的三維場景模型。
可選地,所述處理模塊具體用于:
根據所述橋梁環境的三維場景模型調整所述橋梁的三維模型的比例;
將所述橋梁環境的三維場景模型和調整比例后的橋梁的三維模型進行貼合并分段加載展示。
本發明實施例表明,獲取橋梁的結構數據及所述橋梁周圍的環境數據,對所述橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據。然后根據所述橋梁環境的建模數據建立所述橋梁環境的三維場景模型,并根據所述橋梁的結構數據建立所述橋梁的三維模型。最后將所述橋梁環境的三維場景模型和所述橋梁的三維模型進行貼合并展示。本發明實施例中,根據橋梁的結構數據及橋梁周圍的環境數據建立橋梁環境的三維場景模型和橋梁的三維模型后,將橋梁環境的三維場景模型和橋梁的三維模型進行貼合構建三維橋梁場景,該三維橋梁場景既可以展示橋梁復雜的空間結構信息,也能夠展示橋梁周邊的環境信息,從而有助于橋梁養護人員根據橋梁實際所處的環境建立橋梁養護方案。
附圖說明
為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
圖1為本發明實施例提供的一種三維橋梁場景構建方法的流程示意圖;
圖2為本發明實施例提供的橋梁周圍的環境數據預處理方法的流程示意圖;
圖3為本發明實施例提供的構建橋梁環境的三維場景模型的流程示意圖;
圖4為本發明實施例提供的uv坐標示意圖;
圖5為本發明實施例提供的另一種三維橋梁場景構建方法的流程示意圖;
圖6為本發明實施例提供的一種三維橋梁場景構建裝置的結構示意圖。
具體實施方式
為了使本發明的目的、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
圖1示例性示出了本發明實施例提供的一種三維橋梁場景構建方法的流程,該流程可以由三維橋梁場景構建裝置執行。
如圖1所示,該流程的具體步驟包括:
步驟s101,獲取橋梁的結構數據及橋梁周圍的環境數據。
步驟s102,對橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據。
步驟s103,根據橋梁環境的建模數據建立橋梁環境的三維場景模型,并根據橋梁的結構數據建立橋梁的三維模型。
步驟s104,將橋梁環境的三維場景模型和橋梁的三維模型進行貼合并展示。
具體地,橋梁周圍的環境數據可以來源于google衛星影像數據,也可以來源于航天飛機雷達地形測繪使命數字高程模型(shuttleradartopographymissiondigitalelevationmodel,簡稱srtmdem)數據。橋梁的結構數據可以來源于橋梁建設的圖紙。在構建橋梁環境的三維場景模型和橋梁的三維模型時,可以借助web圖形庫(webgraphicslibrary,簡稱webgl)、地理信息系統(geographicinformationsystem,gis)平臺、supermap、3dmax等建模平臺。本發明實施例中,根據橋梁的結構數據及橋梁周圍的環境數據建立橋梁環境的三維場景模型和橋梁的三維模型后,將橋梁環境的三維場景模型和橋梁的三維模型進行貼合構建三維橋梁場景,該三維橋梁場景既可以展示橋梁復雜的空間結構信息,也能夠展示橋梁周邊的環境信息,從而有助于橋梁養護人員根據橋梁實際所處的環境建立橋梁養護方案,另外谷歌地圖的衛星影像數據以及srtmdem數據是網上免費的公開資源,webgl是開源的三維展示技術,本發明實施例以srtmdem數據為數據源,利用webgl技術構建三維橋梁場景降低了三維場景的建設成本。
具體實施中,由于不同的建模平臺對建模數據的格式以及空間參考系都有不同的要求,故在建模之前,根據不同的平臺需將獲取的橋梁周圍的環境數據進行預處理,具體包括以下步驟,如圖2所示:
步驟s201,將橋梁周圍的環境數據重新投影后獲得重投影數據。
步驟s202,將重投影數據進行數據格式轉換確定目標格式數據。
步驟s203,將目標格式數據進行三維空間坐標映射確定橋梁環境的建模數據。
下面以一種建模平臺為例詳細介紹對橋梁周圍的環境數據進行預處理的過程,設定基于webgl技術構建橋梁環境的三維場景,網絡地理信息系統(webgeographicinformationsystem,簡稱webgis)服務的空間參考系為歐洲石油勘探組織(europeanpetroleumsurveygroup,簡稱epsg):3857,srtmdem數據的空間參考系為espg:4326,由于webgis服務的空間參考系與srtmdem數據的空間參考系不一樣,故需要對srtmdem數據進行重投影,將srtmdem數據重投影為espg:3857空間參考系。具體地,espg:4326空間參考系與epsg:3857空間參考系的坐標轉換如式(1)所示:
其中,λ、
進一步地,srtmdem數據的數據格式為geotiff格式,由于網絡前端無法對srtmdem數據格式進行識別,故需要對srtmdem數據進行格式轉換。具體實施中,首先將srtmdem數據中每一個像素單元以xyz坐標的文本形式提取出來。由于srtmdem數據中像素單元尺寸大小一樣、間隔相等,在研究區域一定的情況下,行列具體個數已知,根據srtmdem數據起始點坐標,可以推算出任意一個單元xy坐標,故本發明實施例在提取出像素單元的xy坐標后可以采用省略數據的xy坐標的方式進行數據壓縮。其次針對srtmdem數據的z值問題,本發明實施例采用將srtmdem數據轉換成柵格文件格式的方式進行解決,將srtmdem數據的z值轉化為一個簡單的二進制文件和兩個文本形式頭文件,頭文件中記錄著srtmdem數據的相關參數,簡單二進制文件即為z值字節流,轉換后的二進制文件與原始的geotiff格式文件大小保持一致。
對srtmdem數據進行數據格式轉換之后,將轉換得到的目標格式數據進行三維空間坐標映射確定橋梁環境的建模數據,三維空間坐標映射具體包括以下兩種方法:
方法一、按照第一映射比例將目標格式數據進行平面坐標映射之后,根據第一映射比例對目標格式數據進行高程坐標映射確定橋梁環境的建模數據。
具體地,首先按照第一映射比例將espg:3857空間參考系中xy坐標映射到三維空間坐標系中的xy平面上,其中第一映射比例與epsg:3857空間坐標系下的映射范圍和三維空間坐標系中的xy平面的映射范圍有關,設定三維空間坐標系下一點平面坐標為(x,y),則其對應epsg:3857空間坐標系下的坐標為(x,y),epsg:3857空間坐標系下的映射范圍為(xmin~xmax,ymin~ymax),對應的三維空間坐標系中的xy平面的映射范圍為(xmin~xmax,ymin~ymax),則epsg:3857空間坐標系中的坐標和三維空間坐標系中的xy平面的坐標的關系如公式(2)所示:
將espg:3857空間參考系中xy坐標映射到三維空間坐標系中的xy平面上之后,按照xy坐標相同的比例對高程值z進行單獨映射,然后再按照一定倍數進行拉伸,具體符合下述公式(3)
其中,z為epsg:3857空間坐標系中的高程值,z為三維空間坐標系中的高程值,n為拉伸倍數。
方法二、按照第一映射比例將目標格式數據進行平面坐標映射之后,根據預設的固定映射比例對目標格式數據進行高程坐標映射確定橋梁環境的建模數據。
按照第一映射比例將目標格式數據進行平面坐標映射與方法一中描述的一致,此處不再贅述。預設的固定映射比例是根據多次試驗獲得,進行平面坐標映射之后,按照預設的固定映射比例將高程值z固定的拉伸到一定范圍,預設的固定映射比例可以為0~40。設定epsg:3857空間坐標系下的高程值z的映射范圍為zmin~zmax,預設的固定映射比例為40,研究范圍內任意一點高程值z對應三維空間坐標系中坐標值為z,則高程坐標映射具體如公式(4)所示:
采用和xy坐標同樣的映射比例能與真實世界更為接近,按照固定的映射比例拉伸高程值使三維顯示效果較為明顯,因此上述兩種映射方法都具有一定通用性,可以適用于不同的研究區,使得三維地形高程顯示效果不會隨著研究區的高程值不同而變化。
在對橋梁周圍的環境數據進行預處理后,根據橋梁環境的建模數據建立橋梁環境的三維場景模型包括以下步驟,如圖3所示:
步驟s301,根據橋梁環境的建模數據構建橋梁環境模型對象。
步驟s302,對橋梁環境模型對象進行顯示優化。
步驟s303,將優化后的橋梁環境模型對象進行紋理渲染和映射確定橋梁環境的三維場景模型。
具體地,在步驟s301中,利用可擴展超文本傳輸請求(xmlhttprequest,簡稱xhr)對象與服務器進行通信,將xhr對象的返回值類型設為arraybuffer,這樣可以使從服務器獲取的二進制srtmdem數據直接存儲到瀏覽器內存中。然后利用javascript中的int16array對象將內存中的二進制數據流直接轉換成整型數組,該數組中的值即為srtmdem數據中的高程值z,利用這種方式讀取和存儲數據可以提高瀏覽器運行效率。最后使用webgl的第三方庫three.js創建規則格網模型planegeometry對象,并根據高程值數組對planegeometry對象中各個格網點的三維z坐標進行修改,構建出按高程值不同而高低起伏的地形模型。
在步驟s302中,具體可使用細節層次模型(levelsofdetail,簡稱lod)技術對橋梁環境模型對象進行顯示優化。當物體距離較遠在屏幕較小的區域進行顯示時,可以采用較為粗略的模型進行描繪,當物體較近在屏幕較大的區域進行顯示時,才使用較為精細的模型進行描繪。也可以采用金字塔的簡化規則逐層向上簡化,主要規則是將下層四個相鄰的點分為一組,然后取它們高程的平均值作為上層點的高程值。
在步驟s303中,采用高分影像紋理對地形模型進行貼圖。在有了紋理圖和地形模型后,需要按照一定的規則將兩者結合起來,這個過程稱為紋理映射。本發明實施例中紋理映射采用uv坐標的方式進行映射,uv坐標中u和v分別代表著寬與高,它們的映射范圍都為[0,1],如圖4所示。地形模型在構建時,為每一個頂點設置相應的uv坐標,這樣就可以確定紋理圖像以何種位置進行貼合,渲染出更加逼真的三維效果。
構建橋梁環境的三維場景模型之后,根據橋梁的結構數據建立橋梁的三維模型,然后根據橋梁環境的三維場景模型調整橋梁的三維模型的比例,最后將橋梁環境的三維場景模型和調整比例后的橋梁的三維模型進行貼合并分段加載展示。另外也可以在構建橋梁環境的三維場景模型之后,先根據橋梁環境的三維場景模型確定橋梁的三維模型的構建比例,再建立橋梁的三維模型。比如,在構建橋梁的三維模型的過程中,以與地形貼合的谷歌地圖作為背景放到3dmax建模軟件中,計算谷歌地圖在3dmax中的占格,以及每個網絡的長度,得到3dmax中的距離與地圖距離的對應關系,計算得到橋梁建模的比例。根據計算的橋梁建模比例以及橋梁的結構數據,在3dmax中對橋梁進行三維建模。
由于根據橋梁環境的三維場景模型調整橋梁的三維模型的比例,故能更好地將橋梁環境的三維場景模型與橋梁的三維模型貼合,并與谷歌影像中的橋梁按比例重合,從而使顯示的三維橋梁場景更逼真。另外將三維橋梁場景分段加載,避免了瀏覽器留白時間過長或瀏覽器卡死。
為了更好的解釋本發明實施例,下面通過具體的實施場景描述本發明實施例提供的一種三維橋梁場景構建方法的流程,如圖5所示,包括以下步驟:
步驟s501,dem數據預處理。
步驟s502,橋梁環境的三維場景模型構建。
步驟s503,三維橋梁場景構建和加載,其中三位橋梁場景包括橋梁環境的三維場景模型和橋梁的三維模型。
其中步驟s501中,dem數據預處理過程具體包括以下步驟:
步驟s5011,獲取dem數據。
步驟s5012,dem數據重投影。
步驟s5013,dem數據格式轉換。
步驟s5014,平面坐標映射。
步驟s5015,高程坐標映射。
其中步驟s502中,橋梁環境的三維場景模型構建過程具體包括以下步驟:
步驟s5021,構建橋梁環境模型對象。
步驟s5022,橋梁環境模型對象顯示優化。
步驟s5023,橋梁環境模型對象的紋理渲染和映射。
其中步驟s503中,三維橋梁場景構建和加載過程具體包括以下步驟:
步驟s5031,橋梁的三維模型構建。
步驟s5032,橋梁的三維模型的比例調整。
步驟s5033,橋梁環境的三維場景模型與橋梁的三維模型貼合并加載。
本發明實施例表明,獲取橋梁的結構數據及所述橋梁周圍的環境數據,對所述橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據。然后根據所述橋梁環境的建模數據建立所述橋梁環境的三維場景模型,并根據所述橋梁的結構數據建立所述橋梁的三維模型。最后將所述橋梁環境的三維場景模型和所述橋梁的三維模型進行貼合并展示。本發明實施例中,根據橋梁的結構數據及橋梁周圍的環境數據建立橋梁環境的三維場景模型和橋梁的三維模型后,將橋梁環境的三維場景模型和橋梁的三維模型進行貼合構建三維橋梁場景,該三維橋梁場景既可以展示橋梁復雜的空間結構信息,也能夠展示橋梁周邊的環境信息,從而有助于橋梁養護人員根據橋梁實際所處的環境建立橋梁養護方案。
基于相同構思,圖6示例性的示出了本發明實施例提供的一種三維橋梁場景構建裝置的結構,該裝置可以執行三維橋梁場景構建方法的流程。
如圖6所示,該裝置包括:
獲取模塊601,用于獲取橋梁的結構數據及所述橋梁周圍的環境數據;
處理模塊602,用于對所述橋梁周圍的環境數據進行預處理后獲得橋梁環境的建模數據;根據所述橋梁環境的建模數據建立所述橋梁環境的三維場景模型,并根據所述橋梁的結構數據建立所述橋梁的三維模型;將所述橋梁環境的三維場景模型和所述橋梁的三維模型進行貼合并展示。
可選地,所述處理模塊602具體用于:
將所述橋梁周圍的環境數據重新投影后獲得重投影數據;
將所述重投影數據進行數據格式轉換確定目標格式數據;
將所述目標格式數據進行三維空間坐標映射確定橋梁環境的建模數據。
可選地,所述處理模塊602具體用于:
按照第一映射比例將所述目標格式數據進行平面坐標映射之后,根據所述第一映射比例對所述目標格式數據進行高程坐標映射確定橋梁環境的建模數據;或者
按照第一映射比例將所述目標格式數據進行平面坐標映射之后,根據預設的固定映射比例對所述目標格式數據進行高程坐標映射確定橋梁環境的建模數據。
可選地,所述處理模塊602具體用于:
根據所述橋梁環境的建模數據構建橋梁環境模型對象;
對所述橋梁環境模型對象進行顯示優化;
將優化后的橋梁環境模型對象進行紋理渲染和映射確定橋梁環境的三維場景模型。
可選地,所述處理模塊602具體用于:
根據所述橋梁環境的三維場景模型調整所述橋梁的三維模型的比例;
將所述橋梁環境的三維場景模型和調整比例后的橋梁的三維模型進行貼合并分段加載展示。
本領域內的技術人員應明白,本發明的實施例可提供為方法、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、cd-rom、光學存儲器等)上實施的計算機程序產品的形式。
本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。
顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。