999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

兼顧語義的室內3維模型自動重建方法

2020-03-06 05:36:04史云飛卞西蜀張永翔李雪飛張丕亞
導航定位學報 2020年1期
關鍵詞:模型

史云飛,卞西蜀,張永翔 ,李雪飛,張丕亞

0 引言

室內導航是當前業界和學界的研究熱點之一。室內導航需要解決的 1個關鍵問題是室內空間建模,它是實現室內導航的先決條件[1]。與室外數據模型相比,室內模型在空間尺度、組成要素、空間約束等方面具有自己的特征[1-3]。由于室內模型需要滿足室內導航等需求,其模型應能區分哪些是可穿越邊界(門),哪些是不可穿越邊界(墻),這就需要模型具有語義特性,能夠識別出墻、門等建筑部件。另外,拓撲是室內導航的1個重要部分,室內模型應該能夠維護室內要素之間的鄰接、連通等拓撲關系,從而可以將其轉換為室內導航所需的各類節點關系圖(node-relation graph,NRG),如連通 NRG、鄰接 NRG等,以支持室內空間連通性、鄰接性分析。因此,室內模型至少需要滿足2個條件:①模型能夠區分墻、門等建筑部件的語義;②模型應是拓撲數據模型,其基元需按照拓撲共享原則組織。

目前,3維(three dimension,3D)室內模型獲取途徑主要有3種:第1種是利用已有的樓層平面圖和層高,借助 ARCGIS、SketchUp、AutoCAD、Revit等商業軟件,通過人工建模的方式生成。此類重建往往成本高、效率低,需耗費大量的人力。第 2種是自動構建室內 3D模型,利用設計的算法自動生成3D室內模型,文獻[4-8]的研究屬于該類,但現有的研究沒有顧及建筑語義,生成的 3D模型不能區分墻、門等建筑部件,不支持室內導航。第3種是從已有的建筑信息模型(building information modeling,BIM)中提取室內模型,文獻[9-11]的研究屬于該類,但這些研究的前提是已經存在室內BIM模型。本文嘗試提出 1種使用已有樓層平面圖自動生成 3D室內模型的方法,該方法在重建過程不僅顧及墻、門、窗等建筑部件語義,而且還按照拓撲共享原則組織3D數據。

1 室內建模特征分析與廣義“推拉”概念

1.1 室內建模特征分析

室內空間通常是形體規則的棱柱體,其墻面垂直,頂面、底面水平。這種模型常用的生成方式是“推拉”。“推拉”是1種由低維對象生成高維對象的方法,它沿著1個方向從起始高度H“推拉”低維的幾何(或拓撲)單形(如2維面)到終止高度L,生成高維單形(如3D體),[H,L]稱為“推拉”間隔。現有絕大多數研究都是將“推拉”間隔設置在2維(two dimension,2D)多邊形上,然后自下而上“推拉”多邊形生成3D體。然而,由于這種“推拉”沒有顧及不同建筑部件高度的差異性,生成的各個側面(表示墻、門、窗等)等高,無法區分哪些面是墻、哪些面是門。圖1(a)是1個表達房間的多邊形,它帶有1個門和1個窗;[0,3]表示多邊形對應的“推拉”間隔。圖1(b)是圖1(a)“推拉”的結果,表示門、窗的側面與表示墻的側面高度都相同。而真正的門的高度是[0,1.8],窗的高度是[1,2.2],如圖1(c)所示。顯然,常規的“推拉”方式無法滿足顧及門、窗等建筑部件語義的重建需求。

若要考慮重建兼顧門、窗等建筑部件語義的室內3D模型,就需要采用差異性的“推拉”方式,不能再將“推拉”間隔統一設置在多邊形上,而是根據需要設置在多邊形的各條邊上。本文引入了廣義“推拉”[12]來實現這種顧及建筑語義的3D重建。

1.2 廣義“推拉”

若用I表示1維多面體對應的單位實間隔[0,1],Q表示I在“推拉”方向對應的1維正多面體:;設多面體P∈ρd,n的1個準分離(quasi-disjoint)剖分集是{Pi∈ρd,n},對于集合中的任意Pi,都對應Qi∈Q。廣義“推拉”被定義為1個映射GE,存在:。此處的多面體是廣義多面體,1維多面體為線段,2維多面體為多邊形,逐次類推。{Pi∈ρd,n}表示嵌入到 n維空間中的線性正 d維多面體集合。準分離集是僅在邊界上相交的點集,點集的正則化交集為空;{Pi∈ρd,n}是P∈ ρd,n的準分離剖分集,則∪Pi=P,且集合中的任意1對Pi與Pj存在,?為取多面體的邊界;表示并操作, Pi× Qi的并集構成了所生成多面體的1個準分離多面體剖分。

圖1 “推拉”示例

廣義“推拉”的實質是將待“推拉”的廣義多面體剖分,形成1個準分離剖分集,并為剖分集中的每個元素指定1個“推拉”間隔,然后將每個元素按照它的間隔沿著1個方向“推拉”,生成新元素。在室內3D重建過程中,若將待“推拉”平面圖邊界 E ∈ρ1,3看作是由不同的邊構成的1個準分離剖分集;每條邊對應的起始高度和終止高度構成1個“推拉”間隔Ii=[Hi,Li],建筑物的起始高度H及其終止高度L構成1個間隔I=[H,L],存在Hi≥H,Li≤L。Ii可轉換為1條“推拉”方向的線段 Qi:。如圖 2(a)是平面圖 1段邊界的準分離剖分集, Qi是各條邊對應“推拉”間隔。將 Ei沿著 Qi“推拉”對應的間隔,生成新3D單形,它們的并集仍然是1個準分離剖分集,圖2(b)是圖2(a)各條邊沿著“推拉”間隔生成的3D面集。

2 基于廣義“推拉”的室內3D重建

為將廣義“推拉”引入室內3D重建,設計了以下重建流程,如圖3所示。

2.1 創建3D結點

根據每個樓層所處的高度,為每張平面圖設置1個起始高程。在將2D圖形“推拉”為3D體的過程中,1個2D結點重建后可能對應多個3D結點,這些3D結點平面位置都與2D結點相同,只是高度不同。故平面圖中的每1個2D結點對應1串 3D結點。為此,引入文獻[13]提出的結點列概念,用符號Λ表示1個節點列,每1個2D結點對應 1個結點列。進一步的工作是為結點列中各個3D結點設置高程,而2D結點并不含高程,需從2D結點關聯的2D邊上間接獲取。

常規建筑物平面圖中,1個2D結點至少關聯2條邊,至多關聯4條。每條邊都對應1個“推拉”間隔,這些邊的間隔可傳遞給2D結點。對于1個2D結點,取出與它關聯的每1條邊“推拉”間隔的左值與右值并排序,每個值加上樓層的起始高程即是1個3D結點的高程,每個高程與該2D結點的平面位置一起構建1個3D結點,同一平面位置上的3D結點形成了該2D結點的結點列。圖4(a)是平面圖及其對應的“推拉”間隔,樓層的起始高程為 75 m;圖 4(b)是圖 4(a)的 1部分,邊 e1、e2、e3將高程傳遞給結點a、b、c和d;圖4(c)中的點分別是2D結點a、b、c、d創建的3D結點。經過以上處理,得到平面圖各個2D結點位置的3D結點列,同時也按從低到高的順序完成了3D結點高程值的排序。

2.2 創建3D面

生成3D結點列后,進一步生成3D面。由于平面圖中2D面的方向已經按照右手準則指定為向上,這也意味著多邊形各條邊的方向被確定。對于任意1個2D面,遍歷它的每條邊,獲取當前邊起始結點位置的3D結點列Λstart、終止結點位置的3D結點列Λend,從該邊結點列Λend的起始高程H(Λend)處開始爬升搜索,到達1個新的3D結點Nnew后,獲取該3D結點的高程值Hnew,然后到對面結點列Λstart中查找與Hnew等高的3D結點;若沒找到,則返回到結點列Λend,從Hnew處的3D結點繼續向上爬升。重復上述的過程,直至爬升到結點列最高處的3D結點,之后回到結點列Λstart中,從最高處開始降落搜索,直至降落到Λstart最低處的3D結點,搜索到的 Λstart和 Λend中的 3D結點圍成的面即是該2D邊對應的3D面。若在Λstart找到Hnew的對應結點,則直接回到結點列Λstart中,從Hnew對應的3D結點開始降落搜索,直至降落到結點列中位置最低處,搜索到的3D結點圍成3D面。之后回到結點列 Λend,繼續搜索更高位置的 3D面,從高度Hnew的3D結點繼續向上搜索,到達新高度位置獲取新結點Hnew’后,再回到結點列Λstart中,從Hnew’對應的3D結點開始降落搜索,直至到達Hnew處的3D結點,搜索到的3D結點又圍成3D面,重復此過程搜索、構建更高高度的3D面。

圖 2 廣義“推拉”示例

圖3 室內3D重建流程

在搜索過程中,連接2個3D結點形成1條3D邊。如果邊是垂直邊,則其方向指定為由低處指向高處,如果是水平邊,則指定其方向和平面圖中相應2D邊的方向一致。從高處向低處搜索和從邊終止結點向起始結點搜索時,不再創建新的 3D邊,而是使用由相同3D結點已構造的3D邊,只是在其前面標記“-”,表示與原來的邊方向相反。3D面由生成的3D邊圍成,3D面的方向按照搜索3D結點的順序,根據右手準則確定。

生成3D面之后需要為每個面賦予建筑部件語義。遍歷每條2D邊,找到當前邊生成的3D面,若只有1個,則直接將2D邊的建筑部件類型賦給3D面;否則,先計算當前2D邊“推拉”間隔的左值與樓層起始高程的和,再分別取每個3D面高程值最小的3D結點(高程值最小的結點可能不止1個,任取其中1個)進行對比,找出后者與前者相同的3D面,并將2D邊的建筑部件類型賦給它,剩余的3D面賦予墻。

圖5為構建3D面的示意圖,左圖展示了3D結點與 3D面的方向,右圖為完成構面的效果圖。

在構建圖4中2D邊e1對應的3D面時,獲取起點a的結點列Λstart(圖5中A在的結點列)與終點b的結點列Λend(圖5中B在的結點列),從Λend的最低處B開始爬升搜索,到達E,在Λstart中查找與E等高的3D結點,沒有找到,返回到Λend,繼續向上爬升,直至爬升到Λend最高處也就是G處,之后回到Λstart中,從位置最高處H開始降落搜索,直到到達Λstart的最低處A,Λstart和Λend中的3D結點{BEFGHA}圍成1個3D面,根據這些結點的3D坐標值以及各結點的順序在模型中創建相應的3D幾何點、邊和面。

在構建圖4中2D邊e2對應的3D面時,獲取起點b的結點列Λstart(圖5中B在的結點列)與終點c的結點列Λend(圖5中C在的結點列),從C處開始爬升搜索,到I后,在Λstart中找到結點E與I高度相同,E為I的對應結點,從E降落搜索,直至降落到最低處B,Λstart和Λend中的部分3D結點{CIEB}圍成 1個3D面。之后回到 C所在的結點列Λend,從 I處繼續向上搜索,重復上述過程,又找了 2個結點序列{IJFE}、{JKGF}。最后根據結點序列創建邊、面,如面 f1={AB,BE,EF,FG,-HG,-AH},f2={CI,-EI,-BE,BC},其方向均按照右手準則朝向外側。

圖4 3D結點的創建

圖5 3D面的創建

上述步驟生成了模型的各個立面,進一步構建水平面。水平面僅需在2個樓層之間構建即可,水平面中各結點的高程相同。前面已經生成了平面圖中各2D結點對應的3D結點列,按照構成2D面的邊的順序,遍歷每1條邊,在每條邊的每個2D結點對應的結點列中,找到高度最低以及最高的 3D結點,連接它們生成3D邊與面,3D邊的方向與2D邊的一致,3D面的方向朝上。從本質上講,同一高度的3D邊構面與2D空間的多邊形自動構建類似。

2.3 創建 3D 體

生成了模型的立面、水平面后,它們雖然在形式上圍成了體,但并沒有構建成體,而僅僅是NEF(node-edge-face)模型。需要進一步顯式的表達體對象,也就是將圍成體的面找出并組織成體。初始平面圖中1個多邊形重建后生成1個3D體,稱為房間體,本文采用“投影法”查找圍成1個房間體的面,具體步驟如下:

第1步:求取面內部點點集。遍歷已生成的所有面,對于任意1個面,在構成面的結點中按照逆時針方向依次取3個不共線的結點:Ni-1、Ni、Ni+1,計算矢量叉乘Ni-1Ni×NiNi+1,若數值為正,則Ni為凸點,計算Ni-1與 Ni+1的中點Nmid,Nmid即為面內部的一點;若數值為負,則 Ni不是凸點,沿逆時針方向依次向后順延1點,直到找到凸點為止。遍歷完面后,獲得內部點集{Nmid}。

第2步:進行投影。遍歷平面圖,以當前平面圖為投影面,計算當前層最低高程值與最高高程值,搜索{Nmid}中結點的 Z坐標在范圍內的結點集中每個結點向投影面作垂線,垂線與投影面的交點稱為點的投影。投影后的結點會有2種情況:①落在投影面中某個多邊形的內部;②落在多邊形的邊界上。實際操作中由于計算機存儲浮點數問題,投影點可能并不是恰好落在邊界上而是落在邊界附近1個很小的鄰域內,為此設置1個容差值,當落點與邊界的距離小于容差值即視為落在邊界上。

第3步:尋找離散面。在實際情形下每個多邊形對應 1個房間體,遍歷投影面中多邊形,判斷中落入當前多邊形內部與邊界的投影點,將落入多邊形內部的點對應的面記為水平面,它們構成了房間體的頂面和底面;將落入邊界上的點對應的面記為豎直面,它們構成了房間體的立面。為進一步驗證找到的立面是否為當前房間體的面,判斷是否存在公共邊,若立面中的某個水平面存在公共邊,則為當前房間體的立面,若沒有公共邊,進一步在中查找與 f鄰接的立面,若這些立面中有 1個與中的某個水平面存在公共邊,則也可以判斷它是構成當前房間體的立面,這樣就找到了當前房間體的所有面。

在體中各面的方向要朝向體的外部,由于之前創建水平面時已經將各面的方向指定為向上,對于創建的各水平面,如果其高程和該層最低高程相同,則為底面,其方向應向下,將其記為“-”,如果其高程和該層最高高程相同,則為頂面,記為“+”。通過“投影法”將圍成1個房間體的離散面組織到一起,并指定了面的方向,完成了房間體的創建。

3 實驗與結果分析

為測試提出的方法,利用Ruby語言開發了1個原型系統。實驗選用1個小區作為實驗數據進行測試,該小區有16棟建筑物,5種類型,涉及同構、異構、弧形、騎街等多種情況。實驗使用的平面圖為DXF格式,“推拉”前對平面圖進行了預處理,保留了門、窗、墻等圖層,刪除了其他圖層,并對圖形之間的關系進行檢查,剔除錯誤,然后對圖層中各建筑部件的起始高度和“推拉”間隔進行了設定。實驗使用的計算機的CPU為四核酷睿i7-4790 @3.6 GHz,內存為 16G DDR3 1660。圖 6 是實驗結果:圖6(a)是類型Ⅰ,它是上下異構的建筑物,不同灰度的面表示不同類型的建筑部件;圖6(b)是類型Ⅱ,它是上下同構的建筑物,對最上層進行了揭蓋顯示;圖6(c)是類型Ⅲ,它也是異構建筑物;圖6(d)是類型Ⅳ,屬于跨街建筑物—騎街樓;圖6(e)是類型Ⅴ,為拐角樓;圖6(f)是尋面構體的實驗效果。

圖 6 實驗結果

實驗對生成模型的結點、邊、面、體以及耗時進行了統計,結果如表1所示。對于普通的6、7層的建筑物,重建時間小于10 s,整個小區16棟建筑物的重建共耗時約123 s。3D數據一旦生成后可多次使用,不用考慮實時生成的需求,所以算法的耗時可以接受。此外,生成的3D模型可根據需要導出MDB格式的數據庫或skp格式文件。

表1 3D模型數據表

在構建樓層模型過程中,按照拓撲共享方式生成3D數據。圖7是導出的3維模型數據:圖7(a)是結點表,存儲了節點的標識(identification,ID)和點的3D坐標;圖7(b)是邊表,存儲了邊的起點和終點,每條邊記錄其所引用結點的ID號;圖7(c)是面表,存儲了構成面的邊的ID號;圖7(d)是體表,存儲了構成體的面的ID號。通過這些表可以看出,高維拓撲基元通過引用低維拓撲基元的方式構建。例如,結點表中高亮顯示了2條記錄,分別記錄了8412號、8413號結點的信息。邊表中高亮顯示了8411號邊的信息,該邊引用了結點表中的8412號和8413號結點;面表高亮顯示了10879號面的信息,該面的構建引用了8411號邊;體表高亮顯示了00000008號體的信息,該體的構建引用了 10879號面。通過結點→邊→面→體遞進引用的方式,實現了拓撲共享,減少了數據冗余,維護了拓撲的一致性。

圖7 模型導出3維數據

4 結束語

在不對現有建筑物直接3D測量的情況下,本文提出利用已有的2D圖形資料,采用廣義“推拉”的方式重建包含樓層、房間、門、窗等室內結構的建筑物 3D室內模型。該方法主要用于墻面垂直,頂面、底面平行的室內空間建模,而現實世界中的絕大多數建筑物屬于該類;因此該方法具有較強的通用性。實驗所采用的數據由當地房產測繪院提供。由于樓層平面圖沒有統一的空間參考,實驗采用了同名點校正方法進行處理,即通過選取同一棟建筑物各個樓層平面圖中相同位置的點(樓拐角、樓梯角等),并以實測分丘圖(包含宗地邊界和建筑物基地輪廓的地形圖)中對應點為基準進行空間校正。校正后2D數據的精度主要受到3方面的影響:①分丘圖中建筑物基地的精度,誤差在5 cm以內;②圖上選取同名點的圖解誤差,由于樓層平面圖是矢量圖,選取過程采用了捕捉模式,誤差很小,可以忽略;③校正誤差,即選取同名點后以樓基輪廓為基礎進行樓層平面圖校正,誤差因選取的校正方法不同而不同。由于本文關注重點是重建方法,沒有對校正誤差進行深入分析,在進一步的工作中將對重建后的3D模型精度進行深入的探討。

實驗中僅涉及了門、窗、墻等建筑部件,現實世界中建筑物非常復雜,涉及多種建筑部件以及飄窗、躍層等復雜結構,下一步將添加更多類型的建筑部件進行測試,完善廣義“推拉”算法,使之能支持更多類型的建筑部件重建。另外,當前實驗中建筑部件“推拉”間隔采用了人工指定的方式,進一步將開發1個2D平面圖預處理程序,在現有2D雙線平面圖基礎上,提取單線平面圖,并自動或半自動賦以“推拉”間隔,使得前期的數據處理更加自動化,從而提高整個建模的效率。

猜你喜歡
模型
一半模型
一種去中心化的域名服務本地化模型
適用于BDS-3 PPP的隨機模型
提煉模型 突破難點
函數模型及應用
p150Glued在帕金森病模型中的表達及分布
函數模型及應用
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
3D打印中的模型分割與打包
主站蜘蛛池模板: 热99精品视频| 成人一区在线| 国产在线观看第二页| 日韩一区精品视频一区二区| 国产福利小视频在线播放观看| 国产99精品视频| 中文无码精品A∨在线观看不卡| 激情综合婷婷丁香五月尤物| 日本亚洲欧美在线| 免费日韩在线视频| 五月天综合网亚洲综合天堂网| 亚洲中文字幕23页在线| 国产精品第三页在线看| 四虎永久免费地址在线网站| 97色婷婷成人综合在线观看| 成人午夜亚洲影视在线观看| 青青草一区二区免费精品| 亚洲成aⅴ人在线观看| 98超碰在线观看| 全部无卡免费的毛片在线看| 国产va在线| 97色伦色在线综合视频| 国产激情无码一区二区三区免费| 91伊人国产| 久久中文字幕av不卡一区二区| 91伊人国产| 911亚洲精品| 亚洲综合久久成人AV| 国产精品嫩草影院av| 国产精品偷伦视频免费观看国产 | 久久精品只有这里有| 久久国产精品无码hdav| 中文字幕在线观看日本| 久久国产乱子伦视频无卡顿| 色综合天天综合中文网| 国产精品自拍露脸视频| 成年人国产视频| 国产鲁鲁视频在线观看| 国产精品一区二区不卡的视频| 日韩毛片免费| 国产精品熟女亚洲AV麻豆| 国产午夜精品鲁丝片| 视频一区视频二区中文精品| 高清国产在线| 中文一级毛片| 久久综合色天堂av| 人妻无码中文字幕第一区| 亚洲国产一成久久精品国产成人综合| 欧美三級片黃色三級片黃色1| 国产无码高清视频不卡| 亚洲三级视频在线观看| 欧美视频在线第一页| 亚洲av日韩av制服丝袜| 成人一区在线| 久久国产拍爱| 高清无码不卡视频| 91区国产福利在线观看午夜| 亚洲AV色香蕉一区二区| 成年人久久黄色网站| 久久综合成人| 亚洲人成网站日本片| 久久黄色免费电影| 在线欧美日韩国产| 国产精品亚洲一区二区在线观看| 在线免费观看a视频| 亚洲一区二区黄色| 亚洲天堂久久| 91亚洲精选| 97视频免费看| 婷五月综合| 91九色视频网| 91在线精品免费免费播放| 欧美一区精品| 中文无码精品a∨在线观看| 国产精品免费入口视频| yjizz视频最新网站在线| 这里只有精品国产| 漂亮人妻被中出中文字幕久久| 亚洲黄网在线| 婷婷中文在线| 欧美一区福利| 伊人91在线|