CN112949564B - 一种基于深度学习的指针式仪表自动读数方法 - Google Patents

一种基于深度学习的指针式仪表自动读数方法 Download PDF

Info

Publication number
CN112949564B
CN112949564B CN202110318382.2A CN202110318382A CN112949564B CN 112949564 B CN112949564 B CN 112949564B CN 202110318382 A CN202110318382 A CN 202110318382A CN 112949564 B CN112949564 B CN 112949564B
Authority
CN
China
Prior art keywords
instrument
angle
pointer
image
picture
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
Application number
CN202110318382.2A
Other languages
English (en)
Other versions
CN112949564A (zh
Inventor
靳一丹
张红雨
田新宇
李博
吴冰航
孙奇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
University of Electronic Science and Technology of China
Original Assignee
University of Electronic Science and Technology of China
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by University of Electronic Science and Technology of China filed Critical University of Electronic Science and Technology of China
Publication of CN112949564A publication Critical patent/CN112949564A/zh
Application granted granted Critical
Publication of CN112949564B publication Critical patent/CN112949564B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/50Extraction of image or video features by performing operations within image blocks; by using histograms, e.g. histogram of oriented gradients [HoG]; by summing image-intensity values; Projection analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/02Recognising information on displays, dials, clocks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

本发明公开了一种基于深度学习的指针式仪表自动读数方法,包括以下步骤:S1.确定仪表类型和仪表定位;S2.从指针式仪表图像中提取出表盘;S3.进行指针检测并计算指针角度;S4.检测0刻度与最大刻度的角度以及最大量程数字区域;S5.对最大量程数字进行识别;S6.进行指针式仪表的读数计算,得到读数结果。本发明可以适应复杂的背景环境,不同的光线亮度,仪表倾斜的情况,同时在不知道仪表的最大量程的情况下,也可以实现仪表的自动读数。

Description

一种基于深度学习的指针式仪表自动读数方法
技术领域
本发明涉及指针式仪表读数,特别是涉及一种基于深度学习的指针式仪表自动读数方法。
背景技术
指针式仪表因其具备抗干扰能力强,工作原理简单,反应速度块,价格低廉等优点,在各行各业中具有极为广泛的应用。尽管在电子技术突飞猛进的21世纪,指针式仪表依旧有着不可替代的地位。而传统仪表大多数都是由操作人员人眼进行读数,不但效率低下,而且难免会因为人员的视觉疲劳,环境恶劣等外界因素影响读数的准确度。而且,在一些极端的环境下,比如高压,高温,强辐射等场所下,人工读数手段的弊端逐渐显现。随着计算机视觉的高速发展,机器读数代替人工读数早已成为了近些年研究的一个热点。
指针式仪表的自动识别起初大多数是由传统图像处理算法来完成,常见的识别方法主要有,剪影法,模板匹配法,关键点检测法,霍夫变换,最小二乘法,椭圆拟合法,中心投影法等,但是通常情况下传统图像处理算法局限性非常强,对环境的变换和噪声比较敏感,且实时性低,一般要求图像清晰,光源稳定,背景单一,仪表不倾斜,仪表类型单一等,显然这不能满足我们的实际需求。因此近年来随着深度学习的飞速发展,越来越多的学者将深度学习运用到仪表自动读数中。
发明内容
本发明的目的在于克服现有技术的不足,提供一种基于深度学习的指针式仪表自动读数方法,在保证准确的的前提下,可以适应复杂环境、仪表倾斜、不同量程的场景。
本发明的目的是通过以下技术方案来实现的:一种基于深度学习的指针式仪表自动读数方法,包括以下步骤:
S1.确定仪表类型和仪表定位;
S2.从指针式仪表图像中提取出表盘;
S3.进行指针检测并计算指针角度;
S4.检测0刻度与最大刻度的角度以及最大量程数字区域;
S5.对最大量程数字进行识别;
S6.进行指针式仪表的读数计算,得到读数结果。
其中,所述步骤S1包括:
S101.拍摄图片创建数据集并标注数据:
(1)拍摄的图片中包含不同仪表、不同复杂背景、不同光线,不同倾斜程度、不同量程的仪表图像,并通过裁剪、旋转、翻转、增加噪声、改变图像亮度的方式进行数据集的扩充,然后采用图像标注工具LabelImg标注图片样本,得到对应的xml文件;所述xml文件中包括图片的文件名、图片中标注的仪表类型和仪表在图片中的位置信息;
(2)将xml文件划分为训练集、验证集和测试集;
S102.配置ssd模型:
(1)转换文件格式:将训练集跟验证集中的每一个xml文件与对应的图片转换为对应的tfrecord格式的数据文件,tfrecord数据文件是tensorflow中一种将图像数据和标签统一存储的二进制文件,用于快速地在tensorflow中复制、移动、读取和存储;
(2)修改自定义的物体类别:
由于需要识别指针式仪表,所以自定义的物体类别为指针式仪表;
S103.训练模型:
将转换得到的tfrecord文件送入到ssd模型中进行训练,最终得到训练好的ssd模型结果;
S104.评估模型精确度
将测试集中图片,逐张输入到步骤S103中训练好的ssd模型中,得到每张图片的测试结果,若模型识别的精确度达标,则完成训练,否则,对ssd模型的参数进行微调,直到精确度达标后得到成熟的ssd模型;
S105.确定仪表类型和仪表定位。
将需要识别的图片输入到成熟的ssd模型中,得到图片中包含的仪表类型,以及仪表对应的坐标位置信息。
所述步骤S2包括:
S201.根据仪表的坐标位置信息,将原始图像进行裁剪,只保留仪表区域,并将裁剪后所得的仪表区域图像大小进行统一处理成高度300像素宽度为300像素的标准图像;
S202.图像亮度调整:将图像转换到HSV空间,计算出图片亮度的均值,根据亮度均值的范围,选择相应的处理:
若亮度均值在120-200之间,图片亮度正常,不做任何操作;
若亮度均值小于120,图片过暗,若亮度均值大于200,图片过曝光,均采用改进的直方图均衡算法进行亮度的调整,得到直方图均衡后的图片,从而将图片亮度调节到正常区间,改进的直方图均衡算法步骤如下:a计算分位点,目的是去掉直方图两头的异常情况;b去掉分位值区间之外的值;c将分位值区间拉伸到255*0.1-255*0.9防止出现像素值溢出情况;
S203.检测仪表的边缘,从仪表区域中只抠出表盘区域:a将亮度调整后的图片转换为灰度图像;b使用sobel边缘检测算法,得到所诉图像的边缘;c给图像四周添加20像素的黑色边框;d将上述图像进行卷积核为5的高斯滤波;e使用大津法找到合适的阈值;f从得到的阈值图片中寻找轮廓,分别拟合椭圆,返回得到面积最大的椭圆,同时进行霍夫变换进行圆检测,返回符合约束条件的圆,将得到的椭圆区域跟圆区域求并集,在仪表区域的彩色图像上用黄色填充,后利用HSV色彩空间转换,只提取出表盘区域,并将霍夫圆检测得到的初始圆心坐标,初始圆的半径保存到列表info_list中,从而实现从存在仪表倾斜,仪表发生形变,仪表存在大量阴影的图像中将表盘提取出来。
所述步骤S3包括:
S301.将步骤S2中所得的表盘图片转换成灰度图,并对图像进行卷积核为7高斯滤波;
S302.采用自适应阈值,得到表盘的二值图像;
S303.将得到的二值图像进行卷积核为5,迭代次数为2的开操作,并寻找轮廓;
S304.根据仪表指针的特征,找到仪表指针的轮廓,并用蓝色填充,所述仪表指针的特征包括面积、质心、周长、最小外接矩形长宽比中一种或多种的组合;
S305.使用色彩空间转换,在hsv空间找到指针,得到只包含指针的蒙版;
S306.在步骤S2中得到的霍夫圆的圆心很多时候并不是仪表盘真正的圆心,会存在一些偏差,这降低了后面的读数的精度,因此对步骤S305中得到的指针蒙版进行canny边缘检测,再次进行霍夫圆检测,保证检测到的圆的圆心与初始圆心的距离小于35像素,从而得到仪表的精确圆心,将其添加到info_list中;
S307.找到指针的旋转矩形中心,将指针旋转矩形中心坐标添加到列表info_list中,方便后续指针角度的判断;
S308.细化指针,得到指针的骨架;
S309.在上诉指针骨架的图片上拟合直线,判断直线的角度:
①计算指针旋转矩形的中心坐标相对于表盘精确圆心坐标的角度c_theta;
②计算拟合直线的角度θ,通过算法拟合直线的角度范围为-90°-90°,逆时针为负数,指针拟合直线在1,3象限;顺时针为正数,指针拟合直线在2,4象限;
③借助c_theta,判断指针指向的具体角度,c_theta的角度一定在指针指尖指向的角度的周围;
④将计算得到的指针角度添加到info_list中。
所述步骤S4包括:
S401.将步骤S2中所得的表盘图片,使用canny边缘检测得到表盘的边缘图;
S402.在边缘图上寻找轮廓,并根据轮廓的周长,最小矩形,最小矩形的倾斜角度,最小矩形中心点相对于仪表精确圆心的偏转角度,轮廓凸包的面积,轮廓凸包外接矩形的质心到圆心的距离,直线拟合等特征找到仪表盘0刻度与最大刻度的角度以及最大量程数字区域,具体步骤为:
①计算最大刻度的角度过程:a对canny边缘图进行轮廓查找,首先在合适的周长下,求轮廓的最小矩形及其倾斜角度b当其最小外接矩形的中心到仪表精确圆心的角度在特定305-340°范围内,寻找轮廓的凸包,计算凸包的范围,根据仪表的特征,找到最大量程区域的刻度线,所述仪表的特征包括刻度线倾斜角度和到圆心的距离;c通过计算每个凸包的质心到仪表圆心的角度,计算出的最小值即为仪表最大角度,将最大刻度处的角度添加到info_list中;
②计算0刻度线的角度过程:根据先验条件,指针式仪表的最大量程刻度线跟0刻度线的夹角为93度,因此将①计算得到的最大量程刻度线角度减去93度即为0刻度线的角度;
③得到最大量程的数字区域:a在①的a步骤下,当其最小外接矩形的中心到仪表精确圆心的角度在特定305-340°范围内,检测轮廓的凸包,当凸包的质心到圆心的距离在表盘半径的0.4倍-0.75倍,凸包面积与外接矩形的面积比值大于0.4时,寻找出满足条件的最大量程数字区域,用绿色填充;b同样将图片转换到HSV空间中,寻找绿色数字区域的外轮廓,并将外接矩形的边框信息添加到number_info中,用于下一步数字区域的裁剪。
所述步骤S5包括:
S501.根据number_info中的信息,从步骤S2得到的表盘图像中裁剪出数字区域,并计算得到数字区域中心点的角度;
S502.将得到的裁剪数字区域的图片进行统一处理,使其转换为高度为数字区域像素的两倍,宽度为数字区域像素的2倍的标准图像;
S503.将标准图像转换为灰度图;
S504.将灰度图进行大津阈值检测得到黑底白字的数字图片,并位其添加10像素的黑色边框;
S505.由于数字会伴随着表盘的倾斜有不同程度的倾斜,故找到数字的倾斜角度进行矫正,步骤如下:
①将数字图像变为灰度图片,寻找数字区域的外轮廓,通过外轮廓的旋转矩形,得到数字的旋转角度;
②根据①中得到的旋转角度,将S504中的图片矫正,得到数字的矫正图;
S506.将S505得到的矫正图进行像素取反,得到白底黑字的矫正的数字图片,便于识别;
S507.将数字图片进行分割,得到单个数字图像,按顺序依次通过预先训练好的CNN深度神经网络,获得置信度最大的数字,最后按顺序对识别出来的数字进行组合,得到最终的数字;步骤如下:
①训练CNN深度神经网络;
a数据集选择和预处理;
b只保留数字样本,并将其90%作为训练集,10%作为验证集;
c数据集中图像的预处理,模型的输入是28*28的灰度图片;
d使用图片生成器生成一个batch的图像数据,支持实时的数据提升;
e模型搭建和训练,模型建构选择784->512->512->11,训练10代,得到model.json文件;
②将数字分割得到的单个数字图像,缩放成至边长为28的小图,然后将其放入一个28*28的白色图像的中心位置,将处理好的图像送入模型中运算,得到识别结果,即为最大量程。
所述步骤S6包括:计算读数结果:
读数结果=(最大量程-最小量程)*(指针与0刻度线的夹角)/(0刻度角度与最大量程刻度线的夹角),其中:
最小量程为0;
在以仪表精确圆心为原点的坐标系中,其中指针与0刻度线的夹角计算方法为:若指针角度不在第四象限,计算方法为0刻度线角度-指针的角度;若指针在第四象限,计算方法为360-(指针角度-0刻度线角度)
0刻度角度与最大量程刻度线的夹角为:360-(最大量程刻度线角度-0刻度线角度)。
本发明的有益效果是:本发明可以适应复杂的背景环境,不同的光线亮度,仪表倾斜的情况,同时在不知道仪表的最大量程的情况下,也可以实现仪表的自动读数。
附图说明
图1为本发明的方法流程图;
图2为指针表盘角度示意图。
具体实施方式
下面结合附图进一步详细描述本发明的技术方案,但本发明的保护范围不局限于以下所述。
如图1所示,一种基于深度学习的指针式仪表自动读数方法,包括以下步骤:
S1.确定仪表类型和仪表定位;
S2.从指针式仪表图像中提取出表盘;
S3.进行指针检测并计算指针角度;
S4.检测0刻度与最大刻度的角度以及最大量程数字区域;
S5.对最大量程数字进行识别;
S6.进行指针式仪表的读数计算,得到读数结果。
在工业物联网的背景下,实际的拍摄过程往往存在很多干扰因素,比如外界自然光的叠加,背景复杂,拍摄角度不固定,仪表的类型以及量程不确定等因素,对图像的预处理过程造成了极大的干扰。因此确定仪表类型,准确的定位表盘位置是仪表自动识别读数的重要前提。在传统的图像处理算法中表盘定位主要分为三类:(1)基于霍夫圆检测算法;(2)模板匹配算法。(3)特征点匹配算法。但是由于背景的复杂以及难确定性,使用霍夫检测会检测出很多伪圆,直线等,将对表盘的提取,以及指针的提取带来过多的噪声;同时,在光线变化太大,测试图像与模板图像大小不一致,图像存在倾斜旋转的情况下,模板匹配算法将会失效;特征点匹配算法,运算复杂,速度慢,对噪声跟光照极其敏感,这些都无法满足我们目前的需求。
基于深度学习来进行表盘定位,实际上是一个目标检测的过程。目前主流的目标检测算法主要有R-CNN、Fast-RCNN、Mask-RCNN、Faster-RCNN、YOLO、SSD等。
由于R-CNN系列在速度跟mAP方面上表现不佳,YOLO系列虽然速度快,实时性好,但是对目标尺度变化敏感,因此本发明在保证仪表识别的准确度跟实时性的前提下,选用SSD模型,进行仪表的分类跟定位。
所述步骤S1包括:
S101.拍摄图片创建数据集并标注数据:
(1)拍摄的图片中包含不同仪表、不同复杂背景、不同光线,不同倾斜程度、不同量程的仪表图像,并通过裁剪、旋转、翻转、增加噪声、改变图像亮度的方式进行数据集的扩充,然后采用图像标注工具LabelImg标注图片样本,得到对应的xml文件;所述xml文件中包括图片的文件名、图片中标注的仪表类型和仪表在图片中的位置信息;
(2)将xml文件划分为训练集、验证集和测试集;
S102.配置ssd模型:
(1)转换文件格式:将训练集跟验证集中的每一个xml文件与对应的图片转换为对应的tfrecord格式,tfrecord数据文件是tensorflow中一种将图像数据和标签统一存储的二进制文件,用于快速地在tensorflow中复制、移动、读取和存储;
(2)修改自定义的物体类别:
由于需要识别指针式仪表,所以自定义的物体类别为指针式仪表;
S103.训练模型:
将转换得到的tfrecord文件送入到ssd模型中进行训练,最终得到训练好的ssd模型结果;
S104.评估模型精确度
将测试集中图片,逐张输入到步骤S103中训练好的ssd模型中,得到每张图片的测试结果,若模型识别的精确度达标,则完成训练,否则,对ssd模型的参数进行微调,直到精确度达标后得到成熟的ssd模型;
S105.确定仪表类型和仪表定位。
将需要识别的图片输入到成熟的ssd模型中,得到图片中包含的仪表类型,以及仪表对应的坐标位置信息。
所述步骤S2包括:
S201.根据仪表的坐标位置信息,将原始图像进行裁剪,只保留仪表区域,并将裁剪后所得的仪表区域图像大小进行统一处理成高度300像素宽度为300像素的标准图像;
S202.图像亮度调整:将图像转换到HSV空间,计算出图片亮度的均值,根据亮度均值的范围,选择相应的处理:
若亮度均值在120-200之间,图片亮度正常,不做任何操作;
若亮度均值小于120,图片过暗,若亮度均值大于200,图片过曝光,均采用改进的直方图均衡算法进行亮度的调整,得到直方图均衡后的图片,从而将图片亮度调节到正常区间,改进的直方图均衡算法步骤如下:a计算分位点,目的是去掉直方图两头的异常情况;b去掉分位值区间之外的值;c将分位值区间拉伸到255*0.1-255*0.9防止出现像素值溢出情况;
S203.检测仪表的边缘,从仪表区域中只抠出表盘区域:a将亮度调整后的图片转换为灰度图像;b使用sobel边缘检测算法,得到所诉图像的边缘;c给图像四周添加20像素的黑色边框;d将上述图像进行卷积核为5的高斯滤波;e使用大津法找到合适的阈值;f从得到的阈值图片中寻找轮廓,分别拟合椭圆,返回得到面积最大的椭圆,同时进行霍夫变换进行圆检测,返回符合约束条件的圆,将得到的椭圆区域跟圆区域求并集,在仪表区域的彩色图像上用黄色填充,后利用HSV色彩空间转换,只提取出表盘区域,并将霍夫圆检测得到的初始圆心坐标,初始圆的半径保存到列表info_list中,从而实现从存在仪表倾斜,仪表发生形变,仪表存在大量阴影的图像中将表盘提取出来。
所述步骤S3包括:
S301.将步骤S2中所得的表盘图片转换成灰度图,并对图像进行卷积核为7高斯滤波;
S302.采用自适应阈值,得到表盘的二值图像;
S303.将得到的二值图像进行卷积核为5,迭代次数为2的开操作,并寻找轮廓;
S304.根据仪表指针的特征,找到仪表指针的轮廓,并用蓝色填充,所述仪表指针的特征包括面积、质心、周长、最小外接矩形长宽比中一种或多种的组合;
S305.使用色彩空间转换,在hsv空间找到指针,得到只包含指针的蒙版;
S306.在步骤S2中得到的霍夫圆的圆心很多时候并不是仪表盘真正的圆心,会存在一些偏差,这降低了后面的读数的精度,因此对步骤S305中得到的指针蒙版进行canny边缘检测,再次进行霍夫圆检测,保证检测到的圆的圆心与初始圆心的距离小于35像素,从而得到仪表的精确圆心,将其添加到info_list中;
S307.找到指针的旋转矩形中心,将指针旋转矩形中心坐标添加到列表info_list中,方便后续指针角度的判断;
S308.细化指针,得到指针的骨架;
S309.在上诉指针骨架的图片上拟合直线,判断直线的角度:
①计算指针旋转矩形的中心坐标相对于表盘精确圆心坐标的角度c_theta;
②计算拟合直线的角度θ,通过算法拟合直线的角度范围为-90°-90°,逆时针为负数,指针拟合直线在1,3象限;顺时针为正数,指针拟合直线在2,4象限;
③借助c_theta,判断指针指向的具体角度,c_theta的角度一定在指针指尖指向的角度的周围;
④将计算得到的指针角度添加到info_list中。
所述步骤S4包括:
S401.将步骤S2中所得的表盘图片,使用canny边缘检测得到表盘的边缘图;
S402.在边缘图上寻找轮廓,并根据轮廓的周长,最小矩形,最小矩形的倾斜角度,最小矩形中心点相对于仪表精确圆心的偏转角度,轮廓凸包的面积,轮廓凸包外接矩形的质心到圆心的距离,直线拟合等特征找到仪表盘0刻度与最大刻度的角度以及最大量程数字区域,具体步骤为:
①计算最大刻度的角度过程:a对canny边缘图进行轮廓查找,首先在合适的周长下,求轮廓的最小矩形及其倾斜角度b当其最小外接矩形的中心到仪表精确圆心的角度在特定305-340°范围内,寻找轮廓的凸包,计算凸包的范围,根据仪表的特征,如刻度线倾斜角度,到圆心的距离找到最大量程区域的刻度线;c通过计算每个凸包的质心到仪表圆心的角度,计算出的最小值即为仪表最大角度,将最大刻度处的角度添加到info_list中。
②计算0刻度线的角度过程:根据先验条件,指针式仪表的最大量程刻度线跟0刻度线的夹角为93度,因此将①计算得到的最大量程刻度线角度减去93度即为0刻度线的角度。
③得到最大量程的数字区域:a在①的a步骤下,当其最小外接矩形的中心到仪表精确圆心的角度在特定305-340°范围内,检测轮廓的凸包,当凸包的质心到圆心的距离在表盘半径的0.4倍-0.75倍,凸包面积与外接矩形的面积比值大于0.4时,寻找出满足条件的最大量程数字区域,用绿色填充;b同样将图片转换到HSV空间中,寻找绿色数字区域的外轮廓,并将外接矩形的边框信息添加到number_info中,用于下一步数字区域的裁剪。
所述步骤S5包括:
S501.根据number_info中的信息,从步骤S2得到的表盘图像中裁剪出数字区域,并计算得到数字区域中心点的角度;
S502.将得到的裁剪数字区域的图片进行统一处理,使其转换为高度为数字区域像素的两倍,宽度为数字区域像素的2倍的标准图像;
S503.将标准图像转换为灰度图;
S504.将灰度图进行大津阈值检测得到黑底白字的数字图片,并位其添加10像素的黑色边框;
①将数字图像变为灰度图片,寻找数字区域的外轮廓,通过外轮廓的旋转矩形,得到数字的旋转角度;
②根据①中得到的旋转角度,将S504中的图片矫正,得到数字的矫正图;
S506.将S505得到的矫正图进行像素取反,得到白底黑字的矫正的数字图片,便于识别;
S507.将数字图片进行分割,得到单个数字图像,按顺序依次通过预先训练好的CNN深度神经网络,获得置信度最大的数字,最后按顺序对识别出来的数字进行组合,得到最终的数字;步骤如下:
①训练CNN深度神经网络;
a数据集选择和预处理;由于仪表上的数字多为印刷体,选择的数据集来自英国萨里大学的网站中EnglishFnt.tgz,这个数据集包含印刷体数字和字母60000+的样本;
b只保留数字样本,并将其90%作为训练集,10%作为验证集;
c数据集中图像的预处理,模型的输入是28*28的灰度图片;
d使用图片生成器生成一个batch的图像数据,支持实时的数据提升;
e模型搭建和训练,模型建构选择784->512->512->11,训练10代,得到model.json文件;
②将数字分割得到的单个数字图像,缩放成至边长为28的小图,然后将其放入一个28*28的白色图像的中心位置,将处理好的图像送入模型中运算,得到识别结果,即为最大量程。
计算读数结果:
读数结果=(最大量程-最小量程)*(指针与0刻度线的夹角)/(0刻度角度与最大量程刻度线的夹角),如图2所示:
最小量程为0;
在以仪表精确圆心为原点的坐标系中,其中指针与0刻度线的夹角计算方法为:若指针角度不在第四象限,计算方法为0刻度线角度-指针的角度;若指针在第四象限,计算方法为360-(指针角度-0刻度线角度)
0刻度角度与最大量程刻度线的夹角为:360-(最大量程刻度线角度-0刻度线角度)。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (2)

1.一种基于深度学习的指针式仪表自动读数方法,其特征在于:包括以下步骤:
S1.确定仪表类型和仪表定位;
S2.从指针式仪表图像中提取出表盘;
S3.进行指针检测并计算指针角度;
S4.检测0刻度与最大刻度的角度以及最大量程数字区域;
S5.对最大量程数字进行识别;
S6.进行指针式仪表的读数计算,得到读数结果;
所述步骤S1包括:
S101.拍摄图片创建数据集并标注数据:
(1)拍摄的图片中包含不同仪表、不同复杂背景、不同光线,不同倾斜程度、不同量程的仪表图像,并通过裁剪、旋转、翻转、增加噪声、改变图像亮度的方式进行数据集的扩充,然后采用图像标注工具LabelImg标注图片样本,得到对应的xml文件;所述xml文件中包括图片的文件名、图片中标注的仪表类型和仪表在图片中的位置信息;
(2)将xml文件划分为训练集、验证集跟测试集;
S102.配置ssd模型:
(1)转换文件格式:将训练集跟验证集中的每一个xml文件与对应的图片转换为tfrecord格式的数据文件,tfrecord数据文件是tensorflow中一种将图像数据和标签统一存储的二进制文件,用于快速地在tensorflow中复制、移动、读取和存储;
(2)修改自定义的物体类别:
由于需要识别指针式仪表,所以自定义的物体类别为指针式仪表;
S103.训练模型:
将转换得到的tfrecord文件送入到ssd模型中进行训练,最终得到训练好的ssd模型结果;
S104.评估模型精确度
将测试集中图片,逐张输入到步骤S103中训练好的ssd模型中,得到每张图片的测试结果,若模型识别的精确度达标,则完成训练,否则,对ssd模型的参数进行微调,直到精确度达标后得到成熟的ssd模型;
S105.确定仪表类型和仪表定位;
将需要识别的图片输入到成熟的ssd模型中,得到图片中包含的仪表类型,以及仪表对应的坐标位置信息;
所述步骤S2包括:
S201.根据仪表的坐标位置信息,将原始图像进行裁剪,只保留仪表区域,并将裁剪后所得的仪表区域图像大小进行统一处理成高度300像素宽度为300像素的标准图像;
S202.图像亮度调整:将图像转换到HSV空间,计算出图片亮度的均值,根据亮度均值的范围,选择相应的处理:
若亮度均值在120-200之间,图片亮度正常,不做任何操作;
若亮度均值小于120,图片过暗,若亮度均值大于200,图片过曝光,均采用改进的直方图均衡算法进行亮度的调整,得到直方图均衡后的图片,从而将图片亮度调节到正常区间,改进的直方图均衡算法步骤如下:a计算分位点,目的是去掉直方图两头的异常情况;b去掉分位值区间之外的值;c将分位值区间拉伸到255*0.1-255*0.9防止出现像素值溢出情况;
S203.检测仪表的边缘,从仪表区域中只抠出表盘区域:a将亮度调整后的图片转换为灰度图像;b使用sobel边缘检测算法,得到所诉图像的边缘;c给图像四周添加20像素的黑色边框;d将上述图像进行卷积核为5的高斯滤波;e使用大津法找到合适的阈值;f从得到的阈值图片中寻找轮廓,分别拟合椭圆,返回得到面积最大的椭圆,同时进行霍夫变换进行圆检测,返回符合约束条件的圆,将得到的椭圆区域跟圆区域求并集,在仪表区域的彩色图像上用黄色填充,后利用HSV色彩空间转换,只提取出表盘区域,并将霍夫圆检测得到的初始圆心坐标,初始圆的半径保存到列表info_list中,从而实现从存在仪表倾斜,仪表发生形变,仪表存在大量阴影的图像中将表盘提取出来;
所述步骤S3包括:
S301.将步骤S2中所得的表盘图片转换成灰度图,并对图像进行卷积核为7高斯滤波;
S302.采用自适应阈值,得到表盘的二值图像;
S303.将得到的二值图像进行卷积核为5,迭代次数为2的开操作,并寻找轮廓;
S304.根据仪表指针的特征,找到仪表指针的轮廓,并用蓝色填充,所述仪表指针的特征包括面积、质心、周长、最小外接矩形长宽比中一种或多种的组合;
S305.使用色彩空间转换,在hsv空间找到指针,得到只包含指针的蒙版;
S306.在步骤S2中得到的霍夫圆的圆心很多时候并不是仪表盘真正的圆心,会存在一些偏差,这降低了后面的读数的精度,因此对步骤S305中得到的指针蒙版进行canny边缘检测,再次进行霍夫圆检测,保证检测到的圆的圆心与初始圆心的距离小于35像素,从而得到仪表的精确圆心,将其添加到info_list中;
S307.找到指针旋转矩形的中心,将指针旋转矩形的中心坐标添加到列表info_list中,方便后续指针角度的判断;
S308.细化指针,得到指针的骨架;
S309.在上诉指针骨架的图片上拟合直线,判断直线的角度:
①计算指针旋转矩形的中心坐标相对于表盘精确圆心坐标的角度c_theta;
②计算拟合直线的角度θ,通过算法拟合直线的角度范围为-90°-90°,逆时针为负数,指针拟合直线在1,3象限;顺时针为正数,指针拟合直线在2,4象限;
③借助c_theta,判断指针指向的具体角度,c_theta的角度一定在指针指尖指向的角度的周围;
④将计算得到的指针角度添加到info_list中;
所述步骤S4包括:
S401.将步骤S2中所得的表盘图片,使用canny边缘检测得到表盘的边缘图;
S402.在边缘图上寻找轮廓,并根据轮廓的周长,最小矩形,最小矩形的倾斜角度,最小矩形中心点相对于仪表精确圆心的偏转角度,轮廓凸包的面积,轮廓凸包外接矩形的质心到圆心的距离,直线拟合特征找到仪表盘0刻度与最大刻度的角度以及最大量程数字区域,具体步骤为:
①计算最大刻度的角度过程:a对canny边缘图进行轮廓查找,首先在合适的周长下,求轮廓的最小矩形及其倾斜角度b当其最小外接矩形的中心到仪表精确圆心的角度在特定305-340°范围内,寻找轮廓的凸包,计算凸包的范围,根据仪表的特征,找到最大量程区域的刻度线,所述仪表的特征包括刻度线倾斜角度和到圆心的距离;c通过计算每个凸包的质心到仪表圆心的角度,计算出的最小值即为仪表最大角度,将最大刻度处的角度添加到info_list中;
②计算0刻度线的角度过程:根据先验条件,指针式仪表的最大量程刻度线跟0刻度线的夹角为93度,因此将①计算得到的最大量程刻度线角度减去93度即为0刻度线的角度;
③得到最大量程的数字区域:a在①的a步骤下,当其最小外接矩形的中心到仪表精确圆心的角度在特定305-340°范围内,检测轮廓的凸包,当凸包的质心到圆心的距离在表盘半径的0.4倍-0.75倍,凸包面积与外接矩形的面积比值大于0.4时,需找出满足条件的最大量程数字区域,用绿色填充;b同样将图片转换到HSV空间中,寻找绿色数字区域的外轮廓,并将外接矩形的边框信息添加到number_info中,用于下一步数字区域的裁剪;
所述步骤S5包括:
S501.根据number_info中的信息,从步骤S2得到的表盘图像中裁剪出数字区域,并计算得到数字区域中心点的角度;
S502.将得到的裁剪数字区域的图片进行统一处理,使其转换为高度为数字区域像素的两倍,宽度为数字区域像素的2倍的标准图像;
S503.将标准图像转换为灰度图;
S504.将灰度图进行大津阈值检测得到黑底白字的数字图片,并位其添加10像素的黑色边框;
S505.由于数字会伴随着表盘的倾斜有不同程度的倾斜,故找到数字的倾斜角度进行矫正,步骤如下:
①将数字图像变为灰度图片,寻找数字区域的外轮廓,通过外轮廓的旋转矩形,得到数字的旋转角度;
②根据①中得到的旋转角度,将S504中的图片矫正,得到数字的矫正图;
S506.将S505得到的矫正图进行像素取反,得到白底黑字的矫正的数字图片,便于识别;
S507.将数字图片进行分割,得到单个数字图像,按顺序依次通过预先训练好的CNN深度神经网络,获得置信度最大的数字,最后按顺序对识别出来的数字进行组合,得到最终的数字;步骤如下:
①训练CNN深度神经网络;
a数据集选择和预处理;
b只保留数字样本,并将其90%作为训练集,10%作为验证集;
c数据集中图像的预处理,模型的输入是28*28的灰度图片;
d使用图片生成器生成一个batch的图像数据,支持实时的数据提升;
e模型搭建和训练,模型建构选择784->512->512->11,训练10代,得到model.json文件;
②将数字分割得到的单个数字图像,缩放成至边长为28的小图,然后将其放入一个28*28的白色图像的中心位置,将处理好的图像送入模型中运算,得到识别结果,即为最大量程。
2.根据权利要求1所述的一种基于深度学习的指针式仪表自动读数方法,其特征在于:所述步骤S6包括:计算读数结果:
读数结果=(最大量程-最小量程)*(指针与0刻度线的夹角)/(0刻度角度与最大量程刻度线的夹角),其中:
最小量程为0;
在以仪表精确圆心为原点的坐标系中,其中指针与0刻度线的夹角计算方法为:若指针角度不在第四象限,计算方法为0刻度线角度-指针的角度;若指针在第四象限,计算方法为360-(指针角度-0刻度线角度)
0刻度角度与最大量程刻度线的夹角为:360-(最大量程刻度线角度-0刻度线角度)。
CN202110318382.2A 2021-02-02 2021-03-25 一种基于深度学习的指针式仪表自动读数方法 Active CN112949564B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2021101448053 2021-02-02
CN202110144805 2021-02-02

Publications (2)

Publication Number Publication Date
CN112949564A CN112949564A (zh) 2021-06-11
CN112949564B true CN112949564B (zh) 2022-11-29

Family

ID=76226681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110318382.2A Active CN112949564B (zh) 2021-02-02 2021-03-25 一种基于深度学习的指针式仪表自动读数方法

Country Status (1)

Country Link
CN (1) CN112949564B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113435300B (zh) * 2021-06-23 2022-10-14 国网智能科技股份有限公司 一种避雷器仪表实时识别方法及系统
CN113705564B (zh) * 2021-08-10 2024-03-12 上海电力大学 一种指针式仪表识别读数方法
CN113837166B (zh) * 2021-08-20 2024-03-12 北京工业大学 一种基于深度学习的指针式仪表自动读数方法
CN113780310A (zh) * 2021-09-06 2021-12-10 桂林电子科技大学 一种基于关键点检测的仪表读数方法
CN114037993B (zh) * 2021-09-26 2023-06-23 佛山中科云图智能科技有限公司 变电站指针仪表读数方法、装置、存储介质以及电子设备
CN114037992A (zh) * 2021-10-28 2022-02-11 软通动力信息技术(集团)股份有限公司 仪表示数识别方法、装置、电子设备及存储介质
CN113947720B (zh) * 2021-12-20 2022-05-20 广东科凯达智能机器人有限公司 一种判断密度表的工作状态的方法
CN114663744A (zh) * 2022-05-24 2022-06-24 西安石油大学 基于机器学习的仪表自动识别方法及系统
CN114663680A (zh) * 2022-05-25 2022-06-24 天津大学四川创新研究院 一种温湿度表的示数识别系统和方法
CN115019028A (zh) * 2022-08-02 2022-09-06 北京中拓新源科技有限公司 一种多形态指针表读数智能识别方法及装置
CN115049916A (zh) * 2022-08-17 2022-09-13 四川金信石信息技术有限公司 一种指针式仪表读数识别方法及识别装置
CN115115664B (zh) * 2022-08-25 2022-11-18 济宁景泽信息科技有限公司 计量器具信息采集系统
CN115661147B (zh) * 2022-12-26 2023-03-28 济宁市质量计量检验检测研究院(济宁半导体及显示产品质量监督检验中心、济宁市纤维质量监测中心) 基于机器视觉的计量检测数据识别方法
CN116092091A (zh) * 2023-02-23 2023-05-09 河北工程大学 一种基于Labview视觉系统的仪表读数识别方法
CN116071604A (zh) * 2023-03-03 2023-05-05 北京尚优力达科技有限公司 一种基于图像的指针表识别方法及装置
CN116071362B (zh) * 2023-03-20 2023-08-15 内蒙古晶环电子材料有限公司 拉晶断苞检测方法、装置、计算机设备和存储介质
CN116740719A (zh) * 2023-05-04 2023-09-12 北京和利时系统集成有限公司 指针型仪表读数方法、装置和存储介质
CN116434208B (zh) * 2023-06-14 2023-10-27 福建(泉州)哈工大工程技术研究院 一种用于仪表扇形区域的视觉识别方法
CN116704510A (zh) * 2023-08-08 2023-09-05 深圳中集智能科技有限公司 机器视觉工业仪表数据智能辨识方法
CN117197072B (zh) * 2023-09-07 2024-04-05 石家庄铁道大学 基于机器视觉的物体自动计数方法
CN117372937B (zh) * 2023-12-07 2024-03-29 江西理工大学南昌校区 一种基于指针仪表的数据读取方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110378225A (zh) * 2019-06-14 2019-10-25 南京泛函智能技术研究院有限公司 指针式仪表自动读数的识别方法及识别装置
CN111950330A (zh) * 2019-05-16 2020-11-17 杭州测质成科技有限公司 一种基于目标检测的指针式仪表示数检测方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9135492B2 (en) * 2011-09-20 2015-09-15 Honeywell International Inc. Image based dial gauge reading
CN106228161B (zh) * 2016-07-18 2019-04-19 电子科技大学 一种指针式表盘自动读数方法
CN109447062A (zh) * 2018-09-29 2019-03-08 南京理工大学 基于巡检机器人的指针型仪表识别方法
CN109948469B (zh) * 2019-03-01 2022-11-29 吉林大学 基于深度学习的巡检机器人仪表自动检测识别方法
CN109993166B (zh) * 2019-04-03 2020-10-09 同济大学 基于刻度查找的指针式仪表读数自动识别方法
CN110363202B (zh) * 2019-07-23 2020-06-19 深圳中科捷飞科技有限公司 指针式仪表数值读取方法及计算机终端
CN110781884A (zh) * 2019-10-17 2020-02-11 广西电网有限责任公司电力科学研究院 一种实现电表数据智能读取的方法
CN111046881B (zh) * 2019-12-02 2023-03-24 许昌北邮万联网络技术有限公司 基于计算机视觉和深度学习的指针式仪表读数识别方法
CN111931620A (zh) * 2020-07-31 2020-11-13 北京奈伦机器人科技有限公司 仪表盘定位识别方法、装置、电子设备及存储介质
CN112149667B (zh) * 2020-09-15 2024-05-28 浙江师范大学 一种基于深度学习的指针式仪表的自动读数的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111950330A (zh) * 2019-05-16 2020-11-17 杭州测质成科技有限公司 一种基于目标检测的指针式仪表示数检测方法
CN110378225A (zh) * 2019-06-14 2019-10-25 南京泛函智能技术研究院有限公司 指针式仪表自动读数的识别方法及识别装置

Also Published As

Publication number Publication date
CN112949564A (zh) 2021-06-11

Similar Documents

Publication Publication Date Title
CN112949564B (zh) 一种基于深度学习的指针式仪表自动读数方法
CN110672617B (zh) 基于机器视觉的智能手机玻璃盖板丝印区缺陷检测方法
CN110060237B (zh) 一种故障检测方法、装置、设备及系统
CN106875381B (zh) 一种基于深度学习的手机外壳缺陷检测方法
CN109426814B (zh) 一种发票图片特定板块的定位、识别方法、系统、设备
CN111931776B (zh) 一种基于深度学习的双指针仪表读数方法
CN106529537A (zh) 一种数字仪表读数图像识别方法
CN111915704A (zh) 一种基于深度学习的苹果分级识别方法
CN107679535A (zh) 一种基于模板匹配的指针式水表自动读数识别系统及方法
CN109918523B (zh) 一种基于yolo9000算法的电路板元器件检测方法
CN111680690B (zh) 一种文字识别方法及装置
CN111598889B (zh) 均压环倾斜故障的识别方法、装置、计算机设备
CN110659637A (zh) 一种结合深度神经网络和sift特征的电能表示数与标签自动识别方法
CN111539330B (zh) 一种基于双svm多分类器的变电站数显仪表识别方法
CN111046881A (zh) 基于计算机视觉和深度学习的指针式仪表读数识别方法
CN111310826A (zh) 样本集的标注异常检测方法、装置及电子设备
CN116862910B (zh) 基于自动化裁切生产的视觉检测方法
CN116958125B (zh) 基于图像处理的电竞主机电源元件缺陷视觉检测方法
CN114627089A (zh) 缺陷识别方法、装置、计算机设备及计算机可读存储介质
CN114241469A (zh) 一种面向电表轮换过程的信息识别方法和装置
CN116188756A (zh) 一种基于深度学习的仪表角度校正与示数识别方法
CN113705564B (zh) 一种指针式仪表识别读数方法
CN110570398A (zh) 一种基于深度学习技术的线缆接头焊点合格性检测方法
CN114463770A (zh) 一种用于普遍试卷题目的智能切题方法
CN109784257B (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