《腐蚀科学与防护技术》
1 人工智能(AI)技术检测非封闭体的必要性
工程设计图纸的合规性审核是工业界的常见需求,例如设计图纸中的图形、表格、文字等规范性的审查。图形的审查涉及图形对象是否满足图例要求,确定对象之间的关联关系等。这部分工作过去主要由人工完成,成本较高,且容易错漏。近年来,国家提出了人工智能AI的战略性布署,人工审核往智能审核发展势必成为趋势。
智能审核的要点之一即图形对象的检测,目前业界较容易实现一些简单对象的检测,例如圆形、三角形等,其构成往往为规则的封闭图形,并且对象之间不重叠。而对于不规则、非封闭,且重叠的对象,现有的方法[1-4]难以进行准确检测,其中从重叠对象中准确分离出各个完整对象是难点。然而,这类对象的检测与诸多实际业务需求相关,例如图纸中的交叉线条、非封闭的重合框等,因此解决该问题有着非常重要的意义。
2 AI检测技术原理
首先从原图中去除无关对象。不规则非封闭对象通常由规则直线段组成,因此去除原图中无关对象(如文字、表格、规则图形等),这将有助于后续检测工作。此处检测主要通过传统图像处理中形态学的腐蚀和膨胀操作组合完成,其中腐蚀和膨胀操作都是使用预先设计的结构元素对二值图像进行滑动处理,具体为。
(1)腐蚀操作
腐蚀就是求取结构元素区域中的最小像素值,并把最小像素值赋值给锚点像素点。例如二值图像,目标对象是高亮区域,背景为暗区域,通过对二值图像进行腐蚀处理,会得到图像中目标对象的轮廓向内部收缩,实现目标对象缩小效果。
(2)膨胀操作
膨胀就是求取结构元素区域中的最大像素值,并把最大像素值赋值给锚点像素点。例如二值图像,目标对象是高亮区域,背景为暗区域,通过对二值图像进行膨胀处理,会得到图像中目标对象的轮廓向外部扩张,实现目标对象放大效果。
通过腐蚀操作,可以清除原图中轮廓较细的对象,利用膨胀操作,可以突出原图中待检测目标对象。
接着从图像中提取出直线段。在经过第一步处理后,图像中仅保留了组成待检测对象的图形元素,由于不规则非封闭对象通常由规则直线段组成,因此需要从中检测出直线段图像元素,以供后续不规则非封闭对象的重构处理。此处主要利用Canny边缘检测算法和霍夫直线检测算法。
最后重构不规则非封闭对象。具体是将上述处理得到的直线段通过合理组合得到完整的不规则非封闭对象。
由此可知,一个直线段最多只能与两条直线段相连,根据直线段之间端点距离关系,利用封闭抑制组合算法找出所有完整的不规则非封闭对象,得到在工程图纸中所有不规则非封闭对象的分离结果。
其中封闭抑制组合算法具体处理步骤为。
①计算直线段端点距离邻接矩阵
。
邻接矩阵中每个元素具体为:
其中表示第个直线段和第个直线段的最小端点距离,而表示第个直线段第个端点和第个直线段第个端点的距离,具体使用欧式距离计算。
② 过滤邻接矩阵中的元素。对于中所有元素,如果大于设定阈值,则将该元素设置为-1,并将对角线元素全设置为-1,然后遍历每一行,如果非负元素大于2,则保留最小Top2的元素不变,其余元素设置为-1。
③确定直线段组合集合。对于矩阵中非负元素所对应的两个直线段组成组合二元组,所有二元组构成集合,即:
并对集合进行去重,此处认为二元组是相同的。
④ 组合非封闭对象。首先从集合 中抽出一个二元组最为基准,接着遍历中的每一个二元组,如果两者当中存在相同直线段,则更新基准,并从集合中抽出该二元组,例如基准为,如果二元组为,由于存在相同直线段,因此更新基准为,然后继续遍历,直至基准无法更新或者基准中没有直线段,如果是后者,则表明所抽出的直线段组成了一个封闭对象,应该剔除;如果是前者,则表明所抽出的直线段组成了一个非封闭对象,应作为结果输出。重复上述步骤直至集合为空,最终输出直线段所组成的所有非封闭对象。
3 具体实施方式
基于图形特征提取工程图纸中不规则非封闭重叠对象的方法,拟解决在复杂图纸中干扰项多,待检目标为不规则非封闭图形,在存在对象相互重叠的情况下,从中准确分离出各个完整对象的问题。实施包含如下步骤。