一种有圆弧边界的变电站指针式仪表自动识别方法与流程

文档序号:15164530发布日期:2018-08-14 17:18阅读:196来源:国知局

本发明涉及到图像模式识别领域,尤其涉及到一种有圆弧边界的变电站指针式仪表自动识别方法。



背景技术:

变电站智能巡检机器人对电力设备进行巡检的工作流程为:1)巡检机器人根据设计好的路径以及导航算法,行驶到各个巡检点,然后调用云台检测设备对准待检测电力设备监控仪表,拍摄仪表图片并将其保存下来;2)对拍摄到的仪表图片进行分析,利用自动识别指针式仪表算法,计算出每个仪表的示数,进而得知电力设备的运行状态;3)根据电力设备的运行状态,给出相应指令,确保整个变电站正常运行。

在巡检机器人整个巡检过程中,准确地计算出仪表示数是巡检任务中至关重要的一个环节。因此,设计一种准确高效的指针式仪表自动识别算法对巡检机器人准确地完成巡检任务具有重要意义。

另外,指针式仪表具有结构简单,维护、使用方便,可靠性高,价格便宜,防水、防冻、防尘等优点,因而在变电站中广泛地采用指针式仪表来监控电力设备运行状态。

对于变电站指针式仪表自动识别,现有研究包括利用hough变换同时识别指针和刻度、利用减影法和条件hough变换结合中心投影法得到完整刻度读数以及指针,这些方法不仅复杂,而且更多依靠前期的图像预处理以及预先构建的仪表模板库。当巡检机器人拍摄角度出现偏差时,图像预处理以及模板匹配都会产生偏差,这些都会给仪表自动识别造成不利影响,使最终得到的仪表示数不准确,进而不能很好地判断出电力设备运行状态。

回顾现有关于变电站指针式仪表自动识别的研究,可以发现大部分自动识别方法中,都是先通过预先在模板上进行手工标定来实现指针式仪表边界圆弧的识别;而后,巡检机器人将模板上标定的参数匹配到巡检图像中,这种方法不够智能而且精确度很大程度上依靠巡检机器人行驶路径准确性和前期图像预处理。若巡检机器人行驶路径产生偏差,未能在设定的观测点拍摄到图片时,则待观测图像会发生一定程度的仿射和拉伸,这会对仪表自动识别产生较大误差。



技术实现要素:

本发明要解决的技术问题是,克服现有技术的上述缺陷,提供一种有圆弧边界的变电站指针式仪表自动识别方法,该方法可用于识别变电站中具有圆弧边界的指针式仪表。能够降低有圆弧边界的指针式仪表自动识别过程中对人工标定的依赖性,可以减少巡检机器人因拍摄角度引起的误差,简化整个识别过程,并且具有较好的智能性。

为解决上述问题,本发明采用如下技术方案:

一种有圆弧边界的变电站指针式仪表自动识别方法,获取变电站指针式仪表的图片进行自动识别,其特征在于:步骤s1:采用elsd检测算法获取整个图片中的线段参数和圆弧参数,对线段和圆弧进行检测;步骤s2:对线段和圆弧进行筛选:根据指针式仪表上刻度线几何性质对线段参数进行筛选,先确定大致刻度线;对圆弧进行筛选:根据刻度线与仪表圆弧边界的位置关系,得到拟合效果最好的边界圆弧;步骤s3:根据已经确定的边界圆弧,重新确定仪表大刻度线、小刻度线、和仪表指针,并建立仪表角度坐标系;步骤s4:结合elsd检测算法进行指针自动识别,步骤s5:根据仪表角度坐标系自动计算出仪表示数,完成读数。

进一步的,所述线段参数包括线段的起点和终点,所述圆弧包括圆形和椭圆形,所述圆弧参数包括圆心的坐标、轴长、偏转角度、圆弧起始角度。

进一步的,步骤s1具体为:设计一种刻度线筛选算法获取仪表大致刻度线:首先,读取待检测的仪表图片,使用elsd算法进行检测,获得整幅图片线段和圆弧;然后,根据指针式仪表刻度线几何性质,即刻度线大多成对出现以及刻度线所在的直线经过某一中心点,对整幅图片中的线段进行筛选,得到大部分刻度线。

进一步的,步骤s2具体为:设计一种确定仪表边界圆弧算法:首先,找到步骤s1中已确定线段的内点,即线段中距离图片中心较近的点;然后,对检测到的圆弧进行初步筛选,并求出每个内点到各个圆弧上的距离;最后,对于每一个圆弧,将每个内点到该圆弧的距离进行求和,获得求和距离最小的圆弧,将该圆弧作为仪表圆弧边界。

进一步的,步骤s3具体为:根据仪表指针与仪表边界圆弧几何位置特征,确定图片中仪表大刻度与小刻度位置,并将其按顺序排列建立仪表角度坐标系:首先,根据大刻度穿过仪表边界圆弧特点,确定大刻度位置,并将其按顺序排列;然后,对于两个相邻的大刻度,找到两者之间已检测出的小刻度,如若有小刻度未检测出,则通过插值将其求出;最后,确定起始刻度线位置,以及各个刻度线顺序,建立仪表角度坐标系。

进一步的,步骤s4具体为:利用基于elsd的指针识别算法进行指针识别:首先,利用elsd算法将图片中所有线段检测出;然后,找到与上述步骤中已确定仪表边界圆弧具有交点的线段,并根据指针与仪表边界圆弧位置关系,从这些线段中确定仪表的指针;最后,计算出指针与刻度线相对位置关系;

进一步的,步骤s4中,指针与仪表边界圆弧位置关系为:指针所在线段是最长的,指针所在线段的内点更靠近仪表边界圆弧的圆心。

进一步的,步骤s5具体为:进行自动识别读数:首先,输入仪表的量程;然后,根据上文中指针与刻度线的位置关系和仪表角度坐标系,计算出仪表的示数。

进一步的,该方法基于windows7操作系统下,visualstudio2010,以及版本为2.4.4的开源opencv库。

进一步的,图片的读入、elsd算法、直线拟合、椭圆拟合、圆拟合,都是基于opencv库的库函数。

综上所述,本发明提出如上的自动识别变电站圆表盘针式仪表示数方法,利用elsd算法检测出待识别图片中所有线段和圆弧并得到其参数;根据刻度线成对出现以及所有刻度线所在直线经过某一个中心点及其邻域,确定仪表大致刻度线;根据已经确定的刻度线找到对仪表圆弧边界拟合效果最好的边界圆弧;根据边界圆弧与刻度线的位置重新关系确定大刻度与小刻度,并建立仪表角度坐标系;最后,利用elsd算法检测出指针位置,计算出仪表指针偏转角度,并结合仪表角度坐标系自动读取仪表示数。本发明基于人工读数机制以及指针式仪表刻度形态、位置分布等先验知识,依次进行刻度线识别定位、圆弧边界拟合、建立仪表角度坐标系、表指针的识别与定位,实现仪表自动识别。

相对于现有技术中对变电站指针式仪表进行识别时,指针式仪表圆弧边界识别主要是通过预先对仪表进行手工标定并构建模板库;然后,再将巡检过程拍摄到的照片与模板进行匹配。若巡检机器人导航至观测点的过程中出现偏差,则当前巡检图像与模板库中模板匹配会出现偏差,因此,最终得到的仪表示数会有较大误差。

通过以上方法能够降低有圆弧边界的指针式仪表自动识别过程中对人工标定的依赖性,可以减少巡检机器人因拍摄角度引起的误差,简化整个识别过程,并且具有较好的智能性。本发明的提出,丰富了变电站指针式仪表自动识别的方法,使指针式仪表自动识别更具智能性,具有较好的泛化能力与实用性。

附图说明

图1是本发明的有圆弧边界的变电站指针式仪表自动识别方法总体流程图;

图2是本发明有圆弧边界的变电站指针式仪表自动识别方法的各步骤实验效果图。

图3是本发明的elsd检测算法流程图;

图4是本发明的刻度线识别流程图;

图5是本发明的确定仪表圆弧边界识别流程图;

图6是本发明中建立仪表角度坐标系流程图;

图7是本发明中仪表指针自动识别定位的识别流程图;

具体实施方案

为了进一步说明本发明技术方案,下面将结合附图1-7对本方案进行详细的说明。

如图1所示,本发明的有圆弧边界的变电站指针式仪表自动识别方法包括如下步骤:

步骤s1:使用elsd算法进行直线检测,获得大部分刻度线:

步骤s11:首先,读入仪表图片;然后,使用elsd算法对整个仪表图片进行检测,获得整幅图片线段参数。

步骤s111:(elsd的直线检测模块原理)首先,以s=0.8的尺度对输入图像进行高斯下采样,这样可以消除图像的锯齿效应。

步骤s112:计算每个像素点的梯度值以及梯度方向,梯度计算中用到2*2的模板,其中梯度计算公式为:

x方向的梯度:gx(x,y)=(i(x+1,y)+i(x+1,y+1)-i(x,y)-i(x,y+1))

y方向的梯度:gy(x,y)=(i(x,y+1)+i(x+1,y+1)-i(x,y)-i(x+1,y))

梯度幅值:

梯度方向:ang(x,y)=arctan(gx(x,y)/(-gy(x,y)))(1)。

步骤s113:根据梯度值对所有像素点进行伪排序(pseudo-ordered),建立状态列表,所有像素点设置都为unused。梯度值越大,越是显著的边缘点,因此更适合作为种子点。但是对梯度值进行完全排序是一个耗时性很高的工作。因此简单将梯度值划分为1024个等级(bins),这1024个等级涵盖了梯度由0~255的变化范围,这种排序是一个线性的时耗。种子点从梯度值最高的bin开始搜索,依次往下,直至所有像素点都标记为used。小梯度值点往往出现在平滑区域,或者仅仅是噪声,不在关注的范围内,但是他们的存在往往会严重影响直线角度的计算。考虑到有角度承受范围[-t,t]。因此小梯度“脏点”的最大影响角度需要小于t。假设“脏点”的阈值为q将梯度值小于q的点状态表中相应位置设置为used。

步骤s114:取出列表中梯度最大(伪排列的首位)的点作为种子点(seed),状态列表中设为used,以seed为起点,搜索周围unused并且方向在阈值[-t,t]范围内的点,并改为used。生成包含所有满足点的矩形r,判断同性点密度是否满足阈值d,若不满足,截断r变为多个矩形框,直至满足。计算nfa,改变r使得nfa≤ε,r加入输出列表。

其中,每加入一个点后,r的角度更新为:

矩形区域角度:region_angle=arctan(∑(sin(angj)/∑cos(angi)))

重心坐标:

nfa的计算公式如下所示:

步骤s12:利用线段长度信息进行初步过滤,即去掉长度不在[thmin,thmax]这个范围内的线段(thmin表示线段的最小长度,thmax表示线段的最大长度,单位为像素,其值的大小根据图片的大小来确定)。

步骤s13:根据elsd算法检测到刻度线成对出现的原则,计算每条线段斜率,(斜率),判断每条线段是否存在另一条线段斜率与之接近,设置一个误差阈值ek(斜率误差),若|k1-k2|≤ek,则认为这两条线段是成对存在,若斜率与之接近的线段数量大于2,则根据内点相近原则进行匹配成几组,计算每组线段长度,将长度最长的一组线段作为刻度线。

步骤s14:根据刻度线与仪表边界圆弧位置关系(刻度线所在直线必经过某一中心点及其邻域)进一步进行筛选,得到最终刻度线。首先,将成对出现的线段合并成一条线段;然后,计算每条线段所在直线与其他线段所在直线的交点,pij=(xij,yij)(i≠j)表示第i条线段与第j条线段的交点;接下来,逐条判断线段是否为刻度线,若第i条线段与其他线段的交点集为{pi1,pi2,...,pin},若表示交点集中pi1与其他交点间的距离小于等于th的个数,th为设定的交点阈值,0.65可根据实际情况设定),则该线段为刻度线,否则继续判断pi2,若所有交点集都不满足则该线段不是刻度线。

步骤s2:根据已确定的刻度线,获取对仪表边界圆弧拟合效果最好的圆:

步骤s21:首先,利用elsd算法对整张图片进行检测,获得图片中所有圆弧参数。

步骤s211:(elsd检测器中椭圆检测模块原理)将elsd直线检测器中区域生长矩形的两个末端点用作后续曲线生长过程中的种子像素。

步骤s212:对种子像素进行曲线生长,得到与初始线段相交的线段,判断新得到的线段与初始线段间夹角是否大于π/2,若是,则将新得到的直线的末端点设置成种子点继续进行曲线生长,直到不满足约束条件为止。由上述曲线生长而链接成的轮廓区域是凸的、平滑的,可以将该轮廓认为是圆或椭圆的内接多边形。

步骤s213:根据圆锥拟合知识以及上面得到的曲线生长链,求出该区域的外接圆或椭圆。

步骤s22:计算步骤1中已确定刻度线的内点,对于每个圆弧计算每个内点到该圆弧上的距离,计算公式为(n为已经确定的刻度线的个数,pi为内点,pcenter为圆中心,r为圆半径);然后,找到距离最小的圆,即min(dist1,...,distk)(k为圆弧个数),则最小距离对应的圆弧拟合效果最好,可以将其作为边界圆弧。

步骤s3:根据刻度线和仪表边界圆弧的几何位置关系,建立仪表角度坐标系。

步骤s31:根据步骤2中仪表圆弧边界来确定大刻度。首先,根据大刻度线穿过仪表边界圆弧,找到在仪表边界圆弧内部的线段;然后,根据步骤1中确定刻度线原则将仪表边界圆弧内部的刻度线找到,并去除不在仪表边界圆弧周围的线段,则剩下刻度线就是整个仪表的大刻度线;最后,根据起始刻度线周边只存在一条大刻度线的原则,确定仪表刻度线的起点与终点(起点刻度的位置在终点刻度的左边)。

步骤s32:确定各个大刻度的顺序以及小刻度线,并建立仪表角度坐标系。首先,设定起始刻度线为当前刻度线,找到距离当前最近的刻度线,并排除位于当前刻度线左边的刻度线,则找到的刻度线为下一刻度线。然后,将找到的刻度线设置为当前刻度线继续求解,依次迭代至终点刻度线。最后,根据大刻度线确定小刻度线,先判断两个大刻度间的小刻度是否已检测出,若已检测出,则计算出小刻度线与仪表圆弧边界的交点,并对其排序;若缺少刻度线,则根据缺少的数目,对其进行插值,将其补充完整,结合仪表边界圆弧建立仪表角度坐标系。

步骤s33:按顺序依次画出各个大刻度线与小刻度线。利用opencv库中自带的函数,ellipse、circle等函数将仪表画出。

步骤s4:基于elsd算法的指针识别与定位。

步骤s41:首先,利用elsd算法检测图片中所有线段;然后,找到所有与仪表圆弧边界相交的线段;最后,根据仪表指针经过仪表圆弧边界的圆心或圆心所在的邻域,找到满足条件的最长线段,则该线段就是仪表指针。

步骤s5:计算出图片中仪表示数。

步骤s51:首选,计算仪表指针与仪表边界圆弧的交点;接下来,计算出该交点在仪表角度坐标系中位置。

步骤s52:根据指针位置以及仪表示数计算公式计算出仪表的示数,仪表示数计算公式如下所示:

r=pstart+pavg·npre+(pi-ppre)/(pnext-ppre)·pavg

pavg=(pend-pstart)/n

pstart,pend----起始刻度值,终止刻度值

ppre,pnext----交点前后的刻度值

n------所有刻度线个数

npre-----交点前面刻度线个数(4)

上述方案中,发明了一种自动识别有圆弧边界的变电站指针式仪表方法,该方法的实现是基于windows7操作系统下的visualstudio2010,以及版本为2.4.4的opencv开源库。

上述方案中,图片的读入、elsd算法、直线拟合、椭圆拟合、圆拟合,都是基于opencv库的库函数。

回顾现有关于变电站指针式仪表自动识别的研究,可以发现大部分自动识别方法中,都是先通过预先在模板上进行手工标定来实现指针式仪表边界圆弧的识别;而后,巡检机器人将模板上标定的参数匹配到巡检图像中,这种方法不够智能而且精确度很大程度上依靠巡检机器人行驶路径准确性和前期图像预处理。若巡检机器人行驶路径产生偏差,未能在设定的观测点拍摄到图片时,则待观测图像会发生一定程度的仿射和拉伸,这会对仪表自动识别产生较大误差。本发明提出一种自动识别变电站圆表盘针式仪表示数方法,利用elsd检测算法,获得图片中仪表刻度线,仪表圆弧边界的拟合圆;然后设计一种排序算法将刻度线按顺序排列(先找出大刻度线并对其排序,再找出小刻度并进行排序);接着采用插值算法对缺省的刻度进行填充,从而建立仪表角度坐标系;最后设计了一种基于elsd的仪表指针识别算法,确定指针与刻度线相对位置并计算出仪表示数。本发明通过以上方法能够降低有圆弧边界的指针式仪表自动识别过程中对人工标定的依赖性,可以减少巡检机器人因拍摄角度引起的误差,简化整个识别过程,并且具有较好的智能性。本发明的提出,丰富了变电站指针式仪表自动识别的方法,使指针式仪表自动识别更具智能性,具有较好的泛化能力与实用性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1