
1.本发明涉及图像处理技术领域,具体涉及一种方形指针式仪表读数识别的方法。
背景技术:2.对于在电力或其他行业的指针仪表识别问题,一般情况下都是针对圆形的刻度均匀的指针仪表进行读数识别。首先进行图像匹配或ssd方法确定仪表目标的位置,接着,利用图像配准,进行仪表图像校正,另外也有一些没有校正。接着通过霍夫变换检测圆或通过椭圆拟合,确定仪表轮廓、绕点圆心,通过霍夫直线检测进行仪表指针或刻度线检测,通过手动等方法确定起始终止位置,根据角度确定读数,或进行数字识别确定大刻度数值,再展开成直线,测量距离确定仪表读数。
3.仪表的图像匹配需要消耗的时间非常大,以至于不能在现实环境中使用。ssd算法在图像深度学习领域综合性能已经不是最好的检测方法;图像配准需要对角点进行检测,而这是非常消耗时间的,这对现实应用也是不现实的,同时如果没有图像校正,对后续的图像处理也是非常不利的,适应性差,不能应对不同角度仪表盘识别,并且最终精度也差。对于方形仪表,外轮廓不是圆,仪表盘上也没有圆形纹理(有的有),对于没有圆形轮廓或纹理的仪表,就不能用成熟的霍夫圆检测算法,而且霍夫圆检测也是比较费时间的,同时利用椭圆拟合找到的形心,误差很大。直接霍夫直线检测检测指针,也需要滤除很多不相干的直线,指针容易被噪声影响。对于用深度学习的方法识别仪表盘上的数字,由于这种方法都需要大量的特定数据训练,费时费力,也会有误识别,而一旦误识别,读数误差巨大,也是不理想的。现有的方法没有针对大量测量结果误差、圆心进行再处理,精度没有得到更好提升。
技术实现要素:4.本发明所要解决的技术问题是克服现有技术的不足,提供一种新型的方形指针式仪表读数识别的方法,解决方形仪表无圆形纹理,刻度线所在的圆形心找不准问题,提高了精度与准确性。
5.为解决以上技术问题,本发明采取的一种技术方案是:
6.一种方形指针式仪表读数识别的方法,包括以下步骤:
7.(1)读入采集的原始图像,提取仪表矩形框图像;
8.(2)对步骤(1)的仪表矩形框图像进行校正;
9.(3)对经步骤(2)校正后的图像进行处理,得到二值细化图像;
10.(4)获得指针绕动的圆心,偏左上角a的质心和指针中心线段的中点,连接偏左上角a的质心和指针绕动的圆心作为基线,连接指针中心线段的中点和指针绕动的圆心作为表针线;
11.(5)获得步骤(4)中基线和表针线之间的夹角,根据夹角拟合出反映读数值的线性方程;
12.(6)利用误差分布,调整拟合方程;
13.步骤(2)中利用透视变换对图像进行校正,具体过程为:对图像在明度v分量上进行二值化,利用最远距离法寻找出四点的位置,获得一个变换矩阵,进而得到透视变换后的图像,即校正后的图像。
14.优选地,步骤(1)采用深度学习算法yolov3提取仪表矩形框图像。
15.优选地,步骤(4)的具体过程为:首先获取各个像素块的面积和质心,根据面积大小,进行过滤,获得刻度质心,然后进行最小二乘拟合获得指针绕动的圆心,再根据面积过滤获得偏左上角a的质心,通过二值化,细化、霍夫变换检测直线段、直线段筛选获得指针中心线段的中点。
16.由于以上技术方案的采用,本发明与现有技术相比具有如下优点:
17.1、本发明yolov3仪表目标检测定位速度更快,准确性高,综合性能比较高;
18.2、本发明采用v分量二值、最远距离法寻找四点,透视变换校正图像,避免提取特征,大大提高了计算速度,校正畸变小,可以适应大量的不同角度的仪表图片,倾斜小于约50度,对环境的适应性好;
19.3、本发明用刻度线质心拟合圆心,再用大量样本的平均圆心去平均拟合检测到的圆心,提高了检测精度;
20.4、本发明基准线用表盘稳定的“a”字质心和相对准确的圆心确定,同时基准线也在表针常用位置,最终获得的读数精度高;
21.5、本发明由于基准线的存在,避免了去确定棘手的指针初始位置或终止位置;
22.6、本发明利用误差分布,调整拟合方程,进一步提高了准确性;
23.7、本发明仪表识别方法速度小于1秒,精度平均误差在最小刻度单位四分之一左右,适应各种角度拍摄采样,正常环境不会有误检,完全满足实际需求;
24.8、本发明使得仪表巡检更加高效、智能化,避免了长时间人力巡检的疲劳,降低了企业人工成本。
附图说明
25.图1为采集的原始图像;
26.图2为提取的仪表矩形框图像;
27.图3为对图2在明度v分量上进行二值化后示意图;
28.图4为图3在开运算后保留的仪表区域示意图;
29.图5为对附图4轮廓进行呈现的示意图;
30.图6为显示形心和第一个点的示意图;
31.图7为显示第二个点的示意图;
32.图8为显示第三个点的示意图;
33.图9为找到的没有确定位置的四个点的示意图;
34.图10为校正后的图像;
35.图11为用刻度质心来拟合圆心的效果图;
36.图12为显示指针中心线段的中点和a的质心的示意图。
具体实施方式
37.以下结合附图及具体实施例对本发明做进一步详细说明。
38.本发明一种方形指针式仪表读数识别的方法,具体实现包括以下步骤:
39.(1)读入采集的原始图像,提取仪表矩形框图像;
40.本发明利用深度学习算法yolov3进行仪表表盘目标识别,算法最终执行结果是将仪表盘在图像中的位置给框住。矩形框的左上角坐标和矩形框的长宽,是被yolov3算法计算出来的。算法需要大量的不同角度的现场拍摄图片,用工具进行人工的框选、标注,将获得标注文件,送入搭建的网络中进行训练,训练完成后,将采集的原始图像送入网络进行检测,自动获得仪表矩形框位置,如附图1和附图2所示。
41.(2)对步骤(1)的仪表矩形框图像进行校正;
42.校正需要利用图像处理技术中的透视变换,而透视变换至少需要寻找到四个对应点,而难点也就是在寻找这四个点上,下面进行图示说明。
43.如附图3所示,该图是对提取的仪表矩形框图像在明度v分量上进行二值化,然后,去除小白色块,开运算后保留的仪表区域如附图4所示。接着,附图5是对附图4进行轮廓发现后对轮廓进行呈现。轮廓本质上一堆像素点的有序列表,对这些像素点求均值获取轮廓形心,然后求轮廓点列表中离形心最远的点,即为获得的第一个点。附图6中,中心的点代表形心,右上角的点代表获得的第一个点。然后求轮廓点列表中离第一个点最远的点,即附图7中左下角的点,作为第二个点。获得前两个点之后,可以求得这两个点的中点,然后求中点的法向直线,法向直线会交于轮廓某一点,然后求轮廓点列表中离这个交点最远的点,作为第三个点。附图8中左上角的点为法向直线与轮廓交点,右下角蓝绿色的点为第三个点。获得第三个点之后,求轮廓点列表中离第三个最远的点,作为为第四个点。
44.此时虽然四个点已经找到,但对于程序来说,它还不知道,四个点哪个是左上角的点,哪个是右上角的点,哪个是左下角的点,以及哪个点是右下角的点,程序并不知道点的方位,因为一直在寻找的都是最远点,同时对于右下角的点,到底是靠下的那个角点,还是靠上的那个角点,也没有进行区分,而这些不确定性不能成为转化后图像对应点的对应依据,因此需要对这些点进行位置判断。附图9展示的是找到的没有确定位置的四个点。
45.接下来进行四个点位置的判断。首先,将四个点的行列值相加,获得四个和值,和值最大那个点为右下角的点,和值最小的那个点为左上角的点,剩下两个点中,列的值小,并且行的值偏大的为左下角的点,另一个为右上角的点,这样四个点的位置,除了右下角的靠上或靠下外,就都定了出来。关于右下角靠上还是靠下,可以根据四个点中,下面两个点确定的直线和上面两个点确定的直线的斜率进行判断,如果两条直线的斜率比较接近,就说明右下角的点是靠下的点,如果斜率差别比较大,就说明右下角的点是靠上的点,如此,确定了四个点的位置。
46.有了四个点的位置,就可以对应地给出一个像素矩阵,矩阵左上角为对应原图的左上角,右上角对应原图右上角,左下角同理,而对于右下角,根据靠上或者靠下,再根据仪表本身比例关系就可获得对应点位置,这样原图四个点对应到给定像素矩阵的四个点,就可以获得透视变换所需要的变换矩阵,根据变换矩阵就可以获得透视变换后的图像,即校正后的图像,如附图10所示。
47.(3)对经步骤(2)校正后的图像进行处理,得到二值细化图像;
48.本发明对图像处理的过程包括但不限于二值化及图像细化。
49.(4)获得指针绕动的圆心,偏左上角a的质心和指针中心线段的中点,连接偏左上角a的质心和指针绕动的圆心作为基线,连接指针中心线段的中点和指针绕动的圆心作为表针线;
50.在步骤(3)获得的二值细化图像上,获取各个像素块的面积和质心(计算面积和质心为已成熟技术),根据面积大小,进行过滤,就可以获得刻度质心,获得刻度质心之后就可以进行最小二乘拟合获得指针绕动的圆心点,如附图11所示。再根据面积过滤获得偏左上角a的质心,另外,可通过二值化,细化、霍夫变换检测直线段、直线段筛选获得指针中心线段的中点,如附图12所示,这样比通过面积筛选获得,对最终的读数精度提高更好,另外如果直接霍夫变换检测直线则噪声大,效果差。最后,连结偏左上角a的质心和指针绕动的圆心作为基线,另外连结指针中心线段的中点和指针绕动的圆心作为表针线。
51.(5)获得步骤(4)中基线和表针线之间的夹角,根据夹角拟合出反映读数值的线性方程;
52.有了基线和指针线,就可以获得两条线之间的夹角,根据斜率判断指针线在基线以下,还是在基线以上,在基线以下为负,基线以上为正,然后在100到800均匀的量程范围内,就可以根据夹角来拟合出反映读数值的线性方程。针对此仪表,读数在100以下非均匀,直接输出小于100警告,非均匀的刻度占比很小,且在不常用的小读数范围,仪表本身准确性,在这个范围,也不太准。读数800以上,输出超量程警告。
53.(6)利用误差分布,调整拟合方程;
54.采集一定量刻度分布均匀的图片,进行读数标定,获得拟合线性方程,然后对大量的样本,进行测试,获得实际值和测量值的误差,这些误差会形成一个分布,根据误差分布,可以对拟合线性方程进行一定量的偏移,缩小误差,这样会提升系统的测量精度。另一方面,可以根据大量样本,获得校正后指针绕动点圆心的平均值,再根据这个平均值去平均每次测量的单个圆心,这样也会提升一些精度。
55.本发明主要用在agv电力巡检,利用agv上面的云台相机,在适当位置对仪表进行拍照取样,然后将图片传输至上位机,上位机软件调用底层的仪表读数识别方法,对电气仪表读数进行检测,将输出的读数结果反馈给上位机界面上显示,上位机软件可以自动做阈值判断、报警等操作。
56.以上对本发明做了详尽的描述,实施例的说明只是用于帮助理解本发明的方法及其核心思想,其目的在于让熟悉此领域技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。