CN108711158B - 基于轮廓拟合和径向分割的指针式仪表图像识别方法 - Google Patents
基于轮廓拟合和径向分割的指针式仪表图像识别方法 Download PDFInfo
- Publication number
- CN108711158B CN108711158B CN201810298843.2A CN201810298843A CN108711158B CN 108711158 B CN108711158 B CN 108711158B CN 201810298843 A CN201810298843 A CN 201810298843A CN 108711158 B CN108711158 B CN 108711158B
- Authority
- CN
- China
- Prior art keywords
- contour
- fitting
- instrument
- pointer
- edge
- 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
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000011218 segmentation Effects 0.000 title claims abstract description 21
- 238000000926 separation method Methods 0.000 claims abstract description 13
- 230000008569 process Effects 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 7
- 230000000694 effects Effects 0.000 claims description 6
- 230000002349 favourable effect Effects 0.000 claims description 2
- 238000003491 array Methods 0.000 description 5
- 238000005286 illumination Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 238000011410 subtraction method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000011426 transformation method Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 208000003464 asthenopia Diseases 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G06T5/70—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
- G06T7/62—Analysis of geometric attributes of area, perimeter, diameter or volume
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Abstract
本发明涉及一种基于轮廓拟合和径向分割的指针式仪表图像识别方法。首先提取指针式仪表图像的闭合轮廓曲线;之后通过轮廓分离法将闭合轮廓分离成边缘轮廓曲线;然后对边缘轮廓进行去噪,利用最小二乘法圆拟合得到仪表盘的拟合圆;接着利用区域生长算法提取仪表指针所在位置的像素点集;最后对仪表的指针进行定位。本发明能够克服仪表上的阴影、数字符号、宽指针等因素的干扰,能对不同大小和位置的仪表图像进行检测,具有较强的自适应调节能力。
Description
技术领域
本发明涉及一种基于轮廓拟合和径向分割的指针式仪表图像识别方法,属于计算机图像处理领域。
背景技术
指针式仪表作为一种测量仪器,由于其结构简单,维护、使用方便,可靠性高,价格便宜,防水、防冻、防尘等优点,在大型的工业领域被广泛用到,如电力系统、石油化工、厂矿企业以及铁路系统等行业。常见的指针式仪表有:电压表、气压表、油温表、温度表、水表等。由于工作场合的原因,这些指针式仪表一般没有数据接口,无法实现测量参数的自动采集与传输。因此对这种指针式仪表的读数主要依靠人工的方式,即用人眼去观察指针指向的刻度值。但这种模式劳动强度大,读数慢,容易引起视觉疲劳,并且在某些高压、核辐射的特定场合,人工读数存在较大的安全隐患。
目前倾向于采用机器识别方法。对指针式仪表图像进行识别的方法有很多种,包括Hough变换法、减影法、最小二乘法等。其中,Hough变换法是目前最常用的仪表识别方法,利用Hough圆变换和Hough直线变换可以分别检测出仪表盘和指针的位置,对图像的光照不均也有很好的抗干扰能力。但这种方法需要调节的参数过多,自适应能力弱,不易扩展使用。减影法是利用原图像和模板图像的灰度值相减得到只含有仪表指针的图像,当光照发生较大变化,除指针外其他背景的灰度值也会发生变化,检测的结果就会出现其他背景信息,对指针的检测产生干扰。最小二乘法是指利用小波检测方法提取出仪表指针和仪表边缘点集合,再对这些点集合进行最小二乘拟合,通过拟合得到仪表指针和表盘位置。
发明内容
为解决现有技术存在的问题,本发明提供一种基于轮廓拟合和径向分割的指针式仪表图像识别方法,能够准确检测出指针和仪表盘的位置,整个识别过程为一个自适应调节的过程,扩展性较强,并且对光照也具有一定的抗干扰能力。
为解决上述技术问题,本发明采用如下技术方案:
一种基于轮廓拟合和径向分割的指针式仪表图像识别方法,用于对指针式仪表进行读数识别;其特征在于包括如下主要步骤:
步骤S1:首先提取指针式仪表图像的闭合轮廓曲线;
步骤S2:通过轮廓分离法将闭合轮廓分离成边缘轮廓曲线;
步骤S3:去除边缘轮廓曲线上的凸起;
步骤S4:去除边缘轮廓曲线上的干扰小轮廓,提取边缘轮廓曲线的连续部分;
步骤S5:然后将特征相似的边缘轮廓曲线进行合并,再然后用最小二乘法对合并后的边缘轮廓曲线进行圆拟合得到拟合圆;
步骤S6:以拟合圆直径上的像素点为对象,利用区域生长算法提取仪表指针所在位置的像素点集;
步骤S7:然后对像素点集进行最小二乘直线拟合,计算拟合直线的相似系数,最后比较所有拟合直线的相似系数大小和拟合圆的半径大小,进行仪表指针的定位和仪表盘的定位。
进一步的,步骤S1中:利用opencv自带的库函数对指针式仪表图像进行轮廓提取;调用opencv的库函数,对原始的仪表图像进行局部自适应二值化、查找轮廓处理,得到包含仪表闭合轮廓的二值图像。
进一步的,步骤S2中:将闭合轮廓分离成两条半边缘轮廓;对一个闭合仪表轮廓进行轮廓分离处理,得到上下两个半边缘轮廓曲线。
进一步的,步骤S2中将闭合的轮廓分离成两条半边缘轮廓具体步骤为:遍历一个闭合轮廓上的所有像素点,当有多个点的横坐标相同时,将这些点中纵坐标最小的点分在上边缘轮廓曲线的数组中,纵坐标最大的点分为下边缘轮廓的数组中,遍历完闭合轮廓上所有的横坐标后,原闭合轮廓被分离得到上下两条边缘轮廓曲线,分离后的边缘轮廓曲线形态更加细化,没有了闭合轮廓中像素点的重复性和杂乱性,边缘轮廓曲线对提高后续的轮廓拟合效果更加有利。
进一步的,步骤S3中,去除边缘轮廓曲线上的凸起具体流程为:对由轮廓分离得到的边缘轮廓曲线,依次遍历边缘轮廓曲线上的像素点,当相邻像素点的纵坐标大小变化趋势为由小到大再到小时,记录此极大值点;遍历完所有像素点后,比较相邻极大值点中间所包含像素点的数量,保留数量最多的一段作为新的边缘轮廓曲线,这样原边缘轮廓曲线两端的凸起就被去除了。
进一步的,步骤S3中,边缘轮廓曲线上的凸起遍布于边缘轮廓曲线的刻度线区域;凸起和仪表轮廓曲线的交点位于图像纵坐标的极大值点处,通过比较像素点间坐标的变化趋势找到轮廓上的极大值点,选择相邻极大值点包含像素个数最多的一段轮廓作为仪表轮廓曲线的主体部分,从而去除仪表轮廓曲线上存在的凸起。
所述凸起由于光照的影响,分离得到的边缘轮廓曲线上会存在由刻度线形成的小凸起,这种小凸起对轮廓的拟合会产生一定的干扰。经观察大量的实验结果后,发现小凸起和仪表轮廓曲线的交点是位于图像纵坐标的极大值点处,通过比较像素点间坐标的变化趋势找到轮廓上的极大值点,选择相邻极大值点包含像素个数最多的一段轮廓作为仪表轮廓曲线的主体部分,从而去除仪表轮廓曲线上存在的小凸起。
进一步的,步骤S4中:提取边缘轮廓曲线的连续部分时,需要根据相邻像素点纵坐标的差值来找到断开点的位置,选择相邻断开点间包含像素点个数最多的一段轮廓作为轮廓曲线上的主体圆弧轮廓部分。
边缘轮廓曲线图上会存在着由背景信息产生的干扰小轮廓,并且由于这种干扰小轮廓位置未知,会对后续的曲线拟合会产生一定的影响。经观察大量的实验结果后,发现这些干扰小轮廓一般与主体部分的圆弧轮廓是断开的,因此可以根据相邻像素点纵坐标的差值来找到断开点的位置,选择相邻断开点间包含像素点个数最多的一段轮廓作为轮廓曲线上的主体圆弧轮廓部分。
进一步的,步骤S4中所述提取边缘轮廓曲线的连续部分具体流程为:对于每条边缘轮廓曲线,依次遍历曲线上的像素点,比较相邻像素点纵坐标差值的绝对值,当绝对值大于2时,则认为此处为一处断开点,记录此断开点的下标;遍历完所有的点后,比较相邻断开点之间像素点的数量,保留数量最多的一段作为新的边缘轮廓曲线,经过这种处理,原边缘轮廓曲线上的干扰小轮廓就会被去除。
经过前面边缘轮廓曲线的去除凸起和干扰小轮廓的处理后,这些轮廓曲线的像素点坐标可能保存在不同的数组中,需要将位置相邻且特征相近的两条或者是多条边缘轮廓曲线的像素点进行合并,保存在一个数组中。特征相近是指两条或多条轮廓曲线的拟合半径接近,并且像素点的灰度均值相近。合并后的轮廓曲线包含了更多的像素点,然后对合并后的边缘轮廓曲线利用最小二乘法进行圆拟合,计算出合并后的边缘轮廓线所拟合的圆心oc和半径R。
进一步的,步骤S5中,所述相似轮廓曲线的合并和轮廓曲线的拟合具体流程为:每次遍历两条边缘轮廓曲线,首先计算每条边缘轮廓曲线所包含像素点的灰度平均值,然后将两条轮廓曲线的灰度均值相减,得到灰度均值的差值Δg;接着对两条边缘轮廓曲线分别利用最小二乘法进行圆拟合,并计算出两个拟合圆的半径之差Δr;若Δg和Δr均小于一个较小的数,说明两条边缘轮廓曲线的半径和灰度值相近,将这两个边缘轮廓曲线合并成一个边缘轮廓曲线,新的边缘轮廓曲线包含了原两条轮廓曲线的所有像素点,用最小二乘法进行拟合。
因为新的边缘轮廓曲线包含了更多的像素点,对提高拟合仪表盘所在圆的效果有帮助。
进一步的,步骤S6中,将拟合圆分割成多条直径,以每条直径上的像素点为研究对象,通过比较单个像素点的灰度值与直径上灰度均值的大小和像素点位置,保留直径上像素灰度值相近、位置相邻的和个数最多的像素点集,比较完所有的直径后会得到包含仪表指针和刻度线的图像,为了分割出仪表指针的像素点集,以拟合圆的圆心为区域生长的种子点,设置区域生长终止条件的阈值为1,利用区域生长算法提取出仪表指针的像素点集。
因为待分割的图像为二值图像,所以该阈值可以设为定值,
进一步的,步骤S6中,所述利用区域生长算法提取仪表指针的像素点集具体流程为:将拟合圆划分成360条为以圆心为中点,长度为直径的线段,相邻两条线段的夹角为1°;然后依次遍历每条线段,首先计算每条线段上所有像素点的灰度平均值,然后将每个像素点的灰度值与该平均值进行比较,将灰度值与均值比较结果相同的且位置相邻的像素点放在一起,形成一个单独的像素点集;接着统计每个像素点集的个数,用个数最多的像素点集来表示这条线段,将该像素点集画在一张图像上;当所有的线段遍历完后,会得到一幅包含仪表指针和刻度线的二值图,设置拟合圆的圆心Oc为种子点,只需设生长终止条件的阈值为1,对该二值图利用区域生长算法提取出仪表指针所在位置的像素点集。
进一步的,步骤S7中,根据步骤S6像素点集的坐标信息利用最小二乘直线拟合出仪表指针所在的直线,计算得到直线拟合相似系数r;每个拟合圆都会拟合出一条直线和计算拟合相似系数,在直径长度大于平均值的拟合圆中比较直线拟合相似系数的大小,将拟合系数最大的直线作为仪表指针的拟合直线,其对应的拟合圆作为仪表盘所在的圆,从而确定出仪表指针的位置和表盘圆心的位置。
仪表指针的定位和仪表盘的定位;经过前面的区域生长算法提取后,得到了仪表指针所在位置的像素点集,根据像素点集的坐标信息利用最小二乘直线拟合出仪表指针所在的直线,计算得到直线拟合相似系数r。每个拟合圆都会拟合出一条直线和计算拟合相似系数,经大量的实验观察,仪表盘拟合圆的直径较大,所以只在直径长度大于平均值的拟合圆中比较直线拟合相似系数的大小,将拟合系数最大的直线作为仪表指针的拟合直线,其对应的拟合圆作为仪表盘所在的圆,从而确定出仪表指针的位置和表盘圆心的位置。
进一步的,步骤S7中,仪表指针的定位和仪表盘的定位具体流程为:按照像素点横坐标由小到大遍历仪表指针的像素点集,如果有多个像素点的横坐标相同,从这些像素点中选出最小纵坐标、平均纵坐标、最大纵坐标的三个像素点作为最小二乘直线拟合的输入数据集,选取上、中、下三个像素点作为输入数据有利于充分体现像素点集的形状,同时减少了计算量,遍历完所有的像素点后,然后运用最小二乘法直线拟合出输入数据集的直线方程,同时计算出直线拟合的相似系数r;每个拟合圆的像素点集经过最小二乘拟合后,都能得到一条直线,需要从众多的直线中筛选出仪表指针所在的直线;因为仪表盘圆的直径在图像中都是比较大的,首先将拟合圆直径较小的排除掉,对所有拟合圆的直径计算平均值,然后将直接小于平均值的拟合圆给去掉,接着在剩下的拟合圆中比较得到的直线拟合系数,将直线拟合相似系数最大的拟合圆作为仪表盘所在的圆,选取该直线作为仪表盘的指针,因此仪表指针的位置和仪表盘的位置均被确定。
综上,本发明首先通过轮廓分离法得到待识别图像中仪表的边缘轮廓,然后对边缘轮廓进行去噪,去除边缘轮廓上一些非圆弧、间断非连续的小轮廓,经过轮廓去噪后,得到了边缘轮廓上的主体轮廓,根据轮廓上像素点的坐标信息用最小二乘法圆拟合得到仪表盘的拟合圆;以拟合圆直径上的像素点为对象,利用区域生长算法提取仪表指针所在位置的像素点集;通过比较刻度线与仪表指针在位置上的差异,利用区域生长算法分割出仪表指针的像素点集,对像素点集进行最小二乘直线拟合,计算直线的拟合系数。最后比较直线的拟合系数与拟合圆的半径大小,选择拟合系数最大的直线作为指针的识别结果,其对应的拟合圆作为仪表刻度所在的圆。
首先通过opencv自带的函数局部自适应二值化和查找轮廓来粗略地提取仪表图像的轮廓信息,然后采用轮廓分离法将闭合的轮廓分离成上下两条边缘轮廓曲线,接着对边缘轮廓曲线进行去除凸起和干扰小轮廓的处理,得到主体的圆弧边缘轮廓,接着利用最小二乘法拟合出仪表盘所在的圆。在从多个拟合圆筛选出仪表盘所在圆的过程中,将每个拟合圆分为360条直径,以直径上的像素点为研究对象,提取直径上位置相邻且灰度值相近的像素点,画在一张新的图片上,然后以圆心为种子点的,利用区域生长算法提取仪表指针所在位置的像素点集,接着采用最小二乘法拟合出像素点集所在的直线,计算直线的拟合相似系数,在直径大于平均直径的拟合圆中,选择直线拟合相似系数最大的直线作为仪表盘的指针位置,其对应的拟合圆作为仪表盘所在的圆。
相对于现有技术,本发明具有以下有益结果:(1)基于轮廓拟合和径向分割算法的指针式仪表图像识别方法,其自适应调节的能力使整个算法具有较好的拓展性;(2)基于轮廓拟合和径向分割算法的指针式仪表图像识别方法可以精确地拟合出仪表刻度所在的圆和仪表的指针位置,能识别不同大小或者不同位置的单个仪表,适应性强;(3)能够克服仪表上的阴影、数字符号、宽指针等因素的干扰,实现仪表刻度轮廓和仪表指针精确地识别。
附图说明
图1是基于轮廓拟合和径向分割算法的指针式仪表图像识别方法的流程图;
图2是利用opencv自带的库函数对仪表图像进行轮廓提取的结果图;
图3是将闭合的轮廓分离成两条半边缘轮廓的流程图;
图4是将闭合的轮廓分离成两条半边缘轮廓的结果图;
图5是去除边缘轮廓曲线上凸起的结果图;
图6是去除干扰小轮廓和提取边缘轮廓曲线连续部分的结果图;
图7是相似轮廓曲线的合并和轮廓曲线拟合的结果图;
图8是利用区域生长算法提取仪表指针像素点集的流程图;
图9是利用区域生长算法提取仪表指针像素点集的结果图;
图10是仪表指针的定位和仪表盘的定位的结果图。
具体实施方式
下面将结合附图1-10阐述本发明的最优实施方式,根据本发明实施的基于轮廓拟合和径向分割算法的指针式仪表图像识别方法如下所述,但并不局限于以下实施例。
如图1所示是本发明的基于轮廓拟合和径向分割算法的指针式仪表图像识别方法的流程图,这个流程图适用于所有指针式仪表。在实现过程中,(1)首先提取指针式仪表图像的轮廓信息,(2)之后将闭合轮廓分离成边缘轮廓曲线,(3)接着去除边缘轮廓曲线上的凸起;(4)去除边缘轮廓曲线上的干扰小轮廓,提取边缘轮廓曲线的连续部分;(5)然后将特征相似的边缘轮廓曲线进行合并,再然后用最小二乘法对合并后的边缘轮廓曲线进行圆拟合得到拟合圆;(6)以拟合圆直径上的像素点为对象,利用区域生长算法提取仪表指针所在位置的像素点集;(7)然后对像素点集进行最小二乘直线拟合,计算拟合直线的相似系数,最后比较所有拟合直线的相似系数大小和拟合圆的半径大小,确定出仪表指针的位置和仪表盘所在的位置。
以某建筑房楼顶的水栓压力仪表为例,本发明提供的基于轮廓拟合和径向分割算法的指针式仪表图像识别方法,按照以下流程进行,具体包括如下步骤:
(1)首先提取指针式仪表图像的轮廓信息,利用opencv自带的库函数对仪表图像进行轮廓提取,通过调用opencv中的局部自适应二值化函数、查找轮廓函数来提取仪表图像上轮廓的像素点信息,具体地包含以下几个步骤:
步骤S11:首先调用opencv库中的局部自适应二值化函数adaptiveThreshold()将原图像转换为二值图像,其中无需手动设置二值化的阈值。然后再调用查找轮廓函数findContours()来提取仪表图像的轮廓信息,其中函数的输入参数是二值图像,输出参数是包含仪表图像上所有轮廓的像素点信息的二维数组,记为其中,k是轮廓的个数,n是每条轮廓的像素数目,Ω(xij,yij)表示第i个轮廓上第j个像素点的坐标,将所有数组上的像素点在图像上画出来,如图2所示,其中,左图的图2(a)为仪表的原始图像,右图的图2(b)为提取后的仪表轮廓图像,由于采用了自适应二值化处理,仪表的表盘内外边缘和指针的边缘均被保留,表盘的数字、刻度线等背景信息被过滤,有利于后续对表盘和指针的拟合处理。
(2)将闭合的轮廓分离成两条半边缘轮廓是指将闭合的轮廓分离为上下两个边缘轮廓曲线,其中,对原闭合轮廓上具有相同横坐标的像素点,将纵坐标最小的像素点存储在数组up(xm,ym)中,记为上边缘轮廓曲线;将纵坐标最大的像素点存储在数组down(xm,ym)中,记为下边缘轮廓曲线上。轮廓分离的流程图如图3所示,具体地包含以下几个步骤:
步骤S21:首先定义两个存放像素点信息的数组up()和down(),其中,up存放上边缘轮廓曲线的像素点,down存放下边缘轮廓曲线的像素点。
步骤S22:然后开始遍历闭合轮廓的像素点,对于闭合轮廓上的每个像素点(xi,yi),首先在数组中查找是否有与其具有相同横坐标的像素点,即要求满足条件:up[m].x=xi。若不满足条件,说明这是一个具有新的横坐标的像素点,则将像素点(xi,yi)存入up()和down()数组中。若满足条件,说明该点的横坐标已存在,接着比较up[m].y与yi的大小,若比较结果为up[m].y>yi,表示该像素点的纵坐标比数组中up[m]的纵坐标小,需要用(xi,yi)替换掉up[m];若比较结果为up[m].y<yi,说明up[m]的纵坐标较小,无需替换。但需要接着比较down[m].y与yi的大小,若比较结果为down[m].y>yi,说明down[m]的纵坐标较大,无需替换;若比较结果为down[m].y<yi,表示该像素点的纵坐标比数组中down[m]的纵坐标大,则用(xi,yi)替换掉down[m],接着再对下一个像素点进行上述比较和处理,直至遍历完闭合轮廓上所有的像素点。
步骤S23:遍历完闭合轮廓上所有的像素点后,将数组和中的像素点用圆点在图像上分别画出来,如图4所示的上轮廓图(参见图4(b))和下轮廓图(参见图4(c)),上轮廓图为表盘和指针上半边的边缘像素集,下轮廓图为表盘和指针下半边的边缘像素集,为了避免图4(a)原始闭合轮廓中像素点的重复性和杂乱性,对两组边缘轮廓曲线分别进行拟合,保留拟合效果较好的边缘轮廓曲线。这样可以避免原始闭合轮廓中部分杂乱像素点对曲线拟合的影响,提高了后续的拟合精度。这种边缘轮廓曲线比闭合轮廓可以更好地拟合出仪表盘所在的圆。
(3)去除边缘轮廓曲线上凸起:对于一些两端有凸起的圆弧边缘轮廓,凸起是由圆弧两端的刻度线形成的,由于凸起上的像素点不在圆弧上,不能用作后续的最小二乘圆拟合,需要将凸起上的像素点从原圆弧轮廓曲线上剔除掉。具体地包括以下步骤:
步骤S31:首先遍历边缘轮廓曲线上的像素点从第一个点开始,计算相邻像素点纵坐标的差值up[m].y-up[m+1].y,若差值大于0,说明像素点的纵坐标在逐渐减小,若差值小于0,说明像素点的纵坐标在逐渐增大。当轮廓上的像素点纵坐标变化趋势由小到大再到小时,说明此处存在一个极大值,将极大值像素点的下标存入数组Max()中,然后继续进行遍历,将所有的极大值像素点的下标依次存入数组中,直到遍历完这条轮廓曲线上所有的像素点。
步骤S32:遍历数组Max()中的元素,比较相邻元素差值的绝对值:|Max[i]-Max[i+1]|,找出绝对值最大的两个相邻元素,其中,绝对值越大表示相邻极大值点之间包含的像素点数目越多,像素点数目越多,说明该曲线段位于圆弧上的机率越大。
步骤S33:将包含像素点数目最多的曲线段画在图像上,去除的结果如图5所示,左图的图5(a)为一两端有凸起的圆弧,右图5(b)为去除凸起后的圆弧,引出的小方框表示圆弧两端的凸起,经过上述处理后,边缘轮廓曲线两端的凸起都被去除了,只留下主体的圆弧部分,提高了后期圆弧拟合的精度。
(4)去除干扰小轮廓和提取边缘轮廓曲线的连续部分:是指去除边缘轮廓上一些非连续、间断的干扰小轮廓,保留边缘轮廓曲线上的连续部分,目的是为了获取仪表轮廓曲线上的主体圆弧部分。具体地包括以下步骤:
步骤S41:首先依次遍历边缘轮廓曲线上的像素点从第一个点开始,记录第一个点的下标,存入变量begin中。然后将相邻两个像素点的纵坐标相减,对差值取绝对值|up[m].y-up[m+1].y|,如果绝对值小于2,则认为这两个点在图像上是连续的。如果出现绝对值大于2,说明边缘轮廓在该像素点处断开了,将断开点的下标存入变量end中。用end的值减去begin的值,统计相邻两个断开点之间点的总个数。如果end-begin>C,说明这段序列点的个数较多,认为可能是位于圆弧轮廓上的序列,其中,C为常量,是判断连续序列为小序列的阈值,设置为20。将这组连续序列存入到一个新的数组Cont()中,并继续对原轮廓上的点遍历,将end赋给begin,也就是把下标为end的点作为接下来遍历的起始点,继续前面的比较,直到遍历完边缘轮廓上所有的像素点。
步骤S42:统计Cont()中每个连续序列中像素点的个数,将个数最多的连续序列替代原轮廓曲线,即up()=MAX(Cont()),因为圆弧轮廓上的点大部分都是连续的,所以包含像素点数量最大的连续序列位于圆弧轮廓上的机率最大。将提取后的连续部分的像素点画在一幅白色背景的图像上,其结果如图6所示,上图为带有干扰小轮廓的圆弧(图6(a)),下图为提取后的圆弧轮廓(图6(b)),引出的小方框表示干扰小轮廓,经过上述处理后,轮廓曲线上的干扰小轮廓被去除了,得到仪表轮廓曲线的主体圆弧部分。
(5)相似轮廓曲线的合并和轮廓曲线拟合:将特征相近的轮廓曲线合并成新的轮廓曲线,然后对新的轮廓曲线进行最小二乘法圆拟合,得到仪表盘所在的圆。其中,轮廓曲线合并虽然减少了曲线的数量,但合并后的曲线包含更丰富的像素点信息,有利于提高最小二乘法拟合圆的精度。具体地包括以下步骤:
步骤S51:依次遍历每条边缘轮廓曲线首先选取第一条轮廓曲线upi(i=0),再选取第二条轮廓曲线upj(j=i+1),然后分别计算两条边缘轮廓曲线所包含像素点的灰度平均值,将两条轮廓曲线的灰度平均值相减,得到差值接着再对两条边缘轮廓曲线分别利用最小二乘法进行圆拟合,并计算出两个拟合圆的半径之差Δr。若Δg和Δr均小于一个较小的数ε,根据经验值,这里设定ε=5,说明两条边缘轮廓曲线的半径和灰度值相近,可以认为在原图中是位于同一个圆弧上,接着将这两个边缘轮廓曲线合并成一条新的边缘轮廓曲线,继续进行遍历,直到每一条轮廓曲线都与其他的轮廓曲线进行过一次上述的处理为止。
步骤S52:接着对合并后新的边缘轮廓曲线(图7(a))进行最小二乘法圆拟合,因为新的边缘轮廓曲线包含了多条轮廓曲线的像素点,包含的信息量更丰富,所以得到的拟合圆比由原单独一条边缘轮廓曲线拟合的效果更好,如图7所示,图7(b)中显示了所有轮廓曲线的拟合圆,有仪表盘的,也有其他背景的,后面需要从这些拟合圆确定出仪表盘的位置。
(6)利用区域生长算法提取仪表指针像素点集:指利用区域生长算法从拟合圆的中心像素点集提取出仪表指针的像素点集。其中,通过以拟合圆的直径为研究对象,从拟合圆中获取了仪表指针和表盘刻度的像素点集,然后利用区域生长算法分割出仪表指针的像素点集,其中,判断生长终止的阈值只需设为1,增强了区域生长的鲁棒性。如图8所示,具体地包括以下步骤:
步骤S61:设相邻两条直径的夹角为θ,将拟合圆划分为条直径,依次对这些直径进行遍历,对于每条直径,首先计算直径上所有像素点的灰度平均值然后将直径每个像素点的灰度值与进行比较,将比较结果相同且位置相邻的像素点集存入数组Cont2()中,每条直径经过比较后都会得到多个这样的数组。接着统计每个数组的元素个数,用元素个数最多的数组来替代这条直径,最后将像素点集用圆点画在图像上,如图9(a)所示,得到一幅包含仪表指针和刻度线的二值图。
步骤S62:当所有的直径都被遍历完后,然后以拟合圆的圆心Oc为种子点,设生长终止的阈值为1,在图9(a)中利用区域生长算法提取出仪表指针所在位置的像素点集,如图9(b)所示,刻度线上的像素点被很好地分离出来,只留下了仪表指针上的像素点集。
(7)进行仪表指针的定位和仪表盘的定位:是指根据仪表指针的像素点集确定出仪表指针位置和仪表盘的位置。具体的步骤如下:
步骤S71:首先遍历得到的像素点集,按照横坐标由小到大进行遍历,如果有多个像素点的横坐标相同,从这些像素点中选出最小纵坐标、平均纵坐标、最大纵坐标的三个像素点作为最小二乘直线拟合的输入数据集,选取上、中、下三个像素点作为输入数据有利于充分体现像素点集的形状,遍历完所有的像素点后,然后运用最小二乘法直线拟合得到像素点集的直线方程,同时计算出直线拟合的相似系数r;
步骤S72:每个拟合圆的中心像素点集经过最小二乘拟合后,都能得到一条直线,还需要从中筛选出仪表指针所在的直线。首先将半径较小的拟合圆排除掉,排除方法是对所有拟合圆的半径求和取平均值,然后将半径小于平均值的拟合圆给去掉,接着在剩下的拟合圆中找直线拟合相似系数最大的直线,选取该直线作为仪表盘的指针,该直线对应的拟合圆作为仪表盘所在的圆,如图10所示,引出线所指的直线为拟合的仪表指针直线,引出线所指的圆为拟合的仪表轮廓圆,仪表盘和仪表指针的位置均被较好确定出来,拟合效果较好。
由此,本发明涉及一种基于轮廓拟合和径向分割的指针式仪表图像识别方法。首先通过轮廓分离法得到待识别图像中仪表的边缘轮廓,然后对边缘轮廓进行去噪,去除边缘轮廓上一些非圆弧、间断非连续的小轮廓,经过轮廓去噪后,得到了边缘轮廓上的主体轮廓,根据轮廓上像素点的坐标信息用最小二乘法圆拟合得到仪表盘的拟合圆;接着对仪表的指针进行定位,首先将拟合圆分割成多条直径,对拟合圆直径上的像素点在灰度值和距离上进行比较,得到仪表指针和刻度线所在位置的像素点集。通过比较刻度线与仪表指针在位置上的差异,利用区域生长算法分割出仪表指针的像素点集,对像素点集进行最小二乘直线拟合,计算直线的拟合系数。最后比较直线的拟合系数与拟合圆的半径大小,选择拟合系数最大的直线作为指针的识别结果,其对应的拟合圆作为仪表刻度所在的圆。相对于现有技术,本发明能够克服仪表上的阴影、数字符号、宽指针等因素的干扰,能对不同大小和位置的仪表图像进行检测,具有较强的自适应调节能力。
Claims (8)
1.一种基于轮廓拟合和径向分割的指针式仪表图像识别方法,用于对指针式仪表进行读数识别;其特征在于包括如下主要步骤:
步骤S1:首先提取指针式仪表图像的闭合轮廓曲线;
步骤S2:通过轮廓分离法将闭合轮廓分离成边缘轮廓曲线;
步骤S3:去除边缘轮廓曲线上的凸起;
步骤S4:去除边缘轮廓曲线上的干扰小轮廓,提取边缘轮廓曲线的连续部分;
步骤S5:然后将特征相似的边缘轮廓曲线进行合并,再然后用最小二乘法对合并后的边缘轮廓曲线进行圆拟合得到拟合圆;
步骤S6:以拟合圆直径上的像素点为对象,利用区域生长算法提取仪表指针所在位置的像素点集:将拟合圆划分成360条为以圆心为中点、长度为直径的线段,相邻两条线段的夹角为1°;然后依次遍历每条线段,首先计算每条线段上所有像素点的灰度平均值,然后将每个像素点的灰度值与该平均值进行比较,将灰度值与平均值比较结果相同的且位置相邻的像素点放在一起,形成一个单独的像素点集;接着统计每个像素点集的个数,用个数最多的像素点集来表示这条线段,将该像素点集画在一张图像上;当所有的线段遍历完后,会得到一幅包含仪表指针和刻度线的二值图;设置拟合圆的圆心Oc为种子点,设置生长终止条件的阈值为1,对该二值图利用区域生长算法提取出仪表指针所在位置的像素点集;
步骤S7:然后对像素点集进行最小二乘直线拟合,计算拟合直线的相似系数,最后比较所有拟合直线的相似系数大小和拟合圆的半径大小,进行仪表指针的定位和仪表盘的定位。
2.根据权利要求1所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S1中:利用opencv自带的库函数对指针式仪表图像进行轮廓提取;调用opencv的库函数,对原始的仪表图像进行局部自适应二值化、查找轮廓处理,得到包含仪表闭合轮廓的二值图像。
3.根据权利要求1所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S2中:对一个闭合仪表轮廓进行轮廓分离处理,得到上下两个半边缘轮廓曲线。
4.根据权利要求3所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S2中将闭合的轮廓分离成两条半边缘轮廓具体步骤为:遍历一个闭合轮廓上的所有像素点,当有多个点的横坐标相同时,将这些点中纵坐标最小的点分在上边缘轮廓曲线的数组中,纵坐标最大的点分为下边缘轮廓的数组中,遍历完闭合轮廓上所有的横坐标后,原闭合轮廓被分离得到上下两条边缘轮廓曲线,分离后的边缘轮廓曲线形态更加细化,没有了闭合轮廓中像素点的重复性和杂乱性,边缘轮廓曲线对提高后续的轮廓拟合效果更加有利。
5.根据权利要求1所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S3中,去除边缘轮廓曲线上的凸起具体流程为:对由轮廓分离得到的边缘轮廓曲线,依次遍历边缘轮廓曲线上的像素点,当相邻像素点的纵坐标大小变化趋势为由小到大再到小时,记录此极大值点;遍历完所有像素点后,比较相邻极大值点中间所包含像素点的数量,保留数量最多的一段作为新的边缘轮廓曲线;提取边缘轮廓曲线的连续部分时,需要根据相邻像素点纵坐标的差值来找到断开点的位置,选择相邻断开点间包含像素点个数最多的一段轮廓作为轮廓曲线上的主体圆弧轮廓部分。
6.根据权利要求5所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S4中所述提取边缘轮廓曲线的连续部分具体流程为:对于每条边缘轮廓曲线,依次遍历曲线上的像素点,比较相邻像素点纵坐标差值的绝对值,当绝对值大于2时,则认为此处为一处断开点,记录此断开点的下标;遍历完所有的点后,比较相邻断开点之间像素点的数量,保留数量最多的一段作为新的边缘轮廓曲线,经过这种处理,原边缘轮廓曲线上的干扰小轮廓就会被去除。
7.根据权利要求1所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S5中,所述相似轮廓曲线的合并和轮廓曲线的拟合具体流程为:每次遍历两条边缘轮廓曲线,首先计算每条边缘轮廓曲线所包含像素点的灰度平均值,然后将两条轮廓曲线的灰度均值相减,得到灰度均值的差值Δg;接着对两条边缘轮廓曲线分别利用最小二乘法进行圆拟合,并计算出两个拟合圆的半径之差Δr;若Δg和Δr均小于一个较小的数,说明两条边缘轮廓曲线的半径和灰度值相近,将这两个边缘轮廓曲线合并成一个边缘轮廓曲线,新的边缘轮廓曲线包含了原两条轮廓曲线的所有像素点,用最小二乘法进行拟合。
8.根据权利要求1所述的基于轮廓拟合和径向分割的指针式仪表图像识别方法,其特征在于步骤S7中,根据步骤S6像素点集的坐标信息利用最小二乘直线拟合出仪表指针所在的直线,计算得到直线拟合相似系数r;每个拟合圆都会拟合出一条直线和计算拟合相似系数,在直径长度大于平均值的拟合圆中比较直线拟合相似系数的大小,将拟合系数最大的直线作为仪表指针的拟合直线,其对应的拟合圆作为仪表盘所在的圆,从而确定出仪表指针的位置和表盘圆心的位置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018102074370 | 2018-03-14 | ||
CN201810207437 | 2018-03-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108711158A CN108711158A (zh) | 2018-10-26 |
CN108711158B true CN108711158B (zh) | 2021-05-28 |
Family
ID=63866479
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810298843.2A Active CN108711158B (zh) | 2018-03-14 | 2018-04-04 | 基于轮廓拟合和径向分割的指针式仪表图像识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108711158B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109658391B (zh) * | 2018-12-04 | 2023-03-17 | 东北大学 | 一种基于轮廓归并和凸包拟合的圆半径测量方法 |
CN109900363A (zh) * | 2019-01-02 | 2019-06-18 | 平高集团有限公司 | 一种基于轮廓提取的目标物红外测温方法和装置 |
CN110909738A (zh) * | 2019-11-15 | 2020-03-24 | 杭州远鉴信息科技有限公司 | 一种基于关键点检测的指针仪表自动读数方法 |
CN111451886B (zh) * | 2020-04-24 | 2021-05-18 | 中车南京浦镇车辆有限公司 | 一种轨道车体腻子缺陷区域机器人打磨轨迹在线规划方法 |
CN111612836B (zh) * | 2020-05-26 | 2021-03-23 | 福建省海峡智汇科技有限公司 | 一种镂空圆形指针式仪表识别方法和系统 |
CN111950510B (zh) * | 2020-08-26 | 2023-10-03 | 上海申瑞继保电气有限公司 | 高压开关分合指示牌图像识别方法 |
CN113284157B (zh) * | 2021-05-26 | 2023-06-02 | 广东工业大学 | 一种大幅面皮革轮廓检测与轨迹优化方法 |
CN115575393B (zh) * | 2022-09-29 | 2023-11-21 | 苏州思迈德生物科技有限公司 | 一种用于血栓弹力图检测的光斑定位方法及定位装置 |
CN115861828A (zh) * | 2023-02-28 | 2023-03-28 | 北京飞渡科技股份有限公司 | 一种建筑横切面轮廓提取方法、装置、介质及设备 |
CN116721270B (zh) * | 2023-08-10 | 2023-10-20 | 泰安汉阳电子科技有限公司 | 一种用于智能水表的数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001307017A (ja) * | 2000-04-20 | 2001-11-02 | Fujitsu Ltd | 文字プレート認識装置 |
CN106228161A (zh) * | 2016-07-18 | 2016-12-14 | 电子科技大学 | 一种指针式表盘自动读数方法 |
CN107038447A (zh) * | 2017-04-26 | 2017-08-11 | 大连理工大学 | 一种基于机器视觉的指针式仪表识别方法 |
CN107729896A (zh) * | 2017-10-24 | 2018-02-23 | 武汉科技大学 | 一种适用于变电站宽刻度指针式仪表的自动识别方法 |
CN107729853A (zh) * | 2017-10-24 | 2018-02-23 | 武汉科技大学 | 一种适用于变电站窄刻度指针式仪表的自动识别方法 |
-
2018
- 2018-04-04 CN CN201810298843.2A patent/CN108711158B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001307017A (ja) * | 2000-04-20 | 2001-11-02 | Fujitsu Ltd | 文字プレート認識装置 |
CN106228161A (zh) * | 2016-07-18 | 2016-12-14 | 电子科技大学 | 一种指针式表盘自动读数方法 |
CN107038447A (zh) * | 2017-04-26 | 2017-08-11 | 大连理工大学 | 一种基于机器视觉的指针式仪表识别方法 |
CN107729896A (zh) * | 2017-10-24 | 2018-02-23 | 武汉科技大学 | 一种适用于变电站宽刻度指针式仪表的自动识别方法 |
CN107729853A (zh) * | 2017-10-24 | 2018-02-23 | 武汉科技大学 | 一种适用于变电站窄刻度指针式仪表的自动识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108711158A (zh) | 2018-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108711158B (zh) | 基于轮廓拟合和径向分割的指针式仪表图像识别方法 | |
CN115829883B (zh) | 一种异性金属结构件表面图像去噪方法 | |
CN114937055B (zh) | 基于人工智能的图像自适应分割方法与系统 | |
CN114972329B (zh) | 基于图像处理的表面缺陷检测仪的图像增强方法及系统 | |
CN111626190B (zh) | 基于聚类分区进行刻度识别的水位监测方法 | |
CN115082419B (zh) | 一种吹塑箱包生产缺陷检测方法 | |
CN113781402A (zh) | 芯片表面划痕缺陷的检测方法、装置和计算机设备 | |
CN114219805B (zh) | 一种玻璃缺陷智能检测方法 | |
CN116152231B (zh) | 基于图像处理的润滑油内杂质检测方法 | |
CN115063430B (zh) | 基于图像处理的电气管道裂纹检测方法 | |
CN116137036B (zh) | 基于机器学习的基因检测数据智能处理系统 | |
CN114926839B (zh) | 基于rpa和ai的图像识别方法及电子设备 | |
CN108829711B (zh) | 一种基于多特征融合的图像检索方法 | |
CN115331119B (zh) | 一种固体废弃物识别方法 | |
CN115311629B (zh) | 一种折弯机的异常折弯精度监测系统 | |
CN116188468B (zh) | 一种hdmi线缆传输分拣智能控制系统 | |
CN116740054A (zh) | 一种基于图像处理的舌象齿痕检测方法 | |
CN112508913A (zh) | 基于图像检测的电缆截面边沿检测方法 | |
CN110930425B (zh) | 基于邻域向量内积局部对比度图像增强的损伤目标检测方法 | |
CN115841669A (zh) | 一种基于深度学习技术的指针式仪表检测与示数识别方法 | |
CN117689655B (zh) | 基于计算机视觉的金属钮扣表面缺陷检测方法 | |
CN116758045B (zh) | 一种半导体发光二极管的表面缺陷检测方法及系统 | |
CN116883408B (zh) | 基于人工智能的积算仪壳体缺陷检测方法 | |
CN114742849B (zh) | 一种基于图像增强的水准仪距离测量方法 | |
CN115330818A (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 |