张明涛,刘恒超,徐兵峰,杨超然,高 天
(中铁高新工业股份有限公司,北京 100070)
随着CAD技术的广泛应用,电子图纸已成为主要的存档和浏览形式。为避免图纸在流转中出现非许可修改,通常以像素图像形式传阅。由于在工程使用中从像素图纸获取准确尺寸标注信息非常困难,因此出现了大量图像识别方法以及转化应用软件,以实现从像素图像到矢量图形的转化。然而在转化后的矢量图纸中,字符同样被矢量化为图形元素,失去了其字符属性,这给图纸的自动化处理造成了很大阻碍。
目前,针对字符的识别主要是光学字符识别,方法分为统计特征字符识别、结构字符特征识别、人工神经网络识别[1]。基于统计特征字符识别虽能快速匹配,但对字符方向改变等变形字体无能为力,且对形近字区分能力较弱,通常用于字符的粗分类。结构字符特征识别具有识别方便、对图像畸变抗干扰能力强的特点,但其需要较强的图像分辨率,占用了大量的系统资源,从而影响了识别速度。人工神经网络的识别能有效地对各种模糊字符进行正确判断,但其学习速度慢,泛化能力很弱。针对矢量图形识别的方法大致分为3类:基于统计的识别方法、基于结构的识别方法、基于统计与结构混合的识别方法。基于统计的识别方法可直接应用于矢量图纸,但待识别图纸中只能有一个符号,局限性很大。基于结构的识别方法能有效表达出符号特征,识别准确度高,但通常计算量较大,识别效率较低。基于统计与结构混合的识别方法,继承了统计和结构两类方法的优点,但由于快速筛选的矢量签名容易受到噪声和变形等的影响,可能漏掉一些目标符号[2]。本文采用树与链码相结合的描述方式,在提高识别效率的同时也提高了识别的准确率。
搜索策略是影响识别方法搜索效率的重要因素。现有许多方法都是通过反复遍历图纸查找特征元素,搜索时间复杂度极高。文献[3]~[6]都提到了关键图元概念,其基本思想是:将符号某个组元作为关键图元,识别时首先在目标图纸中快速定位关键图元,再从关键图元周围区域逐个寻找符号的其他组元。对于矢量图纸中数字字符通常为1~2个组元的情况则无法使用。
因此,本文采用基于伴随图元的渐进搜索方法。工程图中数字通常伴随尺寸、标注引线或表格存在,通过位置及属性特征可快速搜索定位尺寸、标注引线或表格,再从伴随图元周围区域搜索数字图元,能有效缩小搜索范围,提高搜索效率。
目前像素图纸转换得到的工程图纸中,字符通常为线段的集合。整理、总结多种转化后工程图纸中数字字符样式,得到矢量数字字符线段形式有图1所示几种形式。每个数字字符由1~2条多段线组成。
图1 数字字符样式
以数字“2”为例,其由一条具有14个点的多段线l组成,用Pi(i=0,1,2,…,13)表示第i个点,如图2所示。由组成数字字符的多段线个数及属性特点,可知10个阿拉伯数字字符应具有两个属性:线段条数Lnum,是否闭合Clbl。根据属性特点分类如下。
图2 数字“2”多段线 图3 数字“1”
单条、非闭合:1 (图3(a))、2、3、5、6、7、9。
多条、非闭合:1 (图3(b))、4。
单条、闭合:8、0。
图纸中的数字字符主要集中在尺寸标注线、引线标注线上和材料零件明细表中,如图4、图5所示。尺寸标注线上的数字字符在尺寸线的中心位置,引线标注线上的字符在引线的水平线上,材料零件明细表中的字符则在每个单元格中。
图4 尺寸标注线和引线标注线
图5 材料明细表
根据数字字符样式特点,用y=f(xi)表示数字多段线的线段方程,其中xi为字符多段线上第i点的x坐标,i=0,1,2,…。对字符多段线f(xi)计算其一阶微分(式(1))得到图形变化趋势,进而求得数字字符图形的关键点。
(1)
式中:dy为点(i+1)与点i的y方向增量;dx为点(i+1)与点i的x方向增量。多段线f(xi)方向发生改变的点即为关键点。以数字“2”为例,如图2所示,其多段线各点微分值见表1,可知数字“2”有5个关键点,分别为P0,P5,P9,P12,P13。
表1 关键点计算
单条、非闭合多段线组成的数字“1”和“7”,以及多条、非闭合多段线组成的数字“1”和“4”,由于组成这4个数字的多段线点集个数有限,因此将多段线上全部点都作为关键点。其他数字关键点统计见表2。
表2 关键点统计
将组成数字字符多段线的关键点作为父节点,与其相邻的节点根据前后顺序分别以链码的形式作为子节点,形成树形链码,描述如式(2):
(2)
式中:S为一条多段线;kpi为第i个父节点;lf,lb分别为每个父节点下有两个子节点的链码。
由上述树形链码描述的多段线S,进一步添加线段个数、线段属性、关键点相对关系3个属性,建立矢量数字字符特征模型N如下:
(3)
式中:S1,S2为组成数字字符的多段线;isClosed表示多段线是否闭合;KeyAngle表示关键点相对位置关系;Number表示组成数字字符的多段线个数。仍以数字“2”为例,其特征模型表示为:
(4)
由于是基于图元自身特征信息及相对位置关系建立特征模型,因此该特征模型不受字符方向限制。无论数字在图纸中书写方向如何,均不会影响数字字符特征的识别,免去了字符方向判断和使用空间变换矩阵进行转换的过程,在提高效率的同时也避免了由转换引起的识别误差。
根据图纸中数字字符位置特点,提取图纸中标注引线、尺寸界线、材料零件明细表单元格图元。在图元周围搜索多段线图元特征,并利用基于树形链码建立的数字字符特征模型,对多段线进行匹配。首先建立多段线的树形链码模型,将树形链码中父节点与数字字符特征模型中的父节点进行匹配,匹配合格后,再根据其他属性特征进一步确定识别结果,具体识别流程如图6所示。
图6 识别流程
将本方法应用于转化后的工程图零件材料用量统计中,能快速高效地自动统计出图纸中零部件的尺寸信息。以图7为例进行图纸信息提取,通过上述数字识别方法,能够将表格中尺寸、型号、数量、单重、总重中的数字字符准确提取,结果见表3,分析可知计算速度与电脑性能呈正相关,准确率随识别字符数量的增加略有降低。
表3 结果统计
图7 算法应用
查找未识别的原因有:转化后的数字的矢量图形线段组中存在多余或重合的多个线段,导致识别错误或无法识别。
本文通过对转换后矢量图纸中数字字符图形特征进行分析,基于树形链码建立矢量数字字符特征模型,采用伴随图元的渐进搜索策略,实现矢量图形数字字符的识别。该方法能够快速定位初选数字字符集,实现精准、高效的识别,为工程图纸信息提取、材料用量自动统计等工作提供了高效、便捷的实用方法。