CN115620014B - 一种基于深度学习的管道仪表流程图信息抽取方法及设备 - Google Patents
一种基于深度学习的管道仪表流程图信息抽取方法及设备 Download PDFInfo
- Publication number
- CN115620014B CN115620014B CN202211552869.8A CN202211552869A CN115620014B CN 115620014 B CN115620014 B CN 115620014B CN 202211552869 A CN202211552869 A CN 202211552869A CN 115620014 B CN115620014 B CN 115620014B
- Authority
- CN
- China
- Prior art keywords
- point
- points
- line
- information
- track
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30241—Trajectory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
Abstract
本发明提出一种基于深度学习的管道仪表流程图信息抽取方法及设备,属于计算机视觉中的目标检测领域,PDF或纸质的管道仪表流程图要转成CAD格式的文件类型,要花费大量时间进行人工重绘工作,而现有的目标检测算法对管道仪表流程图无法进行有效识别尺寸差距大的设备,同时对虚线、线形、标注线、设备名称的识别还存在难题,本发明的管道仪表流程图信息抽取方法,与目标检测算法不同,首先提出了一种管道仪表流程图的设备、线性、文字等轨迹生成和迭代方法,之后基于轨迹曲线分别实现对设备类型、线性等的检测,最后在基于轨迹曲线在图纸上的坐标和轨迹曲线间连接关系实现文字和设备的对应,设备间连接,从而完成整张图纸的信息抽取。
Description
技术领域
本发明属于计算机视觉中的目标检测领域,尤其涉及一种基于深度学习的管道仪表流程图信息抽取方法及设备。
背景技术
在将PDF版本或纸质版本的管道仪表流程图(PID)转为CAD格式的文件时,需要人工手动进行重绘,耗时耗力,而使用目标检测的方法对PID图进行识别则在处理不同尺寸的设备、线形,如实线、虚线、粗细不同的线、相似文字如“5,S”时,准确率较低,经常造成误检。目前常见的管道仪表流程图信息提取或设备检测方法有如下几种:
1.基于深度学习的PID图纸解析方法、计算机***及介质
该方法首先建立识别模型集;以第一识别框遍历PID图纸图像得到管线识别数据集;以第二识别框遍历PID图纸图像得到器件识别数据集;应用非极大值抑制算法在管线识别数据集及器件识别数据集中进行数据融合得到管线数据及器件数据;应用聚类关联Attract算法遍历各个管线,识别出与该管线关联的器件,形成PID图纸中管线与器件对应关系。当该发明对PID图中设备尺寸差距巨大,文字相似的识别准确率低,同时需要大量的人工校准工作。
2.一种PID图纸智能识别与重绘方法
该方法提出了一种PID图纸智能识别与重绘方法,涉及PID图纸识别、图像处理和计算机辅助设计领域。本发明通过采用模板匹配、深度学习、基于像素点的管线识别算法与合并规则的方法实现PID图纸图像中图件的定位、分类、文字检测与识别,并利用正则表达式将图件与文字进行关联以及通过PID绘制软件完成PID图纸的重绘,但该方法基于模板进行抠图,存在对设备的匹配率低,存在漏检的问题,使用残差网络存在对线形存在误检率较高的问题。
3. 一种PID图纸图件信息的二阶识别方法
该方法公开了一种PID图纸图件信息的二阶识别方法,涉及图像识别图像分类领域,尤其是PID图纸图件的识别问题。本方法提出结合传统机器学习和深度学习强监督实现对PID图纸图件的准确识别和分类,针对PID图件中存在的类内差异较小的问题,第一阶段采用归一化相关系数、HOG特征提取相关性计算的方式实现按图件共有的基础几何图形特征的初分类,第二阶段采用深度学习强监督的方式,对相似度较高的图件添加关键部位重标注,提模型对类内差异部位的感知能力来改善模型对图件分类和识别的性能,但该方法对尺寸差距大的设备存在较低的识别准确率,同时对线性的识别效果也较差。
发明内容
针对上述问题,本发明第一方面提供了一种基于深度学习的管道仪表流程图信息抽取方法,包括以下步骤:
S1,对于图例
D L ,获取每个设备的轨迹信息以及对应的标签;对于一整套管道仪表流程图PID图纸
D={{D 1 , …,
D j ,…,
D n
}, D L
},其中
D j 为D中的一张图纸,
n表示图纸的数量,
D L 为图例,图例
D L 规定了图纸
D中每个符号代表什么;
S2,从
{D 1 , …,
D j ,…,
D n
}中任选一张图纸
D j ,进行S3至S11的迭代过程;
S3,对于图纸
D j ,首先获取图纸的矩阵表示
M' j ,进行预处理操作,得到矩阵表示的图纸
M j ;
S4,对矩阵
M j 进行S5至S10的迭代过程;
S5,从
M j 中随机选取不为0的点
p(
x 1
, y 1 ),然后从该点的上下方向和左右方向进行延伸,基于边界判定规则求解线宽
d和线的方向
θ,如果
M j 全等于0,则跳转到S11;
S6,沿着图纸中上一个点所在线,按照步长
s移动到下一个点
q;基于上一个点的线的方向
θ,按照公式
x 2
= cell(x 1
+ s*cos θ), y 2
= cell(y 1
+ s*sin θ)求解下一个点的坐标
q(x 2
, y 2
),
s表示每一次移动的步长,
cell表示向上取整,设置点
p到
q为分支B,判断
q是否已经被其它分支走过
,如果q不在走过的曲线中,则进入S7;如果
q在已经走过的曲线中,则终止该分支,跳转到S9;
S7,找到线宽发生变化的点;如果
M j
[x 2
, y 2
]大于0,则基于边界判定规则求解点
q处的线宽
d’和线的方向
θ’,如果
d’等于
d,设置矩阵
M j 中点
p到
q,宽度为
d的区域为0,同时跳转到S6,否则缩小步长
s,重新计算
q,直到找到
d不等于
d’的临界点
C,进入S8;如果
M j
[x 2
,
y 2
]小于等于0,则缩小步长
s,跳转到S6;如果当
s等于1时,
M j
[x 2
, y 2
]还小于等于0,则终止该分支进入S9;
S8,在临界点
C处,基于轨迹曲线分支规则,求解出曲线分支的数量
g,如果
g等于1,则说明没有分支,则继续跳转到S6继续执行,如果
g大于1,则说明存在
g个分支,则轨迹曲线分出
g个分支,对于每个分支按照S6的规则继续拓展下去;
S9,如果一条线的全部分支都终止了或都合并成一个分支,则获取从开始分支点到最终终止点或合并点的轨迹曲线,并基于轨迹曲线识别模型来判断轨迹曲线对应图例
D L 中的某个设备,同时将两个设备之间的轨迹信息使用轨迹曲线识别模型来判断线形,并跳转到S10;
S10,若所有的分支都中止了,则跳转到S5;
S11,此时已经识别出了图中的所有设备和文字,然后根据轨迹曲线求解设备和文字的中心节点和边长,基于位置判定规则,生成文字和设备的对应关系。
优选的,所述步骤S1中,对于图例
D L ,获取每个设备的轨迹信息以及对应的标签的具体过程为:
S11,对于一整套图纸的图例
D L ,首先找到所有的设备图像及其对应的设备名称,设备名称对应标签信息;
S12,针对每一个设备图像,从连接设备的起始管道开始,随机选择一个起点,设置起始点为原点,坐标为
(0, 0),获取起点信息起点所在线的线宽
d和与
x轴正方向的夹角
θ,每一个点的信息为
t={(x, y), d, θ};
S13,从起点开始,沿着线的方向
θ,按照步长1进行延伸,遇到线分叉则同样分叉,直到无法延伸并且所有分叉最终汇合,到达终点;
S14,从起点到终点的轨迹为
T={t 1
, t 2
, …, t m
},
m表示共有多少个点,对于每一个设备来说,
m的大小不固定。
优选的,所述步骤S3中进行预处理操作,得到矩阵表示的图纸
M j ,所述预处理操作的具体过程为:
S31,对于图纸
D j ,首先获取图纸的正文内容,即去除图纸的边框和右边文字部分,只保留仪表管线部分,将图纸用矩阵
M 1 表示;
S32,对于矩阵
M 1 按行遍历,对于每一行,横线
h由{
h 1
, h 2
, h 1 }3段线段横向排列而成组成,其中
h 1 的长度大于最粗的线段,
h 2 的长度为虚线间距的1.1倍,将横线
h从左向右移动,若每一行中两端
h1部分值全大于0,并且存在等于0的部分,则将
h 2 部分等于0的部分改为1,遍历完成后得到矩阵
M 2 ;
S33,对于矩阵
M 2 按列遍历,对于每一列,竖线
v由
{v 1
, v 2
, v 1
}3段线段竖向排列而成组成,其中
v 1 的长度大于最粗的线段,
v 2 的长度为虚线间距的1.1倍,将横线
v从上向下移动,若每一列中两端
v 1部分值全大于0,并且存在等于0的部分,则将
v2部分等于0的部分改为1,遍历完成后得到矩阵
M 3 ;
S34,将矩阵
M 3 进行二值化处理,得到矩阵表示的图纸
M j 。
优选的,所述步骤S5中基于边界判定规则求解线宽
d和线的方向
θ,所述边界判定规则具体为:
S51,基于点
p(
x 1
, y 1 ),沿着垂直和水平两个方向进行延伸;
S52,当垂直方向或水平方向遇见矩阵
M j 中等于0的点时,再沿着相同的方向延伸z个点,如果这个z个点都等于0,说明处于边界部分,则得到4个交点,否则继续延伸下去;
S53,当处于边界部分时,针对每一个交点,沿着交点边界的两个方向延伸
m个点,得到
P i ,
i表示交点的编号,
P i 为
m个点的集合;
S54,对于每一个集合
P i ,对
m个点的横纵坐标求平均,最终得到四个点
{m 1
(x 1
,
y 1
), m 2
(x 2
, y 2
), m 3
(x 3
, y 3
), m 4
(x 4
, y 4
)},m 1 和
m 2 为竖直方向的两个交点,
m 3 和
m 4 为水平方向上的两个交点;
S55,计算
m 1 和
m 2 之间的距离
d 1 ,
m 3 和
m 4 之间的距离
d 2 ,如果
d 1 和
d 2 之比大于等于10,或小于等于0.1,则认为该线条是水平的或者竖直的,取
min( d 1
, d 2
)作为线宽,并取
d 1 和
d 2 中最长所在的线与
x正半轴方向的夹角作为
θ,此时直接结束,如果
d 1 和
d 2 之比小于10,大于0.1,则继续向下执行;
S56,基于
{m 1
(x 1
, y 1
), m 2
(x 2
, y 2
), m 3
(x 3
, y 3
), m 4
(x 4
, y 4
)},则可以得到两条直线
l u :和
l d :,两条直线的斜率分别为
k 1 和
k 2 ,在理论中
l u 和
l d 是两条平行的线,而在图中由于像素点导致了误差,因此对
k 1 和
k 2 求平均,最终得到斜率
k,与水平方向的夹角
θ =arctank;
S57,基于斜率
k,调整
l 1 和
l 2 ,对
m 1 和
m 3 求平均点得到
m u ,对
m 2 和
m 4 求平均点得到
m d ,基于点
m u 和斜率
k得到
l' u ,基于点
m d 和斜率
k得到
l' d ,运用两直线的距离公式计算
l' u 和
l' d 之间的直线距离
d。
优选的,所述步骤S8,在临界点
C处,基于轨迹曲线分支规则,求解出曲线分支的数量
g,所述轨迹曲线分支规则具体为:
S81,基于临界点
C,该点的方向为
θ c ,该点的宽度为
d c ,基于边界判定规则得到的4个交点为
{mc 1
((x 1
, y 1
), mc 2
(x 2
, y 2
), mc 3
(x 3
, y 3
), mc 4
(x 4
, y 4
)},临界点
C沿着
θ c 方向的下一个点为
C',该点方向和宽度分别为
θ' c 和
d' c ;基于边界判定规则得到的4个交点为
{mc' 1
(x' 1
, y' 1
), mc' 2
(x' 2
, y' 2
), mc' 3
(x' 3
, y' 3
), mc' 4
(x' 4
, y' 4
)};
S82,如果
d' c >>
d c 并且C'的4个交点中
mc' 1 ,
mc' 2 几乎保持不变,
mc' 3 ,
mc' 4 的变化很大或
mc' 3 ,
mc' 4 几乎保持不变,
mc' 1 ,
mc' 2 的变化很大,则分支数
g为2或3,新的拓展方向为或,同时还有可能的拓展方向为
θ c ;
S83,如果2*
d c
> d' c >
d c ,
θ c 和
θ' c 几乎相同,并且4个交点中只有一个交点的坐标发生明显改变,其它3个交点的坐标几乎不发生变化,则说明存在斜叉分支,且分支数量为2,假设发生改变的点的坐标为
u'(x, y),原先的交点坐标为
u(x', y'),基于点
u'沿着边界延伸得到线段
l u' ,
l u' 为线段的集合,使用最小二乘法对
l u' 中的点进行拟合,得到直线
l 2 u' ,
l 2 u' 的方向为
θ u' ,基于点
(cell((x+x')/2), cell((y+y')/2))进行延伸,如果点
u'在点u的上方,则延伸方向为
θ u' ,若在下方,则为
θ u' +180°,另外一个分支方向为原方向。
优选的,所述步骤S9中,将两个设备之间的轨迹信息使用轨迹曲线识别模型来判断线形,所述轨迹曲线识别模型的训练过程具体如下:
S91,准备设备、文字的轨迹信息和对应的标签,轨迹信息的来源为图例和图纸中人工框选的设备、文字,标签对应图例中的设备信息或文字信息,所有的标签加上“无”这个标签构成一个标签库
L,
L的大小为
S L ;
S92,对每一个轨迹信息
T={t 1
, t 2
, …, t m
},t={(x, y), d, θ}},进行预处理,首先对T中的每一个点与
M' j 中的真实情况对比,如果
M' j 中该点大于0,则在
t的最后一位添加1,即
t={(x, y), d, θ, 1},否证添加0,之后对
T中的每一个点的坐标都减取第一个点的坐标,预处理后的轨迹信息和其对应的标签构成数据集
Dataset,按照7:3的比例划分训练集
Train和测试集
Test;
S93,初始化轨迹曲线识别模型,设置学习率为0.001,设置优化器为
AdamW,设置损失函数为交叉熵损失函数;
S94,进行E次迭代过程,每一次迭代如S95到S97;
S95,从Train中随机选取
Batch size大小的数据,使用0将其填充到固定长度512,输入到轨迹曲线识别模型中,获取模型的输出
O;Batch size表示单次传递给模型用以训练的样本个数;
S96,基于交叉熵损失函数计算模型的损失,基于
AdamW优化器优化模型优化模型;
S97,每隔10次迭代,在Test集上测试模型的效果,并保存测试效果最好的模型。
优选的,所述步骤S11中基于位置判定规则,判定文字和设备的对应关系,所述位置判定规则的具体过程为:
S111,对于设备和文字,基于轨迹信息,求解轨迹信息中最上边、最下边、最左边及最右边的点坐标,基于这四个点构成的矩形,求解矩形的中心点坐标;
S112,对于所有的文字,按照计算中心点之间的距离,如果距离小于阈值
th 1 ,则认为这两个文字同属于一个文本,在计算完所有的中心点距离并确定能否合并后,最后进行合并成文本,计算文本的中心点;
S113,计算设备和文本中心点间的距离,如果距离小于阈值
th 2 并为与文本间的最小距离,则认为这段文本为该设备的名称。
本发明第二方面提供了一种基于深度学习的管道仪表流程图信息抽取备,所述设备包括至少一个处理器和至少一个存储器,所述处理器和存储器相耦合;所述存储器中存储有如第一方面所述的管道仪表流程图信息抽方法的计算机程序;所述处理器执行所述存储器存储的计算机程序时,使得所述设备执行管道仪表流程图信息抽取方法。
本发明第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有如第一方面所述的管道仪表流程图信息抽取方法的程序或指令,所述程序或指令被处理器执行时,使得计算机执行管道仪表流程图信息抽取方法。
有益效果:与现有技术相比,本发明提供了一种基于深度学习的管道仪表流程图信息抽取方法及设备,减少了对PDF图纸进行CAD重绘的时间,并产生了如下的有益效果:
1.在PDF图纸或手绘图纸转为CAD图纸的过程,需要人工进行重绘,需要花费大量时间,为解决这个问题,本发明提出一种基于深度学习的管道仪表流程图信息抽取方法,能够智能识别图纸中的设备和标注信息,并将设备和标注信息在管道仪表流程图中对应起来。
2.本发明在对管道仪表流程图进行信息抽取时,创新性的提出了一种管道仪表流程图的设备、管线、文字等轨迹生成和迭代方法,能够在图纸中沿着管线进行迭代,并生成不同设备、管线、文字的轨迹信息。
3. 为了解决整张图纸进行目标检测时,对不同尺寸的设备、线形检测效果差、识别准确率低的问题,本发明提出了一种轨迹曲线识别模型,该模型使用编码层对轨迹曲线进行编码,使用自注意力层提取整体曲线的特征,最后使用分类器获取设备类型。
附图说明
图1本发明构建的PID图信息抽取方法的流程图。
图2为图像二值化表示的示意图。
图3为本发明从PID图中截取的部分图例及相应标注信息示意图。
图4为本发明从PID图中截取的部分图纸及相应标注信息示意图。
图5本发明对图纸中的虚线转为实线的详解图。
图6本发明对边界判定规则的详细解释图。
图7本发明对轨迹曲线分支规则的详细解释图。
图8为本发明轨迹曲线识别模型的结构图。
图9为本发明一种基于深度学习的管道仪表流程图信息抽取设备的结构简易框图。
具体实施方式
下面结合具体实施例对发明进行进一步说明。
实施例1:
本实施例基于具体的管道仪表流程图,结合图1至图8,对本发明一种基于深度学习的管道仪表流程图信息抽取方法具体工作流程进行说明:
S1,对于图例
D L ,获取每个设备的轨迹信息以及对应的标签;对于一整套管道仪表流程图PID图纸
D={{D 1 , …,
D j ,…,
D n
}, D L
},其中
D j 为D中的一张图纸,
n表示图纸的数量,
D L 为图例,图例
D L 规定了图纸
D中每个符号代表什么,以图3为例,获取每个设备的轨迹信息以及对应的标签的具体过程为:
S11,对于一整套图纸的图例
D L ,首先找到所有的设备图像及其对应的设备名称,设备名称对应标签信息,图3中圆形框为设备,矩形框为设备名称;
S12,针对每一个设备图像,从连接设备的起始管道开始,随机选择一个起点,设置起始点为原点,坐标为
(0, 0),即图3圆形框中起点,获取起点信息起点所在线的线宽
d和与
x轴正方向的夹角
θ,线宽d和夹角为
θ蓝色框中红色点所在线的宽度和方向,每一个点的信息为
t={(x, y), d, θ};
S13,从起点开始,沿着线的方向
θ(即图3中水平方向),按照步长1进行延伸,遇到线分叉(分支)则同样分叉(分支)(图3圆形框图中分叉点),直到无法延伸并且所有分叉最终汇合,到达终点(图3圆形框图中的终点);
S14,从起点到终点的轨迹为
T={t 1
, t 2
, …, t m
}(图3中圆形框内的设备从起点到终点的黑色线),
m表示共有多少个点,对于每一个设备来说,
m的大小不固定。
S2,从
{D 1 , …,
D i ,…,
D n
}中任选一张图纸
D j ,进行S3至S11的迭代过程;
S3,对于图纸
D j ,以图5为例,首先获取图纸的矩阵表示
M' j ,进行预处理操作,得到矩阵表示的图纸
M j ,图2为图纸矩阵表示的一种示例;所述预处理操作的具体过程为:
S31,对于图纸
D j ,首先获取图纸的正文内容,即去除图纸的边框和右边文字部分,只保留仪表管线部分,将图纸用矩阵
M 1 表示;
S32,现对图4中的虚线进行处理,将横向的虚线转为实线,结合图5 (a) (b)进行说明,对于矩阵
M 1 按行遍历,对于每一行,
h由{
h 1
, h 2
, h 1 }3段线段横向排列组成,其中
h 1 的长度大于最粗的线段,
h 2 的长度为虚线间距的1.1倍,将横线
h从左向右移动,若每一行中两端h1部分值全大于0,并且存在等于0的部分,则将
h 2 部分等于0的部分改为1,如图5(a),在图5 (b)中,由于右端
h 1 部分为0,因此无法进行填充,遍历完成后得到矩阵
M 2 ;
S33,现对图4中的虚线进行处理,将竖向的虚线转为实线,结合图5 (c) (d)进行说明,对于矩阵
M 2 按列遍历,对于每一列,
v由
{v 1
, v 2
, v 1
}3段线段竖向排列组成,其中
v 1 的长度大于最粗的线段,
v 2 的长度为虚线间距的1.1倍,将横线
v从上向下移动,若每一列中两端
v 1部分值全大于0,并且存在等于0的部分,则将
v2部分等于0的部分改为1,如图5 (c),在图5 (d)中,由于下端
v 2 部分为0,因此无法进行填充,遍历完成后得到矩阵
M 3 ;
S34,将矩阵
M 3 进行二值化处理,返回处理结果,一种可能的处理结果如图2所示。
S4,对矩阵
M j 进行S5至S11的迭代过程;
S5,图6 (a)为从仪表管线图中截取的虚线,图6 (b)为该线段放大后的边缘形状,可以看出边缘呈现锯齿状,因此在矩阵
M j 中线的边缘并不是光滑的直线,而是不规则的线段。从
M j 中随机选取不为0的点
p(
x 1
, y 1 ),如图4中的点
p,然后从该点的上下方向和左右方向进行延伸,基于边界判定规则求解线宽
d和线的方向
θ(与
x轴正方向的夹角),如果
M j 全等于0,则跳转到S11,所述边界判定规则的具体过程为:
S51,在图6 (c)中,基于点
p(
x 1
, y 1 ),沿着垂直和水平两个方向进行延伸;
S52,当垂直方向或水平方向遇见矩阵
M j 中等于0的点时,再沿着相同的方向延伸
z个点,如果这个
z个点都等于0,说明处于边界部分,则得到4个交点,否则继续延伸下去;
S53,当处于边界部分时,对于每一个交点,沿着交点边界的两个方向延伸
m个点,得到
P i ,
i表示交点的编号,
P i 为
m个点的集合,如图6(b)中下边界上的
P 2 所示,其由边界上延伸的10个点组成;
S54,对于每一个集合
P i ,对
m个点的横纵坐标求平均,最终得到四个点
{m 1
(x 1
,
y 1
), m 2
(x 2
, y 2
), m 3
(x 3
, y 3
), m 4
(x 4
, y 4
)},m 1 和
m 2 为竖直方向的两个交点,
m 3 和
m 4 为水平方向上的两个交点,四个交点的位置关系如图6 (c)所示。
S55,计算
m 1 和
m 2 之间的距离
d 1 ,
m 3 和
m 4 之间的距离
d 2 ,如果
d 1 和
d 2 之比大于等于10,或小于等于0.1,则认为该线条是水平的或者竖直的,取
min( d 1
, d 2
)作为线宽,并取
d 1 和
d 2 中最长所在的线与
x正半轴方向的夹角作为
θ,此时直接结束,如果
d 1 和
d 2 之比小于10,大于0.1,则继续向下执行;
S56,基于
{m 1
(x 1
, y 1
), m 2
(x 2
, y 2
), m 3
(x 3
, y 3
), m 4
(x 4
, y 4
)},则可以得到两条直线
l u :和
l d :,两条直线的斜率分别为
k 1 和
k 2 ,如图6 (c)中的虚线
l u 和
l d 所示,由于在理论中
l u 和
l d 是两条平行的线,而在图中由于像素点导致了误差,因此对
k 1 和
k 2 求平均,最终得到斜率
k,与水平方向的夹角
θ =arctank;
S57,基于斜率
k,调整
l 1 和
l 2 ,对
m 1 和
m 3 求平均点得到
m u ,对
m 2 和
m 4 求平均点得到
m d ,如图6 (c)中的点
m u 和
m d 所示,基于点
m u 和斜率
k得到
l' u ,基于点
m d 和斜率
k得到
l' d ,运用两直线的距离公式计算
l' u 和
l' d 之间的直线距离
d。
S6,基于上一个点的线的方向
θ,按照公式
x 2
= cell(x 1
+ s*cosθ), y 2
= cell(y 1
+ s*sinθ)求解下一个点的坐标
q(x 2
, y 2
),如图4中的红色点
q,
s表示每一次移动的步长,
cell表示向上取整,设置点
p 1 到
p 2 为分支B,判断
q是否已经被其它分支走过
,如果q不在走过的曲线中,则进入S7;如果
q在已经走过的曲线中,则终止该分支,跳转到S9;
S7,找到线宽发生变化的点,如图4中的点
C。如果
M j
[x 2
, y 2
]大于0,则基于边界判定规则求解点
q处的线宽
d’和线的方向
θ’,如果
d’等于
d,设置矩阵
M j 中点
p到
q,宽度为
d的区域为0,同时跳转到S6,否则缩小步长
s,重新计算
q,直到找到
d不等于
d’的临界点
C,进入S8;如果
M j
[x 2
, y 2
]小于等于0,则缩小步长
s,跳转到S6;如果当
s等于1时,
M j
[x 2
, y 2
]还小于等于0,则终止该分支进入S9;
S8,在临界点
C处,如图4中点
C,基于轨迹曲线分支规则,求解出曲线分支的数量
g(图4
C点处存在两个分支),如果
g等于1,则说明没有分支,则继续跳转到S6继续执行,如果
g大于1,则说明存在
g个分支,则轨迹曲线分出
g个分支,对于每个分支按照S6的规则继续拓展下去;
S81,基于临界点
C,该点的方向为
θ c ,该点的宽度为
d c ,基于边界判定规则得到的4个交点为
{mc 1
((x 1
, y 1
), mc 2
(x 2
, y 2
), mc 3
(x 3
, y 3
), mc 4
(x 4
, y 4
)},临界点
C沿着
θ c 方向的下一个点为
C',该点方向和宽度分别为
θ' c 和
d' c ;基于边界判定规则得到的4个交点为
{mc' 1
(x' 1
, y' 1
), mc' 2
(x' 2
, y' 2
), mc' 3
(x' 3
, y' 3
), mc' 4
(x' 4
, y' 4
)},如图7所示;
S82,如图7 (b)所示,当为垂直分支或竖直分支时,如果
d' c >>
d c 并且C'的4个交点中
mc' 1 ,
mc' 2 几乎保持不变,
mc' 3 ,
mc' 4 的变化很大或
mc' 3 ,
mc' 4 几乎保持不变,
mc' 1 ,
mc' 2 的变化很大,则分支数
g为2或3,新的拓展方向为或,同时还有可能的拓展方向为
θ c ;
S83,如图5 (a)所示,当为斜叉分支时,如果2*
d c
> d' c >
d c ,
θ c 和
θ' c 几乎相同,并且4个交点中只有一个交点的坐标发生明显改变,其它3个交点的坐标几乎不发生变化,则说明存在斜叉分支,且分支数量为2,假设发生改变的点的坐标为
mc' 2
(x', y'),原先的交点坐标为
mc 2
(x, y),基于点
mc' 2 沿着边界的两个方向延伸
4m个点,得到
P mc'2 ,
P mc'2 为边界上
4m个点的集合,如图7(a)中的
P mc'2 所示,使用最小二乘法对
P mc'2 中的点进行拟合,得到直线
l mc'2 ,
l mc'2 的方向为
θ mc'2 ,基于点
(cell((x+x')/2), cell((y+y')/2))进行延伸,如果点
u'在点u的上方,则延伸方向为
θ u' ,若在下方,则为
θ u' +180°,另外一个分支方向为原方向。
S9,如果一条线的全部分支都终止了或都合并成一个分支,则获取从开始分支点到最终终止点或合并点的轨迹曲线(排除已经检测过的轨迹曲线),并基于轨迹曲线识别模型来判断轨迹曲线对应图例
D L 中的那个设备,如图4中点
a开始分叉,到汇聚点
b,构成一个轨迹曲线闭环;同时将两个设备之间的轨迹信息使用轨迹曲线识别模型来判断线形,并进入S10;如图4中点
q点到
a点。所述轨迹曲线识别模型主要包括编码层,自注意力层,分类层,具体结果如图8所示。其中编码层用于对轨迹曲线的编码,将其转为向量表示,自注意力层用户提取整体轨迹的信息,分类层主要用于判断该轨迹属于那一个设备,轨迹曲线识别模型的训练过程具体如下所示:
S91,准备设备、文字的轨迹信息和对应的标签,轨迹信息的来源为图例和图纸中人工框选的设备、文字,标签对应图例中的设备信息或文字信息,所有的标签加上“无”这个标签构成一个标签库
L,
L的大小为
S L ;
S92,对每一个轨迹信息
T={t 1
, t 2
, …, t m
},t={(x, y), d, θ}},进行预处理,首先对T中的每一个点与
M' j 中的真实情况对比,如果
M' j 中该点大于0,则在
t的最后一位添加1,即
t={(x, y), d, θ, 1},否证添加0,之后对
T中的每一个点的坐标都减取第一个点的坐标,预处理后的轨迹信息和其对应的标签构成数据集
Dataset,按照7:3的比例划分训练集
Train和测试集
Test;
S93,初始化轨迹曲线识别模型,设置学习率为0.001,设置优化器为
AdamW,设置损失函数为交叉熵损失函数;
S94,进行E次迭代过程,每一次迭代如S95到S97;
S95,从Train中随机选取
Batch size大小的数据,使用0将其填充到固定长度512,输入到轨迹曲线识别模型中,获取模型的输出
O;Batch size表示单次传递给模型用以训练的样本个数;
S96,基于交叉熵损失函数计算模型的损失,基于
AdamW优化器优化模型优化模型;
S97,每隔10次迭代,在Test集上测试模型的效果,并保存测试效果最好的模型;
S10,若所有的分支都中止了,则跳转到S5;
S11,此时已经识别出了图中的所有设备和文字,然后根据轨迹曲线求解设备和文字的中心节点和边长,基于位置判定规则,判定文字和设备的对应关系。所述位置判定规则的具体过程为:
S111,对于设备和文字,基于轨迹信息,求解轨迹信息中最上边,最下边,最左边,最右边的点坐标,基于这四个点构成的矩形,求解矩形的中心点坐标;
S112,对于所有的文字,按照计算中心点之间的距离,如果距离小于阈值
th 1 ,则认为这两个文字同属于一个文本,在计算完所有的中心点距离并确定能否合并后,最后进行合并成文本,计算文本的中心点;
S113,计算设备和文本中心点间的距离,如果距离小于阈值
th 2 并为与文本间的最小距离,则认为这段文本为该设备的名称。
实施例2:
如图9所示,本发明同时提供了一种基于深度学习的管道仪表流程图信息抽取设备,设备包括至少一个处理器和至少一个存储器,同时还包括通信接口和内部总线;存储器中存储有计算机执行程序;处理器执行所述存储器存储的执行程序时,使得所述设备执行如实施例1所述的一种基于深度学习的管道仪表流程图信息抽取方法。其中内部总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(Extended IndustryStandard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。其中存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
设备可以被提供为终端、服务器或其它形态的设备。
图9是为示例性示出的一种设备的框图。设备可以包括以下一个或多个组件:处理组件,存储器,电源组件,多媒体组件,音频组件,输入/输出(I/O)的接口,传感器组件,以及通信组件。处理组件通常控制电子设备的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件可以包括一个或多个处理器来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件可以包括一个或多个模块,便于处理组件和其他组件之间的交互。例如,处理组件可以包括多媒体模块,以方便多媒体组件和处理组件之间的交互。
存储器被配置为存储各种类型的数据以支持在电子设备的操作。这些数据的示例包括用于在电子设备上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件为电子设备的各种组件提供电力。电源组件可以包括电源管理***,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。多媒体组件包括在所述电子设备和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件包括一个前置摄像头和/或后置摄像头。当电子设备处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。 I/O接口为处理组件和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件包括一个或多个传感器,用于为电子设备提供各个方面的状态评估。例如,传感器组件可以检测到电子设备的打开/关闭状态,组件的相对定位,例如所述组件为电子设备的显示器和小键盘,传感器组件还可以检测电子设备或电子设备一个组件的位置改变,用户与电子设备接触的存在或不存在,电子设备方位或加速/减速和电子设备的温度变化。传感器组件可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件被配置为便于电子设备和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,电子设备可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
实施例3:
本发明还提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质中存储有程序或指令,所述程序或指令被处理器执行时,使得计算机执行如实施例1所述的一种基于深度学习的管道仪表流程图信息抽取方法。
具体地,可以提供配有可读存储介质的***、装置或设备,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该***、装置或设备的计算机或处理器读出并执行存储在该可读存储介质中的指令。在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘(如 CD-ROM、CD-R、CD-RW、DVD- 20 ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带等。存储介质可以是通用或专用计算机能够存取的任何可用介质。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
应理解存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(Application Specific Integrated Circuits,简称:ASIC)中。当然,处理器和存储介质也可以作为分立组件存在于终端或服务器中。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述虽然对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (9)
1.一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,包括以下步骤:
S1,对于图例D L ,获取每个设备的轨迹信息以及对应的标签;对于一整套管道仪表流程图PID图纸D={{D 1 , …, D j ,…, D n }, D L },其中D j 为D中的一张图纸,n表示图纸的数量,D L 为图例,图例D L 规定了图纸D中每个符号代表什么;
S2,从{D 1 , …, D j ,…, D n }中任选一张图纸D j ,进行S3至S11的迭代过程;
S3,对于图纸D j ,首先获取图纸的矩阵表示M' j ,进行预处理操作,得到矩阵表示的图纸M j ;
S4,对矩阵M j 进行S5至S10的迭代过程;
S5,从M j 中随机选取不为0的点p(x 1 , y 1 ),然后从该点的上下方向和左右方向进行延伸,基于边界判定规则求解线宽d和线的方向θ,如果M j 全等于0,则跳转到S11;
S6,沿着图纸中上一个点所在线,按照步长s移动到下一个点q;基于上一个点的线的方向θ,按照公式x 2 = cell(x 1 + s*cos θ), y 2 = cell(y 1 + s*sin θ)求解下一个点的坐标q (x 2 , y 2 ),s表示每一次移动的步长,cell表示向上取整,设置点p到q为分支B,判断q是否已经被其它分支走过,如果q不在走过的曲线中,则进入S7;如果q在已经走过的曲线中,则终止该分支,跳转到S9;
S7,找到线宽发生变化的点;如果M j [x 2 , y 2 ]大于0,则基于边界判定规则求解点q处的线宽d’和线的方向θ’,如果d’等于d,设置矩阵M j 中点p到q,宽度为d的区域为0,同时跳转到S6,否则缩小步长s,重新计算q,直到找到d不等于d’的临界点C,进入S8;如果M j [x 2 , y 2 ]小于等于0,则缩小步长s,跳转到S6;如果当s等于1时,M j [x 2 , y 2 ]还小于等于0,则终止该分支进入S9;
S8,在临界点C处,基于轨迹曲线分支规则,求解出曲线分支的数量g,如果g等于1,则说明没有分支,则继续跳转到S6继续执行,如果g大于1,则说明存在g个分支,则轨迹曲线分出g个分支,对于每个分支按照S6的规则继续拓展下去;
S9,如果一条线的全部分支都终止了或都合并成一个分支,则获取从开始分支点到最终终止点或合并点的轨迹曲线,并基于轨迹曲线识别模型来判断轨迹曲线对应图例D L 中的某个设备,同时将两个设备之间的轨迹信息使用轨迹曲线识别模型来判断线形,并进入S10;
S10,若所有的分支都中止了,则跳转到S5;
S11,此时已经识别出了图中的所有设备和文字,然后根据轨迹曲线求解设备和文字的中心节点和边长,基于位置判定规则,生成文字和设备的对应关系。
2.如权利要求1所述的一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,所述步骤S1中,对于图例D L ,获取每个设备的轨迹信息以及对应的标签的具体过程为:
S11,对于一整套图纸的图例D L ,首先找到所有的设备图像及其对应的设备名称,设备名称对应标签信息;
S12,针对每一个设备图像,从连接设备的起始管道开始,随机选择一个起点,设置起始点为原点,坐标为(0, 0),获取起点信息起点所在线的线宽d和与x轴正方向的夹角θ,每一个点的信息为t={(x, y), d, θ};
S13,从起点开始,沿着线的方向θ,按照步长1进行延伸,遇到线分叉则同样分叉,直到无法延伸并且所有分叉最终汇合,到达终点;
S14,从起点到终点的轨迹为T={t 1 , t 2 , …, t m },m表示共有多少个点,对于每一个设备来说,m的大小不固定。
3.如权利要求1所述的一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,所述步骤S3中进行预处理操作,得到矩阵表示的图纸M j ,所述预处理操作的具体过程为:
S31,对于图纸D j ,首先获取图纸的正文内容,即去除图纸的边框和右边文字部分,只保留仪表管线部分,将图纸用矩阵M 1 表示;
S32,对于矩阵M 1 按行遍历,对于每一行,横线h由{h 1 , h 2 , h 1 }3段线段横向排列而成组成,其中h 1 的长度大于最粗的线段,h 2 的长度为虚线间距的1.1倍,将横线h从左向右移动,若每一行中两端h1部分值全大于0,并且存在等于0的部分,则将h 2 部分等于0的部分改为1,遍历完成后得到矩阵M 2 ;
S33,对于矩阵M 2 按列遍历,对于每一列,竖线v由{v 1 , v 2 , v 1 }3段线段竖向排列而成组成,其中v 1 的长度大于最粗的线段,v 2 的长度为虚线间距的1.1倍,将横线v从上向下移动,若每一列中两端v 1部分值全大于0,并且存在等于0的部分,则将v2部分等于0的部分改为1,遍历完成后得到矩阵M 3 ;
S34,将矩阵M 3 进行二值化处理,得到矩阵表示的图纸M j 。
4.如权利要求1所述的一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,所述步骤S5中基于边界判定规则求解线宽d和线的方向θ,所述边界判定规则具体为:
S51,基于点p(x 1 , y 1 ),沿着垂直和水平两个方向进行延伸;
S52,当垂直方向或水平方向遇见矩阵M j 中等于0的点时,再沿着相同的方向延伸z个点,如果这个z个点都等于0,说明处于边界部分,则得到4个交点,否则继续延伸下去;
S53,当处于边界部分时,针对每一个交点,沿着交点边界的两个方向延伸m个点,得到P i ,i表示交点的编号,P i 为m个点的集合;
S54,对于每一个集合P i ,对m个点的横纵坐标求平均,最终得到四个点{m 1 (x 1 , y 1 ), m 2 (x 2 , y 2 ), m 3 (x 3 , y 3 ), m 4 (x 4 , y 4 )},m 1 和m 2 为竖直方向的两个交点,m 3 和m 4 为水平方向上的两个交点;
S55,计算m 1 和m 2 之间的距离d 1 ,m 3 和m 4 之间的距离d 2 ,如果d 1 和d 2 之比大于等于10,或小于等于0.1,则认为该线条是水平的或者竖直的,取min( d 1 , d 2 )作为线宽,并取d 1 和d 2 中最长所在的线与x正半轴方向的夹角作为θ,此时直接结束,如果d 1 和d 2 之比小于10,大于0.1,则继续向下执行;
S56,基于{m 1 (x 1 , y 1 ), m 2 (x 2 , y 2 ), m 3 (x 3 , y 3 ), m 4 (x 4 , y 4 )},则可以得到两条直线l u :和l d :,两条直线的斜率分别为k 1 和k 2 ,在理论中l u 和l d 是两条平行的线,而在图中由于像素点导致了误差,因此对k 1 和k 2 求平均,最终得到斜率k,与水平方向的夹角θ =arctank;
S57,基于斜率k,调整l 1 和l 2 ,对m 1 和m 3 求平均点得到m u ,对m 2 和m 4 求平均点得到m d ,基于点m u 和斜率k得到l' u ,基于点m d 和斜率k得到l' d ,运用两直线的距离公式计算l' u 和l' d 之间的直线距离d。
5.如权利要求1所述的一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,所述步骤S8,在临界点C处,基于轨迹曲线分支规则,求解出曲线分支的数量g,所述轨迹曲线分支规则具体为:
S81,基于临界点C,该点的方向为θ c ,该点的宽度为d c ,基于边界判定规则得到的4个交点为{mc 1 ((x 1 , y 1 ), mc 2 (x 2 , y 2 ), mc 3 (x 3 , y 3 ), mc 4 (x 4 , y 4 )},临界点C沿着θ c 方向的下一个点为C',该点方向和宽度分别为θ' c 和d' c ;基于边界判定规则得到的4个交点为{mc' 1 (x' 1 , y' 1 ), mc' 2 (x' 2 , y' 2 ), mc' 3 (x' 3 , y' 3 ), mc' 4 (x' 4 , y' 4 )};
S82,如果d' c >> d c 并且C'的4个交点中mc' 1 ,mc' 2 几乎保持不变,mc' 3 ,mc' 4 的变化很大或mc' 3 ,mc' 4 几乎保持不变,mc' 1 ,mc' 2 的变化很大,则分支数g为2或3,新的拓展方向为或,同时还有可能的拓展方向为θ c ;
S83,如果2*d c > d' c > d c ,θ c 和θ' c 几乎相同,并且4个交点中只有一个交点的坐标发生明显改变,其它3个交点的坐标几乎不发生变化,则说明存在斜叉分支,且分支数量为2,假设发生改变的点的坐标为u'(x, y),原先的交点坐标为u(x', y'),基于点u'沿着边界延伸得到线段l u' ,l u' 为线段的集合,使用最小二乘法对l u' 中的点进行拟合,得到直线l 2 u' ,l 2 u' 的方向为θ u' ,基于点(cell((x+x')/2), cell((y+y')/2))进行延伸,如果点u'在点u的上方,则延伸方向为θ u' ,若在下方,则为θ u' +180°,另外一个分支方向为原方向。
6.如权利要求1所述的一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,所述步骤S9中,将两个设备之间的轨迹信息使用轨迹曲线识别模型来判断线形,所述轨迹曲线识别模型的训练过程具体如下:
S91,准备设备、文字的轨迹信息和对应的标签,轨迹信息的来源为图例和图纸中人工框选的设备、文字,标签对应图例中的设备信息或文字信息,所有的标签加上“无”这个标签构成一个标签库L,L的大小为S L ;
S92,对每一个轨迹信息T={t 1 , t 2 , …, t m },t={(x, y), d, θ}},进行预处理,首先对T中的每一个点与M' j 中的真实情况对比,如果M' j 中该点大于0,则在t的最后一位添加1,即t ={(x, y), d, θ, 1},否证添加0,之后对T中的每一个点的坐标都减取第一个点的坐标,预处理后的轨迹信息和其对应的标签构成数据集Dataset,按照7:3的比例划分训练集Train和测试集Test;
S93,初始化轨迹曲线识别模型,设置学习率为0.001,设置优化器为AdamW,设置损失函数为交叉熵损失函数;
S94,进行E次迭代过程,每一次迭代如S95到S97;
S95,从Train中随机选取Batch size大小的数据,使用0将其填充到固定长度512,输入到轨迹曲线识别模型中,获取模型的输出O;Batch size表示单次传递给模型用以训练的样本个数;
S96,基于交叉熵损失函数计算模型的损失,基于AdamW优化器优化模型优化模型;
S97,每隔10次迭代,在Test集上测试模型的效果,并保存测试效果最好的模型。
7.如权利要求1所述的一种基于深度学习的管道仪表流程图信息抽取方法,其特征在于,所述步骤S11中基于位置判定规则,判定文字和设备的对应关系,所述位置判定规则的具体过程为:
S111,对于设备和文字,基于轨迹信息,求解轨迹信息中最上边、最下边、最左边及最右边的点坐标,基于这四个点构成的矩形,求解矩形的中心点坐标;
S112,对于所有的文字,按照计算中心点之间的距离,如果距离小于阈值th 1 ,则认为这两个文字同属于一个文本,在计算完所有的中心点距离并确定能否合并后,最后进行合并成文本,计算文本的中心点;
S113,计算设备和文本中心点间的距离,如果距离小于阈值th 2 并为与文本间的最小距离,则认为这段文本为该设备的名称。
8.一种基于深度学习的管道仪表流程图信息抽取设备,其特征在于:所述设备包括至少一个处理器和至少一个存储器,所述处理器和存储器相耦合;所述存储器中存储有如权利要求1至7任意一项所述的管道仪表流程图信息抽取方法的计算机程序;所述处理器执行所述存储器存储的计算机程序时,使得所述设备实现管道仪表流程图的信息抽取。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有如权利要求1至7任意一项所述的管道仪表流程图信息抽取方法的程序或指令,所述程序或指令被处理器执行时,使得计算机实现管道仪表流程图的信息抽取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211552869.8A CN115620014B (zh) | 2022-12-06 | 2022-12-06 | 一种基于深度学习的管道仪表流程图信息抽取方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211552869.8A CN115620014B (zh) | 2022-12-06 | 2022-12-06 | 一种基于深度学习的管道仪表流程图信息抽取方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115620014A CN115620014A (zh) | 2023-01-17 |
CN115620014B true CN115620014B (zh) | 2023-04-07 |
Family
ID=84880886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211552869.8A Active CN115620014B (zh) | 2022-12-06 | 2022-12-06 | 一种基于深度学习的管道仪表流程图信息抽取方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115620014B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116110071B (zh) * | 2023-04-07 | 2023-09-12 | 济南大学 | 一种基于深度学习的图像格式管道和仪表图管线识别方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3660743A1 (en) * | 2018-11-30 | 2020-06-03 | Tata Consultancy Services Limited | Systems and methods for automating information extraction from piping and instrumentation diagrams |
KR20200065613A (ko) * | 2018-11-30 | 2020-06-09 | 도프텍(주) | 이미지화된 pid 도면에서 설계 정보를 자동으로 인식하여 분류하는 방법 |
CN113378671A (zh) * | 2021-05-31 | 2021-09-10 | 邵艳杰 | 基于深度学习的pid图纸解析方法、计算机***及介质 |
CN114694165A (zh) * | 2022-06-01 | 2022-07-01 | 济南大学 | 一种pid图纸智能识别与重绘方法 |
CN114863464A (zh) * | 2022-07-08 | 2022-08-05 | 济南大学 | 一种pid图纸图件信息的二阶识别方法 |
-
2022
- 2022-12-06 CN CN202211552869.8A patent/CN115620014B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3660743A1 (en) * | 2018-11-30 | 2020-06-03 | Tata Consultancy Services Limited | Systems and methods for automating information extraction from piping and instrumentation diagrams |
KR20200065613A (ko) * | 2018-11-30 | 2020-06-09 | 도프텍(주) | 이미지화된 pid 도면에서 설계 정보를 자동으로 인식하여 분류하는 방법 |
CN113378671A (zh) * | 2021-05-31 | 2021-09-10 | 邵艳杰 | 基于深度学习的pid图纸解析方法、计算机***及介质 |
CN114694165A (zh) * | 2022-06-01 | 2022-07-01 | 济南大学 | 一种pid图纸智能识别与重绘方法 |
CN114863464A (zh) * | 2022-07-08 | 2022-08-05 | 济南大学 | 一种pid图纸图件信息的二阶识别方法 |
Non-Patent Citations (3)
Title |
---|
Eun-Seop Yu et al.Features Recognition from Piping and Instrumentation Diagrams in Image Format Using a Deep Learning Network.《Energies》.2019,1-19页. * |
Shubham Paliwal et al.Digitize-PID: Automatic Digitization of Piping and Instrumentation Diagrams.《arXiv:2109.03794v1》.2021,1-13页. * |
马明等.工程图纸图像识别技术在数字化交付中的应用.《石油化工建设 》.2021,第63-65页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115620014A (zh) | 2023-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9171204B2 (en) | Method of perspective correction for devanagari text | |
US10769487B2 (en) | Method and device for extracting information from pie chart | |
US20240078646A1 (en) | Image processing method, image processing apparatus, and non-transitory storage medium | |
US8666199B2 (en) | Gesture-based selection text recognition | |
JP4676225B2 (ja) | スキャン・ドキュメントから電子フォームに取り込むための方法および装置 | |
US8515185B2 (en) | On-screen guideline-based selective text recognition | |
US8831381B2 (en) | Detecting and correcting skew in regions of text in natural images | |
US9082181B2 (en) | Image processing method and apparatus | |
KR20130056309A (ko) | 텍스트 기반 3d 증강 현실 | |
CN111798360A (zh) | 一种水印检测方法、装置、电子设备及存储介质 | |
CN113343740B (zh) | 表格检测方法、装置、设备和存储介质 | |
Shivakumara et al. | New gradient-spatial-structural features for video script identification | |
CN115620014B (zh) | 一种基于深度学习的管道仪表流程图信息抽取方法及设备 | |
CN112199545A (zh) | 基于图片文字定位的关键词显示方法、装置及存储介质 | |
CN111985469A (zh) | 一种图像中文字的识别方法、装置及电子设备 | |
Turk et al. | Computer vision for mobile augmented reality | |
CN117237681A (zh) | 图像处理方法、装置及相关设备 | |
JP4247190B2 (ja) | 二次元コード認識装置とそのプログラム | |
KR20140137254A (ko) | 문자 인식을 이용한 위치 정보 제공 단말, 서버, 시스템 및 방법 | |
CN115359008A (zh) | 显示界面的测试方法及装置、存储介质、电子设备 | |
EP4207745A1 (en) | Method for embedding image in video, and method and apparatus for acquiring planar prediction model | |
WO2022105120A1 (zh) | 图片文字检测方法、装置、计算机设备及存储介质 | |
CN115004261A (zh) | 文本行检测 | |
CN111860315A (zh) | 一种表格线的检测方法、装置、设备及存储介质 | |
CN112559342A (zh) | 一种画面测试图像的获取方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |