張明濤,劉恒超,徐兵峰,楊超然,高 天
(中鐵高新工業(yè)股份有限公司,北京 100070)
隨著CAD技術(shù)的廣泛應(yīng)用,電子圖紙已成為主要的存檔和瀏覽形式。為避免圖紙在流轉(zhuǎn)中出現(xiàn)非許可修改,通常以像素圖像形式傳閱。由于在工程使用中從像素圖紙獲取準(zhǔn)確尺寸標(biāo)注信息非常困難,因此出現(xiàn)了大量圖像識別方法以及轉(zhuǎn)化應(yīng)用軟件,以實現(xiàn)從像素圖像到矢量圖形的轉(zhuǎn)化。然而在轉(zhuǎn)化后的矢量圖紙中,字符同樣被矢量化為圖形元素,失去了其字符屬性,這給圖紙的自動化處理造成了很大阻礙。
目前,針對字符的識別主要是光學(xué)字符識別,方法分為統(tǒng)計特征字符識別、結(jié)構(gòu)字符特征識別、人工神經(jīng)網(wǎng)絡(luò)識別[1]。基于統(tǒng)計特征字符識別雖能快速匹配,但對字符方向改變等變形字體無能為力,且對形近字區(qū)分能力較弱,通常用于字符的粗分類。結(jié)構(gòu)字符特征識別具有識別方便、對圖像畸變抗干擾能力強的特點,但其需要較強的圖像分辨率,占用了大量的系統(tǒng)資源,從而影響了識別速度。人工神經(jīng)網(wǎng)絡(luò)的識別能有效地對各種模糊字符進行正確判斷,但其學(xué)習(xí)速度慢,泛化能力很弱。針對矢量圖形識別的方法大致分為3類:基于統(tǒng)計的識別方法、基于結(jié)構(gòu)的識別方法、基于統(tǒng)計與結(jié)構(gòu)混合的識別方法?;诮y(tǒng)計的識別方法可直接應(yīng)用于矢量圖紙,但待識別圖紙中只能有一個符號,局限性很大。基于結(jié)構(gòu)的識別方法能有效表達出符號特征,識別準(zhǔn)確度高,但通常計算量較大,識別效率較低。基于統(tǒng)計與結(jié)構(gòu)混合的識別方法,繼承了統(tǒng)計和結(jié)構(gòu)兩類方法的優(yōu)點,但由于快速篩選的矢量簽名容易受到噪聲和變形等的影響,可能漏掉一些目標(biāo)符號[2]。本文采用樹與鏈碼相結(jié)合的描述方式,在提高識別效率的同時也提高了識別的準(zhǔn)確率。
搜索策略是影響識別方法搜索效率的重要因素?,F(xiàn)有許多方法都是通過反復(fù)遍歷圖紙查找特征元素,搜索時間復(fù)雜度極高。文獻[3]~[6]都提到了關(guān)鍵圖元概念,其基本思想是:將符號某個組元作為關(guān)鍵圖元,識別時首先在目標(biāo)圖紙中快速定位關(guān)鍵圖元,再從關(guān)鍵圖元周圍區(qū)域逐個尋找符號的其他組元。對于矢量圖紙中數(shù)字字符通常為1~2個組元的情況則無法使用。
因此,本文采用基于伴隨圖元的漸進搜索方法。工程圖中數(shù)字通常伴隨尺寸、標(biāo)注引線或表格存在,通過位置及屬性特征可快速搜索定位尺寸、標(biāo)注引線或表格,再從伴隨圖元周圍區(qū)域搜索數(shù)字圖元,能有效縮小搜索范圍,提高搜索效率。
目前像素圖紙轉(zhuǎn)換得到的工程圖紙中,字符通常為線段的集合。整理、總結(jié)多種轉(zhuǎn)化后工程圖紙中數(shù)字字符樣式,得到矢量數(shù)字字符線段形式有圖1所示幾種形式。每個數(shù)字字符由1~2條多段線組成。
圖1 數(shù)字字符樣式
以數(shù)字“2”為例,其由一條具有14個點的多段線l組成,用Pi(i=0,1,2,…,13)表示第i個點,如圖2所示。由組成數(shù)字字符的多段線個數(shù)及屬性特點,可知10個阿拉伯?dāng)?shù)字字符應(yīng)具有兩個屬性:線段條數(shù)Lnum,是否閉合Clbl。根據(jù)屬性特點分類如下。
圖2 數(shù)字“2”多段線 圖3 數(shù)字“1”
單條、非閉合:1 (圖3(a))、2、3、5、6、7、9。
多條、非閉合:1 (圖3(b))、4。
單條、閉合:8、0。
圖紙中的數(shù)字字符主要集中在尺寸標(biāo)注線、引線標(biāo)注線上和材料零件明細(xì)表中,如圖4、圖5所示。尺寸標(biāo)注線上的數(shù)字字符在尺寸線的中心位置,引線標(biāo)注線上的字符在引線的水平線上,材料零件明細(xì)表中的字符則在每個單元格中。
圖4 尺寸標(biāo)注線和引線標(biāo)注線
圖5 材料明細(xì)表
根據(jù)數(shù)字字符樣式特點,用y=f(xi)表示數(shù)字多段線的線段方程,其中xi為字符多段線上第i點的x坐標(biāo),i=0,1,2,…。對字符多段線f(xi)計算其一階微分(式(1))得到圖形變化趨勢,進而求得數(shù)字字符圖形的關(guān)鍵點。
(1)
式中:dy為點(i+1)與點i的y方向增量;dx為點(i+1)與點i的x方向增量。多段線f(xi)方向發(fā)生改變的點即為關(guān)鍵點。以數(shù)字“2”為例,如圖2所示,其多段線各點微分值見表1,可知數(shù)字“2”有5個關(guān)鍵點,分別為P0,P5,P9,P12,P13。
表1 關(guān)鍵點計算
單條、非閉合多段線組成的數(shù)字“1”和“7”,以及多條、非閉合多段線組成的數(shù)字“1”和“4”,由于組成這4個數(shù)字的多段線點集個數(shù)有限,因此將多段線上全部點都作為關(guān)鍵點。其他數(shù)字關(guān)鍵點統(tǒng)計見表2。
表2 關(guān)鍵點統(tǒng)計
將組成數(shù)字字符多段線的關(guān)鍵點作為父節(jié)點,與其相鄰的節(jié)點根據(jù)前后順序分別以鏈碼的形式作為子節(jié)點,形成樹形鏈碼,描述如式(2):
(2)
式中:S為一條多段線;kpi為第i個父節(jié)點;lf,lb分別為每個父節(jié)點下有兩個子節(jié)點的鏈碼。
由上述樹形鏈碼描述的多段線S,進一步添加線段個數(shù)、線段屬性、關(guān)鍵點相對關(guān)系3個屬性,建立矢量數(shù)字字符特征模型N如下:
(3)
式中:S1,S2為組成數(shù)字字符的多段線;isClosed表示多段線是否閉合;KeyAngle表示關(guān)鍵點相對位置關(guān)系;Number表示組成數(shù)字字符的多段線個數(shù)。仍以數(shù)字“2”為例,其特征模型表示為:
(4)
由于是基于圖元自身特征信息及相對位置關(guān)系建立特征模型,因此該特征模型不受字符方向限制。無論數(shù)字在圖紙中書寫方向如何,均不會影響數(shù)字字符特征的識別,免去了字符方向判斷和使用空間變換矩陣進行轉(zhuǎn)換的過程,在提高效率的同時也避免了由轉(zhuǎn)換引起的識別誤差。
根據(jù)圖紙中數(shù)字字符位置特點,提取圖紙中標(biāo)注引線、尺寸界線、材料零件明細(xì)表單元格圖元。在圖元周圍搜索多段線圖元特征,并利用基于樹形鏈碼建立的數(shù)字字符特征模型,對多段線進行匹配。首先建立多段線的樹形鏈碼模型,將樹形鏈碼中父節(jié)點與數(shù)字字符特征模型中的父節(jié)點進行匹配,匹配合格后,再根據(jù)其他屬性特征進一步確定識別結(jié)果,具體識別流程如圖6所示。
圖6 識別流程
將本方法應(yīng)用于轉(zhuǎn)化后的工程圖零件材料用量統(tǒng)計中,能快速高效地自動統(tǒng)計出圖紙中零部件的尺寸信息。以圖7為例進行圖紙信息提取,通過上述數(shù)字識別方法,能夠?qū)⒈砀裰谐叽?、型號、?shù)量、單重、總重中的數(shù)字字符準(zhǔn)確提取,結(jié)果見表3,分析可知計算速度與電腦性能呈正相關(guān),準(zhǔn)確率隨識別字符數(shù)量的增加略有降低。
表3 結(jié)果統(tǒng)計
圖7 算法應(yīng)用
查找未識別的原因有:轉(zhuǎn)化后的數(shù)字的矢量圖形線段組中存在多余或重合的多個線段,導(dǎo)致識別錯誤或無法識別。
本文通過對轉(zhuǎn)換后矢量圖紙中數(shù)字字符圖形特征進行分析,基于樹形鏈碼建立矢量數(shù)字字符特征模型,采用伴隨圖元的漸進搜索策略,實現(xiàn)矢量圖形數(shù)字字符的識別。該方法能夠快速定位初選數(shù)字字符集,實現(xiàn)精準(zhǔn)、高效的識別,為工程圖紙信息提取、材料用量自動統(tǒng)計等工作提供了高效、便捷的實用方法。