CN112949564B - 一种基于深度学习的指针式仪表自动读数方法 - Google Patents
一种基于深度学习的指针式仪表自动读数方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/50—Extraction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/02—Recognising 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刻度线角度)。
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)
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)
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)
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 | 浙江师范大学 | 一种基于深度学习的指针式仪表的自动读数的方法 |
-
2021
- 2021-03-25 CN CN202110318382.2A patent/CN112949564B/zh active Active
Patent Citations (2)
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 |