本发明涉及变电站智能巡检,尤其涉及一种基于yolo模型的指针式仪表读数方法及系统。
背景技术:
1、本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
2、随着国家无人值守变电站建设的推广,越来越需要智能的巡检系统替代传统人工巡检。巡检工作中重要的一项工作是抄表,记录站内设备各个表计读数,若发现读数异常则进行上报。智能巡检系统依赖机器人、摄像头等视觉前端设备进行图像采集,可根据采集到的表计图像进行自动读数,实现自动抄表。
3、目前基于图像的表计读数算法研究不在少数,但发明人发现存在如下问题:
4、(1)多数都针对一种或相近的几种表盘进行训练和测试,不具备通用性。
5、(2)现有的ocr算法在识别表盘数字时,对数字检测的专一度不够,会存在误识别情况。
6、(3)一些论文采用了复杂的深度学习算法,需要大量的表盘数据集进行语义分割的训练集制作,训练集的制作工作量非常大,落地应用较困难。
技术实现思路
1、为了解决上述问题,本发明提出了一种基于yolo模型的指针式仪表读数方法及系统,通过最近邻聚类能够准确的检测出刻度数字及其代表的刻度,整个识别过程无需预先添加任何表盘信息,扩展性较强且处理拍摄角度、光照等影响时,均能取得较高的识别精度。
2、为了实现上述目的,本发明采用如下技术方案:
3、第一方面,本发明提供一种基于yolo模型的指针式仪表读数方法,包括:
4、获取待检测的仪表图像并进行预处理;
5、将预处理后的待检测的仪表图像输入至训练好的目标检测yolo模型,得到表盘数字;
6、利用最近邻聚类算法将所述表盘数字组成数字串,基于数字串采用相邻差计数最多筛选出真实刻度;
7、根据真实刻度位置进行椭圆拟合,得到表盘指针旋转中心位置;
8、利用houghlines算法获取预处理后的待检测的仪表图像中的多条直线;根据直线长度和拟合的椭圆中心位置对所述多条直线进行过滤,得到真实指针直线;
9、根据指针直线与真实刻度位置的角度关系计算当前真实读数。
10、优选地,所述预处理包括对图像进行高斯去噪、亮度均衡、亮度调整、对比度调整。
11、优选地,所述目标检测yolo模型的训练过程为:
12、获取仪表图像样本,所述仪表图像样本通过对数字常用字体进行旋转、倾斜、亮度变化、大小变化、透视倾斜处理,并模拟表盘排布随机生成;
13、对每张所述仪表图像样本的数字区域进行标注,构建yolo训练数据集;
14、利用yolo训练数据集,基于yolo预训练模型进行训练,得到训练好的目标检测yolo模型。
15、优选地,所述利用最近邻聚类算法将所述表盘数字组成数字串,基于数字串采用相邻差计数最多筛选出真实刻度,具体包括:
16、获取所有表盘数字;
17、将最左侧数字作为基准点,计算基准点与其他未经计算的所有数字之间的距离;基于横向阈值和纵向阈值在横向和纵向筛选出基准点右侧紧邻的数字;所述横向阈值设置为当前数字的宽度,所述纵向阈值设置为当前数字高度的预设比例;
18、再以所述右侧紧邻的数字作为基准点,寻找下一个右侧紧邻数字,直至无法找到右侧紧邻数字;
19、将基准点和所有紧邻数字放置到一个矩形框中,组成数字串;继续寻找并组成其他数字串;
20、以表盘中心与各个矩形框中心连线的角度对数字串进行从小到大的排序,计算相邻矩形框中数字串之间的差值并进行统计;
21、将出现次数最多的差值,作为真实刻度的最大公约数;
22、根据最大公约数从所有数字串中筛选出真实刻度。
23、优选地,所述根据真实刻度位置进行椭圆拟合,得到表盘指针旋转中心位置,具体包括:
24、获取真实刻度矩形框的中心点,组成点阵;
25、将点阵输入opencv fitellipse函数进行椭圆拟合,得到rotatedrect,包括椭圆中心,椭圆长轴、短轴、角度信息;所述rotatedrect的椭圆中心为表盘指针旋转中心位置。
26、优选地,所述根据直线长度和拟合的椭圆中心位置对所述多条直线进行过滤,得到真实指针直线,具体包括:
27、获取所述多条直线,筛选出穿过拟合的椭圆中心的预选直线;
28、若所述预选直线长度满足设定阈值范围,则判断为真实指针直线。
29、优选地,所述根据指针直线与真实刻度位置的角度关系计算当前真实读数,具体包括:
30、获取指针直线左右最近邻的两个刻度矩形框;
31、计算每个刻度矩形框中心到指针旋转中心的直线角度,以及指针直线的角度;根据所述角度关系,计算当前真实读数,具体过程如下:
32、angledis1=|angle1-angle2|;
33、valuedis1=value1-value2;
34、valueangleeach=valuedis1/angledis1;
35、angledis2=|angle3-angle2|;
36、value=angledis2×valueangleeach+value2;
37、其中,angle1为刻度值1与指针旋转中心连线角度,angle2为刻度值2与指针旋转中心连线角度,value1为刻度值1的值,value2为刻度值2的值,angle3为指针直线的角度,value为计算的当前真实读数。
38、第二方面,本发明提供一种基于yolo模型的指针式仪表读数系统,包括:
39、图像获取模块,用于获取待检测的仪表图像并进行预处理;
40、数字获取模块,用于将预处理后的待检测的仪表图像输入至训练好的目标检测yolo模型,得到表盘数字;
41、刻度定位模块,用于利用最近邻聚类算法将所述表盘数字组成数字串,基于数字串采用相邻差计数最多筛选出真实刻度;
42、圆心定位模块,用于根据真实刻度位置进行椭圆拟合,得到表盘指针旋转中心位置;
43、指针确定模块,用于利用houghlines算法获取预处理后的待检测的仪表图像中的多条直线;根据直线长度和拟合的椭圆中心位置对所述多条直线进行过滤,得到真实指针直线;
44、读数计算模块,用于根据指针直线与真实刻度位置的角度关系计算当前真实读数。
45、第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面所述的一种基于yolo模型的指针式仪表读数方法中的步骤。
46、第四方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的一种基于yolo模型的指针式仪表读数方法中的步骤。
47、与现有技术相比,本发明的有益效果为:
48、本发明能够在不提前添加任何表盘信息且拍摄角度倾斜极端的情况下,先通过最近邻聚类算法准确定位出所有包含刻度的区域并进一步筛选提取出用于后续计算的有用刻度信息,再拟合出的仪表刻度圆心,在表盘上筛选出指针直线根据指针与刻度的角度关系对读数进行估计,不需要图片矫正等额外算法可准确得到指针转动轴心,进一步的减小了拍摄角度对读数的影响,较大地提高示数识别的精度。同时,由于yolo模型基于包含多种数字形态的数据集进行训练,因此普适性更强,适用于多种表盘读数场景。
49、本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种基于yolo模型的指针式仪表读数方法,其特征在于,包括:
2.如权利要求1所述的一种基于yolo模型的指针式仪表读数方法,其特征在于,所述预处理包括对图像进行高斯去噪、亮度均衡、亮度调整、对比度调整。
3.如权利要求1所述的一种基于yolo模型的指针式仪表读数方法,其特征在于,所述目标检测yolo模型的训练过程为:
4.如权利要求1所述的一种基于yolo模型的指针式仪表读数方法,其特征在于,所述利用最近邻聚类算法将所述表盘数字组成数字串,基于数字串采用相邻差计数最多筛选出真实刻度,具体包括:
5.如权利要求4所述的一种基于yolo模型的指针式仪表读数方法,其特征在于,所述根据真实刻度位置进行椭圆拟合,得到表盘指针旋转中心位置,具体包括:
6.如权利要求1所述的一种基于yolo模型的指针式仪表读数方法,其特征在于,所述根据直线长度和拟合的椭圆中心位置对所述多条直线进行过滤,得到真实指针直线,具体包括:
7.如权利要求4所述的一种基于yolo模型的指针式仪表读数方法,其特征在于,所述根据指针直线与真实刻度位置的角度关系计算当前真实读数,具体包括:
8.一种基于yolo模型的指针式仪表读数系统,其特征在于,包括:
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7中任一项所述的一种基于yolo模型的指针式仪表读数方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的一种基于yolo模型的指针式仪表读数方法中的步骤。
