彭 陽, 余芳強, 宋天任
(上海建工四建集團有限公司, 上海 201103)
在BIM全生命期應(yīng)用中,根據(jù)設(shè)計或竣工圖紙建立BIM往往是第一步實質(zhì)性工作。從圖紙建立BIM的過程中,信息一致性是非常重要的,需要進行嚴格的審核。若BIM對象的信息與原始圖紙不一致,將在后續(xù)基于BIM模型的管理時帶來很多困惑,甚至造成錯誤決策。但是隨著工程項目規(guī)模不斷擴大,圖紙規(guī)模、建模工作量和出錯數(shù)量都會迅速上升。因此,使用人工來做圖模審核變得越來越不現(xiàn)實,必須引入計算機自動化的一致性審核方法。
幾乎所有的工程圖紙都是CAD軟件保存的DWG格式。雖然人能夠讀懂CAD圖紙,但在計算機看來,這些圖紙僅僅是一些圖線和文字的松散集合。這就給自動化的圖模一致性審核帶來了三方面的困難:(1)繪圖時圖塊放置隨意,不同單位的圖紙邊欄格式也不統(tǒng)一,導致圖紙元數(shù)據(jù)難以提取。(2)通過文字標記來定位CAD圖紙中的構(gòu)件時,難以在大量文字塊中尋找有用信息。暖通機電圖紙中甚至經(jīng)常使用不規(guī)范的引線標注,導致標注文字與標注對象相距很遠。(3)很多細小構(gòu)件根本就沒有文字標注,僅以圖例來表達[1]。如何在圖線大量堆疊的情況下不遺漏地找到它們是需要研究的。
目前圖模一致性審核的研究很少,主要報道的是BIM的合規(guī)性審核[2,3]。已有一些研究圖紙文字和圖形模式的識別,例如采用聚類方法將鄰近的圖塊及附加文字識別成一個整體[4]。對于掃描版的圖紙還可以使用光學字符識別(Optical Character Recognition,OCR)技術(shù)來提取文字[5]。有研究基于表格縱橫線的識別來定位文字[6],或者先取出所有文字再按規(guī)則過濾[7]。但是,CAD圖紙中的文字對象還含有塊參照、坐標、字號等重要數(shù)據(jù),本文將充分利用以挖掘更多信息。CAD可以直接提取一個圖層的幾何形狀信息,例如直線、多段線、圓弧等。如何判別這些零散形狀構(gòu)成的有意義模式是圖紙檢查的關(guān)鍵[1]。已有的研究可以通過文字和圖線得到一些有用信息,但不能精確尋找某個特定圖塊的位置,不適合用于自動化的圖紙與模型比對檢查。
為了解決這些問題,本文提出了圖紙與模型一致性審核的新方法,整個審核過程可以全部用Python實現(xiàn)并自動運行。全自動審核的流程如圖1,主要創(chuàng)新點以深色框標出。
圖1 全自動圖模審核流程
BIM(Building Information Modeling)中的構(gòu)件名稱、坐標、類型等信息都以高度結(jié)構(gòu)化的方式存儲,且使用國際通用規(guī)范進行數(shù)據(jù)互用[8],因此審核所需的構(gòu)件語義信息不難提取出來[9],即使大型的模型也不會有任何障礙。本文使用Autodesk Revit二次開發(fā)對BIM進行預(yù)處理后,項目全局參數(shù)、構(gòu)件幾何信息、族信息、屬性集等全部被提取到自研軟件平臺的數(shù)據(jù)庫。
與BIM不同,圖紙的DWG格式是不開放的[10],而且不便于代碼集成和靈活操作[11]。因此先使用AutoCAD提供的接口自動把圖紙批量轉(zhuǎn)化為開源的DXF格式。
圖紙預(yù)處理中,首先識別國家規(guī)范定義的標準圖框尺寸,按照預(yù)設(shè)的比例尺縮放至足尺,然后平移對齊BIM的項目原點。此外還有一個重要問題是,CAD圖紙中大量使用塊參照,每個塊中的元素為上層塊的相對坐標,并不能直接比對模型的全局坐標。解決方法是采用遞歸的方式將所有嵌套的塊參照轉(zhuǎn)換成最頂層圖紙下的統(tǒng)一坐標,并記錄在內(nèi)存中。
元數(shù)據(jù)是項目的一些基本信息。獲取元數(shù)據(jù)最直接的方法是,事先要求制圖者將文字寫在圖紙上的固定位置,然后用程序批量讀取[12],但這種方法很難在多個項目的實踐中推行。本研究利用CAD的塊參照信息識別屬性鍵值對,也就是屬性名稱 - 屬性值構(gòu)成的二元組。首先定義常見的屬性名集合,例如工程名、建設(shè)單位、專業(yè)名稱、日期。然后找到包含這些名稱最多的塊,其中包含的多行文字即為本圖紙的屬性。如圖2,查找左側(cè)坐標最近且高度大致相同的文字,如果左側(cè)相同高度沒有字,則下方文字為屬性值。
找到這些屬性對之后,進行兩方面的審核:(1)專業(yè)、人名、圖號等重要信息需完全一致;時間值解析成年月日,精確到日期就算一致;一般的屬性如版本名和系統(tǒng)名稱只需80%的字符一致。(2)涉及項目名稱、醫(yī)院名稱、單位名稱的屬性,使用NER(命名實體識別)模型做提取,與BIM附帶的相應(yīng)名稱作對比。
這一節(jié)審核有文字標注的較大型設(shè)備或構(gòu)件。圖紙中的設(shè)備類型編碼和編號通常是分開標注的,例如門編號和型號大致是橫向排列,圖3中排風機的“EF”和“04-05”豎向排列。由于CAD圖紙中的標注方式較為隨意,沒有嚴格的規(guī)則,故合并順序很重要。實踐中使用橫縱坐標的軟排序,即縱坐標明顯不同時,按縱坐標從上往下合并;差別不大時,只按橫坐標順序合并。
圖2 屬性鍵值對的提取
圖3 引出式標記的例子
圖紙中主要是普通標記,即所注構(gòu)件就在文字旁邊,只需要將鄰近的標注文字合并,以提取完整的語義,且構(gòu)件位置為文字的平均坐標。
同時,機電圖紙中也存在大量的引出式標記,用于注記重要機電設(shè)備,這時還要識別引線位置(見圖3)。如果一塊文字附近存在一個隨機傾角(非45°倍數(shù)的角)的長直線端點,則認為這是一個引出式標記,需要尋找引線另一個端點,記為設(shè)備的實際位置。
本研究從企業(yè)工程圖紙庫中收集了約100份建筑和機電圖紙,整理出79種標準化的設(shè)備編號規(guī)則,為圖模審核提供了規(guī)范。包含暖通、給排水、門窗三個大類,如表1,暫未收錄其他類型。如果企業(yè)有自己的標準,也可以靈活配置。由于結(jié)構(gòu)圖紙的構(gòu)件數(shù)量較少,鋼筋的建模又較為專業(yè)僅能人工檢查,自動審核的需求不大,因此未納入。每條規(guī)則使用正則表達式匹配CAD文字,若有多個匹配,則以優(yōu)先級最大者為準。無法匹配的則不認為是一個標注。
表1 設(shè)備標準編號規(guī)則(部分)
圖4 本體信息映射和審核方法
如圖4,分別將CAD圖紙標注和BIM信息映射到同一維度的本體信息。類型信息使用標準編號規(guī)則映射;圖紙位置從插入點等數(shù)據(jù)算得,模型坐標來自包圍盒的中心點。一致性審核的結(jié)論有四種:(1)正確匹配:坐標和BIM構(gòu)件本體信息同時正確;(2)模型多余:圖紙中沒有,而BIM在此處建了模;(3)模型缺少:圖紙畫了但是沒有建立相應(yīng)的模型;(4)型號不匹配:是一種較輕的錯誤,構(gòu)件類型和位置都正確,但文字參數(shù)有出入。需要指出的是,如果圖模的位置不匹配,則會形成“模型多余+模型缺少”的一對錯誤組合。
至此已經(jīng)解決了有文字標注的構(gòu)件審核,但CAD圖紙還存在大量只有圖例沒有標記的小型建筑構(gòu)件,在沒有任何附加信息的情況下自動識別它們是很困難的。已有進展大多采用了一些半自動的算法,例如由用戶指定圖紙上的幾個關(guān)鍵點來定位一個柱截面,應(yīng)用于簡單圖紙的翻模[13],或者專門識別細長的結(jié)構(gòu)梁軸線[14]。有研究提出將圖紙區(qū)域切成若干同心圓環(huán)來提取特征,可以衡量圖形的相似度[15],還有報道以卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)應(yīng)用于圖紙形狀的分類[16,17],但這些方法本質(zhì)上是給出整體上的分類概率,也不針對圖模一致性審核。
圖5 極坐標特征匹配過程
本文提出一種基于構(gòu)件圖例圖像特征的審核方法,針對這類數(shù)量多、無可靠文字標記、有圖例的構(gòu)件。首先采用DDA(Digital Differential Analyzer)算法,將經(jīng)過坐標變換的圖紙中的直線、多段線、圓弧等對象轉(zhuǎn)化為位圖。位圖的每個像素只有0和1兩種狀態(tài),表示此處有無圖形。以下定義圖例的連續(xù)極坐標特征(Continuous Polar Features,CPF)。如圖5左,將圖例從中心點等分成nf個扇形,每個扇形再等分nr份區(qū)域。如圖5右上。記錄每個區(qū)域內(nèi)非零像素個數(shù)占扇形總非零像素的比例,形成nr維扇形的特征編碼向量。然后把所有特征編碼向量連寫兩遍,得到的圖例CPF就是2nf個特征編碼向量的序列。從圖紙位圖左上角開始,使用可伸縮的矩形窗口族掃描,窗口采用同樣的方法計算極坐標特征,但是不連寫,而是在圖例的CPF上滑動(圖5右下),在任意位置的匹配度超過閾值則找到該構(gòu)件,記錄坐標。利用CPF找到構(gòu)件位置后,可與模型構(gòu)件坐標對比審核。該算法的特點是能適應(yīng)任意的圖形旋轉(zhuǎn)角度,且較好適應(yīng)圖紙中的縮放。
本團隊開發(fā)了全自動圖模一致性審核軟件系統(tǒng),應(yīng)用在上海市某大型三甲醫(yī)院的全樓層模型,作為本市第一個深度應(yīng)用BIM進行運維管理的項目,必須嚴格保證竣工BIM模型里關(guān)鍵設(shè)備的位置準確,因此與竣工圖紙一致性的要求特別高。自動化圖模審核涉及14層的BIM模型和18張CAD圖紙,總建筑面積5萬m2。一層的建筑和機電2張圖紙依序進行了元數(shù)據(jù)審核、文字性構(gòu)件審核和無標注圖例審核。每張圖紙的元數(shù)據(jù)和文字性構(gòu)件審核共計約30 s完成。圖例審核中取特征參數(shù)nf=24,nr=10,圖紙位圖約為5億像素,使用多進程加速,在中等配置的計算機上,每層5000 m2的圖紙約需各2 min審核時間。估測人工審核一層的圖模至少需要2 h,因此本文的全自動方法可以節(jié)約96%的工作時間。
為了衡量一致性審核的有效性,定義兩個指標:覆蓋率Rc=已審核數(shù)/需審核總數(shù)×100%;準確率Ra=(1-誤報數(shù)/需審核總數(shù))×覆蓋率。
主要審核項目的表現(xiàn)見表2。各類的覆蓋率都很高(由于防火門等構(gòu)件很多,驗證覆蓋率時僅隨機抽樣100個),這表明應(yīng)當檢查的構(gòu)件基本上都被檢查過。但有引線的文字標注審核的誤報數(shù)量較多,準確率略差。以下用幾個實例來分析圖模一致性審核應(yīng)用的效果。
表2 部分審核項的有效性
圖6,7為文字性構(gòu)件審核的實例。在審核界面上,紅色感嘆號為有問題的位置。圖6為模型多余問題的實例。此處模型出現(xiàn)了一個軟水箱,但圖紙中并沒有標注。建模人員聯(lián)系設(shè)計單位后,逐一修訂了多余模型的參數(shù)。這類不帶引線的普通標記構(gòu)件大多數(shù)比較容易在圖紙中找到,雖然數(shù)量眾多,但Rc還是可以很高。且文字易于對應(yīng)到表1的編號規(guī)則,因此Ra均超過九成。
圖6 模型多余的實例
圖7為型號不匹配的例子,這是一個排風機,圖紙標注為EF-B1-16,但模型對應(yīng)位置出現(xiàn)的是EF-B1-17,雖然模型族正確,但編號錄入有誤。建模方負責對此類錯誤進行了改正。此類引出式標記存在一些斷行、分開標注的情況(參見圖3),有時會出現(xiàn)漏檢,因此Rc略有降低。且暖通機電圖紙的直線元素極多,經(jīng)常干擾識別引線末端坐標,導致Ra只有八成左右,如何更準確識別引線所指的位置是一個可以改進的方向。
圖7 型號不匹配的實例
圖8是基于圖像特征識別的兩個中間結(jié)果分析。圖8左圖是識別雙扇門,1-4,2-5,2-7等都是圖例旋轉(zhuǎn)90°后形成的構(gòu)件,可以順利識別;1-3,2-6尺寸較小,成功匹配了小尺寸窗口;2-3這樣的局部干擾區(qū)域仍會產(chǎn)生誤判。圖8右圖,吸頂燈這類特征明顯的元件識別精度可以更高。綜合來看,憑借圖例的特征幫助,這類識別圖像特征的審核Rc最高。但是容易出現(xiàn)的錯誤是圖紙中不是門扇的位置也報告出來,拉低了Ra。
由于CAD圖紙的元數(shù)據(jù)難以提取、文字標注隨意、大量構(gòu)件缺少標注僅有圖例,導致圖紙與BIM模型的一致性審核很難自動化進行。為了解決這些問題,本文提出了一套全自動的圖模一致性審核方法。首先對圖紙和模型進行預(yù)處理。一致性審核分為三個階段,即提取并比對元數(shù)據(jù)、文字性構(gòu)件的審核、基于構(gòu)件圖像特征的審核。其中計算圖例的連續(xù)極坐標特征進行圖像匹配的方法是針對大量無可靠標注的小型構(gòu)件。
實際工程應(yīng)用表明,建筑和機電圖紙的審核能節(jié)省96%的時間和人工,且覆蓋率和準確度均較好也大大加快BIM建模的審核進度,提升了BIM建模的質(zhì)量。為綜合提升圖模自動審核的覆蓋面和準確度,未來的工作方向可能包括:增加結(jié)構(gòu)平法、水電系統(tǒng)、詳圖等其他圖紙的審核算法;提升引線式標注的識別精度;采用機器學習的方式對每個企業(yè)的圖紙繪制標準進行訓練優(yōu)化。