专利名称:工程图自动识别与理解的方法
技术领域:
本发明涉及一种工程图自动识别与理解的方法,特别涉及一种使用层次式知 识表示对工程图自动识别与理解以辅助工程设计及检索的方法。
技术背景工程图已广泛应用于机械、电子、建筑、航空、航天、造船、化工、服装等 诸多领域。作为体现设计意图的主要载体,工程图在工程领域的各个环节之间广 为流通,有效促进了行业效率的提高。但工程图的人工阅读方式已成为制约海量 工程图中工程对象检索、设计复用的主要因素。工程图中所包含的工程对象一般 以图形化方式描述,由一组诸如直线段、弧、圆、字符串的相关图元组合而成, 而对该组相关图元所体现的工程语义信息的解释则一般由富有该领域工程经验 的人来完成。人工解释工程图以获取工程数据的方式有诸多缺点,如效率较低、 准确性及可重复性较差,容易产生数据不一致性,且对人的工程经验要求较高等。 因此,通过计算机实现工程图自动识别与理解成为解决工程对象快速检索与复 用、从而提高计算机辅助设计与制造水平的有效途径。现有工程图自动理解技术集中在如何将扫描蓝图转变为CAD系统能够读取 的低级矢量描述,以及利用硬编码方式或预定义的静态规则库识别一些简单的工 程符号,比如尺寸线。而电子工程图自动理解的关键在于识别其中高层工程对象 语义描述,且要求具有通用性和鲁棒性,现有的工程图自动识别与理解方法并不 能够实现这一目标,从而影响了自动识别与理解技术在工程领域的应用。工程图 中工程对象一般存在于较复杂的环境约束中,具体包括其自身各种可能的显式几 何组成约束,以及对象间如尺寸关联、对称、投影、引用、省略、示意式表达等 隐式语义约束。这些复杂的显式及隐式约束一般由设计师根据制图要求及个人风 格灵活选择与表达。 一般在人工读图时,有经验的工程人员可快速理解其中隐含 的设计意图,而对于计算机实现的自动识别与理解系统,如何表示工程对象各种 可能的几何组成及不同对象间的语义约束关系,并以此引导自动识别与理解,则 成为主要困难。 发明内容本发明的目的是针对现有技术仅能使用静态规则库识别简单符号或用硬编 码方式识别特定表达的工程图,提供一种灵活通用的、在结构化领域知识表示驱 动下的工程图自动精确理解与识别方法,以进一步提高计算机辅助设计与制造水
平。
技术方案为了达到上述目的,解决现有技术的缺陷,本发明提供了一种工 程图自动识别与理解的方法,该方法包括以下步骤
步骤l,输入CAD电子工程图,判断其是否被识别;如果判断结果为否则返 回步骤l;
步骤2,若步骤1中的识别结果为是,则根据所输入工程图类型,从知识文 件库中选择包含该工程领域知识描述的知识表述文件,并读取知识表述文件中的
.知识描述子;
步骤3,由知识处理器按知识描述子的层次式关系在计算机内存中处理所述 CAD电子工程图进行分析并转化为EBNF一Tree文件;
步骤4,对EBNF一Tree文件进行深度优先遍历,并判断是否遍历结束,如果 判断结果为是,则返回步骤l;
步骤5,如果步骤4中的判断结果为否,则访问EBNFJTree文件的叶节点;
步骤6,读取所述叶节点中对应的知识描述子,并解析出其中的识别函数名;
步骤7,对象识别器从函数库中调用指定函数;
步骤8,对象识别器根据步骤6中的函数名与步骤7中的指定函数搜索CAD 电子工程图中的工程对象,并判断是否搜索成功,如果判断结果为否则返回步骤 4;
步骤9,如果步骤8中的判断结果为是,则输出工程对象,并返回步骤4。 其中,步骤2所述的知识文件库进一步包括建立层次式结构化工程知识表 示模型,该知识表示模型对复杂的工程领域知识以层次化方式表示与存储,其中 层次式表示包括工程级、工程图级、工程对象级、基本图元级,每一层次均由一 组描述语言所定义的知识描述子表示。
在本发明方法中,步骤2所述领域知识由一组EBNF知识描述子预定义,以 此驱动与引导在所输入的工程图中对特定工程对象的自动识别、理解过程,它包 括工程对象图元组合显式表达;包括多视图、图形省略、图形引用、图形继承、
图形映射、尺寸约束在内的隐式表达。
在本发明方法中,步骤3所述知识处理器包括知识解释部分及知识分析部分,
分别完成知识描述子关系的重建以及重建后的数据结构的遍历。其中知识解释部 分从所加载的知识表示文件中读取知识描述子,并按知识描述子的层次式关系在
计算机内存中转化为扩展的巴克斯范式树,即EBNF—Tree中间树型结构。所述 EBNFJTree特征在于其叶节点为一组相关的基本分析函数,非叶节点表示不同层 次的工程对象,边表示所连接的两个节点之间的关系。
在本发明方法中,为了描述工程图中复杂的显式及隐式约束关系,提供一种 以扩展的巴克斯范式,即EBNF定义、由知识描述子描述的层次式结构化知识表 示模型。所述描述语言EBNF为扩展的巴克斯范式,所增的扩展包括以符号"—" 连接知识描述子名称与工程对象名称;以符号"*"表示可能存在多个工程对象; 以符号"[]"表示该工程对象不一定存在;以符号"U"表示基本函数名称;以 符号"&"表示逻辑运算符"且";以符号"()"列出函数参数。
在本发明方法中,所述知识描述子为识别一个工程对象所需的一个内部或外 部约束条件,其类型分为外部条件对象、外部引导对象、外部引导方式、外部方 向参考、数据参考对象、数据参考方式、内部组成对象、内部关系约束及内部尺 寸约束九种,每个知识描述子由本发明提出的EBNF描述和定义。
在本发明方法中,步骤7以及步骤8中对象识别器根据深度优先遍历 EBNF一Tree过程中解析出的识别函数名,按次序调用并执行相应函数,在所输入 工程图中进行按序、定向、整体化识别。
有益效果本发明所述的根据计算机程序实现对工程图自动识别与理解的方 法,使得计算机能够识别与理解更为复杂的工程图,并且做到识别过程与理解结 果的精度高、有效性和可靠性高、理解能力强,解决计算机程序在工程图的识别 与理解领域的效率低下的难题。该方法可适用于许多领域的工程图自动识别与理 解,使用时仅需根据所输入的工程图类型更换相应的知识表示文件,而无需对后 继的知识处理器、对象搜索器作改动,因此实现上更加灵活、通用。同时,当某 工程领域知识需要修改,仅需改动对应的EBNF定义的知识描述子,在解释阶段 知识管理器负责重新建立各种工程对象之间的关系。
图l表示本发明的工作流程图。
图2表示结构工程图中柱图的一部分。
图3表示一个结构工程图中的详标柱。
图4表示与柱图对应的由知识描述重建的EBNF一Tree。
图5表示深度优先遍历中与柱图对应的知识描述重建的EBNF一Tree的次序。
图6表示按本发明方法识别与理解一张柱图的过程与结果。
具体实施例方式
以知识描述子表示的层次式结构化知识表示可适用于多种不同领域的工程 图自动识别,为方便理解与描述,以结构工程图中的柱图为例进行说明。如图2 所示,柱图通常用于描述建筑物的一层或结构相同的若干层中柱的设计信息,通
常由轴网和柱的表示组成,其中的柱有详标柱(有详细标注)和引用柱(只有轮 廓示意)两种表示形式。图3给出了一个详标柱的图形组成,其中柱名字符串由 柱名标识和紧随其后的一个整数序号组成,柱名标识一般为大写字母'Z'或小 写字母'z',如其中的'Z12'。柱集中标注由柱名字符串、柱平面轮廓尺寸描述 字符串'400X400'、角筋描述字符串'4 4)18'、箍筋描述字符串'4)8-100/200' 组成,各字符串按顺序平行布局且左边对齐。图3中1表示柱名,2表示轮廓大 小,3表示角筋标注,4表示箍筋标注,5表示引线,6表示纵筋,7表示柱轮廓, 8表示拉筋线,9表示拉筋锚固线,IO表示箍筋轮廓,ll表示纵筋标注。柱平面 轮廓可以是矩形、圆形、T形多边形、L形多边形、十字形多边形,其中横截面 描述柱内部钢筋结构信息,由角筋,即四角的圆点;中部纵筋,即四边中部的圆 点;箍筋,即内层粗线矩形,左上角带两个接头弯钩;以及拉筋,即带弯钩粗线 段组成。
该组结构工程图还具有如下特点同一张图中某些工程对象是示意性省略表 示,比如柱图中的引用柱,某些对象是详细表示,比如柱图中的详标注;不同图 之间可能有对应关系,比如梁图中的柱轮廓都是从柱图中拷贝而来;不同结构图 各自侧重点并不相同,比如板图侧重于描述板对象的详细数据,梁图侧重于表达 梁的详细属性等。
本发明的方法如图1所示。图1中的步骤1初始输入为由一组有关柱图的CAD 格式工程图。步骤2根据所输入的未处理的柱图的工程图的类型及所属领域,从 知识文件库中选择相应的领域知识表示文件。领域知识文件预先以EBNF进行层 次式定义。知识表示文件定义一旦完成后,则可用于任意数量该领域工程图的自 动识别与理解。上述结构工程图的工程图层次知识定义如下(以柱图、墙图为例, 均以EBNF定义的知识描述子表示) <柱图〉= <内部组成对象_柱图〉;
<内部组成对象—柱图>::= <轴网*><详标柱*> [〈引用柱*>]; <墙图>::=〈外部条件对象一墙图><内部组成对象_墙图>; 〈外部条件对象—墙图>::=K柱图〉同层h
<内部组成对象一墙图〉= <轴网*><继承柱*〉<详标墙*〉[〈引用墙*〉];
构件层次定义如下(以柱对象为例)
<详标柱>::=〈内部组成对象—详标柱〉;
〈内部组成对象—详标柱〉=〈柱集中标注〉〈详标柱平面轮廓〉
<柱钢筋结构截面〉〈柱纵筋描述字符串>[〈定向描述〉]; 〈引用柱〉= <数据参考对象_引用柱〉<数据参考方式_引用柱>〈内部组成对象—引用柱〉;〈数据参考对象—引用柱>::={<详标柱> 同名h〈数据参考方式—引用柱〉={<引用柱平面轮廓> 形状匹配〈详标柱平面轮廓>} K柱集中标注〉复制} {<柱钢筋结构截面> 复制} K柱纵筋描述字符串〉复制h〈内部组成对象—引用柱〉= <柱名字符串>〈引用柱平面轮廓>; <继承柱>::=〈数据参考对象_继承柱〉〈数据参考方式—继承柱> 〈内部组成对象—继承柱〉;〈数据参考对象一继承柱〉=K详标柱〉i〈引用柱〉同位h〈数据参考方式_继承柱〉=K继承柱平面轮廓〉同位重叠匹配〈详标柱平面轮廓〉I 〈引用柱平面轮廓〉}K柱集中标注〉复制} K柱钢筋结构截面〉复制}{〈柱纵筋描述字符串〉复制};〈内部组成对象—继承柱〉=〈继承柱平面轮廓〉;图元描述层次的定义如下(以详标注的集中标注为例)<柱集中标注>::=<内部组成对象_柱集中标注><对象关系约束一柱集中标注>;〈内部组成对象_柱集中标注>::=<详标柱名字符串〉〈柱平面轮廓尺寸字符串〉〈角筋描述字符串〉〈箍筋描述字符串〉;〈详标柱名字符串 >::=<外部方向参考_详标柱名字符串 >〈内部组成对象一详标柱 名字符串〉〈对象关系约束_详标柱名字符串〉; 〈外部方向参考_详标柱名字符串〉=水平; 〈内部组成对象一详标柱名字符串〉=〈柱名标识><柱编号〉; <柱名标识>::=<内部组成对象_柱名标识〉; <内部组成对象一柱名标识〉=T (' Z') IT (' z'); <柱编号>::=〈内部组成对象_柱编号〉; 〈内部组成对象—柱编号〉=整数;<对象关系约束_详标柱名字符串>::={〈柱编号> 右靠 <柱名标识〉}; 〈柱平面轮廓尺寸字符串 >::=< 内部组成对象_柱平面轮廓尺寸字符串> 〈对象关系约束_柱平面轮廓尺寸字符串〉;〈内部组成对象—柱平面轮廓尺寸字符串>::=<宽度字符串><乘号><长度字符串> K半径字符串〉; 〈宽度字符串〉=〈内部组成对象一宽度字符串〉; <内部组成对象—宽度字符串〉=整数; <乘号>::=〈内部组成对象_乘号〉; <内部组成对象—乘号>::=T (, X,) IT (' x,); 〈长度字符串〉=<内部组成对象_长度字符串〉; 〈内部组成对象—长度字符串〉=整数; 〈芈径字符串〉=<内部组成对象一半径字符串>; 〈内部组成对象一半径字符串〉=整数;<对象关系约束_柱平面轮廓尺寸字符串>::={<乘号> 右靠 <宽度字符串>} K长 度字符串〉右靠 <乘号>};以此类推,可将领域知识通过EBNF定义的知识描述子按层次式方式逐层表 示,其中需要用到的分析函数名表示调用相应函数,如"同名"表示需调用相应 函数,判断所传入对象是否同名。基本图元函数则作为叶节点,如"T('X')IT('x')" 表示要搜索一个内容为'X'或'x'的字符。步骤3中,知识处理器中的知识解释部分从所加载的知识表示文件中读取知 识经过处理的柱图描述子,并按知识描述子的层次式关系在计算机内存中转化为 EBNF—Tree树型结构。EBNF—Tree是结构化知识表示在内存中重新组织而生成的 关于柱图的数据结构,其叶节点为一组相关的基本分析函数,非叶节点表示不同 层次的工程对象,边表示所连接的两个节点之间的关系。从上述柱图层次定义到 详标柱、引用柱、继承柱的工程对象层次定义,再到各自图元描述层次定义而还 原出的对应树型结构见图4。该树型结构明确给出了隐含于上述层次式EBNF定 义中的关系,其中由每个节点均可访问到对应的EBNF定义的知识描述子。步骤4中,知识处理器的知识分析部分开始深度优先遍历经过处理的柱图 EBNF—Tree树;步骤5访问到该柱图EBNF—Tree树树型结构叶节点,步骤6读取 该柱图EBNF-Tree树叶节点中对应的知识描述子,并解析出其中的识别函数名, 然后传递给对象识别器。步骤7中对象识别器负责从函数库中调用与执行指定函 数,步骤8在所输入工程图中执行判断与搜索,步骤9输出搜索结果,并继续深 度优先遍历。该柱图EBNFJTree遍历结束时,在工程图中的搜索结束。图5给出 了对应于图4的深度优先遍历次序。其中叶节点的访问次序分别为 4-8-10-12-13-14-15-17-18-19-20-21。该次序正是解释柱图所应该遵循的合理次序, 比如要搜索一个详标柱,应该先搜索其名字,然后再搜索其截面字符串(其中包 含'X,或,x,),接下来再搜索角筋描述字符串,等等。图6给出了按上述步骤识别 一张柱图的过程与结果。
权利要求
1、一种工程图自动识别与理解的方法,其特征在于,该方法包括以下步骤(1)输入CAD电子工程图,判断其是否被识别;如果判断结果为否则返回步骤(1);(2)若步骤(1)中的识别结果为是,则根据所输入工程图类型,从知识文件库中选择包含该工程领域知识描述的知识表述文件,并读取知识表述文件中的知识描述子;(3)由知识处理器按知识描述子的层次式关系在计算机内存中处理所述CAD电子工程图进行分析并转化为EBNF_Tree文件;(4)对EBNF_Tree文件进行深度优先遍历,并判断是否遍历结束,如果判断结果为是,则返回步骤(1);(5)如果步骤(4)中的判断结果为否,则访问EBNF_Tree文件的叶节点;(6)读取所述叶节点中对应的知识描述子,并解析出其中的识别函数名;(7)对象识别器从函数库中调用指定函数;(8)对象识别器根据步骤(6)中的函数名与步骤(7)中的指定函数搜索CAD电子工程图中的工程对象,并判断是否搜索成功,如果判断结果为否则返回步骤(4);(9)如果步骤(8)中的判断结果为是,则输出工程对象,并返回步骤(4)。
2、 根据权利要求1所述的工程图自动识别与理解的方法,其特征在于,步骤(2)所述知识文件库进一步包括建立层次式结构化工程知识表示模型,该 知识表示模型对复杂的工程领域知识以层次化方式表示与存储,其中层次式表示 包括工程级、工程图级、工程对象级、基本图元级,每一层次均由一组描述语言 所定义的知识描述子表示。
3、 根据权利要求1所述的工程图自动识别与理解的方法,其特征在于,步 骤(3)中,所述知识处理器包括知识解释部分及知识分析部分。
4、 根据权利要求1所述的工程图自动识别与理解的方法,其特征在于,步 骤(7)和步骤(8)中,所述对象识别器根据深度优先遍历EBNF一Tree过程中解 析出的识别函数名,按次序调用并执行相应函数,在所输入工程图中进行按序、 定向、整体化识别。
5、 根据权利要求3所述的工程图自动识别与理解的方法,其特征在于,所述知识解释部分从所加载的知识表示文件中读取知识描述子,并按知识描述子的 层次式关系在计算机内存中转化为EBNF一Tree中间树型结构。
6、 根据权利要求l、 2或5所述的工程图自动识别与理解的方法,其特征在 于,所述知识描述子为识别一个工程对象所需的一个内部或外部约束条件,其类 型分为外部条件对象、外部引导对象、外部引导方式、外部方向参考、数据参考 对象、数据参考方式、内部组成对象、内部关系约束及内部尺寸约束九种。
7、 根据权利要求l、 4或5所述的工程图自动识别与理解的方法,其特征在 于,所述EBNFJTree的叶节点为一组相关的基本分析函数,非叶节点表示不同层 次的工程对象,边表示所连接的两个节点之间的关系。
8、 根据权利要求1或2所述的工程图自动识别与理解的方法,其特征在于, 所述领域知识由一组EBNF知识描述子预定义,以此驱动与引导在所输入的工程 图中对特定工程对象的自动识别、理解过程,它包括工程对象图元组合显式表 达;包括多视图、图形省略、图形引用、图形继承、图形映射、尺寸约束在内的 隐式表达。
全文摘要
本发明公开了一种工程图自动识别与理解的方法,该方法包括从用户接受CAD电子工程图输入,并根据所输入工程图类型自动选择包含该工程领域知识描述的知识表示文件,由知识处理器读取该知识表示文件中的工程对象图形定义及对象间关联约束后,交由对象识别器在所输入工程图中快速搜索及识别指定对象。本发明所述的根据计算机程序实现对工程图自动识别与理解的方法,能够使计算机有效识别与理解复杂的工程图,结果精确、可靠性高,从而解决计算机程序在工程图的识别与理解领域效率低下的难题。
文档编号G06F17/50GK101162480SQ20071013380
公开日2008年4月16日 申请日期2007年10月9日 优先权日2007年10月9日
发明者杨华飞, 蔡士杰, 通 路 申请人:南京大学