一种基于图像文本的仪表检测分类方法

文档序号:27503319发布日期:2021-11-22 16:36阅读:83来源:国知局
一种基于图像文本的仪表检测分类方法

1.本发明涉及图像处理与神经网络的技术领域,尤其是指一种基于图像文本的仪表检测分类方法。


背景技术:

2.仪表作为一种监测装置,主要有压力仪表、温度仪表、流量仪表、电工仪表、电子测量仪表,它也被广泛应用于工业生产和社会生活的各个方面,为生产生活提供了极大的便利。通过图像采集设备采集仪表图像进行检测分类,相较于人工分类方法具有适用范围广、分类效率高的优势,随着图像处理技术和神经网络技术的发展,这种方法也在逐步成为主流,该方法中的关键环节就包括仪表中文本的定位与识别,文本定位与识别信息的精确与否对于仪表的分类和量纲读取具有重要影响。
3.目前对于仪表分类方法的研究与实现,主要集中在使用神经网络对不同类型的仪表图像进行分类训练,这种方法存在一些缺陷,比如对需要识别的仪表图像都需要训练,不同类型的仪表在图像上的区分度不是很大,深度网络对不同的仪表的识别分类性能并不理想。目前对于仪表上的字符识别方法的研究与实现,主要集中在传统图像处理技术的应用上,具体通过滤波、灰度化、阈值化、边缘检测、模板检测一系列图像处理技术实现字符信息的获取,这种方法虽然简单易行,但是泛化能力不足,对于不同环境下的各类型仪表的字符信息的识别并不具有普适性,需要频繁更换参数,而且精度不高。随着近年来图像处理和神经网络技术的迅猛发展,使得使用神经网络进行字符定位识别分类成为可能。其中主要有文本检测、文本识别和文本分类三种算法,文本检测主要通过神经网络对字符信息进行四边形框定位,再通过文本识别算法实现仪表上的文本信息读取,再通过文本分类算法将文本信息进行分类得到仪表的类型。
4.综合以上论述,发明一种具备实时性和高精度的仪表检测分类方法具有较高的实际应用价值。


技术实现要素:

5.本发明的目的在于克服现有技术的缺点与不足,提出了一种基于图像文本的仪表检测分类方法,使用神经网络实现仪表检测及仪表文本信息检测识别,具有更高的精度以及在不同背景下有更好的泛化能力,对于不同尺寸的仪表均能进行准确检测,不存在采集角度与距离的局限,利用仪表上的字符信息,能够解决在机器视觉领域中能识别出仪表位置但难以区分仪表类型的问题,做到了不仅能检测出仪表并能识别出仪表的类型。
6.为实现上述目的,本发明所提供的技术方案为:一种基于图像文本的仪表检测分类方法,包括以下步骤:
7.1)使用仪表图像对表盘位置进行标注构建仪表定位数据集,并将仪表定位数据集分为训练集和测试集,再装载参数使用训练集训练改进yolo网络,训练完毕后得到最优的改进yolo网络,将测试集输入最优的改进yolo网络,输出表盘图像并将表盘图像裁剪出来;
其中,改进yolo网络是将骨干网络优化为mobilenet轻量化网络以减少网络参数和计算量,提高运算速度;
8.2)对步骤1)裁剪出来的表盘图像中字符位置进行标注构建字符检测数据集,并将字符检测数据集分为训练集和测试集,再装载训练参数使用训练集训练改进east网络,训练完毕后得到最优的改进east网络,将测试集输入最优的改进east网络,输出字符检测数据集中的字符位置并裁剪为字符图像;其中,改进east网络是将骨干网络换为vgg以提高网络检测准确性,其输出层结构修改预测模块只用头部元素预测顶点,以提高对长字符的预测性能;
9.3)对步骤2)裁剪好的字符图像中字符信息进行标注构建字符识别数据集,并将字符识别数据集分为训练集和测试集,再装载训练参数使用训练集训练crnn网络,训练完毕后得到最优的crnn网络,将测试集输入最优的crnn网络,输出字符信息;
10.4)将步骤3)输出的字符信息拼接为文本,再将文本对应的仪表类型进行标注构建文本分类数据集,将文本分类数据集分为训练集和测试集,再装载训练参数使用训练集训练textcnn网络,训练完毕后得到最优的textcnn网络,将测试集输入最优的textcnn网络输出文本对应的仪表类型。
11.进一步,在步骤1)中,首先,通过摄像机采集不同环境下的各类仪表图像,并对仪表图像进行滤波、图像增强的预处理操作,然后将其中的异常数据剔除,包括存在表面脏污、光照极端以及拍摄不全异常的数据,再对其余数据进行标注,标注内容为表盘位置,构建仪表定位数据集,并分为训练集和测试集。
12.进一步,在步骤1)中,所述改进yolo网络的具体情况如下:
13.a、根据实时性和高精度要求构建特征提取网络:
14.第一层为组合卷积模块1

a,它由一个零填充层、一个卷积层、一个批归一化层和一个激活层组成;
15.第二层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
16.第三层为组合卷积模块1

c,它由一个零填充层、一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
17.第四层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
18.第五层为组合卷积模块1

c,它由一个零填充层、一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
19.第六层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
20.第七层为组合卷积模块1

c,它由一个零填充层、一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
21.第八层为组合卷积模块1

d,它由五个组合卷积模块1

b组成;
22.第九层为组合卷积模块1

c,它由一个零填充层、一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
23.第十层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层
和一个卷积层组成;
24.b、根据特征提取网络不同层的输出构建输出预测不同尺寸目标的预测网络,有大尺寸目标预测网络、中等尺寸目标预测网络和小尺寸目标预测网络;
25.b1、输入为特征提取网络第十层输出,大尺寸目标预测网络由多种组合卷积模块和卷积层组成,其结构如下:
26.第一层为组合卷积模块1

d,它由五个组合卷积模块1

b组成;
27.第二层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
28.第三层为一个卷积层;
29.b2、输入为特征提取网络第八层输出和大尺寸目标预测网络第一层输出,中等尺寸目标预测网络由多种组合卷积模块和卷积层组成,其结构如下:
30.第一层为输入融合模块1

e,它由一个组合卷积模块1

b、一个上采样层和一个张量拼接层组成;
31.第二层为组合卷积模块1

d,它由五个组合卷积模块1

b组成;
32.第三层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
33.第四层为一个卷积层;
34.b3、输入为特征提取网络第六层输出和中等尺寸目标预测网络第二层输出,小尺寸目标预测网络由多种组合卷积模块和卷积层组成,其结构如下:
35.第一层为输入融合模块1

e,它由一个组合卷积模块1

b、一个上采样层和一个张量拼接层组成;
36.第二层为组合卷积模块1

d,它由五个组合卷积模块1

b组成;
37.第三层为组合卷积模块1

b,它由一个深度卷积层、两个批归一化层、两个激活层和一个卷积层组成;
38.第四层为一个卷积层;
39.最后,将大尺寸目标预测网络、中等尺寸目标预测网络和小尺寸目标预测网络的输出通过非极大值抑制层得到预测目标位置和类别;
40.c、设置损失函数有中心坐标损失函数、宽高损失函数、置信度损失函数和类别损失函数;
41.中心坐标损失函数公式如下:
42.loss
xy
=mark
object
*(2

w*h)*loss
log
(xy
true
,xy
predict
)
43.式中,loss
xy
代表中心坐标损失,mark
object
代表锚点框否存在物体的标志位,w代表锚点框的宽,h代表锚点框的高,loss
log
代表二值交叉熵损失,xy
true
代表真实中心坐标值,xy
predict
代表预测中心坐标值;
44.宽高损失函数公式如下:
45.loss
wh
=0.5*mark
object
*(2

w*h)*(wh
true

wh
predict
)246.式中,loss
wh
代表宽高损失,wh
true
代表真实宽高值,wh
predict
代表预测宽高值;
47.置信度损失函数公式如下:
48.loss
confidence
=mark
object
*loss
log
(mark
object
,c
predict
)+(1

mark
object
)*loss
log
(mark
object
,c
predict
)*mark
ignore
49.式中,loss
confidence
代表置信度损失,c
predict
代表预测框的置信度值,mark
ignore
代表iou小于阈值的锚点框的标志位;
50.类别损失函数公式如下:
51.loss
cls
=mark
object
*loss
log
(cls
true
,cls
predict
)
52.式中,loss
cls
代表类别损失,cls
true
代表真实类别,cls
predict
代表预测类别;
53.总损失函数公式如下:
54.loss=(loss
xy
+loss
wh
+loss
confidence
+loss
cls
)/numf
55.式中,loss代表总损失,numf代表输入总数的浮点数;
56.装载训练参数训练改进yolo网络,训练参数的设置为:设置训练优化器为adam、初始学习率为0.001、最大训练周期为500以及批次大小为8;并设置验证集间隔检测训练精确度,训练完成标志为达到最大训练周期或均交并比满足要求,训练完成达到最优后保存网络;
57.将测试集输入最优的改进yolo网络得到表盘位置和表盘图像。
58.进一步,在步骤2)中,所述改进east网络的具体情况如下:
59.a、构建特征提取网络,其结构如下:
60.第一层为组合卷积模块2

b,它由两个组合卷积模块2

a和一个最大池化层组成,组合卷积模块2

a由一个零填充层、一个卷积层和一个激活层组成;
61.第二层为组合卷积模块2

b,它由两个组合卷积模块2

a和一个最大池化层组成;
62.第三层为组合卷积模块2

c,它由三个组合卷积模块2

a和一个最大池化层组成;
63.第四层为组合卷积模块2

c,它由三个组合卷积模块2

a和一个最大池化层组成;
64.第五层为组合卷积模块2

c,它由三个组合卷积模块2

a和一个最大池化层组成;
65.b、构建特征融合网络,其结构如下:
66.第一层为输入融合模块2

g,它由一个上采样层和一个张量拼接层组成;
67.第二层为组合卷积模块2

e,它由两个批归一化层、一个组合卷积模块2

d和一个组合卷积模块2

a组成;其中组合卷积模块2

d由一个零填充层、一个卷积层和一个激活层组成;
68.第三层为输入融合模块2

g,它由一个上采样层和一个张量拼接层组成;
69.第四层为组合卷积模块2

e,它由两个批归一化层、一个组合卷积模块2

d和一个组合卷积模块2

a组成;
70.第五层为输入融合模块2

g,它由一个上采样层和一个张量拼接层组成;
71.第六层为组合卷积模块2

f,它由三个批归一化层、一个组合卷积模块2

d和两个组合卷积模块2

a组成;
72.c、构建预测网络,其结构如下:
73.第一层分为三个分支,第一个分支由一个组合卷积模块2

d组成;第二个分支由一个组合卷积模块2

d组成;第三个分支由一个组合卷积模块2

d组成;
74.第二层为输入融合模块,它由第一层的三个分支拼接组成;
75.d、设置损失函数有类别损失函数、几何形状损失函数和角度损失函数;
76.类别损失函数公式如下:
[0077][0078]
式中,l
s
代表类别损失,β表示权重,是预测的类别,y
*
是真实的类别;
[0079]
几何形状损失函数公式如下:
[0080][0081]
式中,l
aabb
代表几何形状损失,表示预测四边形文本框aabb的几何形状,r
*
表示真实的四边形文本框aabb的几何形状,iou表示交并比;
[0082]
角度损失函数公式如下:
[0083][0084]
式中,l
θ
θ
*
)是角度损失,是对旋转角的预测值,θ
*
是旋转角的实际值;
[0085]
装载训练参数训练改进east网络,训练参数的设置如下:设置训练优化器为adam、初始学习率为0.001、最大训练周期为500以及批次大小为8;并设置验证集间隔检测训练精确度,训练完成标志为达到最大训练周期或均交并比满足要求,训练完成达到最优后保存网络;
[0086]
将测试集输入最优的改进east网络得到文本位置,并裁剪为字符图像。
[0087]
进一步,在步骤3)中,所述crnn网络的具体情况如下:
[0088]
a、构建特征提取网络,其结构如下:
[0089]
第一层为组合卷积模块3

a,它由一个零填充层、一个卷积层和一个激活层组成;
[0090]
第二层为最大池化层;
[0091]
第三层为组合卷积模块3

a,它由一个零填充层、一个卷积层和一个激活层组成;
[0092]
第四层为最大池化层;
[0093]
第五层为组合卷积模块3

b,它由一个零填充层、一个卷积层、一个批归一化层和一个激活层组成;
[0094]
第六层为组合卷积模块3

a,它由一个零填充层、一个卷积层和一个激活层组成;
[0095]
第七层为最大池化层;
[0096]
第八层为组合卷积模块3

b,它由一个零填充层、一个卷积层、一个批归一化层和一个激活层组成;
[0097]
第九层为组合卷积模块3

a,它由一个零填充层、一个卷积层和一个激活层组成;
[0098]
第十层为最大池化层;
[0099]
第十一层为组合卷积模块3

c,它由一个零填充层、一个卷积层、一个批归一化层和一个激活层组成;
[0100]
b、构建预测网络,其结构如下:
[0101]
第一层为循环卷积模块,它由一个双向lstm组成;
[0102]
第二层为全连接层;
[0103]
第三层为循环卷积模块,它由一个双向lstm组成;
[0104]
第四层为全连接层;
[0105]
c、设置解码器,将输出的序列转化为字符信息;
[0106]
d、设置损失函数为ctc(connectionist temporal classification)损失函数;
[0107]
ctc损失函数公式如下:
[0108]
l
ctc


ln∏
(x,z)
p(z|x)=


(x,z)∈s
lnp(z|x)
[0109]
式中,l
ctc
代表ctc损失,p(z|x)代表给定输入x输出序列z的概率,s为训练集;
[0110]
装载训练参数训练crnn网络,训练参数的设置如下:设置训练优化器为adam、初始学习率为0.0001、最大训练周期为100以及批次大小为32;并设置验证集间隔检测训练精确度,训练完成标志为达到最大训练周期或识别准确率满足要求,训练完成达到最优后保存网络;
[0111]
将测试集输入最优的crnn网络得到字符信息。
[0112]
进一步,在步骤4)中,所述textcnn网络的具体情况如下:
[0113]
a、构建网络结构,如下:
[0114]
第一层为嵌入层;
[0115]
第二层为卷积模块;
[0116]
第三层为最大池化层;
[0117]
第四层由全连接层、dropout层和激活层组成;
[0118]
第五层由全连接层和激活层组成;
[0119]
b、设置损失函数为多分类交叉熵,公式如下:
[0120][0121]
式中,l
crossentropy
代表损失,n代表类别数,y
i
代表对应i类别的真实概率,代表对应i类别的预测概率;
[0122]
装载训练参数训练textcnn网络,训练参数的设置如下:设置训练优化器adam、初始学习率为0.001、迭代次数1000、批次大小64;并设置验证集间隔检测训练精确度,训练完成标志为达到最大迭代次数以及精确度满足要求,训练完成达到最优后保存网络;
[0123]
将测试集输入最优的textcnn网络得到对应的仪表类型。
[0124]
本发明与现有技术相比,具有如下优点与有益效果:
[0125]
1、本发明使用神经网络实现仪表定位及仪表上的字符检测识别,其与传统图像处理方法相比具有更高的精度以及在不同背景下有更好的泛化能力。
[0126]
2、本发明使用改进yolo网络可预测不同尺寸的目标,并综合选择最适合尺寸的预测框,对于不同尺寸的仪表均能进行准确检测,不存在采集角度与距离的局限。
[0127]
3、本发明的改进east网络相比于其它的目标检测网络对字符有着更好的检测性能、更快的检测速度,对于不同角度拍摄的字符都能有较好的检测效果。
[0128]
4、本发明利用仪表上的字符信息拼接成文本,能够解决在机器视觉领域中能识别出仪表位置但难以区分仪表类型的问题,做到了不仅能检测出仪表并能识别出仪表的类型。
附图说明
[0129]
图1为本发明方法的流程图。
[0130]
图2为改进yolo网络的模块示意图。
[0131]
图3为改进east网络的模块示意图。
具体实施方式
[0132]
下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。
[0133]
如图1所示,本实施例所提供的图像文本的仪表检测分类方法,包括以下步骤:
[0134]
1)收集不同实际场景下拍摄到的仪表图像,将其中存在模糊、角度极端及仪表缺失的影响识别的干扰数据剔除,并使用开源标注工具labelimg对其余数据中的表盘位置进行标注,构建仪表定位数据集,并将仪表定位数据集分为训练集和测试集,再装载参数使用训练集训练改进yolo网络,训练完毕后得到最优的改进yolo网络,将测试集输入最优的改进yolo网络,输出表盘图像并将表盘图像裁剪出来;其中,改进yolo网络是将骨干网络优化为mobilenet轻量化网络以减少网络参数和计算量,提高运算速度。
[0135]
根据具体应用场景和识别对象的特点,设计改进yolo网络,本步骤中激活层若未额外声明,均为leaky relu激活函数,包括以下步骤:
[0136]
a、构建特征提取网络
[0137]
根据实时性和高精度要求构建特征提取网络。特征提取网络主要由多个组合卷积模块组成。
[0138]
特征提取网络其结构如下:
[0139]
输入图像为416
×
416
×
3。
[0140]
第一层为组合卷积模块1

a,如图2中(a)所示。模块首先经过零填充层,输出为418
×
418
×
3。再经过卷积层、批归一化层和激活层,卷积核为(3,3),步长为2,滤波器数量为32,输出为208
×
208
×
32。
[0141]
第二层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为208
×
208
×
32。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为64,使用填充使得输入输出大小一致,输出为208
×
208
×
64。
[0142]
第三层为组合卷积模块1

c,如图2中(c)所示。模块首先经过零填充层,输出为210
×
210
×
64。再经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为2,输出为104
×
104
×
64。最后经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为104
×
104
×
128。
[0143]
第四层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为104
×
104
×
128。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为104
×
104
×
128。
[0144]
第五层为组合卷积模块1

c,如图2中(c)所示。模块首先经过零填充层,输出为106
×
106
×
128。再经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为2,输出为52
×
52
×
128。最后经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为52
×
52
×
256。
[0145]
第六层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化
层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为52
×
52
×
256。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为52
×
52
×
256。
[0146]
第七层为组合卷积模块1

c,如图2中(c)所示。模块首先经过零填充层,输出为54
×
54
×
256。再经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为2,输出为26
×
26
×
256。最后经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为26
×
26
×
512。
[0147]
第八层为组合卷积模块1

d,如图2中(d)所示。模块依次经过五个组合卷积模块1

b,如图2中(b)所示。其中在每个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为26
×
26
×
512。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为26
×
26
×
512。依次经过相同的组合卷积模块1

b后,输出为26
×
26
×
512。
[0148]
第九层为组合卷积模块1

c,如图2中(c)所示。模块首先经过零填充层,输出为28
×
28
×
512。再经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为2,输出为13
×
13
×
512。最后经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为1024,使用填充使得输入输出大小一致,输出为13
×
13
×
1024。
[0149]
第十层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为13
×
13
×
1024。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为1024,使用填充使得输入输出大小一致,输出为13
×
13
×
1024。
[0150]
b、构建预测网络
[0151]
根据特征提取网络不同层的输出构建输出预测不同尺寸目标的预测网络,有大尺寸目标预测网络、中等尺寸目标预测网络和小尺寸目标预测网络。
[0152]
b1、大尺寸目标预测网络
[0153]
输入为特征提取网络第十层输出,大尺寸目标预测网络主要由多种组合卷积模块和卷积层组成。
[0154]
输入图像为13
×
13
×
1024。
[0155]
大尺寸目标预测网络其结构如下:
[0156]
第一层为组合卷积模块1

d,如图2中(d)所示。模块依次经过五个组合卷积模块1

b,如图2中(b)所示。在第一个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(1,1),步长为1,使用填充使得输入输出大小一致,输出为13
×
13
×
1024。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为13
×
13
×
512。在第二个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为13
×
13
×
512。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为1024,使用填充使得输入输出大小一致,输出为13
×
13
×
1024。之后交替输入两种不同参数的组合卷积模块1

b后,输出为13
×
13
×
512。
[0157]
第二层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化
层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为13
×
13
×
512。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为1024,使用填充使得输入输出大小一致,输出为13
×
13
×
1024。
[0158]
第三层为一个卷积层。卷积核为(1,1),步长为1,滤波器数量为256,输出为13
×
13
×
256。
[0159]
b2、中等尺寸目标预测网络
[0160]
输入为特征提取网络第八层输出和大尺寸目标预测网络第一层输出,中等尺寸目标预测网络主要由多种组合卷积模块和卷积层组成。
[0161]
输入图像为26
×
26
×
512和13
×
13
×
512。
[0162]
中等尺寸目标预测网络结构为:
[0163]
第一层为输入融合模块,如图2中(e)所示。输入13
×
13
×
512首先经过组合卷积模块1

b,在其中首先经过深度卷积、批归一化层和激活层,卷积核为(1,1),步长为1,使用填充使得输入输出大小一致,输出为13
×
13
×
512。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为13
×
13
×
512。再经过上采样层,采样因子为2,输出为26
×
26
×
512。最后该输出和输入26
×
26
×
512经过张量拼接层,输出为26
×
26
×
1024。
[0164]
第二层为组合卷积模块1

d,如图2中(d)所示。模块依次经过五个组合卷积模块1

b,如图2中(b)所示。在第一个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(1,1),步长为1,使用填充使得输入输出大小一致,输出为26
×
26
×
1024。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为26
×
26
×
256。在第二个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为26
×
26
×
256。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为26
×
26
×
512。之后交替输入两种不同参数的组合卷积模块1

b后,输出为26
×
26
×
256。
[0165]
第三层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为26
×
26
×
256。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为512,使用填充使得输入输出大小一致,输出为26
×
26
×
512。
[0166]
第四层为一个卷积层。卷积核为(1,1),步长为1,滤波器数量为256,输出为26
×
26
×
256。
[0167]
b3、小尺寸目标预测网络
[0168]
输入为特征提取网络第六层输出和中等尺寸目标预测网络第二层输出,小尺寸目标预测网络主要由多种组合卷积模块和卷积层组成。
[0169]
输入图像为52
×
52
×
256和26
×
26
×
256。
[0170]
小尺寸目标预测网络结构为:
[0171]
第一层为输入融合模块,如图2中(e)所示。输入26
×
26
×
256首先经过组合卷积模块1

b,在其中首先经过深度卷积、批归一化层和激活层,卷积核为(1,1),步长为1,使用填充使得输入输出大小一致,输出为26
×
26
×
256。再经过卷积、批归一化层和激活层,卷积核
为(1,1),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为26
×
26
×
256。再经过上采样层,采样因子为2,输出为52
×
52
×
256。最后该输出和输入52
×
52
×
256经过张量拼接层,输出为52
×
52
×
512。
[0172]
第二层为组合卷积模块1

d,如图2中(d)所示。模块依次经过五个组合卷积模块1

b,如图2中(b)所示。在第一个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(1,1),步长为1,使用填充使得输入输出大小一致,输出为52
×
52
×
512。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为128,使用填充使得输入输出大小一致,输出为52
×
52
×
128。在第二个组合卷积模块1

b中,输入首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为52
×
52
×
128。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为52
×
52
×
256。之后交替输入两种不同参数的组合卷积模块1

b后,输出为52
×
52
×
128。
[0173]
第三层为组合卷积模块1

b,如图2中(b)所示。模块首先经过深度卷积、批归一化层和激活层,卷积核为(3,3),步长为1,使用填充使得输入输出大小一致,输出为52
×
52
×
128。再经过卷积、批归一化层和激活层,卷积核为(1,1),步长为1,滤波器数量为256,使用填充使得输入输出大小一致,输出为52
×
52
×
256。
[0174]
第四层为一个卷积层。卷积核为(1,1),步长为1,滤波器数量为256,输出为52
×
52
×
256。
[0175]
最后将大尺寸目标预测网络的输出13
×
13
×
256、中等尺寸目标预测网络的输出26
×
26
×
256和小尺寸目标预测网络的输出52
×
52
×
256通过非极大值抑制层得到预测目标位置和类别。
[0176]
c、设置损失函数
[0177]
设置损失函数为中心坐标损失函数、宽高损失函数、置信度损失与类别损失函数的求和均值。损失函数公式如下:
[0178]
loss=(loss
xy
+loss
wh
+loss
confidence
+loss
cls
)/numf
[0179]
其中loss代表总损失,loss
xy
代表中心坐标损失,loss
wh
代表宽高损失,loss
confidence
代表置信度损失,loss
cls
代表类别损失,numf代表输入总数的浮点数。各个损失函数公式如下:
[0180]
loss
xy
=mark
object
*(2

w*h)*loss
log
(xy
true
,xy
predict
)
[0181]
loss
wh
=0.5*mark
object
*(2

w*h)*(wh
true

wh
predict
)2[0182]
loss
confidence
=mark
object
*loss
log
(mark
object
,c
predict
)+(1

mark
object
)*loss
log
(mark
object
,c
predict
)*mark
ignore
[0183]
loss
cls
=mark
object
*loss
log
(cls
true
,cls
predict
)
[0184]
其中mark
object
代表锚点框否存在物体的标志位,w代表锚点框的宽,h代表锚点框的高,loss
log
代表二值交叉熵损失,xy
true
代表真实中心坐标值,xy
predict
代表预测中心坐标值,wh
true
代表真实宽高值,wh
predict
代表预测宽高值,c
predict
代表预测框的置信度值,mark
ignore
代表iou小于阈值的锚点框的标志位,cls
true
代表真实类别,cls
predict
代表预测类别。
[0185]
训练改进yolo网络,包括以下步骤:
[0186]
d1、设置训练参数
[0187]
设置训练优化器为adam、初始学习率为0.001、迭代次数为500、批次大小为8以及对所有标签进行k means聚类生成初始先验框为(38,29)、(65,52)、(94,87)、(142,134)、(195,69)、(216,206)、(337,320)、(397,145)、(638,569)。
[0188]
d2、在线数据增强
[0189]
对输入图像进行数据增强,扩充数据集,数据增强的方法如下:随机镜像翻转、随机添加噪声、随机调整对比度。
[0190]
d3、设置训练完成标志
[0191]
设置验证集间隔检测训练精确度,训练完成标志为达到最大迭代次数500以及精确度满足要求,训练完成达到最优后保存网络。
[0192]
将测试集输入最优的改进yolo网络得到表盘位置和表盘图像。
[0193]
2)对步骤1)裁剪出来的表盘图像中字符位置进行标注构建字符检测数据集,并将字符检测数据集分为训练集和测试集,再装载训练参数使用训练集训练改进east网络,训练完毕后得到最优的改进east网络,将测试集输入最优的改进east网络,输出字符检测数据集中的字符位置并裁剪为字符图像;其中,改进east网络是将骨干网络换为vgg以提高网络检测准确性,其输出层结构修改预测模块只用头部元素预测顶点,以提高对长字符的预测性能。
[0194]
根据具体应用场景和识别对象的特点,设计改进east网络,以下激活层若未额外声明,均为relu激活函数。包括以下步骤:
[0195]
a、构建特征提取网络
[0196]
特征提取网络其结构如下:
[0197]
输入图像为256
×
256
×
3。
[0198]
第一层为组合卷积模块2

b,如图3中(b)所示,由两个组合卷积模块2

a和一个最大池化层组成。第一个组合卷积模块2

a首先经过零填充层,输出为258
×
258
×
3,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为64,输出为256
×
256
×
64。第二个卷积模块2

a,首先经过零填充层,输出为258
×
258
×
64,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为64,输出为256
×
256
×
64。再经过一个最大池化层,池化核大小为(2,2)步长为2,输出为128
×
128
×
64。
[0199]
第二层为组合卷积模块2

b,由两个组合卷积模块2

a和一个最大池化层组成。第一个组合卷积模块2

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为128。第二个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为128。再经过一个最大池化层,池化核大小为(2,2)步长为2,输出为64
×
64
×
128。
[0200]
第三层为组合卷积模块2

c,如图3中(c)所示,由三个组合卷积模块2

a和一个最大池化层组成。第一个组合卷积模块2

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为256。第二个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为256。第三个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为256。再经过一个最大池化层,池化核大小为(2,2)步长为2,输出为32
×
32
×
256。
[0201]
第四层为组合卷积模块2

c,由三个组合卷积模块2

a和一个最大池化层组成。第一个组合卷积模块2

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为512。第二个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为512。第三个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为512。再经过一个最大池化层,池化核大小为(2,2)步长为2,输出为16
×
16
×
512。
[0202]
第五层为组合卷积模块2

c,由三个组合卷积模块2

a和一个最大池化层组成。第一个组合卷积模块2

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为512。第二个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为512。第三个卷积模块2

a,首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为512。再经过一个最大池化层,池化核大小为(2,2),步长为2,输出为8
×8×
512。
[0203]
b、构建特征融合网络
[0204]
第一层为输入融合模块2

g,如图3中(g)所示。特征提取网络最后一层输出8
×8×
512首先经过上采样层,采样因子为2,输出为16
×
16
×
512。该输出和特征提取网络第四层输出16
×
16
×
512经过张量拼接层,输出为16
×
16
×
1024。
[0205]
第二层为组合卷积模块2

e,如图3中(e)所示,由两个批归一化层、一个组合卷积模块2

d和一个组合卷积模块2

a组成。组合卷积模块2

d由一个零填充层、一个卷积层和一个激活层组成。首先经过一个批归一化层,再经过组合卷积模块2

d。组合卷积模块2

d首先经过零填充层,再经过卷积层和激活层,卷积核为(1,1),步长为1,滤波器数量为128,输出为16
×
16
×
128。再经过一个批归一化层,再经过组合卷积模块2

a。组合卷积模块2

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为64,输出为16
×
16
×
64。
[0206]
第三层为输入融合模块2

g。特征融合网络第二层输出16
×
16
×
64首先经过上采样层,采样因子为2,输出为32
×
32
×
64。该输出和特征提取网络第三层输出32
×
32
×
256经过张量拼接层,输出为32
×
32
×
320。
[0207]
第四层为组合卷积模块2

e。首先经过一个批归一化层,再经过组合卷积模块2

d。组合卷积模块2

d首先经过零填充层,再经过卷积层和激活层,卷积核为(1,1),步长为1,滤波器数量为128,输出为32
×
32
×
128。再经过一个批归一化层,再经过一个组合卷积模块1

a。组合卷积模块1

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为64,输出为32
×
32
×
64。
[0208]
第五层为输入融合模块1

g。特征融合网络第二层输出32
×
32
×
64首先经过上采样层,采样因子为2,输出为64
×
64
×
64。该输出和特征提取网络第二层输出64
×
64
×
128经过张量拼接层,输出为64
×
64
×
192。
[0209]
第六层为组合卷积模块1

f,如图3中(f)所示,由三个批归一化层、一个组合卷积模块1

d和两个组合卷积模块1

a组成。首先经过一个批归一化层,再经过组合卷积模块1

d。组合卷积模块1

d首先经过零填充层,再经过卷积层和激活层,卷积核为(1,1),步长为1,滤波器数量为32,输出为64
×
64
×
32。再经过一个批归一化层,再经过一个组合卷积模块1

a。组合卷积模块1

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,
滤波器数量为32,输出为64
×
64
×
32。再经过一个批归一化层,再经过一个组合卷积模块1

a。组合卷积模块1

a首先经过零填充层,再经过卷积层和激活层,卷积核为(3,3),步长为1,滤波器数量为32,输出为64
×
64
×
32。
[0210]
c、构建预测网络
[0211]
第一层有三个分支,第一个分支由一个组合卷积模块1

d组成,首先经过一个零填充层,再经过卷积层和激活层,卷积核为(1,1),步长为1,滤波器数量为1,输出为64
×
64
×
1。第二个分支由一个组合卷积模块1

d组成,首先经过一个零填充层,再经过卷积层和激活层,卷积核为(1,1),步长为1,滤波器数量为2,输出为64
×
64
×
2。第三个分支由一个组合卷积模块1

d组成,首先经过一个零填充层,再经过卷积层和激活层,卷积核为(1,1),步长为1,滤波器数量为4,输出为64
×
64
×
4。
[0212]
第二层为输入融合模块,它由预测网络第一层三个分支拼接组成,输出为64
×
64
×
7。
[0213]
d、设置损失函数
[0214]
设置损失函数为类别损失、几何形状损失和角度损失的求和。
[0215]
类别损失函数公式如下:
[0216][0217]
其中l
s
代表类别损失,β表示权重,是预测的类别,y
*
是真实的类别。
[0218]
几何形状损失函数公式如下:
[0219][0220]
其中其中l
aabb
代表几何形状损失函数,表示预测aabb的几何形状,r
*
表示真实的aabb的几何形状,iou表示交并比。
[0221]
角度损失函数公式如下:
[0222][0223]
其中l
θ
θ
*
)是角度损失函数,是对旋转角的预测,θ
*
是旋转角的真实情况。
[0224]
训练改进east网络,包括以下步骤:
[0225]
e1、设置训练参数
[0226]
设置训练优化器、初始学习率、迭代次数、批次大小及初始先验框。
[0227]
e2、在线数据增强
[0228]
对输入图像进行数据增强,扩充数据集,数据增强主要方法如下:随机添加噪声、随机调整对比度。
[0229]
e3、设置训练完成标志
[0230]
设置验证集间隔检测训练精确度,训练完成标志为达到最大迭代次数以及精确度满足要求,训练完成达到最优后保存网络。
[0231]
将测试集输入最优的改进east网络得到字符图像。
[0232]
3)对步骤2)裁剪好的字符图像中字符信息进行标注构建字符识别数据集,并将字符识别数据集分为训练集和测试集,再装载训练参数使用训练集训练crnn网络,训练完毕
后得到最优的crnn网络,将测试集输入最优的crnn网络,输出字符信息。
[0233]
构建crnn网络,包括以下步骤:
[0234]
a、构建特征提取网络
[0235]
输入图像为w
×
32
×
1,其中w为输入图像的宽,根据输入图片大小自适应变化。
[0236]
第一层为组合卷积模块3

a,首先经过一个零填充层,再经过一个卷积层和一个激活层,卷积核为(3,3),步长为1,滤波器为64,输出为w
×
32
×
64。
[0237]
第二层为最大池化层,池化核大小为(2,2),步长为2,输出为
[0238]
第三层为组合卷积模块3

a,首先经过一个零填充层,再经过一个卷积层和一个激活层,卷积核为(3,3),步长为1,滤波器为128,输出为
[0239]
第四层为最大池化层,池化核大小为(2,2),步长为2,输出为
[0240]
第五层为组合卷积模块3

b,首先经过一个零填充层,再经过一个卷积层、一个批归一化层和一个激活层,卷积核为(3,3),步长为1,滤波器为256,输出为
[0241]
第六层为组合卷积模块3

a,首先经过一个零填充层,再经过一个卷积层和一个激活层,卷积核为(3,3),步长为1,滤波器为256,输出为
[0242]
第七层为最大池化层,池化核大小为(2,2),步长为2,输出为
[0243]
第八层为组合卷积模块3

b,首先经过一个零填充层,再经过一个卷积层、一个批归一化层和一个激活层,卷积核为(3,3),步长为1,滤波器为512,输出为
[0244]
第九层为组合卷积模块3

a,首先经过一个零填充层,再经过一个卷积层和一个激活层,卷积核为(3,3),步长为1,滤波器为512,输出为
[0245]
第十层为最大池化层,池化核大小为(2,2),步长为2,输出为
[0246]
第十一层为组合卷积模块3

c,经过一个卷积层、一个批归一化层和一个激活层,卷积核为(2,2),步长为1,滤波器为512,输出为
[0247]
b、构建预测网络
[0248]
第一层为循环卷积模块,它由一个双向lstm组成,输出为
[0249]
第二层为全连接层,输出为
[0250]
第三层为循环卷积模块,它由一个双向lstm组成,输出为
[0251]
第四层为全连接层,输出为
[0252]
c、设置解码器
[0253]
将预测网络的输出转化为的序列,每个元素的范围从0

6735,分别对应一个独立字符(其中0对应的为空字符),相当于把一行文字分成个字符预测块。再对序列按从左到右的顺序进行处理,当元素不为0且与上一个元素相同时,根据字符库对应的元素值,输出字符信息。
[0254]
d、设置损失函数
[0255]
设置损失函数为ctc(connectionist temporal classification)损失函数。
[0256]
ctc损失函数公式如下:
[0257]
l
ctc


lnπ
(x,z)
p(z|x)=


(x,z)∈s lnp(z|x)
[0258]
其中l
ctc
代表ctc损失函数,p(z|x)代表给定输入x输出序列z的概率,s为训练集。
[0259]
训练crnn网络,包括以下步骤:
[0260]
e1、设置训练参数
[0261]
设置训练优化器、初始学习率、迭代次数、批次大小。
[0262]
e2、设置训练完成标志
[0263]
设置验证集间隔检测训练精确度,训练完成标志为达到最大迭代次数以及精确度满足要求,训练完成达到最优后保存网络。
[0264]
将测试集输入最优的crnn网络得到字符信息。
[0265]
4)将步骤3)输出的字符信息拼接为文本,再将文本对应的仪表类型进行标注构建文本分类数据集,将文本分类数据集分为训练集和测试集,再装载训练参数使用训练集训练textcnn网络,训练完毕后得到最优的textcnn网络,将测试集输入最优的textcnn网络输出文本对应的仪表类型。
[0266]
构建textcnn网络,包括以下步骤:
[0267]
a、构建网络结构:
[0268]
第一层为嵌入层,输入文本长度m,词向量化为600
×
64,即为输入张量;
[0269]
第二层为卷积模块,卷积核为(5,5),步长为1,滤波器数量为256,输出为596
×
256;
[0270]
第三层为最大池化层,输出为1
×
256;
[0271]
第四层由全连接层、dropout层和激活层组成,输出为1
×
128;
[0272]
第五层由全连接层和激活层组成,输出为1
×
cls,cls为类别数;
[0273]
b、设置损失函数
[0274]
设置损失函数为多分类交叉熵
[0275]
其中l
crossentropy
代表损失,n代表类别数,y
i
代表对应i类别的真实概率,代表对应i类别的预测概率。
[0276]
训练textcnn网络,包含以下步骤:
[0277]
c1、设置训练参数
[0278]
设置训练优化器、初始学习率为、迭代次数、批次大小。
[0279]
c2、设置训练完成标志
[0280]
设置验证集间隔检测训练精确度,训练完成标志为达到最大迭代次数以及精确度满足要求,训练完成达到最优后保存网络。
[0281]
将测试集输入最优的textcnn网络输出文本对应的仪表类型。
[0282]
综上所述,在采用以上方案后,本发明为仪表图像的检测分类提供了新的方法,将神经网络作为仪表检测分类的有效方法,能够有效解决难以读取仪表类型的问题,有效推动自动化仪表识别技术的发展,具有实际推广价值,值得推广。
[0283]
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1