掌桥专利:专业的专利平台
掌桥专利
首页

一种基于梯度变换的方形指针式仪表示数识别方法

文献发布时间:2023-06-19 16:11:11



技术领域

本发明涉及仪表示数监测技术领域,尤其涉及一种基于梯度变换的方形指针式仪表示数识别方法。

背景技术

近年来,煤炭一直是我国的主要能源及重要原材料。随着时代的发展,煤炭行业也将迎来智能化生产和建设的大步发展。而由于自动化、智能化程度越来越高,对多种多样的信息数据的处理成为智能化控制和无人化作业的前提条件。为了实现煤矿设备运行数据的测量、监控和采集,设备运行系统中使用了各种传感器和摄像头。通过这些仪器的使用,实现了井下设备的自动监控。

在井下环境中,传统指针式仪表与数显电子仪表相比具有防水、防尘、高精度、抗电磁干扰等诸多优点,因此常用于测量电压、电流、气压、温度等信息。方形指针式仪表的数据监控功能在煤矿生产活动中起着至关重要的作用。由于指针式仪表的机械检测原理,无法通过数据接口传输信息。因此,在井下,指针式仪表的识别主要还是通过人工观察和记录。但井下指针式仪表数量多,安装环境复杂,人工识别指针式仪表的工作量非常庞大。而在井下的一些危险场所,在抄表过程中,煤矿工人的生命安全受到威胁。通过工业相机代替人眼识别指针式仪表的示数,不仅节省了大量的人力,减少误检,提高企业的效率,还能最大程度的保护工人的生命安全,是个一举多得的方法。

目前指针式仪表大部分采用了模板匹配和深度学习的方法进行仪表检测。模板匹配识别速度相对较慢,并且需要搜集大量的模板,若摄像机距离仪表较近较远导致分辨率不同,就需要不同分辨率所对应的模板,假如模板不全会导致识别结果准确度非常低,甚至识别不出;而深度学习需要大量的基础样本进行训练,井下的环境无法提供大量的样本,难以实现。

发明内容

针对上述现有技术的不足,本发明提供一种基于梯度变换的方形指针式仪表示数识别方法。

为解决上述技术问题,本发明所采取的技术方案是:一种基于梯度变换的方形指针式仪表示数识别方法,包括如下步骤:

步骤1:采集方形指针式仪表的表盘RGB图像,将图像转成灰度图;根据灰度图中仪表边框为黑色、表盘中心为白色的特征利用水平梯度和垂直梯度的计算方式得到两个梯度变换矩阵,具体过程如下:

步骤1.1:利用基于OpenCV的cvtcolor(COLOR_RGB2GRAY)函数将方形指针式仪表的表盘RGB图像转成灰度图像;

步骤1.2:利用方形指针式仪表边缘为黑色,表盘中央位置为白色的特征计算水平梯度和竖直梯度,得到水平梯度矩阵和竖直梯度矩阵;

步骤1.3:利用梯度的基本定义,计算图像中的每个点在水平方向和竖直方向的方向导数,若方向导数为负数,则取相应梯度值的绝对值,若方向导数为正数,则梯度值不变。

步骤2:将这两个梯度变换矩阵经过二值化留下所有梯度变化明显的直线,并过滤掉不满足仪表边缘的直线,然后将矩阵合并,具体过程如下:

步骤2.1:利用基于OpenCV的Threshold函数分别对水平梯度和垂直梯度变换矩阵进行二值化处理,将变化率小的直线过滤掉,保留梯度变化明显的直线;

步骤2.2:利用合并n行或列以及过滤的方法对二值化后的水平梯度和垂直梯度变换矩阵进行不合理直线筛查,即删除过短或者过长的直线,保留满足仪表边缘长度的直线;

步骤2.3:利用基于OpenCV的bitwise_or函数将过滤后的水平梯度变换矩阵与竖直梯度变换矩阵进行逻辑或运算,得到合并之后的矩阵,该矩阵包含仪表边缘的水平直线和竖直直线。

步骤3:通过Harris角点检测定位方形仪表表盘四角坐标,通过坐标抠取仪表盘的图像,并统一表盘图像的大小,具体过程如下:

步骤3.1:利用基于harris的compute_harris_response函数将步骤2得到的图像进行角点检测;

步骤3.2:利用基于harris的get_harris_points函数将角点检测中高于阈值的4个角点坐标筛选出来;

步骤3.3:利用筛选出的4个角点坐标将仪表表盘从灰度图像中抠出来,形成检测后的表盘图;

步骤3.4:利用OpenCV的resize函数将抠出来的表盘图像统一为同一尺寸的正方形图像。

步骤4:利用霍夫直线检测的方法提取表盘图像中的所有直线,根据表盘的特征从检测出的直线中找出指针直线,具体过程如下:

步骤4.1:利用基于OpenCV的GaussianBlur、equalizeHis、threshhold、morphologyEx和resize函数对步骤3得到的统一大小后的图像进行图像的预处理;

步骤4.2:利用基于OpenCV的HoughLinesP函数对预处理后的图像进行霍夫直线提取;

步骤4.3:利用表盘内部直线的特征,通过计算步骤4.2提取的直线到表盘中心点的欧式距离和计算步骤4.2提取的直线距离表盘中心点较近的端点与表盘中心点的距离,从所有直线中找到两距离值均最小的直线,从而找出指针直线。

步骤5:根据指针直线与起点直线夹角、起点直线与终点直线夹角以及量程计算该仪表的示数,具体过程如下:

步骤5.1:利用两条直线夹角的基本公式求出起点直线与终点直线的夹角ɑ;

步骤5.2:利用两条直线夹角的基本公式求出指针直线与起点直线夹角β;

步骤5.3:判断起点直线与终点直线的夹角ɑ是否为锐角,若是则仪表示数计算公式为:

否则,仪表的示数计算公式为:

采用上述技术方案所产生的有益效果在于:

1、本发明提供的方法采用端到端的方形指针式仪表示数读取技术,可以减少前期人工裁取模板的过程或人工采集样本用于深度学习训练的工作,有效地改善了由于模板不足导致准确率低的问题,并且提高示数读取的速度。

2、本发明提供的方法对灰度图像进行梯度计算,能有效的保留仪表边缘信息的完整性,并结合Harris角点检测,能最大程度的检测出方形指针的四角坐标,从而快速的定位指针的坐标点,为后续示数的读取做准备。

附图说明

图1为本发明实施例中基于梯度变换的方形指针式仪表示数识别方法的流程图;

图2为本发明实施例中步骤1的具体流程图;

图3为本发明实施例中步骤2的具体流程图;

图4为本发明实施例中步骤3的具体流程图;

图5为本发明实施例中步骤4的具体流程图;

图6为本发明实施例中步骤5的具体流程图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

如图1所示,本实施例中一种基于梯度变换的方形指针式仪表示数识别方法如下所述。

步骤1:采集方形指针式仪表的表盘RGB图像,将图像转成灰度图;根据灰度图中仪表边框为黑色、表盘中心为白色的特征利用水平梯度和垂直梯度的计算方式得到两个梯度变换矩阵;

本申请实施例中,所述的RGB图像是矿用本安防爆摄像机采集的图像。所述的图像处理模型通过OpenCV工具构建,所述OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,主要用于图像处理、分析、机器视觉等方面。所述的图像处理语言为Python,所述的Python环境由Acaconda搭建,所述Python的Ide为Pycharm。本申请中图像处理模型为方形仪表检测模块中梯度变换处理模块,包括:灰度化;由于方形指针式仪表的特征是黑色的外框和白色的内部,所以边缘处梯度变化快速,利用这一特征通过计算梯度来突出仪表边缘线段特征。进一步为四角的定位和仪表的提取做准备工作。

本实施例中步骤1的具体过程如图2所示,包括:

步骤1.1:利用基于OpenCV的cvtcolor(COLOR_RGB2GRAY)函数将方形指针式仪表的表盘RGB图像转成灰度图像;

步骤1.2:利用方形指针式仪表边缘为黑色,表盘中央位置为白色的特征计算水平梯度和竖直梯度,得到水平梯度矩阵和竖直梯度矩阵;

进一步的,本实施例中利用下述方式计算梯度:

该梯度计算公式是根据二元函数z=f(x,y)来计算的,其中,|grad|为梯度的模。

步骤1.3:利用梯度的基本定义,计算图像中的每个点在水平方向和竖直方向的方向导数,若方向导数为负数,则取相应梯度值的绝对值,若方向导数为正数,则梯度值不变。

步骤2:将这两个梯度变换矩阵经过二值化留下所有梯度变化明显的直线,并过滤掉不满足仪表边缘的直线,然后将矩阵合并;

本申请实施例中,所述二值化处理是根据固定阈值将图像中像素点的灰度值设置非0既255,即将整个图像矩阵呈现出非黑即白效果的过程。本申请实施中,图像处理模型为方形仪表检测模块中滤线模块,所述将这两个梯度变换矩阵经过二值化留下所有梯度变化明显的直线,包括:设置目标阈值;将所述两个梯度变换图像矩阵中灰度值大于所设置目标阈值的像素点设为白色,并将两个梯度变换图像矩阵中灰度值小于所设置目标阈值的像素点设为黑色,得到所述含有明显直线的二值化图像。

本申请实施例中,所述的基础算法过滤不满足仪表边缘的直线,包括:设置合并几行几列,目的是有的仪表边缘在拍摄过程中不是完好的竖直的直线;合并n行或列,得到合并后的矩阵(本实施例中n取值小于等于5);删除过短或者过长的直线,保留满足仪表边缘的适当长度的直线。

本申请实施例中,所述的矩阵合并处理是采用按位逻辑或操作。本申请实施中,所述的水平梯度变换矩阵和竖直梯度变换矩阵合并,包括:两个矩阵的按位逻辑或,将水平和竖直直线合并,得到完整的仪表表盘边框。

本实施例中步骤2的具体过程如图3所示,包括:

步骤2.1:利用基于OpenCV的Threshold函数分别对水平梯度和垂直梯度变换矩阵进行二值化处理,将变化率小的直线过滤掉,保留梯度变化明显的直线;

步骤2.2:利用合并n行或列以及过滤的方法对二值化后的水平梯度和垂直梯度变换矩阵进行不合理直线筛查,即删除过短或者过长的直线,保留满足仪表边缘长度的直线;

步骤2.3:利用基于OpenCV的bitwise_or函数将过滤后的水平梯度变换矩阵与竖直梯度变换矩阵进行逻辑或运算,得到合并之后的矩阵,该矩阵包含仪表边缘的水平直线和竖直直线。

步骤3:通过Harris角点检测定位方形仪表表盘四角坐标,通过坐标抠取仪表盘的图像,并统一表盘图像的大小;

本申请实施例中,所述的Harris角点检测是使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么可以认为该窗口中存在角点。本申请实施中,图像处理模型为方形仪表检测模块中四角定位模块,所述的Harris角点检测定位方形仪表表盘四角坐标,通过坐标抠取仪表盘的图像,包括:角点的阈值设定(用于角点坐标的筛选);图像的角点检测;角点的坐标筛选;定位四角坐标;灰度图仪表盘抠取。

本申请实施例中,所述的统一表盘图像的大小,是将提取的仪表盘图像统一大小(358*358),方便后续图像处理操作。

本实施例中步骤3的具体过程如图4所示,包括:

步骤3.1:利用基于harris的compute_harris_response函数将步骤2得到的图像进行角点检测;

进一步的,本实施例中利用下述公式对所述合并后的图像进行harris角点检测:

E(u,v)=∑w(x,y)[I(x+u,y+v)-I(x,y)]

其中,(u,v)是窗口偏移量,(x,y)是窗口内所对应的像素坐标位置,w(x,y)是窗口函数,I(x,y)是在点(x,y)上的像素值。

步骤3.2:利用基于harris的get_harris_points函数将角点检测中高于阈值的4个角点坐标筛选出来;

步骤3.3:利用筛选出的4个角点坐标将仪表表盘从灰度图像中抠出来,形成检测后的表盘图;

步骤3.4:利用OpenCV的resize函数将抠出来的表盘图像统一为同一尺寸的正方形图像。

步骤4:利用霍夫直线检测的方法提取表盘图像中的所有直线,根据表盘的特征从检测出的直线中找出指针直线;

本申请实施例中,所述的霍夫直线检测是图像处理中的一种特征提取技术,利用点与线的对偶性,在直线检测任务中,即图像空间中的直线与参数空间中的点是一一对应的,参数空间中的直线与图像空间中的点也是一一对应的。本申请实施中,图像处理模型为黑色指针定位模块,所述的霍夫直线检测,包括:图像的预处理(高斯滤波、直方图均衡化、二值化等);利用霍夫直线检测提取表盘图像中的所有直线。

本实施例中步骤4的具体过程如图5所示,包括:

步骤4.1:利用基于OpenCV的GaussianBlur、equalizeHis、threshhold、morphologyEx和resize函数对步骤3得到的统一大小后的图像进行图像的预处理;

步骤4.2:利用基于OpenCV的HoughLinesP函数对预处理后的图像进行霍夫直线提取;

步骤4.3:利用表盘内部直线的特征,通过计算步骤4.2提取的直线到表盘中心点的欧式距离和计算步骤4.2提取的直线距离表盘中心点较近的端点与表盘中心点的距离,从所有直线中找到两距离值均最小的直线,从而找出指针直线。

步骤5:根据指针直线与起点直线夹角、起点直线与终点直线夹角以及量程计算该仪表的示数;

本实施例中步骤5的具体过程如图6所示,包括:

步骤5.1:利用两条直线夹角的基本公式求出起点直线与终点直线的夹角ɑ;

步骤5.2:利用两条直线夹角的基本公式求出指针直线与起点直线夹角β;

进一步的,本实施例中利用下述公式计算两直线夹角:

其中,直线两端点坐标(x

步骤5.3:判断起点直线与终点直线的夹角ɑ是否为锐角,若是则仪表示数计算公式为:

否则,仪表的示数计算公式为:

技术分类

06120114729038