本发明涉及模式识别与人工智能技术领域,具体的说,是涉及一种基于深度卷积神经网络的指针式水表的检测与识别方法。
背景技术
随着人工智能技术的发展,特别是深度网络模型技术在计算机视觉领域应用的发展,基于深度网络模型的自动检测与识别技术成为目前的热点技术之一。尤其是近期gpu等硬件技术的快速发展,在一定程度上解决了深度网络的计算瓶颈,使得深度神经网络的实际应用成为可能。
水务数据采集(抄表)是水能源运营单位一项繁琐而重要的工作。目前主要采取人工抄表的方式:一方面,人工抄表模式需要极大的人力、物力投入;另一方面,由于抄表工作涉及千家万户,不能及时地完成数据采集时有发生,同时,也会带来一系列安全隐患。另一种数据采集模式是对现有水表进行数字化改造,实现数据自动采集,该模式存在的主要问题为:(1)计量表规格千差万别,表改造涉及面大,需要大量的资金投入;(2)在水务部门机械表具有无需电源、安全可靠等电子设备无法替代的优势;(3)新型数字化计量表成本较高,维护难度也较大。例如目前的光电直读式水表,其制造及安装工艺均比较复杂,成本大幅提升。
上述缺陷,值得解决。
技术实现要素:
为了克服现有的技术的不足,本发明提供一种指针式水表的检测与识别方法。
本发明技术方案如下所述:
一种指针式水表的检测与识别方法,其特征在于,包括数据采集终端和识别服务器,所述数据采集终端对水表图像进行采集,并将采集的图像上传到所述识别服务器,所述识别服务器进行水表读数的检测与识别,所述识别服务器的处理步骤包括:
s1:数据预处理:对采集的水表图像进行裁剪、缩放;
s2:训练数据的标记label制作:对预先采集的水表图像进行监督信息的标定;
s3:构建深度卷积神经网络:水表的检测与识别采用基于深度卷积网络的模型,所构建的卷积神经网络完成指针圆盘的检测和读数识别;
s4:神经网络模型的训练:经过标记后的水表图像及相应的标记信息输入到构建的卷积神经网络模型中,采用随机梯度下降算法进行网络参数的学习。
根据上述方案的本发明,其特征在于,在所述步骤s1中,图像缩放为500×500。
根据上述方案的本发明,其特征在于,所述步骤s2具体包括以下步骤:
s21:标出水表中的所有指针圆盘,并将指针相应的读数进行标注,作为后续分类的标注信息;
s22:将各个指针圆盘的边框坐标及各个指针的读数按照读数顺序,保存到数据文件中;
s23:将采集的水表图像及标注数据随机分为训练集和测试集。
进一步的,在所述步骤s22中,所述指针圆盘的边框坐标为矩形框的两个顶点坐标,将左上顶点坐标记录于第一个位置,将右下顶点坐标记录于第二个位置,然后再记录当前指针的读数值,各个坐标值和读数值之间用逗号分隔开,每个指针圆盘的标注独占一行文本。
根据上述方案的本发明,其特征在于,所述步骤s3具体包括以下步骤:
s31:构建卷积神经网络;
s32:训练参数的设定;
s33:在最后的卷积特征图上,采用滑动窗的方式检测水表指针圆盘;
s34:对边框的坐标进行参数化;
s35:回归;
s36:分类;
s37:网络权值初始化。
进一步的,所述卷积神经网络包括特征提取层、分类器及回归器:所述特征提取层负责图像特征的自动学习和提取;所述分类器负责对每个位置进行分类,判别该位置是否包含水表指针圆盘;所述回归器负责对检测框进行大小和位置的调整。
更进一步的,所述卷积神经网络模型为:
input(500×500)->conv1_1(3×3)->conv1_2(3×3)->pool1->conv2_1(3×3)->conv2_2(3×3)->pool2->conv3_1(3×3)->conv3_2(3×3)->conv3_3(3×3)->pool3->conv4_1(3×3)->conv4_2(3×3)->conv4_3(3×3)->pool4->conv5_1(3×3)->conv5_2(3×3)->conv5_3(3×3)->loss_cls/loss_bbox,
其中,conv表示卷积层,pool表示池化层,loss_cls为分类损失层,loss_bbox为回归损失层。
进一步的,所述训练参数包括迭代次数、更新步长、初始学习率、学习率变化系数以及权重衰减系数,其中迭代次数为120000,所述更新步长为50000,所述初始学习率为0.001,所述学习率变化系数为0.1,所述权重衰减系数为0.0005。
根据上述方案的本发明,其特征在于,在所述步骤s4中,采用端到端的训练方式来训练卷积神经网络,在最后输出结果中,采样出前景和背景中各128个结果进行损失loss的计算;当前景结果数量不足时,则通过重复采样的方式补充至128个。
根据上述方案的本发明,其有益效果在于:
(1)由于采用深度网络结构的自动学习算法,能够很好地从数据中学习到有效的图像表达,提高检测以及识别的准确率。
(2)本发明采用端到端的设计,与传统人工读取读数相比,读取速度快,准确率更高,同时避免人工读取时的主观因素,能够成功解决指针式水表不直观带来的读取困难的问题。
(3)本发明的检测识别方法准确率高、鲁棒性强、实时性强。
附图说明
图1为本发明的流程图。
图2为本发明中数据采集和处理的流程图。
图3为本发明中深度卷积神经网络的结构示意图。
图4为本发明水表检测和识别的流程图。
图5为本发明实施例中水表的检测识别结果示意图。
具体实施方式
下面结合附图以及实施方式对本发明进行进一步的描述:
如图1所示,一种指针式水表的检测与识别方法,包括数据采集终端和识别服务器。数据采集终端采用摄像头作为图像采集终端,并固定在水表表盘上,进行水表图像采集;采集的图像通过有线或者无线方式上传到识别服务器,进行水表读数的检测与识别。
数据采集终端的拍照终端固定安装在水表面板上。数据采集终端拍摄图像时,摄像头与水表表面垂直,防止指针倾斜投影到错误的读数上,拍摄的水表图像存在任意旋转角度。
识别服务器的处理包括数据预处理、训练数据的标记label制作、构建深度卷积神经网络、神经网络模型的训练等4个步骤。
一、数据预处理
如图2所示,对图像进行裁剪,去掉照片中冗余区域,然后将裁剪后的图像缩放为500×500。
二、训练数据的标记label制作
检测与识别模型采用有监督的方式进行模型参数的训练和学习,需要人工方式对预先采集的水表图像进行监督信息的标定。实际应用中采集的水表图像不少于10000张,其中涵盖多种指针式水表。具体处理过程包括:
1、使用专门设计的标注软件,标出水表中的所有指针圆盘,并将指针相应的读数进行标注,作为后续分类的标注信息。
2、将各个指针圆盘的边框坐标及各个指针的读数按照读数顺序,保存到数据文件中。
优选地,所述指针圆盘的边框坐标为矩形框的两个顶点坐标,将左上顶点坐标记录于第一个位置,将右下顶点坐标记录于第二个位置,然后再记录当前指针的读数值,各个坐标值和读数值之间用逗号分隔开,每个指针圆盘的标注独占一行文本。
3、将采集的水表图像及标注数据,按照80%和20%的比例随机分为训练集和测试集。实际应用中训练集不少于8000张图像,测试集不少于2000张图像。
三、构建深度卷积神经网络
如图3-4所示,水表的检测与识别采用基于深度卷积网络的模型,所构建的卷积神经网络主要完成指针圆盘的检测和读数识别。具体包括以下步骤:
1、构建卷积神经网络:
input(500×500)->conv1_1(3×3)->conv1_2(3×3)->pool1->conv2_1(3×3)->conv2_2(3×3)->pool2->conv3_1(3×3)->conv3_2(3×3)->conv3_3(3×3)->pool3->conv4_1(3×3)->conv4_2(3×3)->conv4_3(3×3)->pool4->conv5_1(3×3)->conv5_2(3×3)->conv5_3(3×3)->loss_cls/loss_bbox
其中,conv表示卷积层,pool表示池化层,loss_cls为分类损失层,loss_bbox为回归损失层。
卷积神经网络包括特征提取层、分类器、回归器。conv1-conv5卷积层堆叠在一起构建了网络的特征特征提取部分,负责图像特征的自动学习和提取。分类器由1×1卷积核的卷积网络实现,负责对每个位置进行分类,判别该位置是否包含水表指针圆盘,分类器根据loss_cls产生的loss进行优化。回归器则由另外一个1×1卷积核的卷积网络实现,负责对检测框进行大小和位置的调整,回归器根据loss_bbox产生的loss进行优化。
2、训练参数的设定:
迭代次数iters根据性能测试结果进行设定,实际应用中取iters=120000。采用随机梯度下降算法进行网络优化,学习率更新采用如下策略:更新步长为50000,初始学习率为0.001,学习率变化系数为为0.1,weight_decay(权重衰减系数)为0.0005。
loss函数采用如下公式:
其中,
3、检测水表指针圆盘:
在最后的卷积特征图上,采用滑动窗的方式检测水表指针圆盘,每个滑动位置预先设置9个anchor,其大小分别为1282,2562,5122,宽高比分别设置为1:1,1:2和2:1。
4、对边框的坐标进行参数化:
tx=(x-xa)/wa,ty=(y-ya)/ha
tw=log(w/wa),th=log(h/ha)
tx*=(x*-xa)/wa,ty*=(y*-ya)/ha
tw*=log(w*/wa),th*=log(h*/ha)
其中,x,y,w,h代表边框的中心坐标和宽高;x,xa,x*为中心的x坐标,分别来自于预测框、anchor框、groundtruth框,y,w,h与此类似。
5、回归:
根据上一步骤的参数化方式,采用平滑后的l1范数作为损失函数对网络进行优化,最终达到预测水表指针坐标的效果。
6、分类:
由于指针读数为0-9,因此分类器设定为10个二分类器,分别对应10种读数值。通过这些分类器最终识别各个指针读数值。
7、网络权值初始化:
共享卷积层的权值采用imagenet分类任务数据集训练模型,并利用其训练结果进行共享卷积层权值的初始化,其余网络层则采用零均值高斯分布对其初始化。
四、神经网络模型的训练
经过标记后的水表图像及相应的标记信息输入到构建的卷积神经网络模型中,采用随机梯度下降算法进行网络参数的学习。
采用端到端的训练方式来训练卷积神经网络,在最后输出结果中,采样出前景和背景中各128个结果进行损失loss的计算。当前景结果数量不足时,则通过重复采样的方式补充至128个。
如图5所示,一个之神水表的检测与识别结果示例。本发明基于深度学习模型,实现了指针式水表的自动检测和识别,识别准确率高、处理时间短,可以广泛应用于水表读数的自动抄表、流量监测等,具有较好的实际应用价值。
另外,本发明采用摄像头采集水表图像,无需改变现有的水表计量设备,即可实现水表数据的采集。具有成本低廉,可扩展性好,方便不同规格的计量水表接入,因此具有较好的实际应用价值。
应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
上面结合附图对本发明专利进行了示例性的描述,显然本发明专利的实现并不受上述方式的限制,只要采用了本发明专利的方法构思和技术方案进行的各种改进,或未经改进将本发明专利的构思和技术方案直接应用于其它场合的,均在本发明的保护范围内。